aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
authorDoug Chapman <doug.chapman@hp.com>2007-05-07 15:59:46 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-05 12:04:56 -0400
commit29982e9acd3e81a289c73321401427d02eaa8adc (patch)
tree2ab3e26cf0863c602363d563a75987b4c3c7beeb /drivers/message/fusion
parent5ecd3100e695228ac5e0ce0e325e252c0f11806f (diff)
[SCSI] fusion: fix for BZ 8426 - massive slowdown on SCSI CD/DVD drive
Patch for: http://bugzilla.kernel.org/show_bug.cgi?id=8426 A recent code cleanup that moved code from mptscsih to mptspi inadvertently change the order some code was called. This caused a massive slowdown (of 150x to 300x) on the CD/DVD drive on the high-end HP Integrity servers. Signed-off-by: Doug Chapman <doug.chapman@hp.com> Acked-by: Eric Moore <eric.moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/mptspi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index d75f7ffbb02e..37bf65348372 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -727,13 +727,15 @@ static int mptspi_slave_configure(struct scsi_device *sdev)
727 struct _MPT_SCSI_HOST *hd = 727 struct _MPT_SCSI_HOST *hd =
728 (struct _MPT_SCSI_HOST *)sdev->host->hostdata; 728 (struct _MPT_SCSI_HOST *)sdev->host->hostdata;
729 VirtTarget *vtarget = scsi_target(sdev)->hostdata; 729 VirtTarget *vtarget = scsi_target(sdev)->hostdata;
730 int ret = mptscsih_slave_configure(sdev); 730 int ret;
731
732 mptspi_initTarget(hd, vtarget, sdev);
733
734 ret = mptscsih_slave_configure(sdev);
731 735
732 if (ret) 736 if (ret)
733 return ret; 737 return ret;
734 738
735 mptspi_initTarget(hd, vtarget, sdev);
736
737 ddvprintk((MYIOC_s_INFO_FMT "id=%d min_period=0x%02x" 739 ddvprintk((MYIOC_s_INFO_FMT "id=%d min_period=0x%02x"
738 " max_offset=0x%02x max_width=%d\n", hd->ioc->name, 740 " max_offset=0x%02x max_width=%d\n", hd->ioc->name,
739 sdev->id, spi_min_period(scsi_target(sdev)), 741 sdev->id, spi_min_period(scsi_target(sdev)),