aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/aoe/aoenet.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/aoe/aoenet.c')
-rw-r--r--drivers/block/aoe/aoenet.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/block/aoe/aoenet.c b/drivers/block/aoe/aoenet.c
index 07878076e43c..000eff2b53a8 100644
--- a/drivers/block/aoe/aoenet.c
+++ b/drivers/block/aoe/aoenet.c
@@ -142,7 +142,8 @@ aoenet_rcv(struct sk_buff *skb, struct net_device *ifp, struct packet_type *pt,
142 142
143 switch (h->cmd) { 143 switch (h->cmd) {
144 case AOECMD_ATA: 144 case AOECMD_ATA:
145 aoecmd_ata_rsp(skb); 145 /* ata_rsp may keep skb for later processing or give it back */
146 skb = aoecmd_ata_rsp(skb);
146 break; 147 break;
147 case AOECMD_CFG: 148 case AOECMD_CFG:
148 aoecmd_cfg_rsp(skb); 149 aoecmd_cfg_rsp(skb);
@@ -152,6 +153,9 @@ aoenet_rcv(struct sk_buff *skb, struct net_device *ifp, struct packet_type *pt,
152 break; /* don't complain about vendor commands */ 153 break; /* don't complain about vendor commands */
153 printk(KERN_INFO "aoe: unknown cmd %d\n", h->cmd); 154 printk(KERN_INFO "aoe: unknown cmd %d\n", h->cmd);
154 } 155 }
156
157 if (!skb)
158 return 0;
155exit: 159exit:
156 dev_kfree_skb(skb); 160 dev_kfree_skb(skb);
157 return 0; 161 return 0;