Re: Feral ISP driver: dma map request problem
On Friday 09 January 2004 04:03 am, Ulrich Harttig wrote:
> But again I ran into a problem: Once a day I would get the
> following error kernel message (20 to 30 of them).
> kernel: pci_map_sg failed: could not allocate dma page tables
> kernel: isp0: unable to dma map request
>
> Afterwards the machine would work without any more of these
> messages. But tonight the machine would hang after the dma
> problem and had to be rebooted
>
> Does anyone have an idea what the cause of the dma allocation
> problem could be ? Faulty harddrives, faulty controller ??
Hmm. It looks like the driver tried to do mapping as if the
machine had a 32-bit address space. IIRC what it's supposed to
do is when it grabs some memory for PCI DMA mapping, it's
supposed to pass a flag signifying that the DMA region should be
accessible via 32-bit physical addressing. Otherwise PCI
devices would likely have some trouble getting to it!
Apparently that flag didn't get passed somewhere, and the
prospective DMA buffer got allocated way high in the 64-bit
address space. So it couldn't be set up as a DMA buffer, and
the kernel's PCI DMA mapper spit it back. By my understanding,
that's a fairly common mistake when porting kernel drivers to
64-bit architectures.
I'll take a look at the source code this afternoon and see what I
can spot.
--
Kelledin
"If a server crashes in a server farm and no one pings it, does
it still cost four figures to fix?"
Reply to: