aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-05-12 06:29:11 -0400
committerDavid S. Miller <davem@davemloft.net>2008-05-12 06:29:11 -0400
commit4951704b4e23d71b99ac933d8e6993bc6225ac13 (patch)
treeafcc69d6ec071f5d0bb19517635e9b3cf8f668ba /include
parentc4492586a618d18e8a5343a04bad0ec606064846 (diff)
syncppp: Fix crashes.
The syncppp layer wants a mid-level netdev private pointer. It was using netdev->priv but that only worked by accident, and thus this scheme was broken when the device private allocation strategy changed. Add a proper mid-layer private pointer for uses like this, update syncppp and all users, and remove the HDLC_PPP broken tag from drivers/net/wan/Kconfig Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h3
-rw-r--r--include/net/syncppp.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 7c1d4466583b..746901774d49 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -715,6 +715,9 @@ struct net_device
715 struct net *nd_net; 715 struct net *nd_net;
716#endif 716#endif
717 717
718 /* mid-layer private */
719 void *ml_priv;
720
718 /* bridge stuff */ 721 /* bridge stuff */
719 struct net_bridge_port *br_port; 722 struct net_bridge_port *br_port;
720 /* macvlan */ 723 /* macvlan */
diff --git a/include/net/syncppp.h b/include/net/syncppp.h
index 877efa434700..e43f4070d892 100644
--- a/include/net/syncppp.h
+++ b/include/net/syncppp.h
@@ -59,7 +59,7 @@ struct ppp_device
59 59
60static inline struct sppp *sppp_of(struct net_device *dev) 60static inline struct sppp *sppp_of(struct net_device *dev)
61{ 61{
62 struct ppp_device **ppp = dev->priv; 62 struct ppp_device **ppp = dev->ml_priv;
63 BUG_ON((*ppp)->dev != dev); 63 BUG_ON((*ppp)->dev != dev);
64 return &(*ppp)->sppp; 64 return &(*ppp)->sppp;
65} 65}