summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJeremy Higdon <jeremy@sgi.com>2008-05-12 10:17:03 +0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-05-13 21:16:23 +0400
commitaf5741c6de4f4a1d8608b0f00867c77cb7123635 (patch)
treed796f70265dd1d6ffeabf47264b16ded012242c0 /block
parent64976a0387835a7ac61bbe2a99b27ccae34eac5d (diff)
downloadlinux-af5741c6de4f4a1d8608b0f00867c77cb7123635.tar.xz
[SCSI] qla1280: Fix queue depth problem
The qla1280 driver was ANDing the output value of mailbox register 0 with (1 << target-number) to determine whether to enable queueing on the target in question. But mailbox register 0 has the status code for the mailbox command (in this case, Set Target Parameters). Potential values are: /* * ISP mailbox command complete status codes */ So clearly that is in error. I can't think what the author of that line was looking for in a mailbox register, so I just eliminated the AND. flag is used later in the function, and I think that the later usage was also wrong, though it was used to set values that aren't used. Oh well, an overhaul of this driver is not what I want to do now -- just a bugfix. After the fix, I found that my disks were getting a queue depth of 255, which is far too many. Most SCSI disks are limited to 32 or 64. In any case, there's no point, queueing up a bunch of commands to the adapter that will just result in queue full or starve other targets from being issued commands due to running out of internal memory. So I dropped default queue depth to 32 (from which 1 is subtracted elsewhere, giving net of 31). I tested with a Seagate ST336753LC, and results look good, so I'm satisfied with this patch. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Acked-by: Jes Sorensen <jes@sgi.com> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions