From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752207AbbICIZG (ORCPT ); Thu, 3 Sep 2015 04:25:06 -0400 Received: from mail-lb0-f181.google.com ([209.85.217.181]:35731 "EHLO mail-lb0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751151AbbICIZD (ORCPT ); Thu, 3 Sep 2015 04:25:03 -0400 Subject: Re: [PATCH 2/4] kasan: MODULE_VADDR is not available on all archs To: "Aneesh Kumar K.V" References: <1441266863-5435-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> <1441266863-5435-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com> Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org From: Andrey Ryabinin Message-ID: <55E803E5.10809@gmail.com> Date: Thu, 3 Sep 2015 11:25:09 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1441266863-5435-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/03/2015 10:54 AM, Aneesh Kumar K.V wrote: > Use is_module_text_address instead > It should be is_module_address(). We use kernel_or_module_addr() to determine whether this address belongs to some global variable or not. And variables are in .data section, .text is only code. Something like is_module_data_address() would be more precise here. But since we don't have it, we can just use is_module_address(). Definitely not is_module_text_address(). > Signed-off-by: Aneesh Kumar K.V > --- > mm/kasan/report.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > index 6c3f82b0240b..01d2efec8ea4 100644 > --- a/mm/kasan/report.c > +++ b/mm/kasan/report.c > @@ -22,6 +22,7 @@ > #include > #include > #include > +#include > > #include > > @@ -85,9 +86,11 @@ static void print_error_description(struct kasan_access_info *info) > > static inline bool kernel_or_module_addr(const void *addr) > { > - return (addr >= (void *)_stext && addr < (void *)_end) > - || (addr >= (void *)MODULES_VADDR > - && addr < (void *)MODULES_END); > + if (addr >= (void *)_stext && addr < (void *)_end) > + return true; > + if (is_module_text_address((unsigned long)addr)) > + return true; > + return false; > } > > static inline bool init_task_stack_addr(const void *addr) >