
From: Jens Axboe <axboe@suse.de>

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.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/scsi/imm.c |    4 ++++
 1 files changed, 4 insertions(+)

diff -puN drivers/scsi/imm.c~scsi-imm-fix drivers/scsi/imm.c
--- 25/drivers/scsi/imm.c~scsi-imm-fix	Fri Dec 10 15:18:29 2004
+++ 25-akpm/drivers/scsi/imm.c	Fri Dec 10 15:18:29 2004
@@ -1140,6 +1140,10 @@ static struct scsi_host_template imm_tem
 	.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 */
 };
 
 /***************************************************************************
_
