]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/suse-2.6.27.39/patches.drivers/mptsas-discover-all-devices
Fix oinkmaster patch.
[ipfire-2.x.git] / src / patches / suse-2.6.27.39 / patches.drivers / mptsas-discover-all-devices
1 From: Jeremy Higdon <jeremy@sgi.com>
2 Subject: mptsas driver fails to discover devices
3 References: bnc#459932
4
5 The mptsas driver has a serious regression in sles11rc1 in that it fails to
6 discover devices that work fine with sles10sp2.
7
8 I discovered that part of the problem was that the target number of the RAID
9 volume was too high for the driver to discover it.
10
11 The problem with the IS220 (LSI 1333 RAID) is that the driver is issuing its
12 own Test Unit Read and that's apparently being considered a failure from the
13 Unit Attention statuses.
14
15 With this patch the system boots okay.
16
17 Signed-off-by: Jeremy Higdon <jeremy@sgi.com>
18 Signed-off-by: Sathya Prakash <sathya.prakash@lsi.com>
19 Signed-off-by: Hannes Reinecke <hare@suse.de>
20
21 --- /mnt/usr/src/linux/drivers/message/fusion/mptsas.c 2008-12-08 06:54:50.000000000 -0800
22 +++ linux/drivers/message/fusion/mptsas.c 2009-01-18 22:16:30.456811758 -0800
23 @@ -1580,12 +1580,10 @@
24 enum device_state state;
25 int rc;
26 u8 skey, asc, ascq;
27 - u8 retry_ua;
28
29 if (count >= mpt_cmd_retry_count)
30 return DEVICE_ERROR;
31
32 - retry_ua = 0;
33 iocmd = kzalloc(sizeof(INTERNAL_CMD), GFP_KERNEL);
34 if (!iocmd) {
35 printk(MYIOC_s_ERR_FMT "%s: kzalloc(%zd) FAILED!\n",
36 @@ -1646,10 +1644,8 @@
37 __func__, channel, id, skey, asc, ascq));
38
39 if (skey == UNIT_ATTENTION) {
40 - if (!retry_ua) {
41 - retry_ua++;
42 - goto retry;
43 - }
44 + state = DEVICE_RETRY;
45 + break;
46 } else if (skey == NOT_READY) {
47 /*
48 * medium isn't present
49 @@ -3740,6 +3736,7 @@
50 return;
51 }
52 }
53 + mpt_findImVolumes(ioc);
54
55 case MPTSAS_ADD_DEVICE:
56 memset(&sas_device, 0, sizeof(struct mptsas_devinfo));