On Jun 22, 2023 / 16:42, Ming Lei wrote: > When __blkcg_rstat_flush() is called from cgroup_rstat_flush*() code > path, interrupt is always disabled. > > When we start to flush blkcg per-cpu stats list in __blkg_release() > for avoiding to leak blkcg_gq's reference in commit 20cb1c2fb756 > ("blk-cgroup: Flush stats before releasing blkcg_gq"), local irq > isn't disabled yet, then lockdep warning may be triggered because > the dependent cgroup locks may be acquired from irq(soft irq) handler. > > Fix the issue by disabling local irq always. > > Fixes: 20cb1c2fb756 ("blk-cgroup: Flush stats before releasing blkcg_gq") > Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > Closes: https://lore.kernel.org/linux-block/pz2wzwnmn5tk3pwpskmjhli6g3qly7eoknilb26of376c7kwxy@qydzpvt6zpis/T/#u > Cc: stable@xxxxxxxxxxxxxxx > Cc: Jay Shin <jaeshin@xxxxxxxxxx> > Cc: Tejun Heo <tj@xxxxxxxxxx> > Cc: Waiman Long <longman@xxxxxxxxxx> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> Thanks Ming, I confirmed this avoids the WARN I reported. I also ran my test sets and observed no regression. Looks good. Tested-by: Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>