On Wed, Apr 20, 2016 at 04:37:07PM -0400, Rob Groner wrote: > Sorry if this isn't related, it seemed like it was... > > I recently discovered one of our drivers isn't written correctly for > 64-bit. It uses a uint32_t to hold an address. Whoops. > > In previous drivers when I've needed to hold an address, I've used an > "unsigned long", as (so far as I could tell) that would give me the > correct number of bytes whether on 32 or 64-bit systems. > > Now that I have to fix this driver, I'd rather do whatever the > "standard" method is for storing an address value. > > Looking at code in the kernel and linux/types.h, I see "phys_addr_t and > dma_addr_t. Is that what I want to use? What if it's a virtual > address? void *? You want to use '__u64' and cast properly within the kernel to a pointer. hope this helps, greg k-h _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies