aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tokenring/madgemc.c
diff options
context:
space:
mode:
authorYoann Padioleau <padator@wanadoo.fr>2007-07-23 09:18:21 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:50:19 -0400
commiteda105317fece79fa7e8478214ff7450f5a3f9dd (patch)
tree4d781702bd664c58629bd649a929d78874de400c /drivers/net/tokenring/madgemc.c
parentaf096046f63a065b692018cd4b8f5e7525c3e56a (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.c4
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)
690static int madgemc_mcaproc(char *buf, int slot, void *d) 690static 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;