status = -EINVAL;
                goto cleanup1;
        }
-       if (ioc->buf_size > ioc->malloc_size * MAXSGENTRIES) {
+       if (ioc->buf_size > ioc->malloc_size * SG_ENTRIES_IN_CMD) {
                status = -EINVAL;
                goto cleanup1;
        }
-       buff = kzalloc(MAXSGENTRIES * sizeof(char *), GFP_KERNEL);
+       buff = kzalloc(SG_ENTRIES_IN_CMD * sizeof(char *), GFP_KERNEL);
        if (!buff) {
                status = -ENOMEM;
                goto cleanup1;
        }
-       buff_size = kmalloc(MAXSGENTRIES * sizeof(int), GFP_KERNEL);
+       buff_size = kmalloc(SG_ENTRIES_IN_CMD * sizeof(int), GFP_KERNEL);
        if (!buff_size) {
                status = -ENOMEM;
                goto cleanup1;
         * Each SG entry requires 16 bytes.  The eight registers are programmed
         * with the number of 16-byte blocks a command of that size requires.
         * The smallest command possible requires 5 such 16 byte blocks.
-        * the largest command possible requires MAXSGENTRIES + 4 16-byte
+        * the largest command possible requires SG_ENTRIES_IN_CMD + 4 16-byte
         * blocks.  Note, this only extends to the SG entries contained
         * within the command block, and does not extend to chained blocks
         * of SG elements.   bft[] contains the eight values we write to
         * the registers.  They are not evenly distributed, but have more
         * sizes for small commands, and fewer sizes for larger commands.
         */
-       int bft[8] = {5, 6, 8, 10, 12, 20, 28, MAXSGENTRIES + 4};
-       BUILD_BUG_ON(28 > MAXSGENTRIES + 4);
+       int bft[8] = {5, 6, 8, 10, 12, 20, 28, SG_ENTRIES_IN_CMD + 4};
+       BUILD_BUG_ON(28 > SG_ENTRIES_IN_CMD + 4);
        /*  5 = 1 s/g entry or 4k
         *  6 = 2 s/g entry or 8k
         *  8 = 4 s/g entry or 16k
        memset(h->reply_pool, 0, h->reply_pool_size);
        h->reply_pool_head = h->reply_pool;
 
-       bft[7] = h->max_sg_entries + 4;
-       calc_bucket_map(bft, ARRAY_SIZE(bft), 32, h->blockFetchTable);
+       bft[7] = SG_ENTRIES_IN_CMD + 4;
+       calc_bucket_map(bft, ARRAY_SIZE(bft),
+                               SG_ENTRIES_IN_CMD, h->blockFetchTable);
        for (i = 0; i < 8; i++)
                writel(bft[i], &h->transtable->BlockFetch[i]);
 
                return;
 
        hpsa_get_max_perf_mode_cmds(h);
-       h->max_sg_entries = 32;
        /* Performant mode ring buffer and supporting data structures */
        h->reply_pool_size = h->max_commands * sizeof(u64);
        h->reply_pool = pci_alloc_consistent(h->pdev, h->reply_pool_size,
                                &(h->reply_pool_dhandle));
 
        /* Need a block fetch table for performant mode */
-       h->blockFetchTable = kmalloc(((h->max_sg_entries+1) *
+       h->blockFetchTable = kmalloc(((SG_ENTRIES_IN_CMD + 1) *
                                sizeof(u32)), GFP_KERNEL);
 
        if ((h->reply_pool == NULL)
 
 
 /* general boundary defintions */
 #define SENSEINFOBYTES          32 /* may vary between hbas */
-#define MAXSGENTRIES            32
+#define SG_ENTRIES_IN_CMD      32 /* Max SG entries excluding chain blocks */
 #define HPSA_SG_CHAIN          0x80000000
 #define MAXREPLYQS              256
 
        struct CommandListHeader Header;
        struct RequestBlock      Request;
        struct ErrDescriptor     ErrDesc;
-       struct SGDescriptor      SG[MAXSGENTRIES];
+       struct SGDescriptor      SG[SG_ENTRIES_IN_CMD];
        /* information associated with the command */
        u32                        busaddr; /* physical addr of this record */
        struct ErrorInfo *err_info; /* pointer to the allocated mem */