From: Andi Kleen <ak@muc.de>
To: linux-scsi@vger.kernel.org, James.Bottomley@HansenPartnership.com
Cc: Pam.Delaney@lsil.com
Subject: [PATCH] IOMMU overflow handling fix for MPT fusion
Date: Sun, 10 Aug 2003 16:13:16 +0200 [thread overview]
Message-ID: <20030810141316.GA13529@averell> (raw)
Currently mpt fusion does not handle IOMMU overflow (pci_map_sg returning 0)
very gracefully. It gets not reported to the upper layers. This patch fixes this.
As a related note the fusion driver tends to trigger the NMI watchdog as soon
as it goes into any error recovery, because it busy waits for seconds with
interrupts disabled (seems to be still true with the new error handling in 2.6).
This is a big inconvenient because it leads to a forced oops.
I tried to work around it by exporting touch_nmi_watchdog and using it in
the delays, but Linus was opposed to this approach. It would be nice
if someone could fix this. Afaik in 2.6 the error recovery should mostly
run in process context, so it should be possible to use schedule_timeout()
with interrupts on for the delays.
At least on x86-64 the NMI watchdog runs by default and even on i386 it is a
very useful debugging tool.
-Andi
diff -burpN -X ../KDIFX linux/drivers/message/fusion/mptscsih.c linux-2.6.0test3-amd64/drivers/message/fusion/mptscsih.c
--- linux/drivers/message/fusion/mptscsih.c 2003-07-28 23:12:23.000000000 +0200
+++ linux-2.6.0test3-amd64/drivers/message/fusion/mptscsih.c 2003-08-03 12:15:10.000000000 +0200
@@ -475,6 +476,8 @@ mptscsih_AddSGE(MPT_SCSI_HOST *hd, Scsi_
(struct scatterlist *) SCpnt->request_buffer,
SCpnt->use_sg,
scsi_to_pci_dma_dir(SCpnt->sc_data_direction));
+ if (sges_left == 0)
+ return FAILED;
} else if (SCpnt->request_bufflen) {
dma_addr_t buf_dma_addr;
scPrivate *my_priv;
reply other threads:[~2003-08-10 14:13 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=20030810141316.GA13529@averell \
--to=ak@muc.de \
--cc=James.Bottomley@HansenPartnership.com \
--cc=Pam.Delaney@lsil.com \
--cc=linux-scsi@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