patch-1.3.70 linux/drivers/scsi/scsi.c

Next file: linux/drivers/scsi/sd_ioctl.c
Previous file: linux/drivers/scsi/qlogic.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.69/linux/drivers/scsi/scsi.c linux/drivers/scsi/scsi.c
@@ -267,8 +267,8 @@
 {"TEXEL","CD-ROM","1.06", BLIST_BORKEN},
 {"INSITE","Floptical   F*8I","*", BLIST_KEY},
 {"INSITE","I325VM","*", BLIST_KEY},
-{"PIONEER","CD-ROMDRM-602X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
-{"PIONEER","CD-ROMDRM-604X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
+{"PIONEER","CD-ROM DRM-602X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
+{"PIONEER","CD-ROM DRM-604X","*", BLIST_FORCELUN | BLIST_SINGLELUN},
 /*
  * Must be at end of list...
  */
@@ -2288,8 +2288,12 @@
     struct Scsi_Host * host = NULL;
     
     for(j=0;j<SDpnt->host->cmd_per_lun;j++){
-	SCpnt = (Scsi_Cmnd *) scsi_init_malloc(sizeof(Scsi_Cmnd), GFP_ATOMIC);
-	SCpnt->host = SDpnt->host;
+	host = SDpnt->host;
+	SCpnt = (Scsi_Cmnd *)
+		scsi_init_malloc(sizeof(Scsi_Cmnd),
+				 GFP_ATOMIC |
+				 (host->unchecked_isa_dma ? GFP_DMA : 0));
+	SCpnt->host = host;
 	SCpnt->device = SDpnt;
 	SCpnt->target = SDpnt->id;
 	SCpnt->lun = SDpnt->lun;
@@ -2302,7 +2306,6 @@
 	SCpnt->underflow = 0;
 	SCpnt->transfersize = 0;
 	SCpnt->host_scribble = NULL;
-	host = SDpnt->host;
 	if(host->host_queue)
 	    host->host_queue->prev = SCpnt;
 	SCpnt->next = host->host_queue;
@@ -2859,7 +2862,7 @@
 		     * It should do the right thing for most correctly 
 		     * written host adapters. 
 		     */
-		    if (shpnt->irq) free_irq(shpnt->irq);
+		    if (shpnt->irq) free_irq(shpnt->irq, NULL);
 		    if (shpnt->dma_channel != 0xff) free_dma(shpnt->dma_channel);
 		    if (shpnt->io_port && shpnt->n_io_port)
 			release_region(shpnt->io_port, shpnt->n_io_port);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this