#define VERSION "5"
 #define AOE_MAJOR 152
 #define DEVICE_NAME "aoe"
+
+/* set AOE_PARTITIONS to 1 to use whole-disks only
+ * default is 16, which is 15 partitions plus the whole disk
+ */
 #ifndef AOE_PARTITIONS
 #define AOE_PARTITIONS 16
 #endif
+
 #define SYSMINOR(aoemajor, aoeminor) ((aoemajor) * 10 + (aoeminor))
 #define AOEMAJOR(sysminor) ((sysminor) / 10)
 #define AOEMINOR(sysminor) ((sysminor) % 10)
 
        struct aoe_cfghdr *ch;
        ulong flags, bufcnt, sysminor, aoemajor;
        struct sk_buff *sl;
-       enum { MAXFRAMES = 8, MAXSYSMINOR = 255 };
+       enum { MAXFRAMES = 8 };
 
        h = (struct aoe_hdr *) skb->mac.raw;
        ch = (struct aoe_cfghdr *) (h+1);
        }
 
        sysminor = SYSMINOR(aoemajor, h->minor);
-       if (sysminor > MAXSYSMINOR) {
-               printk(KERN_INFO "aoe: aoecmd_cfg_rsp: sysminor %ld too "
-                       "large\n", sysminor);
+       if (sysminor * AOE_PARTITIONS + AOE_PARTITIONS > MINORMASK) {
+               printk(KERN_INFO
+                       "aoe: e%ld.%d: minor number too large\n", 
+                       aoemajor, (int) h->minor);
                return;
        }