From patchwork Sat Sep 2 15:56:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 809102 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="n4wuDVX0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xl12T6n3kz9t0F for ; Sun, 3 Sep 2017 01:57:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752766AbdIBP4x (ORCPT ); Sat, 2 Sep 2017 11:56:53 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:34858 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752697AbdIBP4w (ORCPT ); Sat, 2 Sep 2017 11:56:52 -0400 Received: by mail-oi0-f66.google.com with SMTP id n18so2262813oig.2; Sat, 02 Sep 2017 08:56:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=bsM5YMZsSAZndGGBDuhw5vDdJi7xrVNu4E+mDTqW09Y=; b=n4wuDVX0yAM6hVFEQQUvvushifmr7SYcZAT2KzEHGKinpG7XEtk6C7qbRTtWzNoo89 GsXz5PTBp2oW0I1dRSlvB9LICwqfaTqoVmafM+cUj3XbUFgV9tXna4wQ+4hyN823E/A0 QBnHIc+c64mXCV1RSvaSV1ctCyyBDTk8uQrnVOyFJFMDRHEMjXuzLTDXJuMVBUG5O8D8 +3TidSubJ6HzTq2Jgx5Sf+2jRN3mexbrKR9ErHyDlF+5uFPu2soTgO8Qs9IY0cqSFfhi OorBiwz/d36TXN9EUt0bXQIV8EdcXnEuUB+s8gU1TcE2nzvGxnhPzd2MXhH+aGlEWCCj FG6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=bsM5YMZsSAZndGGBDuhw5vDdJi7xrVNu4E+mDTqW09Y=; b=N9IGONo7UjfkRzfQ7xQnXUOAMEhpoSAPc1S7LWDqA5QKzs03iFx2KdtuFWQWbq+rsK vQSHKUqUSjgqnDVVcKywxijo+l0KVZXYQwuB8tdYv2nDPYKvKKrunuWLQX2lxwQtix+x 9Tl8U4YlZ+8Cs21svODW+M9+TYbn7cSFRkznW6sXQVAxMCJ+T7D8Of1GEE7cvAUvrOhp bFNXemLr4+U2YeKVSJlO1UIWALg+UPXJFIG5bIXAMfRK3tyHbTmG2TODvPaJlcM1AUZ1 u9rZ47VH9gmhHgPiRbllzJhy6EpMoOpgnZ6T6nPRtRqZ4RMdtpY6/AndXYQS1BzdGts4 9Hlw== X-Gm-Message-State: AHPjjUiD5ipMlgOiTTSvGWleWNctZS3F/+kYZAujtfmn1B4NWXrbkD8o xvxlfNCX+YNk8DNn6lg= X-Google-Smtp-Source: ADKCNb6TukJ6J6mrPxblqcvkNJzqSBbKVZacsTP9ZMGUJLhQqynUrN6GtvAAY33Ro9QtmBaTL35aSg== X-Received: by 10.202.71.5 with SMTP id u5mr4598426oia.56.1504367811262; Sat, 02 Sep 2017 08:56:51 -0700 (PDT) Received: from cox.net (ip68-109-195-31.pv.oc.cox.net. [68.109.195.31]) by smtp.gmail.com with ESMTPSA id d203sm3209744oif.56.2017.09.02.08.56.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Sep 2017 08:56:50 -0700 (PDT) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , Andrew Lunn , Vivien Didelot , linux-kernel@vger.kernel.org (open list) Subject: [PATCH net] net: dsa: loop: Do not unregister invalid fixed PHY Date: Sat, 2 Sep 2017 08:56:45 -0700 Message-Id: <20170902155645.19071-1-f.fainelli@gmail.com> X-Mailer: git-send-email 2.11.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During error injection it was possible to crash in dsa_loop_exit() because of an attempt to unregister an invalid PHY. We actually want to the driver probing in dsa_loop_init() even though fixed_phy_register() may return an error to exercise how DSA deals with such cases, but we should not be crashing during driver removal. Fixes: 98cd1552ea27 ("net: dsa: Mock-up driver") Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn --- drivers/net/dsa/dsa_loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/dsa_loop.c b/drivers/net/dsa/dsa_loop.c index fdd8f3872102..8150e3a3c8dd 100644 --- a/drivers/net/dsa/dsa_loop.c +++ b/drivers/net/dsa/dsa_loop.c @@ -390,7 +390,7 @@ static void __exit dsa_loop_exit(void) mdio_driver_unregister(&dsa_loop_drv); for (i = 0; i < NUM_FIXED_PHYS; i++) - if (phydevs[i]) + if (!IS_ERR(phydevs[i])) fixed_phy_unregister(phydevs[i]); } module_exit(dsa_loop_exit);