aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wan/hdlc_cisco.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/hdlc_cisco.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/hdlc_cisco.c')
-rw-r--r--drivers/net/wan/hdlc_cisco.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c
index 9ec6cf2e510..038a6e748bb 100644
--- a/drivers/net/wan/hdlc_cisco.c
+++ b/drivers/net/wan/hdlc_cisco.c
@@ -74,7 +74,7 @@ static inline struct cisco_state * state(hdlc_device *hdlc)
74 74
75 75
76static int cisco_hard_header(struct sk_buff *skb, struct net_device *dev, 76static int cisco_hard_header(struct sk_buff *skb, struct net_device *dev,
77 u16 type, void *daddr, void *saddr, 77 u16 type, const void *daddr, const void *saddr,
78 unsigned int len) 78 unsigned int len)
79{ 79{
80 struct hdlc_header *data; 80 struct hdlc_header *data;
@@ -309,7 +309,6 @@ static void cisco_stop(struct net_device *dev)
309} 309}
310 310
311 311
312
313static struct hdlc_proto proto = { 312static struct hdlc_proto proto = {
314 .start = cisco_start, 313 .start = cisco_start,
315 .stop = cisco_stop, 314 .stop = cisco_stop,
@@ -317,7 +316,10 @@ static struct hdlc_proto proto = {
317 .ioctl = cisco_ioctl, 316 .ioctl = cisco_ioctl,
318 .module = THIS_MODULE, 317 .module = THIS_MODULE,
319}; 318};
320 319
320static const struct header_ops cisco_header_ops = {
321 .create = cisco_hard_header,
322};
321 323
322static int cisco_ioctl(struct net_device *dev, struct ifreq *ifr) 324static int cisco_ioctl(struct net_device *dev, struct ifreq *ifr)
323{ 325{
@@ -365,7 +367,7 @@ static int cisco_ioctl(struct net_device *dev, struct ifreq *ifr)
365 367
366 memcpy(&state(hdlc)->settings, &new_settings, size); 368 memcpy(&state(hdlc)->settings, &new_settings, size);
367 dev->hard_start_xmit = hdlc->xmit; 369 dev->hard_start_xmit = hdlc->xmit;
368 dev->hard_header = cisco_hard_header; 370 dev->header_ops = &cisco_header_ops;
369 dev->type = ARPHRD_CISCO; 371 dev->type = ARPHRD_CISCO;
370 netif_dormant_on(dev); 372 netif_dormant_on(dev);
371 return 0; 373 return 0;