Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2211874yba; Fri, 19 Apr 2019 14:36:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqwtetJZQdGng/LJyj4kBqViDWRSylEmDqXoQlqUL2mVgxQo+pPbmyK2qqvmPhq+Y4+BxTid X-Received: by 2002:aa7:92d1:: with SMTP id k17mr6345538pfa.91.1555709798562; Fri, 19 Apr 2019 14:36:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555709798; cv=none; d=google.com; s=arc-20160816; b=OHcgKlitHwSY1r8/hVETkpKVNVMFBSaODXF1u2nVuSFFutKf+rO5zL7f0fxF3f1UmW 4S22/ZZgOYnoyHN7hCgtX8fUitx2ni7chlWqHR+gqTo2+Awjzch83uE5wbzzcV7VClSp UGk36z0FdxdK9ezOdwRLU7bpn9yp7Hl13uOsG9oghx4Anezkf57rvwfufYDqPWoQwJtb uKtnrsP4/Fb53TkqpeEb6n0Ozly/vSjBPenoHksc0UZuuKRkvvyj1RR1TF/wbV9R5sRU PZXx8XtR4LV4uTraSdhpg/msSm8rv+zgwT23zBCW4JqhIAGqXlOTDk9fxIttRnYF84Mb SswA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:from:subject:cc:to:message-id:date; bh=Ixb6M1GXsA/927hoGYkDmR7Td91yZCpHHuzLOGg8E+I=; b=WCKUZrjtbYCittPrbcOIFDvGIIad0ka5k13EmAF6ivKPmgxqMCOjmuNeT+mjHJDfAw AHtRY1fUpNIcDY7uh9PucnEGuVY3Kw4CyTzYkUhLwXoEx24qJiEFXuxye3w5hGNAr9B1 jfPRCoJbTF4bi7j3nf4xZLL7+F1fsyvKml6UIHwbE3KkgpfgVvrHu/7HPE8gwcpdMSq2 53BGHzLnFu0/TLlQsI6gDIUvBkyQ2C6QPfcVV9ZSzSgYUh3eAVC6h/EKsBJ73hJc9y44 IqswvstMegoVZfdYAvRogStwdvf6JbA7TTCB2+El3duVezn8IH6s9eHSW03MGqZNGn9r b5jQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k5si5451468pgq.193.2019.04.19.14.36.23; Fri, 19 Apr 2019 14:36:38 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727709AbfDSVfW (ORCPT + 99 others); Fri, 19 Apr 2019 17:35:22 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:35570 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726000AbfDSVfV (ORCPT ); Fri, 19 Apr 2019 17:35:21 -0400 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 53DD414DAB89C; Fri, 19 Apr 2019 14:35:20 -0700 (PDT) Date: Fri, 19 Apr 2019 14:35:19 -0700 (PDT) Message-Id: <20190419.143519.94034508850689697.davem@davemloft.net> To: o.rempel@pengutronix.de Cc: paul.burton@mips.com, ralf@linux-mips.org, jhogan@kernel.org, robh+dt@kernel.org, jcliburn@gmail.com, chris.snook@gmail.com, mark.rutland@arm.com, kernel@pengutronix.de, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, john@phrozen.org, nbd@nbd.name, netdev@vger.kernel.org Subject: Re: [PATCH v2 3/3] net: ethernet: add ag71xx driver From: David Miller In-Reply-To: <20190418052620.20835-4-o.rempel@pengutronix.de> References: <20190418052620.20835-1-o.rempel@pengutronix.de> <20190418052620.20835-4-o.rempel@pengutronix.de> X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Fri, 19 Apr 2019 14:35:20 -0700 (PDT) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Oleksij Rempel Date: Thu, 18 Apr 2019 07:26:20 +0200 > +static int ag71xx_remove(struct platform_device *pdev) > +{ > + struct net_device *ndev = platform_get_drvdata(pdev); > + struct ag71xx *ag; > + > + if (!ndev) > + return 0; > + > + ag = netdev_priv(ndev); > + ag71xx_phy_disconnect(ag); > + ag71xx_mdio_remove(ag); > + unregister_netdev(ndev); > + platform_set_drvdata(pdev, NULL); > + > + return 0; > +} You should unregister the netdev before you disconnect the PHY and remove the MDIO. Also you need to call free_netdev() afterwards otherwise you will leak it.