linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [2.6 patch] fix bridge <-> ATM compile error
@ 2005-03-15 12:19 Adrian Bunk
  2005-03-15 17:13 ` Stephen Hemminger
  2005-03-16 16:11 ` chas williams - CONTRACTOR
  0 siblings, 2 replies; 9+ messages in thread
From: Adrian Bunk @ 2005-03-15 12:19 UTC (permalink / raw)
  To: shemminger, bridge, chas; +Cc: linux-atm-general, netdev, linux-kernel

This patch fixes the following compile error with CONFIG_BRIDGE=y and 
CONFIG_ATM_LANE=m:

<--  snip  -->

...
  LD      .tmp_vmlinux1
net/built-in.o(.init.text+0x3ad1): In function `br_init':
: undefined reference to `br_fdb_get_hook'
net/built-in.o(.init.text+0x3adb): In function `br_init':
: undefined reference to `br_fdb_put_hook'
net/built-in.o(.exit.text+0xa2): In function `br_deinit':
: undefined reference to `br_fdb_get_hook'
net/built-in.o(.exit.text+0xac): In function `br_deinit':
: undefined reference to `br_fdb_put_hook'
make: *** [.tmp_vmlinux1] Error 1

<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@stusta.de>

---

 net/bridge/br.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

--- linux-2.6.11-mm3-modular/net/bridge/br.c.old	2005-03-15 03:23:10.000000000 +0100
+++ linux-2.6.11-mm3-modular/net/bridge/br.c	2005-03-15 03:24:05.000000000 +0100
@@ -22,7 +22,7 @@
 
 #include "br_private.h"
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
+#if defined(CONFIG_ATM_LANE) || (defined(CONFIG_ATM_LANE_MODULE) && defined(MODULE))
 #include "../atm/lec.h"
 #endif
 
@@ -39,7 +39,7 @@
 	brioctl_set(br_ioctl_deviceless_stub);
 	br_handle_frame_hook = br_handle_frame;
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
+#if defined(CONFIG_ATM_LANE) || (defined(CONFIG_ATM_LANE_MODULE) && defined(MODULE))
 	br_fdb_get_hook = br_fdb_get;
 	br_fdb_put_hook = br_fdb_put;
 #endif
@@ -60,7 +60,7 @@
 
 	synchronize_net();
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
+#if defined(CONFIG_ATM_LANE) || (defined(CONFIG_ATM_LANE_MODULE) && defined(MODULE))
 	br_fdb_get_hook = NULL;
 	br_fdb_put_hook = NULL;
 #endif


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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-15 12:19 [2.6 patch] fix bridge <-> ATM compile error Adrian Bunk
@ 2005-03-15 17:13 ` Stephen Hemminger
  2005-03-15 17:25   ` Adrian Bunk
  2005-03-16 16:11 ` chas williams - CONTRACTOR
  1 sibling, 1 reply; 9+ messages in thread
From: Stephen Hemminger @ 2005-03-15 17:13 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: bridge, chas, linux-atm-general, netdev, linux-kernel

Given the #ifdef mess, perhaps bridge should have the hooks available
independent of the configuration.

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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-15 17:13 ` Stephen Hemminger
@ 2005-03-15 17:25   ` Adrian Bunk
  0 siblings, 0 replies; 9+ messages in thread
From: Adrian Bunk @ 2005-03-15 17:25 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: bridge, chas, linux-atm-general, netdev, linux-kernel

On Tue, Mar 15, 2005 at 09:13:05AM -0800, Stephen Hemminger wrote:

> Given the #ifdef mess, perhaps bridge should have the hooks available
> independent of the configuration.

The problem is the other way round:
The bridge code accesses hooks in the ATM code.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-15 12:19 [2.6 patch] fix bridge <-> ATM compile error Adrian Bunk
  2005-03-15 17:13 ` Stephen Hemminger
@ 2005-03-16 16:11 ` chas williams - CONTRACTOR
  2005-03-16 18:15   ` Adrian Bunk
  1 sibling, 1 reply; 9+ messages in thread
From: chas williams - CONTRACTOR @ 2005-03-16 16:11 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: shemminger, bridge, linux-atm-general, netdev, linux-kernel

In message <20050315121930.GE3189@stusta.de>,Adrian Bunk writes:
>This patch fixes the following compile error with CONFIG_BRIDGE=y and 
>CONFIG_ATM_LANE=m:

isnt the problem more that CONFIG_ATM=m not CONFIG_ATM_LANE=m?
perhaps CONFIG_BRIDGE should be dependent on CONFIG_ATM.  if
atm is a module then bridge cannot be a module (unless the 
hooks are moved from atm to bridge)?

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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-16 16:11 ` chas williams - CONTRACTOR
@ 2005-03-16 18:15   ` Adrian Bunk
  2005-03-16 18:24     ` chas williams - CONTRACTOR
  2005-03-17 20:36     ` chas williams - CONTRACTOR
  0 siblings, 2 replies; 9+ messages in thread
From: Adrian Bunk @ 2005-03-16 18:15 UTC (permalink / raw)
  To: chas3; +Cc: shemminger, bridge, linux-atm-general, netdev, linux-kernel

On Wed, Mar 16, 2005 at 11:11:29AM -0500, chas williams - CONTRACTOR wrote:
> In message <20050315121930.GE3189@stusta.de>,Adrian Bunk writes:
> >This patch fixes the following compile error with CONFIG_BRIDGE=y and 
> >CONFIG_ATM_LANE=m:
> 
> isnt the problem more that CONFIG_ATM=m not CONFIG_ATM_LANE=m?
> perhaps CONFIG_BRIDGE should be dependent on CONFIG_ATM.  if
> atm is a module then bridge cannot be a module (unless the 
> hooks are moved from atm to bridge)?

The problem is currently CONFIG_ATM_LANE due to the #ifdef's in 
net/atm/common.c .

Letting CONFIG_BRIDGE depend on CONFIG_ATM doesn't sound like a good 
idea, since I doubt all people using the Bridge code require ATM 
support.

Moving the hooks to the bridge code will give you exactly the same 
problems the other way round.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-16 18:15   ` Adrian Bunk
@ 2005-03-16 18:24     ` chas williams - CONTRACTOR
  2005-03-17 20:36     ` chas williams - CONTRACTOR
  1 sibling, 0 replies; 9+ messages in thread
From: chas williams - CONTRACTOR @ 2005-03-16 18:24 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: shemminger, bridge, linux-atm-general, netdev, linux-kernel

In message <20050316181532.GA3251@stusta.de>,Adrian Bunk writes:
>Letting CONFIG_BRIDGE depend on CONFIG_ATM doesn't sound like a good 
>idea, since I doubt all people using the Bridge code require ATM 
>support.

i agree.

>Moving the hooks to the bridge code will give you exactly the same 
>problems the other way round.

how about moving them to a third location like net/core/dev.c?

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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-16 18:15   ` Adrian Bunk
  2005-03-16 18:24     ` chas williams - CONTRACTOR
@ 2005-03-17 20:36     ` chas williams - CONTRACTOR
  2005-03-19 23:04       ` Adrian Bunk
  1 sibling, 1 reply; 9+ messages in thread
From: chas williams - CONTRACTOR @ 2005-03-17 20:36 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: shemminger, bridge, linux-atm-general, netdev, linux-kernel

In message <20050316181532.GA3251@stusta.de>,Adrian Bunk writes:
>Letting CONFIG_BRIDGE depend on CONFIG_ATM doesn't sound like a good 
>idea, since I doubt all people using the Bridge code require ATM 
>support.

how about the following?

===== net/atm/common.c 1.58 vs edited =====
--- 1.58/net/atm/common.c	2005-01-20 21:17:39 -05:00
+++ edited/net/atm/common.c	2005-03-16 12:44:37 -05:00
@@ -755,21 +755,6 @@
 	return vcc->dev->ops->getsockopt(vcc, level, optname, optval, len);
 }
 
-
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
-#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-struct net_bridge;
-struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
-						unsigned char *addr) = NULL;
-void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent) = NULL;
-#if defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE)
-EXPORT_SYMBOL(br_fdb_get_hook);
-EXPORT_SYMBOL(br_fdb_put_hook);
-#endif /* defined(CONFIG_ATM_LANE_MODULE) || defined(CONFIG_BRIDGE_MODULE) */
-#endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */
-#endif /* defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE) */
-
-
 static int __init atm_init(void)
 {
 	int error;
===== net/atm/lec.c 1.47 vs edited =====
--- 1.47/net/atm/lec.c	2005-02-08 23:09:15 -05:00
+++ edited/net/atm/lec.c	2005-03-16 13:18:28 -05:00
@@ -37,11 +37,8 @@
 #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
 #include <linux/if_bridge.h>
 #include "../bridge/br_private.h"
-static unsigned char bridge_ula_lec[] = {0x01, 0x80, 0xc2, 0x00, 0x00};
 
-extern struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
-       unsigned char *addr);
-extern void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent);
+static unsigned char bridge_ula_lec[] = {0x01, 0x80, 0xc2, 0x00, 0x00};
 #endif
 
 /* Modular too */
===== net/atm/lec.h 1.13 vs edited =====
--- 1.13/net/atm/lec.h	2005-01-18 15:59:15 -05:00
+++ edited/net/atm/lec.h	2005-03-16 13:22:13 -05:00
@@ -14,14 +14,6 @@
 #include <linux/netdevice.h>
 #include <linux/atmlec.h>
 
-#if defined (CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-#include <linux/if_bridge.h>
-struct net_bridge;
-extern struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
-                                                unsigned char *addr);
-extern void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent);
-#endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */
-
 #define LEC_HEADER_LEN 16
 
 struct lecdatahdr_8023 {
===== net/bridge/br.c 1.20 vs edited =====
--- 1.20/net/bridge/br.c	2005-03-10 21:50:08 -05:00
+++ edited/net/bridge/br.c	2005-03-16 13:21:27 -05:00
@@ -22,10 +22,6 @@
 
 #include "br_private.h"
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
-#include "../atm/lec.h"
-#endif
-
 int (*br_should_route_hook) (struct sk_buff **pskb) = NULL;
 
 static int __init br_init(void)
@@ -39,10 +35,9 @@
 	brioctl_set(br_ioctl_deviceless_stub);
 	br_handle_frame_hook = br_handle_frame;
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 	br_fdb_get_hook = br_fdb_get;
 	br_fdb_put_hook = br_fdb_put;
-#endif
+
 	register_netdevice_notifier(&br_device_notifier);
 
 	return 0;
@@ -60,10 +55,8 @@
 
 	synchronize_net();
 
-#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 	br_fdb_get_hook = NULL;
 	br_fdb_put_hook = NULL;
-#endif
 
 	br_handle_frame_hook = NULL;
 	br_fdb_fini();
===== net/bridge/br_private.h 1.37 vs edited =====
--- 1.37/net/bridge/br_private.h	2005-03-10 21:51:37 -05:00
+++ edited/net/bridge/br_private.h	2005-03-16 13:19:34 -05:00
@@ -216,6 +216,12 @@
 extern void br_stp_port_timer_init(struct net_bridge_port *p);
 extern unsigned long br_timer_value(const struct timer_list *timer);
 
+/* br.c */
+extern struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
+						       unsigned char *addr);
+extern void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent);
+
+
 #ifdef CONFIG_SYSFS
 /* br_sysfs_if.c */
 extern int br_sysfs_addif(struct net_bridge_port *p);
===== net/core/dev.c 1.185 vs edited =====
--- 1.185/net/core/dev.c	2005-02-11 00:54:32 -05:00
+++ edited/net/core/dev.c	2005-03-16 13:29:23 -05:00
@@ -1561,6 +1561,10 @@
 
 #if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE)
 int (*br_handle_frame_hook)(struct net_bridge_port *p, struct sk_buff **pskb);
+struct net_bridge;
+struct net_bridge_fdb_entry *(*br_fdb_get_hook)(struct net_bridge *br,
+						unsigned char *addr);
+void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent);
 
 static __inline__ int handle_bridge(struct sk_buff **pskb,
 				    struct packet_type **pt_prev, int *ret)
@@ -3346,6 +3350,8 @@
 
 #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
 EXPORT_SYMBOL(br_handle_frame_hook);
+EXPORT_SYMBOL(br_fdb_get_hook);
+EXPORT_SYMBOL(br_fdb_put_hook);
 #endif
 
 #ifdef CONFIG_KMOD

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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-17 20:36     ` chas williams - CONTRACTOR
@ 2005-03-19 23:04       ` Adrian Bunk
  2005-03-28 19:11         ` Stephen Hemminger
  0 siblings, 1 reply; 9+ messages in thread
From: Adrian Bunk @ 2005-03-19 23:04 UTC (permalink / raw)
  To: chas3; +Cc: shemminger, bridge, linux-atm-general, netdev, linux-kernel

On Thu, Mar 17, 2005 at 03:36:40PM -0500, chas williams - CONTRACTOR wrote:
> In message <20050316181532.GA3251@stusta.de>,Adrian Bunk writes:
> >Letting CONFIG_BRIDGE depend on CONFIG_ATM doesn't sound like a good 
> >idea, since I doubt all people using the Bridge code require ATM 
> >support.
> 
> how about the following?
>...

Looks good.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: [2.6 patch] fix bridge <-> ATM compile error
  2005-03-19 23:04       ` Adrian Bunk
@ 2005-03-28 19:11         ` Stephen Hemminger
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Hemminger @ 2005-03-28 19:11 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: chas3, bridge, linux-atm-general, netdev, linux-kernel

On Sun, 20 Mar 2005 00:04:58 +0100
Adrian Bunk <bunk@stusta.de> wrote:

> On Thu, Mar 17, 2005 at 03:36:40PM -0500, chas williams - CONTRACTOR wrote:
> > In message <20050316181532.GA3251@stusta.de>,Adrian Bunk writes:
> > >Letting CONFIG_BRIDGE depend on CONFIG_ATM doesn't sound like a good 
> > >idea, since I doubt all people using the Bridge code require ATM 
> > >support.
> > 
> > how about the following?
> >...
> 
> Looks good

Ditto

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

end of thread, other threads:[~2005-03-28 19:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-15 12:19 [2.6 patch] fix bridge <-> ATM compile error Adrian Bunk
2005-03-15 17:13 ` Stephen Hemminger
2005-03-15 17:25   ` Adrian Bunk
2005-03-16 16:11 ` chas williams - CONTRACTOR
2005-03-16 18:15   ` Adrian Bunk
2005-03-16 18:24     ` chas williams - CONTRACTOR
2005-03-17 20:36     ` chas williams - CONTRACTOR
2005-03-19 23:04       ` Adrian Bunk
2005-03-28 19:11         ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).