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, 5 Apr 2012 23:26:07 -0700 From: Linus Torvalds <torvalds@...ux-foundation.org> To: Liu Ping Fan <kernelfans@...il.com> Cc: linux-kernel@...r.kernel.org Subject: Re: [PATCH] pid: remove redundant condition On Thu, Apr 5, 2012 at 11:16 PM, Liu Ping Fan <kernelfans@...il.com> wrote: > From: Liu Ping Fan <pingfank@...ux.vnet.ibm.com> > > Signed-off-by: Liu Ping Fan <pingfank@...ux.vnet.ibm.com> > --- > kernel/pid.c | 3 +-- > 1 files changed, 1 insertions(+), 2 deletions(-) > > diff --git a/kernel/pid.c b/kernel/pid.c > index 9f08dfa..e4ca244 100644 > --- a/kernel/pid.c > +++ b/kernel/pid.c > @@ -248,8 +248,7 @@ void put_pid(struct pid *pid) > return; > > ns = pid->numbers[pid->level].ns; > - if ((atomic_read(&pid->count) == 1) || > - atomic_dec_and_test(&pid->count)) { > + if (atomic_dec_and_test(&pid->count) { > kmem_cache_free(ns->pid_cachep, pid); > put_pid_ns(ns); > } No, this isn't necessarily redundant. The atomic_dec_and_test() instruction can be very expensive. So if count was 1 before, we're the last user, and we can free it without the expensive atomic_dec_and_test(). However, if we are *not* the last user, then we can race with another user decrementing the count, so now we need to use the expensive version. Now, whether that special case is really worth it or not, I don't know. But it's not redundant. Linus -- 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