Re: [PATCH net-next 1/5] ldmvsw: better use of link up and down on ldom vswitch
From: Shannon Nelson <hidden>
Date: 2017-03-07 04:42:32
Also in:
lkml, sparclinux
On 3/6/2017 3:53 PM, Florian Fainelli wrote:
On 03/06/2017 03:15 PM, Shannon Nelson wrote:quoted
When an ldom VM is bound, the network vswitch infrastructure is set up for it, but was being forced 'UP' by the userland switch configuration script. When 'UP' but not actually connected to a running VM, the ipv6 neighbor probes fail (not a horrible thing) and start cluttering up the kernel logs. Funny thing: these are debug messages that never actually show up, but we do see the net_ratelimited messages that say N callbacks were suppressed. This patch defers the netif_carrier_on() until an actual link has been established with the VM, as indicated by receiving an LDC_EVENT_UP from the underlying LDC protocol. Similarly, we take the link down when we see the LDC_EVENT_RESET. Orabug: 25525312 Signed-off-by: Shannon Nelson <redacted> --- drivers/net/ethernet/sun/ldmvsw.c | 10 +++++++--- drivers/net/ethernet/sun/sunvnet_common.c | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-)diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c index 89952de..c6f6d59 100644 --- a/drivers/net/ethernet/sun/ldmvsw.c +++ b/drivers/net/ethernet/sun/ldmvsw.c@@ -41,8 +41,8 @@ static u8 vsw_port_hwaddr[ETH_ALEN] = {0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; #define DRV_MODULE_NAME "ldmvsw" -#define DRV_MODULE_VERSION "1.1" -#define DRV_MODULE_RELDATE "February 3, 2017" +#define DRV_MODULE_VERSION "1.2" +#define DRV_MODULE_RELDATE "March 4, 2017" static char version[] = DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")";@@ -133,7 +133,6 @@ static void vsw_poll_controller(struct net_device *dev) #endif static const struct net_device_ops vsw_ops = { - .ndo_open = sunvnet_open_common,Is this change intentional? It was not entirely obvious where you would be setting ::ndo_open in other places.
Yes, it is correct. It does look a bit odd, but nearly all the work is done in the _probe(), and now the carrier_on happens a little later when the LDC_EVENT_UP is received, so there's no longer a need for the _open() call. sln