Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH 6/42] decnet: Fix set-but-unused variable.
From: Ben Hutchings @ 2011-04-18  2:12 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20110417.173250.183050174.davem@davemloft.net>

On Sun, 2011-04-17 at 17:32 -0700, David Miller wrote:
> "next" in dn_rebuild_zone() is set but not actually used,
> kill it off.
> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> ---
>  net/decnet/dn_table.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/net/decnet/dn_table.c b/net/decnet/dn_table.c
> index 99d8d3a..d8ea583 100644
> --- a/net/decnet/dn_table.c
> +++ b/net/decnet/dn_table.c
> @@ -124,11 +124,10 @@ static inline void dn_rebuild_zone(struct dn_zone *dz,
>  				   int old_divisor)
>  {
>  	int i;
> -	struct dn_fib_node *f, **fp, *next;
> +	struct dn_fib_node *f, **fp;
>  
>  	for(i = 0; i < old_divisor; i++) {
>  		for(f = old_ht[i]; f; f = f->fn_next) {
> -			next = f->fn_next;
>  			for(fp = dn_chain_p(f->fn_key, dz);
>  				*fp && dn_key_leq((*fp)->fn_key, f->fn_key);
>  				fp = &(*fp)->fn_next)

This function is rebuilding a hash table after the number of buckets is
changed.  After moving each element into a new bucket, it needs to carry
on iterating over the old bucket.  Therefore the 'next' variable is
really needed and the second for-loop should use it: 'f = next', not
'f = f->fn_next'.

Currently this must just leak routes as the table grows, but I suppose
no-one really uses DECnet any more.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare
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: net: Automatic IRQ siloing for network devices
From: Neil Horman @ 2011-04-18  1:08 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: Stephen Hemminger, netdev, davem, Thomas Gleixner
In-Reply-To: <1303065539.5282.938.camel@localhost>

On Sun, Apr 17, 2011 at 07:38:59PM +0100, Ben Hutchings wrote:
> On Sun, 2011-04-17 at 13:20 -0400, Neil Horman wrote:
> > On Sat, Apr 16, 2011 at 09:17:04AM -0700, Stephen Hemminger wrote:
> [...]
> > > My gut feeling is that:
> > >   * kernel should default to a simple static sane irq policy without user
> > >     space.  This is especially true for multi-queue devices where the default
> > >     puts all IRQ's on one cpu.
> > > 
> > Thats not how it currently works, AFAICS.  The default kernel policy is
> > currently that cpu affinity for any newly requested irq is all cpus.  Any
> > restriction beyond that is the purview and doing of userspace (irqbalance or
> > manual affinity setting).
> 
> Right.  Though it may be reasonable for the kernel to use the hint as
> the initial affinity for a newly allocated IRQ (not sure quite how we
> determine that).
> 
So I understand what your saying here, but I'm having a hard time reconciling
the two notions.  Currently as it stands, affinity_hint gets set by a single
function call in the kernel (irq_set_affinity_hint), and is called by drivers
wishing to guide irqbalances behavior (currently only ixgbe does this).  The
behavior a driver is capable of guiding however are either overly simple (ixgbe
just tells irqbalance to place each irq on a separate cpu, which irqbalance
would do anyway) or overly complex (forcing policy into the kernel, which I
tried to do with this patch series, but based on the responses I've gotten here,
that seems non-desireable).

I personally like the idea of using affinity_hint to export various guidelines
to drive irqbalances behavior, but I think I'm in the minority on that.  Given
the responses here, It almost seems to me like we should do away with
affinity_hint alltogether (or perhaps just continue to ignore it), and rather
export data relevent to balancing in various other locations, and just have
irqbalance use that info directly.


> [...]
> > >   * irqbalance should not do the hacks it does to try and guess at network traffic.
> > > 
> > Well, I can certainly agree with that, but I'm not sure what that looks like.
> > 
> > I could envision something like:
> > 
> > 1) Use irqbalance to do a one time placement of interrupts, keeping a simple
> > (possibly sub-optimal) policy, perhaps something like new irqs get assigned to
> > the least loaded cpu within the numa node of the device the irq is originating
> > from.
> > 
> > 2) Add a udev event on the addition of new interrupts, to rerun irqbalance
> 
> Yes, making irqbalance more (or entirely) event-driven seems like a good
> thing.
> 
Yeah, I can do that, it shouldn't be hard.  Do we need to worry about bursty
interfaces (i.e. irqs that have high volume counts for periods of time followed
by periods of low activity).  A periodic irqbalance can reblance behavior like
that wheras a one-shot cannot.  Can we just assume that the one-shot rebalance
would give a 'good enough' placement in that situation?

> > 3) Add some exported information to identify processes that are high users of
> > network traffic, and correlate that usage to a rxq/irq that produces that
> > information (possibly some per-task proc file)
> > 
> > 4) Create/expand an additional user space daemon to monitor the highest users of
> > network traffic on various rxq/irqs (as identified in (3)) and restrict those
> > processes execution to those cpus which are on the same L2 cache as the irq
> > itself.  The cpuset cgroup could be usefull in doing this perhaps.
> 
> I just don't see that you're going to get processes associated with
> specific RX queues unless you make use of flow steering.
> 
> The 128-entry flow hash indirection table is part of Microsoft's
> requirements for RSS so most multiqueue hardware is going to let you do
> limited flow steering that way.
> 
Yes, Agreed.  I had presumed that any feature like this would assume RFS was
available and enabled. If it wasn't, we'd have to re-implement some metric
gathering code along with code to correlate sockets to rx queues and irqs.  That
would be 90% of the RFS code and this patch series :)

> > Actually, as I read back to myself, that acutally sounds kind of good to me.  It
> > keeps all the policy for this in user space, and minimizes what we have to add
> > to the kernel to make it happen (some process information in /proc and another
> > udev event).  I'd like to get some feedback before I start implementing this,
> > but I think this could be done.  What do you think?
> 
> I don't think it's a good idea to override the scheduler dynamically
> like this.
> 
Why not?  Not disagreeing here, but I'm curious as to why you think this is bad.
We already have several interfaces for doing this in user space (cgroups and
taskset come to mind).  Nominally they are used directly by sysadmins, and used
sparingly for specific configurations.  All I'm suggesting is that we create a
daemon to identify processes that would benefit from running closer to the nics
they are getting data from, and restricting them to cpus that fit that benefit.
If a sysadmin doesn't want that behavior, they can stop the daemon, or change
its configuration to avoid including processes they don't want to move/restrict.

Thanks & Regards
Neil
 
> Ben.
> 
> -- 
> Ben Hutchings, Senior Software Engineer, Solarflare
> 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 2/2] via-rhine: Assign random MAC address if necessary
From: David Miller @ 2011-04-18  0:57 UTC (permalink / raw)
  To: joe; +Cc: mr.nuke.me, rl, netdev, linux-kernel
In-Reply-To: <c7efaaf6a943f911162261edd7a2186086cda953.1302998994.git.joe@perches.com>

From: Joe Perches <joe@perches.com>
Date: Sat, 16 Apr 2011 17:15:26 -0700

> Roger Luethi has had several reports of Rhine NICs providing
> an invalid MAC address.  If so, assign a random MAC address so
> the hardware can still be used.
> 
> Tested as a standalone interface, as carrier for ppp, and as a
> bonding slave.
> 
> Original-patch-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
> Signed-off-by: Joe Perches <joe@perches.com>

Applied.

^ permalink raw reply

* Re: [PATCH 1/2] via_rhine: Use netdev_<level> and pr_<level>
From: David Miller @ 2011-04-18  0:56 UTC (permalink / raw)
  To: joe; +Cc: mr.nuke.me, rl, netdev, linux-kernel
In-Reply-To: <15b0ca3fc5ba6a16b207fb32b0c2e3c809f376d1.1302998994.git.joe@perches.com>

From: Joe Perches <joe@perches.com>
Date: Sat, 16 Apr 2011 17:15:25 -0700

> Use the more current logging styles.
> 
> Add #define DEBUG to make netdev_dbg always active.
> 
> Signed-off-by: Joe Perches <joe@perches.com>

Applied.

^ permalink raw reply

* Re: [PATCH net-next] bridge: fix accidental creation of sysfs directory
From: David Miller @ 2011-04-18  0:53 UTC (permalink / raw)
  To: shemminger; +Cc: netdev
In-Reply-To: <20110416090915.2594a78e@nehalam>

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Sat, 16 Apr 2011 09:09:15 -0700

> Commit bb900b27a2f49b37bc38c08e656ea13048fee13b introduced a bug in net-next
> because of a typo in notifier. Every device would have the sysfs
> bridge directory (and files). 
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied, thanks Stephen.

^ permalink raw reply

* Re: [PATCH v3] net: cxgb4{,vf}: convert to hw_features
From: David Miller @ 2011-04-18  0:51 UTC (permalink / raw)
  To: dm; +Cc: mirq-linux, netdev, leedom
In-Reply-To: <4DAA3A76.3010508@chelsio.com>

From: Dimitris Michailidis <dm@chelsio.com>
Date: Sat, 16 Apr 2011 17:55:18 -0700

> Michał Mirosław wrote:
>> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
> 
> Looks good for both drivers.
> 
> Acked-by: Dimitris Michailidis <dm@chelsio.com>

Applied, thanks.

^ permalink raw reply

* Re: [PATCH net-2.6] bnx2x: Fix port identification problem
From: David Miller @ 2011-04-18  0:50 UTC (permalink / raw)
  To: yanivr; +Cc: netdev, eilong
In-Reply-To: <1303022132.18593.16.camel@lb-tlvb-dmitry>

From: "Yaniv Rosner" <yanivr@broadcom.com>
Date: Sun, 17 Apr 2011 09:35:32 +0300

> This patch fixes port identification on optic devices when there's no link on the port.
> 
> Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
> Signed-off-by: Eilon Greenstein <eilong@broadcom.com>

Applied to net-2.6, thanks.

^ permalink raw reply

* Re: [PATCH 1/1] drivers/net/usb/usbnet.c: Use FIELD_SIZEOF macro in usbnet_init() function.
From: David Miller @ 2011-04-18  0:49 UTC (permalink / raw)
  To: tfransosi; +Cc: linux-kernel, dbrownell, gregkh, netdev, linux-usb
In-Reply-To: <3f3e63ecef46abc5d23053c051b3fef52104cbe7.1303080236.git.tfransosi@gmail.com>

From: Thiago Farina <tfransosi@gmail.com>
Date: Sun, 17 Apr 2011 19:46:04 -0300

> Signed-off-by: Thiago Farina <tfransosi@gmail.com>

Applied, thanks.

^ permalink raw reply

* Re: [PATCH] r8169: add Realtek as maintainer.
From: David Miller @ 2011-04-18  0:46 UTC (permalink / raw)
  To: romieu; +Cc: netdev, hayeswang, nic_swsd
In-Reply-To: <20110417141512.GA18236@electric-eye.fr.zoreil.com>

From: Francois Romieu <romieu@fr.zoreil.com>
Date: Sun, 17 Apr 2011 16:15:12 +0200

> Per Hayes's request.
> 
> Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>

Applied to net-2.6, thanks.

^ permalink raw reply

* Re: [PATCH] r8169: Be verbose when unable to load fw patch
From: David Miller @ 2011-04-18  0:45 UTC (permalink / raw)
  To: romieu; +Cc: bp, linux-kernel, borislav.petkov, netdev
In-Reply-To: <20110417135936.GA18165@electric-eye.fr.zoreil.com>

From: François Romieu <romieu@metropolis.fr.zoreil.com>
Date: Sun, 17 Apr 2011 15:59:36 +0200

> On Sat, Apr 16, 2011 at 01:03:48PM +0200, François Romieu wrote:
>> [...]
>> > Ok.  So will you submit this yourself later or should I just
>> > apply this myself directly to net-2.6?
>> 
>> Please apply it directly.
> 
> Please don't.

Ok.

^ permalink raw reply

* Re: [PATCH] net: greth: convert to hw_features
From: David Miller @ 2011-04-18  0:44 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, kristoffer
In-Reply-To: <20110417101547.D59E313A6F@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Note: Driver modifies its struct net_device_ops. This will break if used for
> multiple devices that are not all the same (if that HW config is possible).
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

I guess for how this chip is used, this is OK for now.

Applied.

^ permalink raw reply

* Re: [PATCH] net: ibm_newemac: convert to hw_features
From: David Miller @ 2011-04-18  0:44 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev
In-Reply-To: <20110417101547.C207E13A6C@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Side effect: allow toggling of TX offloads.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: typhoon: convert to hw_features
From: David Miller @ 2011-04-18  0:44 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, dave
In-Reply-To: <20110417101547.7E01A13A6B@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: niu: convert to hw_features
From: David Miller @ 2011-04-18  0:44 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev
In-Reply-To: <20110417101547.A22AF13A6D@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Side effect: allow toggling of TX offloads.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: chelsio: convert to hw_features
From: David Miller @ 2011-04-18  0:42 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev
In-Reply-To: <20110417101546.EE73713A67@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:46 +0200 (CEST)

> @@ -1369,6 +1369,7 @@ static void sge_rx(struct sge *sge, struct freelQ *fl, unsigned int len)
>  	const struct cpl_rx_pkt *p;
>  	struct adapter *adapter = sge->adapter;
>  	struct sge_port_stats *st;
> +	struct net_device *dev = adapter->port[p->iff].dev;
>  
>  	skb = get_packet(adapter->pdev, fl, len - sge->rx_pkt_pad);
>  	if (unlikely(!skb)) {

You're now using 'p' before it gets initialzed.

^ permalink raw reply

* Re: [PATCH] net: benet: convert to hw_features - fixup
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, sathya.perla, subbu.seetharaman, ajit.khaparde
In-Reply-To: <20110417101547.5F75513A6A@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Remove be_set_flags() as it's already covered by hw_features.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: ehea: convert to hw_features
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, leitao
In-Reply-To: <20110417101547.11CF913A69@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:47 +0200 (CEST)

> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: mv643xx: convert to hw_features
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, buytenh
In-Reply-To: <20110417101546.AD95813A68@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:46 +0200 (CEST)

> Side effect: don't reenable RXCSUM on every ifdown/ifup.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: cxgb3: convert to hw_features
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, divy
In-Reply-To: <20110417101546.7EDF613A66@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:46 +0200 (CEST)

> This removes some of the remnants of LRO -> GRO conversion.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: tehuti: convert to hw_features
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, baum, andy
In-Reply-To: <20110417101546.8F6DD13A65@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:46 +0200 (CEST)

> As a side effect, make TX offloads changeable.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: [PATCH] net: macvlan: convert to hw_features
From: David Miller @ 2011-04-18  0:41 UTC (permalink / raw)
  To: mirq-linux; +Cc: netdev, kaber
In-Reply-To: <20110417101546.8337A13A64@rere.qmqm.pl>

From: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date: Sun, 17 Apr 2011 12:15:46 +0200 (CEST)

> Not much of a conversion anyway - macvlan has no way to change the offload
> settings independently to its base device.
> 
> Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>

Applied.

^ permalink raw reply

* Re: pull request: batman-adv 2011-04-17
From: David Miller @ 2011-04-18  0:38 UTC (permalink / raw)
  To: sven; +Cc: netdev, b.a.t.m.a.n
In-Reply-To: <1303068618-27928-1-git-send-email-sven@narfation.org>

From: Sven Eckelmann <sven@narfation.org>
Date: Sun, 17 Apr 2011 21:30:10 +0200

> I would like to propose following patches for net-next-2.6/2.6.40. Most of the
> stuff is cleanup work to reduce the locking complexity. The only exception is
> Andrew Lunn's patch, which only adds the initialisation of tx_queue_len.

Pulled, thanks.

^ permalink raw reply

* [PATCH 42/42] be2net: Fix unused-but-set variables.
From: David Miller @ 2011-04-18  0:34 UTC (permalink / raw)
  To: netdev


The variables 'tx_min' and 'tx_max' are set but not used in
be_set_coalesce().

Similarly for 'region' in be_do_flash().

Just kill them off.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/net/benet/be_ethtool.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/net/benet/be_ethtool.c b/drivers/net/benet/be_ethtool.c
index 80226e4..0f645a9 100644
--- a/drivers/net/benet/be_ethtool.c
+++ b/drivers/net/benet/be_ethtool.c
@@ -205,9 +205,9 @@ be_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *coalesce)
 	struct be_rx_obj *rxo;
 	struct be_eq_obj *rx_eq;
 	struct be_eq_obj *tx_eq = &adapter->tx_eq;
-	u32 tx_max, tx_min, tx_cur;
 	u32 rx_max, rx_min, rx_cur;
 	int status = 0, i;
+	u32 tx_cur;
 
 	if (coalesce->use_adaptive_tx_coalesce == 1)
 		return -EINVAL;
@@ -246,8 +246,6 @@ be_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *coalesce)
 		}
 	}
 
-	tx_max = coalesce->tx_coalesce_usecs_high;
-	tx_min = coalesce->tx_coalesce_usecs_low;
 	tx_cur = coalesce->tx_coalesce_usecs;
 
 	if (tx_cur > BE_MAX_EQD)
@@ -664,11 +662,9 @@ be_do_flash(struct net_device *netdev, struct ethtool_flash *efl)
 {
 	struct be_adapter *adapter = netdev_priv(netdev);
 	char file_name[ETHTOOL_FLASH_MAX_FILENAME];
-	u32 region;
 
 	file_name[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0;
 	strcpy(file_name, efl->data);
-	region = efl->region;
 
 	return be_load_fw(adapter, file_name);
 }
-- 
1.7.4.3


^ permalink raw reply related

* [PATCH 41/42] isdn: i4l: isdn_tty: Fix unused-but-set variables.
From: David Miller @ 2011-04-18  0:34 UTC (permalink / raw)
  To: netdev


The variable 'fcr' is set but not used in isdn_tty_change_speed().

Just kill it off.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/isdn/i4l/isdn_tty.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
index 607d846..d850427 100644
--- a/drivers/isdn/i4l/isdn_tty.c
+++ b/drivers/isdn/i4l/isdn_tty.c
@@ -998,7 +998,6 @@ isdn_tty_change_speed(modem_info * info)
 {
 	uint cflag,
 	 cval,
-	 fcr,
 	 quot;
 	int i;
 
@@ -1037,7 +1036,6 @@ isdn_tty_change_speed(modem_info * info)
 		cval |= UART_LCR_PARITY;
 	if (!(cflag & PARODD))
 		cval |= UART_LCR_EPAR;
-	fcr = 0;
 
 	/* CTS flow control flag and modem status interrupts */
 	if (cflag & CRTSCTS) {
-- 
1.7.4.3


^ permalink raw reply related

* [PATCH 40/42] netfilter: ip6table_mangle: Fix set-but-unused variables.
From: David Miller @ 2011-04-18  0:34 UTC (permalink / raw)
  To: netdev


The variable 'flowlabel' is set but unused in ip6t_mangle_out().

The intention here was to compare this key to the header value after
mangling, and trigger a route lookup on mismatch.

Make it so.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 net/ipv6/netfilter/ip6table_mangle.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/ipv6/netfilter/ip6table_mangle.c b/net/ipv6/netfilter/ip6table_mangle.c
index 679a0a3..00d1917 100644
--- a/net/ipv6/netfilter/ip6table_mangle.c
+++ b/net/ipv6/netfilter/ip6table_mangle.c
@@ -64,7 +64,8 @@ ip6t_mangle_out(struct sk_buff *skb, const struct net_device *out)
 	    (memcmp(&ipv6_hdr(skb)->saddr, &saddr, sizeof(saddr)) ||
 	     memcmp(&ipv6_hdr(skb)->daddr, &daddr, sizeof(daddr)) ||
 	     skb->mark != mark ||
-	     ipv6_hdr(skb)->hop_limit != hop_limit))
+	     ipv6_hdr(skb)->hop_limit != hop_limit ||
+	     flowlabel != *((u_int32_t *)ipv6_hdr(skb))))
 		return ip6_route_me_harder(skb) == 0 ? ret : NF_DROP;
 
 	return ret;
-- 
1.7.4.3


^ 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