On Tue, Sep 14, 2021 at 08:54:02PM +0800, Yu Kuai wrote: > If blk-throttle is enabled and io is issued before > blk_throtl_register_queue() is done. Divide by zero crash will be > triggered in tg_may_dispatch() because 'throtl_slice' is uninitialized. > > The problem is fixed in commit 75f4dca59694 ("block: call > blk_register_queue earlier in device_add_disk") from mainline, however > it's too hard to backport this patch due to lots of refactoring. > > Thus introduce a new flag QUEUE_FLAG_THROTL_INIT_DONE. It will be set > after blk_throtl_register_queue() is done, and will be checked before > applying any config. > > Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx> > --- > block/blk-sysfs.c | 2 ++ > block/blk-throttle.c | 41 +++++++++++++++++++++++++++++++++++++++-- > include/linux/blkdev.h | 1 + > 3 files changed, 42 insertions(+), 2 deletions(-) The commit you reference above is in 5.15-rc1. What about all of the other stable kernel releases newer than 4.19.y? You do not want to move to a newer release and have a regression. And I would _REALLY_ like to take the identical commits that are upstream if at all possible. What is needed to backport instead of doing this one-off patch instead? When we take changes that are not upstream, almost always they are broken so we almost never want to do that. thanks, greg k-h