* [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR
@ 2022-07-19 12:00 Divya Koppera
2022-07-19 13:56 ` Richard Cochran
0 siblings, 1 reply; 4+ messages in thread
From: Divya Koppera @ 2022-07-19 12:00 UTC (permalink / raw)
To: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni, netdev,
linux-kernel, richardcochran
Cc: UNGLinuxDriver, Madhuri.Sripada
Handle the NULL pointer case
Fixes New smatch warnings:
drivers/net/phy/micrel.c:2613 lan8814_ptp_probe_once() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +2613 drivers/net/phy/micrel.c
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: ece19502834d ("net: phy: micrel: 1588 support for LAN8814 phy")
Signed-off-by: Divya Koppera <Divya.Koppera@microchip.com>
---
v1 -> v2:
- Handled NULL pointer case
- Changed subject line with net-next to net
---
drivers/net/phy/micrel.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index e78d0bf69bc3..6be6ee156f40 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -2812,12 +2812,16 @@ static int lan8814_ptp_probe_once(struct phy_device *phydev)
shared->ptp_clock = ptp_clock_register(&shared->ptp_clock_info,
&phydev->mdio.dev);
- if (IS_ERR_OR_NULL(shared->ptp_clock)) {
+ if (IS_ERR(shared->ptp_clock)) {
phydev_err(phydev, "ptp_clock_register failed %lu\n",
PTR_ERR(shared->ptp_clock));
return -EINVAL;
}
+ /* Check if PHC support is missing at the configuration level */
+ if (!shared->ptp_clock)
+ return 0;
+
phydev_dbg(phydev, "successfully registered ptp clock\n");
shared->phydev = phydev;
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR
2022-07-19 12:00 [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR Divya Koppera
@ 2022-07-19 13:56 ` Richard Cochran
2022-07-20 4:32 ` Divya.Koppera
0 siblings, 1 reply; 4+ messages in thread
From: Richard Cochran @ 2022-07-19 13:56 UTC (permalink / raw)
To: Divya Koppera
Cc: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni, netdev,
linux-kernel, UNGLinuxDriver, Madhuri.Sripada
On Tue, Jul 19, 2022 at 05:30:52PM +0530, Divya Koppera wrote:
> Handle the NULL pointer case
>
> Fixes New smatch warnings:
> drivers/net/phy/micrel.c:2613 lan8814_ptp_probe_once() warn: passing zero to 'PTR_ERR'
>
> vim +/PTR_ERR +2613 drivers/net/phy/micrel.c
>
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Fixes: ece19502834d ("net: phy: micrel: 1588 support for LAN8814 phy")
> Signed-off-by: Divya Koppera <Divya.Koppera@microchip.com>
> ---
> v1 -> v2:
> - Handled NULL pointer case
> - Changed subject line with net-next to net
This is not a genuine bug fix, and so it should target next-next.
> ---
> drivers/net/phy/micrel.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
> index e78d0bf69bc3..6be6ee156f40 100644
> --- a/drivers/net/phy/micrel.c
> +++ b/drivers/net/phy/micrel.c
> @@ -2812,12 +2812,16 @@ static int lan8814_ptp_probe_once(struct phy_device *phydev)
>
> shared->ptp_clock = ptp_clock_register(&shared->ptp_clock_info,
> &phydev->mdio.dev);
> - if (IS_ERR_OR_NULL(shared->ptp_clock)) {
> + if (IS_ERR(shared->ptp_clock)) {
> phydev_err(phydev, "ptp_clock_register failed %lu\n",
> PTR_ERR(shared->ptp_clock));
> return -EINVAL;
> }
>
> + /* Check if PHC support is missing at the configuration level */
> + if (!shared->ptp_clock)
> + return 0;
This is cause a NULL pointer de-reference in lan8814_ts_info()
when it calls
info->phc_index = ptp_clock_index(shared->ptp_clock);
> +
> phydev_dbg(phydev, "successfully registered ptp clock\n");
>
> shared->phydev = phydev;
> --
> 2.17.1
>
Thanks,
Richard
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR
2022-07-19 13:56 ` Richard Cochran
@ 2022-07-20 4:32 ` Divya.Koppera
2022-07-21 14:16 ` Richard Cochran
0 siblings, 1 reply; 4+ messages in thread
From: Divya.Koppera @ 2022-07-20 4:32 UTC (permalink / raw)
To: richardcochran
Cc: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni, netdev,
linux-kernel, UNGLinuxDriver, Madhuri.Sripada
Hi Richard,
> -----Original Message-----
> From: Richard Cochran <richardcochran@gmail.com>
> Sent: Tuesday, July 19, 2022 7:26 PM
> To: Divya Koppera - I30481 <Divya.Koppera@microchip.com>
> Cc: andrew@lunn.ch; hkallweit1@gmail.com; linux@armlinux.org.uk;
> davem@davemloft.net; edumazet@google.com; kuba@kernel.org;
> pabeni@redhat.com; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; UNGLinuxDriver
> <UNGLinuxDriver@microchip.com>; Madhuri Sripada - I34878
> <Madhuri.Sripada@microchip.com>
> Subject: Re: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to
> PTR_ERR
>
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
>
> On Tue, Jul 19, 2022 at 05:30:52PM +0530, Divya Koppera wrote:
> > Handle the NULL pointer case
> >
> > Fixes New smatch warnings:
> > drivers/net/phy/micrel.c:2613 lan8814_ptp_probe_once() warn: passing
> zero to 'PTR_ERR'
> >
> > vim +/PTR_ERR +2613 drivers/net/phy/micrel.c
> >
> > Reported-by: kernel test robot <lkp@intel.com>
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > Fixes: ece19502834d ("net: phy: micrel: 1588 support for LAN8814 phy")
> > Signed-off-by: Divya Koppera <Divya.Koppera@microchip.com>
> > ---
> > v1 -> v2:
> > - Handled NULL pointer case
> > - Changed subject line with net-next to net
>
> This is not a genuine bug fix, and so it should target next-next.
>
> > ---
> > drivers/net/phy/micrel.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index
> > e78d0bf69bc3..6be6ee156f40 100644
> > --- a/drivers/net/phy/micrel.c
> > +++ b/drivers/net/phy/micrel.c
> > @@ -2812,12 +2812,16 @@ static int lan8814_ptp_probe_once(struct
> > phy_device *phydev)
> >
> > shared->ptp_clock = ptp_clock_register(&shared->ptp_clock_info,
> > &phydev->mdio.dev);
> > - if (IS_ERR_OR_NULL(shared->ptp_clock)) {
> > + if (IS_ERR(shared->ptp_clock)) {
> > phydev_err(phydev, "ptp_clock_register failed %lu\n",
> > PTR_ERR(shared->ptp_clock));
> > return -EINVAL;
> > }
> >
> > + /* Check if PHC support is missing at the configuration level */
> > + if (!shared->ptp_clock)
> > + return 0;
>
> This is cause a NULL pointer de-reference in lan8814_ts_info() when it calls
>
> info->phc_index = ptp_clock_index(shared->ptp_clock);
>
NULL case handling seems to be redundant here because at starting of the function itself there is check for config support of ptp as below
static int lan8814_ptp_probe_once(struct phy_device *phydev)
{
struct lan8814_shared_priv *shared = phydev->shared->priv;
if (!IS_ENABLED(CONFIG_PTP_1588_CLOCK) ||
!IS_ENABLED(CONFIG_NETWORK_PHY_TIMESTAMPING))
return 0;
So chances of getting shared-> ptp_clock to be NULL is 0.
Let me know your thoughts. I'll remove this check in next revision if it is redundant.
> > +
> > phydev_dbg(phydev, "successfully registered ptp clock\n");
> >
> > shared->phydev = phydev;
> > --
> > 2.17.1
> >
>
> Thanks,
> Richard
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR
2022-07-20 4:32 ` Divya.Koppera
@ 2022-07-21 14:16 ` Richard Cochran
0 siblings, 0 replies; 4+ messages in thread
From: Richard Cochran @ 2022-07-21 14:16 UTC (permalink / raw)
To: Divya.Koppera
Cc: andrew, hkallweit1, linux, davem, edumazet, kuba, pabeni, netdev,
linux-kernel, UNGLinuxDriver, Madhuri.Sripada
On Wed, Jul 20, 2022 at 04:32:55AM +0000, Divya.Koppera@microchip.com wrote:
> static int lan8814_ptp_probe_once(struct phy_device *phydev)
> {
> struct lan8814_shared_priv *shared = phydev->shared->priv;
>
> if (!IS_ENABLED(CONFIG_PTP_1588_CLOCK) ||
> !IS_ENABLED(CONFIG_NETWORK_PHY_TIMESTAMPING))
> return 0;
It is weird to use macros here, but not before calling ptp_clock_register.
Make it consistent by checking shared->ptp_clock instead.
That is also better form.
Thanks,
Richard
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-21 14:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-19 12:00 [PATCH v2 net] net: phy: micrel: Fix warn: passing zero to PTR_ERR Divya Koppera
2022-07-19 13:56 ` Richard Cochran
2022-07-20 4:32 ` Divya.Koppera
2022-07-21 14:16 ` Richard Cochran
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).