diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2006-10-30 01:46:36 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-30 15:08:40 -0500 |
commit | 7259f0d05d595b73ef312a082e628627c6414969 (patch) | |
tree | 6227c5e3cd0c31fa80c7a35113007caaf70bf3b6 /drivers/scsi/lpfc | |
parent | 70812522b847bdb8fabee963191734f5fa3143f3 (diff) |
[PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD
kernel: INFO: trying to register non-static key.
kernel: the code is fine but needs lockdep annotation.
kernel: turning off the locking correctness validator.
kernel: [<c04051ed>] show_trace_log_lvl+0x58/0x16a
kernel: [<c04057fa>] show_trace+0xd/0x10
kernel: [<c0405913>] dump_stack+0x19/0x1b
kernel: [<c043b1e2>] __lock_acquire+0xf0/0x90d
kernel: [<c043bf70>] lock_acquire+0x4b/0x6b
kernel: [<c061472f>] _spin_lock_irqsave+0x22/0x32
kernel: [<c04363d3>] prepare_to_wait+0x17/0x4b
kernel: [<f89a24b6>] lpfc_do_work+0xdd/0xcc2 [lpfc]
kernel: [<c04361b9>] kthread+0xc3/0xf2
kernel: [<c0402005>] kernel_thread_helper+0x5/0xb
Another case of non-static lockdep keys; duplicate the paradigm set by
DECLARE_COMPLETION_ONSTACK and introduce DECLARE_WAIT_QUEUE_HEAD_ONSTACK.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Greg KH <gregkh@suse.de>
Cc: Markus Lidel <markus.lidel@shadowconnect.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 2 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index d586c3d3b0d0..19c79a0549a7 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -305,7 +305,7 @@ lpfc_do_work(void *p) | |||
305 | { | 305 | { |
306 | struct lpfc_hba *phba = p; | 306 | struct lpfc_hba *phba = p; |
307 | int rc; | 307 | int rc; |
308 | DECLARE_WAIT_QUEUE_HEAD(work_waitq); | 308 | DECLARE_WAIT_QUEUE_HEAD_ONSTACK(work_waitq); |
309 | 309 | ||
310 | set_user_nice(current, -20); | 310 | set_user_nice(current, -20); |
311 | phba->work_wait = &work_waitq; | 311 | phba->work_wait = &work_waitq; |
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 24a1779b9af4..582f5ea4e84e 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -2983,7 +2983,7 @@ lpfc_sli_issue_iocb_wait(struct lpfc_hba * phba, | |||
2983 | struct lpfc_iocbq * prspiocbq, | 2983 | struct lpfc_iocbq * prspiocbq, |
2984 | uint32_t timeout) | 2984 | uint32_t timeout) |
2985 | { | 2985 | { |
2986 | DECLARE_WAIT_QUEUE_HEAD(done_q); | 2986 | DECLARE_WAIT_QUEUE_HEAD_ONSTACK(done_q); |
2987 | long timeleft, timeout_req = 0; | 2987 | long timeleft, timeout_req = 0; |
2988 | int retval = IOCB_SUCCESS; | 2988 | int retval = IOCB_SUCCESS; |
2989 | uint32_t creg_val; | 2989 | uint32_t creg_val; |
@@ -3061,7 +3061,7 @@ int | |||
3061 | lpfc_sli_issue_mbox_wait(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq, | 3061 | lpfc_sli_issue_mbox_wait(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmboxq, |
3062 | uint32_t timeout) | 3062 | uint32_t timeout) |
3063 | { | 3063 | { |
3064 | DECLARE_WAIT_QUEUE_HEAD(done_q); | 3064 | DECLARE_WAIT_QUEUE_HEAD_ONSTACK(done_q); |
3065 | DECLARE_WAITQUEUE(wq_entry, current); | 3065 | DECLARE_WAITQUEUE(wq_entry, current); |
3066 | uint32_t timeleft = 0; | 3066 | uint32_t timeleft = 0; |
3067 | int retval; | 3067 | int retval; |