]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
um: vector: always reset vp->opened
authorJohannes Berg <johannes.berg@intel.com>
Wed, 3 Jul 2024 16:46:23 +0000 (18:46 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 4 Jul 2024 10:03:26 +0000 (12:03 +0200)
If open fails, we have already set vp->opened, but it's
not reset so that any further attempts will just return
-ENXIO. Reset vp->opened even if close has nothing to do.

This helps e.g. with slirp4netns handling only a single
connection, you can then restart it and open the device
again.

Link: https://patch.msgid.link/20240703184622.df40c5c38461.Id4e20b48938c6019d99e6133227a34ac059db466@changeid
Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
arch/um/drivers/vector_kern.c

index 0861e32d2fbdc657a555e0cd057d0d2abd067176..2d473282ab515ecef052afa353a7123c2065d5d8 100644 (file)
@@ -1119,6 +1119,8 @@ static int vector_net_close(struct net_device *dev)
        netif_stop_queue(dev);
        del_timer(&vp->tl);
 
+       vp->opened = false;
+
        if (vp->fds == NULL)
                return 0;
 
@@ -1157,7 +1159,6 @@ static int vector_net_close(struct net_device *dev)
                destroy_queue(vp->tx_queue);
        kfree(vp->fds);
        vp->fds = NULL;
-       vp->opened = false;
        vp->in_error = false;
        return 0;
 }