Messages in this thread | | | From | Linus Torvalds <> | Date | Wed, 30 Nov 2022 08:35:13 -0800 | Subject | Re: [PATCH 01/31] rhashtable: Allow rhashtable to be used from irq-safe contexts |
| |
On Wed, Nov 30, 2022 at 12:23 AM Tejun Heo <tj@kernel.org> wrote: > > > static inline void rht_lock(struct bucket_table *tbl, > - struct rhash_lock_head __rcu **bkt) > + struct rhash_lock_head __rcu **bkt, > + unsigned long *flags)
I guess it doesn't matter as long as this actually gets inlined, but wouldn't it be better to have
flags = rht_lock(..); ... rht_unlock(.., flags);
as the calling convention? Rather than passing a pointer to the stack around.
That's what the native _raw_spin_lock_irqsave() interface is (even if "spin_lock_irqsave()" itself for historical reasons uses that inline asm-like "pass argument by reference *without* using a pointer")
And gaah, we should have made 'flags' be a real type long ago, but I guess 'unsigned long' is too ingrained and traditional to change that now.
Linus
| |