mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-12 01:20:14 +00:00
cleanup: fix scoped_class()
This is a class, not a guard so why on earth is it checking for guard pointers or conditional lock acquisition? None of it makes any sense at all. I'm not sure what happened back then. Maybe I had a brief psychedelic period that I completely forgot about and spaced out into a zone where that initial macro implementation made any sense at all. Link: https://patch.msgid.link/20251103-work-creds-init_cred-v1-1-cb3ec8711a6a@kernel.org Fixes: 5c21c5f22d07 ("cleanup: add a scoped version of CLASS()") Reviewed-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
dcb6fa37fd
commit
4e97bae1b4
@ -290,15 +290,16 @@ static inline class_##_name##_t class_##_name##ext##_constructor(_init_args) \
|
||||
class_##_name##_t var __cleanup(class_##_name##_destructor) = \
|
||||
class_##_name##_constructor
|
||||
|
||||
#define scoped_class(_name, var, args) \
|
||||
for (CLASS(_name, var)(args); \
|
||||
__guard_ptr(_name)(&var) || !__is_cond_ptr(_name); \
|
||||
({ goto _label; })) \
|
||||
if (0) { \
|
||||
_label: \
|
||||
break; \
|
||||
#define __scoped_class(_name, var, _label, args...) \
|
||||
for (CLASS(_name, var)(args); ; ({ goto _label; })) \
|
||||
if (0) { \
|
||||
_label: \
|
||||
break; \
|
||||
} else
|
||||
|
||||
#define scoped_class(_name, var, args...) \
|
||||
__scoped_class(_name, var, __UNIQUE_ID(label), args)
|
||||
|
||||
/*
|
||||
* DEFINE_GUARD(name, type, lock, unlock):
|
||||
* trivial wrapper around DEFINE_CLASS() above specifically
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user