From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f198.google.com (mail-wr0-f198.google.com [209.85.128.198]) by kanga.kvack.org (Postfix) with ESMTP id 7D6886B026E for ; Thu, 11 Jan 2018 10:29:18 -0500 (EST) Received: by mail-wr0-f198.google.com with SMTP id 61so1673854wrg.9 for ; Thu, 11 Jan 2018 07:29:18 -0800 (PST) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id f4sor304711wmd.91.2018.01.11.07.29.17 for (Google Transport Security); Thu, 11 Jan 2018 07:29:17 -0800 (PST) From: Andrey Konovalov Subject: [PATCH 0/2] kasan: a few cleanups Date: Thu, 11 Jan 2018 16:29:07 +0100 Message-Id: Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Kostya Serebryany , Andrey Konovalov Clean up usage of KASAN_SHADOW_SCALE_SHIFT and fix prototype author email address. Andrey Konovalov (2): kasan: fix prototype author email address kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage arch/arm64/include/asm/kasan.h | 3 ++- arch/arm64/include/asm/memory.h | 3 ++- arch/arm64/mm/kasan_init.c | 3 ++- arch/x86/include/asm/kasan.h | 8 ++++++-- include/linux/kasan.h | 2 -- mm/kasan/kasan.c | 2 +- mm/kasan/report.c | 2 +- 7 files changed, 14 insertions(+), 9 deletions(-) -- 2.16.0.rc1.238.g530d649a79-goog -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f197.google.com (mail-wr0-f197.google.com [209.85.128.197]) by kanga.kvack.org (Postfix) with ESMTP id C7CA26B0270 for ; Thu, 11 Jan 2018 10:29:19 -0500 (EST) Received: by mail-wr0-f197.google.com with SMTP id 61so1673876wrg.9 for ; Thu, 11 Jan 2018 07:29:19 -0800 (PST) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id t14sor323391wmc.5.2018.01.11.07.29.18 for (Google Transport Security); Thu, 11 Jan 2018 07:29:18 -0800 (PST) From: Andrey Konovalov Subject: [PATCH 1/2] kasan: fix prototype author email address Date: Thu, 11 Jan 2018 16:29:08 +0100 Message-Id: In-Reply-To: References: In-Reply-To: References: Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Kostya Serebryany , Andrey Konovalov Use the new one. Signed-off-by: Andrey Konovalov --- mm/kasan/kasan.c | 2 +- mm/kasan/report.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/kasan/kasan.c b/mm/kasan/kasan.c index 405bba487df5..cb4065f31f7f 100644 --- a/mm/kasan/kasan.c +++ b/mm/kasan/kasan.c @@ -5,7 +5,7 @@ * Author: Andrey Ryabinin * * Some code borrowed from https://github.com/xairy/kasan-prototype by - * Andrey Konovalov + * Andrey Konovalov * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as diff --git a/mm/kasan/report.c b/mm/kasan/report.c index 410c8235e671..eee796a005ac 100644 --- a/mm/kasan/report.c +++ b/mm/kasan/report.c @@ -5,7 +5,7 @@ * Author: Andrey Ryabinin * * Some code borrowed from https://github.com/xairy/kasan-prototype by - * Andrey Konovalov + * Andrey Konovalov * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as -- 2.16.0.rc1.238.g530d649a79-goog -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f199.google.com (mail-wr0-f199.google.com [209.85.128.199]) by kanga.kvack.org (Postfix) with ESMTP id B49396B0271 for ; Thu, 11 Jan 2018 10:29:20 -0500 (EST) Received: by mail-wr0-f199.google.com with SMTP id 61so1673896wrg.9 for ; Thu, 11 Jan 2018 07:29:20 -0800 (PST) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id q3sor8951142wrd.74.2018.01.11.07.29.19 for (Google Transport Security); Thu, 11 Jan 2018 07:29:19 -0800 (PST) From: Andrey Konovalov Subject: [PATCH 2/2] kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage Date: Thu, 11 Jan 2018 16:29:09 +0100 Message-Id: In-Reply-To: References: In-Reply-To: References: Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Kostya Serebryany , Andrey Konovalov Right now the fact that KASAN uses a single shadow byte for 8 bytes of memory is scattered all over the code. This change defines KASAN_SHADOW_SCALE_SHIFT early in asm include files and makes use of this constant where necessary. Signed-off-by: Andrey Konovalov --- arch/arm64/include/asm/kasan.h | 3 ++- arch/arm64/include/asm/memory.h | 3 ++- arch/arm64/mm/kasan_init.c | 3 ++- arch/x86/include/asm/kasan.h | 8 ++++++-- include/linux/kasan.h | 2 -- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/arch/arm64/include/asm/kasan.h b/arch/arm64/include/asm/kasan.h index e266f80e45b7..811643fe7640 100644 --- a/arch/arm64/include/asm/kasan.h +++ b/arch/arm64/include/asm/kasan.h @@ -27,7 +27,8 @@ * should satisfy the following equation: * KASAN_SHADOW_OFFSET = KASAN_SHADOW_END - (1ULL << 61) */ -#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << (64 - 3))) +#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << \ + (64 - KASAN_SHADOW_SCALE_SHIFT))) void kasan_init(void); void kasan_copy_shadow(pgd_t *pgdir); diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h index d4bae7d6e0d8..50fa96a49792 100644 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@ -85,7 +85,8 @@ * stack size when KASAN is in use. */ #ifdef CONFIG_KASAN -#define KASAN_SHADOW_SIZE (UL(1) << (VA_BITS - 3)) +#define KASAN_SHADOW_SCALE_SHIFT 3 +#define KASAN_SHADOW_SIZE (UL(1) << (VA_BITS - KASAN_SHADOW_SCALE_SHIFT)) #define KASAN_THREAD_SHIFT 1 #else #define KASAN_SHADOW_SIZE (0) diff --git a/arch/arm64/mm/kasan_init.c b/arch/arm64/mm/kasan_init.c index acba49fb5aac..6e02e6fb4c7b 100644 --- a/arch/arm64/mm/kasan_init.c +++ b/arch/arm64/mm/kasan_init.c @@ -135,7 +135,8 @@ static void __init kasan_pgd_populate(unsigned long addr, unsigned long end, /* The early shadow maps everything to a single page of zeroes */ asmlinkage void __init kasan_early_init(void) { - BUILD_BUG_ON(KASAN_SHADOW_OFFSET != KASAN_SHADOW_END - (1UL << 61)); + BUILD_BUG_ON(KASAN_SHADOW_OFFSET != + KASAN_SHADOW_END - (1UL << (64 - KASAN_SHADOW_SCALE_SHIFT))); BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_START, PGDIR_SIZE)); BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_END, PGDIR_SIZE)); kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE, diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h index b577dd0916aa..737b7ea9bea3 100644 --- a/arch/x86/include/asm/kasan.h +++ b/arch/x86/include/asm/kasan.h @@ -4,6 +4,7 @@ #include #define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL) +#define KASAN_SHADOW_SCALE_SHIFT 3 /* * Compiler uses shadow offset assuming that addresses start @@ -12,12 +13,15 @@ * 'kernel address space start' >> KASAN_SHADOW_SCALE_SHIFT */ #define KASAN_SHADOW_START (KASAN_SHADOW_OFFSET + \ - ((-1UL << __VIRTUAL_MASK_SHIFT) >> 3)) + ((-1UL << __VIRTUAL_MASK_SHIFT) >> \ + KASAN_SHADOW_SCALE_SHIFT)) /* * 47 bits for kernel address -> (47 - 3) bits for shadow * 56 bits for kernel address -> (56 - 3) bits for shadow */ -#define KASAN_SHADOW_END (KASAN_SHADOW_START + (1ULL << (__VIRTUAL_MASK_SHIFT - 3))) +#define KASAN_SHADOW_END (KASAN_SHADOW_START + \ + (1ULL << (__VIRTUAL_MASK_SHIFT - \ + KASAN_SHADOW_SCALE_SHIFT))) #ifndef __ASSEMBLY__ diff --git a/include/linux/kasan.h b/include/linux/kasan.h index e3eb834c9a35..e9eaa964473a 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h @@ -11,8 +11,6 @@ struct task_struct; #ifdef CONFIG_KASAN -#define KASAN_SHADOW_SCALE_SHIFT 3 - #include #include -- 2.16.0.rc1.238.g530d649a79-goog -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f70.google.com (mail-oi0-f70.google.com [209.85.218.70]) by kanga.kvack.org (Postfix) with ESMTP id 9101B6B026E for ; Thu, 11 Jan 2018 12:33:08 -0500 (EST) Received: by mail-oi0-f70.google.com with SMTP id s136so936034oie.0 for ; Thu, 11 Jan 2018 09:33:08 -0800 (PST) Received: from foss.arm.com (foss.arm.com. [217.140.101.70]) by mx.google.com with ESMTP id c5si5276729oif.347.2018.01.11.09.33.07 for ; Thu, 11 Jan 2018 09:33:07 -0800 (PST) Date: Thu, 11 Jan 2018 17:33:10 +0000 From: Will Deacon Subject: Re: [PATCH 2/2] kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage Message-ID: <20180111173309.GG13216@arm.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Konovalov Cc: Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org, Kostya Serebryany On Thu, Jan 11, 2018 at 04:29:09PM +0100, Andrey Konovalov wrote: > Right now the fact that KASAN uses a single shadow byte for 8 bytes of > memory is scattered all over the code. > > This change defines KASAN_SHADOW_SCALE_SHIFT early in asm include files > and makes use of this constant where necessary. > > Signed-off-by: Andrey Konovalov > --- > arch/arm64/include/asm/kasan.h | 3 ++- > arch/arm64/include/asm/memory.h | 3 ++- > arch/arm64/mm/kasan_init.c | 3 ++- > arch/x86/include/asm/kasan.h | 8 ++++++-- > include/linux/kasan.h | 2 -- > 5 files changed, 12 insertions(+), 7 deletions(-) For the arm64 parts: Acked-by: Will Deacon Will -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg0-f70.google.com (mail-pg0-f70.google.com [74.125.83.70]) by kanga.kvack.org (Postfix) with ESMTP id 0DAFC6B025F for ; Thu, 11 Jan 2018 17:00:10 -0500 (EST) Received: by mail-pg0-f70.google.com with SMTP id w186so3123067pgb.10 for ; Thu, 11 Jan 2018 14:00:10 -0800 (PST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00129.outbound.protection.outlook.com. [40.107.0.129]) by mx.google.com with ESMTPS id b126si12601338pgc.610.2018.01.11.14.00.08 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 11 Jan 2018 14:00:09 -0800 (PST) Subject: Re: [PATCH 2/2] kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage References: From: Andrey Ryabinin Message-ID: Date: Fri, 12 Jan 2018 00:59:57 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Konovalov , Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: Kostya Serebryany On 01/11/2018 06:29 PM, Andrey Konovalov wrote: > diff --git a/arch/arm64/include/asm/kasan.h b/arch/arm64/include/asm/kasan.h > index e266f80e45b7..811643fe7640 100644 > --- a/arch/arm64/include/asm/kasan.h > +++ b/arch/arm64/include/asm/kasan.h > @@ -27,7 +27,8 @@ > * should satisfy the following equation: > * KASAN_SHADOW_OFFSET = KASAN_SHADOW_END - (1ULL << 61) Care to update comments as well? > */ > -#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << (64 - 3))) > +#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << \ > + (64 - KASAN_SHADOW_SCALE_SHIFT))) > > void kasan_init(void); > void kasan_copy_shadow(pgd_t *pgdir); -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f72.google.com (mail-oi0-f72.google.com [209.85.218.72]) by kanga.kvack.org (Postfix) with ESMTP id A84E56B0261 for ; Fri, 12 Jan 2018 11:49:59 -0500 (EST) Received: by mail-oi0-f72.google.com with SMTP id i66so747865oih.5 for ; Fri, 12 Jan 2018 08:49:59 -0800 (PST) Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id b47sor8500092oth.255.2018.01.12.08.49.58 for (Google Transport Security); Fri, 12 Jan 2018 08:49:58 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Andrey Konovalov Date: Fri, 12 Jan 2018 17:49:57 +0100 Message-ID: Subject: Re: [PATCH 2/2] kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage Content-Type: text/plain; charset="UTF-8" Sender: owner-linux-mm@kvack.org List-ID: To: Andrey Ryabinin Cc: Alexander Potapenko , Dmitry Vyukov , Catalin Marinas , Will Deacon , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , kasan-dev , Linux Memory Management List , linux-arm-kernel@lists.infradead.org, the arch/x86 maintainers , LKML , Kostya Serebryany On Thu, Jan 11, 2018 at 10:59 PM, Andrey Ryabinin wrote: > > > On 01/11/2018 06:29 PM, Andrey Konovalov wrote: > >> diff --git a/arch/arm64/include/asm/kasan.h b/arch/arm64/include/asm/kasan.h >> index e266f80e45b7..811643fe7640 100644 >> --- a/arch/arm64/include/asm/kasan.h >> +++ b/arch/arm64/include/asm/kasan.h >> @@ -27,7 +27,8 @@ >> * should satisfy the following equation: >> * KASAN_SHADOW_OFFSET = KASAN_SHADOW_END - (1ULL << 61) > > Care to update comments as well? Sure, done in v2. > >> */ >> -#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << (64 - 3))) >> +#define KASAN_SHADOW_OFFSET (KASAN_SHADOW_END - (1ULL << \ >> + (64 - KASAN_SHADOW_SCALE_SHIFT))) >> >> void kasan_init(void); >> void kasan_copy_shadow(pgd_t *pgdir); -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org