All of lore.kernel.org
 help / color / mirror / Atom feed
* [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 14:10 ` Arnd Bergmann
  0 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2015-01-13 14:10 UTC (permalink / raw)
  To: netdev; +Cc: Kyeyoon Park, bridge, davem

When IPV4 support is disabled, we cannot call arp_send from
the bridge code, which would result in a kernel link error:

net/built-in.o: In function `br_handle_frame_finish':
:(.text+0x59914): undefined reference to `arp_send'
:(.text+0x59a50): undefined reference to `arp_tbl'

This makes the newly added proxy ARP support in the bridge
code depend on the CONFIG_INET symbol and lets the compiler
optimize the code out to avoid the link error.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")
Cc: Kyeyoon Park <kyeyoonp@codeaurora.org>

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 1f1de715197c..e2aa7be3a847 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -154,7 +154,8 @@ int br_handle_frame_finish(struct sk_buff *skb)
 	dst = NULL;
 
 	if (is_broadcast_ether_addr(dest)) {
-		if (p->flags & BR_PROXYARP &&
+		if (IS_ENABLED(CONFIG_INET) &&
+		    p->flags & BR_PROXYARP &&
 		    skb->protocol == htons(ETH_P_ARP))
 			br_do_proxy_arp(skb, br, vid);
 


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 14:10 ` Arnd Bergmann
  0 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2015-01-13 14:10 UTC (permalink / raw)
  To: netdev; +Cc: davem, Kyeyoon Park, bridge, Stephen Hemminger

When IPV4 support is disabled, we cannot call arp_send from
the bridge code, which would result in a kernel link error:

net/built-in.o: In function `br_handle_frame_finish':
:(.text+0x59914): undefined reference to `arp_send'
:(.text+0x59a50): undefined reference to `arp_tbl'

This makes the newly added proxy ARP support in the bridge
code depend on the CONFIG_INET symbol and lets the compiler
optimize the code out to avoid the link error.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")
Cc: Kyeyoon Park <kyeyoonp@codeaurora.org>

diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
index 1f1de715197c..e2aa7be3a847 100644
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
@@ -154,7 +154,8 @@ int br_handle_frame_finish(struct sk_buff *skb)
 	dst = NULL;
 
 	if (is_broadcast_ether_addr(dest)) {
-		if (p->flags & BR_PROXYARP &&
+		if (IS_ENABLED(CONFIG_INET) &&
+		    p->flags & BR_PROXYARP &&
 		    skb->protocol == htons(ETH_P_ARP))
 			br_do_proxy_arp(skb, br, vid);
 

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 14:10 ` Arnd Bergmann
@ 2015-01-13 19:25   ` Cong Wang
  -1 siblings, 0 replies; 14+ messages in thread
From: Cong Wang @ 2015-01-13 19:25 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: netdev, Kyeyoon Park, bridge@lists.linux-foundation.org,
	David Miller

On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> When IPV4 support is disabled, we cannot call arp_send from
> the bridge code, which would result in a kernel link error:
>
> net/built-in.o: In function `br_handle_frame_finish':
> :(.text+0x59914): undefined reference to `arp_send'
> :(.text+0x59a50): undefined reference to `arp_tbl'
>
> This makes the newly added proxy ARP support in the bridge
> code depend on the CONFIG_INET symbol and lets the compiler
> optimize the code out to avoid the link error.
>

Not sure how much sense to make CONFIG_BRIDGE depend
on CONFIG_INET, at least CONFIG_BONDING does.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 19:25   ` Cong Wang
  0 siblings, 0 replies; 14+ messages in thread
From: Cong Wang @ 2015-01-13 19:25 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: netdev, Kyeyoon Park, bridge@lists.linux-foundation.org,
	David Miller

On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> When IPV4 support is disabled, we cannot call arp_send from
> the bridge code, which would result in a kernel link error:
>
> net/built-in.o: In function `br_handle_frame_finish':
> :(.text+0x59914): undefined reference to `arp_send'
> :(.text+0x59a50): undefined reference to `arp_tbl'
>
> This makes the newly added proxy ARP support in the bridge
> code depend on the CONFIG_INET symbol and lets the compiler
> optimize the code out to avoid the link error.
>

Not sure how much sense to make CONFIG_BRIDGE depend
on CONFIG_INET, at least CONFIG_BONDING does.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 19:25   ` Cong Wang
@ 2015-01-13 20:57     ` David Miller
  -1 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2015-01-13 20:57 UTC (permalink / raw)
  To: cwang; +Cc: netdev, kyeyoonp, bridge, arnd

From: Cong Wang <cwang@twopensource.com>
Date: Tue, 13 Jan 2015 11:25:45 -0800

> On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>> When IPV4 support is disabled, we cannot call arp_send from
>> the bridge code, which would result in a kernel link error:
>>
>> net/built-in.o: In function `br_handle_frame_finish':
>> :(.text+0x59914): undefined reference to `arp_send'
>> :(.text+0x59a50): undefined reference to `arp_tbl'
>>
>> This makes the newly added proxy ARP support in the bridge
>> code depend on the CONFIG_INET symbol and lets the compiler
>> optimize the code out to avoid the link error.
>>
> 
> Not sure how much sense to make CONFIG_BRIDGE depend
> on CONFIG_INET, at least CONFIG_BONDING does.

It depends upon whether we want to provide and consider
as a valid configuration bridging without INET.  Probably
we do.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 20:57     ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2015-01-13 20:57 UTC (permalink / raw)
  To: cwang; +Cc: netdev, kyeyoonp, bridge, arnd

From: Cong Wang <cwang@twopensource.com>
Date: Tue, 13 Jan 2015 11:25:45 -0800

> On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>> When IPV4 support is disabled, we cannot call arp_send from
>> the bridge code, which would result in a kernel link error:
>>
>> net/built-in.o: In function `br_handle_frame_finish':
>> :(.text+0x59914): undefined reference to `arp_send'
>> :(.text+0x59a50): undefined reference to `arp_tbl'
>>
>> This makes the newly added proxy ARP support in the bridge
>> code depend on the CONFIG_INET symbol and lets the compiler
>> optimize the code out to avoid the link error.
>>
> 
> Not sure how much sense to make CONFIG_BRIDGE depend
> on CONFIG_INET, at least CONFIG_BONDING does.

It depends upon whether we want to provide and consider
as a valid configuration bridging without INET.  Probably
we do.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 20:57     ` David Miller
@ 2015-01-13 21:14       ` David Ahern
  -1 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2015-01-13 21:14 UTC (permalink / raw)
  To: David Miller, cwang, arnd; +Cc: netdev, kyeyoonp, bridge

On 1/13/15 1:57 PM, David Miller wrote:
> From: Cong Wang <cwang@twopensource.com>
> Date: Tue, 13 Jan 2015 11:25:45 -0800
>
>> On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>> When IPV4 support is disabled, we cannot call arp_send from
>>> the bridge code, which would result in a kernel link error:
>>>
>>> net/built-in.o: In function `br_handle_frame_finish':
>>> :(.text+0x59914): undefined reference to `arp_send'
>>> :(.text+0x59a50): undefined reference to `arp_tbl'
>>>
>>> This makes the newly added proxy ARP support in the bridge
>>> code depend on the CONFIG_INET symbol and lets the compiler
>>> optimize the code out to avoid the link error.
>>>
>>
>> Not sure how much sense to make CONFIG_BRIDGE depend
>> on CONFIG_INET, at least CONFIG_BONDING does.
>
> It depends upon whether we want to provide and consider
> as a valid configuration bridging without INET.  Probably
> we do.

Rather than connect CONFIG_BRIDGE to CONFIG_INET, why not make 
br_do_proxy_arp (and setting BR_PROXYARP flag) a no-op if CONFIG_INET is 
not set?

#ifdef CONFIG_INET
#else
static inline void br_do_proxy_arp(...args...)
{
}
#endif

That covers both arp_tbl and arp_send.

David


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 21:14       ` David Ahern
  0 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2015-01-13 21:14 UTC (permalink / raw)
  To: David Miller, cwang, arnd; +Cc: netdev, kyeyoonp, bridge, stephen

On 1/13/15 1:57 PM, David Miller wrote:
> From: Cong Wang <cwang@twopensource.com>
> Date: Tue, 13 Jan 2015 11:25:45 -0800
>
>> On Tue, Jan 13, 2015 at 6:10 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>> When IPV4 support is disabled, we cannot call arp_send from
>>> the bridge code, which would result in a kernel link error:
>>>
>>> net/built-in.o: In function `br_handle_frame_finish':
>>> :(.text+0x59914): undefined reference to `arp_send'
>>> :(.text+0x59a50): undefined reference to `arp_tbl'
>>>
>>> This makes the newly added proxy ARP support in the bridge
>>> code depend on the CONFIG_INET symbol and lets the compiler
>>> optimize the code out to avoid the link error.
>>>
>>
>> Not sure how much sense to make CONFIG_BRIDGE depend
>> on CONFIG_INET, at least CONFIG_BONDING does.
>
> It depends upon whether we want to provide and consider
> as a valid configuration bridging without INET.  Probably
> we do.

Rather than connect CONFIG_BRIDGE to CONFIG_INET, why not make 
br_do_proxy_arp (and setting BR_PROXYARP flag) a no-op if CONFIG_INET is 
not set?

#ifdef CONFIG_INET
#else
static inline void br_do_proxy_arp(...args...)
{
}
#endif

That covers both arp_tbl and arp_send.

David

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 21:14       ` David Ahern
@ 2015-01-13 21:33         ` Arnd Bergmann
  -1 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2015-01-13 21:33 UTC (permalink / raw)
  To: David Ahern; +Cc: cwang, bridge, kyeyoonp, netdev, David Miller

On Tuesday 13 January 2015 14:14:20 David Ahern wrote:
> 
> Rather than connect CONFIG_BRIDGE to CONFIG_INET, why not make 
> br_do_proxy_arp (and setting BR_PROXYARP flag) a no-op if CONFIG_INET is 
> not set?
> 
> #ifdef CONFIG_INET
> #else
> static inline void br_do_proxy_arp(...args...)
> {
> }
> #endif
> 
> That covers both arp_tbl and arp_send.

The effect is very similar to my patch (probably same object code), the
only difference should be that it would add an ugly #ifdef instead of
the preferred IS_ENABLED() check, so you don't get any compile-time
coverage of the function. It's not really important because everybody
has CONFIG_INET enabled in practice and it does get more than enough
compile-time coverage.

	Arnd

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-13 21:33         ` Arnd Bergmann
  0 siblings, 0 replies; 14+ messages in thread
From: Arnd Bergmann @ 2015-01-13 21:33 UTC (permalink / raw)
  To: David Ahern; +Cc: David Miller, cwang, netdev, kyeyoonp, bridge, stephen

On Tuesday 13 January 2015 14:14:20 David Ahern wrote:
> 
> Rather than connect CONFIG_BRIDGE to CONFIG_INET, why not make 
> br_do_proxy_arp (and setting BR_PROXYARP flag) a no-op if CONFIG_INET is 
> not set?
> 
> #ifdef CONFIG_INET
> #else
> static inline void br_do_proxy_arp(...args...)
> {
> }
> #endif
> 
> That covers both arp_tbl and arp_send.

The effect is very similar to my patch (probably same object code), the
only difference should be that it would add an ugly #ifdef instead of
the preferred IS_ENABLED() check, so you don't get any compile-time
coverage of the function. It's not really important because everybody
has CONFIG_INET enabled in practice and it does get more than enough
compile-time coverage.

	Arnd

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 21:33         ` Arnd Bergmann
@ 2015-01-14  2:56           ` David Ahern
  -1 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2015-01-14  2:56 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: cwang, bridge, kyeyoonp, netdev, David Miller

On 1/13/15 2:33 PM, Arnd Bergmann wrote:

> The effect is very similar to my patch (probably same object code), the
> only difference should be that it would add an ugly #ifdef instead of
> the preferred IS_ENABLED() check, so you don't get any compile-time
> coverage of the function.

Indeed. As long as br_do_proxy_arp does not get exported that works the 
same.

David


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-14  2:56           ` David Ahern
  0 siblings, 0 replies; 14+ messages in thread
From: David Ahern @ 2015-01-14  2:56 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: David Miller, cwang, netdev, kyeyoonp, bridge, stephen

On 1/13/15 2:33 PM, Arnd Bergmann wrote:

> The effect is very similar to my patch (probably same object code), the
> only difference should be that it would add an ugly #ifdef instead of
> the preferred IS_ENABLED() check, so you don't get any compile-time
> coverage of the function.

Indeed. As long as br_do_proxy_arp does not get exported that works the 
same.

David

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
  2015-01-13 14:10 ` Arnd Bergmann
@ 2015-01-14 20:08   ` David Miller
  -1 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2015-01-14 20:08 UTC (permalink / raw)
  To: arnd; +Cc: netdev, kyeyoonp, bridge

From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 13 Jan 2015 15:10:27 +0100

> When IPV4 support is disabled, we cannot call arp_send from
> the bridge code, which would result in a kernel link error:
> 
> net/built-in.o: In function `br_handle_frame_finish':
> :(.text+0x59914): undefined reference to `arp_send'
> :(.text+0x59a50): undefined reference to `arp_tbl'
> 
> This makes the newly added proxy ARP support in the bridge
> code depend on the CONFIG_INET symbol and lets the compiler
> optimize the code out to avoid the link error.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")

Applied, thanks Arnd.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled
@ 2015-01-14 20:08   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2015-01-14 20:08 UTC (permalink / raw)
  To: arnd; +Cc: netdev, kyeyoonp, bridge

From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 13 Jan 2015 15:10:27 +0100

> When IPV4 support is disabled, we cannot call arp_send from
> the bridge code, which would result in a kernel link error:
> 
> net/built-in.o: In function `br_handle_frame_finish':
> :(.text+0x59914): undefined reference to `arp_send'
> :(.text+0x59a50): undefined reference to `arp_tbl'
> 
> This makes the newly added proxy ARP support in the bridge
> code depend on the CONFIG_INET symbol and lets the compiler
> optimize the code out to avoid the link error.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Fixes: 958501163ddd ("bridge: Add support for IEEE 802.11 Proxy ARP")

Applied, thanks Arnd.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2015-01-14 20:08 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-13 14:10 [Bridge] [PATCH] bridge: only provide proxy ARP when CONFIG_INET is enabled Arnd Bergmann
2015-01-13 14:10 ` Arnd Bergmann
2015-01-13 19:25 ` [Bridge] " Cong Wang
2015-01-13 19:25   ` Cong Wang
2015-01-13 20:57   ` [Bridge] " David Miller
2015-01-13 20:57     ` David Miller
2015-01-13 21:14     ` [Bridge] " David Ahern
2015-01-13 21:14       ` David Ahern
2015-01-13 21:33       ` [Bridge] " Arnd Bergmann
2015-01-13 21:33         ` Arnd Bergmann
2015-01-14  2:56         ` [Bridge] " David Ahern
2015-01-14  2:56           ` David Ahern
2015-01-14 20:08 ` [Bridge] " David Miller
2015-01-14 20:08   ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.