[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090408194357.GA15043@beardog.cca.cpqcorp.net>
Date: Wed, 8 Apr 2009 14:43:57 -0500
From: "Mike Miller (OS Dev)" <mikem@...rdog.cca.cpqcorp.net>
To: LKML-SCSI <linux-scsi@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>
Cc: mike.miller@...com
Subject: READ CAPACITY (16) failing
Hello,
I'm working on the HP Smart Array SCSI driver (hpsa) and I'm seeing the
following failures:
hpsa1: <0x3230> at PCI 0000:02:00.0 IRQ 76 using DAC
scsi4 : hpsa
scsi 4:0:0:0: Direct-Access HP LOGICAL VOLUME 5.20 PQ: 0 ANSI: 5
sd 4:0:0:0: Attached scsi generic sg4 type 0
sd 4:0:0:0: [sdd] READ CAPACITY(16) failed
sd 4:0:0:0: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
sd 4:0:0:0: [sdd] Sense not available.
hpsa: cp ffff8800cf400000 has check condition: unknown type: Sense: 0x5,
ASC: 0x20, ASCQ: 0x0, Returning result: 0x2, cmd=[a0 00 00 00 00 00 00 00 10
00]
sd 4:0:0:0: [sdd] 213196320 512-byte hardware sectors: (109 GB/101 GiB)
sd 4:0:0:0: [sdd] Write Protect is off
sd 4:0:0:0: [sdd] Mode Sense: 6b 00 00 08
sd 4:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't
support DPO or FUA
sd 4:0:0:0: [sdd] READ CAPACITY(16) failed
sd 4:0:0:0: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
sd 4:0:0:0: [sdd] Sense not available.
sdd: sdd1
sd 4:0:0:0: [sdd] Attached SCSI disk
scsi 4:1:0:0: RAID HP P400 5.20 PQ: 0 ANSI: 0
scsi 4:1:0:0: Attached scsi generic sg5 type 12
The illegal request is coming from smartd and probably doesn't mean anything
in this context since SA doesn't support the SCSI Report LUNs command. The
READ CAPACITY failures are what I'm concerned about. I can't seem to track
down why that's failing.
I've tried printing out the_result from sd but it's not printing out. I'm
assuming that anytime I load the driver it goes thru sd.
if (the_result) {
sense_valid = scsi_sense_valid(&sshdr);
if (sense_valid &&
sshdr.sense_key == ILLEGAL_REQUEST &&
(sshdr.asc == 0x20 || sshdr.asc == 0x24) &&
sshdr.ascq == 0x00)
/* Invalid Command Operation Code or
* Invalid Field in CDB, just retry
* silently with RC10 */
return -EINVAL;
}
retries--;
} while (the_result && retries);
printk(KERN_WARNING "sd-mfm: the_result = %d\n", the_result);
sd reports:
sd 4:0:0:0: [sdd] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
>From the controllers serial port I see:
[04/08 14:31:09]Ctlr SCSI Request, Illegal CDB Opcode=0x0
[04/08 14:37:28]Volume SCSI Request, Illegal CDB Opcode=0xa0
when the driver loads. I guess the TUR is coming from sd. But neither of
these indicate why the READ CAPACITY (16) failed.
I've also tried printing out the command status from the driver but it only
shows a check condition with no sense.
Any ideas? Or is there not enough info here?
Thanks,
mikem
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists