diff options
Diffstat (limited to 'drivers/block/aoe/aoechr.c')
-rw-r--r-- | drivers/block/aoe/aoechr.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoechr.c b/drivers/block/aoe/aoechr.c index 181ebb85f0be..1f56d2c5b7fc 100644 --- a/drivers/block/aoe/aoechr.c +++ b/drivers/block/aoe/aoechr.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/completion.h> | 9 | #include <linux/completion.h> |
10 | #include <linux/delay.h> | 10 | #include <linux/delay.h> |
11 | #include <linux/smp_lock.h> | 11 | #include <linux/smp_lock.h> |
12 | #include <linux/skbuff.h> | ||
12 | #include "aoe.h" | 13 | #include "aoe.h" |
13 | 14 | ||
14 | enum { | 15 | enum { |
@@ -103,7 +104,12 @@ loop: | |||
103 | spin_lock_irqsave(&d->lock, flags); | 104 | spin_lock_irqsave(&d->lock, flags); |
104 | goto loop; | 105 | goto loop; |
105 | } | 106 | } |
106 | aoenet_xmit(skb); | 107 | if (skb) { |
108 | struct sk_buff_head queue; | ||
109 | __skb_queue_head_init(&queue); | ||
110 | __skb_queue_tail(&queue, skb); | ||
111 | aoenet_xmit(&queue); | ||
112 | } | ||
107 | aoecmd_cfg(major, minor); | 113 | aoecmd_cfg(major, minor); |
108 | return 0; | 114 | return 0; |
109 | } | 115 | } |