Thread (5 messages) 5 messages, 4 authors, 2009-05-30

Re: [net-next-2.6 PATCH v2] can: SJA1000: generic OF platform bus driver

From: Wolfgang Grandegger <hidden>
Date: 2009-05-30 17:59:08
Also in: linux-devicetree, linuxppc-dev

Possibly related (same subject, not in this thread)

Wolfgang Grandegger wrote:
David Miller wrote:
quoted
From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 26 May 2009 10:10:30 +0100
quoted
On Monday 25 May 2009, Wolfgang Grandegger wrote:
quoted
quoted
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.
I have just sent out a patch series fixing this issue and providing
a revised patch for the SJA1000 OF platform driver:

[net-next-2.6 PATCH 0/3] can: sja1000: misused netdev->base_addr and OF platform driver

Wolfgang.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help