diff --git a/repos/dde_linux/src/app/wireguard/spec/arm_v8/generated_dummies.c b/repos/dde_linux/src/app/wireguard/spec/arm_v8/generated_dummies.c index 6e383c8642..89339d4497 100644 --- a/repos/dde_linux/src/app/wireguard/spec/arm_v8/generated_dummies.c +++ b/repos/dde_linux/src/app/wireguard/spec/arm_v8/generated_dummies.c @@ -640,12 +640,3 @@ void update_group_capacity(struct sched_domain * sd,int cpu) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/app/wireguard/spec/x86_64/generated_dummies.c b/repos/dde_linux/src/app/wireguard/spec/x86_64/generated_dummies.c index 0863fddd61..c46f84db26 100644 --- a/repos/dde_linux/src/app/wireguard/spec/x86_64/generated_dummies.c +++ b/repos/dde_linux/src/app/wireguard/spec/x86_64/generated_dummies.c @@ -558,12 +558,3 @@ void update_group_capacity(struct sched_domain * sd,int cpu) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/driver/usb_hid/spec/arm_v6/generated_dummies.c b/repos/dde_linux/src/driver/usb_hid/spec/arm_v6/generated_dummies.c index 2549af24fb..deaa642ff6 100644 --- a/repos/dde_linux/src/driver/usb_hid/spec/arm_v6/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_hid/spec/arm_v6/generated_dummies.c @@ -687,12 +687,3 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/driver/usb_hid/spec/arm_v7/generated_dummies.c b/repos/dde_linux/src/driver/usb_hid/spec/arm_v7/generated_dummies.c index 1f36cf2e71..9b1c892f1c 100644 --- a/repos/dde_linux/src/driver/usb_hid/spec/arm_v7/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_hid/spec/arm_v7/generated_dummies.c @@ -540,14 +540,6 @@ const u8 uuid_index[16] = {}; atomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void wakeme_after_rcu(struct rcu_head * head) diff --git a/repos/dde_linux/src/driver/usb_hid/spec/arm_v8/generated_dummies.c b/repos/dde_linux/src/driver/usb_hid/spec/arm_v8/generated_dummies.c index eaab0650b0..267a27b41a 100644 --- a/repos/dde_linux/src/driver/usb_hid/spec/arm_v8/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_hid/spec/arm_v8/generated_dummies.c @@ -642,12 +642,3 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/driver/usb_hid/spec/x86_32/generated_dummies.c b/repos/dde_linux/src/driver/usb_hid/spec/x86_32/generated_dummies.c index 799c9f7143..cc77dded6e 100644 --- a/repos/dde_linux/src/driver/usb_hid/spec/x86_32/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_hid/spec/x86_32/generated_dummies.c @@ -559,12 +559,3 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/driver/usb_hid/spec/x86_64/generated_dummies.c b/repos/dde_linux/src/driver/usb_hid/spec/x86_64/generated_dummies.c index 9a5473ee0b..6830422673 100644 --- a/repos/dde_linux/src/driver/usb_hid/spec/x86_64/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_hid/spec/x86_64/generated_dummies.c @@ -522,12 +522,3 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/dde_linux/src/driver/usb_net/spec/arm_v6/generated_dummies.c b/repos/dde_linux/src/driver/usb_net/spec/arm_v6/generated_dummies.c index abd14855e0..9a61416694 100644 --- a/repos/dde_linux/src/driver/usb_net/spec/arm_v6/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_net/spec/arm_v6/generated_dummies.c @@ -1063,14 +1063,6 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) const u8 uuid_index[16] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/dde_linux/src/driver/usb_net/spec/arm_v7/generated_dummies.c b/repos/dde_linux/src/driver/usb_net/spec/arm_v7/generated_dummies.c index 0fddccab04..c54b89dd26 100644 --- a/repos/dde_linux/src/driver/usb_net/spec/arm_v7/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_net/spec/arm_v7/generated_dummies.c @@ -811,14 +811,6 @@ const u8 uuid_index[16] = {}; atomic_long_t vm_node_stat[NR_VM_NODE_STAT_ITEMS] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void wakeme_after_rcu(struct rcu_head * head) diff --git a/repos/dde_linux/src/driver/usb_net/spec/arm_v8/generated_dummies.c b/repos/dde_linux/src/driver/usb_net/spec/arm_v8/generated_dummies.c index c9b056010b..2ba72baabb 100644 --- a/repos/dde_linux/src/driver/usb_net/spec/arm_v8/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_net/spec/arm_v8/generated_dummies.c @@ -947,14 +947,6 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) const u8 uuid_index[16] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/dde_linux/src/driver/usb_net/spec/x86_32/generated_dummies.c b/repos/dde_linux/src/driver/usb_net/spec/x86_32/generated_dummies.c index 0874a53ebb..23801bc0f2 100644 --- a/repos/dde_linux/src/driver/usb_net/spec/x86_32/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_net/spec/x86_32/generated_dummies.c @@ -874,14 +874,6 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) const u8 uuid_index[16] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/dde_linux/src/driver/usb_net/spec/x86_64/generated_dummies.c b/repos/dde_linux/src/driver/usb_net/spec/x86_64/generated_dummies.c index e1616aad65..ad93e230b5 100644 --- a/repos/dde_linux/src/driver/usb_net/spec/x86_64/generated_dummies.c +++ b/repos/dde_linux/src/driver/usb_net/spec/x86_64/generated_dummies.c @@ -840,14 +840,6 @@ int usb_update_wireless_status_attr(struct usb_interface * intf) const u8 uuid_index[16] = {}; -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/sched/core.c b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/sched/core.c index 7be9d33da1..c2b3622886 100644 --- a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/sched/core.c +++ b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/sched/core.c @@ -260,6 +260,19 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task) } +/* + * CAUTION: This check is not an actual requirement. It should be removed when + * all other *_linux have been updated to 6.6 or when this function has been + * removed from their respective generated_dummies.c + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,6,0) +void wake_q_add_safe(struct wake_q_head *head, struct task_struct *task) +{ + if (!__wake_q_add(head, task)) + put_task_struct(task); +} +#endif + void wake_up_q(struct wake_q_head *head) { struct wake_q_node *node = head->first; diff --git a/repos/dde_linux/src/lib/lxip/spec/arm_v6/generated_dummies.c b/repos/dde_linux/src/lib/lxip/spec/arm_v6/generated_dummies.c index 2a48e47d42..223fa59ec1 100644 --- a/repos/dde_linux/src/lib/lxip/spec/arm_v6/generated_dummies.c +++ b/repos/dde_linux/src/lib/lxip/spec/arm_v6/generated_dummies.c @@ -839,14 +839,6 @@ void __init wait_for_init_devices_probe(void) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void __sched yield(void) diff --git a/repos/dde_linux/src/lib/lxip/spec/arm_v7/generated_dummies.c b/repos/dde_linux/src/lib/lxip/spec/arm_v7/generated_dummies.c index 6ea1c8f571..3d46652039 100644 --- a/repos/dde_linux/src/lib/lxip/spec/arm_v7/generated_dummies.c +++ b/repos/dde_linux/src/lib/lxip/spec/arm_v7/generated_dummies.c @@ -666,14 +666,6 @@ void __init wait_for_init_devices_probe(void) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void __sched yield(void) diff --git a/repos/dde_linux/src/lib/lxip/spec/arm_v8/generated_dummies.c b/repos/dde_linux/src/lib/lxip/spec/arm_v8/generated_dummies.c index f8ea4d631f..65033c6d25 100644 --- a/repos/dde_linux/src/lib/lxip/spec/arm_v8/generated_dummies.c +++ b/repos/dde_linux/src/lib/lxip/spec/arm_v8/generated_dummies.c @@ -842,14 +842,6 @@ void __init wait_for_init_devices_probe(void) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void __sched yield(void) diff --git a/repos/dde_linux/src/lib/lxip/spec/x86_32/generated_dummies.c b/repos/dde_linux/src/lib/lxip/spec/x86_32/generated_dummies.c index 27e65ae280..f5408a3066 100644 --- a/repos/dde_linux/src/lib/lxip/spec/x86_32/generated_dummies.c +++ b/repos/dde_linux/src/lib/lxip/spec/x86_32/generated_dummies.c @@ -786,14 +786,6 @@ void __init wait_for_init_devices_probe(void) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void __sched yield(void) diff --git a/repos/dde_linux/src/lib/lxip/spec/x86_64/generated_dummies.c b/repos/dde_linux/src/lib/lxip/spec/x86_64/generated_dummies.c index 44f72ecaee..fec5eee0be 100644 --- a/repos/dde_linux/src/lib/lxip/spec/x86_64/generated_dummies.c +++ b/repos/dde_linux/src/lib/lxip/spec/x86_64/generated_dummies.c @@ -791,14 +791,6 @@ void __init wait_for_init_devices_probe(void) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include void __sched yield(void) diff --git a/repos/pc/src/driver/framebuffer/intel/pc/generated_dummies.c b/repos/pc/src/driver/framebuffer/intel/pc/generated_dummies.c index 28625f33d3..8277515973 100644 --- a/repos/pc/src/driver/framebuffer/intel/pc/generated_dummies.c +++ b/repos/pc/src/driver/framebuffer/intel/pc/generated_dummies.c @@ -2108,12 +2108,3 @@ void vunmap(const void * addr) { lx_emul_trace_and_stop(__func__); } - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/pc/src/driver/nic/pc/spec/x86_32/generated_dummies.c b/repos/pc/src/driver/nic/pc/spec/x86_32/generated_dummies.c index c9954f2e24..01454cc0af 100644 --- a/repos/pc/src/driver/nic/pc/spec/x86_32/generated_dummies.c +++ b/repos/pc/src/driver/nic/pc/spec/x86_32/generated_dummies.c @@ -988,14 +988,6 @@ void update_group_capacity(struct sched_domain * sd,int cpu) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/pc/src/driver/nic/pc/spec/x86_64/generated_dummies.c b/repos/pc/src/driver/nic/pc/spec/x86_64/generated_dummies.c index 76c9be014b..51044f464c 100644 --- a/repos/pc/src/driver/nic/pc/spec/x86_64/generated_dummies.c +++ b/repos/pc/src/driver/nic/pc/spec/x86_64/generated_dummies.c @@ -991,14 +991,6 @@ void update_group_capacity(struct sched_domain * sd,int cpu) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog) diff --git a/repos/pc/src/driver/usb_host/pc/generated_dummies.c b/repos/pc/src/driver/usb_host/pc/generated_dummies.c index a9cfa5040a..0b0d932a48 100644 --- a/repos/pc/src/driver/usb_host/pc/generated_dummies.c +++ b/repos/pc/src/driver/usb_host/pc/generated_dummies.c @@ -622,12 +622,3 @@ void update_group_capacity(struct sched_domain * sd,int cpu) #include const u8 uuid_index[16] = {}; - - -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - diff --git a/repos/pc/src/lib/pc_wifi/generated_dummies.c b/repos/pc/src/lib/pc_wifi/generated_dummies.c index 36a70ec915..801d9b7e18 100644 --- a/repos/pc/src/lib/pc_wifi/generated_dummies.c +++ b/repos/pc/src/lib/pc_wifi/generated_dummies.c @@ -1272,14 +1272,6 @@ struct page * vmalloc_to_page(const void * vmalloc_addr) } -#include - -void wake_q_add_safe(struct wake_q_head * head,struct task_struct * task) -{ - lx_emul_trace_and_stop(__func__); -} - - #include int xdp_do_generic_redirect(struct net_device * dev,struct sk_buff * skb,struct xdp_buff * xdp,struct bpf_prog * xdp_prog)