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: Sun, 06 Mar 2022 09:33:56 -0500 From: James Bottomley <James.Bottomley@...senPartnership.com> To: Xiaomeng Tong <xiam0nd.tong@...il.com> Cc: arnd@...db.de, gregkh@...uxfoundation.org, jakobkoschel@...il.com, jannh@...gle.com, keescook@...omium.org, linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org, linux-mm@...ck.org, netdev@...r.kernel.org, torvalds@...ux-foundation.org Subject: Re: [PATCH 2/6] list: add new MACROs to make iterator invisiable outside the loop On Thu, 2022-03-03 at 11:31 +0800, Xiaomeng Tong wrote: > On Wed, 02 Mar 2022 08:02:23 -0500, James Bottomley > <James.Bottomley@...senPartnership.com> wrote: > > pos shouldn't be an input to the macro since it's being declared > > inside > > it. All that will do will set up confusion about the shadowing of > > pos. > > The macro should still work as > > > > #define list_for_each_entry_inside(type, head, member) \ > > ... > > > > For safety, you could > > > > #define POS __UNIQUE_ID(pos) > > > > and use POS as the loop variable .. you'll have to go through an > > intermediate macro to get it to be stable. There are examples in > > linux/rcupdate.h > > The outer "pos" variable is no longer needed and thus the declare > statement before the loop is removed, see the demostration in PATCH > 3~6. Now, there is only one inner "pos" variable left. Thus, there > should be no such *shadow* problem. So why is pos in the signature of your #define then? Because that means it expands to whatever goes in the first field of list_for_each_entry_inside(). If someone needs to specify a unique name to avoid shadowing an existing variable, then hide pos and use UNIQUE_ID instead was the whole thrust of this comment. James
Powered by blists - more mailing lists