aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/aoe/aoecmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/aoe/aoecmd.c')
-rw-r--r--drivers/block/aoe/aoecmd.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 1a6aeac5a1c3..01fbdd38e3be 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -194,15 +194,15 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff **tail)
194 sl = sl_tail = NULL; 194 sl = sl_tail = NULL;
195 195
196 read_lock(&dev_base_lock); 196 read_lock(&dev_base_lock);
197 for (ifp = dev_base; ifp; dev_put(ifp), ifp = ifp->next) { 197 for_each_netdev(ifp) {
198 dev_hold(ifp); 198 dev_hold(ifp);
199 if (!is_aoe_netif(ifp)) 199 if (!is_aoe_netif(ifp))
200 continue; 200 goto cont;
201 201
202 skb = new_skb(sizeof *h + sizeof *ch); 202 skb = new_skb(sizeof *h + sizeof *ch);
203 if (skb == NULL) { 203 if (skb == NULL) {
204 printk(KERN_INFO "aoe: skb alloc failure\n"); 204 printk(KERN_INFO "aoe: skb alloc failure\n");
205 continue; 205 goto cont;
206 } 206 }
207 skb_put(skb, sizeof *h + sizeof *ch); 207 skb_put(skb, sizeof *h + sizeof *ch);
208 skb->dev = ifp; 208 skb->dev = ifp;
@@ -221,6 +221,8 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff **tail)
221 221
222 skb->next = sl; 222 skb->next = sl;
223 sl = skb; 223 sl = skb;
224cont:
225 dev_put(ifp);
224 } 226 }
225 read_unlock(&dev_base_lock); 227 read_unlock(&dev_base_lock);
226 228