generic memory addresses
Greg KH
greg at kroah.com
Thu Apr 6 02:08:20 EDT 2017
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
More information about the Kernelnewbies
mailing list