Skip to content

Commit

Permalink
aoe: update and specify AoE address guards and error messages
Browse files Browse the repository at this point in the history
In general, specific is better when it comes to messages about AoE usage
problems.  Also, explicit checks for the AoE broadcast addresses are
added.

Signed-off-by: Ed Cashin <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
ecashin authored and torvalds committed Oct 5, 2012
1 parent 4bcce1a commit 7159e96
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
2 changes: 0 additions & 2 deletions drivers/block/aoe/aoe.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ struct aoe_hdr {
__be32 tag;
};

#define AOE_MAXSHELF (0xffff-1) /* one less than the broadcast shelf address */

struct aoe_atahdr {
unsigned char aflags;
unsigned char errfeat;
Expand Down
17 changes: 11 additions & 6 deletions drivers/block/aoe/aoecmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1349,22 +1349,27 @@ aoecmd_cfg_rsp(struct sk_buff *skb)
"Check shelf dip switches.\n");
return;
}
if (aoemajor > AOE_MAXSHELF) {
pr_info("aoe: e%ld.%d: shelf number too large\n",
if (aoemajor == 0xffff) {
pr_info("aoe: e%ld.%d: broadcast shelf number invalid\n",
aoemajor, (int) h->minor);
return;
}

d = aoedev_by_aoeaddr(aoemajor, h->minor, 1);
if (d == NULL) {
pr_info("aoe: device allocation failure\n");
if (h->minor == 0xff) {
pr_info("aoe: e%ld.%d: broadcast slot number invalid\n",
aoemajor, (int) h->minor);
return;
}

n = be16_to_cpu(ch->bufcnt);
if (n > aoe_maxout) /* keep it reasonable */
n = aoe_maxout;

d = aoedev_by_aoeaddr(aoemajor, h->minor, 1);
if (d == NULL) {
pr_info("aoe: device allocation failure\n");
return;
}

spin_lock_irqsave(&d->lock, flags);

t = gettgt(d, h->src);
Expand Down

0 comments on commit 7159e96

Please sign in to comment.