From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3ECF2C433F5 for ; Wed, 2 Mar 2022 21:36:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245371AbiCBVhS (ORCPT ); Wed, 2 Mar 2022 16:37:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245141AbiCBVhG (ORCPT ); Wed, 2 Mar 2022 16:37:06 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05FBB5640A for ; Wed, 2 Mar 2022 13:36:22 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id B29CEB82265 for ; Wed, 2 Mar 2022 21:36:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 65380C004E1; Wed, 2 Mar 2022 21:36:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1646256979; bh=oDSoUcizebcc72s38C9GadPXywtIdbRODzwVz76O83U=; h=Date:To:From:Subject:From; b=jKOigASsL0chZInrC9ZwUHKdUAkHAC/bXdXIpATSpaDIALPZsQvhYV/3PQQ9Dw+k/ vHNMtlsTQtwr8B9rLP6q7Ek6WKE8n+tYg5HTWPn4DNc2XTuJZTqApU3SOteloC8Tgf XXojmigF0oNghFSCJz7D9B78DcHozT7VYzccelD0= Date: Wed, 02 Mar 2022 13:36:18 -0800 To: mm-commits@vger.kernel.org, ryabinin.a.a@gmail.com, glider@google.com, elver@google.com, dvyukov@google.com, andreyknvl@google.com, akpm@linux-foundation.org From: Andrew Morton Subject: + kasan-simplify-kasan_find_first_bad_addr-call-sites.patch added to -mm tree Message-Id: <20220302213619.65380C004E1@smtp.kernel.org> Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org The patch titled Subject: kasan: simplify kasan_find_first_bad_addr call sites has been added to the -mm tree. Its filename is kasan-simplify-kasan_find_first_bad_addr-call-sites.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/kasan-simplify-kasan_find_first_bad_addr-call-sites.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/kasan-simplify-kasan_find_first_bad_addr-call-sites.patch 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 and is updated there every 3-4 working days ------------------------------------------------------ From: Andrey Konovalov Subject: kasan: simplify kasan_find_first_bad_addr call sites Move the addr_has_metadata() check into kasan_find_first_bad_addr(). Link: https://lkml.kernel.org/r/a49576f7a23283d786ba61579cb0c5057e8f0b9b.1646237226.git.andreyknvl@google.com Signed-off-by: Andrey Konovalov Cc: Alexander Potapenko Cc: Andrey Ryabinin Cc: Dmitry Vyukov Cc: Marco Elver Signed-off-by: Andrew Morton --- mm/kasan/report.c | 5 +---- mm/kasan/report_generic.c | 4 ++++ mm/kasan/report_hw_tags.c | 1 + mm/kasan/report_sw_tags.c | 4 ++++ 4 files changed, 10 insertions(+), 4 deletions(-) --- a/mm/kasan/report.c~kasan-simplify-kasan_find_first_bad_addr-call-sites +++ a/mm/kasan/report.c @@ -444,10 +444,7 @@ static void __kasan_report(void *addr, s start_report(&flags, true); info.access_addr = addr; - if (addr_has_metadata(addr)) - info.first_bad_addr = kasan_find_first_bad_addr(addr, size); - else - info.first_bad_addr = addr; + info.first_bad_addr = kasan_find_first_bad_addr(addr, size); info.access_size = size; info.is_write = is_write; info.ip = ip; --- a/mm/kasan/report_generic.c~kasan-simplify-kasan_find_first_bad_addr-call-sites +++ a/mm/kasan/report_generic.c @@ -34,8 +34,12 @@ void *kasan_find_first_bad_addr(void *ad { void *p = addr; + if (!addr_has_metadata(p)) + return p; + while (p < addr + size && !(*(u8 *)kasan_mem_to_shadow(p))) p += KASAN_GRANULE_SIZE; + return p; } --- a/mm/kasan/report_hw_tags.c~kasan-simplify-kasan_find_first_bad_addr-call-sites +++ a/mm/kasan/report_hw_tags.c @@ -17,6 +17,7 @@ void *kasan_find_first_bad_addr(void *addr, size_t size) { + /* Return the same value regardless of whether addr_has_metadata(). */ return kasan_reset_tag(addr); } --- a/mm/kasan/report_sw_tags.c~kasan-simplify-kasan_find_first_bad_addr-call-sites +++ a/mm/kasan/report_sw_tags.c @@ -35,8 +35,12 @@ void *kasan_find_first_bad_addr(void *ad void *p = kasan_reset_tag(addr); void *end = p + size; + if (!addr_has_metadata(p)) + return p; + while (p < end && tag == *(u8 *)kasan_mem_to_shadow(p)) p += KASAN_GRANULE_SIZE; + return p; } _ Patches currently in -mm which might be from andreyknvl@google.com are kasan-page_alloc-deduplicate-should_skip_kasan_poison.patch kasan-page_alloc-move-tag_clear_highpage-out-of-kernel_init_free_pages.patch kasan-page_alloc-merge-kasan_free_pages-into-free_pages_prepare.patch kasan-page_alloc-simplify-kasan_poison_pages-call-site.patch kasan-page_alloc-init-memory-of-skipped-pages-on-free.patch kasan-drop-skip_kasan_poison-variable-in-free_pages_prepare.patch mm-clarify-__gfp_zerotags-comment.patch kasan-only-apply-__gfp_zerotags-when-memory-is-zeroed.patch kasan-page_alloc-refactor-init-checks-in-post_alloc_hook.patch kasan-page_alloc-merge-kasan_alloc_pages-into-post_alloc_hook.patch kasan-page_alloc-combine-tag_clear_highpage-calls-in-post_alloc_hook.patch kasan-page_alloc-move-setpageskipkasanpoison-in-post_alloc_hook.patch kasan-page_alloc-move-kernel_init_free_pages-in-post_alloc_hook.patch kasan-page_alloc-rework-kasan_unpoison_pages-call-site.patch kasan-clean-up-metadata-byte-definitions.patch kasan-define-kasan_vmalloc_invalid-for-sw_tags.patch kasan-x86-arm64-s390-rename-functions-for-modules-shadow.patch kasan-vmalloc-drop-outdated-vm_kasan-comment.patch kasan-reorder-vmalloc-hooks.patch kasan-add-wrappers-for-vmalloc-hooks.patch kasan-vmalloc-reset-tags-in-vmalloc-functions.patch kasan-fork-reset-pointer-tags-of-vmapped-stacks.patch kasan-arm64-reset-pointer-tags-of-vmapped-stacks.patch kasan-fork-reset-pointer-tags-of-vmapped-stacks-fix.patch kasan-vmalloc-add-vmalloc-tagging-for-sw_tags.patch kasan-vmalloc-arm64-mark-vmalloc-mappings-as-pgprot_tagged.patch kasan-vmalloc-unpoison-vm_alloc-pages-after-mapping.patch kasan-mm-only-define-___gfp_skip_kasan_poison-with-hw_tags.patch kasan-page_alloc-allow-skipping-unpoisoning-for-hw_tags.patch kasan-page_alloc-allow-skipping-memory-init-for-hw_tags.patch kasan-vmalloc-add-vmalloc-tagging-for-hw_tags.patch kasan-vmalloc-only-tag-normal-vmalloc-allocations.patch kasan-arm64-dont-tag-executable-vmalloc-allocations.patch kasan-mark-kasan_arg_stacktrace-as-__initdata.patch kasan-clean-up-feature-flags-for-hw_tags-mode.patch kasan-add-kasanvmalloc-command-line-flag.patch kasan-allow-enabling-kasan_vmalloc-and-sw-hw_tags.patch arm64-select-kasan_vmalloc-for-sw-hw_tags-modes.patch kasan-documentation-updates.patch kasan-improve-vmalloc-tests.patch kasan-improve-vmalloc-tests-fix-2.patch kasan-improve-vmalloc-tests-fix-3.patch kasan-test-support-async-again-and-asymm-modes-for-hw_tags.patch kasan-print-virtual-mapping-info-in-reports.patch kasan-drop-addr-check-from-describe_object_addr.patch kasan-more-line-breaks-in-reports.patch kasan-rearrange-stack-frame-info-in-reports.patch kasan-improve-stack-frame-info-in-reports.patch kasan-print-basic-stack-frame-info-for-sw_tags.patch kasan-simplify-async-check-in-end_report.patch kasan-simplify-kasan_update_kunit_status-and-call-sites.patch kasan-check-config_kasan_kunit_test-instead-of-config_kunit.patch kasan-move-update_kunit_status-to-start_report.patch kasan-move-disable_trace_on_warning-to-start_report.patch kasan-split-out-print_report-from-__kasan_report.patch kasan-simplify-kasan_find_first_bad_addr-call-sites.patch kasan-restructure-kasan_report.patch kasan-merge-__kasan_report-into-kasan_report.patch kasan-call-print_report-from-kasan_report_invalid_free.patch kasan-move-and-simplify-kasan_report_async.patch kasan-rename-kasan_access_info-to-kasan_report_info.patch kasan-add-comment-about-uaccess-regions-to-kasan_report.patch kasan-respect-kasan_bit_reported-in-all-reporting-routines.patch kasan-reorder-reporting-functions.patch kasan-move-and-hide-kasan_save_enable-restore_multi_shot.patch kasan-disable-lockdep-when-printing-reports.patch