]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/hamradio/6pack.c
[NET]: Move hardware header operations out of netdevice.
[net-next-2.6.git] / drivers / net / hamradio / 6pack.c
index 0a847326a5e4128833e429b7b81f4f8bf5fdace7..ecd156def0398b24864313843b712caa186fb9ca 100644 (file)
@@ -288,7 +288,8 @@ static int sp_close(struct net_device *dev)
 
 /* Return the frame type ID */
 static int sp_header(struct sk_buff *skb, struct net_device *dev,
-       unsigned short type, void *daddr, void *saddr, unsigned len)
+                    unsigned short type, const void *daddr,
+                    const void *saddr, unsigned len)
 {
 #ifdef CONFIG_INET
        if (type != htons(ETH_P_AX25))
@@ -323,6 +324,11 @@ static int sp_rebuild_header(struct sk_buff *skb)
 #endif
 }
 
+static const struct header_ops sp_header_ops = {
+       .create         = sp_header,
+       .rebuild        = sp_rebuild_header,
+};
+
 static void sp_setup(struct net_device *dev)
 {
        /* Finish setting up the DEVICE info. */
@@ -331,14 +337,15 @@ static void sp_setup(struct net_device *dev)
        dev->open               = sp_open_dev;
        dev->destructor         = free_netdev;
        dev->stop               = sp_close;
-       dev->hard_header        = sp_header;
+
        dev->get_stats          = sp_get_stats;
        dev->set_mac_address    = sp_set_mac_address;
        dev->hard_header_len    = AX25_MAX_HEADER_LEN;
+       dev->header_ops         = &sp_header_ops;
+
        dev->addr_len           = AX25_ADDR_LEN;
        dev->type               = ARPHRD_AX25;
        dev->tx_queue_len       = 10;
-       dev->rebuild_header     = sp_rebuild_header;
        dev->tx_timeout         = NULL;
 
        /* Only activated in AX.25 mode */