aha1532: remove ISA_DMA_THRESHOLD usage
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Thu, 17 Jun 2010 12:58:21 +0000 (14:58 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Sat, 7 Aug 2010 16:15:46 +0000 (18:15 +0200)
We can safely remove ISA_DMA_THRESHOLD usage in aha1542. aha1542 uses
ISA_DMA_THRESHOLD to see if:

- the buffers in scatter/list are below 16MB.
- scsi_host is below 16MB.

Both checkings were added in the ancient times but aren't necessary
nowadays since we properly bounce the buffers and allocate scsi_host
below 16MB with non-zero unchecked_isa_dma.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
drivers/scsi/aha1542.c

index 2a8cf137f609f695748328ca677d5289794a7bd4..4f785f254c1f7f7619f25f0beb4a966c4b733ec4 100644 (file)
 #define SCSI_BUF_PA(address)   isa_virt_to_bus(address)
 #define SCSI_SG_PA(sgent)      (isa_page_to_bus(sg_page((sgent))) + (sgent)->offset)
 
-static void BAD_SG_DMA(Scsi_Cmnd * SCpnt,
-                      struct scatterlist *sgp,
-                      int nseg,
-                      int badseg)
-{
-       printk(KERN_CRIT "sgpnt[%d:%d] page %p/0x%llx length %u\n",
-              badseg, nseg, sg_virt(sgp),
-              (unsigned long long)SCSI_SG_PA(sgp),
-              sgp->length);
-
-       /*
-        * Not safe to continue.
-        */
-       panic("Buffer at physical address > 16Mb used for aha1542");
-}
-
 #include<linux/stat.h>
 
 #ifdef DEBUG
@@ -691,8 +675,6 @@ static int aha1542_queuecommand(Scsi_Cmnd * SCpnt, void (*done) (Scsi_Cmnd *))
                }
                scsi_for_each_sg(SCpnt, sg, sg_count, i) {
                        any2scsi(cptr[i].dataptr, SCSI_SG_PA(sg));
-                       if (SCSI_SG_PA(sg) + sg->length - 1 > ISA_DMA_THRESHOLD)
-                               BAD_SG_DMA(SCpnt, scsi_sglist(SCpnt), sg_count, i);
                        any2scsi(cptr[i].datalen, sg->length);
                };
                any2scsi(ccb[mbo].datalen, sg_count * sizeof(struct chain));
@@ -1133,16 +1115,9 @@ static int __init aha1542_detect(struct scsi_host_template * tpnt)
                                release_region(bases[indx], 4);
                                continue;
                        }
-                       /* For now we do this - until kmalloc is more intelligent
-                          we are resigned to stupid hacks like this */
-                       if (SCSI_BUF_PA(shpnt) >= ISA_DMA_THRESHOLD) {
-                               printk(KERN_ERR "Invalid address for shpnt with 1542.\n");
-                               goto unregister;
-                       }
                        if (!aha1542_test_port(bases[indx], shpnt))
                                goto unregister;
 
-
                        base_io = bases[indx];
 
                        /* Set the Bus on/off-times as not to ruin floppy performance */