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-next>] [day] [month] [year] [list]
Message-ID: <20240716045818.1257906-1-rengarajan.s@microchip.com>
Date: Tue, 16 Jul 2024 10:28:18 +0530
From: Rengarajan S <rengarajan.s@...rochip.com>
To: <woojung.huh@...rochip.com>, <UNGLinuxDriver@...rochip.com>,
	<davem@...emloft.net>, <edumazet@...gle.com>, <kuba@...nel.org>,
	<pabeni@...hat.com>, <netdev@...r.kernel.org>, <linux-usb@...r.kernel.org>,
	<linux-kernel@...r.kernel.org>
CC: <rengarajan.s@...rochip.com>
Subject: [PATCH v1 net-next] lan78xx: Refactor interrupt handling and redundant messages

The MAC and PHY interrupt are not synchronized. When multiple phy
interrupt occur while the MAC interrupt is cleared, the phy handle
will not be called which causes the PHY interrupt to remain set
throughout. This is avoided by not clearing the MAC interrupt each
time. When the PHY interrupt is set, the MAC calls the PHY handle
and after processing the timestamp the PHY interrupt is cleared.
Also, avoided repetitive debug messages by replacing netdev_err
with netif_dbg.

Signed-off-by: Rengarajan S <rengarajan.s@...rochip.com>
---
 drivers/net/usb/lan78xx.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 62dbfff8dad4..5f4e167ceeb0 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1421,11 +1421,6 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
 	int ladv, radv, ret, link;
 	u32 buf;
 
-	/* clear LAN78xx interrupt status */
-	ret = lan78xx_write_reg(dev, INT_STS, INT_STS_PHY_INT_);
-	if (unlikely(ret < 0))
-		return ret;
-
 	mutex_lock(&phydev->lock);
 	phy_read_status(phydev);
 	link = phydev->link;
@@ -1518,7 +1513,7 @@ static void lan78xx_defer_kevent(struct lan78xx_net *dev, int work)
 {
 	set_bit(work, &dev->flags);
 	if (!schedule_delayed_work(&dev->wq, 0))
-		netdev_err(dev->net, "kevent %d may have been dropped\n", work);
+		netif_dbg(dev, intr, dev->net, "kevent %d may have been dropped\n", work);
 }
 
 static void lan78xx_status(struct lan78xx_net *dev, struct urb *urb)
-- 
2.25.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ