From mboxrd@z Thu Jan 1 00:00:00 1970 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=-8.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 45C95C282DA for ; Thu, 18 Apr 2019 02:42:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 11491217F9 for ; Thu, 18 Apr 2019 02:42:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=lunn.ch header.i=@lunn.ch header.b="hYFWo+As" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387911AbfDRCmT (ORCPT ); Wed, 17 Apr 2019 22:42:19 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:37020 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732737AbfDRCmT (ORCPT ); Wed, 17 Apr 2019 22:42:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=NJlz3HbUFUKin3q/Wzi4Kk9p5Kjdi5Uh7shvpW+S8VE=; b=hYFWo+Asp9UAmluy2c+Hpuk+o4 jKDvFSnFn60m/6yqE6u53LzujedKnoFD7bDYjpxvcTH6a7uCuUCxmiL+wnQqVi6+cw+Mg0lH6KIJv JnVvm7P6bHsuZNIwkrq0Bihm6Hr/mM8ehNi74f/Eq0OaHflb0hfE/g79XHmG41RTQXEw=; Received: from andrew by vps0.lunn.ch with local (Exim 4.89) (envelope-from ) id 1hGwpi-0004Sv-Bl; Thu, 18 Apr 2019 04:31:26 +0200 From: Andrew Lunn To: David Miller Cc: netdev , Florian Fainelli , Vivien Didelot , Andrew Lunn Subject: [PATCH net-next 11/15] dsa: Add stub tag driver put method Date: Thu, 18 Apr 2019 04:31:16 +0200 Message-Id: <20190418023120.17067-12-andrew@lunn.ch> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190418023120.17067-1-andrew@lunn.ch> References: <20190418023120.17067-1-andrew@lunn.ch> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When a DSA switch driver is unloaded, the lock on the tag driver should be released so the module can be unloaded. Add the needed calls, but leave the actual relase code as a stub. Signed-off-by: Andrew Lunn --- net/dsa/dsa.c | 4 ++++ net/dsa/dsa2.c | 2 ++ net/dsa/dsa_priv.h | 1 + net/dsa/legacy.c | 2 ++ 4 files changed, 9 insertions(+) diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c index 5e99f291723f..a3210b2f88a2 100644 --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c @@ -141,6 +141,10 @@ const struct dsa_device_ops *dsa_tag_driver_get(int tag_protocol) return ops; } +void dsa_tag_driver_put(const struct dsa_device_ops *ops) +{ +} + static int dev_is_class(struct device *dev, void *class) { if (dev->class != NULL && !strcmp(dev->class->name, class)) diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index ba91bda8bdd3..efc51a9dc9c8 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c @@ -335,6 +335,8 @@ static void dsa_port_teardown(struct dsa_port *dp) case DSA_PORT_TYPE_UNUSED: break; case DSA_PORT_TYPE_CPU: + dsa_tag_driver_put(dp->tag_ops); + /* fall thought */ case DSA_PORT_TYPE_DSA: dsa_port_link_unregister_of(dp); break; diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h index d7dbdf06e437..ec002a7c8a58 100644 --- a/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h @@ -85,6 +85,7 @@ struct dsa_slave_priv { /* dsa.c */ const struct dsa_device_ops *dsa_tag_driver_get(int tag_protocol); +void dsa_tag_driver_put(const struct dsa_device_ops *ops); bool dsa_schedule_work(struct work_struct *work); const char *dsa_tag_protocol_to_str(const struct dsa_device_ops *ops); diff --git a/net/dsa/legacy.c b/net/dsa/legacy.c index a8c076250237..219f4fa7ff4b 100644 --- a/net/dsa/legacy.c +++ b/net/dsa/legacy.c @@ -163,6 +163,8 @@ static int dsa_switch_setup_one(struct dsa_switch *ds, dst->cpu_dp->dst = dst; } + dsa_tag_driver_put(dst->cpu_dp->tag_ops); + memcpy(ds->rtable, cd->rtable, sizeof(ds->rtable)); /* -- 2.20.1