Re: TYPE_RBC cache fixes (sbp2.c affected)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Al Viro wrote on 2006-02-09:
On Thu, Feb 09, 2006 at 12:39:20AM +0100, Stefan Richter wrote:
Could the fact that Linux reboots (if sbp2 does not mangle the SCSI commands) mean that the SBP-2 target is overwriting memory outside of a data buffer? Or does the SCSI stack perform reckless things like jumps based on pointer tables, using unchecked data? Or...?

Interesting...  What's the last command sent before reboot?  Note that
original driver would remap 6byte commands to 10byte ones, but new one
should not _get_ those commands.  At all.  What happens if you take old
driver, put
        sdev->use_10_for_rw = 1;
        sdev->use_10_for_ms = 1;
into sbp2scsi_slave_configure() and leave remapping code alone?  Then
see if remapper is ever triggered - if it does, we have a problem in
midlayer.  If not...  I'd love to see the last commands.

Yes, I will do so as soon I got spare time.
MODE_SENSE_10 seemed to be the trigger, as mentioned in http://marc.theaimsgroup.com/?l=linux-scsi&m=112128914912105 . Also note that this device reports to implement Direct-Access, unlike most other SBP-2 HDDs which pose as Direct-Access-RBC.

I have one other bridge which reports type Direct-Access. It is based on the first generation fon TI StorageLynx. This does not work under Linux either because it requires the 36 byte inquiry workaround. Sbp2's version has become ineffective in recent kernels and I have not yet figured out how to enable the SCSI layer's version of this workaround. (But that's another issue.)

BTW, I've seen PL3507-based enclosure <spit> with the following lovely
bug: if it _ever_ got INQUIRY (any INQUIRY) other than immediately in
the beginning of session, it got 8 bytes stuck in FIFO.  All subsequeunt
reads got shifted by 8 bytes, no matter what.  With old driver, new driver...
Just scsiinfo -i would be enough to screw it.  With massive fs corruption,
obviously...

Interesting. Many PL3507 come with buggy firmware which is noticed under other OSs too. Newer hardware revisions can be reprogrammed but I don't know where the latest firmware is available and whether it fixes this INQUIRY related bug.

Do you think a workaround (like perhaps "reject all INQUIRY commands except the first one after login") would be justified?
--
Stefan Richter
-=====-=-==- --=- -=-==
http://arcgraph.de/sr/
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux