Skip to contentSkip to conversation

SCSI -rc fixes for 2.6.10-rc3

PATCH In review James Bottomley 3 participants 6 messages Dec 10, 2004 – Dec 11, 2004 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 SCSI -rc fixes for 2.6.10-rc3

This one is another set of small driver fixes

It is available from:

bk://linux-scsi.bkbits.net/scsi-for-linus-2.6

The short changelog is:

Andreas Herrmann:
o zfcp: act enhancements corrections

Castor Fu:
o support for 3PAR sparse SCSI LUNs

Douglas Gilbert:
o extracting resid from struct scsi_cmnd

Eric Moore:
o mptfusion: kill fusion init called
o mptfusion: resid cleanup
o mptfusion: replace chip_type
o mptfusion: streamline queuecommand
o mptfusion: streamline slave_alloc
o mptfusion: delete MPTSCSIH_DBG_TIMEOUT

James Bottomley:
o aic7xxx: fix compiler warning from dma mask assignement
o mptfusion: command line parameters

Mark Haverkamp:
o 2.6.9 aacraid: Support ROMB RAID/SCSI mode - Resend -

Matthew Wilcox:
o Blacklist devices that falsely claim an echo buffer
o SCSI: spi_transport set_signalling is buggy

Mike Miller:
o cciss: cciss_ioctl return code fix

And the diffstat is:

 block/cciss.c                  |    2 
 message/fusion/mptbase.c       |   83 +----
 message/fusion/mptbase.h       |   36 --
 message/fusion/mptctl.c        |    8 
 message/fusion/mptscsih.c      |  633 ++++++++++-------------------------------
 message/fusion/mptscsih.h      |   11 
 s390/scsi/zfcp_def.h           |    4 
 s390/scsi/zfcp_erp.c           |   38 +-
 s390/scsi/zfcp_ext.h           |    4 
 s390/scsi/zfcp_fsf.c           |   53 ---
 s390/scsi/zfcp_scsi.c          |    3 
 scsi/Kconfig                   |    2 
 scsi/aacraid/aachba.c          |   46 ++
 scsi/aacraid/aacraid.h         |    3 
 scsi/aic7xxx/aic79xx_osm.h     |    2 
 scsi/aic7xxx/aic79xx_osm_pci.c |   14 
 scsi/aic7xxx/aic7xxx_osm.h     |    2 
 scsi/aic7xxx/aic7xxx_osm_pci.c |    7 
 scsi/scsi_devinfo.c            |    1 
 scsi/scsi_lib.c                |    2 
 scsi/scsi_transport_spi.c      |    9 
 21 files changed, 292 insertions(+), 671 deletions(-)

James

#1 lore raw
Quoted 3 lines · James Bottomley

This one is another set of small driver fixes

It is available from:

Here is one more. Currently imm uses page_address() which can crash on highmem. It's not directly doable to map the pages properly, at least not without changing some code. In lack of a ->bounce_highio member in the scsi host template, just set ->unchecked_isa_dma which will just bounce everything for us. imm isn't performance critical by any stretch of the imagination, so...

Usually I'd not encourage such a silly hack, but in lack of hardware for testing (who has it??), this should suffice as it is obviously correct.

===== drivers/scsi/imm.c 1.39 vs edited =====

drivers/scsi/imm.c +4 -0
@@ -1140,6 +1140,10 @@
 	.use_clustering		= ENABLE_CLUSTERING,
 	.can_queue		= 1,
 	.slave_alloc		= imm_adjust_queue,
+	.unchecked_isa_dma	= 1, /* imm cannot deal with highmem, so
+				      * this is an easy trick to ensure
+				      * all io pages for this host reside
+				      * in low memory */
 };
 
 /***************************************************************************
Signature · 1 line
Jens Axboe
#2 lore raw
Quoted 14 lines · Jens Axboe
Quoted 3 lines · James Bottomley

This one is another set of small driver fixes

It is available from:

Here is one more. Currently imm uses page_address() which can crash on highmem. It's not directly doable to map the pages properly, at least not without changing some code. In lack of a ->bounce_highio member in the scsi host template, just set ->unchecked_isa_dma which will just bounce everything for us. imm isn't performance critical by any stretch of the imagination, so...

Quoted 2 lines

Usually I'd not encourage such a silly hack, but in lack of hardware for testing (who has it??), this should suffice as it is obviously correct.

I have a drive, but I'm not near a highmem machine atm. I can test it next week if no one else does so.

Signature · 1 line
~Randy
#3 lore raw
Quoted 2 lines · Randy.Dunlap

I have a drive, but I'm not near a highmem machine atm. I can test it next week if no one else does so.

So would you be amenable to fixing it properly? It looks like what needs to happen is that it needs to accept its commands into the scsi_pointer with page and offset (scsi_pointer doesn't have these fields, but you could probably cast in ptr and dma_handle). Then do a kmap/kunmap around imm_in() and imm_out() when it's operating on SCp.ptr.

James

#4 lore raw
Quoted 10 lines · James Bottomley
Quoted 2 lines · Randy.Dunlap

I have a drive, but I'm not near a highmem machine atm. I can test it next week if no one else does so.

So would you be amenable to fixing it properly? It looks like what needs to happen is that it needs to accept its commands into the scsi_pointer with page and offset (scsi_pointer doesn't have these fields, but you could probably cast in ptr and dma_handle). Then do a kmap/kunmap around imm_in() and imm_out() when it's operating on SCp.ptr.

Yep, that would be the optimal. But still, given the hardware, I feel the hacky workaround would be acceptable. If Randy wants to fix it properly being able to test it, perfect.

Signature · 1 line
Jens Axboe
#5 lore raw
Quoted 3 lines · Jens Axboe

Yep, that would be the optimal. But still, given the hardware, I feel the hacky workaround would be acceptable. If Randy wants to fix it properly being able to test it, perfect.

Actually, I already put your patch in the scsi-rc-fixes-2.6 tree since it was obviously correct. I was just being hopeful ...

James