On Thu, Apr 06, 2017 at 10:31:01AM +1000, Tobin C. Harding wrote:
Why is there code in-tree that declares generic memory addresses as unsigned int?
Linux Device Drivers 3rd Edition page 289 Therefore, generic memory addresses in the kernel are usually unsigned long, exploiting the fact that pointers and long integers are always the same size, at least on all the platforms currently supported by Linux.
It would therefore seem like a bug to declare a generic memory address as an unsigned int in code that can run on 64 bit machines.
I agree, that does seem like a bug.
What is the explanation for such declarations in the kernel please?
$ cd KERNEL_TREE $ git grep 'unsigned int addr' | wc -l 556
Make sure those really are being used to store a real address, sometimes they are not... thanks, greg k-h