Received: by 2002:a25:1104:0:0:0:0:0 with SMTP id 4csp605713ybr; Fri, 22 May 2020 14:33:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxt1a3XQ4ijcrj6QGPYVpNDU5COH/tlisgdtA3qZlB+hp/UcER/upXHi4OBpTVHa3svSbM7 X-Received: by 2002:a50:ed16:: with SMTP id j22mr4789821eds.300.1590183221919; Fri, 22 May 2020 14:33:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590183221; cv=none; d=google.com; s=arc-20160816; b=gKAlnfQuP2e6CMpqK+sODZIH6WU++UMV0cwUrbactMXzLRkCsT0n+MWe9Mq8zOPb63 lQU30gvO/EEQzTpazPpx8QCGFX5rjf+kXyN3Wo0Pwxg/vpRgubH2wPSLqlDsgiCrUUCF SSo4TNiSOhzHG5bcjuGMEt+UuMhwlTz5tPjDiASRSqKvv49offXKDoj9vIcSp3b58fcI oYqc9ghM+EMOjj9shVG2Qux2jrbsvd9gcgiTw2E7Q9GEInMdCDN03d7pMfD8fS/HgaSN TBDXViuoWsnHijuK3NyEJo+CF+A+/TnTKZyEaadJKDBXT8tDm7rBAKgJqlIAJMB4Sb1+ viOw== 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:message-id:date:subject:cc:to:from; bh=P8Yn51h5Fq7ew1dOX7HMTEPMzc3DYBoY51m91AOk+e8=; b=N/Fn/S3U9RY47CwpgfaILJNUj2+paYO1BkelmyFaDRoIAltN9SnyqFpKzCXUJIQ5Ux JnJEFByLhZFeRFmu3ewlRq2WwA8pTw1GwTY0K4mAvCtA2ktY2a8vfcl2dg/2seO/pj3u qQap9ZiB9dCHxg2avLoZ/yHDv/LkvHrIxHPSHxllUxEND2U92Q2TVNcSiiaNJP1qur/w nfZctYnHC4d9QTwwCc+YRUk2vlMkI8YCy+483NI9jj4yJCcVOmyYzyrxjJInHyq6Mz6i eNt7frHtpmttTzyGCNkpF07CcVVuhrbOeQWP/HMEkjq+BwSd9uywTBl6vgxeygUOWsL7 5jtQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n1si5335980edo.310.2020.05.22.14.33.18; Fri, 22 May 2020 14:33:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731248AbgEVVbf (ORCPT + 99 others); Fri, 22 May 2020 17:31:35 -0400 Received: from foss.arm.com ([217.140.110.172]:42348 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731174AbgEVVbO (ORCPT ); Fri, 22 May 2020 17:31:14 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4FBE5143B; Fri, 22 May 2020 14:31:14 -0700 (PDT) Received: from mammon-tx2.austin.arm.com (mammon-tx2.austin.arm.com [10.118.28.62]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 48A573F68F; Fri, 22 May 2020 14:31:14 -0700 (PDT) From: Jeremy Linton To: netdev@vger.kernel.org Cc: davem@davemloft.net, andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com, linux@armlinux.org.uk, madalin.bucur@oss.nxp.com, calvin.johnson@oss.nxp.com, linux-kernel@vger.kernel.org, Jeremy Linton Subject: [RFC 09/11] net: phy: Refuse to consider phy_id=0 a valid phy Date: Fri, 22 May 2020 16:30:57 -0500 Message-Id: <20200522213059.1535892-10-jeremy.linton@arm.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200522213059.1535892-1-jeremy.linton@arm.com> References: <20200522213059.1535892-1-jeremy.linton@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is another one of those questionable commits. In this case a bus tagged C45_FIRST refuses to create phys where the phy id is invalid. In general this is probably a good idea, but might cause problems. Another idea might be to create an additional flag (MDIOBUS_STRICT_ID?) for this case. Or we just ignore it and accept that the probe logic as it stands potentially creates bogus phy devices, to avoid the case where an actual phy exists but isn't responding correctly. Signed-off-by: Jeremy Linton --- drivers/net/phy/phy_device.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index acdada865864..e74f2ef6f12b 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -789,7 +789,9 @@ static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id, if (!valid_id && c22_present) return 0; - *phy_id = 0; + if (valid_id || bus->probe_capabilities != MDIOBUS_C45_FIRST) + *phy_id = 0; + return 0; } @@ -853,6 +855,10 @@ struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45) if ((phy_id & 0x1fffffff) == 0x1fffffff) return ERR_PTR(-ENODEV); + /* Strict scanning should also ignore phy_id = 0 */ + if (phy_id == 0 && bus->probe_capabilities == MDIOBUS_C45_FIRST) + return ERR_PTR(-ENODEV); + return phy_device_create(bus, addr, phy_id, is_c45, &c45_ids); } EXPORT_SYMBOL(get_phy_device); -- 2.26.2