mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 02:09:31 +07:00
drm/i915: fix driver's versions of WARN_ON & WARN_ON_ONCE
The current versions of these two macros don't work correctly if the argument expression happens to contain a modulo operator (%) -- when stringified, it gets interpreted as a printf formatting character! With a specifically crafted parameter, this could probably cause a kernel OOPS; consider WARN_ON(p%s) or WARN_ON(f %*pEp). Instead, we should use an explicit "%s" format, with the stringified expression as the coresponding literal-string argument. Signed-off-by: Dave Gordon <david.s.gordon@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
901c2daf05
commit
4eee4920f0
@ -68,11 +68,11 @@
|
|||||||
BUILD_BUG_ON(__i915_warn_cond); \
|
BUILD_BUG_ON(__i915_warn_cond); \
|
||||||
WARN(__i915_warn_cond, "WARN_ON(" #x ")"); })
|
WARN(__i915_warn_cond, "WARN_ON(" #x ")"); })
|
||||||
#else
|
#else
|
||||||
#define WARN_ON(x) WARN((x), "WARN_ON(" #x ")")
|
#define WARN_ON(x) WARN((x), "WARN_ON(%s)", #x )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef WARN_ON_ONCE
|
#undef WARN_ON_ONCE
|
||||||
#define WARN_ON_ONCE(x) WARN_ONCE((x), "WARN_ON_ONCE(" #x ")")
|
#define WARN_ON_ONCE(x) WARN_ONCE((x), "WARN_ON_ONCE(%s)", #x )
|
||||||
|
|
||||||
#define MISSING_CASE(x) WARN(1, "Missing switch case (%lu) in %s\n", \
|
#define MISSING_CASE(x) WARN(1, "Missing switch case (%lu) in %s\n", \
|
||||||
(long) (x), __func__);
|
(long) (x), __func__);
|
||||||
|
Loading…
Reference in New Issue
Block a user