Message ID | 20220222001817.2264967-1-marmarek@invisiblethingslab.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0f4558ae91870692ce7f509c31c9d6ee721d8cdc |
Headers | show |
Series | [v2,1/2] Revert "xen-netback: remove 'hotplug-status' once it has served its purpose" | expand |
On Tue, 22 Feb 2022 01:18:16 +0100 Marek Marczykowski-Górecki wrote: > This reverts commit 1f2565780e9b7218cf92c7630130e82dcc0fe9c2. > > The 'hotplug-status' node should not be removed as long as the vif > device remains configured. Otherwise the xen-netback would wait for > re-running the network script even if it was already called (in case of > the frontent re-connecting). But also, it _should_ be removed when the > vif device is destroyed (for example when unbinding the driver) - > otherwise hotplug script would not configure the device whenever it > re-appear. > > Moving removal of the 'hotplug-status' node was a workaround for nothing > calling network script after xen-netback module is reloaded. But when > vif interface is re-created (on xen-netback unbind/bind for example), > the script should be called, regardless of who does that - currently > this case is not handled by the toolstack, and requires manual > script call. Keeping hotplug-status=connected to skip the call is wrong > and leads to not configured interface. > > More discussion at > https://lore.kernel.org/xen-devel/afedd7cb-a291-e773-8b0d-4db9b291fa98@ipxe.org/T/#u > > Cc: stable@vger.kernel.org > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Wei, Paul, do these look good?
On 22/02/2022 00:18, Marek Marczykowski-Górecki wrote: > This reverts commit 1f2565780e9b7218cf92c7630130e82dcc0fe9c2. > > The 'hotplug-status' node should not be removed as long as the vif > device remains configured. Otherwise the xen-netback would wait for > re-running the network script even if it was already called (in case of > the frontent re-connecting). But also, it _should_ be removed when the > vif device is destroyed (for example when unbinding the driver) - > otherwise hotplug script would not configure the device whenever it > re-appear. > > Moving removal of the 'hotplug-status' node was a workaround for nothing > calling network script after xen-netback module is reloaded. But when > vif interface is re-created (on xen-netback unbind/bind for example), > the script should be called, regardless of who does that - currently > this case is not handled by the toolstack, and requires manual > script call. Keeping hotplug-status=connected to skip the call is wrong > and leads to not configured interface. > > More discussion at > https://lore.kernel.org/xen-devel/afedd7cb-a291-e773-8b0d-4db9b291fa98@ipxe.org/T/#u > > Cc: stable@vger.kernel.org > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> Reviewed-by: Paul Durrant <paul@xen.org>
Hello: This series was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Tue, 22 Feb 2022 01:18:16 +0100 you wrote: > This reverts commit 1f2565780e9b7218cf92c7630130e82dcc0fe9c2. > > The 'hotplug-status' node should not be removed as long as the vif > device remains configured. Otherwise the xen-netback would wait for > re-running the network script even if it was already called (in case of > the frontent re-connecting). But also, it _should_ be removed when the > vif device is destroyed (for example when unbinding the driver) - > otherwise hotplug script would not configure the device whenever it > re-appear. > > [...] Here is the summary with links: - [v2,1/2] Revert "xen-netback: remove 'hotplug-status' once it has served its purpose" https://git.kernel.org/netdev/net/c/0f4558ae9187 - [v2,2/2] Revert "xen-netback: Check for hotplug-status existence before watching" https://git.kernel.org/netdev/net/c/e8240addd0a3 You are awesome, thank you!
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index d24b7a7993aa..3fad58d22155 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -256,6 +256,7 @@ static void backend_disconnect(struct backend_info *be) unsigned int queue_index; xen_unregister_watchers(vif); + xenbus_rm(XBT_NIL, be->dev->nodename, "hotplug-status"); #ifdef CONFIG_DEBUG_FS xenvif_debugfs_delif(vif); #endif /* CONFIG_DEBUG_FS */ @@ -675,7 +676,6 @@ static void hotplug_status_changed(struct xenbus_watch *watch, /* Not interested in this watch anymore. */ unregister_hotplug_status_watch(be); - xenbus_rm(XBT_NIL, be->dev->nodename, "hotplug-status"); } kfree(str); }
This reverts commit 1f2565780e9b7218cf92c7630130e82dcc0fe9c2. The 'hotplug-status' node should not be removed as long as the vif device remains configured. Otherwise the xen-netback would wait for re-running the network script even if it was already called (in case of the frontent re-connecting). But also, it _should_ be removed when the vif device is destroyed (for example when unbinding the driver) - otherwise hotplug script would not configure the device whenever it re-appear. Moving removal of the 'hotplug-status' node was a workaround for nothing calling network script after xen-netback module is reloaded. But when vif interface is re-created (on xen-netback unbind/bind for example), the script should be called, regardless of who does that - currently this case is not handled by the toolstack, and requires manual script call. Keeping hotplug-status=connected to skip the call is wrong and leads to not configured interface. More discussion at https://lore.kernel.org/xen-devel/afedd7cb-a291-e773-8b0d-4db9b291fa98@ipxe.org/T/#u Cc: stable@vger.kernel.org Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> --- Cc: Michael Brown <mcb30@ipxe.org> Changes in v2: - build fix, reported by kernel test robot <lkp@intel.com> --- drivers/net/xen-netback/xenbus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)