Message ID | 20180709083650.23549-1-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 2018-07-09 at 10:36 +0200, Daniel Vetter wrote: > To avoid compilers complainig about ambigious else blocks when putting > an if condition into a for_each macro one needs to invert the > condition and add a dummy else. We have a nice little convenience > macro for that in drm headers, let's move it out. Subsequent patches > will roll it out to other places. > > Motivated by a discussion with Andy and Yisheng, who want to add > another for_each_macro which would benefit from for_each_if() instead > of hand-rolling it. > Thanks, Daniel! Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > Cc: Gustavo Padovan <gustavo@padovan.org> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> > Cc: Sean Paul <seanpaul@chromium.org> > Cc: David Airlie <airlied@linux.ie> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Kees Cook <keescook@chromium.org> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: NeilBrown <neilb@suse.com> > Cc: Wei Wang <wvw@google.com> > Cc: Stefan Agner <stefan@agner.ch> > Cc: Andrei Vagin <avagin@openvz.org> > Cc: Randy Dunlap <rdunlap@infradead.org> > Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Cc: Yisheng Xie <ysxie@foxmail.com> > --- > include/drm/drmP.h | 3 --- > include/linux/kernel.h | 3 +++ > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index f7a19c2a7a80..05350424a4d3 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -110,7 +110,4 @@ static inline bool drm_can_sleep(void) > return true; > } > > -/* helper for handling conditionals in various for_each macros */ > -#define for_each_if(condition) if (!(condition)) {} else > - > #endif > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index 941dc0a5a877..4cb95ab9a5bc 100644 > --- a/include/linux/kernel.h > +++ b/include/linux/kernel.h > @@ -71,6 +71,9 @@ > */ > #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + > __must_be_array(arr)) > > +/* helper for handling conditionals in various for_each macros */ > +#define for_each_if(condition) if (!(condition)) {} else > + > #define u64_to_user_ptr(x) ( \ > { \ > typecheck(u64, x); \
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index f7a19c2a7a80..05350424a4d3 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -110,7 +110,4 @@ static inline bool drm_can_sleep(void) return true; } -/* helper for handling conditionals in various for_each macros */ -#define for_each_if(condition) if (!(condition)) {} else - #endif diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 941dc0a5a877..4cb95ab9a5bc 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -71,6 +71,9 @@ */ #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) +/* helper for handling conditionals in various for_each macros */ +#define for_each_if(condition) if (!(condition)) {} else + #define u64_to_user_ptr(x) ( \ { \ typecheck(u64, x); \
To avoid compilers complainig about ambigious else blocks when putting an if condition into a for_each macro one needs to invert the condition and add a dummy else. We have a nice little convenience macro for that in drm headers, let's move it out. Subsequent patches will roll it out to other places. Motivated by a discussion with Andy and Yisheng, who want to add another for_each_macro which would benefit from for_each_if() instead of hand-rolling it. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Gustavo Padovan <gustavo@padovan.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Sean Paul <seanpaul@chromium.org> Cc: David Airlie <airlied@linux.ie> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Kees Cook <keescook@chromium.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: NeilBrown <neilb@suse.com> Cc: Wei Wang <wvw@google.com> Cc: Stefan Agner <stefan@agner.ch> Cc: Andrei Vagin <avagin@openvz.org> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Yisheng Xie <ysxie@foxmail.com> --- include/drm/drmP.h | 3 --- include/linux/kernel.h | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-)