--- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -1417,10 +1417,17 @@ static ssize_t xps_rxqs_store(struct net return err; } + if (!rtnl_trylock()) { + bitmap_free(mask); + return restart_syscall(); + } + cpus_read_lock(); err = __netif_set_xps_queue(dev, mask, index, true); cpus_read_unlock(); + rtnl_unlock(); + bitmap_free(mask); return err ? : len; }