Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH] sis190: Rx filter init is needed for MAC address change.
From: David Miller @ 2011-07-28  7:39 UTC (permalink / raw)
  To: romieu; +Cc: netdev, klement2
In-Reply-To: <20110728071123.GA11286@electric-eye.fr.zoreil.com>

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Thu, 28 Jul 2011 09:11:23 +0200

> Addresses https://bugzilla.kernel.org/show_bug.cgi?id=34552
> 
> Signed-off-by: Klement Fish <klement2@azet.sk>
> Acked-by: Francois Romieu <romieu@fr.zoreil.com>

So who wrote this patch?

If it's Klement, you need to add a "From: Klement Fish <klement2@azet.sk>"
to the body of your email so that GIT sets the authorship correctly.

If it's you, why are you only ACK'ing and not signing off on the change?

Either way you need to resubmit this :-)

^ permalink raw reply

* [PATCH 1/2] net: add IFF_SKB_TX_SHARED flag to priv_flags
From: Robert Olsson @ 2011-07-28  8:15 UTC (permalink / raw)
  To: Neil Horman
  Cc: netdev, Robert Olsson, Eric Dumazet, Alexey Dobriyan,
	David S. Miller
In-Reply-To: <1311696338-4739-2-git-send-email-nhorman@tuxdriver.com>


Hello,

Yes seems like good solution to disable this feature individually for "unsupported" drivers
Maybe Dave has some additional comments.

Thanks for fixing this.

Cheers.
						--ro

Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
	       	      


Neil Horman writes:
 > Pktgen attempts to transmit shared skbs to net devices, which can't be used by
 > some drivers as they keep state information in skbs.  This patch adds a flag
 > marking drivers as being able to handle shared skbs in their tx path.  Drivers
 > are defaulted to being unable to do so, but calling ether_setup enables this
 > flag, as 90% of the drivers calling ether_setup touch real hardware and can
 > handle shared skbs.  A subsequent patch will audit drivers to ensure that the
 > flag is set properly
 > 
 > Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
 > Reported-by: Jiri Pirko <jpirko@redhat.com>
 > CC: Robert Olsson <robert.olsson@its.uu.se>
 > CC: Eric Dumazet <eric.dumazet@gmail.com>
 > CC: Alexey Dobriyan <adobriyan@gmail.com>
 > CC: David S. Miller <davem@davemloft.net>
 > ---
 >  include/linux/if.h |    2 ++
 >  net/core/pktgen.c  |    8 +++++---
 >  net/ethernet/eth.c |    1 +
 >  3 files changed, 8 insertions(+), 3 deletions(-)
 > 
 > diff --git a/include/linux/if.h b/include/linux/if.h
 > index 3bc63e6..03489ca 100644
 > --- a/include/linux/if.h
 > +++ b/include/linux/if.h
 > @@ -76,6 +76,8 @@
 >  #define IFF_BRIDGE_PORT	0x4000		/* device used as bridge port */
 >  #define IFF_OVS_DATAPATH	0x8000	/* device used as Open vSwitch
 >  					 * datapath port */
 > +#define IFF_TX_SKB_SHARING	0x10000	/* The interface supports sharing
 > +					 * skbs on transmit */
 >  
 >  #define IF_GET_IFACE	0x0001		/* for querying only */
 >  #define IF_GET_PROTO	0x0002
 > diff --git a/net/core/pktgen.c b/net/core/pktgen.c
 > index f76079c..e35a6fb 100644
 > --- a/net/core/pktgen.c
 > +++ b/net/core/pktgen.c
 > @@ -1070,7 +1070,9 @@ static ssize_t pktgen_if_write(struct file *file,
 >  		len = num_arg(&user_buffer[i], 10, &value);
 >  		if (len < 0)
 >  			return len;
 > -
 > +		if ((value > 0) &&
 > +		    (!(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING)))
 > +			return -ENOTSUPP;
 >  		i += len;
 >  		pkt_dev->clone_skb = value;
 >  
 > @@ -3555,7 +3557,6 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
 >  	pkt_dev->min_pkt_size = ETH_ZLEN;
 >  	pkt_dev->max_pkt_size = ETH_ZLEN;
 >  	pkt_dev->nfrags = 0;
 > -	pkt_dev->clone_skb = pg_clone_skb_d;
 >  	pkt_dev->delay = pg_delay_d;
 >  	pkt_dev->count = pg_count_d;
 >  	pkt_dev->sofar = 0;
 > @@ -3563,7 +3564,6 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
 >  	pkt_dev->udp_src_max = 9;
 >  	pkt_dev->udp_dst_min = 9;
 >  	pkt_dev->udp_dst_max = 9;
 > -
 >  	pkt_dev->vlan_p = 0;
 >  	pkt_dev->vlan_cfi = 0;
 >  	pkt_dev->vlan_id = 0xffff;
 > @@ -3575,6 +3575,8 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
 >  	err = pktgen_setup_dev(pkt_dev, ifname);
 >  	if (err)
 >  		goto out1;
 > +	if (pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING)
 > +		pkt_dev->clone_skb = pg_clone_skb_d;
 >  
 >  	pkt_dev->entry = proc_create_data(ifname, 0600, pg_proc_dir,
 >  					  &pktgen_if_fops, pkt_dev);
 > diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
 > index 5cffb63..4866330 100644
 > --- a/net/ethernet/eth.c
 > +++ b/net/ethernet/eth.c
 > @@ -339,6 +339,7 @@ void ether_setup(struct net_device *dev)
 >  	dev->addr_len		= ETH_ALEN;
 >  	dev->tx_queue_len	= 1000;	/* Ethernet wants good queues */
 >  	dev->flags		= IFF_BROADCAST|IFF_MULTICAST;
 > +	dev->priv_flags		= IFF_TX_SKB_SHARING;
 >  
 >  	memset(dev->broadcast, 0xFF, ETH_ALEN);
 >  
 > -- 
 > 1.7.6
 > 
 > --
 > 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

-- 

^ permalink raw reply

* [PATCH net-next 0/2] vlan:remove duplicate <linux/if_vlan.h>
From: Weiping Pan @ 2011-07-28  8:37 UTC (permalink / raw)
  To: netdev; +Cc: Weiping Pan

As net/8021q/vlan.h already includes <linux/if_vlan.h>,
so other files that includes vlan.h need not to include it.

But before we remove it from net/8021q/vlan_gvrp.c,
we should first add add netdevice.h into stp.h.

[PATCH net-next 1/2]:add netdevice.h into stp.h
[PATCH net-next 2/2]:remove duplicate <linux/if_vlan.h>

Weiping Pan (2):
  stp:add netdevice.h into stp.h
  vlan:remove duplicate <linux/if_vlan.h>

 include/net/stp.h        |    2 ++
 net/8021q/vlan.c         |    1 -
 net/8021q/vlan_core.c    |    1 -
 net/8021q/vlan_dev.c     |    1 -
 net/8021q/vlan_gvrp.c    |    1 -
 net/8021q/vlan_netlink.c |    1 -
 net/8021q/vlanproc.c     |    1 -
 7 files changed, 2 insertions(+), 6 deletions(-)

-- 
1.7.4.4


^ permalink raw reply

* [PATCH net-next 1/2] stp:add netdevice.h into stp.h
From: Weiping Pan @ 2011-07-28  8:37 UTC (permalink / raw)
  To: netdev; +Cc: Weiping Pan
In-Reply-To: <cover.1311841820.git.panweiping3@gmail.com>

We don't meet a compile error becasue <linux/netdevice.h>
is added by ohter header files, luckily.

I find this problem when I want to remove the duplicate <linux/if_vlan.h>.
As net/8021q/vlan.h already includes it, so other files that includes vlan.h
need not to include it.

But when I remove <linux/if_vlan.h> from net/8021q/vlan_gvrp.c,
I met a compile error.
[pwp@localhost net-next]$ make O=../net-next_build/ M=net/8021q
  CC      net/8021q/vlan_core.o
  LD      net/8021q/built-in.o
  CC [M]  net/8021q/vlan.o
  CC [M]  net/8021q/vlan_dev.o
  CC [M]  net/8021q/vlan_netlink.o
  CC [M]  net/8021q/vlan_gvrp.o
In file included from /home/pwp/mysvn/linux/net-next/include/net/garp.h:4:0,
                 from /home/pwp/mysvn/linux/net-next/net/8021q/vlan_gvrp.c:12:
/home/pwp/mysvn/linux/net-next/include/net/stp.h:5:30: error: ‘ETH_ALEN’ undeclared here (not in a function)
/home/pwp/mysvn/linux/net-next/include/net/stp.h:7:18: warning: ‘struct net_device’ declared inside parameter list
/home/pwp/mysvn/linux/net-next/include/net/stp.h:7:18: warning: its scope is only this definition or declaration, which is probably not what you want
/home/pwp/mysvn/linux/net-next/include/net/stp.h:7:18: warning: ‘struct sk_buff’ declared inside parameter list
In file included from /home/pwp/mysvn/linux/net-next/net/8021q/vlan_gvrp.c:12:0:
/home/pwp/mysvn/linux/net-next/include/net/garp.h:36:50: warning: ‘struct sk_buff’ declared inside parameter list
/home/pwp/mysvn/linux/net-next/include/net/garp.h: In function ‘garp_cb’:
/home/pwp/mysvn/linux/net-next/include/net/garp.h:38:2: error: implicit declaration of function ‘BUILD_BUG_ON’
/home/pwp/mysvn/linux/net-next/include/net/garp.h:39:8: error: implicit declaration of function ‘FIELD_SIZEOF’
/home/pwp/mysvn/linux/net-next/include/net/garp.h:39:21: error: expected expression before ‘struct’
/home/pwp/mysvn/linux/net-next/include/net/garp.h:40:34: error: dereferencing pointer to incomplete type
/home/pwp/mysvn/linux/net-next/include/net/garp.h: At top level:
/home/pwp/mysvn/linux/net-next/include/net/garp.h:79:19: error: field ‘node’ has incomplete type
/home/pwp/mysvn/linux/net-next/include/net/garp.h:101:20: error: field ‘join_timer’ has incomplete type
/home/pwp/mysvn/linux/net-next/include/net/garp.h:103:2: error: expected specifier-qualifier-list before ‘spinlock_t’
/home/pwp/mysvn/linux/net-next/include/net/garp.h:112:20: error: field ‘rcu’ has incomplete type
make[2]: *** [net/8021q/vlan_gvrp.o] Error 1
make[1]: *** [_module_net/8021q] Error 2
make: *** [sub-make] Error 2

Signed-off-by: Weiping Pan <panweiping3@gmail.com>
---
 include/net/stp.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/include/net/stp.h b/include/net/stp.h
index ad447f1..13318f3 100644
--- a/include/net/stp.h
+++ b/include/net/stp.h
@@ -1,6 +1,8 @@
 #ifndef _NET_STP_H
 #define _NET_STP_H
 
+#include <linux/netdevice.h>
+
 struct stp_proto {
 	unsigned char	group_address[ETH_ALEN];
 	void		(*rcv)(const struct stp_proto *, struct sk_buff *,
-- 
1.7.4.4


^ permalink raw reply related

* [PATCH net-next 2/2] vlan:remove duplicate <linux/if_vlan.h>
From: Weiping Pan @ 2011-07-28  8:37 UTC (permalink / raw)
  To: netdev; +Cc: Weiping Pan
In-Reply-To: <cover.1311841820.git.panweiping3@gmail.com>

As net/8021q/vlan.h already includes <linux/if_vlan.h>,
so other files that includes vlan.h need not to include it.

Signed-off-by: Weiping Pan <panweiping3@gmail.com>
---
 net/8021q/vlan.c         |    1 -
 net/8021q/vlan_core.c    |    1 -
 net/8021q/vlan_dev.c     |    1 -
 net/8021q/vlan_gvrp.c    |    1 -
 net/8021q/vlan_netlink.c |    1 -
 net/8021q/vlanproc.c     |    1 -
 6 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index 8970ba1..60030b6 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -36,7 +36,6 @@
 #include <net/netns/generic.h>
 #include <asm/uaccess.h>
 
-#include <linux/if_vlan.h>
 #include "vlan.h"
 #include "vlanproc.h"
 
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index 5f27f8e..66190dc 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -1,6 +1,5 @@
 #include <linux/skbuff.h>
 #include <linux/netdevice.h>
-#include <linux/if_vlan.h>
 #include <linux/netpoll.h>
 #include "vlan.h"
 
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 934e221..1793ffb 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -32,7 +32,6 @@
 
 #include "vlan.h"
 #include "vlanproc.h"
-#include <linux/if_vlan.h>
 
 /*
  *	Rebuild the Ethernet MAC header. This is called after an ARP
diff --git a/net/8021q/vlan_gvrp.c b/net/8021q/vlan_gvrp.c
index 061cece..6153c72 100644
--- a/net/8021q/vlan_gvrp.c
+++ b/net/8021q/vlan_gvrp.c
@@ -8,7 +8,6 @@
  *	version 2 as published by the Free Software Foundation.
  */
 #include <linux/types.h>
-#include <linux/if_vlan.h>
 #include <net/garp.h>
 #include "vlan.h"
 
diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c
index be9a5c1..687ee4f 100644
--- a/net/8021q/vlan_netlink.c
+++ b/net/8021q/vlan_netlink.c
@@ -10,7 +10,6 @@
 
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
-#include <linux/if_vlan.h>
 #include <net/net_namespace.h>
 #include <net/netlink.h>
 #include <net/rtnetlink.h>
diff --git a/net/8021q/vlanproc.c b/net/8021q/vlanproc.c
index d34b6da..47c99c8 100644
--- a/net/8021q/vlanproc.c
+++ b/net/8021q/vlanproc.c
@@ -27,7 +27,6 @@
 #include <linux/seq_file.h>
 #include <linux/fs.h>
 #include <linux/netdevice.h>
-#include <linux/if_vlan.h>
 #include <net/net_namespace.h>
 #include <net/netns/generic.h>
 #include "vlanproc.h"
-- 
1.7.4.4


^ permalink raw reply related

* Re: [PATCH net-next 0/2] vlan:remove duplicate <linux/if_vlan.h>
From: David Miller @ 2011-07-28  8:38 UTC (permalink / raw)
  To: panweiping3; +Cc: netdev
In-Reply-To: <cover.1311841820.git.panweiping3@gmail.com>

From: Weiping Pan <panweiping3@gmail.com>
Date: Thu, 28 Jul 2011 16:37:38 +0800

> As net/8021q/vlan.h already includes <linux/if_vlan.h>,
> so other files that includes vlan.h need not to include it.

Please do not do this.

If someone wants to remove this implicit header dependency,
that someone will need to add all of the includes back.

It is better for people to include all the headers they need,
rather than rely upon such indirect inclusions.

I am not applying these patches.


^ permalink raw reply

* Re: [PATCH net-next 0/2] vlan:remove duplicate <linux/if_vlan.h>
From: WeipingPan @ 2011-07-28  8:48 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20110728.013830.1949919665209265585.davem@davemloft.net>

On 07/28/2011 04:38 PM, David Miller wrote:
> From: Weiping Pan<panweiping3@gmail.com>
> Date: Thu, 28 Jul 2011 16:37:38 +0800
>
>> As net/8021q/vlan.h already includes<linux/if_vlan.h>,
>> so other files that includes vlan.h need not to include it.
> Please do not do this.
>
> If someone wants to remove this implicit header dependency,
> that someone will need to add all of the includes back.
>
> It is better for people to include all the headers they need,
> rather than rely upon such indirect inclusions.
Ok, thanks.

Weiping Pan
> I am not applying these patches.
>


^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Kasper Dupont @ 2011-07-28  8:48 UTC (permalink / raw)
  To: Francois Romieu; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728070455.GA11251@electric-eye.fr.zoreil.com>

On 28/07/11 09.04, Francois Romieu wrote:
> Kasper Dupont <kasperd@cpvhh.24.jul.2011.kasperd.net> :
> [...]
> > [    1.045727] pata_sch 0000:00:1f.1: setting latency timer to 64
> > [    1.045946] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
> > [    1.046061] r8169 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
> > [    1.046201] r8169 0000:02:00.0: setting latency timer to 64
> > [    1.046257]   alloc irq_desc for 24 on node -1
> > [    1.046263]   alloc kstat_irqs on node -1
> > [    1.046284] r8169 0000:02:00.0: irq 24 for MSI/MSI-X
> > [    1.048097] eth0: RTL8168c/8111c at 0xf8076000, 00:01:c0:09:a1:25, XID 1c4000c0 IRQ 24
> 
> RTL_GIGA_MAC_VER_22
> 
> [...]
> > [    1.082178] eth1: RTL8168c/8111c at 0xf8096000, 00:01:c0:09:a1:26, XID 1c4000c0 IRQ 25
> 
> sic.
> 
> I miss it (the light fast crash prone motherboard from hell does not count).
> 
> [...]
> > It works on 2.6.32.32 it crashes on 2.6.32.33. I tried to
> > take 2.6.32.43 and apply 1519e57fe81c14bb8fa4855579f19264d1ef63b4,
> > that did not help. 2.6.32.43 crashes with and without that patch.
> 
> 1519e57fe81c14bb8fa4855579f19264d1ef63b4 does not help RTL_GIGA_MAC_VER_22
> proper but you may apply it, then move the 'case RTL_GIGA_MAC_VER_22:'
> statement a few line below and see if it helps (assuming the fifo overflow
> event may be ignored):

I tried to apply both 1519e57fe81c14bb8fa4855579f19264d1ef63b4
and f60ac8e7ab7cbb413a0131d5665b053f9f386526. It still crashes,
the first two times I booted that exact build it printed out a
stackdump just before crashing. I have pictures of the two
stack dumps in case that is any help, but unfortunately they
were too deep to fit on 25 lines.

> 
> diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
> index 7d9c650..33c0ead 100644
> --- a/drivers/net/r8169.c
> +++ b/drivers/net/r8169.c
> @@ -5383,7 +5383,6 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
>  			switch (tp->mac_version) {
>  			/* Work around for rx fifo overflow */
>  			case RTL_GIGA_MAC_VER_11:
> -			case RTL_GIGA_MAC_VER_22:
>  			case RTL_GIGA_MAC_VER_26:
>  				netif_stop_queue(dev);
>  				rtl8169_tx_timeout(dev);
> @@ -5393,6 +5392,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
>  			case RTL_GIGA_MAC_VER_19:
>  			case RTL_GIGA_MAC_VER_20:
>  			case RTL_GIGA_MAC_VER_21:
> +			case RTL_GIGA_MAC_VER_22:
>  			case RTL_GIGA_MAC_VER_23:
>  			case RTL_GIGA_MAC_VER_24:
>  			case RTL_GIGA_MAC_VER_27:

I tried applying this one as well (in addition to the previous
two). It no longer crashes, but now the network stops working
after the first few packets have been transmitted.

What exactly was 649f25c389e9498923b459bbffff41a2fd1d7a64
trying to fix in the first place? Before that patch the
network on this machine was running fast and stable.

-- 
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,11,_+2,_+7,_+6);

^ permalink raw reply

* [GIT] Networking
From: David Miller @ 2011-07-28  9:35 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


1) GRO fragment handling fix from Herbert Xu.

2) Gratuitout ARP only gets emitted for first address on interface,
   we should emit them for all of them.  From Zoltan Kiss.

3) ipv6 /127 prefix handling needs more checking, from YOSHIFUJI Hideaki.

4) Fix VLAN regressions in gianfar and forcedeth, from Sebastian Pöhn
   and Jiri Pirko.

5) Fix various corruption bugs in B43 BCMA support, which can now be
   marked non-BROKEN.  From Pavel Roskin and Rafał Miłecki.

6) Not all device types can handle transmitting a shared SKB, as
   pktgen does in certain modes.  Track this capability with a
   flag and check it in pktgen.  Fix from Neil Horman.

7) tg3 driver 5719 4K RDMA limit workaround from Matt Carlson.

8) If cdc-phonet is the only USB net driver enabled, the build won't
   actually traverse down into drivers/net/usb due to a missing
   Makefile line.  Fix from Chris CLayton.

9) Bonding string parsing fix, plus quiet a less-than-useful noisy
   warning log message.  From Andy Gospodarek.

Please pull, thanks a lot!

The following changes since commit 95b6886526bb510b8370b625a49bc0ab3b8ff10f:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 (2011-07-27 19:26:38 -0700)

are available in the git repository at:

  master.kernel.org:/pub/scm/linux/kernel/git/davem/net.git master

Andy Gospodarek (2):
      bonding: fix string comparison errors
      bonding: reduce noise during init

Chris Clayton (1):
      Fix cdc-phonet build

Dan Carpenter (1):
      NFC: pn533: use after free in pn533_disconnect()

David S. Miller (1):
      Merge branch 'for-davem' of git://git.kernel.org/.../linville/wireless-next-2.6

Eric Dumazet (1):
      net: sock_sendmsg_nosec() is static

Herbert Xu (1):
      gro: Only reset frag0 when skb can be pulled

Jiri Pirko (1):
      forcedeth: fix vlans

Joe Perches (1):
      net: Convert struct net_device uc_promisc to bool

John W. Linville (1):
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next-2.6 into for-davem

Marek Vasut (2):
      ASIX: Simplify condition in rx_fixup()
      ASIX: Use only 11 bits of header for data size

Matt Carlson (9):
      tg3: Reintroduce tg3_tx_ring_info
      tg3: Simplify tx bd assignments
      tg3: Remove short DMA check for 1st fragment
      tg3: Generalize tg3_skb_error_unmap()
      tg3: Add partial fragment unmapping code
      tg3: Consolidate code that calls tg3_tx_set_bd()
      tg3: Add tx BD budgeting code
      tg3: Break larger frags into 4k chunks for 5719
      tg3: Remove 5719 jumbo frames and TSO blocks

Mihai Moldovan (1):
      wireless: fix a typo in ignore_reg_update

Neil Horman (2):
      net: add IFF_SKB_TX_SHARED flag to priv_flags
      net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared

Pavel Roskin (1):
      b43: fix invalid memory access in b43_ssb_remove()

Rafał Miłecki (2):
      b43: bus: fix memory corruption when setting driver's data
      b43: bcma: drop BROKEN

Randy Dunlap (1):
      net: fix eth.c kernel-doc warning

Sebastian Pöhn (1):
      gianfar: fix bug caused by 87c288c6e9aa31720b72e2bc2d665e24e1653c3e

Sven Neumann (1):
      cfg80211: really ignore the regulatory request

Wanlong Gao (1):
      drivers:connector:remove an unused variable *tracer*

YOSHIFUJI Hideaki (1):
      ipv6: Do not leave router anycast address for /127 prefixes.

Zoltan Kiss (1):
      IPv4: Send gratuitous ARP for secondary IP addresses also

stephen hemminger (1):
      acenic: use netdev_alloc_skb_ip_align

 drivers/connector/cn_proc.c                  |    1 -
 drivers/isdn/i4l/isdn_net.c                  |    3 +
 drivers/net/Makefile                         |    1 +
 drivers/net/acenic.c                         |   45 +++--
 drivers/net/acenic.h                         |    6 +-
 drivers/net/bonding/bond_main.c              |    8 +-
 drivers/net/bonding/bond_sysfs.c             |  133 +++++++------
 drivers/net/forcedeth.c                      |   16 ++-
 drivers/net/gianfar.c                        |    6 +-
 drivers/net/ifb.c                            |    2 +-
 drivers/net/macvlan.c                        |    2 +-
 drivers/net/tg3.c                            |  287 ++++++++++++++++----------
 drivers/net/tg3.h                            |    9 +-
 drivers/net/tun.c                            |    1 +
 drivers/net/usb/asix.c                       |    7 +-
 drivers/net/veth.c                           |    2 +
 drivers/net/wan/hdlc_fr.c                    |    5 +-
 drivers/net/wireless/airo.c                  |    1 +
 drivers/net/wireless/b43/Kconfig             |    2 +-
 drivers/net/wireless/b43/bus.c               |    2 +
 drivers/net/wireless/b43/main.c              |    5 +-
 drivers/net/wireless/hostap/hostap_main.c    |    1 +
 drivers/nfc/pn533.c                          |    2 +-
 drivers/staging/ath6kl/os/linux/ar6000_drv.c |    1 +
 include/linux/if.h                           |    2 +
 include/linux/netdevice.h                    |    7 +-
 net/8021q/vlan_dev.c                         |    2 +-
 net/bluetooth/bnep/netdev.c                  |    1 +
 net/core/dev.c                               |    4 +-
 net/core/pktgen.c                            |    8 +-
 net/ethernet/eth.c                           |    2 +
 net/ipv4/devinet.c                           |   16 +-
 net/ipv6/addrconf.c                          |    2 +
 net/l2tp/l2tp_eth.c                          |    2 +-
 net/mac80211/iface.c                         |    1 +
 net/socket.c                                 |    2 +-
 net/wireless/reg.c                           |    7 +-
 37 files changed, 358 insertions(+), 246 deletions(-)

^ permalink raw reply

* 802.1ad on linux
From: Satendra... @ 2011-07-28  9:44 UTC (permalink / raw)
  To: netdev

Hi,

Does linux kernel has support for 802.1ad ? if yes could u plz mention
the version?

Thanks,
Satendra

^ permalink raw reply

* Re: invalid requirement from ethtool?
From: Ben Hutchings @ 2011-07-28 10:22 UTC (permalink / raw)
  To: David Miller; +Cc: eli, netdev
In-Reply-To: <20110728.003758.292509567308751079.davem@davemloft.net>

On Thu, 2011-07-28 at 00:37 -0700, David Miller wrote:
> From: Eli Cohen <eli@dev.mellanox.co.il>
> Date: Thu, 28 Jul 2011 10:23:26 +0300
> 
> > On Wed, Jul 27, 2011 at 10:43:09PM -0700, David Miller wrote:
> >> From: Eli Cohen <eli@dev.mellanox.co.il>
> >> Date: Tue, 26 Jul 2011 15:42:22 +0300
> >> 
> >> > I think both params zero should be allowed and mean coalescing is not
> >> > operational, thus we can remove these comments from ethtool.h
> >> 
> >> The existing precendence has existed for more than 10 years.  You can't
> >> just change it like this.
> >> 
> >> You'll need to find a new way to encode "disabled" coalescing.
> > 
> > I can't see the text explicitly specifies how to "disable" coalescing.
> > If I ignore the specific comment that disallows both params 0, I could
> > interpret the text such that when they're both zero, the feature is
> > disabled.
> 
> The documentation does not determine what the rules are, the cpu
> does not execute the documentation it executes the code, and that's
> what determines the rules.

The ethtool core doesn't check the values in struct ethtool_coalesce, so
the rules are really driver-specific.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply

* Re: [PATCH 1/2] net: add IFF_SKB_TX_SHARED flag to priv_flags
From: Neil Horman @ 2011-07-28 10:50 UTC (permalink / raw)
  To: Robert Olsson
  Cc: netdev, Robert Olsson, Eric Dumazet, Alexey Dobriyan,
	David S. Miller
In-Reply-To: <20017.6845.709352.510592@gargle.gargle.HOWL>

On Thu, Jul 28, 2011 at 10:15:57AM +0200, Robert Olsson wrote:
> 
> Hello,
> 
> Yes seems like good solution to disable this feature individually for "unsupported" drivers
> Maybe Dave has some additional comments.
> 
> Thanks for fixing this.
> 
> Cheers.
> 						--ro
> 
> Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
> 	       	      
> 
Great, thank you all!
Neil


^ permalink raw reply

* (unknown), 
From: Johnson Todd @ 2011-07-28 10:30 UTC (permalink / raw)


Are you desperately in need of any help?Have you been denied of a loan by any loan firm or bank or do you need any kind of loan to pay off your bills?Email us via:niceloansolution@live.com


--------------------------------------------------------------------------------------------- This e-mail message is strictly confidential and intended only for the use of the individual or entity named above and contains information which is or may be confidential, non-public or legally privileged. Any dissemination or distribution of this message other than its intended recipient is strictly prohibited. If you have received this message in error, please notify us by e-mail to the sender immediately and delete the original message and all copies from all locations in your computer system. Nothing in this e-mail message shall constitute an offer, acceptance, or commercial commitment, nor it be taken as a valid and legally binding agreement unless and until the Company and the intended reci
 pient duly execute an agreement.

^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Francois Romieu @ 2011-07-28 10:58 UTC (permalink / raw)
  To: Kasper Dupont; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728084821.GA24125@colin.search.kasperd.net>

Kasper Dupont <kasperd@cpvhh.24.jul.2011.kasperd.net> :
[...]
> I tried to apply both 1519e57fe81c14bb8fa4855579f19264d1ef63b4
> and f60ac8e7ab7cbb413a0131d5665b053f9f386526. It still crashes,
> the first two times I booted that exact build it printed out a
> stackdump just before crashing. I have pictures of the two
> stack dumps in case that is any help, but unfortunately they
> were too deep to fit on 25 lines.

It will probably not help but I can hardly tell without seeing them. :o)
It will be ok if you publish them somewhere.

Does something prevent you to enable a different video mode ?

[...]
> I tried applying this one as well (in addition to the previous
> two). It no longer crashes, but now the network stops working
> after the first few packets have been transmitted.

Thanks for testing.

> What exactly was 649f25c389e9498923b459bbffff41a2fd1d7a64
> trying to fix in the first place?
>
> Before that patch the network on this machine was running fast and stable.

It's frustrating.

Either the hardware did not experience Rx FIFO overflow internally or it
was able to recover from it without driver intervention. Ivan's hardware
seems to behave differently so blindly revert 
649f25c389e9498923b459bbffff41a2fd1d7a64 is not an option.

Can you add the crap below on top of the pre "no longer crashes, no network"
one (it will work on top of plain -git driver as well) ?

diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 7d9c650..f9f2044 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -395,6 +395,7 @@ enum rtl_register_content {
 	/* InterruptStatusBits */
 	SYSErr		= 0x8000,
 	PCSTimeout	= 0x4000,
+	RxFIFOEmpty	= 0x0200,	/* 816x something only ? */
 	SWInt		= 0x0100,
 	TxDescUnavail	= 0x0080,
 	RxFIFOOver	= 0x0040,
@@ -5381,9 +5382,10 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 
 		if (unlikely(status & RxFIFOOver)) {
 			switch (tp->mac_version) {
+				int i;
+
 			/* Work around for rx fifo overflow */
 			case RTL_GIGA_MAC_VER_11:
-			case RTL_GIGA_MAC_VER_22:
 			case RTL_GIGA_MAC_VER_26:
 				netif_stop_queue(dev);
 				rtl8169_tx_timeout(dev);
@@ -5399,6 +5401,21 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
 			case RTL_GIGA_MAC_VER_28:
 			case RTL_GIGA_MAC_VER_31:
 			/* Experimental science. Pktgen proof. */
+			case RTL_GIGA_MAC_VER_22:
+				netif_info(tp, drv, dev, "S: %08x\n", status);
+				for (i = 0; i < 4000000; i++) {
+					if (RTL_R16(IntrStatus) & RxFIFOEmpty) {
+						RTL_W16(IntrStatus, RxFIFOOver);
+						if (net_ratelimit()) {
+							netif_info(tp, drv, dev,
+								   "FEmp\n");
+						}
+						break;
+					}
+					udelay(10);
+				}
+				if ((i >= 4000000) && net_ratelimit())
+					netif_info(tp, drv, dev, "no FEmp\n");
 			case RTL_GIGA_MAC_VER_12:
 			case RTL_GIGA_MAC_VER_25:
 				if (status == RxFIFOOver)

^ permalink raw reply related

* Re: 802.1ad on linux
From: Jens Osterkamp @ 2011-07-28 11:21 UTC (permalink / raw)
  To: Satendra...; +Cc: netdev
In-Reply-To: <CAChS5kM+xmWRrF-Ez7W9+=7Se9o3bXrk4sSs6X-z7gU21SaWrA@mail.gmail.com>

On Thursday 28 July 2011, Satendra... wrote:
> Hi,
> 
> Does linux kernel has support for 802.1ad ? if yes could u plz mention
> the version?

No, but David Lamparter has just recently posted patches which implement this.

http://marc.info/?l=linux-netdev&m=131093613717022&w=2

They work fine for me on top of net-next. I had to add EXPORT_SYMBOL for
vlan_untag and vlan_do_receive to be able to build as a module.
You will need his patch for iproute2 as well to be able to create 802.1ad
VLAN devices.

Jens

-- 

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294

^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Kasper Dupont @ 2011-07-28 11:43 UTC (permalink / raw)
  To: Francois Romieu; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728105831.GA11385@electric-eye.fr.zoreil.com>

On 28/07/11 12.58, Francois Romieu wrote:
> Kasper Dupont <kasperd@cpvhh.24.jul.2011.kasperd.net> :
> [...]
> > I tried to apply both 1519e57fe81c14bb8fa4855579f19264d1ef63b4
> > and f60ac8e7ab7cbb413a0131d5665b053f9f386526. It still crashes,
> > the first two times I booted that exact build it printed out a
> > stackdump just before crashing. I have pictures of the two
> > stack dumps in case that is any help, but unfortunately they
> > were too deep to fit on 25 lines.
> 
> It will probably not help but I can hardly tell without seeing them. :o)
> It will be ok if you publish them somewhere.

http://kasperd.net/~kasperd/r8169/

> 
> Does something prevent you to enable a different video mode ?

I got some problems with getting the video drivers to behave
properly. I managed to get X to use the correct screen
resolution, but I haven't figured out to get the text console
to do so.

Netconsole over the network interface we are trying to debug
probably isn't the way to go. Do you think it would be feasible
to run netconsole over wifi?

> 
> [...]
> > I tried applying this one as well (in addition to the previous
> > two). It no longer crashes, but now the network stops working
> > after the first few packets have been transmitted.
> 
> Thanks for testing.
> 
> > What exactly was 649f25c389e9498923b459bbffff41a2fd1d7a64
> > trying to fix in the first place?
> >
> > Before that patch the network on this machine was running fast and stable.
> 
> It's frustrating.
> 
> Either the hardware did not experience Rx FIFO overflow internally or it
> was able to recover from it without driver intervention. Ivan's hardware
> seems to behave differently so blindly revert 
> 649f25c389e9498923b459bbffff41a2fd1d7a64 is not an option.
> 
> Can you add the crap below on top of the pre "no longer crashes, no network"
> one (it will work on top of plain -git driver as well) ?

I'll give it a try.

-- 
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,11,_+2,_+7,_+6);

^ permalink raw reply

* Re: [RFC net-next PATCH 4/4] ixgbe: Add support for new ethtool settings
From: Michał Mirosław @ 2011-07-28 11:54 UTC (permalink / raw)
  To: Greg Rose; +Cc: netdev, davem, bhutchings, jeffrey.t.kirsher
In-Reply-To: <20110727221804.8435.97686.stgit@gitlad.jf.intel.com>

2011/7/28 Greg Rose <gregory.v.rose@intel.com>:
> Adds ixgbe driver support for new ethtool settings for SR-IOV re-init,
> number of VM queues and anti-spoofing ON/OFF switch.
[...]
> +static int ixgbe_reinit_sriov(struct net_device *netdev, int new_vfs)
> +{
[...]
> +       if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED) {
> +               adapter->flags &= ~(IXGBE_FLAG_RSS_ENABLED |
> +                                   IXGBE_FLAG_DCB_ENABLED);
> +               netdev->features &= ~NETIF_F_RXHASH;
> +       } else {
> +               adapter->flags |= IXGBE_FLAG_RSS_ENABLED;
> +               netdev->features |= NETIF_F_RXHASH;
> +       }

Please use ndo_fix_features/ndo_set_features callbacks for this.

Best Regards,
Michał Mirosław

^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Kasper Dupont @ 2011-07-28 11:59 UTC (permalink / raw)
  To: Francois Romieu; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728114305.GA24549@colin.search.kasperd.net>

On 28/07/11 13.43, Kasper Dupont wrote:
> Netconsole over the network interface we are trying to debug
> probably isn't the way to go. Do you think it would be feasible
> to run netconsole over wifi?

But maybe the two interfaces are independent enough that I
can run netconsole over one while triggering a crash on the
other.

> > 
> > Can you add the crap below on top of the pre "no longer crashes, no network"
> > one (it will work on top of plain -git driver as well) ?
> 
> I'll give it a try.

It doesn't compile. It complains about netif_info and drv
not being declared.

-- 
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,11,_+2,_+7,_+6);

^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Francois Romieu @ 2011-07-28 12:23 UTC (permalink / raw)
  To: Kasper Dupont; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728115936.GC24549@colin.search.kasperd.net>

Kasper Dupont <kasperd@cpvhh.24.jul.2011.kasperd.net> :
[...]
> But maybe the two interfaces are independent enough that I
> can run netconsole over one while triggering a crash on the
> other.

I am not exactly biased in favor of netconsole yet but go for
it if you are confortable with.

[...]
> It doesn't compile. It complains about netif_info and drv
> not being declared.

?

You can replace them with plain printk(KERN_{INFO/ERR} "S: ...).

What are you compiling the patch against ?

-- 
Ueimor

^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Kasper Dupont @ 2011-07-28 12:45 UTC (permalink / raw)
  To: Francois Romieu; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728122328.GA11424@electric-eye.fr.zoreil.com>

On 28/07/11 14.23, Francois Romieu wrote:
> You can replace them with plain printk(KERN_{INFO/ERR} "S: ...).

Then it compiles, will let you know shortly how it works out.

> 
> What are you compiling the patch against ?

2.6.32.43. I picked that version because ultimately I want
it fixed in Ubuntu 10.04, which also uses a 2.6.32 kernel.

-- 
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,11,_+2,_+7,_+6);

^ permalink raw reply

* [PATCH 1/6] net: adjust array index
From: Julia Lawall @ 2011-07-28 12:46 UTC (permalink / raw)
  To: David S. Miller
  Cc: kernel-janitors, Alexey Kuznetsov, Pekka Savola (ipv6),
	James Morris, Hideaki YOSHIFUJI, Patrick McHardy, netdev,
	linux-kernel
In-Reply-To: <1311857165-14780-1-git-send-email-julia@diku.dk>

From: Julia Lawall <julia@diku.dk>

Convert array index from the loop bound to the loop index.

A simplified version of the semantic patch that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression e1,e2,ar;
@@

for(e1 = 0; e1 < e2; e1++) { <...
  ar[
- e2
+ e1
  ]
  ...> }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>

---
Not tested.

 net/ipv4/igmp.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -u -p a/net/ipv4/igmp.c b/net/ipv4/igmp.c
--- a/net/ipv4/igmp.c
+++ b/net/ipv4/igmp.c
@@ -1718,7 +1718,7 @@ static int ip_mc_add_src(struct in_devic
 
 		pmc->sfcount[sfmode]--;
 		for (j=0; j<i; j++)
-			(void) ip_mc_del1_src(pmc, sfmode, &psfsrc[i]);
+			(void) ip_mc_del1_src(pmc, sfmode, &psfsrc[j]);
 	} else if (isexclude != (pmc->sfcount[MCAST_EXCLUDE] != 0)) {
 #ifdef CONFIG_IP_MULTICAST
 		struct ip_sf_list *psf;

^ permalink raw reply

* [PATCH 3/6] drivers/net/niu.c: adjust array index
From: Julia Lawall @ 2011-07-28 12:46 UTC (permalink / raw)
  To: Grant Likely
  Cc: kernel-janitors, David S. Miller, Ben Hutchings,
	Stephen Hemminger, Eric Dumazet, Michał Mirosław,
	netdev, linux-kernel, devicetree-discuss
In-Reply-To: <1311857165-14780-1-git-send-email-julia@diku.dk>

From: Julia Lawall <julia@diku.dk>

Convert array index from the loop bound to the loop index.

A simplified version of the semantic patch that fixes this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression e1,e2,ar;
@@

for(e1 = 0; e1 < e2; e1++) { <...
  ar[
- e2
+ e1
  ]
  ...> }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>

---
Not tested.

 drivers/net/niu.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff -u -p a/drivers/net/niu.c b/drivers/net/niu.c
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -9201,7 +9201,7 @@ static int __devinit niu_ldg_init(struct
 
 	first_chan = 0;
 	for (i = 0; i < port; i++)
-		first_chan += parent->rxchan_per_port[port];
+		first_chan += parent->rxchan_per_port[i];
 	num_chan = parent->rxchan_per_port[port];
 
 	for (i = first_chan; i < (first_chan + num_chan); i++) {
@@ -9217,7 +9217,7 @@ static int __devinit niu_ldg_init(struct
 
 	first_chan = 0;
 	for (i = 0; i < port; i++)
-		first_chan += parent->txchan_per_port[port];
+		first_chan += parent->txchan_per_port[i];
 	num_chan = parent->txchan_per_port[port];
 	for (i = first_chan; i < (first_chan + num_chan); i++) {
 		err = niu_ldg_assign_ldn(np, parent,

^ permalink raw reply

* Re: 802.1ad on linux
From: David Lamparter @ 2011-07-28 12:48 UTC (permalink / raw)
  To: Satendra...; +Cc: Jens Osterkamp, netdev
In-Reply-To: <201107281321.46294.jens@linux.vnet.ibm.com>

On Thu, Jul 28, 2011 at 01:21:46PM +0200, Jens Osterkamp wrote:
> On Thursday 28 July 2011, Satendra... wrote:
> > Hi,
> > 
> > Does linux kernel has support for 802.1ad ? if yes could u plz mention
> > the version?
> 
> No, but David Lamparter has just recently posted patches which implement this.
> 
> http://marc.info/?l=linux-netdev&m=131093613717022&w=2
> 
> They work fine for me on top of net-next. I had to add EXPORT_SYMBOL for
> vlan_untag and vlan_do_receive to be able to build as a module.
> You will need his patch for iproute2 as well to be able to create 802.1ad
> VLAN devices.

I will be rebasing them onto current net-next HEAD this weekend. With
the VLAN cleanup in, some bits changed; I'll also do some reordering to
fix those symbols.


-David


^ permalink raw reply

* Re: r8169 driver crashes in 2.6.32.43
From: Kasper Dupont @ 2011-07-28 12:54 UTC (permalink / raw)
  To: Francois Romieu; +Cc: ivecera, hayeswang, gregkh, netdev
In-Reply-To: <20110728124548.GA24762@colin.search.kasperd.net>

On 28/07/11 14.45, Kasper Dupont wrote:
> On 28/07/11 14.23, Francois Romieu wrote:
> > You can replace them with plain printk(KERN_{INFO/ERR} "S: ...).
> 
> Then it compiles, will let you know shortly how it works out.

The last 24 lines before network stopped working:
S: 00000044
FEmp
S: 000000c0
FEmp
S: 00000044
FEmp
S: 00000040
FEmp
S: 00000044
FEmp
S: 00000041
FEmp
S: 000000c0
FEmp
S: 00000040
FEmp
S: 000000c0
FEmp
S: 000000c0
FEmp
S: 00000040
S: 000000c4
S: 00000044
S: 00000040

-- 
Kasper Dupont -- Rigtige mænd skriver deres egne backupprogrammer
#define _(_)"d.%.4s%."_"2s" /* This is my email address */
char*_="@2kaspner"_()"%03"_("4s%.")"t\n";printf(_+11,_+6,_,11,_+2,_+7,_+6);

^ permalink raw reply

* [PATCH] ipv6: use RCU in inet6_csk_xmit()
From: Eric Dumazet @ 2011-07-28 13:43 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

Use RCU to avoid changing dst_entry refcount in fast path.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
 net/ipv6/inet6_connection_sock.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/ipv6/inet6_connection_sock.c b/net/ipv6/inet6_connection_sock.c
index 8a58e8c..2916200 100644
--- a/net/ipv6/inet6_connection_sock.c
+++ b/net/ipv6/inet6_connection_sock.c
@@ -211,6 +211,7 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)
 	struct flowi6 fl6;
 	struct dst_entry *dst;
 	struct in6_addr *final_p, final;
+	int res;
 
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_proto = sk->sk_protocol;
@@ -241,12 +242,14 @@ int inet6_csk_xmit(struct sk_buff *skb, struct flowi *fl_unused)
 		__inet6_csk_dst_store(sk, dst, NULL, NULL);
 	}
 
-	skb_dst_set(skb, dst_clone(dst));
+	rcu_read_lock();
+	skb_dst_set_noref(skb, dst);
 
 	/* Restore final destination back after routing done */
 	ipv6_addr_copy(&fl6.daddr, &np->daddr);
 
-	return ip6_xmit(sk, skb, &fl6, np->opt);
+	res = ip6_xmit(sk, skb, &fl6, np->opt);
+	rcu_read_unlock();
+	return res;
 }
-
 EXPORT_SYMBOL_GPL(inet6_csk_xmit);



^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox