lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 13 Nov 2017 13:55:09 +0100 From: Greg Kroah-Hartman <gregkh@...uxfoundation.org> To: linux-kernel@...r.kernel.org Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>, stable@...r.kernel.org, Feras Daoud <ferasda@...lanox.com>, Erez Shitrit <erezsh@...lanox.com>, Alex Vesker <valex@...lanox.com>, Leon Romanovsky <leon@...nel.org>, Yuval Shaia <yuval.shaia@...cle.com>, Doug Ledford <dledford@...hat.com>, Sasha Levin <alexander.levin@...izon.com> Subject: [PATCH 3.18 15/28] IB/ipoib: Change list_del to list_del_init in the tx object 3.18-stable review patch. If anyone has any objections, please let me know. ------------------ From: Feras Daoud <ferasda@...lanox.com> [ Upstream commit 27d41d29c7f093f6f77843624fbb080c1b4a8b9c ] Since ipoib_cm_tx_start function and ipoib_cm_tx_reap function belong to different work queues, they can run in parallel. In this case if ipoib_cm_tx_reap calls list_del and release the lock, ipoib_cm_tx_start may acquire it and call list_del_init on the already deleted object. Changing list_del to list_del_init in ipoib_cm_tx_reap fixes the problem. Fixes: 839fcaba355a ("IPoIB: Connected mode experimental support") Signed-off-by: Feras Daoud <ferasda@...lanox.com> Signed-off-by: Erez Shitrit <erezsh@...lanox.com> Reviewed-by: Alex Vesker <valex@...lanox.com> Signed-off-by: Leon Romanovsky <leon@...nel.org> Reviewed-by: Yuval Shaia <yuval.shaia@...cle.com> Signed-off-by: Doug Ledford <dledford@...hat.com> Signed-off-by: Sasha Levin <alexander.levin@...izon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org> --- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c @@ -1362,7 +1362,7 @@ static void ipoib_cm_tx_reap(struct work while (!list_empty(&priv->cm.reap_list)) { p = list_entry(priv->cm.reap_list.next, typeof(*p), list); - list_del(&p->list); + list_del_init(&p->list); spin_unlock_irqrestore(&priv->lock, flags); netif_tx_unlock_bh(dev); ipoib_cm_tx_destroy(p);
Powered by blists - more mailing lists