diff options
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.patch | 65 |
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 + |