aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wan/syncppp.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@linux-foundation.org>2007-10-09 04:40:57 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:52:52 -0400
commit3b04ddde02cf1b6f14f2697da5c20eca5715017f (patch)
tree9da1341a5a399a507b5ea6bf5a3047506b8d8f8f /drivers/net/wan/syncppp.c
parentb95cce3576813ac3f86bafa6b5daaaaf7574b0fe (diff)
[NET]: Move hardware header operations out of netdevice.
Since hardware header operations are part of the protocol class not the device instance, make them into a separate object and save memory. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wan/syncppp.c')
-rw-r--r--drivers/net/wan/syncppp.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/net/wan/syncppp.c b/drivers/net/wan/syncppp.c
index 5c71af6ea3a5..232ecba5340f 100644
--- a/drivers/net/wan/syncppp.c
+++ b/drivers/net/wan/syncppp.c
@@ -359,8 +359,10 @@ done:
359 * Handle transmit packets. 359 * Handle transmit packets.
360 */ 360 */
361 361
362static int sppp_hard_header(struct sk_buff *skb, struct net_device *dev, __u16 type, 362static int sppp_hard_header(struct sk_buff *skb,
363 void *daddr, void *saddr, unsigned int len) 363 struct net_device *dev, __u16 type,
364 const void *daddr, const void *saddr,
365 unsigned int len)
364{ 366{
365 struct sppp *sp = (struct sppp *)sppp_of(dev); 367 struct sppp *sp = (struct sppp *)sppp_of(dev);
366 struct ppp_header *h; 368 struct ppp_header *h;
@@ -392,10 +394,9 @@ static int sppp_hard_header(struct sk_buff *skb, struct net_device *dev, __u16 t
392 return sizeof(struct ppp_header); 394 return sizeof(struct ppp_header);
393} 395}
394 396
395static int sppp_rebuild_header(struct sk_buff *skb) 397static const struct header_ops sppp_header_ops = {
396{ 398 .create = sppp_hard_header,
397 return 0; 399};
398}
399 400
400/* 401/*
401 * Send keepalive packets, every 10 seconds. 402 * Send keepalive packets, every 10 seconds.
@@ -1098,8 +1099,8 @@ void sppp_attach(struct ppp_device *pd)
1098 * hard_start_xmit. 1099 * hard_start_xmit.
1099 */ 1100 */
1100 1101
1101 dev->hard_header = sppp_hard_header; 1102 dev->header_ops = &sppp_header_ops;
1102 dev->rebuild_header = sppp_rebuild_header; 1103
1103 dev->tx_queue_len = 10; 1104 dev->tx_queue_len = 10;
1104 dev->type = ARPHRD_HDLC; 1105 dev->type = ARPHRD_HDLC;
1105 dev->addr_len = 0; 1106 dev->addr_len = 0;
@@ -1115,8 +1116,6 @@ void sppp_attach(struct ppp_device *pd)
1115 dev->stop = sppp_close; 1116 dev->stop = sppp_close;
1116#endif 1117#endif
1117 dev->change_mtu = sppp_change_mtu; 1118 dev->change_mtu = sppp_change_mtu;
1118 dev->hard_header_cache = NULL;
1119 dev->header_cache_update = NULL;
1120 dev->flags = IFF_MULTICAST|IFF_POINTOPOINT|IFF_NOARP; 1119 dev->flags = IFF_MULTICAST|IFF_POINTOPOINT|IFF_NOARP;
1121} 1120}
1122 1121