make drivers/scsi/blz1230.c check request_irq return (240p3)
PATCH 1/1 make drivers/scsi/blz1230.c check request_irq return (240p3)
Hi.
The following patch makes drivers/scsi/blz1230.c check request_irq's return code. It applies cleanly against 240p3 and ac9.
It also swaps two lines in an existing error path (esp_deallocate/ scsi_unregister) since this seems wrong.
Comments?
drivers/scsi/blz1230.c renamed from drivers/scsi/blz1230.c.org +12 -9
@@ -88,13 +88,8 @@esp_write (eregs->esp_cfg1, (ESP_CONFIG1_PENABLE |7 ));udelay (5 ); -if (esp_read (eregs->esp_cfg1) != (ESP_CONFIG1_PENABLE |7 )){ -esp_deallocate (esp); -scsi_unregister (esp->ehost); -release_mem_region (board+REAL_BLZ1230_ESP_ADDR , -sizeof (struct ESP_regs )); -return 0 ;/* Bail out if address did not hold data */ - } +if (esp_read (eregs->esp_cfg1) != (ESP_CONFIG1_PENABLE |7 )) + goto err_out;/* Do command transfer with programmed I/O */ esp->do_pio_cmds =1 ;
@@ -140,8 +135,9 @@ esp->irq =IRQ_AMIGA_PORTS ; esp->slot = board+REAL_BLZ1230_ESP_ADDR ; -request_irq (IRQ_AMIGA_PORTS , esp_intr,SA_SHIRQ , -"Blizzard 1230 SCSI IV" , esp_intr); +if (request_irq (IRQ_AMIGA_PORTS , esp_intr,SA_SHIRQ , +"Blizzard 1230 SCSI IV" , esp_intr)) + goto err_out;/* Figure out our scsi ID on the bus */ esp->scsi_id =7 ;
@@ -156,6 +152,13 @@return esps_in_use; } } +return 0 ; + + err_out: +scsi_unregister (esp->ehost); +esp_deallocate (esp); +release_mem_region (board+REAL_BLZ1230_ESP_ADDR , +sizeof (struct ESP_regs ));return 0 ; }
Signature · 9 lines
Regards,
Rasmus([email protected])
Half this game is ninety percent mental.
-Philadelphia Phillies manager Danny Ozark
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/