lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 28 Oct 2020 00:57:41 -0500 From: Lijun Pan <ljp@...ux.ibm.com> To: netdev@...r.kernel.org Cc: Lijun Pan <ljp@...ux.ibm.com>, Brian King <brking@...ux.vnet.ibm.com>, Pradeep Satyanarayana <pradeeps@...ux.vnet.ibm.com>, Dany Madden <drt@...ux.ibm.com> Subject: [PATCH net 1/2] ibmvnic: notify peers when failover and migration happen We need to notify peers only when failover and migration happen. It is unnecessary to call that in other events like FATAL, NON_FATAL, CHANGE_PARAM, and TIMEOUT resets since in those scenarios the MAC address and ip address mapping does not change. Originally all the resets except CHANGE_PARAM are processed by do_reset such that we need to find out failover and migration cases in do_reset and call notifier functions. We only need to notify peers in do_reset and do_hard_reset. We don't need notify peers in do_change_param_reset since it is a CHANGE_PARAM reset. In a nested reset case, it will finally call into do_hard_reset with reasons other than failvoer and migration. So, we don't need to check the reset reason in do_hard_reset and just call notifier functions anyway. netdev_notify_peers calls below two functions with rtnl lock(). call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, dev); call_netdevice_notifiers(NETDEV_RESEND_IGMP, dev); When netdev_notify_peers was substituted in commit 986103e7920c ("net/ibmvnic: Fix RTNL deadlock during device reset"), call_netdevice_notifiers(NETDEV_RESEND_IGMP, dev) was missed. Fixes: 61d3e1d9bc2a ("ibmvnic: Remove netdev notify for failover resets") Fixes: 986103e7920c ("net/ibmvnic: Fix RTNL deadlock during device reset") Suggested-by: Brian King <brking@...ux.vnet.ibm.com> Suggested-by: Pradeep Satyanarayana <pradeeps@...ux.vnet.ibm.com> Signed-off-by: Dany Madden <drt@...ux.ibm.com> Signed-off-by: Lijun Pan <ljp@...ux.ibm.com> --- drivers/net/ethernet/ibm/ibmvnic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 1b702a43a5d0..718da39f5ae4 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2067,8 +2067,11 @@ static int do_reset(struct ibmvnic_adapter *adapter, for (i = 0; i < adapter->req_rx_queues; i++) napi_schedule(&adapter->napi[i]); - if (adapter->reset_reason != VNIC_RESET_FAILOVER) + if (adapter->reset_reason == VNIC_RESET_FAILOVER || + adapter->reset_reason == VNIC_RESET_MOBILITY) { call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev); + call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev); + } rc = 0; @@ -2138,6 +2141,9 @@ static int do_hard_reset(struct ibmvnic_adapter *adapter, if (rc) return IBMVNIC_OPEN_FAILED; + call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, netdev); + call_netdevice_notifiers(NETDEV_RESEND_IGMP, netdev); + return 0; } -- 2.23.0
Powered by blists - more mailing lists