aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/aoe/aoe.h2
-rw-r--r--drivers/block/aoe/aoecmd.c17
2 files changed, 11 insertions, 8 deletions
diff --git a/drivers/block/aoe/aoe.h b/drivers/block/aoe/aoe.h
index 7b694f7da2de..4ae2468b4a06 100644
--- a/drivers/block/aoe/aoe.h
+++ b/drivers/block/aoe/aoe.h
@@ -49,8 +49,6 @@ struct aoe_hdr {
49 __be32 tag; 49 __be32 tag;
50}; 50};
51 51
52#define AOE_MAXSHELF (0xffff-1) /* one less than the broadcast shelf address */
53
54struct aoe_atahdr { 52struct aoe_atahdr {
55 unsigned char aflags; 53 unsigned char aflags;
56 unsigned char errfeat; 54 unsigned char errfeat;
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c
index 94e810c36de1..3804a0af3ef1 100644
--- a/drivers/block/aoe/aoecmd.c
+++ b/drivers/block/aoe/aoecmd.c
@@ -1349,15 +1349,14 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
1349 "Check shelf dip switches.\n"); 1349 "Check shelf dip switches.\n");
1350 return; 1350 return;
1351 } 1351 }
1352 if (aoemajor > AOE_MAXSHELF) { 1352 if (aoemajor == 0xffff) {
1353 pr_info("aoe: e%ld.%d: shelf number too large\n", 1353 pr_info("aoe: e%ld.%d: broadcast shelf number invalid\n",
1354 aoemajor, (int) h->minor); 1354 aoemajor, (int) h->minor);
1355 return; 1355 return;
1356 } 1356 }
1357 1357 if (h->minor == 0xff) {
1358 d = aoedev_by_aoeaddr(aoemajor, h->minor, 1); 1358 pr_info("aoe: e%ld.%d: broadcast slot number invalid\n",
1359 if (d == NULL) { 1359 aoemajor, (int) h->minor);
1360 pr_info("aoe: device allocation failure\n");
1361 return; 1360 return;
1362 } 1361 }
1363 1362
@@ -1365,6 +1364,12 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
1365 if (n > aoe_maxout) /* keep it reasonable */ 1364 if (n > aoe_maxout) /* keep it reasonable */
1366 n = aoe_maxout; 1365 n = aoe_maxout;
1367 1366
1367 d = aoedev_by_aoeaddr(aoemajor, h->minor, 1);
1368 if (d == NULL) {
1369 pr_info("aoe: device allocation failure\n");
1370 return;
1371 }
1372
1368 spin_lock_irqsave(&d->lock, flags); 1373 spin_lock_irqsave(&d->lock, flags);
1369 1374
1370 t = gettgt(d, h->src); 1375 t = gettgt(d, h->src);