2015-01-26 20:44:10

by Arend van Spriel

[permalink] [raw]
Subject: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

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


2015-01-27 07:39:36

by Johannes Berg

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

On Mon, 2015-01-26 at 21:44 +0100, Arend van Spriel wrote:
> 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


2015-01-30 19:41:31

by Johannes Berg

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

On Fri, 2015-01-30 at 19:38 +0100, Arend van Spriel wrote:
> On 01/30/15 19:32, Hauke Mehrtens wrote:
> > 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.

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

johannes


2015-01-26 21:15:32

by angus

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

On Mon, Jan 26, 2015 at 09:44:07PM +0100, Arend van Spriel wrote:
> 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
> --
> 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,

2015-01-30 18:38:48

by Arend van Spriel

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

On 01/30/15 19:32, Hauke Mehrtens wrote:
> 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

2015-01-30 18:33:02

by Hauke Mehrtens

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)



On 01/30/2015 07:18 PM, Arend van Spriel wrote:
> On 01/26/15 21:44, Arend van Spriel wrote:
>> 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?

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

2015-01-30 18:18:09

by Arend van Spriel

[permalink] [raw]
Subject: Re: cfg80211: Unknown symbol get_net_ns_by_fd (err 0)

On 01/26/15 21:44, Arend van Spriel wrote:
> 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

> Regards,
> Arend