Path: csiph.com!feeder.erje.net!2.eu.feeder.erje.net!news.roellig-ltd.de!open-news-network.org!news.albasani.net!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod From: Florian Fainelli Newsgroups: linux.kernel Subject: Re: [PATCH net-next v2 08/10] net: dsa: Add support for platform data Date: Fri, 13 Jan 2017 23:40:01 +0100 Message-ID: References: X-Original-To: Andrew Lunn Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=hJlJI6pxS4dp2VpLd0aKrrwsMaqEYYSvVQ0rLB9mASY=; b=I1vh/PQObXHl2yYopAlXGB/wA5vzSKm75p+vtGu4PIbUg5N21wI17X//2NJNbORaVG GLTe4PtsScrvPIaWIGqZD8eSPlXQ+rhTzYmTYAbRBVZZKc0gynV7AC9DfXyGv4v5ECYN ONTFD8jTShQPHEQn3PGAszNxpy+VM396Hs6Y3XAqZ3pdeIfKaySEL+RAcaGTR45pYEpz W+tdJSgbaPCyz92xSjXEL7MWAFWt2q0VbB9mGmw7apF0bDQcGbJ3ZUW8PXcUTRLxAiFL syZbBozgaBYf5L63IvhTzF40ggVAzMPYaCAd2hRkPL329azOpmq+Cjtph2HO2HYHD19Z t6XA== X-Google-Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=hJlJI6pxS4dp2VpLd0aKrrwsMaqEYYSvVQ0rLB9mASY=; b=I6MX+yH3/y/UNmADYuoSoDrAOlc44R7k27+b+F/BU9/A71sgjbNmg4Ia5vdFEbPoR7 olmB9APD1szBgrU3lioG+YB2J7+r6ymxn2UNsh2P8nToirD23jltQnh1T4WvSip72Cf5 jG7ikbpQiK9aW8ZU6zLe0vdgX9lqckdzDVTANEPGVV0JgMlZ80MhavM8KzIC/d5p7pm8 8T49/V9KyqdJk8VQRSbyH5Iw7f69fxbNxg8Nhae/tJvvDkbrM+dsqI3h4vILIiS/IsXY 4NcQoNzIlLzC/58mk0CFvR2GNzTNDhhsqRuOp5dVHWne6IdqPgWK/eLYg9hQJZtDT7EQ Wz8A== X-Gm-Message-State: AIkVDXLqwyGCDLcG/0LvOq5icc3xHxp0Hubyvb4H1hjI1YTd+haP1J/xrsC+mM2vi0JKeA== X-Received: by 10.98.157.83 with SMTP id i80mr25219830pfd.177.1484347156109; Fri, 13 Jan 2017 14:39:16 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: robomod@news.nic.it List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Approved: robomod@news.nic.it Lines: 63 Organization: linux.* mail to news gateway X-Original-Cc: netdev@vger.kernel.org, Jason Cooper , Sebastian Hesselbarth , Gregory Clement , Russell King , Vivien Didelot , "David S. Miller" , "moderated list:ARM SUB-ARCHITECTURES" , open list , gregkh@linuxfoundation.org X-Original-Date: Fri, 13 Jan 2017 14:39:13 -0800 X-Original-Message-ID: <80ff1fb8-b59e-995c-65c1-cf2460352a70@gmail.com> X-Original-References: <20170112034121.27697-1-f.fainelli@gmail.com> <20170112034121.27697-9-f.fainelli@gmail.com> <20170113141110.GI10203@lunn.ch> X-Original-Sender: linux-kernel-owner@vger.kernel.org Xref: csiph.com linux.kernel:1558778 On 01/13/2017 06:11 AM, Andrew Lunn wrote: >> static int _dsa_register_switch(struct dsa_switch *ds, struct device *dev) >> { >> + struct dsa_chip_data *pdata = dev->platform_data; >> struct device_node *np = dev->of_node; >> struct dsa_switch_tree *dst; >> struct device_node *ports; >> u32 tree, index; >> int i, err; >> >> - err = dsa_parse_member_dn(np, &tree, &index); >> - if (err) >> - return err; >> + if (np) { >> + err = dsa_parse_member_dn(np, &tree, &index); >> + if (err) >> + return err; >> >> - ports = dsa_get_ports(ds, np); >> - if (IS_ERR(ports)) >> - return PTR_ERR(ports); >> + ports = dsa_get_ports(ds, np); >> + if (IS_ERR(ports)) >> + return PTR_ERR(ports); >> >> - err = dsa_parse_ports_dn(ports, ds); >> - if (err) >> - return err; >> + err = dsa_parse_ports_dn(ports, ds); >> + if (err) >> + return err; >> + } else { >> + err = dsa_parse_member(pdata, &tree, &index); > Hello Andrew, > Hi Florian > > Maybe it is hiding, but i don't see anywhere you check that pdata != > NULL. You are right, there is not such a check, it should probably be added early on. > > At least for x86 platforms, i don't expect we are booting using > platform data like ARM systems used to do. I think it is more likely a > glue module will be loaded. It looks up the MDIO bus and appends a > platform data to an MDIO device. The switch driver then needs to load > and use the platform data. But if things happen in a different order, > it could be the switch driver probes before the glue driver, meaning > pdata is NULL. That's very valid, I will fix this, thanks! > > Do we even want to return -EPROBE_DEFERED? I was trying to exercise that code path a little bit, but could not quite make sense of what I was seeing, let me try again with more tracing. -- Florian