Skip to contentSkip to conversation

cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

DISCUSSION Arend van Spriel 4 participants 7 messages Jan 26, 2015 – Jan 30, 2015

lore
Share & tools
lore
#0 lore raw

Hi Hauke,

The commit below causes the error mentioned in the Subject: field. I would like to fix this, but could use a bit of help here how to do this type of things.

commit 4b681c82d2f9bef121c912ffcaac89a004af3f2c

Author: Vadim Kochan <[email protected]>
Date:   Mon Jan 12 16:34:05 2015 +0200

nl80211: Allow set network namespace by fd

Regards,
Arend

#1 lore raw
Quoted 10 lines · Arend van Spriel

Hi Hauke,

The commit below causes the error mentioned in the Subject: field. I would like to fix this, but could use a bit of help here how to do this type of things.

commit 4b681c82d2f9bef121c912ffcaac89a004af3f2c

Author: Vadim Kochan <[email protected]>
Date:   Mon Jan 12 16:34:05 2015 +0200
Quoted 8 lines

nl80211: Allow set network namespace by fd

Regards,
Arend
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Hi,

Did you compile it on mac80211-next master branch ?

Regards,

#2 lore raw
In reply to Arend van Spriel
Quoted 11 lines · Arend van Spriel

Hi Hauke,

The commit below causes the error mentioned in the Subject: field. I would like to fix this, but could use a bit of help here how to do this type of things.

commit 4b681c82d2f9bef121c912ffcaac89a004af3f2c

Author: Vadim Kochan <[email protected]>
Date:   Mon Jan 12 16:34:05 2015 +0200

nl80211: Allow set network namespace by fd

I don't think you can fix it in backports - it required exporting the get_net_ns_by_fd() function, which cannot be gotten to otherwise and cannot be backported since it internally uses a number of non-exported symbols.

You'll probably just have to provide a backported version of get_net_ns_by_fd() that always returns ERR_PTR(-EOPNOTSUPP) or so.

johannes

#3 lore raw
In reply to Arend van Spriel
Quoted 11 lines · Arend van Spriel

Hi Hauke,

The commit below causes the error mentioned in the Subject: field. I would like to fix this, but could use a bit of help here how to do this type of things.

commit 4b681c82d2f9bef121c912ffcaac89a004af3f2c
Author: Vadim Kochan <[email protected]>
Date: Mon Jan 12 16:34:05 2015 +0200

nl80211: Allow set network namespace by fd

Hi Hauke,

I looked into my issue a bit more. So my target kernel is 3.11.1-200.fc19.x86_64 and checking lxr found that 3.11 has this function, but it does not have EXPORT_SYMBOL(). That was added by the same commit above. Any clues how to fix this?

Regards,
Arend

Quoted 2 lines

Regards,
Arend

#4 lore raw
Quoted 11 lines · Arend van Spriel
Quoted 10 lines · Arend van Spriel

Hi Hauke,

The commit below causes the error mentioned in the Subject: field. I would like to fix this, but could use a bit of help here how to do this type of things.

commit 4b681c82d2f9bef121c912ffcaac89a004af3f2c
Author: Vadim Kochan <[email protected]>
Date: Mon Jan 12 16:34:05 2015 +0200

Quoted 8 lines
Quoted 1 line

nl80211: Allow set network namespace by fd

Hi Hauke,

I looked into my issue a bit more. So my target kernel is 3.11.1-200.fc19.x86_64 and checking lxr found that 3.11 has this function, but it does not have EXPORT_SYMBOL(). That was added by the same commit above. Any clues how to fix this?

Hi Arend

As Johannes said it is probably not possible to backport get_net_ns_by_fd() correctly. You can not access any symbols which are not exported in a kernel. To backport it we have to access netns_operations which is also not exported.

We could copy this function it into backports and remove this check from the original function:
if (ei->ns_ops == &netns_operations)
..

Or we just backport this version every time:

struct net *get_net_ns_by_fd(int fd)

{
	return ERR_PTR(-EINVAL);
}

Hauke

#5 lore raw
Quoted 7 lines · Hauke Mehrtens

Or we just backport this version every time:

struct net *get_net_ns_by_fd(int fd)

{
	return ERR_PTR(-EINVAL);
}

I was going for the easy way out over here. Either way is fine by me, but is net namespace support can not be properly backported I would say got for the version above.

Gr. AvS

#6 lore raw
Quoted 9 lines · Arend van Spriel
Quoted 7 lines · Hauke Mehrtens

Or we just backport this version every time:

struct net *get_net_ns_by_fd(int fd)

{
	return ERR_PTR(-EINVAL);
}
Quoted 3 lines

I was going for the easy way out over here. Either way is fine by me, but is net namespace support can not be properly backported I would say got for the version above.

I agree, I think we should go for the always-fail one.

johannes