Skip to contentSkip to conversation

acenic >4gig sendfile problem

DISCUSSION Dave Hansen 4 participants 5 messages Jun 10, 2002 – Jun 25, 2002

lore
Share & tools
lore
#0 lore raw

When doing sendfile with my acenic card on my 8xPIII-700 and PAE running 2.4.18, I'm getting all zeros in the files being transmitted.
Running the Redhat 2.4.18-4 kernel fixes the problem. I saw this
entry in the rpm's changelog:
* Sat Aug 25 2001 Ingo Molnar <[email protected]>
- fix the acenic driver bug that caused random kernel memory being
sent out on the wire, on x86 systems with more than 4 GB RAM.

I tried to pull the relevant bits out of linux-2.4.17-selected-ac-bits.patch and linux-2.4.18-tg3.patch, with no success. I mailed Ingo with no response.

Does anybody remember what the fix was, or still have the patch handy?

Signature · 2 lines
Dave Hansen
[email protected]
#1 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Dave" == Dave Hansen <[email protected]> writes:

Dave> When doing sendfile with my acenic card on my 8xPIII-700 and PAE Dave> running 2.4.18, I'm getting all zeros in the files being Dave> transmitted. Running the Redhat 2.4.18-4 kernel fixes the Dave> problem. I saw this entry in the rpm's changelog: * Sat Aug 25 Dave> 2001 Ingo Molnar <[email protected]> - fix the acenic driver bug Dave> that caused random kernel memory being sent out on the wire, on Dave> x86 systems with more than 4 GB RAM.

Actually I think you're hitting a bug in pci_map_page() rather than in the acenic.driver.

Try the patch from Ben LaHaise included below.

Jes

------- Start of forwarded message -------
Resent-Message-Id: <[email protected]>
Date: Mon, 10 Jun 2002 19:56:44 -0400
From: Benjamin LaHaise <[email protected]>
To: Marcelo Tosatti <[email protected]>,
Linux Kernel <[email protected]>
Subject: highmem pci dma mapping does not work, missing cast in asm-i386/pci.h
Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Resent-From: [email protected]
Resent-Date: Mon, 10 Jun 2002 19:58:37 -0400
Resent-To: [email protected]

Hello all,

There's a missing cast in pci_map_page that causes 64 bit capable drivers to access the wrong memory for highmem pages. Please include the patch below to fix it.

-ben

Signature · 22 lines
"You will be reincarnated as a toad; and you will be much happier."

:r ~/patches/v2.4/v2.4.19-pre10-pci_highmem.diff
diff -urN v2.4.19-pre10/include/asm-i386/pci.h pci-v2.4.19-pre10/include/asm-i386/pci.h
--- v2.4.19-pre10/include/asm-i386/pci.h	Thu Jun  6 20:10:08 2002
+++ pci-v2.4.19-pre10/include/asm-i386/pci.h	Mon Jun 10 19:54:16 2002
@@ -103,7 +103,7 @@
 	if (direction == PCI_DMA_NONE)
 		out_of_line_bug();
 
-	return (page - mem_map) * PAGE_SIZE + offset;
+	return (dma_addr_t)(page - mem_map) * PAGE_SIZE + offset;
 }
 
 static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

------- End of forwarded message -------
#2 lore raw

But...

sendfile() doesn't support >4gig anyway - does it? that's the (yet unimplemented) sendfile64()

roy

Signature · 4 lines
Roy Sigurd Karlsbakk, Datavaktmester

Computers are like air conditioners.
They stop working when you open Windows.
Quoted 39 lines · Jes Sorensen
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Dave" == Dave Hansen <[email protected]> writes:

Dave> When doing sendfile with my acenic card on my 8xPIII-700 and PAE Dave> running 2.4.18, I'm getting all zeros in the files being Dave> transmitted. Running the Redhat 2.4.18-4 kernel fixes the Dave> problem. I saw this entry in the rpm's changelog: * Sat Aug 25 Dave> 2001 Ingo Molnar <[email protected]> - fix the acenic driver bug Dave> that caused random kernel memory being sent out on the wire, on Dave> x86 systems with more than 4 GB RAM.

Actually I think you're hitting a bug in pci_map_page() rather than in the acenic.driver.

Try the patch from Ben LaHaise included below.

Jes

------- Start of forwarded message -------
Resent-Message-Id: <[email protected]>
Date: Mon, 10 Jun 2002 19:56:44 -0400
From: Benjamin LaHaise <[email protected]>
To: Marcelo Tosatti <[email protected]>,
Linux Kernel <[email protected]>
Subject: highmem pci dma mapping does not work, missing cast in asm-i386/pci.h Message-ID: <[email protected]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Resent-From: [email protected]
Resent-Date: Mon, 10 Jun 2002 19:58:37 -0400
Resent-To: [email protected]

Hello all,

There's a missing cast in pci_map_page that causes 64 bit capable drivers to access the wrong memory for highmem pages. Please include the patch below to fix it.

-ben

#3 lore raw

From: Roy Sigurd Karlsbakk <[email protected]>
Date: Mon, 24 Jun 2002 17:54:59 +0200

sendfile() doesn't support >4gig anyway - does it? that's the (yet unimplemented) sendfile64()

Nothing to do with file offsets. It has to do with what physical page the file data ends up in which can be anywhere.

#4 lore raw
In reply to Jes Sorensen
Quoted 11 lines · Jes Sorensen
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 1 line

"Dave" == Dave Hansen <[email protected]> writes:

Dave> When doing sendfile with my acenic card on my 8xPIII-700 and PAE Dave> running 2.4.18, I'm getting all zeros in the files being Dave> transmitted. Running the Redhat 2.4.18-4 kernel fixes the Dave> problem. I saw this entry in the rpm's changelog: * Sat Aug 25 Dave> 2001 Ingo Molnar <[email protected]> - fix the acenic driver bug Dave> that caused random kernel memory being sent out on the wire, on Dave> x86 systems with more than 4 GB RAM.

Quoted 5 lines

Actually I think you're hitting a bug in pci_map_page() rather than in the acenic.driver.

Try the patch from Ben LaHaise included below.

Thanks for the patch. I'll give it a shot when I get back from OLS.

Signature · 2 lines
Dave Hansen
[email protected]