diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/nvgpu/common/linux/ioctl_channel.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c index e8f4c14b..b7856ca0 100644 --- a/drivers/gpu/nvgpu/common/linux/ioctl_channel.c +++ b/drivers/gpu/nvgpu/common/linux/ioctl_channel.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <nvgpu/debug.h> | 31 | #include <nvgpu/debug.h> |
32 | #include <nvgpu/enabled.h> | 32 | #include <nvgpu/enabled.h> |
33 | #include <nvgpu/error_notifier.h> | 33 | #include <nvgpu/error_notifier.h> |
34 | #include <nvgpu/barrier.h> | ||
34 | 35 | ||
35 | #include "gk20a/gk20a.h" | 36 | #include "gk20a/gk20a.h" |
36 | #include "gk20a/dbg_gpu_gk20a.h" | 37 | #include "gk20a/dbg_gpu_gk20a.h" |
@@ -368,6 +369,8 @@ static int gk20a_init_error_notifier(struct channel_gk20a *ch, | |||
368 | return -EINVAL; | 369 | return -EINVAL; |
369 | } | 370 | } |
370 | 371 | ||
372 | nvgpu_speculation_barrier(); | ||
373 | |||
371 | /* map handle */ | 374 | /* map handle */ |
372 | va = dma_buf_vmap(dmabuf); | 375 | va = dma_buf_vmap(dmabuf); |
373 | if (!va) { | 376 | if (!va) { |
@@ -661,6 +664,8 @@ static int gk20a_channel_wait(struct channel_gk20a *ch, | |||
661 | return -EINVAL; | 664 | return -EINVAL; |
662 | } | 665 | } |
663 | 666 | ||
667 | nvgpu_speculation_barrier(); | ||
668 | |||
664 | notif = dma_buf_vmap(dmabuf); | 669 | notif = dma_buf_vmap(dmabuf); |
665 | if (!notif) { | 670 | if (!notif) { |
666 | nvgpu_err(g, "failed to map notifier memory"); | 671 | 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 40529471..114386a2 100644 --- a/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/css_gr_gk20a.c | |||
@@ -31,13 +31,13 @@ | |||
31 | #include <nvgpu/dma.h> | 31 | #include <nvgpu/dma.h> |
32 | #include <nvgpu/mm.h> | 32 | #include <nvgpu/mm.h> |
33 | #include <nvgpu/sizes.h> | 33 | #include <nvgpu/sizes.h> |
34 | #include <nvgpu/barrier.h> | ||
35 | #include <nvgpu/log.h> | ||
36 | #include <nvgpu/bug.h> | ||
34 | 37 | ||
35 | #include "gk20a.h" | 38 | #include "gk20a.h" |
36 | #include "css_gr_gk20a.h" | 39 | #include "css_gr_gk20a.h" |
37 | 40 | ||
38 | #include <nvgpu/log.h> | ||
39 | #include <nvgpu/bug.h> | ||
40 | |||
41 | #include <nvgpu/hw/gk20a/hw_perf_gk20a.h> | 41 | #include <nvgpu/hw/gk20a/hw_perf_gk20a.h> |
42 | #include <nvgpu/hw/gk20a/hw_mc_gk20a.h> | 42 | #include <nvgpu/hw/gk20a/hw_mc_gk20a.h> |
43 | 43 | ||
@@ -501,6 +501,8 @@ int gr_gk20a_css_attach(struct channel_gk20a *ch, | |||
501 | perfmon_count > CSS_MAX_PERFMON_IDS - CSS_FIRST_PERFMON_ID) | 501 | perfmon_count > CSS_MAX_PERFMON_IDS - CSS_FIRST_PERFMON_ID) |
502 | return -EINVAL; | 502 | return -EINVAL; |
503 | 503 | ||
504 | nvgpu_speculation_barrier(); | ||
505 | |||
504 | gr = &g->gr; | 506 | gr = &g->gr; |
505 | 507 | ||
506 | nvgpu_mutex_acquire(&gr->cs_lock); | 508 | nvgpu_mutex_acquire(&gr->cs_lock); |