From: Guenter Roeck <linux@roeck-us.net>
To: Tony Lindgren <tony@atomide.com>
Cc: Steve Glendinning <steve.glendinning@shawell.net>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Jeremy Linton <jeremy.linton@arm.com>,
linux-omap@vger.kernel.org
Subject: Re: [PATCH -next] smsc911x: Fix crash seen if neither ACPI nor OF is configured or used
Date: Wed, 26 Aug 2015 10:36:57 -0700 [thread overview]
Message-ID: <55DDF939.9050209@roeck-us.net> (raw)
In-Reply-To: <20150826170410.GP4215@atomide.com>
Hi Tony,
On 08/26/2015 10:04 AM, Tony Lindgren wrote:
> Hi,
>
> * Guenter Roeck <linux@roeck-us.net> [150817 13:48]:
>> Commit 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT") makes
>> the call to smsc911x_probe_config() unconditional, and no longer fails if
>> there is no device node. device_get_phy_mode() is called unconditionally,
>> and if there is no phy node configured returns an error code. This error
>> code is assigned to phy_interface, and interpreted elsewhere in the code
>> as valid phy mode. This in turn causes qemu to crash when running a
>> variant of realview_pb_defconfig.
>>
>> qemu: hardware error: lan9118_read: Bad reg 0x86
>>
>> Fixes: 0b50dc4fc971 ("Convert smsc911x to use ACPI as well as DT")
>> Cc: Jeremy Linton <jeremy.linton@arm.com>
>> Cc Graeme Gregory <graeme.gregory@linaro.org>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>> ---
>> drivers/net/ethernet/smsc/smsc911x.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
>> index 0f21aa3bb537..34f97684506b 100644
>> --- a/drivers/net/ethernet/smsc/smsc911x.c
>> +++ b/drivers/net/ethernet/smsc/smsc911x.c
>> @@ -2367,12 +2367,17 @@ static const struct smsc911x_ops shifted_smsc911x_ops = {
>> static int smsc911x_probe_config(struct smsc911x_platform_config *config,
>> struct device *dev)
>> {
>> + int phy_interface;
>> u32 width = 0;
>>
>> if (!dev)
>> return -ENODEV;
>>
>> - config->phy_interface = device_get_phy_mode(dev);
>> + phy_interface = device_get_phy_mode(dev);
>> + if (phy_interface < 0)
>> + return phy_interface;
>> +
>> + config->phy_interface = phy_interface;
>>
>> device_get_mac_address(dev, config->mac, ETH_ALEN);
>
> Looks like this change makes at least omap boards using smsc911x
> fail with -22 for me in Linux next.
>
What do you see if you revert my patch ? It should assign -22, or its
unsigned representation, to phy_interface, which isn't such a good idea
either.
> Do any of the the device tree configured smsc911x devices actually
> have a phy configured?
>
Good question, and beats me. Looking into the original code,
it didn't check for an error return from of_get_phy_mode() either,
and thus _would_ dutifully assign the error code to phy_interface.
Wonder how was this supposed to work to start with.
I'll do some debugging and try to find out what exactly is going on.
Guenter
next prev parent reply other threads:[~2015-08-26 17:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-17 20:45 [PATCH -next] smsc911x: Fix crash seen if neither ACPI nor OF is configured or used Guenter Roeck
2015-08-17 21:06 ` David Miller
2015-08-17 21:19 ` Jeremy Linton
2015-08-17 22:14 ` Guenter Roeck
2015-08-17 22:35 ` Jeremy Linton
2015-08-26 17:04 ` Tony Lindgren
2015-08-26 17:31 ` Jeremy Linton
2015-08-26 17:48 ` Tony Lindgren
2015-08-26 17:36 ` Guenter Roeck [this message]
2015-08-26 17:57 ` Tony Lindgren
2015-08-26 18:34 ` Guenter Roeck
2015-08-26 20:16 ` Tony Lindgren
2015-08-26 20:55 ` Guenter Roeck
2015-08-26 21:40 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55DDF939.9050209@roeck-us.net \
--to=linux@roeck-us.net \
--cc=jeremy.linton@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=steve.glendinning@shawell.net \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox