From patchwork Thu Mar 19 12:59:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 229139 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0775C4332D for ; Thu, 19 Mar 2020 13:07:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9521120836 for ; Thu, 19 Mar 2020 13:07:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584623233; bh=Bm39ZwFROQyEHnHhoSvNMfV+9apEoX6s5tzPInHM3RU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=A9JYM25WLbQTX0St6ywcFZzpvfF/7A8XdY8ML13kpsHGPC3aT8+TPiJ9JMP/MX0tk PTJb0gTtOAayv0BeZg1PemhX38zw8cogapN3FWKAc3F8myi7+jihGXKbwatNMWzGLk 2ykxF+gfcl/Z9Z2QDgTmRpdt2xKY8+MTwI8O/+DQ= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727217AbgCSNHM (ORCPT ); Thu, 19 Mar 2020 09:07:12 -0400 Received: from mail.kernel.org ([198.145.29.99]:50714 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727822AbgCSNHL (ORCPT ); Thu, 19 Mar 2020 09:07:11 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1ADE32080C; Thu, 19 Mar 2020 13:07:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584623230; bh=Bm39ZwFROQyEHnHhoSvNMfV+9apEoX6s5tzPInHM3RU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M2BsZQTVpp3hSK9STxJIC7N2xElYykpW3UWbNOL7Sc5GzOaAf8oznkFg/aFX6Col5 P+WuUzt9cm4HYhUaNzxC//hESPJfsCvdNpT8ky/woRD9HdILw6REKJaoaVy/V9sVLa Silyk/EbdFojXSpYLcvAmOBspeokDsc2us9h9WLk= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Greg Kroah-Hartman , Sven Eckelmann , Antonio Quartulli , Marek Lindner , "David S. Miller" Subject: [PATCH 4.4 52/93] batman-adv: Clean up untagged vlan when destroying via rtnl-link Date: Thu, 19 Mar 2020 13:59:56 +0100 Message-Id: <20200319123941.474938250@linuxfoundation.org> X-Mailer: git-send-email 2.25.2 In-Reply-To: <20200319123924.795019515@linuxfoundation.org> References: <20200319123924.795019515@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Sven Eckelmann commit 420cb1b764f9169c5d2601b4af90e4a1702345ee upstream. The untagged vlan object is only destroyed when the interface is removed via the legacy sysfs interface. But it also has to be destroyed when the standard rtnl-link interface is used. Fixes: 5d2c05b21337 ("batman-adv: add per VLAN interface attribute framework") Signed-off-by: Sven Eckelmann Acked-by: Antonio Quartulli Signed-off-by: Marek Lindner Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/batman-adv/soft-interface.c | 9 +++++++++ 1 file changed, 9 insertions(+) --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -1000,7 +1000,9 @@ void batadv_softif_destroy_sysfs(struct static void batadv_softif_destroy_netlink(struct net_device *soft_iface, struct list_head *head) { + struct batadv_priv *bat_priv = netdev_priv(soft_iface); struct batadv_hard_iface *hard_iface; + struct batadv_softif_vlan *vlan; list_for_each_entry(hard_iface, &batadv_hardif_list, list) { if (hard_iface->soft_iface == soft_iface) @@ -1008,6 +1010,13 @@ static void batadv_softif_destroy_netlin BATADV_IF_CLEANUP_KEEP); } + /* destroy the "untagged" VLAN */ + vlan = batadv_softif_vlan_get(bat_priv, BATADV_NO_FLAGS); + if (vlan) { + batadv_softif_destroy_vlan(bat_priv, vlan); + batadv_softif_vlan_free_ref(vlan); + } + batadv_sysfs_del_meshif(soft_iface); unregister_netdevice_queue(soft_iface, head); }