From 78bd3f0c6d0beb781b87dd9d54fd186e8f7628ef Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 24 Oct 2024 09:49:30 +1100 Subject: [PATCH] Rebase against 83febc6b55cf9e7f97299e391771b9ad0d1f1ceb. --- ...ject-operation-to-grab-the-esync-fil.patch | 20 ++++++++++++----- ...ignal-thread-until-it-is-really-gone.patch | 22 +++++++++---------- staging/upstream-commit | 2 +- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/patches/eventfd_synchronization/0011-server-Add-an-object-operation-to-grab-the-esync-fil.patch b/patches/eventfd_synchronization/0011-server-Add-an-object-operation-to-grab-the-esync-fil.patch index eadc8e33..179495f7 100644 --- a/patches/eventfd_synchronization/0011-server-Add-an-object-operation-to-grab-the-esync-fil.patch +++ b/patches/eventfd_synchronization/0011-server-Add-an-object-operation-to-grab-the-esync-fil.patch @@ -1,4 +1,4 @@ -From 0c97689e30108869e0ffc5fb7a13edcb42de7450 Mon Sep 17 00:00:00 2001 +From 914fe97f7dc20348ec3e1a2e18bcefa9b7cab463 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Fri, 8 Jun 2018 18:51:40 -0500 Subject: [PATCH] server: Add an object operation to grab the esync file @@ -10,7 +10,7 @@ Split off to decrease patch size. server/atom.c | 1 + server/change.c | 1 + server/clipboard.c | 1 + - server/completion.c | 1 + + server/completion.c | 2 ++ server/console.c | 7 +++++++ server/debugger.c | 2 ++ server/device.c | 4 ++++ @@ -41,7 +41,7 @@ Split off to decrease patch size. server/token.c | 1 + server/window.c | 1 + server/winstation.c | 2 ++ - 35 files changed, 70 insertions(+) + 35 files changed, 71 insertions(+) diff --git a/server/async.c b/server/async.c index 749c547af4f..2377c737e98 100644 @@ -100,10 +100,18 @@ index 91f159bc7c9..0df7fd2f18e 100644 no_signal, /* signal */ no_get_fd, /* get_fd */ diff --git a/server/completion.c b/server/completion.c -index 6933195e72d..3d4be86a212 100644 +index f9e68c523f1..9093132efac 100644 --- a/server/completion.c +++ b/server/completion.c -@@ -75,6 +75,7 @@ static const struct object_ops completion_ops = +@@ -92,6 +92,7 @@ static const struct object_ops completion_wait_ops = + add_queue, /* add_queue */ + remove_queue, /* remove_queue */ + completion_wait_signaled, /* signaled */ ++ NULL, /* get_esync_fd */ + completion_wait_satisfied, /* satisfied */ + no_signal, /* signal */ + no_get_fd, /* get_fd */ +@@ -166,6 +167,7 @@ static const struct object_ops completion_ops = add_queue, /* add_queue */ remove_queue, /* remove_queue */ completion_signaled, /* signaled */ @@ -653,7 +661,7 @@ index dd28efd3a75..c7f34412317 100644 no_signal, /* signal */ no_get_fd, /* get_fd */ diff --git a/server/thread.c b/server/thread.c -index cf69b3b53c3..4b537586e31 100644 +index 506adfc0a6f..339cdfec1fa 100644 --- a/server/thread.c +++ b/server/thread.c @@ -96,6 +96,7 @@ static const struct object_ops thread_apc_ops = diff --git a/patches/server-Signal_Thread/0001-server-Do-not-signal-thread-until-it-is-really-gone.patch b/patches/server-Signal_Thread/0001-server-Do-not-signal-thread-until-it-is-really-gone.patch index 88f44638..173b7f24 100644 --- a/patches/server-Signal_Thread/0001-server-Do-not-signal-thread-until-it-is-really-gone.patch +++ b/patches/server-Signal_Thread/0001-server-Do-not-signal-thread-until-it-is-really-gone.patch @@ -1,4 +1,4 @@ -From f649ffcd8f68f82be173367b66f3c505ff75bcc3 Mon Sep 17 00:00:00 2001 +From 222ae102097fd34e6ff52813d1c0a165c7165776 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 12 Nov 2018 18:10:32 +0200 Subject: [PATCH] server: Do not signal violently terminated threads until they @@ -27,10 +27,10 @@ Signed-off-by: Gabriel Ivăncescu 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/server/thread.c b/server/thread.c -index 55386192fe6..60cd4ee16a8 100644 +index f7e5e5fabe8..506adfc0a6f 100644 --- a/server/thread.c +++ b/server/thread.c -@@ -241,6 +241,7 @@ static inline void init_thread_structure( struct thread *thread ) +@@ -246,6 +246,7 @@ static inline void init_thread_structure( struct thread *thread ) thread->token = NULL; thread->desc = NULL; thread->desc_len = 0; @@ -38,7 +38,7 @@ index 55386192fe6..60cd4ee16a8 100644 thread->creation_time = current_time; thread->exit_time = 0; -@@ -431,6 +432,7 @@ static void destroy_thread( struct object *obj ) +@@ -450,6 +451,7 @@ static void destroy_thread( struct object *obj ) list_remove( &thread->entry ); cleanup_thread( thread ); release_object( thread->process ); @@ -46,7 +46,7 @@ index 55386192fe6..60cd4ee16a8 100644 if (thread->id) free_ptid( thread->id ); if (thread->token) release_object( thread->token ); } -@@ -455,7 +457,7 @@ static struct object_type *thread_get_type( struct object *obj ) +@@ -467,7 +469,7 @@ static void dump_thread( struct object *obj, int verbose ) static int thread_signaled( struct object *obj, struct wait_queue_entry *entry ) { struct thread *mythread = (struct thread *)obj; @@ -55,7 +55,7 @@ index 55386192fe6..60cd4ee16a8 100644 } static unsigned int thread_map_access( struct object *obj, unsigned int access ) -@@ -1249,6 +1251,26 @@ int thread_get_inflight_fd( struct thread *thread, int client ) +@@ -1275,6 +1277,26 @@ int thread_get_inflight_fd( struct thread *thread, int client ) return -1; } @@ -82,7 +82,7 @@ index 55386192fe6..60cd4ee16a8 100644 /* kill a thread on the spot */ void kill_thread( struct thread *thread, int violent_death ) { -@@ -1268,8 +1290,12 @@ void kill_thread( struct thread *thread, int violent_death ) +@@ -1294,8 +1316,12 @@ void kill_thread( struct thread *thread, int violent_death ) } kill_console_processes( thread, 0 ); abandon_mutexes( thread ); @@ -98,17 +98,17 @@ index 55386192fe6..60cd4ee16a8 100644 remove_process_thread( thread->process, thread ); release_object( thread ); diff --git a/server/thread.h b/server/thread.h -index 184fa92d250..077ab0929ba 100644 +index a1bc5060bb9..edf2a825451 100644 --- a/server/thread.h +++ b/server/thread.h -@@ -90,6 +90,7 @@ struct thread - struct list kernel_object; /* list of kernel object pointers */ +@@ -93,6 +93,7 @@ struct thread data_size_t desc_len; /* thread description length in bytes */ WCHAR *desc; /* thread description string */ + struct completion_wait *completion_wait; /* completion port wait object the thread is associated with */ + struct timeout_user *exit_poll; /* poll if the thread/process has exited already */ }; extern struct thread *current; -- -2.29.2 +2.45.2 diff --git a/staging/upstream-commit b/staging/upstream-commit index 85c90b71..24d124e2 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -2bca8cb236b7d4d5f4e0e35d6fcad6a1d8a2c5e3 +83febc6b55cf9e7f97299e391771b9ad0d1f1ceb