kselftests: dmabuf-heaps: Add clearer checks on DMABUF_BEGIN/END_SYNC
authorJohn Stultz <john.stultz@linaro.org>
Fri, 29 Jan 2021 03:05:11 +0000 (03:05 +0000)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 8 Feb 2021 23:25:25 +0000 (16:25 -0700)
Add logic to check the dmabuf sync calls succeed.

Cc: Shuah Khan <shuah@kernel.org>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Laura Abbott <labbott@kernel.org>
Cc: Hridya Valsaraju <hridya@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sandeep Patil <sspatil@google.com>
Cc: Daniel Mentz <danielmentz@google.com>
Cc: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kselftest@vger.kernel.org
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/dmabuf-heaps/dmabuf-heap.c

index 909da9cdda97f5e66497ea86a3992f8d2bd12fbe..46f6759a8acce91f9cbc5e3f1296d1dc39d2ff01 100644 (file)
@@ -130,16 +130,13 @@ static int dmabuf_heap_alloc(int fd, size_t len, unsigned int flags,
                                         dmabuf_fd);
 }
 
-static void dmabuf_sync(int fd, int start_stop)
+static int dmabuf_sync(int fd, int start_stop)
 {
        struct dma_buf_sync sync = {
                .flags = start_stop | DMA_BUF_SYNC_RW,
        };
-       int ret;
 
-       ret = ioctl(fd, DMA_BUF_IOCTL_SYNC, &sync);
-       if (ret)
-               printf("sync failed %d\n", errno);
+       return ioctl(fd, DMA_BUF_IOCTL_SYNC, &sync);
 }
 
 #define ONE_MEG (1024 * 1024)
@@ -197,9 +194,18 @@ static int test_alloc_and_import(char *heap_name)
        }
        printf("import passed\n");
 
-       dmabuf_sync(dmabuf_fd, DMA_BUF_SYNC_START);
+       ret = dmabuf_sync(dmabuf_fd, DMA_BUF_SYNC_START);
+       if (ret < 0) {
+               printf("Sync start failed!\n");
+               goto out;
+       }
+
        memset(p, 0xff, ONE_MEG);
-       dmabuf_sync(dmabuf_fd, DMA_BUF_SYNC_END);
+       ret = dmabuf_sync(dmabuf_fd, DMA_BUF_SYNC_END);
+       if (ret < 0) {
+               printf("Sync end failed!\n");
+               goto out;
+       }
        printf("syncs passed\n");
 
        close_handle(importer_fd, handle);