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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 23 Sep 2021 19:06:24 +0000 From: "Marciniszyn, Mike" <mike.marciniszyn@...nelisnetworks.com> To: Jia-Ju Bai <baijiaju1990@...il.com>, "Dalessandro, Dennis" <dennis.dalessandro@...nelisnetworks.com>, "dledford@...hat.com" <dledford@...hat.com>, "jgg@...pe.ca" <jgg@...pe.ca> CC: "linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>, linux-kernel <linux-kernel@...r.kernel.org> Subject: RE: [BUG] infiniband: hw: hfi1: possible ABBA deadlock in pio_wait() and sc_disable() > > Hello, > > My static analysis tool reports a possible ABBA deadlock in the hfi1 driver in > Linux 5.10: > > sc_disable() > write_seqlock(&sc->waitlock); --> Line 956 (Lock A) > hfi1_qp_wakeup() > spin_lock_irqsave(&qp->s_lock, flags); --> Line 441 (Lock B) > > pio_wait() > spin_lock_irqsave(&qp->s_lock, flags); --> Line 939 (Lock B) > write_seqlock(&sc->waitlock); --> Line 941 (Lock A) > > When sc_disable() and pio_wait() are concurrently executed, the deadlock > can occur. > > I am not quite sure whether this possible deadlock is real and how to fix it if it > is real. > Any feedback would be appreciated, thanks :) > > Reported-by: TOTE Robot <oslab@...nghua.edu.cn> > > > Best wishes, > Jia-Ju Bai I don't think this can occur, but all other callers to hfi1_qp_wakeup() stash the waiters into an array. I will workup a patch to move the linked list of waiters to a local, drop the lock, and process the local array of waiters. Mike
Powered by blists - more mailing lists