Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp41067pxb; Thu, 30 Sep 2021 00:12:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzfkkiGje/DYtOfTpUNbttyRktzjbJ8m7NMjncPlvOUV0IeofKxVscG8KVU1SW6ZZaWctNc X-Received: by 2002:a50:c04e:: with SMTP id u14mr704279edd.235.1632985928043; Thu, 30 Sep 2021 00:12:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632985928; cv=none; d=google.com; s=arc-20160816; b=jyZFJWmCYVCJMDovBFnNH+ZZyN8iDhmLpLSE0nULyc0xvSQTKK0PSInRmergzVImk3 NCsAGVvwvJDqgVH06wfRtVJ6RpThhP5sSP4P7iPBc8bEexf6hh9p3EJ6bd+ZBrSOyKz8 O2kiIXP0M6Dp5yF/7CW4TzpAJa3B2DW3omArrCAzZtq3I11kQ1AEf5vznDuOcTvVKU3I okxU/VlcF0hZUGe6pZIcRlsfJnjPqB2BjCRUXE3AZ3/+va+71THm4Nnb4GQHTOa+NO/V WZBGjP/2ZrGyMTmqA8IlgWZRukcexBbznUhlWKeBrWdFE2RqtDaHUGAF1K3nwtG5yD3m Bpag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=E7bVspmVK2eznz1L92P9GnRcFhlTbJiq37OOfu8VLd0=; b=U1/96rJDIBQp2J7+i5r5sJtqzXbgVvNhZMpW1FgQ0cTKn6OUOXAtN1u7Qc77QcVo2P 2E5TwxDFG4tuHeclsH6xKE3igB8+TD3m+7pphhx3GrlfZgjIzjERp4N6JcpsskNjHYWg +xNqC2dIaeEx/WFCmPKjkpn3NRHR8i2Q51cznNC8NZKujo3zgOftd++DJFZACHoCNywt Ty4C/G3gWIzc9O8LBYiAtyI8NaEjfwlcteRmWVgZ7QgWm+hP3KK+BS/GkI4SFEFPDi5v jwfXF+fUf8+gFQ3EW2LAHjzaiyi/8ZpFpBKNOBrcfFc5jUO+4fZdw2KlVFWjYVqS1W0p 2Bwg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nd19si3806707ejc.48.2021.09.30.00.11.43; Thu, 30 Sep 2021 00:12:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348541AbhI3HLK (ORCPT + 99 others); Thu, 30 Sep 2021 03:11:10 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:24197 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348525AbhI3HLE (ORCPT ); Thu, 30 Sep 2021 03:11:04 -0400 Received: from dggemv711-chm.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4HKkqB6SYQz8tXV; Thu, 30 Sep 2021 15:08:22 +0800 (CST) Received: from dggpemm500001.china.huawei.com (7.185.36.107) by dggemv711-chm.china.huawei.com (10.1.198.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.8; Thu, 30 Sep 2021 15:09:15 +0800 Received: from localhost.localdomain.localdomain (10.175.113.25) by dggpemm500001.china.huawei.com (7.185.36.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.8; Thu, 30 Sep 2021 15:09:14 +0800 From: Kefeng Wang To: , , , , , , , , , CC: , , , , , Christophe Leroy , Kefeng Wang Subject: [PATCH v4 03/11] sections: Move and rename core_kernel_data() to is_kernel_core_data() Date: Thu, 30 Sep 2021 15:11:35 +0800 Message-ID: <20210930071143.63410-4-wangkefeng.wang@huawei.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210930071143.63410-1-wangkefeng.wang@huawei.com> References: <20210930071143.63410-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.175.113.25] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm500001.china.huawei.com (7.185.36.107) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Move core_kernel_data() into sections.h and rename it to is_kernel_core_data(), also make it return bool value, then update all the callers. Cc: Arnd Bergmann Cc: Steven Rostedt Cc: Ingo Molnar Cc: "David S. Miller" Signed-off-by: Kefeng Wang --- include/asm-generic/sections.h | 16 ++++++++++++++++ include/linux/kernel.h | 1 - kernel/extable.c | 18 ------------------ kernel/trace/ftrace.c | 2 +- net/sysctl_net.c | 2 +- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index 817309e289db..24780c0f40b1 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h @@ -142,6 +142,22 @@ static inline bool init_section_intersects(void *virt, size_t size) return memory_intersects(__init_begin, __init_end, virt, size); } +/** + * is_kernel_core_data - checks if the pointer address is located in the + * .data section + * + * @addr: address to check + * + * Returns: true if the address is located in .data, false otherwise. + * Note: On some archs it may return true for core RODATA, and false + * for others. But will always be true for core RW data. + */ +static inline bool is_kernel_core_data(unsigned long addr) +{ + return addr >= (unsigned long)_sdata && + addr < (unsigned long)_edata; +} + /** * is_kernel_rodata - checks if the pointer address is located in the * .rodata section diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 2776423a587e..e5a9af8a4e20 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -230,7 +230,6 @@ extern char *next_arg(char *args, char **param, char **val); extern int core_kernel_text(unsigned long addr); extern int init_kernel_text(unsigned long addr); -extern int core_kernel_data(unsigned long addr); extern int __kernel_text_address(unsigned long addr); extern int kernel_text_address(unsigned long addr); extern int func_ptr_is_kernel_text(void *ptr); diff --git a/kernel/extable.c b/kernel/extable.c index b0ea5eb0c3b4..da26203841d4 100644 --- a/kernel/extable.c +++ b/kernel/extable.c @@ -82,24 +82,6 @@ int notrace core_kernel_text(unsigned long addr) return 0; } -/** - * core_kernel_data - tell if addr points to kernel data - * @addr: address to test - * - * Returns true if @addr passed in is from the core kernel data - * section. - * - * Note: On some archs it may return true for core RODATA, and false - * for others. But will always be true for core RW data. - */ -int core_kernel_data(unsigned long addr) -{ - if (addr >= (unsigned long)_sdata && - addr < (unsigned long)_edata) - return 1; - return 0; -} - int __kernel_text_address(unsigned long addr) { if (kernel_text_address(addr)) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 7efbc8aaf7f6..f15badf31f52 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -323,7 +323,7 @@ int __register_ftrace_function(struct ftrace_ops *ops) if (!ftrace_enabled && (ops->flags & FTRACE_OPS_FL_PERMANENT)) return -EBUSY; - if (!core_kernel_data((unsigned long)ops)) + if (!is_kernel_core_data((unsigned long)ops)) ops->flags |= FTRACE_OPS_FL_DYNAMIC; add_ftrace_ops(&ftrace_ops_list, ops); diff --git a/net/sysctl_net.c b/net/sysctl_net.c index f6cb0d4d114c..4b45ed631eb8 100644 --- a/net/sysctl_net.c +++ b/net/sysctl_net.c @@ -144,7 +144,7 @@ static void ensure_safe_net_sysctl(struct net *net, const char *path, addr = (unsigned long)ent->data; if (is_module_address(addr)) where = "module"; - else if (core_kernel_data(addr)) + else if (is_kernel_core_data(addr)) where = "kernel"; else continue; -- 2.26.2