Received: by 10.192.165.148 with SMTP id m20csp272418imm; Fri, 4 May 2018 10:04:01 -0700 (PDT) X-Google-Smtp-Source: AB8JxZp5za4OkM9DDVAevtczHJ40AQ2lbyJwYAxvM/61qPRd6diW7m5baz8f65bDpYZf1cJhA51+ X-Received: by 2002:a65:55ca:: with SMTP id k10-v6mr23487736pgs.422.1525453441183; Fri, 04 May 2018 10:04:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525453441; cv=none; d=google.com; s=arc-20160816; b=jFL7oizZRUzeZ4t8SGt5N54loLbSZaDG/Kj/a4Yyp9L4CucYGwjNCf3mTqm0b/uDjW rDeo91MtdQEGhy4FkHPSu3d5clWMAil1XsHoxEZXlQfAAKuV3a7UB8rhlD51VC3GV+Gh oPDMMaw2YTEnnXjICU2tf/F9gLOmkbPEdOFYW7BFT1KTMpKcsRHq1WOw0jPMjspkjTly jK2aWDT/WTc82EpUbybUsmb1nlKN+wopk2ajpNFzZX3I6ZsAplOX/ITslLXBctErsF/s mNzXLs4K3bnpmXSqK5eujRlPOi6Bh6QWnPXRwdSAFMi2EdNq/+sz3zaUX+6WVRU1SJ/z esKA== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:from:references:cc:to:subject :dkim-signature:arc-authentication-results; bh=7u9MCLakGFlUn1Sao2aGPQ5IGUfTxYh688QBGyDleF8=; b=oxDbNKuqfFHjMSxFplOXVNpTV511xovS3Db5+s+vGXrCmEQeM0S8eB8Qhl5XWfJKYI VE0NDKMGpRvMkJ3vwnvDNnP2ubZ7LpBUB9wB6FIAJtbAYL+idbtqb5/nBzdWGpjTDG/Y Zkd9pj4oB3mSDmaXegvcEfuOsB2CIXOgSIad3l5uBf0DciirR+jOS5/mZTGBun/jIidt P35hk+M/nlFZLP4MmvjVA7oxVGAVhOqj+LaOA3GzDp/QScnD4GqNkcpihaQUPMRYcoIh 8HKjcNlEO9u2Pd9y7WZ7bYqpuUFx1Ak5OtrOEf2QT+jD6C5UPT/0XgMj+OmRZDwx7QEW 99hQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=dY1aDyL/; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p1-v6si5025180pgn.605.2018.05.04.10.03.46; Fri, 04 May 2018 10:04:01 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=dY1aDyL/; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751622AbeEDRDe (ORCPT + 99 others); Fri, 4 May 2018 13:03:34 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:38720 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751464AbeEDRDc (ORCPT ); Fri, 4 May 2018 13:03:32 -0400 Received: by mail-wm0-f67.google.com with SMTP id m198-v6so5260049wmg.3; Fri, 04 May 2018 10:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=7u9MCLakGFlUn1Sao2aGPQ5IGUfTxYh688QBGyDleF8=; b=dY1aDyL/r1eMBGMm4npox+sKVpBX5jE4v8QwTQ1/+/WAXG/zGDlfBuAJx8rht6FCQl lXuwgXz+HByXQb6wJJ8fSjAAZTybIb8WyNLz8Nela7/UZYtqEOfzpNX/6Fw25p7L2i9h lhheUKUzgsWjymmAKhh042QjayuIX2qX+DEzhkyRgOPR2BfQpKr0opuE9BZXGvJ9cry3 eciZPXVDDMA6wfpOYa82yCXHxDJZc0iWsrdcpz5JmER6CUI3zD769gmwCF1tDV6kblTf 4DouR2JNKi59ejZ+FugapIP3HCgRsUtbJs9h+btN9kg4tGEhnxPTFIkm4H4Pcvkr0vWT nbQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=7u9MCLakGFlUn1Sao2aGPQ5IGUfTxYh688QBGyDleF8=; b=Qjq2gbbBsGB36tSVFHM8Qhc5UO/eAarWpqeb7bLEQRe99dubIJfIt8RbqITA0MpyjD Pev135N2G+JVNxhyzwYeu6u0mFiQ5ljIiMM9btbVqL+lQuVdax5UEzjA8Ddnyd6V7Imq XIQlMqH+wxcqfuam0kM0BuVB88XCN+hKXj2NgO+8ZeuxtmBoQZI+Oy6ga/Ys9+Jhz0M9 w33kK38niKYAPXYS+8oHZTdkUGlFjIBBoPFgVgKcocw8CUId87OfOk4oDpz+5i05A9QW T7wELe59pyyA1PL7gfPL+fiVMhueeIT2PFJfkE6fIsFIqE9/8ADu8SiIhia5SBdLpeJd lCqg== X-Gm-Message-State: ALQs6tACkti8yJrkYArpE7uIXVSOFSv4SCm+x/1O+jObP1lPX+XvngHG Gd8hYXqmvOvKeqpGiIShx08= X-Received: by 2002:a50:a698:: with SMTP id e24-v6mr37444508edc.2.1525453410813; Fri, 04 May 2018 10:03:30 -0700 (PDT) Received: from [10.69.41.93] ([192.19.223.250]) by smtp.googlemail.com with ESMTPSA id j17-v6sm10421564ede.1.2018.05.04.10.03.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 May 2018 10:03:30 -0700 (PDT) Subject: Re: [PATCH net-next v2 01/13] net: phy: sfp: make the i2c-bus property really optional To: Antoine Tenart , davem@davemloft.net, kishon@ti.com, linux@armlinux.org.uk, gregory.clement@bootlin.com, andrew@lunn.ch, jason@lakedaemon.net, sebastian.hesselbarth@gmail.com Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com, maxime.chevallier@bootlin.com, miquel.raynal@bootlin.com, nadavh@marvell.com, stefanc@marvell.com, ymarkman@marvell.com, mw@semihalf.com, linux-arm-kernel@lists.infradead.org References: <20180504135643.23466-1-antoine.tenart@bootlin.com> <20180504135643.23466-2-antoine.tenart@bootlin.com> From: Florian Fainelli Openpgp: preference=signencrypt Autocrypt: addr=f.fainelli@gmail.com; prefer-encrypt=mutual; keydata= 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 HGuUuzv+GKZ6nsysJw== Message-ID: Date: Fri, 4 May 2018 10:03:16 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180504135643.23466-2-antoine.tenart@bootlin.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/04/2018 06:56 AM, Antoine Tenart wrote: > The SFF,SFP documentation is clear about making all the DT properties, > with the exception of the compatible, optional. In practice this is not > the case and without an i2c-bus property provided the SFP code will > throw NULL pointer exceptions. > > This patch is an attempt to fix this. > > Signed-off-by: Antoine Tenart > --- > drivers/net/phy/sfp.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c > index 4ab6e9a50bbe..4686c443fc22 100644 > --- a/drivers/net/phy/sfp.c > +++ b/drivers/net/phy/sfp.c > @@ -298,11 +298,17 @@ static void sfp_set_state(struct sfp *sfp, unsigned int state) > > static int sfp_read(struct sfp *sfp, bool a2, u8 addr, void *buf, size_t len) > { > + if (!sfp->read) > + return -EOPNOTSUPP; -ENODEV would be closer to the intended meaning IMHO, those this could be argue that this is yet another color to paint the bikeshed with. > + > return sfp->read(sfp, a2, addr, buf, len); > } > > static int sfp_write(struct sfp *sfp, bool a2, u8 addr, void *buf, size_t len) > { > + if (!sfp->write) > + return -EOPNOTSUPP; > + > return sfp->write(sfp, a2, addr, buf, len); > } > > @@ -533,6 +539,8 @@ static int sfp_sm_mod_hpower(struct sfp *sfp) > return 0; > > err = sfp_read(sfp, true, SFP_EXT_STATUS, &val, sizeof(val)); > + if (err == -EOPNOTSUPP) > + goto err; > if (err != sizeof(val)) { > dev_err(sfp->dev, "Failed to read EEPROM: %d\n", err); > err = -EAGAIN; > @@ -542,6 +550,8 @@ static int sfp_sm_mod_hpower(struct sfp *sfp) > val |= BIT(0); > > err = sfp_write(sfp, true, SFP_EXT_STATUS, &val, sizeof(val)); > + if (err == -EOPNOTSUPP) > + goto err; > if (err != sizeof(val)) { > dev_err(sfp->dev, "Failed to write EEPROM: %d\n", err); > err = -EAGAIN; > @@ -565,6 +575,8 @@ static int sfp_sm_mod_probe(struct sfp *sfp) > int ret; > > ret = sfp_read(sfp, false, 0, &id, sizeof(id)); > + if (ret == -EOPNOTSUPP) > + return ret; Can you find a way such that only sfp_sm_mod_probe() needs to check whether the sfp read/write operations returned failure and then we just make sure the SFP state machine does not make any more progress? Having to check the sfp_read()/sfp_write() operations all over the place sounds error prone and won't scale in the future. -- Florian