--- zzzz-none-000/linux-4.19.183/kernel/locking/semaphore.c 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/kernel/locking/semaphore.c 2023-06-28 08:54:21.000000000 +0000 @@ -33,6 +33,9 @@ #include #include #include +#if defined(CONFIG_AVM_FASTIRQ) +#include +#endif/*--- #if defined(CONFIG_AVM_FASTIRQ) ---*/ static noinline void __down(struct semaphore *sem); static noinline int __down_interruptible(struct semaphore *sem); @@ -261,3 +264,14 @@ waiter->up = true; wake_up_process(waiter->task); } + +struct task_struct *__rte_sem_partial_wake(struct semaphore *sem) +{ + struct semaphore_waiter *waiter = list_first_entry(&sem->wait_list, + struct semaphore_waiter, list); + + list_del(&waiter->list); + waiter->up = true; + + return waiter->task; +}