]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob
a2cb8433e8faa4e61dff9a6b73619c0ca86c8155
[thirdparty/kernel/stable-queue.git] /
1 From stable-bounces@linux.kernel.org Thu May 10 23:11:14 2007
2 Message-Id: <200705110601.l4B6183j008187@shell0.pdx.osdl.net>
3 To: James.Bottomley@steeleye.com
4 From: akpm@linux-foundation.org
5 Date: Thu, 10 May 2007 23:01:08 -0700
6 Cc: akpm@linux-foundation.org, Eric.Moore@lsil.com, stable@kernel.org, linux-scsi@vger.kernel.org, doug.chapman@hp.com
7 Subject: fix for bugzilla 8426: massive slowdown on SCSI CD/DVD drive connected to mptspi driver
8
9 From: Doug Chapman <doug.chapman@hp.com>
10
11 Patch for: http://bugzilla.kernel.org/show_bug.cgi?id=8426
12
13 A recent code cleanup that moved code from mptscsih to mptspi inadvertently
14 change the order some code was called. This caused a massive slowdown (of
15 150x to 300x) on the CD/DVD drive on the high-end HP Integrity servers.
16
17 Signed-off-by: Doug Chapman <doug.chapman@hp.com>
18 Cc: "Moore, Eric Dean" <Eric.Moore@lsil.com>
19 Cc: James Bottomley <James.Bottomley@steeleye.com>
20 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
21 Signed-off-by: Chris Wright <chrisw@sous-sol.org>
22 ---
23 [chrisw: Why is this not upstream yet?]
24
25 drivers/message/fusion/mptspi.c | 8 +++++---
26 1 file changed, 5 insertions(+), 3 deletions(-)
27
28 --- linux-2.6.21.1.orig/drivers/message/fusion/mptspi.c
29 +++ linux-2.6.21.1/drivers/message/fusion/mptspi.c
30 @@ -726,13 +726,15 @@ static int mptspi_slave_configure(struct
31 struct _MPT_SCSI_HOST *hd =
32 (struct _MPT_SCSI_HOST *)sdev->host->hostdata;
33 VirtTarget *vtarget = scsi_target(sdev)->hostdata;
34 - int ret = mptscsih_slave_configure(sdev);
35 + int ret;
36 +
37 + mptspi_initTarget(hd, vtarget, sdev);
38 +
39 + ret = mptscsih_slave_configure(sdev);
40
41 if (ret)
42 return ret;
43
44 - mptspi_initTarget(hd, vtarget, sdev);
45 -
46 ddvprintk((MYIOC_s_INFO_FMT "id=%d min_period=0x%02x"
47 " max_offset=0x%02x max_width=%d\n", hd->ioc->name,
48 sdev->id, spi_min_period(scsi_target(sdev)),