diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2019-03-11 15:37:55 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2019-03-11 15:37:55 -0400 |
| commit | 4083014e32699af04a8e6eaa4855b08dba36a47a (patch) | |
| tree | fa37f9f9691fe64ca8a3c0cdc0315dc12462e6e4 /net/dsa/slave.c | |
| parent | 6fd96ff557963de8e62842a0dc360a6e3610d2bb (diff) | |
| parent | 78153dd45e7e0596ba32b15d02bda08e1513111e (diff) | |
Merge branch 'for-5.1/nfit/ars' into libnvdimm-for-next
Merge several updates to the ARS implementation. Highlights include:
* Support retrieval of short-ARS results if the ARS state is "requires
continuation", and even if the "no_init_ars" module parameter is
specified.
* Allow busy-polling of the kernel ARS state by allowing root to reset
the exponential back-off timer.
* Filter potentially stale ARS results by tracking query-ARS relative to
the previous start-ARS.
Diffstat (limited to 'net/dsa/slave.c')
| -rw-r--r-- | net/dsa/slave.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index a3fcc1d01615..a1c9fe155057 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c | |||
| @@ -140,11 +140,14 @@ static int dsa_slave_close(struct net_device *dev) | |||
| 140 | static void dsa_slave_change_rx_flags(struct net_device *dev, int change) | 140 | static void dsa_slave_change_rx_flags(struct net_device *dev, int change) |
| 141 | { | 141 | { |
| 142 | struct net_device *master = dsa_slave_to_master(dev); | 142 | struct net_device *master = dsa_slave_to_master(dev); |
| 143 | 143 | if (dev->flags & IFF_UP) { | |
| 144 | if (change & IFF_ALLMULTI) | 144 | if (change & IFF_ALLMULTI) |
| 145 | dev_set_allmulti(master, dev->flags & IFF_ALLMULTI ? 1 : -1); | 145 | dev_set_allmulti(master, |
| 146 | if (change & IFF_PROMISC) | 146 | dev->flags & IFF_ALLMULTI ? 1 : -1); |
| 147 | dev_set_promiscuity(master, dev->flags & IFF_PROMISC ? 1 : -1); | 147 | if (change & IFF_PROMISC) |
| 148 | dev_set_promiscuity(master, | ||
| 149 | dev->flags & IFF_PROMISC ? 1 : -1); | ||
| 150 | } | ||
| 148 | } | 151 | } |
| 149 | 152 | ||
| 150 | static void dsa_slave_set_rx_mode(struct net_device *dev) | 153 | static void dsa_slave_set_rx_mode(struct net_device *dev) |
| @@ -639,7 +642,7 @@ static int dsa_slave_set_eee(struct net_device *dev, struct ethtool_eee *e) | |||
| 639 | int ret; | 642 | int ret; |
| 640 | 643 | ||
| 641 | /* Port's PHY and MAC both need to be EEE capable */ | 644 | /* Port's PHY and MAC both need to be EEE capable */ |
| 642 | if (!dev->phydev && !dp->pl) | 645 | if (!dev->phydev || !dp->pl) |
| 643 | return -ENODEV; | 646 | return -ENODEV; |
| 644 | 647 | ||
| 645 | if (!ds->ops->set_mac_eee) | 648 | if (!ds->ops->set_mac_eee) |
| @@ -659,7 +662,7 @@ static int dsa_slave_get_eee(struct net_device *dev, struct ethtool_eee *e) | |||
| 659 | int ret; | 662 | int ret; |
| 660 | 663 | ||
| 661 | /* Port's PHY and MAC both need to be EEE capable */ | 664 | /* Port's PHY and MAC both need to be EEE capable */ |
| 662 | if (!dev->phydev && !dp->pl) | 665 | if (!dev->phydev || !dp->pl) |
| 663 | return -ENODEV; | 666 | return -ENODEV; |
| 664 | 667 | ||
| 665 | if (!ds->ops->get_mac_eee) | 668 | if (!ds->ops->get_mac_eee) |
