On Thu, Sep 28, 2017 at 10:32 AM, Martin Schiller <m...@dev.tdt.de> wrote: > If you rename a network interface, there is a move uevent > invoked instead of remove/add. > > This patch adds support for this kind of event. > > Signed-off-by: Martin Schiller <m...@dev.tdt.de> Acked-by: Hans Dedecker <dedec...@gmail.com> > --- > system-linux.c | 31 ++++++++++++++++++++++++++++--- > 1 file changed, 28 insertions(+), 3 deletions(-) > > diff --git a/system-linux.c b/system-linux.c > index 6d97a02..e2017d0 100644 > --- a/system-linux.c > +++ b/system-linux.c > @@ -543,16 +543,20 @@ out: > static void > handle_hotplug_msg(char *data, int size) > { > - const char *subsystem = NULL, *interface = NULL; > + const char *subsystem = NULL, *interface = NULL, *interface_old = > NULL; > char *cur, *end, *sep; > struct device *dev; > int skip; > - bool add; > + bool add, move = false; > > if (!strncmp(data, "add@", 4)) > add = true; > else if (!strncmp(data, "remove@", 7)) > add = false; > + else if (!strncmp(data, "move@", 5)) { > + add = true; > + move = true; > + } > else > return; > > @@ -574,11 +578,32 @@ handle_hotplug_msg(char *data, int size) > if (strcmp(subsystem, "net") != 0) > return; > } > - if (subsystem && interface) > + else if (!strcmp(cur, "DEVPATH_OLD")) { > + interface_old = strrchr(sep + 1, '/'); > + if (interface_old) > + interface_old++; > + } > + } > + > + if (subsystem && interface) { > + if (move && interface_old) > + goto move; > + else > goto found; > } > + > return; > > +move: > + dev = device_find(interface_old); > + if (!dev) > + goto found; > + > + if (dev->type != &simple_device_type) > + goto found; > + > + device_set_present(dev, false); > + > found: > dev = device_find(interface); > if (!dev) > -- > 2.11.0 > > > _______________________________________________ > Lede-dev mailing list > Lede-dev@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/lede-dev
_______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev