From: Rasmus Andersen <rasmus@jaquet.dk>
To: linux-kernel@vger.kernel.org
Subject: [PATCH] make drivers/scsi/dec_esp.c check request_irq return code (240p3)
Date: Wed, 17 Jan 2001 23:18:52 +0100 [thread overview]
Message-ID: <20010117231852.B602@jaquet.dk> (raw)
Hi.
(I have not been able to find a maintainer for this code.)
This patch makes drivers/scsi/dec_esp.c check the return code of
request_irq. It applies cleanly against 240p3 and ac9.
In the search_tc_slot loop I made it continue the search on failure
for one slot. Would this be correct?
Please comment.
--- linux-ac9/drivers/scsi/dec_esp.c.org Sun Jan 14 20:03:50 2001
+++ linux-ac9/drivers/scsi/dec_esp.c Wed Jan 17 22:52:52 2001
@@ -87,7 +87,7 @@
unsigned char scsi_pmaz_dma_buff_used[ESP_NCMD];
unsigned char scsi_cur_buff = 1; /* Leave space for command buffer */
__u32 esp_virt_buffer;
-int scsi_current_length = 0;
+int scsi_current_length;
volatile unsigned char cmd_buffer[16];
volatile unsigned char pmaz_cmd_buffer[16];
@@ -181,10 +181,13 @@
esp->esp_command_dvma = (__u32) KSEG1ADDR((volatile unsigned char *) cmd_buffer);
esp->irq = SCSI_INT;
- request_irq(esp->irq, esp_intr, SA_INTERRUPT, "NCR 53C94 SCSI",
- NULL);
- request_irq(SCSI_DMA_INT, scsi_dma_int, SA_INTERRUPT, "JUNKIO SCSI DMA",
- NULL);
+ if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
+ "NCR 53C94 SCSI", NULL))
+ goto err_dealloc;
+ if (request_irq(SCSI_DMA_INT, scsi_dma_int, SA_INTERRUPT,
+ "JUNKIO SCSI DMA", NULL))
+ goto err_free_irq;
+
esp->scsi_id = 7;
@@ -257,7 +260,12 @@
esp->dma_mmu_release_scsi_sgl = 0;
esp->dma_advance_sg = 0;
- request_irq(esp->irq, esp_intr, SA_INTERRUPT, "PMAZ_AA", NULL);
+ if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
+ "PMAZ_AA", NULL)) {
+ esp_deallocate(esp);
+ release_tc_card(slot);
+ continue;
+ }
esp->scsi_id = 7;
esp->diff = 0;
esp_initialize(esp);
@@ -267,10 +275,16 @@
if(nesps) {
printk("ESP: Total of %d ESP hosts found, %d actually in use.\n", nesps, esps_in_use);
- esps_running = esps_in_use;
- return esps_in_use;
- } else
- return 0;
+ esps_running = esps_in_use;
+ return esps_in_use;
+ }
+ return 0;
+
+ err_free_irq:
+ free_irq(esp->irq, esp_intr);
+ err_dealloc:
+ esp_deallocate(esp);
+ return 0;
}
/************************************************************* DMA Functions */
@@ -524,4 +538,4 @@
(char *) KSEG0ADDR((sp->request_buffer));
}
-#endif
\ No newline at end of file
+#endif
--
Regards,
Rasmus(rasmus@jaquet.dk)
``When the president does it, that means that it is not illegal.''
--Richard M. Nixon, TV interview with David Frost, 1977 May 4
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
reply other threads:[~2001-01-17 22:19 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010117231852.B602@jaquet.dk \
--to=rasmus@jaquet.dk \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox