diff options
author | Stephen M. Cameron <scameron@beardog.cce.hp.com> | 2012-01-19 15:00:48 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-02-19 09:08:55 -0500 |
commit | d66ae08bad182e9a87859e120e61cfd51e402ed8 (patch) | |
tree | 1f7c7eca29f268cfef6927d4f503752c0a337511 /drivers/scsi/hpsa.c | |
parent | 55e14e764df5e24bedf93220f1da167af8300c2f (diff) |
[SCSI] hpsa: removed unneeded structure member max_sg_entries and fix badly named constant MAXSGENTRIES
We had both h->max_sg_entries and h->maxsgentries in the per controller
structure which is terribly confusing. max_sg_entries was really
just a constant, 32, which defines how big the "block fetch table"
is, which is as large as the max number of SG elements embedded
within a command (excluding SG elements in chain blocks).
MAXSGENTRIES was the constant used to denote the max number of SG
elements embedded within a command, also a poor name.
So renamed MAXSGENTREIS to SG_ENTRIES_IN_CMD, and removed
h->max_sg_entries and replaced it with SG_ENTRIES_IN_CMD.
h->maxsgentries is unchanged, and is the maximum number of sg
elements the controller will support in a command, including
those in chain blocks, minus 1 for the chain block pointer..
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/hpsa.c')
-rw-r--r-- | drivers/scsi/hpsa.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 4dc9107456ae..f4dc212ad49b 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c | |||
@@ -2700,16 +2700,16 @@ static int hpsa_big_passthru_ioctl(struct ctlr_info *h, void __user *argp) | |||
2700 | status = -EINVAL; | 2700 | status = -EINVAL; |
2701 | goto cleanup1; | 2701 | goto cleanup1; |
2702 | } | 2702 | } |
2703 | if (ioc->buf_size > ioc->malloc_size * MAXSGENTRIES) { | 2703 | if (ioc->buf_size > ioc->malloc_size * SG_ENTRIES_IN_CMD) { |
2704 | status = -EINVAL; | 2704 | status = -EINVAL; |
2705 | goto cleanup1; | 2705 | goto cleanup1; |
2706 | } | 2706 | } |
2707 | buff = kzalloc(MAXSGENTRIES * sizeof(char *), GFP_KERNEL); | 2707 | buff = kzalloc(SG_ENTRIES_IN_CMD * sizeof(char *), GFP_KERNEL); |
2708 | if (!buff) { | 2708 | if (!buff) { |
2709 | status = -ENOMEM; | 2709 | status = -ENOMEM; |
2710 | goto cleanup1; | 2710 | goto cleanup1; |
2711 | } | 2711 | } |
2712 | buff_size = kmalloc(MAXSGENTRIES * sizeof(int), GFP_KERNEL); | 2712 | buff_size = kmalloc(SG_ENTRIES_IN_CMD * sizeof(int), GFP_KERNEL); |
2713 | if (!buff_size) { | 2713 | if (!buff_size) { |
2714 | status = -ENOMEM; | 2714 | status = -ENOMEM; |
2715 | goto cleanup1; | 2715 | goto cleanup1; |
@@ -4601,15 +4601,15 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h, | |||
4601 | * Each SG entry requires 16 bytes. The eight registers are programmed | 4601 | * Each SG entry requires 16 bytes. The eight registers are programmed |
4602 | * with the number of 16-byte blocks a command of that size requires. | 4602 | * with the number of 16-byte blocks a command of that size requires. |
4603 | * The smallest command possible requires 5 such 16 byte blocks. | 4603 | * The smallest command possible requires 5 such 16 byte blocks. |
4604 | * the largest command possible requires MAXSGENTRIES + 4 16-byte | 4604 | * the largest command possible requires SG_ENTRIES_IN_CMD + 4 16-byte |
4605 | * blocks. Note, this only extends to the SG entries contained | 4605 | * blocks. Note, this only extends to the SG entries contained |
4606 | * within the command block, and does not extend to chained blocks | 4606 | * within the command block, and does not extend to chained blocks |
4607 | * of SG elements. bft[] contains the eight values we write to | 4607 | * of SG elements. bft[] contains the eight values we write to |
4608 | * the registers. They are not evenly distributed, but have more | 4608 | * the registers. They are not evenly distributed, but have more |
4609 | * sizes for small commands, and fewer sizes for larger commands. | 4609 | * sizes for small commands, and fewer sizes for larger commands. |
4610 | */ | 4610 | */ |
4611 | int bft[8] = {5, 6, 8, 10, 12, 20, 28, MAXSGENTRIES + 4}; | 4611 | int bft[8] = {5, 6, 8, 10, 12, 20, 28, SG_ENTRIES_IN_CMD + 4}; |
4612 | BUILD_BUG_ON(28 > MAXSGENTRIES + 4); | 4612 | BUILD_BUG_ON(28 > SG_ENTRIES_IN_CMD + 4); |
4613 | /* 5 = 1 s/g entry or 4k | 4613 | /* 5 = 1 s/g entry or 4k |
4614 | * 6 = 2 s/g entry or 8k | 4614 | * 6 = 2 s/g entry or 8k |
4615 | * 8 = 4 s/g entry or 16k | 4615 | * 8 = 4 s/g entry or 16k |
@@ -4622,8 +4622,9 @@ static __devinit void hpsa_enter_performant_mode(struct ctlr_info *h, | |||
4622 | memset(h->reply_pool, 0, h->reply_pool_size); | 4622 | memset(h->reply_pool, 0, h->reply_pool_size); |
4623 | h->reply_pool_head = h->reply_pool; | 4623 | h->reply_pool_head = h->reply_pool; |
4624 | 4624 | ||
4625 | bft[7] = h->max_sg_entries + 4; | 4625 | bft[7] = SG_ENTRIES_IN_CMD + 4; |
4626 | calc_bucket_map(bft, ARRAY_SIZE(bft), 32, h->blockFetchTable); | 4626 | calc_bucket_map(bft, ARRAY_SIZE(bft), |
4627 | SG_ENTRIES_IN_CMD, h->blockFetchTable); | ||
4627 | for (i = 0; i < 8; i++) | 4628 | for (i = 0; i < 8; i++) |
4628 | writel(bft[i], &h->transtable->BlockFetch[i]); | 4629 | writel(bft[i], &h->transtable->BlockFetch[i]); |
4629 | 4630 | ||
@@ -4661,14 +4662,13 @@ static __devinit void hpsa_put_ctlr_into_performant_mode(struct ctlr_info *h) | |||
4661 | return; | 4662 | return; |
4662 | 4663 | ||
4663 | hpsa_get_max_perf_mode_cmds(h); | 4664 | hpsa_get_max_perf_mode_cmds(h); |
4664 | h->max_sg_entries = 32; | ||
4665 | /* Performant mode ring buffer and supporting data structures */ | 4665 | /* Performant mode ring buffer and supporting data structures */ |
4666 | h->reply_pool_size = h->max_commands * sizeof(u64); | 4666 | h->reply_pool_size = h->max_commands * sizeof(u64); |
4667 | h->reply_pool = pci_alloc_consistent(h->pdev, h->reply_pool_size, | 4667 | h->reply_pool = pci_alloc_consistent(h->pdev, h->reply_pool_size, |
4668 | &(h->reply_pool_dhandle)); | 4668 | &(h->reply_pool_dhandle)); |
4669 | 4669 | ||
4670 | /* Need a block fetch table for performant mode */ | 4670 | /* Need a block fetch table for performant mode */ |
4671 | h->blockFetchTable = kmalloc(((h->max_sg_entries+1) * | 4671 | h->blockFetchTable = kmalloc(((SG_ENTRIES_IN_CMD + 1) * |
4672 | sizeof(u32)), GFP_KERNEL); | 4672 | sizeof(u32)), GFP_KERNEL); |
4673 | 4673 | ||
4674 | if ((h->reply_pool == NULL) | 4674 | if ((h->reply_pool == NULL) |