White RoomNEW

Thirty Two Bit Device

A driver on a 64 GiB machine allocates a buffer for a device whose DMA engine drives 32 address lines. It uses a plain kmalloc(size, GFP_KERNEL), and the device silently reads garbage on maybe one boot in ten.

What is happening, and what is the fix?