diff --git a/include/net/ax25.h b/include/net/ax25.h index fb95ecb6fe0357de875dd66896b4d48a731927d4..875edbba396d2601fce49e8e1c88f90195b56698 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h @@ -305,7 +305,7 @@ extern ax25_cb *ax25_send_frame(struct sk_buff *, int, ax25_address *, ax25_addr extern void ax25_output(ax25_cb *, int, struct sk_buff *); extern void ax25_kick(ax25_cb *); extern void ax25_transmit_buffer(ax25_cb *, struct sk_buff *, int); -extern void ax25_queue_xmit(struct sk_buff *); +extern void ax25_queue_xmit(struct sk_buff *skb, struct net_device *dev); extern int ax25_check_iframes_acked(ax25_cb *, unsigned short); /* ax25_route.c */ diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index 33b1a376302702fea9de736808a7923b0695e9b1..707097deac3deb4957741204c7944e01521f3c0f 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c @@ -1587,9 +1587,7 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock, *asmptr = AX25_UI; /* Datagram frames go straight out of the door as UI */ - skb->dev = ax25->ax25_dev->dev; - - ax25_queue_xmit(skb); + ax25_queue_xmit(skb, ax25->ax25_dev->dev); err = len; diff --git a/net/ax25/ax25_ip.c b/net/ax25/ax25_ip.c index 04d711344d559e712f5389315e596684933e1fe1..bba0173e2d6500a44954871389fc5e35396dffa2 100644 --- a/net/ax25/ax25_ip.c +++ b/net/ax25/ax25_ip.c @@ -199,9 +199,7 @@ int ax25_rebuild_header(struct sk_buff *skb) skb = ourskb; } - skb->dev = dev; - - ax25_queue_xmit(skb); + ax25_queue_xmit(skb, dev); put: ax25_put_route(route); diff --git a/net/ax25/ax25_out.c b/net/ax25/ax25_out.c index 3475a3ac9343e38e2d051402f34676b956fd65cf..94557b1a1fa2acedd47b30c3e51b9733eb02b53a 100644 --- a/net/ax25/ax25_out.c +++ b/net/ax25/ax25_out.c @@ -340,21 +340,19 @@ void ax25_transmit_buffer(ax25_cb *ax25, struct sk_buff *skb, int type) ax25_addr_build(ptr, &ax25->source_addr, &ax25->dest_addr, ax25->digipeat, type, ax25->modulus); - skb->dev = ax25->ax25_dev->dev; - - ax25_queue_xmit(skb); + ax25_queue_xmit(skb, ax25->ax25_dev->dev); } /* * A small shim to dev_queue_xmit to add the KISS control byte, and do * any packet forwarding in operation. */ -void ax25_queue_xmit(struct sk_buff *skb) +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(skb->dev); + skb->dev = ax25_fwd_dev(dev); ptr = skb_push(skb, 1); *ptr = 0x00; /* KISS */ diff --git a/net/ax25/ax25_subr.c b/net/ax25/ax25_subr.c index 8cf72707af8bbcf7ede4fcf1775887cbe910df6e..99694b57f6f565d36f6787f58c8faa43cced25d2 100644 --- a/net/ax25/ax25_subr.c +++ b/net/ax25/ax25_subr.c @@ -220,9 +220,7 @@ void ax25_return_dm(struct net_device *dev, ax25_address *src, ax25_address *des dptr = skb_push(skb, ax25_addr_size(digi)); dptr += ax25_addr_build(dptr, dest, src, &retdigi, AX25_RESPONSE, AX25_MODULUS); - skb->dev = dev; - - ax25_queue_xmit(skb); + ax25_queue_xmit(skb, dev); } /*