From patchwork Mon Jul 6 10:19:50 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herbert Xu X-Patchwork-Id: 29494 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id EB62EB6F44 for ; Mon, 6 Jul 2009 20:20:03 +1000 (EST) Received: by ozlabs.org (Postfix) id E2870DDD0C; Mon, 6 Jul 2009 20:20:03 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 4FDE3DDD0B for ; Mon, 6 Jul 2009 20:20:03 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754161AbZGFKTv (ORCPT ); Mon, 6 Jul 2009 06:19:51 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754111AbZGFKTu (ORCPT ); Mon, 6 Jul 2009 06:19:50 -0400 Received: from rhun.apana.org.au ([64.62.148.172]:48007 "EHLO arnor.apana.org.au" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754092AbZGFKTu (ORCPT ); Mon, 6 Jul 2009 06:19:50 -0400 Received: from gondolin.me.apana.org.au ([192.168.0.6]) by arnor.apana.org.au with esmtp (Exim 4.63 #1 (Debian)) id 1MNlIe-0003X5-Ko; Mon, 06 Jul 2009 20:19:52 +1000 Received: from herbert by gondolin.me.apana.org.au with local (Exim 4.69) (envelope-from ) id 1MNlIc-0004wS-7u; Mon, 06 Jul 2009 18:19:50 +0800 Date: Mon, 6 Jul 2009 18:19:50 +0800 From: Herbert Xu To: Andrew Morton Cc: netdev@vger.kernel.org, bugzilla-daemon@bugzilla.kernel.org, bugme-daemon@bugzilla.kernel.org, tomek@jot23.org, "David S. Miller" Subject: Re: [Bugme-new] [Bug 13467] New: Cannot set larger mtu on vlan then on underlying untagged device Message-ID: <20090706101950.GA18953@gondor.apana.org.au> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20090609143438.87e6bf5d.akpm@linux-foundation.org> Organization: Core X-Newsgroups: apana.lists.os.linux.netdev User-Agent: Mutt/1.5.18 (2008-05-17) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Andrew Morton wrote: > >> Summary: Cannot set larger mtu on vlan then on underlying >> untagged device Please try this patch. vlan: Propagate physical MTU changes When the physical MTU changes we want to ensure that all existing VLAN device MTUs do not exceed the new underlying MTU. This patch adds that propagation. Signed-off-by: Herbert Xu Cheers, diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index fe64908..6d37b7e 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -468,6 +468,19 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event, } break; + case NETDEV_CHANGEMTU: + for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) { + vlandev = vlan_group_get_device(grp, i); + if (!vlandev) + continue; + + if (vlandev->mtu <= dev->mtu) + continue; + + dev_set_mtu(vlandev, dev->mtu); + } + break; + case NETDEV_FEAT_CHANGE: /* Propagate device features to underlying device */ for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {