Skip to content

Commit

Permalink
wan: make LAPB callbacks const
Browse files Browse the repository at this point in the history
This is compile tested only.
Suggested by dumpster diving in PAX.

Signed-off-by: Stephen Hemminger <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
stephen hemminger authored and davem330 committed Sep 16, 2011
1 parent 026359b commit d97a077
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 28 deletions.
16 changes: 8 additions & 8 deletions drivers/net/wan/hdlc_x25.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 1 addition & 2 deletions drivers/net/wan/lapbether.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,

};

/*
Expand Down
3 changes: 1 addition & 2 deletions drivers/net/wan/x25_asy.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,

};


Expand Down
3 changes: 2 additions & 1 deletion include/linux/lapb.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion include/net/lapb.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
29 changes: 15 additions & 14 deletions net/lapb/lapb_iface.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ static struct lapb_cb *lapb_create_cb(void)
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;
Expand All @@ -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);

Expand Down Expand Up @@ -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 */
Expand All @@ -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;
}

Expand Down

0 comments on commit d97a077

Please sign in to comment.