diff options
author | Stephen Hemminger <shemminger@linux-foundation.org> | 2007-10-09 04:40:57 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:52:52 -0400 |
commit | 3b04ddde02cf1b6f14f2697da5c20eca5715017f (patch) | |
tree | 9da1341a5a399a507b5ea6bf5a3047506b8d8f8f /drivers/net/wan/syncppp.c | |
parent | b95cce3576813ac3f86bafa6b5daaaaf7574b0fe (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.c | 19 |
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 | ||
362 | static int sppp_hard_header(struct sk_buff *skb, struct net_device *dev, __u16 type, | 362 | static 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 | ||
395 | static int sppp_rebuild_header(struct sk_buff *skb) | 397 | static 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 | ||