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 39f8908988eab0d032382bc551df6bf754691a4f..4e887dad762d1c5763349d0d8bb47ad3bb273ac7 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);
 }