• Ming Lei's avatar
    sbitmap: Protect swap_lock from hardirq · fe76fc6a
    Ming Lei authored
    Because we may call blk_mq_get_driver_tag() directly from
    blk_mq_dispatch_rq_list() without holding any lock, then HARDIRQ may
    come and the above DEADLOCK is triggered.
    Commit ab53dcfb3e7b ("sbitmap: Protect swap_lock from hardirq") tries to
    fix this issue by using 'spin_lock_bh', which isn't enough because we
    complete request from hardirq context direclty in case of multiqueue.
    Cc: Clark Williams <williams@redhat.com>
    Fixes: ab53dcfb3e7b ("sbitmap: Protect swap_lock from hardirq")
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
sbitmap.c 16.9 KB