Netdev List
 help / color / mirror / Atom feed
* [PATCH iproute2] ifstat/nstat: fix help output alignment
From: Mike Frysinger @ 2016-11-16  3:34 UTC (permalink / raw)
  To: stephen.hemminger, netdev

Some lines use tabs while others use spaces.  Use spaces everywhere.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 misc/ifstat.c | 24 ++++++++++++------------
 misc/nstat.c  | 22 +++++++++++-----------
 2 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/misc/ifstat.c b/misc/ifstat.c
index d55197375e3c..92d67b0c5fd1 100644
--- a/misc/ifstat.c
+++ b/misc/ifstat.c
@@ -662,18 +662,18 @@ static void usage(void)
 {
 	fprintf(stderr,
 "Usage: ifstat [OPTION] [ PATTERN [ PATTERN ] ]\n"
-"   -h, --help		this message\n"
-"   -a, --ignore	ignore history\n"
-"   -d, --scan=SECS	sample every statistics every SECS\n"
-"   -e, --errors	show errors\n"
-"   -j, --json          format output in JSON\n"
-"   -n, --nooutput	do history only\n"
-"   -p, --pretty        pretty print\n"
-"   -r, --reset		reset history\n"
-"   -s, --noupdate	don\'t update history\n"
-"   -t, --interval=SECS	report average over the last SECS\n"
-"   -V, --version	output version information\n"
-"   -z, --zeros		show entries with zero activity\n");
+"   -h, --help           this message\n"
+"   -a, --ignore         ignore history\n"
+"   -d, --scan=SECS      sample every statistics every SECS\n"
+"   -e, --errors         show errors\n"
+"   -j, --json           format output in JSON\n"
+"   -n, --nooutput       do history only\n"
+"   -p, --pretty         pretty print\n"
+"   -r, --reset          reset history\n"
+"   -s, --noupdate       don't update history\n"
+"   -t, --interval=SECS  report average over the last SECS\n"
+"   -V, --version        output version information\n"
+"   -z, --zeros          show entries with zero activity\n");
 
 	exit(-1);
 }
diff --git a/misc/nstat.c b/misc/nstat.c
index 1cb6c7eea27a..1212b1f2c812 100644
--- a/misc/nstat.c
+++ b/misc/nstat.c
@@ -526,17 +526,17 @@ static void usage(void)
 {
 	fprintf(stderr,
 "Usage: nstat [OPTION] [ PATTERN [ PATTERN ] ]\n"
-"   -h, --help		this message\n"
-"   -a, --ignore	ignore history\n"
-"   -d, --scan=SECS	sample every statistics every SECS\n"
-"   -j, --json          format output in JSON\n"
-"   -n, --nooutput	do history only\n"
-"   -p, --pretty        pretty print\n"
-"   -r, --reset		reset history\n"
-"   -s, --noupdate	don\'t update history\n"
-"   -t, --interval=SECS	report average over the last SECS\n"
-"   -V, --version	output version information\n"
-"   -z, --zeros		show entries with zero activity\n");
+"   -h, --help           this message\n"
+"   -a, --ignore         ignore history\n"
+"   -d, --scan=SECS      sample every statistics every SECS\n"
+"   -j, --json           format output in JSON\n"
+"   -n, --nooutput       do history only\n"
+"   -p, --pretty         pretty print\n"
+"   -r, --reset          reset history\n"
+"   -s, --noupdate       don't update history\n"
+"   -t, --interval=SECS  report average over the last SECS\n"
+"   -V, --version        output version information\n"
+"   -z, --zeros          show entries with zero activity\n");
 	exit(-1);
 }
 
-- 
2.10.2

^ permalink raw reply related

* Re: [PATCH] net: ioctl SIOCSIFADDR minor cleanup
From: David Miller @ 2016-11-16  3:31 UTC (permalink / raw)
  To: Linyu.Yuan; +Cc: cugyly, netdev
In-Reply-To: <8729016553E3654398EA69218DA29EEF0E42F73A@cnshjmbx02>

From: YUAN Linyu <Linyu.Yuan@alcatel-sbell.com.cn>
Date: Wed, 16 Nov 2016 03:13:31 +0000

> So assign label to request name will do same thing as original code.

Nope.  dev->name does not have the colon, it was trimmed from the
string for the device lookup.  So the found device's dev->name does
not have the colon character, even if it was in ifr.ifr_name

This was my entire point.

You are changing the behvaior of the code in an invalid way.

^ permalink raw reply

* Re: [PATCH] net: ioctl SIOCSIFADDR minor cleanup
From: David Miller @ 2016-11-16  3:30 UTC (permalink / raw)
  To: Linyu.Yuan; +Cc: cugyly, netdev
In-Reply-To: <8729016553E3654398EA69218DA29EEF0E42F73A@cnshjmbx02>

From: YUAN Linyu <Linyu.Yuan@alcatel-sbell.com.cn>
Date: Wed, 16 Nov 2016 03:13:31 +0000

> orginal code means when reqest name have colon, then label name will have colon.

And that is intentional.

^ permalink raw reply

* Re: [PATCH net-next] tcp: allow to enable the repair mode for non-listening sockets
From: David Miller @ 2016-11-16  3:29 UTC (permalink / raw)
  To: avagin; +Cc: linux-kernel, netdev, kuznet, jmorris, yoshfuji, kaber, criu
In-Reply-To: <1479176114-12658-1-git-send-email-avagin@openvz.org>

From: Andrei Vagin <avagin@openvz.org>
Date: Mon, 14 Nov 2016 18:15:14 -0800

> The repair mode is used to get and restore sequence numbers and
> data from queues. It used to checkpoint/restore connections.
> 
> Currently the repair mode can be enabled for sockets in the established
> and closed states, but for other states we have to dump the same socket
> properties, so lets allow to enable repair mode for these sockets.
> 
> The repair mode reveals nothing more for sockets in other states.
> 
> Signed-off-by: Andrei Vagin <avagin@openvz.org>

Applied.

^ permalink raw reply

* Re: [PATCH net] gro_cells: mark napi struct as not busy poll candidates
From: David Miller @ 2016-11-16  3:29 UTC (permalink / raw)
  To: eric.dumazet
  Cc: ebiederm, paulmck, xiyou.wangcong, rolf.neugebauer, netdev,
	justin.cormack, ian.campbell, edumazet
In-Reply-To: <1479169722.8455.108.camel@edumazet-glaptop3.roam.corp.google.com>

From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Mon, 14 Nov 2016 16:28:42 -0800

> From: Eric Dumazet <edumazet@google.com>
> 
> Rolf Neugebauer reported very long delays at netns dismantle.
> 
> Eric W. Biederman was kind enough to look at this problem
> and noticed synchronize_net() occurring from netif_napi_del() that was
> added in linux-4.5
> 
> Busy polling makes no sense for tunnels NAPI.
> If busy poll is used for sessions over tunnels, the poller will need to
> poll the physical device queue anyway.
> 
> netif_tx_napi_add() could be used here, but function name is misleading,
> and renaming it is not stable material, so set NAPI_STATE_NO_BUSY_POLL
> bit directly.
> 
> This will avoid inserting gro_cells napi structures in napi_hash[]
> and avoid the problematic synchronize_net() (per possible cpu) that
> Rolf reported.
> 
> Fixes: 93d05d4a320c ("net: provide generic busy polling to all NAPI drivers")
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Reported-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
> Reported-by: Eric W. Biederman <ebiederm@xmission.com>

Applied, thanks.

^ permalink raw reply

* [PATCH] net: dsa: mv88e6xxx: Respect SPEED_UNFORCED, don't set force bit
From: Andrew Lunn @ 2016-11-16  3:26 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn

The SPEED_UNFORCED indicates the MAC & PHY should perform
auto-negotiation to determine a speed which works. If this is called
for, don't set the force bit. If it is set, the MAC actually does
10Gbps, why the internal PHYs don't support.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/port.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c
index e4978f6367aa..af4772d86086 100644
--- a/drivers/net/dsa/mv88e6xxx/port.c
+++ b/drivers/net/dsa/mv88e6xxx/port.c
@@ -213,7 +213,7 @@ static int mv88e6xxx_port_set_speed(struct mv88e6xxx_chip *chip, int port,
 		reg &= ~PORT_PCS_CTRL_ALTSPEED;
 	if (force_bit) {
 		reg &= ~PORT_PCS_CTRL_FORCE_SPEED;
-		if (speed)
+		if (speed != SPEED_UNFORCED)
 			ctrl |= PORT_PCS_CTRL_FORCE_SPEED;
 	}
 	reg |= ctrl;
-- 
2.10.2

^ permalink raw reply related

* Re: [PATCH net-next V6 0/9] liquidio CN23XX VF support
From: David Miller @ 2016-11-16  3:25 UTC (permalink / raw)
  To: rvatsavayi; +Cc: netdev
In-Reply-To: <1479167687-9904-1-git-send-email-rvatsavayi@caviumnetworks.com>

From: Raghu Vatsavayi <rvatsavayi@caviumnetworks.com>
Date: Mon, 14 Nov 2016 15:54:38 -0800

> Following is the V6 patch series for adding VF support on
> CN23XX devices. This version addressed:
> 1) Your concern for ordering of local variable declarations
>    from longest to shortest line.
> 2) Removed module parameters max_vfs, num_queues_per_{p,v}f.
> 3) Minor changes for fixing new checkpatch script related 
>    errors on pre-existing driver.
> 4) Fixed compilation issues when CONFIG_PCI_IOV/CONFIG_PCI_ATS
>    options are disabled.
> 5) Modified qualifiers for printing mac addresses with pM format.
> 
> I will post remaining VF patches soon after this patchseries is
> applied. Please apply patches in the following order as some of
> the patches depend on earlier patches.

Series applied, thanks.

^ permalink raw reply

* Re: [PATCH net-next v3 2/3] net: fsl: Allow most drivers to be built with COMPILE_TEST
From: kbuild test robot @ 2016-11-16  3:23 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: kbuild-all, netdev, davem, mw, arnd, gregory.clement, Shaohui.Xie,
	Florian Fainelli
In-Reply-To: <20161116004037.20941-4-f.fainelli@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3891 bytes --]

Hi Florian,

[auto build test WARNING on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Florian-Fainelli/net-gianfar_ptp-Rename-FS-bit-to-FIPERST/20161116-095805
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sh 

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/freescale/fsl_pq_mdio.c: In function 'fsl_pq_mdio_remove':
>> drivers/net/ethernet/freescale/fsl_pq_mdio.c:498:27: warning: unused variable 'priv' [-Wunused-variable]
     struct fsl_pq_mdio_priv *priv = bus->priv;
                              ^~~~

vim +/priv +498 drivers/net/ethernet/freescale/fsl_pq_mdio.c

1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  482  	return 0;
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  483  
dd3b8a32 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  484  error:
dd3b8a32 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  485  	if (priv->map)
b3319b10 drivers/net/fsl_pq_mdio.c                    Anton Vorontsov 2009-12-30  486  		iounmap(priv->map);
dd3b8a32 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  487  
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  488  	kfree(new_bus);
dd3b8a32 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  489  
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  490  	return err;
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  491  }
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  492  
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  493  
5078ac79 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  494  static int fsl_pq_mdio_remove(struct platform_device *pdev)
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  495  {
5078ac79 drivers/net/ethernet/freescale/fsl_pq_mdio.c Timur Tabi      2012-08-29  496  	struct device *device = &pdev->dev;
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  497  	struct mii_bus *bus = dev_get_drvdata(device);
b3319b10 drivers/net/fsl_pq_mdio.c                    Anton Vorontsov 2009-12-30 @498  	struct fsl_pq_mdio_priv *priv = bus->priv;
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  499  
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  500  	mdiobus_unregister(bus);
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  501  
b3319b10 drivers/net/fsl_pq_mdio.c                    Anton Vorontsov 2009-12-30  502  	iounmap(priv->map);
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  503  	mdiobus_free(bus);
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  504  
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  505  	return 0;
1577ecef drivers/net/fsl_pq_mdio.c                    Andy Fleming    2009-02-04  506  }

:::::: The code at line 498 was first introduced by commit
:::::: b3319b10523d8dac82b134a05de2a403119abebd fsl_pq_mdio: Fix iomem unmapping for non-eTSEC2.0 controllers

:::::: TO: Anton Vorontsov <avorontsov@ru.mvista.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 42369 bytes --]

^ permalink raw reply

* Re: [PATCH net] udp: restore UDPlite many-cast delivery
From: David Miller @ 2016-11-16  3:14 UTC (permalink / raw)
  To: pablo; +Cc: netdev, edumazet, drheld
In-Reply-To: <1479163230-8734-1-git-send-email-pablo@netfilter.org>

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Mon, 14 Nov 2016 23:40:30 +0100

> Honor udptable parameter that is passed to __udp*_lib_mcast_deliver(),
> otherwise udplite broadcast/multicast use the wrong table and it breaks.
> 
> Fixes: 2dc41cff7545 ("udp: Use hash2 for long hash1 chains in __udp*_lib_mcast_deliver.")
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>

Applied and queued up for -stable, thanks Pablo.

^ permalink raw reply

* RE: [PATCH] net: ioctl SIOCSIFADDR minor cleanup
From: YUAN Linyu @ 2016-11-16  3:13 UTC (permalink / raw)
  To: David Miller, cugyly@163.com; +Cc: netdev@vger.kernel.org
In-Reply-To: <20161115.220108.1225196299725031215.davem@davemloft.net>

hi david,

> -----Original Message-----
> From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
> On Behalf Of David Miller
> Sent: Wednesday, November 16, 2016 11:01 AM
> To: cugyly@163.com
> Cc: netdev@vger.kernel.org; YUAN Linyu
> Subject: Re: [PATCH] net: ioctl SIOCSIFADDR minor cleanup
> 
> From: yuan linyu <cugyly@163.com>
> Date: Tue, 15 Nov 2016 20:44:59 +0800
> 
> > @@ -1063,10 +1063,7 @@ int devinet_ioctl(struct net *net, unsigned int
> cmd, void __user *arg)
> >  			if (!ifa)
> >  				break;
> >  			INIT_HLIST_NODE(&ifa->hash);
> > -			if (colon)
> > -				memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ);
> > -			else
> > -				memcpy(ifa->ifa_label, dev->name, IFNAMSIZ);
> > +			memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ);
> 
> This is an incorrect and untested change.
> 
> If there is a colon character in ifr.ifr_name, earlier in this function
> we will:
> 
> 1) First replace that colon with a NULL character.
> 
> 2) Perform __dev_get_by_name() on the result.
> 
> 3) Put the ":" colon character back into ifr.ifr_name
> 
> So the two strings ifr.ifr_name and dev->name can in fact be different
> here.  Therefore the code has to be left as it is.
Here we assign value to ifa->ifa_label. 
orginal code means when reqest name have colon, then label name will have colon.
If request name have no colon, label name will same as dev-name, it's also have no colon.
So assign label to request name will do same thing as original code.
thanks

^ permalink raw reply

* Re: [PATCH 0/2] amd-xgbe: AMD XGBE driver updates 2016-11-14
From: David Miller @ 2016-11-16  3:13 UTC (permalink / raw)
  To: thomas.lendacky; +Cc: netdev, julia.lawall, christophe.jaillet
In-Reply-To: <20161114222827.25160.24791.stgit@tlendack-t1.amdoffice.net>

From: Tom Lendacky <thomas.lendacky@amd.com>
Date: Mon, 14 Nov 2016 16:28:27 -0600

> This patch series addresses some minor issues found in the recently
> accepted patch series for the AMD XGBE driver.
> 
> The following fixes are included in this driver update series:
> 
> - Fix how a mask is applied to a Clause 37 register value
> - Fix some coccinelle identified warnings
> 
> This patch series is based on net-next.

Series applied.

^ permalink raw reply

* Re: [PATCH] net/phy/vitesse: Configure RGMII skew on VSC8601, if needed
From: David Miller @ 2016-11-16  3:12 UTC (permalink / raw)
  To: alex.g; +Cc: f.fainelli, gokhan, netdev, linux-kernel
In-Reply-To: <c9c60bc8-d93f-a60c-7f25-4cd508507e65@adaptrum.com>

From: Alex <alex.g@adaptrum.com>
Date: Mon, 14 Nov 2016 13:54:57 -0800

> 
> 
> On 11/14/2016 01:25 PM, Florian Fainelli wrote:
>> On 11/14/2016 01:18 PM, David Miller wrote:
>>> From: Alexandru Gagniuc <alex.g@adaptrum.com>
>>> Date: Sat, 12 Nov 2016 15:32:13 -0800
>>>
>>>> +	if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
>>>> +		ret = vsc8601_add_skew(phydev);
>>>
>>> I think you should use phy_interface_is_rgmii() here.
>>>
>>
>> This would include all RGMII modes, here I think the intent is to
>> check
>> for PHY_INTERFACE_MODE_RGMII_ID and PHY_INTERFACE_MODE_RGMII_TXID (or
>> RXID),
> 
> That is correct.
> 
>>  Alexandru, what direction does the skew settings apply to?
> 
> It applies a skew in both TX and RX directions.

Please repost your patch, making the intent clear either in the
commit message or a code comment.

Thanks.

^ permalink raw reply

* Re: [PATCH 0/3 v5] Fixes for running a big-endian kernel on Cubieboard2
From: David Miller @ 2016-11-16  3:06 UTC (permalink / raw)
  To: michael.weiser; +Cc: netdev
In-Reply-To: <20161114175807.4747-1-michael.weiser@gmx.de>

From: Michael Weiser <michael.weiser@gmx.de>
Date: Mon, 14 Nov 2016 18:58:04 +0100

> the following patches are what remains to be fixed in order to allow running a
> big-endian kernel on the Cubieboard2.

Series applied to net-next, thanks.

^ permalink raw reply

* Re: [PATCH next] dctcp: update cwnd on congestion event
From: David Miller @ 2016-11-16  3:02 UTC (permalink / raw)
  To: fw; +Cc: netdev, brakmo, agshew, glenn.judd, daniel
In-Reply-To: <1479138121-32294-1-git-send-email-fw@strlen.de>

From: Florian Westphal <fw@strlen.de>
Date: Mon, 14 Nov 2016 16:42:01 +0100

> draft-ietf-tcpm-dctcp-02 says:
> 
> ... when the sender receives an indication of congestion
> (ECE), the sender SHOULD update cwnd as follows:
> 
>          cwnd = cwnd * (1 - DCTCP.Alpha / 2)
> 
> So, lets do this and reduce cwnd more smoothly (and faster), as per
> current congestion estimate.
> 
> Cc: Lawrence Brakmo <brakmo@fb.com>
> Cc: Andrew Shewmaker <agshew@gmail.com>
> Cc: Glenn Judd <glenn.judd@morganstanley.com>
> Cc: Daniel Borkmann <daniel@iogearbox.net>
> Signed-off-by: Florian Westphal <fw@strlen.de>

Applied.

^ permalink raw reply

* Re: [PATCH] net: ioctl SIOCSIFADDR minor cleanup
From: David Miller @ 2016-11-16  3:01 UTC (permalink / raw)
  To: cugyly; +Cc: netdev, Linyu.Yuan
In-Reply-To: <1479213899-5952-1-git-send-email-cugyly@163.com>

From: yuan linyu <cugyly@163.com>
Date: Tue, 15 Nov 2016 20:44:59 +0800

> @@ -1063,10 +1063,7 @@ int devinet_ioctl(struct net *net, unsigned int cmd, void __user *arg)
>  			if (!ifa)
>  				break;
>  			INIT_HLIST_NODE(&ifa->hash);
> -			if (colon)
> -				memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ);
> -			else
> -				memcpy(ifa->ifa_label, dev->name, IFNAMSIZ);
> +			memcpy(ifa->ifa_label, ifr.ifr_name, IFNAMSIZ);

This is an incorrect and untested change.

If there is a colon character in ifr.ifr_name, earlier in this function
we will:

1) First replace that colon with a NULL character.

2) Perform __dev_get_by_name() on the result.

3) Put the ":" colon character back into ifr.ifr_name

So the two strings ifr.ifr_name and dev->name can in fact be different
here.  Therefore the code has to be left as it is.

^ permalink raw reply

* Re: [PATCH net-next] net: bcm63xx_enet: Fix build failure with phy_ethtool_nway_reset
From: David Miller @ 2016-11-16  2:56 UTC (permalink / raw)
  To: f.fainelli; +Cc: netdev
In-Reply-To: <20161116022109.26935-1-f.fainelli@gmail.com>

From: Florian Fainelli <f.fainelli@gmail.com>
Date: Tue, 15 Nov 2016 18:21:09 -0800

> Introduced a typo making the driver no longer build, *sigh*.
> 
> Fixes: 42469bf5d9bb ("net: bcm63xx_enet: Utilize phy_ethtool_nway_reset")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

Applied.

^ permalink raw reply

* [PATCH net-next] net: bcm63xx_enet: Fix build failure with phy_ethtool_nway_reset
From: Florian Fainelli @ 2016-11-16  2:21 UTC (permalink / raw)
  To: netdev; +Cc: davem, Florian Fainelli

Introduced a typo making the driver no longer build, *sigh*.

Fixes: 42469bf5d9bb ("net: bcm63xx_enet: Utilize phy_ethtool_nway_reset")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/ethernet/broadcom/bcm63xx_enet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index a43ab90c051e..3b14d5144228 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -1435,7 +1435,7 @@ static int bcm_enet_nway_reset(struct net_device *dev)
 
 	priv = netdev_priv(dev);
 	if (priv->has_phy)
-		return phy_ethtool_nway_reset(dev),
+		return phy_ethtool_nway_reset(dev);
 
 	return -EOPNOTSUPP;
 }
-- 
2.9.3

^ permalink raw reply related

* Re: [PATCH] icmp: Restore resistence to abnormal messages
From: Florian Westphal @ 2016-11-16  1:14 UTC (permalink / raw)
  To: Vicente Jiménez
  Cc: Florian Westphal, David Miller, Alexey Kuznetsov, James Morris,
	Hideaki YOSHIFUJI, Patrick McHardy, netdev, linux-kernel
In-Reply-To: <CAO1wt+aZjRE_KTY0iRNJryeHvehrK6kuGMn6wOOeFuT1ncpPxA@mail.gmail.com>

Vicente Jiménez <googuy@gmail.com> wrote:
> I agree that both patches try to solve the same problem in a very similar way.
> Florian Westphal's patch do two more things:
> 1- add warning with pr_warn_ratelimited. I like this idea. I also
> though about adding some message but I have no kernel experience and I
> preferred to have just a working solution.

I added this only to show whats happening.

I don't like such printks because end users can't do anything about it.

> 2- Check if the packet size is lower than (536 + 8). I think this is
> not necessary because low values (even the zero case) is already
> handled by the protocol. Also I don't understand why you choose this
> value, it seems to be related to TCP MSS and the compared value is IP
> packet size.

Right, no need for this check.

> Finally, both patches decrement current packet by a value: Mine by 2
> and Florian's by 8 bytes. Both arbitrary values. Personally I prefer
> to go by small steps. If the small step fails, it just iterate again
> and with 4 iterations, my patch also decrement the original value by 8
> bytes (4x2).
> Basically they are the same but my patch take smaller steps and miss
> the warning message.

IIRC I chose 8 because connection recovered faster in my case.

I have not experienced this issue again (I dropped the patch from
my kernel at some point and the connection stalls did not reappear so
this got fixed elsewhere).

I'd just apply your patch, possibly with an additional comment that
says that we're grasping at straws because some middlebox is evidently
feeding bogus pmtu information.

^ permalink raw reply

* [PATCH resend] ethtool: add register dump support for fjes driver
From: Taku Izumi @ 2016-11-16  0:55 UTC (permalink / raw)
  To: linville, netdev; +Cc: Taku Izumi

This patch adds the register dump format for FUJITSU Extended
Network device like the following:

   # ethtool -d es0

0x0000: OWNER_EPID    (Owner EPID)                       0x00000001
0x0004: MAX_EP        (Maximum EP)                       0x00000008
0x0010: DCTL          (Device Control)                   0x00000000
0x0020: CR            (Command request)                  0x80000002
0x0024: CS            (Command status)                   0x80000002
0x0028: SHSTSAL       (Share status address Low)         0xE8215304
0x002C: SHSTSAH       (Share status address High)        0x00000007
0x0034: REQBL         (Request Buffer length)            0x00008028
0x0038: REQBAL        (Request Buffer Address Low)       0xEB0A0000
0x003C: REQBAH        (Request Buffer Address High)      0x00000007
0x0044: RESPBL        (Response Buffer Length)           0x00000018
0x0048: RESPBAL       (Response Buffer Address Low)      0xE41E1220
0x004C: RESPBAH       (Response Buffer Address High)     0x00000007
0x0080: IS            (Interrupt status)                 0x00000000
0x0084: IMS           (Interrupt mask set)               0x7FE00000
0x0088: IMC           (Interrupt mask clear)             0x001F0000
0x008C: IG            (Interrupt generator)              0x00010000
0x0090: ICTL          (Interrupt control)                0x00000000

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
---
 Makefile.am |  2 +-
 ethtool.c   |  1 +
 fjes.c      | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 internal.h  |  2 ++
 4 files changed, 93 insertions(+), 1 deletion(-)
 create mode 100644 fjes.c

diff --git a/Makefile.am b/Makefile.am
index de2db2e..edbda57 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,7 +14,7 @@ ethtool_SOURCES += \
 		  pcnet32.c realtek.c tg3.c marvell.c vioc.c	\
 		  smsc911x.c at76c50x-usb.c sfc.c stmmac.c	\
 		  sff-common.c sff-common.h sfpid.c sfpdiag.c	\
-		  ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h
+		  ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c
 endif
 
 TESTS = test-cmdline test-features
diff --git a/ethtool.c b/ethtool.c
index 49ac94e..75299c6 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -1136,6 +1136,7 @@ static const struct {
 	{ "et131x", et131x_dump_regs },
 	{ "altera_tse", altera_tse_dump_regs },
 	{ "vmxnet3", vmxnet3_dump_regs },
+	{ "fjes", fjes_dump_regs },
 #endif
 };
 
diff --git a/fjes.c b/fjes.c
new file mode 100644
index 0000000..52f7c28
--- /dev/null
+++ b/fjes.c
@@ -0,0 +1,89 @@
+/* Copyright (c) 2016 FUJITSU LIMITED */
+#include <stdio.h>
+#include "internal.h"
+
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
+{
+	u32 *regs_buff = (u32 *)regs->data;
+
+	if (regs->version != 1)
+		return -1;
+
+	/* Information registers */
+	fprintf(stdout,
+		"0x0000: OWNER_EPID    (Owner EPID)                       0x%08X\n",
+		regs_buff[0]);
+
+	fprintf(stdout,
+		"0x0004: MAX_EP        (Maximum EP)                       0x%08X\n",
+		regs_buff[1]);
+
+	/* Device Control registers */
+	fprintf(stdout,
+		"0x0010: DCTL          (Device Control)                   0x%08X\n",
+		regs_buff[4]);
+
+	/* Command Control registers */
+	fprintf(stdout,
+		"0x0020: CR            (Command request)                  0x%08X\n",
+		regs_buff[8]);
+
+	fprintf(stdout,
+		"0x0024: CS            (Command status)                   0x%08X\n",
+		regs_buff[9]);
+
+	fprintf(stdout,
+		"0x0028: SHSTSAL       (Share status address Low)         0x%08X\n",
+		regs_buff[10]);
+
+	fprintf(stdout,
+		"0x002C: SHSTSAH       (Share status address High)        0x%08X\n",
+		regs_buff[11]);
+
+	fprintf(stdout,
+		"0x0034: REQBL         (Request Buffer length)            0x%08X\n",
+		regs_buff[13]);
+
+	fprintf(stdout,
+		"0x0038: REQBAL        (Request Buffer Address Low)       0x%08X\n",
+		regs_buff[14]);
+
+	fprintf(stdout,
+		"0x003C: REQBAH        (Request Buffer Address High)      0x%08X\n",
+		regs_buff[15]);
+
+	fprintf(stdout,
+		"0x0044: RESPBL        (Response Buffer Length)           0x%08X\n",
+		regs_buff[17]);
+
+	fprintf(stdout,
+		"0x0048: RESPBAL       (Response Buffer Address Low)      0x%08X\n",
+		regs_buff[18]);
+
+	fprintf(stdout,
+		"0x004C: RESPBAH       (Response Buffer Address High)     0x%08X\n",
+		regs_buff[19]);
+
+	/* Interrupt Control registers */
+	fprintf(stdout,
+		"0x0080: IS            (Interrupt status)                 0x%08X\n",
+		regs_buff[32]);
+
+	fprintf(stdout,
+		"0x0084: IMS           (Interrupt mask set)               0x%08X\n",
+		regs_buff[33]);
+
+	fprintf(stdout,
+		"0x0088: IMC           (Interrupt mask clear)             0x%08X\n",
+		regs_buff[34]);
+
+	fprintf(stdout,
+		"0x008C: IG            (Interrupt generator)              0x%08X\n",
+		regs_buff[35]);
+
+	fprintf(stdout,
+		"0x0090: ICTL          (Interrupt control)                0x%08X\n",
+		regs_buff[36]);
+
+	return 0;
+}
diff --git a/internal.h b/internal.h
index 3c08b74..4e658ea 100644
--- a/internal.h
+++ b/internal.h
@@ -348,4 +348,6 @@ void sff8472_show_all(const __u8 *id);
 /* QSFP Optics diagnostics */
 void sff8636_show_all(const __u8 *id, __u32 eeprom_len);
 
+/* FUJITSU Extended Socket network device */
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
 #endif /* ETHTOOL_INTERNAL_H__ */
-- 
1.9.1

^ permalink raw reply related

* Re: [PATCH] r8169: Module parameter for opt-in of ASPM
From: Kast Bernd @ 2016-11-16  0:59 UTC (permalink / raw)
  To: David Miller; +Cc: nic_swsd, netdev, linux-kernel
In-Reply-To: <20161112.210224.1889131711533608896.davem@davemloft.net>

On Sat, Nov 12, 2016 at 09:02:24PM -0500, David Miller wrote:
> From: Kast Bernd <kastbernd@gmx.de>
> Date: Fri, 4 Nov 2016 00:33:06 +0100
> 
> > This patch adds a module parameter in order to activate ASPM. By that
> > the CPU can enter deep sleep modes (PC6) and power consumption can be
> > reduced (for example from 13W to 8W on my notebook with a Haswell CPU).
> > Basically, it reapplies d64ec841517a25f6d468bde9f67e5b4cffdc67c7, which
> > was reverted due to delayed link status detection and increased boot
> > times on some systems. These bugs are avoided by two actions:
> >         1) ASPM is turned off by default to avoid any problems with the
> > 	default	configuration.
> >         2) Flags for ASPM and clock request are set after ephy_init,
> > 	which wasn't respected on the previous patch. Thus ASPM with
> > 	this patch could work even with previously failing systems.
> 
> This feels like grasping at straws.
> 
> If you feel you've corrected a flaw in the previous ASPM
> support, then let's reinstate it unconditionally without
> some module parameter.
> 
> We'll never find out if you actually did fix ASPM support
> sufficiently if it's off by default.
> 
> Only experts like you will ever enable the option.  It's
> usage will be minimal, and therefore the benefits will not
> be sufficient to justify these changes in the first place.


The correction of that flaw is rather a side effect of reapplying the
old patch. Perhaps it will allow enabling ASPM on some additional
systems, but for sure it won't solve all ASPM related problems.
I know that the module parameters are frowned upon, as Francois Romieu
stated. Nevertheless, nobody commented on his suggestion to overcome
the problem of disabled ASPM (1).
I would really love to see ASPM enabled by default. However, it seems
to be quite unlikely, as it has the potential to trigger bugs and
freezes on some systems. I can understand, that the main focus of the
kernel is stability. Nonetheless, I also mind power consumption.
That's why I used this kernel parameter to provide a simple solution,
which can significantly reduce power consumption and heat production
without affecting stability. If we can achieve that without a kernel
parameter it's perfectly fine for me. From my point of view, there are
only two other solutions:
-a white list, like proposed by Francois Romieu, that enables ASPM on
systems, that are known to work stable
-a black list, that disables ASPM on buggy systems
While the first solution results in lots of work to keep that list up
to date, the second one will lead to unstable systems.
I don't know how many systems are out there, that suffer from problems
that are really caused by ASPM and not by some other bug,as even the
commit (2), that disabled ASPM in general for r8169, cites a bug
report, that doensn't seem to be related to ASPM at all (3).
However, others state, that disabling ASPM solved their problems (4).
Finding the flaws that caused these bugs or listing these systems is
beyond my possibilities. Thus the kernel paramter, although it is not
perfect, seemed to be the best compromise to me.


(1) http://lkml.iu.edu/hypermail/linux/kernel/1605.1/04992.html
(2) 4521e1a94279ce610d3f9b7945c17d581f804242
(3) https://bugzilla.redhat.com/show_bug.cgi?id=642861#c9
(4) https://bugzilla.redhat.com/show_bug.cgi?id=538920

^ permalink raw reply

* [PATCH net-next 5/6] net: dsa: mv88e6xxx: Fix cleanup on error for g1 interrupt setup
From: Andrew Lunn @ 2016-11-16  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn
In-Reply-To: <1479257816-7496-1-git-send-email-andrew@lunn.ch>

On error, remask the interrupts, release all maps, and remove the
domain. This cannot be done using the mv88e6xxx_g1_irq_free() because
some of these actions are not idempotent.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 8fcef7e0d3ba..614b2f68d401 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -431,8 +431,8 @@ static void mv88e6xxx_g1_irq_free(struct mv88e6xxx_chip *chip)
 
 static int mv88e6xxx_g1_irq_setup(struct mv88e6xxx_chip *chip)
 {
-	int err, irq;
-	u16 reg;
+	int err, irq, virq;
+	u16 reg, mask;
 
 	chip->g1_irq.nirqs = chip->info->g1_irqs;
 	chip->g1_irq.domain = irq_domain_add_simple(
@@ -447,32 +447,41 @@ static int mv88e6xxx_g1_irq_setup(struct mv88e6xxx_chip *chip)
 	chip->g1_irq.chip = mv88e6xxx_g1_irq_chip;
 	chip->g1_irq.masked = ~0;
 
-	err = mv88e6xxx_g1_read(chip, GLOBAL_CONTROL, &reg);
+	err = mv88e6xxx_g1_read(chip, GLOBAL_CONTROL, &mask);
 	if (err)
-		goto out;
+		goto out_mapping;
 
-	reg &= ~GENMASK(chip->g1_irq.nirqs, 0);
+	mask &= ~GENMASK(chip->g1_irq.nirqs, 0);
 
-	err = mv88e6xxx_g1_write(chip, GLOBAL_CONTROL, reg);
+	err = mv88e6xxx_g1_write(chip, GLOBAL_CONTROL, mask);
 	if (err)
-		goto out;
+		goto out_disable;
 
 	/* Reading the interrupt status clears (most of) them */
 	err = mv88e6xxx_g1_read(chip, GLOBAL_STATUS, &reg);
 	if (err)
-		goto out;
+		goto out_disable;
 
 	err = request_threaded_irq(chip->irq, NULL,
 				   mv88e6xxx_g1_irq_thread_fn,
 				   IRQF_ONESHOT | IRQF_TRIGGER_FALLING,
 				   dev_name(chip->dev), chip);
 	if (err)
-		goto out;
+		goto out_disable;
 
 	return 0;
 
-out:
-	mv88e6xxx_g1_irq_free(chip);
+out_disable:
+	mask |= GENMASK(chip->g1_irq.nirqs, 0);
+	mv88e6xxx_g1_write(chip, GLOBAL_CONTROL, mask);
+
+out_mapping:
+	for (irq = 0; irq < 16; irq++) {
+		virq = irq_find_mapping(chip->g1_irq.domain, irq);
+		irq_dispose_mapping(virq);
+	}
+
+	irq_domain_remove(chip->g1_irq.domain);
 
 	return err;
 }
-- 
2.10.2

^ permalink raw reply related

* [PATCH net-next 4/6] net: dsa: mv88e6xxx: Fix releasing for the global2 interrupts
From: Andrew Lunn @ 2016-11-16  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn
In-Reply-To: <1479257816-7496-1-git-send-email-andrew@lunn.ch>

It is not possible to use devm_request_threaded_irq() because we have
two stacked interrupt controllers in one device. The lower interrupt
controller cannot be removed until the upper is fully removed. This
happens too late with the devm API, resulting in error messages about
removing a domain while there is still an active interrupt. Swap to
using request_threaded_irq() and manage the release of the interrupt
manually.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/global2.c   | 25 +++++++++++++++++--------
 drivers/net/dsa/mv88e6xxx/mv88e6xxx.h |  1 +
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/global2.c b/drivers/net/dsa/mv88e6xxx/global2.c
index 1a0b13521d13..703d68e92f76 100644
--- a/drivers/net/dsa/mv88e6xxx/global2.c
+++ b/drivers/net/dsa/mv88e6xxx/global2.c
@@ -507,6 +507,9 @@ void mv88e6xxx_g2_irq_free(struct mv88e6xxx_chip *chip)
 {
 	int irq, virq;
 
+	free_irq(chip->device_irq, chip);
+	irq_dispose_mapping(chip->device_irq);
+
 	for (irq = 0; irq < 16; irq++) {
 		virq = irq_find_mapping(chip->g2_irq.domain, irq);
 		irq_dispose_mapping(virq);
@@ -518,7 +521,7 @@ void mv88e6xxx_g2_irq_free(struct mv88e6xxx_chip *chip)
 int mv88e6xxx_g2_irq_setup(struct mv88e6xxx_chip *chip)
 {
 	int device_irq;
-	int err, irq;
+	int err, irq, virq;
 
 	if (!chip->dev->of_node)
 		return -EINVAL;
@@ -534,22 +537,28 @@ int mv88e6xxx_g2_irq_setup(struct mv88e6xxx_chip *chip)
 	chip->g2_irq.chip = mv88e6xxx_g2_irq_chip;
 	chip->g2_irq.masked = ~0;
 
-	device_irq = irq_find_mapping(chip->g1_irq.domain,
-				      GLOBAL_STATUS_IRQ_DEVICE);
-	if (device_irq < 0) {
+	chip->device_irq = irq_find_mapping(chip->g1_irq.domain,
+					    GLOBAL_STATUS_IRQ_DEVICE);
+	if (chip->device_irq < 0) {
 		err = device_irq;
 		goto out;
 	}
 
-	err = devm_request_threaded_irq(chip->dev, device_irq, NULL,
-					mv88e6xxx_g2_irq_thread_fn,
-					IRQF_ONESHOT, "mv88e6xxx-g1", chip);
+	err = request_threaded_irq(chip->device_irq, NULL,
+				   mv88e6xxx_g2_irq_thread_fn,
+				   IRQF_ONESHOT, "mv88e6xxx-g1", chip);
 	if (err)
 		goto out;
 
 	return 0;
+
 out:
-	mv88e6xxx_g2_irq_free(chip);
+	for (irq = 0; irq < 16; irq++) {
+		virq = irq_find_mapping(chip->g2_irq.domain, irq);
+		irq_dispose_mapping(virq);
+	}
+
+	irq_domain_remove(chip->g2_irq.domain);
 
 	return err;
 }
diff --git a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
index 929613021eff..a3869504f881 100644
--- a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
+++ b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
@@ -714,6 +714,7 @@ struct mv88e6xxx_chip {
 	struct mv88e6xxx_irq g1_irq;
 	struct mv88e6xxx_irq g2_irq;
 	int irq;
+	int device_irq;
 };
 
 struct mv88e6xxx_bus_ops {
-- 
2.10.2

^ permalink raw reply related

* [PATCH net-next 6/6] net: dsa: mv88e6xxx: Hold the mutex while freeing g1 interrupts
From: Andrew Lunn @ 2016-11-16  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn
In-Reply-To: <1479257816-7496-1-git-send-email-andrew@lunn.ch>

Freeing interrupts requires switch register access to mask the
interrupts. Hence we must hold the register mutex.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 614b2f68d401..e30d0eaf2b5f 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -3916,8 +3916,11 @@ static int mv88e6xxx_probe(struct mdio_device *mdiodev)
 	if (mv88e6xxx_has(chip, MV88E6XXX_FLAG_G2_INT) && chip->irq > 0)
 		mv88e6xxx_g2_irq_free(chip);
 out_g1_irq:
-	if (chip->irq > 0)
+	if (chip->irq > 0) {
+		mutex_lock(&chip->reg_lock);
 		mv88e6xxx_g1_irq_free(chip);
+		mutex_unlock(&chip->reg_lock);
+	}
 out:
 	return err;
 }
-- 
2.10.2

^ permalink raw reply related

* [PATCH net-next 3/6] net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt
From: Andrew Lunn @ 2016-11-16  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn
In-Reply-To: <1479257816-7496-1-git-send-email-andrew@lunn.ch>

Fix the g1 interrupt free code such that is masks any further
interrupts, and then releases the interrupt.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index b843052d32bd..8fcef7e0d3ba 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -413,6 +413,13 @@ static const struct irq_domain_ops mv88e6xxx_g1_irq_domain_ops = {
 static void mv88e6xxx_g1_irq_free(struct mv88e6xxx_chip *chip)
 {
 	int irq, virq;
+	u16 mask;
+
+	mv88e6xxx_g1_read(chip, GLOBAL_CONTROL, &mask);
+	mask |= GENMASK(chip->g1_irq.nirqs, 0);
+	mv88e6xxx_g1_write(chip, GLOBAL_CONTROL, mask);
+
+	free_irq(chip->irq, chip);
 
 	for (irq = 0; irq < 16; irq++) {
 		virq = irq_find_mapping(chip->g1_irq.domain, irq);
-- 
2.10.2

^ permalink raw reply related

* [PATCH net-next 1/6] net: dsa: mv88e6xxx: Fix typos when removing g1 interrupts
From: Andrew Lunn @ 2016-11-16  0:56 UTC (permalink / raw)
  To: David Miller; +Cc: Vivien Didelot, netdev, Andrew Lunn
In-Reply-To: <1479257816-7496-1-git-send-email-andrew@lunn.ch>

Simple typos, s/g2/g1/

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index d6d9d66b81ce..6aa81d2d8f63 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -415,11 +415,11 @@ static void mv88e6xxx_g1_irq_free(struct mv88e6xxx_chip *chip)
 	int irq, virq;
 
 	for (irq = 0; irq < 16; irq++) {
-		virq = irq_find_mapping(chip->g2_irq.domain, irq);
+		virq = irq_find_mapping(chip->g1_irq.domain, irq);
 		irq_dispose_mapping(virq);
 	}
 
-	irq_domain_remove(chip->g2_irq.domain);
+	irq_domain_remove(chip->g1_irq.domain);
 }
 
 static int mv88e6xxx_g1_irq_setup(struct mv88e6xxx_chip *chip)
-- 
2.10.2

^ 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