mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-14 06:32:11 +00:00
The patch adding temperature sensor support for r8169 has been removed upstream
and the functionality will be added to Realtek PHY instead:
1f691a1fc4
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 0de9999a7819acf74f6adeaa27be363cf72409ab)
51 lines
1.7 KiB
Diff
51 lines
1.7 KiB
Diff
From ac48430368c1a4f4e6c2fa92243b4b93fd25bee4 Mon Sep 17 00:00:00 2001
|
|
From: Heiner Kallweit <hkallweit1@gmail.com>
|
|
Date: Wed, 16 Oct 2024 22:05:57 +0200
|
|
Subject: [PATCH] r8169: don't take RTNL lock in rtl_task()
|
|
|
|
There's not really a benefit here in taking the RTNL lock. The task
|
|
handler does exception handling only, so we're in trouble anyway when
|
|
we come here, and there's no need to protect against e.g. a parallel
|
|
ethtool call.
|
|
A benefit of removing the RTNL lock here is that we now can
|
|
synchronously cancel the workqueue from a context holding the RTNL mutex.
|
|
|
|
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
|
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
|
|
---
|
|
drivers/net/ethernet/realtek/r8169_main.c | 8 ++------
|
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/net/ethernet/realtek/r8169_main.c
|
|
+++ b/drivers/net/ethernet/realtek/r8169_main.c
|
|
@@ -4801,10 +4801,8 @@ static void rtl_task(struct work_struct
|
|
container_of(work, struct rtl8169_private, wk.work);
|
|
int ret;
|
|
|
|
- rtnl_lock();
|
|
-
|
|
if (!test_bit(RTL_FLAG_TASK_ENABLED, tp->wk.flags))
|
|
- goto out_unlock;
|
|
+ return;
|
|
|
|
if (test_and_clear_bit(RTL_FLAG_TASK_TX_TIMEOUT, tp->wk.flags)) {
|
|
/* if chip isn't accessible, reset bus to revive it */
|
|
@@ -4813,7 +4811,7 @@ static void rtl_task(struct work_struct
|
|
if (ret < 0) {
|
|
netdev_err(tp->dev, "Can't reset secondary PCI bus, detach NIC\n");
|
|
netif_device_detach(tp->dev);
|
|
- goto out_unlock;
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
@@ -4832,8 +4830,6 @@ reset:
|
|
} else if (test_and_clear_bit(RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE, tp->wk.flags)) {
|
|
rtl_reset_work(tp);
|
|
}
|
|
-out_unlock:
|
|
- rtnl_unlock();
|
|
}
|
|
|
|
static int rtl8169_poll(struct napi_struct *napi, int budget)
|