Bug 12805

Summary: QinQ vlan trunking regression
Product: Networking Reporter: Rafael J. Wysocki (rjw)
Component: OtherAssignee: Arnaldo Carvalho de Melo (acme)
Status: CLOSED CODE_FIX    
Severity: normal CC: bart
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.29-rc Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 12398    

Description Rafael J. Wysocki 2009-03-02 13:00:58 UTC
Subject    : [BUG] 2.6.29-rc* QinQ vlan trunking regression
Submitter  : Bart Trojanowski <bart@jukie.net>
Date       : 2009-02-28 18:05
References : http://marc.info/?l=linux-kernel&m=123584439115868&w=4

This entry is being used for tracking a regression from 2.6.28.  Please don't
close it until the problem is fixed in the mainline.
Comment 1 Rafael J. Wysocki 2009-03-14 13:21:21 UTC
Notify-Also : nedtev <netdev@vger.kernel.org>
Comment 2 Rafael J. Wysocki 2009-03-14 15:24:43 UTC
On Saturday 14 March 2009, David Miller wrote:
> From: "Rafael J. Wysocki" <rjw@sisk.pl>
> Date: Sat, 14 Mar 2009 20:05:33 +0100 (CET)
> 
> > This message has been generated automatically as a part of a report
> > of recent regressions.
> > 
> > The following bug entry is on the current list of known regressions
> > from 2.6.28.  Please verify if it still should be listed and let me know
> > (either way).
> > 
> > 
> > Bug-Entry   : http://bugzilla.kernel.org/show_bug.cgi?id=12805
> > Subject             : QinQ vlan trunking regression
> > Submitter   : Bart Trojanowski <bart@jukie.net>
> > Date                : 2009-02-28 18:05 (15 days old)
> > References  : http://marc.info/?l=linux-kernel&m=123584439115868&w=4
> 
> Fixed by:
> 
> commit 9d40bbda599def1e1d155d7f7dca14fe8744bd2b
> Author: David S. Miller <davem@davemloft.net>
> Date:   Wed Mar 4 23:46:25 2009 -0800
> 
>     vlan: Fix vlan-in-vlan crashes.
>     
>     As analyzed by Patrick McHardy, vlan needs to reset it's
>     netdev_ops pointer in it's ->init() function but this
>     leaves the compat method pointers stale.
>     
>     Add a netdev_resync_ops() and call it from the vlan code.
>     
>     Any other driver which changes ->netdev_ops after register_netdevice()
>     will need to call this new function after doing so too.
>     
>     With help from Patrick McHardy.
>     
>     Tested-by: Patrick McHardy <kaber@trash.net>
>     Signed-off-by: David S. Miller <davem@davemloft.net>