]> Git Repo - linux.git/commit
block: fix bd_size_lock use
authorDamien Le Moal <[email protected]>
Thu, 28 Jan 2021 06:36:19 +0000 (15:36 +0900)
committerJens Axboe <[email protected]>
Thu, 28 Jan 2021 14:31:50 +0000 (07:31 -0700)
commit0fe37724f8e70fa4cb72948f60fca553702df768
tree3094f7e80c8206dd1842188de08e9c25b459a1dc
parent6c635caef410aa757befbd8857c1eadde5cc22ed
block: fix bd_size_lock use

Some block device drivers, e.g. the skd driver, call set_capacity() with
IRQ disabled. This results in lockdep ito complain about inconsistent
lock states ("inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage")
because set_capacity takes a block device bd_size_lock using the
functions spin_lock() and spin_unlock(). Ensure a consistent locking
state by replacing these calls with spin_lock_irqsave() and
spin_lock_irqrestore(). The same applies to bdev_set_nr_sectors().
With this fix, all lockdep complaints are resolved.

Signed-off-by: Damien Le Moal <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
block/genhd.c
block/partitions/core.c
This page took 0.073965 seconds and 4 git commands to generate.