From: Ameer Hamza <hidden> Date: 2021-12-02 22:37:50
Fix for divide by zero error reported by Coverity.
Addresses-Coverity: 1494557 ("Division or modulo by zero")
Signed-off-by: Ameer Hamza <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -863,7 +863,7 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)stmmac_config_sub_second_increment(priv,priv->ptpaddr,priv->plat->clk_ptp_rate,xmac,&sec_inc);-temp=div_u64(1000000000ULL,sec_inc);+temp=div_u64(1000000000ULL,(sec_inc>0)?sec_inc:1);/* Store sub second increment for later use */priv->sub_second_inc=sec_inc;
From: Jakub Kicinski <kuba@kernel.org> Date: 2021-12-04 01:37:14
On Fri, 3 Dec 2021 03:37:29 +0500 Ameer Hamza wrote:
Fix for divide by zero error reported by Coverity.
Addresses-Coverity: 1494557 ("Division or modulo by zero")
Signed-off-by: Ameer Hamza <redacted>
Please include justification that this issue can actually happen, Fixes
tag pointing to the commit which introduced the problem, and CC the
author and reviewers of that commit.
From: Ameer Hamza <hidden> Date: 2021-12-06 14:24:11
In stmmac_init_tstamp_counter() routine, there is a possiblity of division
by zero. If priv->plat->clk_ptp_rate becomes greater than 1 GHz,
config_sub_second_increment() subroutine may calculate sec_inc as zero
depending upon the PTP_TCR_TSCFUPDT register value, which will cause
divide by zero exception.
Fixes: a6da2bbb0005e ("net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls")
Addresses-Coverity: 1494557 ("Division or modulo by zero")
Signed-off-by: Ameer Hamza <redacted>
---
Changes in v2:
Added fix tag, bug justification, and commit author.
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -863,7 +863,7 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)stmmac_config_sub_second_increment(priv,priv->ptpaddr,priv->plat->clk_ptp_rate,xmac,&sec_inc);-temp=div_u64(1000000000ULL,sec_inc);+temp=div_u64(1000000000ULL,(sec_inc>0)?sec_inc:1);/* Store sub second increment for later use */priv->sub_second_inc=sec_inc;
From: Leon Romanovsky <leon@kernel.org> Date: 2021-12-07 08:31:51
On Mon, Dec 06, 2021 at 07:23:37PM +0500, Ameer Hamza wrote:
quoted hunk
In stmmac_init_tstamp_counter() routine, there is a possiblity of division
by zero. If priv->plat->clk_ptp_rate becomes greater than 1 GHz,
config_sub_second_increment() subroutine may calculate sec_inc as zero
depending upon the PTP_TCR_TSCFUPDT register value, which will cause
divide by zero exception.
Fixes: a6da2bbb0005e ("net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls")
Addresses-Coverity: 1494557 ("Division or modulo by zero")
Signed-off-by: Ameer Hamza <redacted>
---
Changes in v2:
Added fix tag, bug justification, and commit author.
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -855,7 +855,7 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)stmmac_config_sub_second_increment(priv,priv->ptpaddr,priv->plat->clk_ptp_rate,xmac,&sec_inc);-temp=div_u64(1000000000ULL,sec_inc);+temp=div_u64(1000000000ULL,max(sec_inc,1));/* Store sub second increment for later use */priv->sub_second_inc=sec_inc;
/* Store sub second increment for later use */
priv->sub_second_inc = sec_inc;
--
2.25.1