On Fri, 19 May 2006 10:00:38 -0500 James Bottomley wrote: > This is the wrong thing to do. You'll force all allocations for this > device to go through ZONE_DMA, which is a horrifically constrained > resource at 16MB. If it can take anything in lowmem because the driver > is unconverted, then you want it to specify BLK_BOUNCE_HIGH as the queue > limit. OK, I think I have ppa like imm now. From: Randy Dunlap <rdunlap@xxxxxxxxxxxx> ppa cannot handle highmem pages, and like imm, which already has this patch, the device is slow, so performance is not a big issue, so just force pages to be in low memory (hence mapped). Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxx> --- drivers/scsi/ppa.c | 11 +++++++++++ 1 files changed, 11 insertions(+) --- linux-2.6.17-rc4.orig/drivers/scsi/ppa.c +++ linux-2.6.17-rc4/drivers/scsi/ppa.c @@ -982,6 +982,12 @@ static int device_check(ppa_struct *dev) return -ENODEV; } +static int ppa_adjust_queue(struct scsi_device *device) +{ + blk_queue_bounce_limit(device->request_queue, BLK_BOUNCE_HIGH); + return 0; +} + static struct scsi_host_template ppa_template = { .module = THIS_MODULE, .proc_name = "ppa", @@ -997,6 +1003,11 @@ static struct scsi_host_template ppa_tem .cmd_per_lun = 1, .use_clustering = ENABLE_CLUSTERING, .can_queue = 1, + .slave_alloc = ppa_adjust_queue, + .unchecked_isa_dma = 1, /* ppa cannot deal with highmem, so + * this is an easy trick to ensure + * all io pages for this host reside + * in low memory */ }; /*************************************************************************** --- - : 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