Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp629785pxb; Tue, 3 Nov 2020 08:24:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEybJ/EuMf+50RKZvdzViH3Ju1mNtfZL0cwsMJj6YUgozZcDiRdk1jwuX5opkYng/IP/ic X-Received: by 2002:a17:906:f1d8:: with SMTP id gx24mr9012653ejb.73.1604420678974; Tue, 03 Nov 2020 08:24:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604420678; cv=none; d=google.com; s=arc-20160816; b=wZ7BnFjP1M/O2+rlhqRlqRx9xtgGbbCQG7/9QBLQ8+ztqJd2XvZzI4IoaMQ+Ll763l 3rG9QavQIEMwmCmkS2F4AitIcmIjJ38HZDV5D9IAUfvfiuVnGi6lPOlmS7H/mc0o4g7G TdgXiuN0luKm8rktzzt2APN6WEYEK4++zWYrlTgm0oOCiHQ4iDkRvFmWced3lA3xR6mr 3lJoB+QEonMOx/DYXQ67C1iZJUiN6f0ATVW5Bg/PVjP8Kyun5RIMnWmJdEeoNI9/CT4C F71+zn2+dXHfhLjQoQ/24Y4BI9BKxmjDk5L7tAmNX+zjrvSwZH4IFUh65vNLLdu7HFDw q0dQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=tqvjjB6q34VYAg0y+ZJyPZf6f7k9DNHqBjKiXpglwzk=; b=zZcd7xLYMuCQXpTFyE5Y6wdL/FO4OWATfGLZkzuIrW4TzI2WfznD4kfo9MVFVrsndd hOjzsydrSBY1por3Yzqo5SX46cL0NwHQDyyVR0KuM4+JFdzClMtRtetdFxcxt8i4fkaY 14Z68uRpnATKpuFvQFMhqNGP3kUAuRN8d4sCfzNYeNKYRRCnCC0di6JE1ev77yPxFb/8 afKPIVA6ejEuiUZhenRab6QF4PDSxkgBaIbWys9BP9c5P+LPZatLB5cfZDcuvExaMaGA LVUQDe8E/kStnKzoCfdUi4nOacC1FqtirVughxvKDx7NozbBhRTQ9gLU81fuvyFWTsQQ vzLw== 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 z2si14080365eju.580.2020.11.03.08.24.15; Tue, 03 Nov 2020 08:24:38 -0800 (PST) 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 S1728082AbgKCQUk (ORCPT + 99 others); Tue, 3 Nov 2020 11:20:40 -0500 Received: from vps0.lunn.ch ([185.16.172.187]:32782 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727323AbgKCQUk (ORCPT ); Tue, 3 Nov 2020 11:20:40 -0500 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1kZz2r-0053Ht-9O; Tue, 03 Nov 2020 17:20:29 +0100 Date: Tue, 3 Nov 2020 17:20:29 +0100 From: Andrew Lunn To: Radhey Shyam Pandey Cc: davem@davemloft.net, kuba@kernel.org, michal.simek@xilinx.com, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, git@xilinx.com, Shravya Kumbham Subject: Re: [PATCH net-next] net: emaclite: Add error handling for of_address_ and phy read functions Message-ID: <20201103162029.GK1042051@lunn.ch> References: <1604410265-30246-1-git-send-email-radhey.shyam.pandey@xilinx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1604410265-30246-1-git-send-email-radhey.shyam.pandey@xilinx.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 03, 2020 at 07:01:05PM +0530, Radhey Shyam Pandey wrote: > From: Shravya Kumbham > > Add ret variable, conditions to check the return value and it's error > path for of_address_to_resource() and phy_read() functions. > > Addresses-Coverity: Event check_return value. Hi Radhey This is well out of scope of a Coverity fix, but looking at the patch i noticed some bad things. > @@ -923,7 +929,7 @@ static int xemaclite_open(struct net_device *dev) > xemaclite_disable_interrupts(lp); > > if (lp->phy_node) { > - u32 bmcr; > + int bmcr; > > lp->phy_dev = of_phy_connect(lp->ndev, lp->phy_node, > xemaclite_adjust_link, 0, > @@ -945,6 +951,13 @@ static int xemaclite_open(struct net_device *dev) > > /* Restart auto negotiation */ > bmcr = phy_read(lp->phy_dev, MII_BMCR); > + if (bmcr < 0) { > + dev_err(&lp->ndev->dev, "phy_read failed\n"); > + phy_disconnect(lp->phy_dev); > + lp->phy_dev = NULL; > + > + return bmcr; > + } > bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); > phy_write(lp->phy_dev, MII_BMCR, bmcr); A MAC driver should not be touching the PHY. The call to phy_set_max_speed() should prevent the PHY from advertising 1G speeds, so there is no need to poke the advertise registers. And phy_start() will start auto-get if it is enabled. It would be nice if this code got cleaned up. Andrew