All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] umem: fix request_queue lock warning
@ 2009-04-23  4:23 Sage Weil
  2009-04-23  6:37 ` Jens Axboe
  0 siblings, 1 reply; 2+ messages in thread
From: Sage Weil @ 2009-04-23  4:23 UTC (permalink / raw)
  To: jens.axboe, linux-kernel; +Cc: jeff, neilb, yehuda

Hi,

The umem driver issues two warnings on boot, due to blk_plug_device() and 
blk_remove_plug() being called without q->queue_lock held.  Starting with 
e48ec690 (block: extend queue_flag bitops), the queue_flag_* functions 
warn if q->queue_lock doesn't appear to be locked.  In fact, q->queue_lock 
is NULL (though that apparently isn't otherwise a problem as the driver is 
using card->lock for everything).

Although blk_init_queue() with take a request_fn_proc and spinlock_t*, 
there isn't a corresponding init helper that takes a make_request_fn. 
Setting queue_lock to &card->lock explicitly seems to work fine for me.  
The warning goes away and the device appears to behave.

If there is a better solution, I'd be happy to test it out.  It looks like 
this problem showed up in 2.6.27.  There clearly aren't too many people 
using these NVRAM cards, but it'd be nice to see this fixed.

Thanks-
sage


[    1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver
[    1.538136] umem 0000:02:01.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[    1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))
[    1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -> 0xffffc200013d0c00 (0x100)
[    1.561279] umem 0000:02:01.0: Size 1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)
[    1.571114] umem 0000:02:01.0: Window size 16777216 bytes, IRQ 20
[    1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.
[    1.585989]  umema:<4>------------[ cut here ]------------
[    1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()
[    1.592025] Hardware name: H8SSL
[    1.592025] Modules linked in:
[    1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8
[    1.592025] Call Trace:
[    1.592025]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
[    1.592025]  [<ffffffff8025a5b5>] ? save_trace+0x3f/0x9b
[    1.592025]  [<ffffffff8025a68b>] ? add_lock_to_list+0x7a/0xba
[    1.592025]  [<ffffffff8025e609>] ? validate_chain+0xb3b/0xce8
[    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
[    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
[    1.592025]  [<ffffffff8025ef04>] ? __lock_acquire+0x74e/0x7b9
[    1.592025]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
[    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
[    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
[    1.592025]  [<ffffffff803ad165>] blk_plug_device+0x6d/0x106
[    1.592025]  [<ffffffff80441575>] mm_make_request+0x46/0x59
[    1.592025]  [<ffffffff803ac2d9>] generic_make_request+0x335/0x3cf
[    1.592025]  [<ffffffff8027fcc7>] ? mempool_alloc_slab+0x11/0x13
[    1.592025]  [<ffffffff8027fdce>] ? mempool_alloc+0x45/0x101
[    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
[    1.592025]  [<ffffffff803adda5>] submit_bio+0x10a/0x119
[    1.592025]  [<ffffffff802c8d00>] submit_bh+0xe5/0x109
[    1.592025]  [<ffffffff802cbf43>] block_read_full_page+0x2aa/0x2cb
[    1.592025]  [<ffffffff802cf4c4>] ? blkdev_get_block+0x0/0x4c
[    1.592025]  [<ffffffff805c90a8>] ? _spin_unlock_irq+0x36/0x51
[    1.592025]  [<ffffffff80286836>] ? __lru_cache_add+0x92/0xb2
[    1.592025]  [<ffffffff802cf008>] blkdev_readpage+0x13/0x15
[    1.592025]  [<ffffffff8027de06>] read_cache_page_async+0x90/0x134
[    1.592025]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
[    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[    1.592025]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
[    1.592025]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
[    1.592025]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
[    1.592025]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
[    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[    1.592025]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
[    1.592025]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
[    1.592025]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
[    1.592025]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
[    1.592025]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
[    1.592025]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
[    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[    1.592025]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
[    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[    1.592025]  [<ffffffff80209056>] _stext+0x56/0x130
[    1.592025]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
[    1.592025]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
[    1.592025]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
[    1.592025]  [<ffffffff8020d17a>] child_rip+0xa/0x20
[    1.592025]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
[    1.592025]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
[    1.592025]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
[    1.592025] ---[ end trace 7150b3b86da74e1e ]---
[    1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()
[    1.893848] Hardware name: H8SSL
[    1.893848] Modules linked in:
[    1.893848] Pid: 1, comm: swapper Tainted: G        W  2.6.29 #8
[    1.893848] Call Trace:
[    1.893848]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
[    1.893848]  [<ffffffff805c8411>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
[    1.893848]  [<ffffffff80254245>] ? __atomic_notifier_call_chain+0x0/0xb2
[    1.893848]  [<ffffffff805c90a3>] ? _spin_unlock_irq+0x31/0x51
[    1.893848]  [<ffffffff805c90bf>] ? _spin_unlock_irq+0x4d/0x51
[    1.893848]  [<ffffffff8044157d>] ? mm_make_request+0x4e/0x59
[    1.893848]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
[    1.893848]  [<ffffffff8025a75d>] ? put_lock_stats+0x25/0x27
[    1.893848]  [<ffffffff80441504>] ? mm_unplug_device+0x25/0x50
[    1.893848]  [<ffffffff803acf23>] blk_remove_plug+0x5f/0x91
[    1.893848]  [<ffffffff8044150f>] mm_unplug_device+0x30/0x50
[    1.893848]  [<ffffffff803ab74a>] blk_unplug+0x78/0x7d
[    1.893848]  [<ffffffff803ab75c>] blk_backing_dev_unplug+0xd/0xf
[    1.893848]  [<ffffffff802c853c>] block_sync_page+0x4a/0x4c
[    1.893848]  [<ffffffff8027da1c>] sync_page+0x44/0x4d
[    1.893848]  [<ffffffff805c66fd>] __wait_on_bit_lock+0x42/0x8a
[    1.893848]  [<ffffffff8027d9d8>] ? sync_page+0x0/0x4d
[    1.893848]  [<ffffffff8027d9c4>] __lock_page+0x64/0x6b
[    1.893848]  [<ffffffff802508db>] ? wake_bit_function+0x0/0x2a
[    1.893848]  [<ffffffff8027de4a>] read_cache_page_async+0xd4/0x134
[    1.893848]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
[    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[    1.893848]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
[    1.893848]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
[    1.893848]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
[    1.893848]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
[    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[    1.893848]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
[    1.893848]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
[    1.893848]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
[    1.893848]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
[    1.893848]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
[    1.893848]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
[    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[    1.893848]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
[    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[    1.893848]  [<ffffffff80209056>] _stext+0x56/0x130
[    1.893848]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
[    1.893848]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
[    1.893848]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
[    1.893848]  [<ffffffff8020d17a>] child_rip+0xa/0x20
[    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
[    1.893848]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
[    1.893848]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
[    1.893848] ---[ end trace 7150b3b86da74e1f ]---


Signed-off-by: Sage Weil <sage@newdream.net>
---
 drivers/block/umem.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index c24e1bd..de669fb 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -906,6 +906,7 @@ static int __devinit mm_pci_probe(struct pci_dev *dev,
 		goto failed_alloc;
 
 	blk_queue_make_request(card->queue, mm_make_request);
+	card->queue->queue_lock = &card->lock;
 	card->queue->queuedata = card;
 	card->queue->unplug_fn = mm_unplug_device;
 
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] umem: fix request_queue lock warning
  2009-04-23  4:23 [PATCH] umem: fix request_queue lock warning Sage Weil
@ 2009-04-23  6:37 ` Jens Axboe
  0 siblings, 0 replies; 2+ messages in thread
From: Jens Axboe @ 2009-04-23  6:37 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-kernel, jeff, neilb, yehuda

On Wed, Apr 22 2009, Sage Weil wrote:
> Hi,
> 
> The umem driver issues two warnings on boot, due to blk_plug_device() and 
> blk_remove_plug() being called without q->queue_lock held.  Starting with 
> e48ec690 (block: extend queue_flag bitops), the queue_flag_* functions 
> warn if q->queue_lock doesn't appear to be locked.  In fact, q->queue_lock 
> is NULL (though that apparently isn't otherwise a problem as the driver is 
> using card->lock for everything).
> 
> Although blk_init_queue() with take a request_fn_proc and spinlock_t*, 
> there isn't a corresponding init helper that takes a make_request_fn. 
> Setting queue_lock to &card->lock explicitly seems to work fine for me.  
> The warning goes away and the device appears to behave.
> 
> If there is a better solution, I'd be happy to test it out.  It looks like 
> this problem showed up in 2.6.27.  There clearly aren't too many people 
> using these NVRAM cards, but it'd be nice to see this fixed.
> 
> Thanks-
> sage
> 
> 
> [    1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver
> [    1.538136] umem 0000:02:01.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
> [    1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))
> [    1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -> 0xffffc200013d0c00 (0x100)
> [    1.561279] umem 0000:02:01.0: Size 1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)
> [    1.571114] umem 0000:02:01.0: Window size 16777216 bytes, IRQ 20
> [    1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.
> [    1.585989]  umema:<4>------------[ cut here ]------------
> [    1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()
> [    1.592025] Hardware name: H8SSL
> [    1.592025] Modules linked in:
> [    1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8
> [    1.592025] Call Trace:
> [    1.592025]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
> [    1.592025]  [<ffffffff8025a5b5>] ? save_trace+0x3f/0x9b
> [    1.592025]  [<ffffffff8025a68b>] ? add_lock_to_list+0x7a/0xba
> [    1.592025]  [<ffffffff8025e609>] ? validate_chain+0xb3b/0xce8
> [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
> [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
> [    1.592025]  [<ffffffff8025ef04>] ? __lock_acquire+0x74e/0x7b9
> [    1.592025]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
> [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
> [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
> [    1.592025]  [<ffffffff803ad165>] blk_plug_device+0x6d/0x106
> [    1.592025]  [<ffffffff80441575>] mm_make_request+0x46/0x59
> [    1.592025]  [<ffffffff803ac2d9>] generic_make_request+0x335/0x3cf
> [    1.592025]  [<ffffffff8027fcc7>] ? mempool_alloc_slab+0x11/0x13
> [    1.592025]  [<ffffffff8027fdce>] ? mempool_alloc+0x45/0x101
> [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
> [    1.592025]  [<ffffffff803adda5>] submit_bio+0x10a/0x119
> [    1.592025]  [<ffffffff802c8d00>] submit_bh+0xe5/0x109
> [    1.592025]  [<ffffffff802cbf43>] block_read_full_page+0x2aa/0x2cb
> [    1.592025]  [<ffffffff802cf4c4>] ? blkdev_get_block+0x0/0x4c
> [    1.592025]  [<ffffffff805c90a8>] ? _spin_unlock_irq+0x36/0x51
> [    1.592025]  [<ffffffff80286836>] ? __lru_cache_add+0x92/0xb2
> [    1.592025]  [<ffffffff802cf008>] blkdev_readpage+0x13/0x15
> [    1.592025]  [<ffffffff8027de06>] read_cache_page_async+0x90/0x134
> [    1.592025]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
> [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
> [    1.592025]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
> [    1.592025]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
> [    1.592025]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
> [    1.592025]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
> [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
> [    1.592025]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
> [    1.592025]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
> [    1.592025]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
> [    1.592025]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
> [    1.592025]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
> [    1.592025]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
> [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
> [    1.592025]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
> [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
> [    1.592025]  [<ffffffff80209056>] _stext+0x56/0x130
> [    1.592025]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
> [    1.592025]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
> [    1.592025]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
> [    1.592025]  [<ffffffff8020d17a>] child_rip+0xa/0x20
> [    1.592025]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
> [    1.592025]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
> [    1.592025]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
> [    1.592025] ---[ end trace 7150b3b86da74e1e ]---
> [    1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()
> [    1.893848] Hardware name: H8SSL
> [    1.893848] Modules linked in:
> [    1.893848] Pid: 1, comm: swapper Tainted: G        W  2.6.29 #8
> [    1.893848] Call Trace:
> [    1.893848]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
> [    1.893848]  [<ffffffff805c8411>] ? trace_hardirqs_on_thunk+0x3a/0x3f
> [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
> [    1.893848]  [<ffffffff80254245>] ? __atomic_notifier_call_chain+0x0/0xb2
> [    1.893848]  [<ffffffff805c90a3>] ? _spin_unlock_irq+0x31/0x51
> [    1.893848]  [<ffffffff805c90bf>] ? _spin_unlock_irq+0x4d/0x51
> [    1.893848]  [<ffffffff8044157d>] ? mm_make_request+0x4e/0x59
> [    1.893848]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
> [    1.893848]  [<ffffffff8025a75d>] ? put_lock_stats+0x25/0x27
> [    1.893848]  [<ffffffff80441504>] ? mm_unplug_device+0x25/0x50
> [    1.893848]  [<ffffffff803acf23>] blk_remove_plug+0x5f/0x91
> [    1.893848]  [<ffffffff8044150f>] mm_unplug_device+0x30/0x50
> [    1.893848]  [<ffffffff803ab74a>] blk_unplug+0x78/0x7d
> [    1.893848]  [<ffffffff803ab75c>] blk_backing_dev_unplug+0xd/0xf
> [    1.893848]  [<ffffffff802c853c>] block_sync_page+0x4a/0x4c
> [    1.893848]  [<ffffffff8027da1c>] sync_page+0x44/0x4d
> [    1.893848]  [<ffffffff805c66fd>] __wait_on_bit_lock+0x42/0x8a
> [    1.893848]  [<ffffffff8027d9d8>] ? sync_page+0x0/0x4d
> [    1.893848]  [<ffffffff8027d9c4>] __lock_page+0x64/0x6b
> [    1.893848]  [<ffffffff802508db>] ? wake_bit_function+0x0/0x2a
> [    1.893848]  [<ffffffff8027de4a>] read_cache_page_async+0xd4/0x134
> [    1.893848]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
> [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
> [    1.893848]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
> [    1.893848]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
> [    1.893848]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
> [    1.893848]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
> [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
> [    1.893848]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
> [    1.893848]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
> [    1.893848]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
> [    1.893848]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
> [    1.893848]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
> [    1.893848]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
> [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
> [    1.893848]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
> [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
> [    1.893848]  [<ffffffff80209056>] _stext+0x56/0x130
> [    1.893848]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
> [    1.893848]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
> [    1.893848]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
> [    1.893848]  [<ffffffff8020d17a>] child_rip+0xa/0x20
> [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
> [    1.893848]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
> [    1.893848]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
> [    1.893848] ---[ end trace 7150b3b86da74e1f ]---
> 
> 
> Signed-off-by: Sage Weil <sage@newdream.net>
> ---
>  drivers/block/umem.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/block/umem.c b/drivers/block/umem.c
> index c24e1bd..de669fb 100644
> --- a/drivers/block/umem.c
> +++ b/drivers/block/umem.c
> @@ -906,6 +906,7 @@ static int __devinit mm_pci_probe(struct pci_dev *dev,
>  		goto failed_alloc;
>  
>  	blk_queue_make_request(card->queue, mm_make_request);
> +	card->queue->queue_lock = &card->lock;
>  	card->queue->queuedata = card;
>  	card->queue->unplug_fn = mm_unplug_device;

That looks like the correct fix, we are already using that very lock to
protect the plugging. I guess the original commit just forgot to inform
the block layer that this is the queue lock.

I'll queue up your fix.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2009-04-23  6:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-23  4:23 [PATCH] umem: fix request_queue lock warning Sage Weil
2009-04-23  6:37 ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.