* [net 1/5] net: allow netdev_all_upper_get_next_dev_rcu with rtnl lock held
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2013-12-18 7:19 ` Jeff Kirsher
2013-12-18 7:19 ` [net 2/5] e1000e: fix compiler warnings Jeff Kirsher
` (4 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 7:19 UTC (permalink / raw)
To: davem
Cc: John Fastabend, netdev, gospo, sassmann, Veaceslav Falico,
Jeff Kirsher
From: John Fastabend <john.r.fastabend@intel.com>
It is useful to be able to walk all upper devices when bringing
a device online where the RTNL lock is held. In this case it
is safe to walk the all_adj_list because the RTNL lock is used
to protect the write side as well.
This patch adds a check to see if the rtnl lock is held before
throwing a warning in netdev_all_upper_get_next_dev_rcu().
Also because we now have a call site for lockdep_rtnl_is_held()
outside COFIG_LOCK_PROVING an inline definition returning 1 is
needed. Similar to the rcu_read_lock_is_held().
Fixes: 2a47fa45d4df ("ixgbe: enable l2 forwarding acceleration for macvlans")
CC: Veaceslav Falico <vfalico@redhat.com>
Reported-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
include/linux/rtnetlink.h | 5 +++++
net/core/dev.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 939428a..8e3e66a 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -24,6 +24,11 @@ extern int rtnl_trylock(void);
extern int rtnl_is_locked(void);
#ifdef CONFIG_PROVE_LOCKING
extern int lockdep_rtnl_is_held(void);
+#else
+static inline int lockdep_rtnl_is_held(void)
+{
+ return 1;
+}
#endif /* #ifdef CONFIG_PROVE_LOCKING */
/**
diff --git a/net/core/dev.c b/net/core/dev.c
index ba3b7ea..4fc1722 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4500,7 +4500,7 @@ struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev,
{
struct netdev_adjacent *upper;
- WARN_ON_ONCE(!rcu_read_lock_held());
+ WARN_ON_ONCE(!rcu_read_lock_held() && !lockdep_rtnl_is_held());
upper = list_entry_rcu((*iter)->next, struct netdev_adjacent, list);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [net 2/5] e1000e: fix compiler warnings
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-18 7:19 ` [net 1/5] net: allow netdev_all_upper_get_next_dev_rcu with rtnl lock held Jeff Kirsher
@ 2013-12-18 7:19 ` Jeff Kirsher
2013-12-19 3:51 ` Jeff Kirsher
2013-12-18 7:19 ` [net 3/5] e1000e: fix compiler warning (maybe-unitialized variable) Jeff Kirsher
` (3 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 7:19 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
This patch is to fix a compiler warning of __bad_udelay due to a value
of >999 being passed as a parameter to udelay() in the function
e1000e_phy_has_link_generic(). This affects the gcc compiler when
it is given a flag of -O3 and the icc compiler.
This patch is also making the change from mdelay() to msleep() in the
same function, since it was determined though code inspection that this
function is never called in atomic context.
Signed-off-by: David Ertman <davidx.m.ertman@intel.com>
Acked-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/phy.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c
index da2be59..20e71f4 100644
--- a/drivers/net/ethernet/intel/e1000e/phy.c
+++ b/drivers/net/ethernet/intel/e1000e/phy.c
@@ -1757,19 +1757,23 @@ s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations,
* it across the board.
*/
ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
- if (ret_val)
+ if (ret_val) {
/* If the first read fails, another entity may have
* ownership of the resources, wait and try again to
* see if they have relinquished the resources yet.
*/
- udelay(usec_interval);
+ if (usec_interval >= 1000)
+ msleep(usec_interval / 1000);
+ else
+ udelay(usec_interval);
+ }
ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
if (ret_val)
break;
if (phy_status & BMSR_LSTATUS)
break;
if (usec_interval >= 1000)
- mdelay(usec_interval / 1000);
+ msleep(usec_interval / 1000);
else
udelay(usec_interval);
}
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [net 2/5] e1000e: fix compiler warnings
2013-12-18 7:19 ` [net 2/5] e1000e: fix compiler warnings Jeff Kirsher
@ 2013-12-19 3:51 ` Jeff Kirsher
0 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-19 3:51 UTC (permalink / raw)
To: David Miller
Cc: David Ertman, netdev, gospo@redhat.com, sassmann, Jeff Kirsher,
stable
On Tue, Dec 17, 2013 at 11:19 PM, Jeff Kirsher
<jeffrey.t.kirsher@intel.com> wrote:
> From: David Ertman <davidx.m.ertman@intel.com>
>
> This patch is to fix a compiler warning of __bad_udelay due to a value
> of >999 being passed as a parameter to udelay() in the function
> e1000e_phy_has_link_generic(). This affects the gcc compiler when
> it is given a flag of -O3 and the icc compiler.
>
> This patch is also making the change from mdelay() to msleep() in the
> same function, since it was determined though code inspection that this
> function is never called in atomic context.
>
CC: stable <stable@vger.kernel.org> # 3.9+
> Signed-off-by: David Ertman <davidx.m.ertman@intel.com>
> Acked-by: Bruce Allan <bruce.w.allan@intel.com>
> Tested-by: Aaron Brown <aaron.f.brown@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
> drivers/net/ethernet/intel/e1000e/phy.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000e/phy.c b/drivers/net/ethernet/intel/e1000e/phy.c
> index da2be59..20e71f4 100644
> --- a/drivers/net/ethernet/intel/e1000e/phy.c
> +++ b/drivers/net/ethernet/intel/e1000e/phy.c
> @@ -1757,19 +1757,23 @@ s32 e1000e_phy_has_link_generic(struct e1000_hw *hw, u32 iterations,
> * it across the board.
> */
> ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
> - if (ret_val)
> + if (ret_val) {
> /* If the first read fails, another entity may have
> * ownership of the resources, wait and try again to
> * see if they have relinquished the resources yet.
> */
> - udelay(usec_interval);
> + if (usec_interval >= 1000)
> + msleep(usec_interval / 1000);
> + else
> + udelay(usec_interval);
> + }
> ret_val = e1e_rphy(hw, MII_BMSR, &phy_status);
> if (ret_val)
> break;
> if (phy_status & BMSR_LSTATUS)
> break;
> if (usec_interval >= 1000)
> - mdelay(usec_interval / 1000);
> + msleep(usec_interval / 1000);
> else
> udelay(usec_interval);
> }
> --
> 1.8.3.1
>
> --
> 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
--
Cheers,
Jeff
^ permalink raw reply [flat|nested] 14+ messages in thread
* [net 3/5] e1000e: fix compiler warning (maybe-unitialized variable)
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-12-18 7:19 ` [net 1/5] net: allow netdev_all_upper_get_next_dev_rcu with rtnl lock held Jeff Kirsher
2013-12-18 7:19 ` [net 2/5] e1000e: fix compiler warnings Jeff Kirsher
@ 2013-12-18 7:19 ` Jeff Kirsher
2013-12-18 7:19 ` [net 4/5] e1000e: Fix a compile flag mis-match for suspend/resume Jeff Kirsher
` (2 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 7:19 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
This patch is to fix a compiler warning of maybe-uininitialized-variable
that is generated from gcc when the -O3 flag is used. In the function
e1000_reset_hw_80003es2lan(), the variable krmn_reg_data is first given
a value by being passed to a register read function as a
pass-by-reference parameter. But, the return value of that read
function was never checked to see if the read failed and the variable
not given an initial value. The compiler was smart enough to spot
this. This patch is to check the return value for that read function
and return it, if an error occurs, without trying to utilize the value
in kmrn_reg_data.
Signed-off-by: David Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/80003es2lan.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
index 895450e..ff2d806 100644
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
@@ -718,8 +718,11 @@ static s32 e1000_reset_hw_80003es2lan(struct e1000_hw *hw)
e1000_release_phy_80003es2lan(hw);
/* Disable IBIST slave mode (far-end loopback) */
- e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
- &kum_reg_data);
+ ret_val =
+ e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
+ &kum_reg_data);
+ if (ret_val)
+ return ret_val;
kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE;
e1000_write_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
kum_reg_data);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [net 4/5] e1000e: Fix a compile flag mis-match for suspend/resume
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (2 preceding siblings ...)
2013-12-18 7:19 ` [net 3/5] e1000e: fix compiler warning (maybe-unitialized variable) Jeff Kirsher
@ 2013-12-18 7:19 ` Jeff Kirsher
2013-12-18 7:19 ` [net 5/5] ixgbe: fix for unused variable warning with certain config Jeff Kirsher
2013-12-18 22:58 ` [net 0/5][pull request] Intel Wired LAN Driver Updates David Miller
5 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 7:19 UTC (permalink / raw)
To: davem; +Cc: David Ertman, netdev, gospo, sassmann, Jeff Kirsher
From: David Ertman <davidx.m.ertman@intel.com>
This patch addresses a mis-match between the declaration and usage of
the e1000_suspend and e1000_resume functions. Previously, these
functions were declared in a CONFIG_PM_SLEEP wrapper, and then utilized
within a CONFIG_PM wrapper. Both the declaration and usage will now be
contained within CONFIG_PM wrappers.
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 8d3945a..c30d41d 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6174,7 +6174,7 @@ static int __e1000_resume(struct pci_dev *pdev)
return 0;
}
-#ifdef CONFIG_PM_SLEEP
+#ifdef CONFIG_PM
static int e1000_suspend(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
@@ -6193,7 +6193,7 @@ static int e1000_resume(struct device *dev)
return __e1000_resume(pdev);
}
-#endif /* CONFIG_PM_SLEEP */
+#endif /* CONFIG_PM */
#ifdef CONFIG_PM_RUNTIME
static int e1000_runtime_suspend(struct device *dev)
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [net 5/5] ixgbe: fix for unused variable warning with certain config
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (3 preceding siblings ...)
2013-12-18 7:19 ` [net 4/5] e1000e: Fix a compile flag mis-match for suspend/resume Jeff Kirsher
@ 2013-12-18 7:19 ` Jeff Kirsher
2013-12-18 22:58 ` [net 0/5][pull request] Intel Wired LAN Driver Updates David Miller
5 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 7:19 UTC (permalink / raw)
To: davem; +Cc: Don Skidmore, netdev, gospo, sassmann, Jeff Kirsher
From: Don Skidmore <donald.c.skidmore@intel.com>
If CONFIG_PCI_IOV isn't defined we get an "unused variable" warining so
now wrap the variable declaration like it's usage already was.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
index d6f0c0d..72084f7 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
@@ -291,7 +291,9 @@ static int ixgbe_pci_sriov_disable(struct pci_dev *dev)
{
struct ixgbe_adapter *adapter = pci_get_drvdata(dev);
int err;
+#ifdef CONFIG_PCI_IOV
u32 current_flags = adapter->flags;
+#endif
err = ixgbe_disable_sriov(adapter);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [net 0/5][pull request] Intel Wired LAN Driver Updates
2013-12-18 7:19 [net 0/5][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
` (4 preceding siblings ...)
2013-12-18 7:19 ` [net 5/5] ixgbe: fix for unused variable warning with certain config Jeff Kirsher
@ 2013-12-18 22:58 ` David Miller
2013-12-18 23:02 ` Jeff Kirsher
5 siblings, 1 reply; 14+ messages in thread
From: David Miller @ 2013-12-18 22:58 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 17 Dec 2013 23:19:41 -0800
> The following are changes since commit 781069279f049508274db63bfb352e8583e5c977:
> Merge branch 'fixes-for-3.13' of git://gitorious.org/linux-can/linux-can
> and are available in the git repository at:
> git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
Nothing there?
[davem@abraco net]$ git pull --no-ff git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
>From git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
* branch master -> FETCH_HEAD
Already up-to-date.
[davem@abraco net]$
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [net 0/5][pull request] Intel Wired LAN Driver Updates
2013-12-18 22:58 ` [net 0/5][pull request] Intel Wired LAN Driver Updates David Miller
@ 2013-12-18 23:02 ` Jeff Kirsher
2013-12-20 0:24 ` David Miller
0 siblings, 1 reply; 14+ messages in thread
From: Jeff Kirsher @ 2013-12-18 23:02 UTC (permalink / raw)
To: David Miller; +Cc: netdev, gospo, sassmann
[-- Attachment #1: Type: text/plain, Size: 854 bytes --]
On Wed, 2013-12-18 at 17:58 -0500, David Miller wrote:
> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> Date: Tue, 17 Dec 2013 23:19:41 -0800
>
> > The following are changes since commit 781069279f049508274db63bfb352e8583e5c977:
> > Merge branch 'fixes-for-3.13' of git://gitorious.org/linux-can/linux-can
> > and are available in the git repository at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
>
> Nothing there?
>
> [davem@abraco net]$ git pull --no-ff git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
> From git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
> * branch master -> FETCH_HEAD
> Already up-to-date.
> [davem@abraco net]$
Grrr, my bad. I forgot to push my changes up to kernel.org
I just did the push, so it should be available now.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [net 0/5][pull request] Intel Wired LAN Driver Updates
2013-12-18 23:02 ` Jeff Kirsher
@ 2013-12-20 0:24 ` David Miller
0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2013-12-20 0:24 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 18 Dec 2013 15:02:09 -0800
> On Wed, 2013-12-18 at 17:58 -0500, David Miller wrote:
>> From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>> Date: Tue, 17 Dec 2013 23:19:41 -0800
>>
>> > The following are changes since commit 781069279f049508274db63bfb352e8583e5c977:
>> > Merge branch 'fixes-for-3.13' of git://gitorious.org/linux-can/linux-can
>> > and are available in the git repository at:
>> > git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
>>
>> Nothing there?
>>
>> [davem@abraco net]$ git pull --no-ff git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master
>> From git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net
>> * branch master -> FETCH_HEAD
>> Already up-to-date.
>> [davem@abraco net]$
>
> Grrr, my bad. I forgot to push my changes up to kernel.org
>
> I just did the push, so it should be available now.
Much better :-) Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 14+ messages in thread