kselftest/arm64: mte: common: Fix write() warnings
authorAndre Przywara <andre.przywara@arm.com>
Fri, 19 Mar 2021 16:53:28 +0000 (16:53 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Wed, 24 Mar 2021 15:43:03 +0000 (15:43 +0000)
Out of the box Ubuntu's 20.04 compiler warns about missing return value
checks for write() (sys)calls.

Make GCC happy by checking whether we actually managed to write out our
buffer.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Mark Brown <broone@kernel.org>
Link: https://lore.kernel.org/r/20210319165334.29213-6-andre.przywara@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
tools/testing/selftests/arm64/mte/mte_common_util.c

index 39f8908..4e887da 100644 (file)
@@ -181,10 +181,17 @@ void *mte_allocate_file_memory(size_t size, int mem_type, int mapping, bool tags
        }
        /* Initialize the file for mappable size */
        lseek(fd, 0, SEEK_SET);
-       for (index = INIT_BUFFER_SIZE; index < size; index += INIT_BUFFER_SIZE)
-               write(fd, buffer, INIT_BUFFER_SIZE);
+       for (index = INIT_BUFFER_SIZE; index < size; index += INIT_BUFFER_SIZE) {
+               if (write(fd, buffer, INIT_BUFFER_SIZE) != INIT_BUFFER_SIZE) {
+                       perror("initialising buffer");
+                       return NULL;
+               }
+       }
        index -= INIT_BUFFER_SIZE;
-       write(fd, buffer, size - index);
+       if (write(fd, buffer, size - index) != size - index) {
+               perror("initialising buffer");
+               return NULL;
+       }
        return __mte_allocate_memory_range(size, mem_type, mapping, 0, 0, tags, fd);
 }
 
@@ -202,9 +209,15 @@ void *mte_allocate_file_memory_tag_range(size_t size, int mem_type, int mapping,
        /* Initialize the file for mappable size */
        lseek(fd, 0, SEEK_SET);
        for (index = INIT_BUFFER_SIZE; index < map_size; index += INIT_BUFFER_SIZE)
-               write(fd, buffer, INIT_BUFFER_SIZE);
+               if (write(fd, buffer, INIT_BUFFER_SIZE) != INIT_BUFFER_SIZE) {
+                       perror("initialising buffer");
+                       return NULL;
+               }
        index -= INIT_BUFFER_SIZE;
-       write(fd, buffer, map_size - index);
+       if (write(fd, buffer, map_size - index) != map_size - index) {
+               perror("initialising buffer");
+               return NULL;
+       }
        return __mte_allocate_memory_range(size, mem_type, mapping, range_before,
                                           range_after, true, fd);
 }