summaryrefslogtreecommitdiff
path: root/kernel/workqueue.c
diff options
context:
space:
mode:
authorChancel Liu <chancel.liu@nxp.com>2026-06-01 17:33:27 +0900
committerMark Brown <broonie@kernel.org>2026-06-04 11:16:58 +0100
commit4790af1cc2e8871fb31f28c66e42b9a949a23992 (patch)
treebe8d9148f8e0398f301b696f00c190c2913b4c3f /kernel/workqueue.c
parentc9c64820a48dcc739311fd7a9138511888539d02 (diff)
ASoC: fsl_sai: Fix 32 slots TDM broken by integer shift UB in xMR write
When configuring 32 slots TDM (channels == slots == 32), the xMR (Mask Register) write used: ~0UL - ((1 << min(channels, slots)) - 1) The literal "1" is a signed 32-bit int. Shifting it by 32 positions is undefined behaviour which may set this register to 0xFFFFFFFF, masking all 32 slots. Use GENMASK_U32() macro instead. For 32 slots this produces a zero mask: ~GENMASK_U32(31, 0) = ~0xFFFFFFFF = 0x00000000 Behaviour for fewer than 32 slots is unchanged. Fixes: 770f58d7d2c5 ("ASoC: fsl_sai: Support multiple data channel enable bits") Cc: stable@vger.kernel.org Signed-off-by: Chancel Liu <chancel.liu@nxp.com> Reviewed-by: Shengjiu Wang <shengjiu.wang@gmail.com> Link: https://patch.msgid.link/20260601083327.1535185-1-chancel.liu@oss.nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
0 files changed, 0 insertions, 0 deletions