1696ec8654
When booting a kernel with CONFIG_MISDN_DSP=y and CONFIG_CFI_CLANG=y,
there is a failure when dsp_cmx_send() is called indirectly from
call_timer_fn():
[ 0.371412] CFI failure at call_timer_fn+0x2f/0x150 (target: dsp_cmx_send+0x0/0x530; expected type: 0x92ada1e9)
The function pointer prototype that call_timer_fn() expects is
void (*fn)(struct timer_list *)
whereas dsp_cmx_send() has a parameter type of 'void *', which causes
the control flow integrity checks to fail because the parameter types do
not match.
Change dsp_cmx_send()'s parameter type to be 'struct timer_list' to
match the expected prototype. The argument is unused anyways, so this
has no functional change, aside from avoiding the CFI failure.
Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202308020936.58787e6c-oliver.sang@intel.com
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Fixes:
|
||
---|---|---|
.. | ||
clock.c | ||
core.c | ||
core.h | ||
dsp_audio.c | ||
dsp_biquad.h | ||
dsp_blowfish.c | ||
dsp_cmx.c | ||
dsp_core.c | ||
dsp_dtmf.c | ||
dsp_ecdis.h | ||
dsp_hwec.c | ||
dsp_hwec.h | ||
dsp_pipeline.c | ||
dsp_tones.c | ||
dsp.h | ||
fsm.c | ||
fsm.h | ||
hwchannel.c | ||
Kconfig | ||
l1oip_codec.c | ||
l1oip_core.c | ||
l1oip.h | ||
layer1.c | ||
layer1.h | ||
layer2.c | ||
layer2.h | ||
Makefile | ||
socket.c | ||
stack.c | ||
tei.c | ||
timerdev.c |