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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 14 Nov 2020 06:38:34 +0000
From:   "Ardelean, Alexandru" <alexandru.Ardelean@...log.com>
To:     Ioana Ciornei <ciorneiioana@...il.com>,
        Andrew Lunn <andrew@...n.ch>,
        Heiner Kallweit <hkallweit1@...il.com>,
        Russell King <linux@...linux.org.uk>,
        Florian Fainelli <f.fainelli@...il.com>,
        Jakub Kicinski <kuba@...nel.org>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC:     Ioana Ciornei <ioana.ciornei@....com>
Subject: RE: [PATCH RESEND net-next 18/18] net: phy: adin: remove the use of
 the .ack_interrupt()



> -----Original Message-----
> From: Ioana Ciornei <ciorneiioana@...il.com>
> Sent: Friday, November 13, 2020 6:52 PM
> To: Andrew Lunn <andrew@...n.ch>; Heiner Kallweit <hkallweit1@...il.com>;
> Russell King <linux@...linux.org.uk>; Florian Fainelli <f.fainelli@...il.com>;
> Jakub Kicinski <kuba@...nel.org>; netdev@...r.kernel.org; linux-
> kernel@...r.kernel.org
> Cc: Ioana Ciornei <ioana.ciornei@....com>; Ardelean, Alexandru
> <alexandru.Ardelean@...log.com>
> Subject: [PATCH RESEND net-next 18/18] net: phy: adin: remove the use of the
> .ack_interrupt()
> 
> [External]
> 
> From: Ioana Ciornei <ioana.ciornei@....com>
> 
> In preparation of removing the .ack_interrupt() callback, we must replace its
> occurrences (aka phy_clear_interrupt), from the 2 places where it is called from
> (phy_enable_interrupts and phy_disable_interrupts), with equivalent
> functionality.
> 
> This means that clearing interrupts now becomes something that the PHY driver
> is responsible of doing, before enabling interrupts and after clearing them. Make
> this driver follow the new contract.
> 

Acked-by: Alexandru Ardelean <alexandru.ardelean@...log.com>

> Cc: Alexandru Ardelean <alexandru.ardelean@...log.com>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@....com>
> ---
>  drivers/net/phy/adin.c | 25 ++++++++++++++++++-------
>  1 file changed, 18 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/phy/adin.c b/drivers/net/phy/adin.c index
> ba24434b867d..55a0b91816e2 100644
> --- a/drivers/net/phy/adin.c
> +++ b/drivers/net/phy/adin.c
> @@ -471,12 +471,25 @@ static int adin_phy_ack_intr(struct phy_device
> *phydev)
> 
>  static int adin_phy_config_intr(struct phy_device *phydev)  {
> -	if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
> -		return phy_set_bits(phydev, ADIN1300_INT_MASK_REG,
> -				    ADIN1300_INT_MASK_EN);
> +	int err;
> +
> +	if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
> +		err = adin_phy_ack_intr(phydev);
> +		if (err)
> +			return err;
> +
> +		err = phy_set_bits(phydev, ADIN1300_INT_MASK_REG,
> +				   ADIN1300_INT_MASK_EN);
> +	} else {
> +		err = phy_clear_bits(phydev, ADIN1300_INT_MASK_REG,
> +				     ADIN1300_INT_MASK_EN);
> +		if (err)
> +			return err;
> +
> +		err = adin_phy_ack_intr(phydev);
> +	}
> 
> -	return phy_clear_bits(phydev, ADIN1300_INT_MASK_REG,
> -			      ADIN1300_INT_MASK_EN);
> +	return err;
>  }
> 
>  static irqreturn_t adin_phy_handle_interrupt(struct phy_device *phydev) @@ -
> 895,7 +908,6 @@ static struct phy_driver adin_driver[] = {
>  		.read_status	= adin_read_status,
>  		.get_tunable	= adin_get_tunable,
>  		.set_tunable	= adin_set_tunable,
> -		.ack_interrupt	= adin_phy_ack_intr,
>  		.config_intr	= adin_phy_config_intr,
>  		.handle_interrupt = adin_phy_handle_interrupt,
>  		.get_sset_count	= adin_get_sset_count,
> @@ -919,7 +931,6 @@ static struct phy_driver adin_driver[] = {
>  		.read_status	= adin_read_status,
>  		.get_tunable	= adin_get_tunable,
>  		.set_tunable	= adin_set_tunable,
> -		.ack_interrupt	= adin_phy_ack_intr,
>  		.config_intr	= adin_phy_config_intr,
>  		.handle_interrupt = adin_phy_handle_interrupt,
>  		.get_sset_count	= adin_get_sset_count,
> --
> 2.28.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ