Commit eacd68b7 authored by David S. Miller's avatar David S. Miller

Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue

Tony Nguyen says:

====================
Intel Wired LAN Driver Updates 2021-10-25

This series contains updates to ice driver only.

Dave adds event handler for LAG NETDEV_UNREGISTER to unlink device from
link aggregate.

Yongxin Liu adds a check for PTP support during release which would
cause a call trace on non-PTP supported devices.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 9122a70a fd1b5beb
...@@ -100,9 +100,9 @@ static void ice_display_lag_info(struct ice_lag *lag) ...@@ -100,9 +100,9 @@ static void ice_display_lag_info(struct ice_lag *lag)
*/ */
static void ice_lag_info_event(struct ice_lag *lag, void *ptr) static void ice_lag_info_event(struct ice_lag *lag, void *ptr)
{ {
struct net_device *event_netdev, *netdev_tmp;
struct netdev_notifier_bonding_info *info; struct netdev_notifier_bonding_info *info;
struct netdev_bonding_info *bonding_info; struct netdev_bonding_info *bonding_info;
struct net_device *event_netdev;
const char *lag_netdev_name; const char *lag_netdev_name;
event_netdev = netdev_notifier_info_to_dev(ptr); event_netdev = netdev_notifier_info_to_dev(ptr);
...@@ -123,19 +123,6 @@ static void ice_lag_info_event(struct ice_lag *lag, void *ptr) ...@@ -123,19 +123,6 @@ static void ice_lag_info_event(struct ice_lag *lag, void *ptr)
goto lag_out; goto lag_out;
} }
rcu_read_lock();
for_each_netdev_in_bond_rcu(lag->upper_netdev, netdev_tmp) {
if (!netif_is_ice(netdev_tmp))
continue;
if (netdev_tmp && netdev_tmp != lag->netdev &&
lag->peer_netdev != netdev_tmp) {
dev_hold(netdev_tmp);
lag->peer_netdev = netdev_tmp;
}
}
rcu_read_unlock();
if (bonding_info->slave.state) if (bonding_info->slave.state)
ice_lag_set_backup(lag); ice_lag_set_backup(lag);
else else
...@@ -319,6 +306,9 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event, ...@@ -319,6 +306,9 @@ ice_lag_event_handler(struct notifier_block *notif_blk, unsigned long event,
case NETDEV_BONDING_INFO: case NETDEV_BONDING_INFO:
ice_lag_info_event(lag, ptr); ice_lag_info_event(lag, ptr);
break; break;
case NETDEV_UNREGISTER:
ice_lag_unlink(lag, ptr);
break;
default: default:
break; break;
} }
......
...@@ -1571,6 +1571,9 @@ void ice_ptp_init(struct ice_pf *pf) ...@@ -1571,6 +1571,9 @@ void ice_ptp_init(struct ice_pf *pf)
*/ */
void ice_ptp_release(struct ice_pf *pf) void ice_ptp_release(struct ice_pf *pf)
{ {
if (!test_bit(ICE_FLAG_PTP, pf->flags))
return;
/* Disable timestamping for both Tx and Rx */ /* Disable timestamping for both Tx and Rx */
ice_ptp_cfg_timestamp(pf, false); ice_ptp_cfg_timestamp(pf, false);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment