diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c index e8f4c14b6..b7856ca01 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "gk20a/gk20a.h" #include "gk20a/dbg_gpu_gk20a.h" @@ -368,6 +369,8 @@ static int gk20a_init_error_notifier(struct channel_gk20a *ch, return -EINVAL; } + nvgpu_speculation_barrier(); + /* map handle */ va = dma_buf_vmap(dmabuf); if (!va) { @@ -661,6 +664,8 @@ static int gk20a_channel_wait(struct channel_gk20a *ch, return -EINVAL; } + nvgpu_speculation_barrier(); + notif = dma_buf_vmap(dmabuf); if (!notif) { nvgpu_err(g, "failed to map notifier memory"); diff --git a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c index 405294718..114386a2a 100644 --- a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c @@ -31,13 +31,13 @@ #include #include #include +#include +#include +#include #include "gk20a.h" #include "css_gr_gk20a.h" -#include -#include - #include #include @@ -501,6 +501,8 @@ int gr_gk20a_css_attach(struct channel_gk20a *ch, perfmon_count > CSS_MAX_PERFMON_IDS - CSS_FIRST_PERFMON_ID) return -EINVAL; + nvgpu_speculation_barrier(); + gr = &g->gr; nvgpu_mutex_acquire(&gr->cs_lock);