[net-next-2.6 PATCH v2] can: SJA1000: generic OF platform bus driver
wg at grandegger.com
Wed May 27 00:23:47 EST 2009
David Miller wrote:
> From: Arnd Bergmann <arnd at arndb.de>
> Date: Tue, 26 May 2009 10:10:30 +0100
>> On Monday 25 May 2009, Wolfgang Grandegger wrote:
>>>> Right, that makes sense. However, most drivers use the field to store the
>>>> physical address, not the iomap token. Maybe there should be a new field
>>>> in struct sja1000_priv for the virtual address, but that would be a change
>>>> to the base driver, not just to the OF portion.
>>> Is that common practice? If yes, I will add a member to store the
>>> virtual address to struct sja1000_priv.
>> I grepped through the network driver for usage of ->base_addr, and
>> it's somewhat inconsistent. The majority of the users use it for
>> a physical address, but there are also a few that use it for the
>> __iomem token.
>> Casts between unsigned long and qualified (__iomem, __user, const, ...)
>> pointers do not cause a warning, but can easily lead to bugs when
>> another user casts to an unqualified pointer.
> It's such a baroque thing, there is no reason to set it at all if you
> ask me. It's only use is to allow ISA and similar primitive bus
> devices to have their I/O ports changed via ifconfig.
OK, I see, there are good reasons not to (mis-)use dev->base_addr. I
will prepare a patch for the SJA1000 CAN drivers.
More information about the Linuxppc-dev