The patch titled drivers/net/macvlan.c: fix cloning of tagged VLAN interfaces has been added to the -mm tree. Its filename is drivers-net-macvlanc-fix-cloning-of-tagged-vlan-interfaces.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: drivers/net/macvlan.c: fix cloning of tagged VLAN interfaces From: <sg.tweak@xxxxxxxxx> Addresses http://bugzilla.kernel.org/show_bug.cgi?id=13348 akpm: the reporter disappeared, so I typed it in again. It is not possible to make clone of tagged VLAN interface to be used as mac-based vlan interfave. How reproducible: Use any 802.1q tagged vlan interface, e.g. eth2.700 and clone it: ip link add link eth2.700 address 00:04:75:cb:38:09 macvlan0 type macvlan ip link set dev macvlan0 up ip addr add 10.195.1.1/24 dev macvlan0 So far, so good. Now try to ping anything via macvlan0: ping 10.195.1.2 Actual results: For every attempted packet tx kernel writes to console: ------------[ cut here ]------------ WARNING: at net/8021q/vlan_dev.c:254 vlan_dev_hard_header+0x36/0x126 [8021q]() Hardware name: M22ES Modules linked in: arptable_filter arp_tables bridge veth macvlan arc4 ecb ppp_mppe ppp_async crc_ccitt ppp_generic slhc autofs4 sunrpc 8021q garp stp ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_tcpudp x_tables dm_mirror dm_region_hash dm_log dm_multipath dm_mod sbs sbshc lp floppy snd_intel8x0 joydev snd_seq_dummy snd_intel8x0m snd_ac97_codec ide_cd_mod ac97_bus snd_seq_oss cdrom snd_seq_midi_event serio_raw snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss parport_pc snd_pcm parport battery 8139cp snd_timer i2c_sis96x ac button snd rtc_cmos rtc_core 8139too soundcore rtc_lib mii i2c_core pcspkr snd_page_alloc pata_sis libata sd_mod scsi_mod ext3 jbd ehci_hcd ohci_hcd uhci_hcd [last unloaded: ip_tables] Pid: 0, comm: swapper Tainted: G W 2.6.29.3 #1 Call Trace: [<c0425f48>] warn_slowpath+0x60/0x9f [<c0425f6f>] warn_slowpath+0x87/0x9f [<dffb850d>] vlan_dev_hard_header+0x0/0x126 [8021q] [<dffb8543>] vlan_dev_hard_header+0x36/0x126 [8021q] [<dffb850d>] vlan_dev_hard_header+0x0/0x126 [8021q] [<df83155d>] macvlan_hard_header+0x3c/0x47 [macvlan] [<df831521>] macvlan_hard_header+0x0/0x47 [macvlan] [<c062bf3f>] arp_create+0xef/0x1ff [<c062c08c>] arp_send+0x3d/0x54 [<c062c916>] arp_solicit+0x16c/0x177 [<c05fadd2>] neigh_timer_handler+0x227/0x269 [<c05fabab>] neigh_timer_handler+0x0/0x269 [<c042ce4d>] run_timer_softirq+0xf0/0x141 [<c0429e5a>] __do_softirq+0x76/0xf8 [<c0429de4>] __do_softirq+0x0/0xf8 <IRQ> [<c044fb67>] handle_level_irq+0x0/0xad [<c0429db7>] irq_exit+0x35/0x62 [<c04046bb>] do_IRQ+0xdf/0xf4 [<c04035a7>] common_interrupt+0x27/0x2c [<c04079c5>] default_idle+0x2a/0x3d [<c0401bb6>] cpu_idle+0x57/0x70 Macvlan driver always uses standard ethernet header length for all types of interface to which it is linked. This patch fixes this problem. Reported-by: <sg.tweak@xxxxxxxxx> Cc: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> Cc: "Rafael J. Wysocki" <rjw@xxxxxxx> Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> Cc: Stephen Hemminger <shemminger@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/net/macvlan.c | 1 + 1 file changed, 1 insertion(+) diff -puN drivers/net/macvlan.c~drivers-net-macvlanc-fix-cloning-of-tagged-vlan-interfaces drivers/net/macvlan.c --- a/drivers/net/macvlan.c~drivers-net-macvlanc-fix-cloning-of-tagged-vlan-interfaces +++ a/drivers/net/macvlan.c @@ -358,6 +358,7 @@ static int macvlan_init(struct net_devic (lowerdev->state & MACVLAN_STATE_MASK); dev->features = lowerdev->features & MACVLAN_FEATURES; dev->iflink = lowerdev->ifindex; + dev->hard_header_len = lowerdev->hard_header_len; macvlan_set_lockdep_class(dev); _ Patches currently in -mm which might be from sg.tweak@xxxxxxxxx are drivers-net-macvlanc-fix-cloning-of-tagged-vlan-interfaces.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html