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, 01 Jan 2009 23:35:21 +0530 From: Raja R Harinath <harinath@...rynot.org> To: linux-kernel@...r.kernel.org Subject: Re: [PATCH for -tip 4/4] irq: for_each_irq_desc() makes simplify Hi, KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com> writes: > Subject: [PATCH] irq: for_each_irq_desc() makes simplify > Impact: cleanup > > all for_each_irq_desc() usage point have !desc check. > then its check can move into for_each_irq_desc() macro. [snip] > Index: b/include/linux/irqnr.h > =================================================================== > --- a/include/linux/irqnr.h > +++ b/include/linux/irqnr.h > @@ -25,10 +25,14 @@ extern struct irq_desc *irq_to_desc(unsi > > # define for_each_irq_desc(irq, desc) \ > for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ > - irq++, desc = irq_to_desc(irq)) > + irq++, desc = irq_to_desc(irq)) \ > + if (desc) > + > + > # define for_each_irq_desc_reverse(irq, desc) \ > for (irq = nr_irqs - 1, desc = irq_to_desc(irq); irq >= 0; \ > - irq--, desc = irq_to_desc(irq)) > + irq--, desc = irq_to_desc(irq)) \ > + if (desc) I know this has gone in, but isn't this naked 'if' unsafe. Consider the following hypothetical code: if (safe) for_each_irq_desc(irq, desc) { ... } else panic(); With the macro definition above, the loop would panic() each time !desc, and _not_ panic() when !safe. I'd consider this behaviour to be unexpected, to say the least :-) The fix is to change the if (desc) in the macro to if (!desc) ; else - Hari -- 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