diff mbox

hpsa: disable volume status check for older controller

Message ID 1501686356-56888-1-git-send-email-hare@suse.de (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Hannes Reinecke Aug. 2, 2017, 3:05 p.m. UTC
Older Controller might not support volume status, so disable
it if 'hpsa_allow_any' is present.

Signed-off-by: Hannes Reinecke <hare@suse.com>
---
 drivers/scsi/hpsa.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Meelis Roos Aug. 4, 2017, 4:26 p.m. UTC | #1
> Older Controller might not support volume status, so disable
> it if 'hpsa_allow_any' is present.

It makes my DL380G4 boot with hpsa.hpsa_allow_any=1 and it seems to 
work. Howevere, there are multiole verbose dmesg entries about failing 
things:

    0.267224] HP HPSA Driver (v 3.4.18-0)
[    0.267351] hpsa 0000:04:03.0: unsupported board ID: 0x40910e11
[    0.267494] hpsa 0000:04:03.0: unsupported board ID: 0x40910e11
[    0.267695] hpsa 0000:04:03.0: PCI IRQ 51 -> rerouted to legacy IRQ 19
[    0.267889] hpsa 0000:04:03.0: Physical aborts not supported
[    0.268036] hpsa 0000:04:03.0: Logical aborts not supported
[    0.268163] hpsa 0000:04:03.0: HP SSD Smart Path aborts not supported
[    0.448240] scsi host0: hpsa
[    0.452228] hpsa 0000:04:03.0: report luns requested format 2, got 0
[    0.453950] hpsa 0000:04:03.0: hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T0:L0       Direct-Access           MAN3735MC       
[    0.454312] hpsa 0000:04:03.0: SCSI status: LUN:0000000000000000 CDB:26000000000015000801000000000000
[    0.454525] hpsa 0000:04:03.0: SCSI Status = 02, Sense key = 0x05, ASC = 0x3a, ASCQ = 0x00
[    0.458100] hpsa 0000:04:03.0: hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T-1:L-1     Direct-Access           MAP3735NC       
[    0.458453] hpsa 0000:04:03.0: SCSI status: LUN:0000000000000000 CDB:26000100000015000801000000000000
[    0.458668] hpsa 0000:04:03.0: SCSI Status = 02, Sense key = 0x05, ASC = 0x3a, ASCQ = 0x00
[    0.485980] hpsa 0000:04:03.0: C0:T-1:L-1 Volume status not available, assuming online.
[    0.486807] hpsa 0000:04:03.0: scsi 0:0:0:0: masked Direct-Access     FUJITSU  MAN3735MC        PHYS DRV SSDSmartPathCap- En- Exp=0
[    0.487020] hpsa 0000:04:03.0: scsi 0:0:1:0: masked Direct-Access     FUJITSU  MAP3735NC        PHYS DRV SSDSmartPathCap- En- Exp=0
[    0.487229] hpsa 0000:04:03.0: scsi 0:1:0:0: added Direct-Access     HP       LOGICAL VOLUME   RAID-1(+0) SSDSmartPathCap- En- Exp=1
[    0.487440] hpsa 0000:04:03.0: scsi 0:3:0:0: added RAID              HP       SA6i             controller SSDSmartPathCap- En- Exp=1
[    0.487997] scsi 0:1:0:0: Direct-Access     HP       LOGICAL VOLUME   2.84 PQ: 0 ANSI: 4
[    0.488989] scsi 0:3:0:0: RAID              HP       SA6i             2.84 PQ: 0 ANSI: 0
[    0.489390] hpsa 0000:0b:04.0: unsupported board ID: 0x409c0e11
[    0.489532] hpsa 0000:0b:04.0: unsupported board ID: 0x409c0e11
[    0.489870] hpsa 0000:0b:04.0: Physical aborts not supported
[    0.489995] hpsa 0000:0b:04.0: Logical aborts not supported
[    0.490118] hpsa 0000:0b:04.0: HP SSD Smart Path aborts not supported
[    0.628221] scsi host1: hpsa
[    0.632143] hpsa 0000:0b:04.0: report luns requested format 2, got 0
[    0.633498] hpsa 0000:0b:04.0: scsi 1:3:0:0: added RAID              HP       SA6400           controller SSDSmartPathCap- En- Exp=1
[    0.634246] scsi 1:0:0:0: RAID              HP       SA6400           2.84 PQ: 0 ANSI: 0
[    0.634882] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f0e:PS2M] at 0x60,0x64 irq 1,12
[    0.635581] sd 0:1:0:0: [sda] 430622325 512-byte logical blocks: (220 GB/205 GiB)
[    0.635974] sd 0:1:0:0: [sda] Write Protect is off
[    0.636118] sd 0:1:0:0: [sda] Mode Sense: 5b 00 00 08
[    0.636337] sd 0:1:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

Among these, the following show up red in dmesg:

report luns requested format 2, got 0
hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T0:L0       Direct-Access           MAN3735MC
hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T-1:L-1     Direct-Access           MAP3735NC
report luns requested format 2, got 0
Hannes Reinecke Aug. 4, 2017, 4:36 p.m. UTC | #2
On 08/04/2017 06:26 PM, Meelis Roos wrote:
>> Older Controller might not support volume status, so disable
>> it if 'hpsa_allow_any' is present.
> 
> It makes my DL380G4 boot with hpsa.hpsa_allow_any=1 and it seems to 
> work. Howevere, there are multiole verbose dmesg entries about failing 
> things:
> 
Hehe. How cool is that?

>     0.267224] HP HPSA Driver (v 3.4.18-0)
> [    0.267351] hpsa 0000:04:03.0: unsupported board ID: 0x40910e11
> [    0.267494] hpsa 0000:04:03.0: unsupported board ID: 0x40910e11
> [    0.267695] hpsa 0000:04:03.0: PCI IRQ 51 -> rerouted to legacy IRQ 19
> [    0.267889] hpsa 0000:04:03.0: Physical aborts not supported
> [    0.268036] hpsa 0000:04:03.0: Logical aborts not supported
> [    0.268163] hpsa 0000:04:03.0: HP SSD Smart Path aborts not supported
> [    0.448240] scsi host0: hpsa
> [    0.452228] hpsa 0000:04:03.0: report luns requested format 2, got 0
> [    0.453950] hpsa 0000:04:03.0: hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T0:L0       Direct-Access           MAN3735MC       
> [    0.454312] hpsa 0000:04:03.0: SCSI status: LUN:0000000000000000 CDB:26000000000015000801000000000000
> [    0.454525] hpsa 0000:04:03.0: SCSI Status = 02, Sense key = 0x05, ASC = 0x3a, ASCQ = 0x00
Curious. CDB 26 is a vendor specific command, and the controller
responds with 'Medium not present'.
Will be checking what's happening here.

> Among these, the following show up red in dmesg:
> 
> report luns requested format 2, got 0
> hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T0:L0       Direct-Access           MAN3735MC
> hpsa0: hpsa_update_device_info: can't get device id for host 0:C0:T-1:L-1     Direct-Access           MAP3735NC
> report luns requested format 2, got 0
> 
Hmm. Looking into it.

But thanks for testing!

Cheers,

Hannes
diff mbox

Patch

diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 2cf6ccc..bd063b8 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -3831,6 +3831,17 @@  static int hpsa_update_device_info(struct ctlr_info *h,
 		if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC)
 			hpsa_get_ioaccel_status(h, scsi3addr, this_device);
 		volume_offline = hpsa_volume_offline(h, scsi3addr);
+		if (volume_offline == HPSA_VPD_LV_STATUS_UNSUPPORTED &&
+		    hpsa_allow_any) {
+			/*
+			 * Older controllers do not support
+			 * volume status
+			 */
+			dev_info(&h->pdev->dev,
+				 "C0:T%d:L%d Volume status not available, assuming online.\n",
+				 this_device->target, this_device->lun);
+			volume_offline = 0;
+		}
 		this_device->volume_offline = volume_offline;
 		if (volume_offline == HPSA_LV_FAILED) {
 			rc = HPSA_LV_FAILED;