Skip to contentSkip to conversation

essential SCSI fixes for 2.6.5-rc2

PATCH In review James Bottomley 3 participants 5 messages Mar 20, 2004 – Mar 21, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 essential SCSI fixes for 2.6.5-rc2

These are the two oops related fixes from the scsi-misc-2.6 tree that testing has shaken out. They are available at

bk://linux-scsi.bkbits.net/scsi-for-linus-2.6

The shortlog is:

Brian King:
o SCSI: Fix Oops in sg with lots of SG_IO activity

Kai Mäkisara:
o Fix SCSI + st regressions problem

And the diffstat:

 sg.c |    4 ++--
 st.c |   15 ++++++++++-----
 2 files changed, 12 insertions(+), 7 deletions(-)

James

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#1 lore raw
Quoted 7 lines · James Bottomley

These are the two oops related fixes from the scsi-misc-2.6 tree that testing has shaken out. They are available at

bk://linux-scsi.bkbits.net/scsi-for-linus-2.6

The shortlog is:

[...]

Any chance you could include the fusion consistent mask patch with this?

Without this fusion is completely unusable with >4GB on 64bit.

-Andi

drivers/message/fusion/mptbase.c +5 -0
diff -burpN -X ../KDIFX -x '*-SLAB' linux-vanilla-2.6.5rc2/drivers/message/fusion/mptbase.c linux-2.6.5rc2-amd64/drivers/message/fusion/mptbase.c
@@ -1280,12 +1280,17 @@ mptbase_probe(struct pci_dev *pdev, cons
 		return r;
 	}
 
+#if 0
+	/* broken because some code assumes that multiple calls
+	   to pci_alloc_consistent return data in the same 4GB segment. 
+	   This cannot work on machines with enough memory. */
 	if (!pci_set_consistent_dma_mask(pdev, mask))
 		dprintk((KERN_INFO MYNAM
 			": Using 64 bit consistent mask\n"));
 	else
 		dprintk((KERN_INFO MYNAM
 			": Not using 64 bit consistent mask\n"));
+#endif
 
 	ioc = kmalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC);
 	if (ioc == NULL) {
#2 lore raw
Quoted 3 lines · Andi Kleen

Any chance you could include the fusion consistent mask patch with this?

Without this fusion is completely unusable with >4GB on 64bit.

But if I include this patch, it will break Altix.

Eric, could you make fixing this your top priority? Even if you can't consolidate the allocations, what about using dma_pool instead?

James

Quoted 21 lines

diff -burpN -X ../KDIFX -x '*-SLAB' linux-vanilla-2.6.5rc2/drivers/message/fusion/mptbase.c linux-2.6.5rc2-amd64/drivers/message/fusion/mptbase.c

drivers/message/fusion/mptbase.c +5 -0
@@ -1280,12 +1280,17 @@ mptbase_probe(struct pci_dev *pdev, cons
 		return r;
 	}
 
+#if 0
+	/* broken because some code assumes that multiple calls
+	   to pci_alloc_consistent return data in the same 4GB segment. 
+	   This cannot work on machines with enough memory. */
 	if (!pci_set_consistent_dma_mask(pdev, mask))
 		dprintk((KERN_INFO MYNAM
 			": Using 64 bit consistent mask\n"));
 	else
 		dprintk((KERN_INFO MYNAM
 			": Not using 64 bit consistent mask\n"));
+#endif
 
 	ioc = kmalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC);
 	if (ioc == NULL) {
#3 lore raw

I will be consolidating the three allocations. I have started this work last Friday,
and should be done early next week.

Eric Moore

Quoted 13 lines · James Bottomley
Quoted 3 lines · Andi Kleen

Any chance you could include the fusion consistent mask patch with this?

Without this fusion is completely unusable with >4GB on 64bit.

But if I include this patch, it will break Altix.

Eric, could you make fixing this your top priority? Even if you can't consolidate the allocations, what about using dma_pool instead?

James

Quoted 1 line

diff -burpN -X ../KDIFX -x '*-SLAB'

linux-vanilla-2.6.5rc2/drivers/message/fusion/mptbase.c linux-2.6.5rc2-amd64/drivers/message/fusion/mptbase.c

Quoted 1 line
Quoted 1 line

--- linux-vanilla-2.6.5rc2/drivers/message/fusion/mptbase.c 2004-03-20

03:55:31.000000000 +0100

Quoted 1 line
Quoted 1 line

+++ linux-2.6.5rc2-amd64/drivers/message/fusion/mptbase.c 2004-03-20

04:11:24.000000000 +0100

Quoted 20 lines
Quoted 18 lines
drivers/message/fusion/mptbase.c +5 -0
@@ -1280,12 +1280,17 @@ mptbase_probe(struct pci_dev *pdev, cons
 return r;
 }
 
+#if 0
+ /* broken because some code assumes that multiple calls
+    to pci_alloc_consistent return data in the same 4GB segment.
+    This cannot work on machines with enough memory. */
 if (!pci_set_consistent_dma_mask(pdev, mask))
 dprintk((KERN_INFO MYNAM
 ": Using 64 bit consistent mask\n"));
 else
 dprintk((KERN_INFO MYNAM
 ": Not using 64 bit consistent mask\n"));
+#endif
 
 ioc = kmalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC);
 if (ioc == NULL) {
#4 lore raw
Quoted 3 lines · Eric Dean

I will be consolidating the three allocations. I have started this work last Friday,
and should be done early next week.

You could just use a dma pool. It was exactly done for situations like this.

-Andi