[net] Revert "net: core: maybe return -EEXIST in __dev_alloc_name"
Michael Ellerman
michael at concordia.ellerman.id.au
Tue Dec 19 23:28:21 AEDT 2017
Hi Johannes,
> From: Johannes Berg <johannes.berg at intel.com>
>
> This reverts commit d6f295e9def0; some userspace (in the case
> we noticed it's wpa_supplicant), is relying on the current
> error code to determine that a fixed name interface already
> exists.
>
> Reported-by: Jouni Malinen <j at w1.fi>
> Signed-off-by: Johannes Berg <johannes.berg at intel.com>
> ---
> net/core/dev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
This revert seems to have broken networking on one of my powerpc
machines, according to git bisect.
The symptom is DHCP fails and I don't get a link, I didn't dig any
further than that. I can if it's helpful.
I think the problem is that 87c320e51519 ("net: core: dev_get_valid_name
is now the same as dev_alloc_name_ns") only makes sense while
d6f295e9def0 remains in the tree.
ie. before the entire series, dev_get_valid_name() would return EEXIST,
and that was retained when 87c320e51519 was merged, but now that
d6f295e9def0 has been reverted dev_get_valid_name() is returning ENFILE.
I can get the network up again if I also revert 87c320e51519 ("net:
core: dev_get_valid_name is now the same as dev_alloc_name_ns"), or with
the gross patch below.
cheers
diff --git a/net/core/dev.c b/net/core/dev.c
index f47e96b62308..d0304461ad32 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1146,7 +1146,11 @@ EXPORT_SYMBOL(dev_alloc_name);
int dev_get_valid_name(struct net *net, struct net_device *dev,
const char *name)
{
- return dev_alloc_name_ns(net, dev, name);
+ int rc = dev_alloc_name_ns(net, dev, name);
+ if (rc == -ENFILE)
+ rc = -EEXIST;
+
+ return rc;
}
EXPORT_SYMBOL(dev_get_valid_name);
More information about the Linuxppc-dev
mailing list