Patchwork net: fix a wrong assignment in skb_split()

login
register
mail settings
Submitter Amerigo Wang
Date Feb. 20, 2013, 8:51 a.m.
Message ID <1361350290-28581-1-git-send-email-amwang@redhat.com>
Download mbox | patch
Permalink /patch/221998/
State Accepted
Delegated to: David Miller
Headers show

Comments

Amerigo Wang - Feb. 20, 2013, 8:51 a.m.
commit c9af6db4c11ccc6c3e7f1 (net: Fix possible wrong checksum generation)
has a suspicous piece:

	-       skb_shinfo(skb1)->gso_type = skb_shinfo(skb)->gso_type;
	-
	+       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;

skb1 is the new skb, therefore should be on the left side of the assignment.
This patch fixes it.

Cc: Pravin B Shelar <pshelar@nicira.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>

---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Pravin B Shelar - Feb. 20, 2013, 6:42 p.m.
On Wed, Feb 20, 2013 at 12:51 AM, Cong Wang <amwang@redhat.com> wrote:
> commit c9af6db4c11ccc6c3e7f1 (net: Fix possible wrong checksum generation)
> has a suspicous piece:
>
>         -       skb_shinfo(skb1)->gso_type = skb_shinfo(skb)->gso_type;
>         -
>         +       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
>
> skb1 is the new skb, therefore should be on the left side of the assignment.
> This patch fixes it.
>
> Cc: Pravin B Shelar <pshelar@nicira.com>
> Cc: David S. Miller <davem@davemloft.net>
> Signed-off-by: Cong Wang <amwang@redhat.com>
>
Looks good.

Acked-by: Pravin B Shelar <pshelar@nicira.com>

> ---
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index 2a3ca33..33245ef 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -2326,7 +2326,7 @@ void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len)
>  {
>         int pos = skb_headlen(skb);
>
> -       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
> +       skb_shinfo(skb1)->tx_flags = skb_shinfo(skb)->tx_flags & SKBTX_SHARED_FRAG;
>         if (len < pos)  /* Split line is inside header. */
>                 skb_split_inside_header(skb, skb1, len, pos);
>         else            /* Second chunk has no header, nothing to copy. */
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Feb. 20, 2013, 8:13 p.m.
From: Pravin Shelar <pshelar@nicira.com>
Date: Wed, 20 Feb 2013 10:42:18 -0800

> On Wed, Feb 20, 2013 at 12:51 AM, Cong Wang <amwang@redhat.com> wrote:
>> commit c9af6db4c11ccc6c3e7f1 (net: Fix possible wrong checksum generation)
>> has a suspicous piece:
>>
>>         -       skb_shinfo(skb1)->gso_type = skb_shinfo(skb)->gso_type;
>>         -
>>         +       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
>>
>> skb1 is the new skb, therefore should be on the left side of the assignment.
>> This patch fixes it.
>>
>> Cc: Pravin B Shelar <pshelar@nicira.com>
>> Cc: David S. Miller <davem@davemloft.net>
>> Signed-off-by: Cong Wang <amwang@redhat.com>
>>
> Looks good.
> 
> Acked-by: Pravin B Shelar <pshelar@nicira.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rose, Gregory V - Feb. 20, 2013, 9:32 p.m.
On Wed, 20 Feb 2013 10:42:18 -0800
Pravin Shelar <pshelar@nicira.com> wrote:

> On Wed, Feb 20, 2013 at 12:51 AM, Cong Wang <amwang@redhat.com> wrote:
> > commit c9af6db4c11ccc6c3e7f1 (net: Fix possible wrong checksum
> > generation) has a suspicous piece:
> >
> >         -       skb_shinfo(skb1)->gso_type =
> > skb_shinfo(skb)->gso_type; -
> >         +       skb_shinfo(skb)->tx_flags =
> > skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
> >
> > skb1 is the new skb, therefore should be on the left side of the
> > assignment. This patch fixes it.

It looks to me like skb1 is on the right side of the assignment?

- Greg

> >
> > Cc: Pravin B Shelar <pshelar@nicira.com>
> > Cc: David S. Miller <davem@davemloft.net>
> > Signed-off-by: Cong Wang <amwang@redhat.com>
> >
> Looks good.
> 
> Acked-by: Pravin B Shelar <pshelar@nicira.com>
> 
> > ---
> > diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> > index 2a3ca33..33245ef 100644
> > --- a/net/core/skbuff.c
> > +++ b/net/core/skbuff.c
> > @@ -2326,7 +2326,7 @@ void skb_split(struct sk_buff *skb, struct
> > sk_buff *skb1, const u32 len) {
> >         int pos = skb_headlen(skb);
> >
> > -       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags &
> > SKBTX_SHARED_FRAG;
> > +       skb_shinfo(skb1)->tx_flags = skb_shinfo(skb)->tx_flags &
> > SKBTX_SHARED_FRAG; if (len < pos)  /* Split line is inside header.
> > */ skb_split_inside_header(skb, skb1, len, pos);
> >         else            /* Second chunk has no header, nothing to
> > copy. */
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 2a3ca33..33245ef 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -2326,7 +2326,7 @@  void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len)
 {
 	int pos = skb_headlen(skb);
 
-	skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
+	skb_shinfo(skb1)->tx_flags = skb_shinfo(skb)->tx_flags & SKBTX_SHARED_FRAG;
 	if (len < pos)	/* Split line is inside header. */
 		skb_split_inside_header(skb, skb1, len, pos);
 	else		/* Second chunk has no header, nothing to copy. */