In a previous commit, the intel_display_wa() was changed so it wouldn't receive an integer as the workaround number, but the enum value itself. This caused compilation not to fail anymore when the enum passed didn't exist.
Bring this back by using BUILD_BUG_ON() to check that the enum passed sits within the range of defined enums. Cc: Jani Nikula <[email protected]> Signed-off-by: Luca Coelho <[email protected]> --- drivers/gpu/drm/i915/display/intel_display_wa.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h b/drivers/gpu/drm/i915/display/intel_display_wa.h index 15fec843f15e..4239e4295ec7 100644 --- a/drivers/gpu/drm/i915/display/intel_display_wa.h +++ b/drivers/gpu/drm/i915/display/intel_display_wa.h @@ -60,11 +60,14 @@ enum intel_display_wa { INTEL_DISPLAY_WA_22012358565, INTEL_DISPLAY_WA_22014263786, INTEL_DISPLAY_WA_22021048059, + + INTEL_DISPLAY_WA_COUNT }; bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name); -#define intel_display_wa(__display, __wa) \ - __intel_display_wa((__display), __wa, __stringify(__wa)) - +#define intel_display_wa(__display, __wa) ({ \ + BUILD_BUG_ON(__wa >= INTEL_DISPLAY_WA_COUNT); \ + __intel_display_wa((__display), __wa, __stringify(__wa)); \ + }) #endif -- 2.51.0
