The patch titled Subject: kmsan: do not pass NULL pointers as 0 has been added to the -mm mm-unstable branch. Its filename is kmsan-do-not-pass-null-pointers-as-0.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/kmsan-do-not-pass-null-pointers-as-0.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> Subject: kmsan: do not pass NULL pointers as 0 Date: Thu, 27 Jun 2024 16:57:47 +0200 sparse complains about passing NULL pointers as 0. Fix all instances. Link: https://lkml.kernel.org/r/20240627145754.27333-3-iii@xxxxxxxxxxxxx Signed-off-by: Ilya Leoshkevich <iii@xxxxxxxxxxxxx> Reported-by: kernel test robot <lkp@xxxxxxxxx> Closes: https://lore.kernel.org/oe-kbuild-all/202406272033.KejtfLkw-lkp@xxxxxxxxx/ Cc: Alexander Potapenko <glider@xxxxxxxxxx> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Cc: Marco Elver <elver@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/kmsan/hooks.c | 15 ++++++++------- mm/kmsan/instrumentation.c | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) --- a/mm/kmsan/hooks.c~kmsan-do-not-pass-null-pointers-as-0 +++ a/mm/kmsan/hooks.c @@ -303,7 +303,8 @@ void kmsan_handle_urb(const struct urb * if (is_out) kmsan_internal_check_memory(urb->transfer_buffer, urb->transfer_buffer_length, - /*user_addr*/ 0, REASON_SUBMIT_URB); + /*user_addr*/ NULL, + REASON_SUBMIT_URB); else kmsan_internal_unpoison_memory(urb->transfer_buffer, urb->transfer_buffer_length, @@ -316,14 +317,14 @@ static void kmsan_handle_dma_page(const { switch (dir) { case DMA_BIDIRECTIONAL: - kmsan_internal_check_memory((void *)addr, size, /*user_addr*/ 0, - REASON_ANY); + kmsan_internal_check_memory((void *)addr, size, + /*user_addr*/ NULL, REASON_ANY); kmsan_internal_unpoison_memory((void *)addr, size, /*checked*/ false); break; case DMA_TO_DEVICE: - kmsan_internal_check_memory((void *)addr, size, /*user_addr*/ 0, - REASON_ANY); + kmsan_internal_check_memory((void *)addr, size, + /*user_addr*/ NULL, REASON_ANY); break; case DMA_FROM_DEVICE: kmsan_internal_unpoison_memory((void *)addr, size, @@ -418,8 +419,8 @@ void kmsan_check_memory(const void *addr { if (!kmsan_enabled) return; - return kmsan_internal_check_memory((void *)addr, size, /*user_addr*/ 0, - REASON_ANY); + return kmsan_internal_check_memory((void *)addr, size, + /*user_addr*/ NULL, REASON_ANY); } EXPORT_SYMBOL(kmsan_check_memory); --- a/mm/kmsan/instrumentation.c~kmsan-do-not-pass-null-pointers-as-0 +++ a/mm/kmsan/instrumentation.c @@ -315,8 +315,8 @@ void __msan_warning(u32 origin) if (!kmsan_enabled || kmsan_in_runtime()) return; kmsan_enter_runtime(); - kmsan_report(origin, /*address*/ 0, /*size*/ 0, - /*off_first*/ 0, /*off_last*/ 0, /*user_addr*/ 0, + kmsan_report(origin, /*address*/ NULL, /*size*/ 0, + /*off_first*/ 0, /*off_last*/ 0, /*user_addr*/ NULL, REASON_ANY); kmsan_leave_runtime(); } _ Patches currently in -mm which might be from iii@xxxxxxxxxxxxx are ftrace-unpoison-ftrace_regs-in-ftrace_ops_list_func.patch kmsan-make-the-tests-compatible-with-kmsanpanic=1.patch kmsan-disable-kmsan-when-deferred_struct_page_init-is-enabled.patch kmsan-increase-the-maximum-store-size-to-4096.patch kmsan-fix-is_bad_asm_addr-on-arches-with-overlapping-address-spaces.patch kmsan-fix-kmsan_copy_to_user-on-arches-with-overlapping-address-spaces.patch kmsan-remove-a-useless-assignment-from-kmsan_vmap_pages_range_noflush.patch kmsan-remove-an-x86-specific-include-from-kmsanh.patch kmsan-expose-kmsan_get_metadata.patch kmsan-export-panic_on_kmsan.patch kmsan-allow-disabling-kmsan-checks-for-the-current-task.patch kmsan-introduce-memset_no_sanitize_memory.patch kmsan-support-slab_poison.patch kmsan-use-align_down-in-kmsan_get_metadata.patch kmsan-do-not-round-up-pg_data_t-size.patch kmsan-expose-kmsan_warn_on.patch mm-slub-let-kmsan-access-metadata.patch mm-slub-disable-kmsan-when-checking-the-padding-bytes.patch mm-kfence-disable-kmsan-when-checking-the-canary.patch lib-zlib-unpoison-dfltcc-output-buffers.patch kmsan-accept-ranges-starting-with-0-on-s390.patch s390-boot-turn-off-kmsan.patch s390-use-a-larger-stack-for-kmsan.patch s390-boot-add-the-kmsan-runtime-stub.patch s390-checksum-add-a-kmsan-check.patch s390-cpacf-unpoison-the-results-of-cpacf_trng.patch s390-cpumf-unpoison-stcctm-output-buffer.patch s390-diag-unpoison-diag224-output-buffer.patch s390-ftrace-unpoison-ftrace_regs-in-kprobe_ftrace_handler.patch s390-irqflags-do-not-instrument-arch_local_irq_-with-kmsan.patch s390-mm-define-kmsan-metadata-for-vmalloc-and-modules.patch s390-string-add-kmsan-support.patch s390-traps-unpoison-the-kernel_stack_overflows-pt_regs.patch s390-uaccess-add-kmsan-support-to-put_user-and-get_user.patch s390-uaccess-add-the-missing-linux-instrumentedh-include.patch s390-unwind-disable-kmsan-checks.patch s390-kmsan-implement-the-architecture-specific-functions.patch kmsan-enable-on-s390.patch kmsan-add-missing-__user-tags.patch kmsan-do-not-pass-null-pointers-as-0.patch