Re: [patch] lockdep: annotate pktcdvd natural device hierarchy

Andrew Morton
2006-07-25T02:27:28Z

On Sun, 16 Jul 2006 12:33:45 +0200
Laurent Riffard <laurent.riffard@free.fr> wrote:

>
> Thank you Peter, the above patch removed the "possible recursive
> locking detected" message.
>
> Now, I've got a new one (will this thread never end ?):
>
> pktcdvd: writer pktcdvd0 mapped to hdc
> INFO: trying to register non-static key.
> the code is fine but needs lockdep annotation.
> turning off the locking correctness validator.
> [<c0104db5>] show_trace+0xd/0x10
> [<c0104dd1>] dump_stack+0x19/0x1c
> [<c012c2e1>] __lock_acquire+0x10f/0x9a5
> [<c012cbd7>] lock_acquire+0x60/0x80
> [<c0292131>] _spin_lock_irq+0x1f/0x2e
> [<c028fe86>] wait_for_completion+0x29/0xe5
> [<e1136299>] pkt_generic_packet+0x1bb/0x1e8 [pktcdvd]
> [<e113671a>] pkt_get_disc_info+0x3d/0x77 [pktcdvd]
> [<e113836f>] pkt_open+0xc3/0xbf4 [pktcdvd]
> [<c0159c36>] do_open+0xa1/0x3bd
> [<c015a179>] blkdev_open+0x1f/0x48
> [<c0151c87>] __dentry_open+0xb8/0x186
> [<c0151dc3>] nameidata_to_filp+0x1c/0x2e
> [<c0151e03>] do_filp_open+0x2e/0x35
> [<c0152ce1>] do_sys_open+0x40/0xbb
> [<c0152d88>] sys_open+0x16/0x18
> [<c0102c2d>] sysenter_past_esp+0x56/0x8d

I assume this:

--- a/drivers/block/pktcdvd.c~pktcdvd-lockdep-fixes-fix
+++ a/drivers/block/pktcdvd.c
@@ -348,7 +348,7 @@ static int pkt_generic_packet(struct pkt
char sense[SCSI_SENSE_BUFFERSIZE];
request_queue_t *q;
struct request *rq;
- DECLARE_COMPLETION(wait);
+ DECLARE_COMPLETION_ONSTACK(wait);
int err = 0;

q = bdev_get_queue(pd->bdev);
_

will shut that up.

Arjan, do we still need
lockdep-annotate-pktcdvd-natural-device-hierarchy.patch?

And could you please take a look at Peter's block_dev.c changes? Closely,
please - it'd be nice to get this right one of these days ;)