Skip to content

Commit

Permalink
[AX25] Introduce ax25_type_trans
Browse files Browse the repository at this point in the history
Replacing the open coded equivalents and making ax25 look more like
a linux network protocol, i.e. more similar to inet.

Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: Ralf Baechle <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Arnaldo Carvalho de Melo authored and davem330 committed Apr 25, 2005
1 parent 3b2d59d commit 56cb515
Show file tree
Hide file tree
Showing 11 changed files with 19 additions and 34 deletions.
4 changes: 1 addition & 3 deletions drivers/net/hamradio/6pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -394,13 +394,11 @@ static void sp_bump(struct sixpack *sp, char cmd)
if ((skb = dev_alloc_skb(count)) == NULL)
goto out_mem;

skb->dev = sp->dev;
ptr = skb_put(skb, count);
*ptr++ = cmd; /* KISS command */

memcpy(ptr, sp->cooked_buf + 1, count);
skb->mac.raw = skb->data;
skb->protocol = htons(ETH_P_AX25);
skb->protocol = ax25_type_trans(skb, sp->dev);
netif_rx(skb);
sp->dev->last_rx = jiffies;
sp->stats.rx_packets++;
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/hamradio/baycom_epp.c
Original file line number Diff line number Diff line change
Expand Up @@ -601,12 +601,10 @@ static void do_rxpacket(struct net_device *dev)
bc->stats.rx_dropped++;
return;
}
skb->dev = dev;
cp = skb_put(skb, pktlen);
*cp++ = 0; /* KISS kludge */
memcpy(cp, bc->hdlcrx.buf, pktlen - 1);
skb->protocol = htons(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->protocol = ax25_type_trans(skb, dev);
netif_rx(skb);
dev->last_rx = jiffies;
bc->stats.rx_packets++;
Expand Down
10 changes: 2 additions & 8 deletions drivers/net/hamradio/bpqether.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,7 @@ static int bpq_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_ty
ptr = skb_push(skb, 1);
*ptr = 0;

skb->dev = dev;
skb->protocol = htons(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->pkt_type = PACKET_HOST;

skb->protocol = ax25_type_trans(skb, dev);
netif_rx(skb);
dev->last_rx = jiffies;
unlock:
Expand Down Expand Up @@ -272,8 +268,6 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)
skb = newskb;
}

skb->protocol = htons(ETH_P_AX25);

ptr = skb_push(skb, 2);

*ptr++ = (size + 5) % 256;
Expand All @@ -287,7 +281,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev)
return -ENODEV;
}

skb->dev = dev;
skb->protocol = ax25_type_trans(skb, dev);
skb->nh.raw = skb->data;
dev->hard_header(skb, dev, ETH_P_BPQ, bpq->dest_addr, NULL, 0);
bpq->stats.tx_packets++;
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/hamradio/dmascc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1306,9 +1306,7 @@ static void rx_bh(void *arg)
data = skb_put(skb, cb + 1);
data[0] = 0;
memcpy(&data[1], priv->rx_buf[i], cb);
skb->dev = priv->dev;
skb->protocol = ntohs(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->protocol = ax25_type_trans(skb, priv->dev);
netif_rx(skb);
priv->dev->last_rx = jiffies;
priv->stats.rx_packets++;
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/hamradio/hdlcdrv.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,12 +174,10 @@ static void hdlc_rx_flag(struct net_device *dev, struct hdlcdrv_state *s)
s->stats.rx_dropped++;
return;
}
skb->dev = dev;
cp = skb_put(skb, pkt_len);
*cp++ = 0; /* KISS kludge */
memcpy(cp, s->hdlcrx.buffer, pkt_len - 1);
skb->protocol = htons(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->protocol = ax25_type_trans(skb, dev);
netif_rx(skb);
dev->last_rx = jiffies;
s->stats.rx_packets++;
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/hamradio/mkiss.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,12 +332,10 @@ static void ax_bump(struct ax_disp *ax)
return;
}

skb->dev = ax->dev;
spin_lock_bh(&ax->buflock);
memcpy(skb_put(skb,count), ax->rbuff, count);
spin_unlock_bh(&ax->buflock);
skb->mac.raw = skb->data;
skb->protocol = htons(ETH_P_AX25);
skb->protocol = ax25_type_trans(skb, ax->dev);
netif_rx(skb);
ax->dev->last_rx = jiffies;
ax->rx_packets++;
Expand Down
5 changes: 1 addition & 4 deletions drivers/net/hamradio/scc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1630,10 +1630,7 @@ static void scc_net_rx(struct scc_channel *scc, struct sk_buff *skb)
scc->dev_stat.rx_packets++;
scc->dev_stat.rx_bytes += skb->len;

skb->dev = scc->dev;
skb->protocol = htons(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->pkt_type = PACKET_HOST;
skb->protocol = ax25_type_trans(skb, scc->dev);

netif_rx(skb);
scc->dev->last_rx = jiffies;
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/hamradio/yam.c
Original file line number Diff line number Diff line change
Expand Up @@ -522,12 +522,10 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp)
++yp->stats.rx_dropped;
} else {
unsigned char *cp;
skb->dev = dev;
cp = skb_put(skb, pkt_len);
*cp++ = 0; /* KISS kludge */
memcpy(cp, yp->rx_buf, pkt_len - 1);
skb->protocol = htons(ETH_P_AX25);
skb->mac.raw = skb->data;
skb->protocol = ax25_type_trans(skb, dev);
netif_rx(skb);
dev->last_rx = jiffies;
++yp->stats.rx_packets;
Expand Down
8 changes: 8 additions & 0 deletions include/net/ax25.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,14 @@ static __inline__ void ax25_cb_put(ax25_cb *ax25)
}
}

static inline unsigned short ax25_type_trans(struct sk_buff *skb, struct net_device *dev)
{
skb->dev = dev;
skb->pkt_type = PACKET_HOST;
skb->mac.raw = skb->data;
return htons(ETH_P_AX25);
}

/* af_ax25.c */
extern struct hlist_head ax25_list;
extern spinlock_t ax25_list_lock;
Expand Down
3 changes: 1 addition & 2 deletions net/ax25/ax25_ds_subr.c
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,7 @@ static void ax25_kiss_cmd(ax25_dev *ax25_dev, unsigned char cmd, unsigned char p
*p++ = cmd;
*p++ = param;

skb->dev = ax25_dev->dev;
skb->protocol = htons(ETH_P_AX25);
skb->protocol = ax25_type_trans(skb, ax25_dev->dev);

dev_queue_xmit(skb);
}
Expand Down
3 changes: 1 addition & 2 deletions net/ax25/ax25_out.c
Original file line number Diff line number Diff line change
Expand Up @@ -351,8 +351,7 @@ void ax25_queue_xmit(struct sk_buff *skb, struct net_device *dev)
{
unsigned char *ptr;

skb->protocol = htons(ETH_P_AX25);
skb->dev = ax25_fwd_dev(dev);
skb->protocol = ax25_type_trans(skb, ax25_fwd_dev(dev));

ptr = skb_push(skb, 1);
*ptr = 0x00; /* KISS */
Expand Down

0 comments on commit 56cb515

Please sign in to comment.