diff options
author | Doug Chapman <doug.chapman@hp.com> | 2007-05-07 15:59:46 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-05 12:04:56 -0400 |
commit | 29982e9acd3e81a289c73321401427d02eaa8adc (patch) | |
tree | 2ab3e26cf0863c602363d563a75987b4c3c7beeb /drivers/message/fusion/mptspi.c | |
parent | 5ecd3100e695228ac5e0ce0e325e252c0f11806f (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/mptspi.c')
-rw-r--r-- | drivers/message/fusion/mptspi.c | 8 |
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)), |