From: Andrew Lunn <andrew@lunn.ch>
To: "Michal Vokáč" <michal.vokac@ysoft.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Vivien Didelot <vivien.didelot@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [BUG] Unable to handle kernel NULL pointer dereference in phy_support_asym_pause
Date: Tue, 24 Sep 2019 14:31:26 +0200 [thread overview]
Message-ID: <20190924123126.GE14477@lunn.ch> (raw)
In-Reply-To: <573ffa6a-f29a-84d9-5895-b3d6cc389619@ysoft.com>
On Tue, Sep 24, 2019 at 01:27:24PM +0200, Michal Vokáč wrote:
> Hi,
>
> just tried booting latest next-20190920 on our imx6dl-yapp4-hydra platform
> with QCA8334 switch and got this:
>
> [ 7.424620] [<806840e0>] (phy_support_asym_pause) from [<80686724>] (qca8k_port_enable+0x40/0x48)
> [ 7.436911] [<806866e4>] (qca8k_port_enable) from [<80a74134>] (dsa_port_enable+0x3c/0x6c)
> [ 7.448629] r7:00000000 r6:e88a02cc r5:e812d090 r4:e812d090
> [ 7.457708] [<80a740f8>] (dsa_port_enable) from [<80a730bc>] (dsa_register_switch+0x798/0xacc)
> [ 7.469833] r5:e812d0cc r4:e812d090
Hi Michal
Please could you add a printk to verify it is the CPU port, and that
in qca8k_port_enable() phy is a NULL pointer.
I think the fix is going to look something like:
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 16f15c93a102..86c80a873e30 100644
--- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c
@@ -939,7 +939,8 @@ qca8k_port_enable(struct dsa_switch *ds, int port,
qca8k_port_set_status(priv, port, 1);
priv->port_sts[port].enabled = 1;
- phy_support_asym_pause(phy);
+ if (phy)
+ phy_support_asym_pause(phy);
return 0;
}
But i want to take a closer look at what priv->port_sts[port].enabled
= 1; does. Also, if there are any other port_enable() functions which
always assume a valid phy device.
Andrew
next prev parent reply other threads:[~2019-09-24 12:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-24 11:27 [BUG] Unable to handle kernel NULL pointer dereference in phy_support_asym_pause Michal Vokáč
2019-09-24 12:31 ` Andrew Lunn [this message]
2019-09-24 13:10 ` Michal Vokáč
2019-09-25 0:44 ` Andrew Lunn
2019-09-25 7:06 ` Michal Vokáč
2019-09-26 8:11 ` Michal Vokáč
2019-09-26 6:12 ` Heiner Kallweit
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=20190924123126.GE14477@lunn.ch \
--to=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=michal.vokac@ysoft.com \
--cc=netdev@vger.kernel.org \
--cc=vivien.didelot@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.