From 7138e016663ab4577cafce976b06aca1811bb74a Mon Sep 17 00:00:00 2001 From: Konsta Holtta Date: Mon, 1 Oct 2018 15:25:01 +0300 Subject: [PATCH] gpu: nvgpu: posix: fix reg space boundaries The nvgpu_posix_io_get_reg_space was incorrectly checking the upper boundary of the register space. Likewise, the mockIO test was passing where it shouldn't have. Change-Id: Ic45d99f0e1b27a87421f331b2f0ff4b4729f859f Signed-off-by: Nicolas Benech Reviewed-on: https://git-master.nvidia.com/r/1852640 Reviewed-by: Philip Elcan Reviewed-by: svc-mobile-coverity Reviewed-by: svc-misra-checker Reviewed-by: Konsta Holtta GVS: Gerrit_Virtual_Submit Reviewed-by: Alex Waterman Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/os/posix/io.c | 2 +- userspace/units/posix-mockio/posix-mockio.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/nvgpu/os/posix/io.c b/drivers/gpu/nvgpu/os/posix/io.c index 8369e73f6..0f611f029 100644 --- a/drivers/gpu/nvgpu/os/posix/io.c +++ b/drivers/gpu/nvgpu/os/posix/io.c @@ -253,7 +253,7 @@ struct nvgpu_posix_io_reg_space *nvgpu_posix_io_get_reg_space(struct gk20a *g, nvgpu_posix_io_reg_space, link) { u32 offset = addr - reg_space->base; - if ((addr >= reg_space->base) && (offset <= reg_space->size)) { + if ((addr >= reg_space->base) && (offset < reg_space->size)) { return reg_space; } } diff --git a/userspace/units/posix-mockio/posix-mockio.c b/userspace/units/posix-mockio/posix-mockio.c index 334905bb0..032c3960b 100644 --- a/userspace/units/posix-mockio/posix-mockio.c +++ b/userspace/units/posix-mockio/posix-mockio.c @@ -268,7 +268,7 @@ static int test_register_space(struct unit_module *m, struct gk20a *g, if (value != 0x87654321) { return UNIT_FAIL; } - nvgpu_posix_io_writel_reg_space(g, 0x10000100, 0x2727); + nvgpu_posix_io_writel_reg_space(g, 0x100000FC, 0x2727); /* Now re-define the callbacks to perform our own testing */ struct nvgpu_posix_io_callbacks *old_cbs = nvgpu_posix_register_io(g,