diff options
author | Yoann Padioleau <padator@wanadoo.fr> | 2007-07-23 09:18:21 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:50:19 -0400 |
commit | eda105317fece79fa7e8478214ff7450f5a3f9dd (patch) | |
tree | 4d781702bd664c58629bd649a929d78874de400c /drivers/net/tokenring/madgemc.c | |
parent | af096046f63a065b692018cd4b8f5e7525c3e56a (diff) |
dev->priv to netdev_priv(dev), drivers/net/tokenring/
Replacing accesses to dev->priv to netdev_priv(dev). The replacment
is safe when netdev_priv is used to access a private structure that is
right next to the net_device structure in memory.
Cf http://groups.google.com/group/comp.os.linux.development.system/browse_thread/thread/de19321bcd94dbb8/0d74a4adcd6177bd
This is the case when the net_device structure was allocated with
a call to alloc_netdev or one of its derivative.
Here is an excerpt of the semantic patch that performs the transformation
@ rule1 @
type T;
struct net_device *dev;
@@
dev =
(
alloc_netdev
|
alloc_etherdev
|
alloc_trdev
)
(sizeof(T), ...)
@ rule1bis @
struct net_device *dev;
expression E;
@@
dev->priv = E
@ rule2 depends on rule1 && !rule1bis @
struct net_device *dev;
type rule1.T;
@@
- (T*) dev->priv
+ netdev_priv(dev)
PS: I have performed the same transformation on the whole kernel
and it affects around 70 files, most of them in drivers/net/.
Should I split my patch for each subnet directories ? (wireless/, wan/, etc)
Thanks to Thomas Surrel for helping me refining my semantic patch.
Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
3c359.c | 58 +++++++++++++++++++++++++++++-----------------------------
ibmtr.c | 38 +++++++++++++++++++-------------------
lanstreamer.c | 32 ++++++++++++++++----------------
madgemc.c | 4 ++--
olympic.c | 36 ++++++++++++++++++------------------
tmspci.c | 4 ++--
6 files changed, 86 insertions(+), 86 deletions(-)
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/tokenring/madgemc.c')
-rw-r--r-- | drivers/net/tokenring/madgemc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c index f8f4d74f01f1..9eafc2e25abc 100644 --- a/drivers/net/tokenring/madgemc.c +++ b/drivers/net/tokenring/madgemc.c | |||
@@ -690,7 +690,7 @@ static int madgemc_close(struct net_device *dev) | |||
690 | static int madgemc_mcaproc(char *buf, int slot, void *d) | 690 | static int madgemc_mcaproc(char *buf, int slot, void *d) |
691 | { | 691 | { |
692 | struct net_device *dev = (struct net_device *)d; | 692 | struct net_device *dev = (struct net_device *)d; |
693 | struct net_local *tp = dev->priv; | 693 | struct net_local *tp = netdev_priv(dev); |
694 | struct card_info *curcard = tp->tmspriv; | 694 | struct card_info *curcard = tp->tmspriv; |
695 | int len = 0; | 695 | int len = 0; |
696 | 696 | ||
@@ -736,7 +736,7 @@ static int __devexit madgemc_remove(struct device *device) | |||
736 | 736 | ||
737 | BUG_ON(!dev); | 737 | BUG_ON(!dev); |
738 | 738 | ||
739 | tp = dev->priv; | 739 | tp = netdev_priv(dev); |
740 | card = tp->tmspriv; | 740 | card = tp->tmspriv; |
741 | kfree(card); | 741 | kfree(card); |
742 | tp->tmspriv = NULL; | 742 | tp->tmspriv = NULL; |