wan: make LAPB callbacks const
authorstephen hemminger <shemminger@vyatta.com>
Fri, 16 Sep 2011 11:04:29 +0000 (11:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Sep 2011 23:20:20 +0000 (19:20 -0400)
This is compile tested only.
Suggested by dumpster diving in PAX.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/hdlc_x25.c
drivers/net/wan/lapbether.c
drivers/net/wan/x25_asy.c
include/linux/lapb.h
include/net/lapb.h
net/lapb/lapb_iface.c

index 56aeb01..a49aec5 100644 (file)
@@ -134,15 +134,15 @@ static netdev_tx_t x25_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static int x25_open(struct net_device *dev)
 {
-       struct lapb_register_struct cb;
        int result;
-
-       cb.connect_confirmation = x25_connected;
-       cb.connect_indication = x25_connected;
-       cb.disconnect_confirmation = x25_disconnected;
-       cb.disconnect_indication = x25_disconnected;
-       cb.data_indication = x25_data_indication;
-       cb.data_transmit = x25_data_transmit;
+       static const struct lapb_register_struct cb = {
+               .connect_confirmation = x25_connected,
+               .connect_indication = x25_connected,
+               .disconnect_confirmation = x25_disconnected,
+               .disconnect_indication = x25_disconnected,
+               .data_indication = x25_data_indication,
+               .data_transmit = x25_data_transmit,
+       };
 
        result = lapb_register(dev, &cb);
        if (result != LAPB_OK)
index a817081..7beeb9b 100644 (file)
@@ -259,14 +259,13 @@ static int lapbeth_set_mac_address(struct net_device *dev, void *addr)
 }
 
 
-static struct lapb_register_struct lapbeth_callbacks = {
+static const struct lapb_register_struct lapbeth_callbacks = {
        .connect_confirmation    = lapbeth_connected,
        .connect_indication      = lapbeth_connected,
        .disconnect_confirmation = lapbeth_disconnected,
        .disconnect_indication   = lapbeth_disconnected,
        .data_indication         = lapbeth_data_indication,
        .data_transmit           = lapbeth_data_transmit,
-
 };
 
 /*
index 46ceb3a..8a10bb7 100644 (file)
@@ -434,14 +434,13 @@ static void x25_asy_disconnected(struct net_device *dev, int reason)
        netif_rx(skb);
 }
 
-static struct lapb_register_struct x25_asy_callbacks = {
+static const struct lapb_register_struct x25_asy_callbacks = {
        .connect_confirmation = x25_asy_connected,
        .connect_indication = x25_asy_connected,
        .disconnect_confirmation = x25_asy_disconnected,
        .disconnect_indication = x25_asy_disconnected,
        .data_indication = x25_asy_data_indication,
        .data_transmit = x25_asy_data_transmit,
-
 };
 
 
index ce709e1..873c1eb 100644 (file)
@@ -44,7 +44,8 @@ struct lapb_parms_struct {
        unsigned int mode;
 };
 
-extern int lapb_register(struct net_device *dev, struct lapb_register_struct *callbacks);
+extern int lapb_register(struct net_device *dev,
+                        const struct lapb_register_struct *callbacks);
 extern int lapb_unregister(struct net_device *dev);
 extern int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms);
 extern int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms);
index 96cb5dd..fd2bf57 100644 (file)
@@ -95,7 +95,7 @@ struct lapb_cb {
        struct sk_buff_head     write_queue;
        struct sk_buff_head     ack_queue;
        unsigned char           window;
-       struct lapb_register_struct callbacks;
+       const struct lapb_register_struct *callbacks;
 
        /* FRMR control information */
        struct lapb_frame       frmr_data;
index 956b7e4..8d0324b 100644 (file)
@@ -139,7 +139,8 @@ out:
        return lapb;
 }
 
-int lapb_register(struct net_device *dev, struct lapb_register_struct *callbacks)
+int lapb_register(struct net_device *dev,
+                 const struct lapb_register_struct *callbacks)
 {
        struct lapb_cb *lapb;
        int rc = LAPB_BADTOKEN;
@@ -158,7 +159,7 @@ int lapb_register(struct net_device *dev, struct lapb_register_struct *callbacks
                goto out;
 
        lapb->dev       = dev;
-       lapb->callbacks = *callbacks;
+       lapb->callbacks = callbacks;
 
        __lapb_insert_cb(lapb);
 
@@ -380,32 +381,32 @@ int lapb_data_received(struct net_device *dev, struct sk_buff *skb)
 
 void lapb_connect_confirmation(struct lapb_cb *lapb, int reason)
 {
-       if (lapb->callbacks.connect_confirmation)
-               lapb->callbacks.connect_confirmation(lapb->dev, reason);
+       if (lapb->callbacks->connect_confirmation)
+               lapb->callbacks->connect_confirmation(lapb->dev, reason);
 }
 
 void lapb_connect_indication(struct lapb_cb *lapb, int reason)
 {
-       if (lapb->callbacks.connect_indication)
-               lapb->callbacks.connect_indication(lapb->dev, reason);
+       if (lapb->callbacks->connect_indication)
+               lapb->callbacks->connect_indication(lapb->dev, reason);
 }
 
 void lapb_disconnect_confirmation(struct lapb_cb *lapb, int reason)
 {
-       if (lapb->callbacks.disconnect_confirmation)
-               lapb->callbacks.disconnect_confirmation(lapb->dev, reason);
+       if (lapb->callbacks->disconnect_confirmation)
+               lapb->callbacks->disconnect_confirmation(lapb->dev, reason);
 }
 
 void lapb_disconnect_indication(struct lapb_cb *lapb, int reason)
 {
-       if (lapb->callbacks.disconnect_indication)
-               lapb->callbacks.disconnect_indication(lapb->dev, reason);
+       if (lapb->callbacks->disconnect_indication)
+               lapb->callbacks->disconnect_indication(lapb->dev, reason);
 }
 
 int lapb_data_indication(struct lapb_cb *lapb, struct sk_buff *skb)
 {
-       if (lapb->callbacks.data_indication)
-               return lapb->callbacks.data_indication(lapb->dev, skb);
+       if (lapb->callbacks->data_indication)
+               return lapb->callbacks->data_indication(lapb->dev, skb);
 
        kfree_skb(skb);
        return NET_RX_SUCCESS; /* For now; must be != NET_RX_DROP */
@@ -415,8 +416,8 @@ int lapb_data_transmit(struct lapb_cb *lapb, struct sk_buff *skb)
 {
        int used = 0;
 
-       if (lapb->callbacks.data_transmit) {
-               lapb->callbacks.data_transmit(lapb->dev, skb);
+       if (lapb->callbacks->data_transmit) {
+               lapb->callbacks->data_transmit(lapb->dev, skb);
                used = 1;
        }