Commit 91ebe2a9 authored by Heiko Carstens's avatar Heiko Carstens Committed by Linus Torvalds

[PATCH] lockdep: annotate qeth driver

Annotate the qeth driver which uses a private skb-queue-head that is safely
used in hardirq context too.

Has no effect on non-lockdep kernels.
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: default avatarIngo Molnar <mingo@elte.hu>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 60be6b9a
...@@ -84,6 +84,8 @@ static debug_info_t *qeth_dbf_qerr = NULL; ...@@ -84,6 +84,8 @@ static debug_info_t *qeth_dbf_qerr = NULL;
DEFINE_PER_CPU(char[256], qeth_dbf_txt_buf); DEFINE_PER_CPU(char[256], qeth_dbf_txt_buf);
static struct lock_class_key qdio_out_skb_queue_key;
/** /**
* some more definitions and declarations * some more definitions and declarations
*/ */
...@@ -3229,6 +3231,9 @@ qeth_alloc_qdio_buffers(struct qeth_card *card) ...@@ -3229,6 +3231,9 @@ qeth_alloc_qdio_buffers(struct qeth_card *card)
&card->qdio.out_qs[i]->qdio_bufs[j]; &card->qdio.out_qs[i]->qdio_bufs[j];
skb_queue_head_init(&card->qdio.out_qs[i]->bufs[j]. skb_queue_head_init(&card->qdio.out_qs[i]->bufs[j].
skb_list); skb_list);
lockdep_set_class(
&card->qdio.out_qs[i]->bufs[j].skb_list.lock,
&qdio_out_skb_queue_key);
INIT_LIST_HEAD(&card->qdio.out_qs[i]->bufs[j].ctx_list); INIT_LIST_HEAD(&card->qdio.out_qs[i]->bufs[j].ctx_list);
} }
} }
...@@ -5272,6 +5277,7 @@ qeth_free_vlan_buffer(struct qeth_card *card, struct qeth_qdio_out_buffer *buf, ...@@ -5272,6 +5277,7 @@ qeth_free_vlan_buffer(struct qeth_card *card, struct qeth_qdio_out_buffer *buf,
struct sk_buff_head tmp_list; struct sk_buff_head tmp_list;
skb_queue_head_init(&tmp_list); skb_queue_head_init(&tmp_list);
lockdep_set_class(&tmp_list.lock, &qdio_out_skb_queue_key);
for(i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i){ for(i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i){
while ((skb = skb_dequeue(&buf->skb_list))){ while ((skb = skb_dequeue(&buf->skb_list))){
if (vlan_tx_tag_present(skb) && if (vlan_tx_tag_present(skb) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment