From: <viro@parcelfarce.linux.theplanet.co.uk>

Fix bug #3125:

This should fix the problem; however, we will need to repeat that for all
PIO SCSI drivers (another immediate victim is ppa.c).

We should start looking for sane solution; I _really_ don't like the kludge
with using ->slave_alloc() for fixups after scsi_alloc_queue().

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

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

diff -puN drivers/scsi/imm.c~imm-oops-fix drivers/scsi/imm.c
--- 25/drivers/scsi/imm.c~imm-oops-fix	Wed Aug  4 14:56:45 2004
+++ 25-akpm/drivers/scsi/imm.c	Wed Aug  4 14:56:45 2004
@@ -1118,6 +1118,12 @@ static int device_check(imm_struct *dev)
 	return -ENODEV;
 }
 
+static int imm_adjust_queue(struct scsi_device *device)
+{
+	blk_queue_bounce_limit(device->request_queue, BLK_BOUNCE_HIGH);
+	return 0;
+}
+
 static struct scsi_host_template imm_template = {
 	.module			= THIS_MODULE,
 	.proc_name		= "imm",
@@ -1133,6 +1139,7 @@ static struct scsi_host_template imm_tem
 	.cmd_per_lun		= 1,
 	.use_clustering		= ENABLE_CLUSTERING,
 	.can_queue		= 1,
+	.slave_alloc		= imm_adjust_queue,
 };
 
 /***************************************************************************
_