srcu callbacks are running in atomic context, we can't allocate using
__GFP_WAIT.
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index b4f49ac..b85eb0b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -196,7 +196,7 @@ static void kfd_process_destroy_delayed(struct rcu_head *rcu)
mmdrop(p->mm);
work = (struct kfd_process_release_work *)
- kmalloc(sizeof(struct kfd_process_release_work), GFP_KERNEL);
+ kmalloc(sizeof(struct kfd_process_release_work), GFP_ATOMIC);
if (work) {
INIT_WORK((struct work_struct *) work, kfd_process_wq_release);
--
2.1.0
On 12/03/2014 05:19 PM, Sasha Levin wrote:
> srcu callbacks are running in atomic context, we can't allocate using
> __GFP_WAIT.
>
> Signed-off-by: Sasha Levin <[email protected]>
> ---
> drivers/gpu/drm/amd/amdkfd/kfd_process.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> index b4f49ac..b85eb0b 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
> @@ -196,7 +196,7 @@ static void kfd_process_destroy_delayed(struct rcu_head *rcu)
> mmdrop(p->mm);
>
> work = (struct kfd_process_release_work *)
> - kmalloc(sizeof(struct kfd_process_release_work), GFP_KERNEL);
> + kmalloc(sizeof(struct kfd_process_release_work), GFP_ATOMIC);
>
> if (work) {
> INIT_WORK((struct work_struct *) work, kfd_process_wq_release);
>
Thanks!
Applied to my -next tree.
Oded