From 071106ecf68c401173c58808b1cf5f68cc50d390 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 05 Jan 2024 08:39:27 +0000
Subject: [PATCH] change wifi driver to cypress
---
kernel/fs/fscache/object.c | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/kernel/fs/fscache/object.c b/kernel/fs/fscache/object.c
index fb9794d..cb2146e 100644
--- a/kernel/fs/fscache/object.c
+++ b/kernel/fs/fscache/object.c
@@ -807,8 +807,6 @@
}
EXPORT_SYMBOL(fscache_object_destroy);
-static DECLARE_WAIT_QUEUE_HEAD(fscache_object_cong_wait);
-
/*
* enqueue an object for metadata-type processing
*/
@@ -817,12 +815,16 @@
_enter("{OBJ%x}", object->debug_id);
if (fscache_get_object(object, fscache_obj_get_queue) >= 0) {
+ wait_queue_head_t *cong_wq =
+ &get_cpu_var(fscache_object_cong_wait);
if (queue_work(fscache_object_wq, &object->work)) {
if (fscache_object_congested())
- wake_up(&fscache_object_cong_wait);
+ wake_up(cong_wq);
} else
fscache_put_object(object, fscache_obj_put_queue);
+
+ put_cpu_var(fscache_object_cong_wait);
}
}
@@ -840,15 +842,16 @@
*/
bool fscache_object_sleep_till_congested(signed long *timeoutp)
{
+ wait_queue_head_t *cong_wq = this_cpu_ptr(&fscache_object_cong_wait);
DEFINE_WAIT(wait);
if (fscache_object_congested())
return true;
- add_wait_queue_exclusive(&fscache_object_cong_wait, &wait);
+ add_wait_queue_exclusive(cong_wq, &wait);
if (!fscache_object_congested())
*timeoutp = schedule_timeout(*timeoutp);
- finish_wait(&fscache_object_cong_wait, &wait);
+ finish_wait(cong_wq, &wait);
return fscache_object_congested();
}
--
Gitblit v1.6.2