From da91c0fa55e19ad7724593948e22da5fac3654c9 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Sun, 16 Sep 2007 16:20:21 -0700 Subject: [PATCH] --- yaml --- r: 64998 b: refs/heads/master c: 9355ec23397af32799038d0e8edbfa5b6f425c27 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/pppoe.c | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index be31d5cd9329..76309b017817 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: db7bf6d97c6956b7eb0f22131cb5c37bd41f33c0 +refs/heads/master: 9355ec23397af32799038d0e8edbfa5b6f425c27 diff --git a/trunk/drivers/net/pppoe.c b/trunk/drivers/net/pppoe.c index 8818253102f2..bac36546e0bf 100644 --- a/trunk/drivers/net/pppoe.c +++ b/trunk/drivers/net/pppoe.c @@ -848,19 +848,12 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) { struct pppox_sock *po = pppox_sk(sk); struct net_device *dev = po->pppoe_dev; - struct pppoe_hdr hdr; struct pppoe_hdr *ph; int data_len = skb->len; if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) goto abort; - hdr.ver = 1; - hdr.type = 1; - hdr.code = 0; - hdr.sid = po->num; - hdr.length = htons(skb->len); - if (!dev) goto abort; @@ -870,12 +863,17 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb) if (skb_cow(skb, sizeof(*ph) + dev->hard_header_len)) goto abort; - ph = (struct pppoe_hdr *) skb_push(skb, sizeof(struct pppoe_hdr)); - memcpy(ph, &hdr, sizeof(struct pppoe_hdr)); - skb->protocol = __constant_htons(ETH_P_PPP_SES); - + __skb_push(skb, sizeof(*ph)); skb_reset_network_header(skb); + ph = pppoe_hdr(skb); + ph->ver = 1; + ph->type = 1; + ph->code = 0; + ph->sid = po->num; + ph->length = htons(data_len); + + skb->protocol = __constant_htons(ETH_P_PPP_SES); skb->dev = dev; dev->hard_header(skb, dev, ETH_P_PPP_SES,