[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: