Re: [PATCH block-6.7] blk-iocost: Fix an UBSAN shift-out-of-bounds warning

From: Jens Axboe
Date: Thu Feb 08 2024 - 12:13:27 EST



On Mon, 20 Nov 2023 12:25:56 -1000, Tejun Heo wrote:
> When iocg_kick_delay() is called from a CPU different than the one which set
> the delay, @now may be in the past of @iocg->delay_at leading to the
> following warning:
>
> UBSAN: shift-out-of-bounds in block/blk-iocost.c:1359:23
> shift exponent 18446744073709 is too large for 64-bit type 'u64' (aka 'unsigned long long')
> ...
> Call Trace:
> <TASK>
> dump_stack_lvl+0x79/0xc0
> __ubsan_handle_shift_out_of_bounds+0x2ab/0x300
> iocg_kick_delay+0x222/0x230
> ioc_rqos_merge+0x1d7/0x2c0
> __rq_qos_merge+0x2c/0x80
> bio_attempt_back_merge+0x83/0x190
> blk_attempt_plug_merge+0x101/0x150
> blk_mq_submit_bio+0x2b1/0x720
> submit_bio_noacct_nocheck+0x320/0x3e0
> __swap_writepage+0x2ab/0x9d0
>
> [...]

Applied, thanks!

[1/1] blk-iocost: Fix an UBSAN shift-out-of-bounds warning
(no commit info)

Best regards,
--
Jens Axboe