batman-adv: use rx_handler_data pointer to store net_bridge_port pointer

Message ID 1276727961-18719-1-git-send-email-sven.eckelmann@gmx.de (mailing list archive)
State Accepted, archived
Headers

Commit Message

Sven Eckelmann June 16, 2010, 10:39 p.m. UTC
  From: Jiri Pirko <jpirko@redhat.com>

Register net_bridge_port pointer as rx_handler data pointer. As br_port is
removed from struct net_device, another netdev priv_flag is added to indicate
the device serves as a bridge port. Also rcuized pointers are now correctly
dereferenced in br_fdb.c and in netfilter parts.

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
---
 batman-adv-kernelland/hard-interface.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
  

Comments

Sven Eckelmann June 16, 2010, 10:42 p.m. UTC | #1
Sven Eckelmann wrote:
> From: Jiri Pirko <jpirko@redhat.com>
> 
> Register net_bridge_port pointer as rx_handler data pointer. As br_port is
> removed from struct net_device, another netdev priv_flag is added to
> indicate the device serves as a bridge port. Also rcuized pointers are now
> correctly dereferenced in br_fdb.c and in netfilter parts.
> 
> Signed-off-by: Jiri Pirko <jpirko@redhat.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
> ---

This patch was already merged by David S. Miller <davem@davemloft.net> on Tue 
Jun 15 20:48:58 CEST 2010 (probably for 2.6.36).

I have merged it into maint (not into trunk), but somebody has to think about 
a way to to get it working on older kernels. This patch has to made on top of 
that patch to get it integrated into the next kernel merge window.


Best regards,
	Sven
  
Marek Lindner June 16, 2010, 10:52 p.m. UTC | #2
On Thursday 17 June 2010 00:42:11 Sven Eckelmann wrote:
> I have merged it into maint (not into trunk), but somebody has to think
> about  a way to to get it working on older kernels. This patch has to made
> on top of that patch to get it integrated into the next kernel merge
> window.

The code in question has not been enabled yet. It is just there as a 
possibility and could be enabled if it makes sense. I would say the one 
activating this code has to deal with the backward compatibility when it 
happens, ok ?  :-)

Cheers,
Marek
  
Sven Eckelmann June 17, 2010, 7:25 a.m. UTC | #3
Andrew Lunn wrote:
> > --- a/batman-adv-kernelland/hard-interface.h
> > +++ b/batman-adv-kernelland/hard-interface.h
> > @@ -38,3 +38,8 @@ int batman_skb_recv(struct sk_buff *skb,
> > 
> >  				struct net_device *orig_dev);
> >  
> >  int hardif_min_mtu(void);
> >  void update_min_mtu(void);
> > 
> > +
> > +#ifndef netdev_isbridged
> > +#define netdev_isbridged(netdev) \
> > +	((net_dev)->priv_flags & IFF_BRIDGE_PORT)
> > +#endif
> 
> Maybe this could be pushed upstream? Seems like a useful bit of code
> in general?

I don't think so. It is only used in ~7 places in the whole kernel. If you 
want then please feel free to add something like this and submit it to David 
S. Miller.

Best regards,
	Sven
  
Marek Lindner June 17, 2010, 8:57 a.m. UTC | #4
On Thursday 17 June 2010 01:10:17 Sven Eckelmann wrote:
> I have merged it into maint (not in trunk) but somebody has to think about
> a way to get it working on olders kernel _when he wants to enable it the
> future_. This patch has to made on top of that patch to get it integrated
> in _one of the next kernel merge windows_.

Ok, I think we are on the same page then.  :-)
I applied the patch (revision 1699).

Thanks,
Marek
  

Patch

diff --git a/batman-adv-kernelland/hard-interface.c b/batman-adv-kernelland/hard-interface.c
index 70fd314..0773420 100644
--- a/batman-adv-kernelland/hard-interface.c
+++ b/batman-adv-kernelland/hard-interface.c
@@ -74,7 +74,7 @@  static int is_valid_iface(struct net_device *net_dev)
 #endif
 
 	/* Device is being bridged */
-	/* if (net_dev->br_port != NULL)
+	/* if (net_dev->priv_flags & IFF_BRIDGE_PORT)
 		return 0; */
 
 	return 1;