aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch
new file mode 100644
index 00000000..01b6f908
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3164-drm-amdkfd-kfd_events-SIGUSR2-interrupt-changes.patch
@@ -0,0 +1,65 @@
+From c3b95d2327d3bf730c28170341eb1de1aba7f9a5 Mon Sep 17 00:00:00 2001
+From: Saleel Kudchadker <Saleel.Kudchadker@amd.com>
+Date: Tue, 23 Jul 2019 14:30:31 -0700
+Subject: [PATCH 3164/4256] drm/amdkfd/kfd_events: SIGUSR2 interrupt changes
+
+Signal SIGUSR2 to parent process only forevent type
+KFD_EVENT_TYPE_DEBUG
+
+Change-Id: I17e3af4d0947027b3fe4e4fb71f0743b37959314
+Signed-off-by: Saleel Kudchadker <Saleel.Kudchadker@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Keuhling@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_events.c | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
+index ab76749bf44e..88c05303a30d 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c
+@@ -495,7 +495,7 @@ static void set_event_from_interrupt(struct kfd_process *p,
+ void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id,
+ uint32_t valid_id_bits)
+ {
+- bool events_signaled = false;
++ bool debug_events_signaled = false;
+ struct kfd_event *ev = NULL;
+
+ /*
+@@ -515,7 +515,7 @@ void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id,
+ valid_id_bits);
+ if (ev) {
+ set_event_from_interrupt(p, ev);
+- events_signaled = true;
++ debug_events_signaled |= (ev->type == KFD_EVENT_TYPE_DEBUG);
+ } else if (p->signal_page) {
+ /*
+ * Partial ID lookup failed. Assume that the event ID
+@@ -539,7 +539,8 @@ void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id,
+
+ if (slots[id] != UNSIGNALED_EVENT_SLOT) {
+ set_event_from_interrupt(p, ev);
+- events_signaled = true;
++ debug_events_signaled |=
++ (ev->type == KFD_EVENT_TYPE_DEBUG);
+ }
+ }
+ } else {
+@@ -551,11 +552,12 @@ void kfd_signal_event_interrupt(unsigned int pasid, uint32_t partial_id,
+ if (slots[id] != UNSIGNALED_EVENT_SLOT) {
+ ev = lookup_event_by_id(p, id);
+ set_event_from_interrupt(p, ev);
+- events_signaled = true;
++ debug_events_signaled |=
++ (ev->type == KFD_EVENT_TYPE_DEBUG);
+ }
+ }
+ }
+- if (events_signaled)
++ if (debug_events_signaled)
+ signal_event_to_debugger(p);
+
+ mutex_unlock(&p->event_mutex);
+--
+2.17.1
+