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/dlci.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/dlci.c')
-rw-r--r-- | drivers/net/wan/dlci.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wan/dlci.c b/drivers/net/wan/dlci.c index bc12810157e0..96b232446c0b 100644 --- a/drivers/net/wan/dlci.c +++ b/drivers/net/wan/dlci.c | |||
@@ -66,8 +66,8 @@ static void dlci_setup(struct net_device *); | |||
66 | */ | 66 | */ |
67 | 67 | ||
68 | static int dlci_header(struct sk_buff *skb, struct net_device *dev, | 68 | static int dlci_header(struct sk_buff *skb, struct net_device *dev, |
69 | unsigned short type, void *daddr, void *saddr, | 69 | unsigned short type, const void *daddr, |
70 | unsigned len) | 70 | const void *saddr, unsigned len) |
71 | { | 71 | { |
72 | struct frhdr hdr; | 72 | struct frhdr hdr; |
73 | struct dlci_local *dlp; | 73 | struct dlci_local *dlp; |
@@ -485,6 +485,10 @@ static int dlci_ioctl(unsigned int cmd, void __user *arg) | |||
485 | return(err); | 485 | return(err); |
486 | } | 486 | } |
487 | 487 | ||
488 | static const struct header_ops dlci_header_ops = { | ||
489 | .create = dlci_header, | ||
490 | }; | ||
491 | |||
488 | static void dlci_setup(struct net_device *dev) | 492 | static void dlci_setup(struct net_device *dev) |
489 | { | 493 | { |
490 | struct dlci_local *dlp = dev->priv; | 494 | struct dlci_local *dlp = dev->priv; |
@@ -494,7 +498,7 @@ static void dlci_setup(struct net_device *dev) | |||
494 | dev->stop = dlci_close; | 498 | dev->stop = dlci_close; |
495 | dev->do_ioctl = dlci_dev_ioctl; | 499 | dev->do_ioctl = dlci_dev_ioctl; |
496 | dev->hard_start_xmit = dlci_transmit; | 500 | dev->hard_start_xmit = dlci_transmit; |
497 | dev->hard_header = dlci_header; | 501 | dev->header_ops = &dlci_header_ops; |
498 | dev->get_stats = dlci_get_stats; | 502 | dev->get_stats = dlci_get_stats; |
499 | dev->change_mtu = dlci_change_mtu; | 503 | dev->change_mtu = dlci_change_mtu; |
500 | dev->destructor = free_netdev; | 504 | dev->destructor = free_netdev; |