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: Thu, 21 May 2015 10:15:34 +0200 From: AdrianRemonda <adrianremonda@...il.com> To: Dan Carpenter <dan.carpenter@...cle.com> Cc: "open list:STAGING SUBSYSTEM" <devel@...verdev.osuosl.org>, "moderated list:STAGING - LUSTRE..." <HPDD-discuss@...1.01.org>, Andreas Dilger <andreas.dilger@...el.com>, Greg Donald <gdonald@...il.com>, open list <linux-kernel@...r.kernel.org>, Oleg Drokin <oleg.drokin@...el.com>, Julia Lawall <Julia.Lawall@...6.fr>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Joe Perches <joe@...ches.com> Subject: Re: [PATCH 4/4] Staging: lustre: sparse lock warning fix On Tue, May 19, 2015 at 12:21:15AM +0300, Dan Carpenter wrote: > On Mon, May 18, 2015 at 08:34:51PM +0200, Adrian Remonda wrote: > > Fixed sparse warning: context imbalance in 'nrs_resource_put_safe' - > > 'different lock contexts for basic block' by releasing the lock on each > > iteration of the for loop. > > > > That changelog doesn't sound correct at all. That's not a correct > motivation or explanation. > > I reviewed the patch and it's likely going to cause dead locks. The code > is trying to take the spinlock for the first pointer in the array and > release it at the end. Now it takes the first pointer's spinlock a > bunch of times (dead lock) and releases it once (will not happen because > we are already dead). > > Hello Dan, thanks for the comments. The code would end up looking as next, I don't undertand where the deadlock would be. I know the older code would work, I just changed it to keep the lock locked the less time as possible. for (i = 0; i < NRS_RES_MAX; i++) { if (pols[i] == NULL) continue; if (nrs == NULL) { nrs = pols[i]->pol_nrs; } spin_lock(&nrs->nrs_lock); nrs_policy_put_locked(pols[i]); spin_unlock(&nrs->nrs_lock); } best regards, Adrian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists