mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
drm/i915/pmu: Fix build error with GCOV and AutoFDO enabled
i915_pmu.c may fail to build with GCOV and AutoFDO enabled. ../drivers/gpu/drm/i915/i915_pmu.c:116:3: error: call to '__compiletime_assert_487' declared with 'error' attribute: BUILD_BUG_ON failed: bit > BITS_PER_TYPE(typeof_member(struct i915_pmu, enable)) - 1 116 | BUILD_BUG_ON(bit > | ^ Here is a way to reproduce the issue: $ git checkout v6.15 $ mkdir build $ ./scripts/kconfig/merge_config.sh -O build -n -m <(cat <<EOF CONFIG_DRM=y CONFIG_PCI=y CONFIG_DRM_I915=y CONFIG_PERF_EVENTS=y CONFIG_DEBUG_FS=y CONFIG_GCOV_KERNEL=y CONFIG_GCOV_PROFILE_ALL=y CONFIG_AUTOFDO_CLANG=y EOF ) $ PATH=${PATH}:${HOME}/llvm-20.1.5-x86_64/bin make LLVM=1 O=build \ olddefconfig $ PATH=${PATH}:${HOME}/llvm-20.1.5-x86_64/bin make LLVM=1 O=build \ CLANG_AUTOFDO_PROFILE=...PATH_TO_SOME_AFDO_PROFILE... \ drivers/gpu/drm/i915/i915_pmu.o Although not super sure what happened, by reviewing the code, it should depend on `__builtin_constant_p(bit)` directly instead of assuming `__builtin_constant_p(config)` makes `bit` a builtin constant. Also fix a nit, to reuse the `bit` local variable. Fixes:a644fde77f
("drm/i915/pmu: Change bitmask of enabled events to u32") Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org> Signed-off-by: Tvrtko Ursulin <tursulin@ursulin.net> Link: https://lore.kernel.org/r/20250612083023.562585-1-tzungbi@kernel.org (cherry picked from commit686d773186
) Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
This commit is contained in:
parent
e04c78d86a
commit
a7137b1825
1 changed files with 2 additions and 2 deletions
|
@ -112,7 +112,7 @@ static u32 config_mask(const u64 config)
|
||||||
{
|
{
|
||||||
unsigned int bit = config_bit(config);
|
unsigned int bit = config_bit(config);
|
||||||
|
|
||||||
if (__builtin_constant_p(config))
|
if (__builtin_constant_p(bit))
|
||||||
BUILD_BUG_ON(bit >
|
BUILD_BUG_ON(bit >
|
||||||
BITS_PER_TYPE(typeof_member(struct i915_pmu,
|
BITS_PER_TYPE(typeof_member(struct i915_pmu,
|
||||||
enable)) - 1);
|
enable)) - 1);
|
||||||
|
@ -121,7 +121,7 @@ static u32 config_mask(const u64 config)
|
||||||
BITS_PER_TYPE(typeof_member(struct i915_pmu,
|
BITS_PER_TYPE(typeof_member(struct i915_pmu,
|
||||||
enable)) - 1);
|
enable)) - 1);
|
||||||
|
|
||||||
return BIT(config_bit(config));
|
return BIT(bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_engine_event(struct perf_event *event)
|
static bool is_engine_event(struct perf_event *event)
|
||||||
|
|
Loading…
Add table
Reference in a new issue