lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20231215113124.GA6288@kernel.org>
Date: Fri, 15 Dec 2023 11:31:24 +0000
From: Simon Horman <horms@...nel.org>
To: Ioana Ciornei <ioana.ciornei@....com>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
	pabeni@...hat.com, netdev@...r.kernel.org
Subject: Re: [PATCH net-next v2 5/8] dpaa2-switch: do not clear any
 interrupts automatically

On Wed, Dec 13, 2023 at 02:14:08PM +0200, Ioana Ciornei wrote:
> The DPSW object has multiple event sources multiplexed over the same
> IRQ. The driver has the capability to configure only some of these
> events to trigger the IRQ.
> 
> The dpsw_get_irq_status() can clear events automatically based on the
> value stored in the 'status' variable passed to it. We don't want that
> to happen because we could get into a situation when we are clearing
> more events than we actually handled.
> Just resort to manually clearing the events that we handled.

Hi Ioana,

Continuing the theme of Jakub's review of v1,
I think it would be useful to state that
there is no user-visible effect of this change.
And, ideally, explain why that is so.

> Signed-off-by: Ioana Ciornei <ioana.ciornei@....com>
> ---
> Changes in v2:
> - add a bit more info in the commit message
> 
>  drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
> index e91ade7c7c93..d9906573f71f 100644
> --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
> +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c
> @@ -1509,7 +1509,7 @@ static irqreturn_t dpaa2_switch_irq0_handler_thread(int irq_num, void *arg)
>  	struct device *dev = (struct device *)arg;
>  	struct ethsw_core *ethsw = dev_get_drvdata(dev);
>  	struct ethsw_port_priv *port_priv;
> -	u32 status = ~0;
> +	u32 status = 0;
>  	int err, if_id;
>  	bool had_mac;

As status is no longer used in the 'out' unwind path,
I don't think the initialisation above is needed any more.

	...
	int err, if_id;
	bool had_mac;
	u32 status;

>  
> @@ -1539,12 +1539,12 @@ static irqreturn_t dpaa2_switch_irq0_handler_thread(int irq_num, void *arg)
>  			dpaa2_switch_port_connect_mac(port_priv);
>  	}
>  
> -out:
>  	err = dpsw_clear_irq_status(ethsw->mc_io, 0, ethsw->dpsw_handle,
>  				    DPSW_IRQ_INDEX_IF, status);
>  	if (err)
>  		dev_err(dev, "Can't clear irq status (err %d)\n", err);
>  
> +out:
>  	return IRQ_HANDLED;
>  }
>  
> -- 
> 2.34.1
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ