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