From patchwork Thu Feb 18 02:43:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 584441 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7AF4F140297 for ; Thu, 18 Feb 2016 13:43:34 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=UPtpESrj; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424336AbcBRCna (ORCPT ); Wed, 17 Feb 2016 21:43:30 -0500 Received: from mail-ob0-f180.google.com ([209.85.214.180]:36639 "EHLO mail-ob0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1424140AbcBRCn2 (ORCPT ); Wed, 17 Feb 2016 21:43:28 -0500 Received: by mail-ob0-f180.google.com with SMTP id gc3so45388615obb.3 for ; Wed, 17 Feb 2016 18:43:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=knzfx6k1L7NT/yajJmC4cwbTxffOoqyQ/BR/XyYXQk4=; b=UPtpESrjZfcaEiVvchAUrwA9PbOLWVfbrKSLYwvrcw7ZsDf3L75z06Zm/Zgp/REtdG 1hA9pYIwl2BBYM4Kq/cfhxkUnkkTo2wWc3ShTouo9lCBF11BT022XM5lPjQrDJrscNuL Uk3ZcXWrqCTUy+zX4qDEw+fE9GsbOf3TH3tnCRVF+dtkhpb6kX65kWM6F2Z/tZ7OUJYW r1X6l6wPHmsUJR7mihaYCwg0Etr7awEai9zcAB+r+iOSaxpfI7ggab+juvL4SpoveP/c ng3B6JGQGs/Bc073S9/Ey5ttE2B72XOu3FLtWjvBSESTXu5yq7XhM8pdH83TJ+KfP/qk ZxwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=knzfx6k1L7NT/yajJmC4cwbTxffOoqyQ/BR/XyYXQk4=; b=mGtapdEiD+RupJjwyJ3VdmyC32QGFIvstNqq94MiIRwe94pzP1WqGyFehiESJo7yxw VaFbSTaPpsMsqVyMVZVL/ymiUpFHrofniOBLmjgZoRbMexq93xU3sORgO47j8K7RCVho 866LhW+bfVqS2dPq8Lj1XK+DhVIOzqEiaNcElJYhoU4C5DaKfFiUSTgV5ZAx6WK+qRd7 fnaPfA6lHYB7FcuQYsxQ1ObO6jmmhyNMnv3RAcM6hgCPKNE3ncDhG8AiEyJWHH3nmeqn GBAP/U4uiHjp5aHIpSMcXJobeD7/is8WkG73oieDLid30ksb3T9AjZAL4fQFzd7PoSJ1 i0aQ== X-Gm-Message-State: AG10YOQ7KnHCLbrUtGrh25SRjEXMLPIihEia+LgGSClcKNv1GDHxOFmaehQgOQ3uxtnh0w== X-Received: by 10.60.76.10 with SMTP id g10mr4193640oew.50.1455763408437; Wed, 17 Feb 2016 18:43:28 -0800 (PST) Received: from bender.lan (ip68-5-39-32.oc.oc.cox.net. [68.5.39.32]) by smtp.gmail.com with ESMTPSA id h127sm2596608oib.12.2016.02.17.18.43.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 17 Feb 2016 18:43:27 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: davem@davemloft.net, andrew@lunn.ch, opendmb@gmail.com, Florian Fainelli Subject: [PATCH net v2] net: dsa: Unregister slave_dev in error path Date: Wed, 17 Feb 2016 18:43:22 -0800 Message-Id: <1455763402-4399-1-git-send-email-f.fainelli@gmail.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1455761951-26408-1-git-send-email-f.fainelli@gmail.com> References: <1455761951-26408-1-git-send-email-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org With commit 0071f56e46da ("dsa: Register netdev before phy"), we are now trying to free a network device that has been previously registered, and in case of errors, this will make us hit the BUG_ON(dev->reg_state != NETREG_UNREGISTERED) condition. Fix this by adding a missing unregister_netdev() before free_netdev(). Fixes: 0071f56e46da ("dsa: Register netdev before phy") Signed-off-by: Florian Fainelli --- Changes in v2: - fixed commit message to accurately reflect what we are doing s/unregister/free net/dsa/slave.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 91e3b2ff364a..ab24521beb4d 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1204,6 +1204,7 @@ int dsa_slave_create(struct dsa_switch *ds, struct device *parent, ret = dsa_slave_phy_setup(p, slave_dev); if (ret) { netdev_err(master, "error %d setting up slave phy\n", ret); + unregister_netdev(slave_dev); free_netdev(slave_dev); return ret; }