Bill
2007-06-08 01:29:16 UTC
I am writing a Linux network device driver using Linux 2.4 with an
MPC8272 processor. I allocate buffers using kmalloc with the GFP_DMA
and GFP_KERNEL flags set. I DMA using these buffers to and from the
memory of a PCI device that is not a bus master. When I DMA from the
buffers to the PCI device, it does not crash, but when I DMA from the
PCI device to the buffers, the system crashes, sometimes immediately
and sometimes in as much as a half hour.
What could cause this difference in behavior based on the direction of
the DMA?
MPC8272 processor. I allocate buffers using kmalloc with the GFP_DMA
and GFP_KERNEL flags set. I DMA using these buffers to and from the
memory of a PCI device that is not a bus master. When I DMA from the
buffers to the PCI device, it does not crash, but when I DMA from the
PCI device to the buffers, the system crashes, sometimes immediately
and sometimes in as much as a half hour.
What could cause this difference in behavior based on the direction of
the DMA?