From c3643395dc3b8d47932e2bbc2992532ae88ee522 Mon Sep 17 00:00:00 2001 From: Ed Cashin Date: Tue, 21 Jul 2009 16:33:49 -0400 Subject: aoe: ensure that AoE minor address is supported This aoe driver only supports a fixed number of AoE minor ("slot") addresses per major ("shelf") address. This check ensures that the minor address is supported and clarifies the diagnostic message. Signed-off-by: Ed Cashin --- drivers/block/aoe/aoecmd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'drivers') diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 965ece2c7e4d..437b95b15829 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c @@ -982,8 +982,12 @@ aoecmd_cfg_rsp(struct sk_buff *skb) } sysminor = SYSMINOR(aoemajor, h->minor); - if (sysminor * AOE_PARTITIONS + AOE_PARTITIONS > MINORMASK) { - printk(KERN_INFO "aoe: e%ld.%d: minor number too large\n", + if (h->minor >= NPERSHELF) { + printk(KERN_INFO "aoe: e%ld.%d: AoE minor address too large\n", + aoemajor, (int) h->minor); + return; + } else if (sysminor * AOE_PARTITIONS + AOE_PARTITIONS > MINORMASK) { + printk(KERN_INFO "aoe: e%ld.%d: AoE major address too large\n", aoemajor, (int) h->minor); return; } -- cgit v1.2.3