From patchwork Mon Jan 24 09:22:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 12721802 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38FE8C433EF for ; Mon, 24 Jan 2022 09:22:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A21836B0083; Mon, 24 Jan 2022 04:22:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D11E6B0085; Mon, 24 Jan 2022 04:22:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 899586B0087; Mon, 24 Jan 2022 04:22:20 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0156.hostedemail.com [216.40.44.156]) by kanga.kvack.org (Postfix) with ESMTP id 7D30D6B0083 for ; Mon, 24 Jan 2022 04:22:20 -0500 (EST) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 394C6181C1927 for ; Mon, 24 Jan 2022 09:22:20 +0000 (UTC) X-FDA: 79064639640.22.F841ED0 Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-eopbgr90073.outbound.protection.outlook.com [40.107.9.73]) by imf20.hostedemail.com (Postfix) with ESMTP id 7B9641C0017 for ; Mon, 24 Jan 2022 09:22:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fpbYaHdqniR4nPJ6vkxtFXMbmcQWuQbYIoz5FpxRoEss/4Km1zZlPV8p3ry7JkNjD6B43oSvj0jTErz0VQX0o23DC/SrbBlN975UHRUAXAGFNMGgCjII+d40TFRJTB4Bw3Q0epJLHwztZeJQq6XlG24YBlkdO/DnT8aP0GBS7niadkQZ41tn7/7fLbvE6HlapmiYZ+5V9XYPJDwB8TL9aYBV3WVlF0TFpjyd+jIa4Dj9rXxRjqJLhd/MgIie66M6mkffVGIaMPLOCoqRd1Lt/7RJfXMM/4q0bqJIkilkR68UHyip8+pPxsyox0G91CJBDC9UrCyMkOGo2ISoGERmdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d8RJ3jC6E9arBGQfSQkBiXWHNDOnWeX/ePWzBPoQFCk=; b=Tqa3DlJML6Se5hBWBlytlLpMvBlaHuKCtwZTEvGWIKqrj/9wHEPc/mi6Or3PCFAs2L2wNzPweDQMld7OptOiIRH1YoKsRCUb5yt4uvoESHcWuR1dyICJm24rAWNw8Tae9UECkB8upVdB3S89UXCdspr1LbVawqt7w38pZCQSBpMRufpAjU/GFoUs92ZKIvM7GDY7A18amQSZ1HhzqhsBvsseZaYDJaLkMFZreDhob0Z0s4zcZni8B9Co5pfc15OUGQZitlHC8inUYmJvjuAFIbOg8IwM7uDocSOpPYB0v6lyOZUgz7hWPJSjMbClmwhkyqcwkUwQKRn6udKk+0IXnA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB0235.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:3::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.13; Mon, 24 Jan 2022 09:22:15 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.017; Mon, 24 Jan 2022 09:22:15 +0000 From: Christophe Leroy To: Luis Chamberlain , Jessica Yu CC: Christophe Leroy , "linux-kernel@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" , "kgdb-bugreport@lists.sourceforge.net" , "linux-mm@kvack.org" , "linux-arch@vger.kernel.org" Subject: [PATCH 1/7] modules: Refactor within_module_core() and within_module_init() Thread-Topic: [PATCH 1/7] modules: Refactor within_module_core() and within_module_init() Thread-Index: AQHYEQPgKgdjFmN/j0GzHm/ZB6XnTA== Date: Mon, 24 Jan 2022 09:22:15 +0000 Message-ID: References: In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a477f472-47bb-4d73-d4d9-08d9df1b031c x-ms-traffictypediagnostic: PR0P264MB0235:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1388; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Yi3CwSSuGGlA3ba+4AkSnSjZVn/PqFNanVh4jhm9A5moBuaO4A4piu5tqAL28rXffKw1MNes43ipv0PpzLm7I1bpzkLwvbIg335Om05vW4DCyCttsCDWiM/Mn4QGWigJCSA9OqcftB6gCe4hLO1POTZNUSJ3lQOLmUl44E3TJTltkGUdvxOMxLCIXw2Ti54ZDb54OB2zqXl1lnIj7X6ph2jkBppYHQMfMLEwuXDbNj9vam0rUAA7gdKt7Crv3h7izQ7z5bYPci4+b6ZxBxhoaW1iimaQwZL+OULpxLxbGOimygzyLl3A9Nq/6iIHs5erY2AIaQ1GYC/INqxiyWqoBqVLLgYiem7Q8gOYzobq/OaiL+mNcL7+1JM0d+s42CsyPVnaWVk1bHpcFceUNDj5kt5e2gJG2VKJU4A7QTWZKBuuPPv//zgIRSdUP7P3dza7CnK+mCEvND6NNhFaexO4q+nYvw4a7Yba1DODZl+axTj1hgOb7wPKyYZIVBpn4UfpkutU/j3B/InmRPxJW5W6YgqEo+qLrUFhL3Jw23hdyU1AxdvQvm9VkX51TVBJFrxChDsXyCxvFT2P24eV6Ku3ahv2h44pQ1GMjwhfqn8FcSqegPS4nBEE/Oo55LAt0nOwFM6d1RRMoVHonPOcNBQ4v43DRXEptCFGjm3OhfsPx+WuiwK9EAT4wjVjGoJlLUU4C0RL+jrmxcj+lk1W5c9RSw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(4636009)(366004)(8936002)(6512007)(86362001)(66946007)(2906002)(4326008)(6506007)(66446008)(8676002)(64756008)(71200400001)(44832011)(36756003)(26005)(122000001)(66556008)(508600001)(186003)(66476007)(76116006)(38070700005)(91956017)(54906003)(5660300002)(110136005)(83380400001)(2616005)(6486002)(316002)(38100700002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Cnz75I49SQedHiMgpuEyn/N?= =?iso-8859-1?q?mgV01t0blBoDNA97YLN4IWg5xEbk5JOk0sbm6IlAkTWzfZAywTfHUc5WqPqs?= =?iso-8859-1?q?/O1VyaG8A+mpVHAF1cYAj0ifQq45W/aWED1JyprOwC7RCuro3eD1+o2WFyuY?= =?iso-8859-1?q?WlalIgG0FD19B4knCn1aB93l0boyA4fhlPv2ohSDEJqZNCvu1ZWk7vPRE1BC?= =?iso-8859-1?q?Ec07w3AXvNQaDWDf6x3qvPZTmjw1n8NJBXwV13zU1s3F1jGvbYpWK2oVNyr1?= =?iso-8859-1?q?85Zvh40v+vUmdfIQ5wdcUKwUt15QAZiT21Jm5Gu5BNMKh5DVXYWpenRs62S6?= =?iso-8859-1?q?fa9AFhrejL8uxyPzYleXIKfjQcuP4erakTOHLVzIW/bbqvUtHxk+WDjEZzoR?= =?iso-8859-1?q?I/5cDvuiuPu6t7AgcxjVSnBcyuDeWGIyErS3FjU/FNa8OaTsGvVx3mZNXwsK?= =?iso-8859-1?q?THkyd5TzYINvMLiiGiIQ/iwtI0sozRAexBC48vYCiPU497TBVMjT4xFamons?= =?iso-8859-1?q?lvlk9RfVmun5yVOdRc+S8Ea3KkdxaDgo2e+3Nw6kXhJqK0XPRe0js3nRQP12?= =?iso-8859-1?q?OxoooHthyAdV6k99VHT4r6ShZqGkF1AdyHRv4wihQdkxkPGb1wwuMkCal1bM?= =?iso-8859-1?q?Vu44AmMqwHd2k00WSMy8XlQ+Ug577P74D0q4SJD1zoJvciXLK/E/J14M4AxP?= =?iso-8859-1?q?h8FMXixD3R6TQQVzoFs7JNr7+igNinjb0CZuyZG4HGdQ/Pk6AdJYHrw/heD3?= =?iso-8859-1?q?n98h/26dwIE5D7CdDFqRAFBnxy/pdtYnFfmmx5s3uWepaLh3EjrO+CK5lkKI?= =?iso-8859-1?q?EgKaRgoJGDPNKtIoWIMc4RbUwg4x8JcFZIPa1ZIYmbUNae+/EBxvtYvGDx6M?= =?iso-8859-1?q?7FaAa7fTUZMrkrr1I+hHQtYiGjYhz//89du1f/vHUrq05mHIMdNr6ZSS+TDM?= =?iso-8859-1?q?SIgtx2ztaFzon6DSqLurAhjSK6kOUhhFFrju5rBNwH7sZpoHRzbpoU7hwDhj?= =?iso-8859-1?q?SDnfQ9+EGhw/OO2Uo+YKIhU5+RGKlUCYR6/3ft+BsQNVkRbXozP5yFIIB7lp?= =?iso-8859-1?q?ZBlC4ZBUkHPnWqLX5fEEcS5GU7WLCIwNUCnCZZyk4ueJGMYtbAczv332zuAp?= =?iso-8859-1?q?nqt7Lyj2+XrXfg5GV/DndN7cgODE+wGr7YRKSJBlQK8rKRvrtD/CXUIn685v?= =?iso-8859-1?q?P4Ygbt4PKaiATWw6faBk1GPdFoTzptTvZlFRbLmWVJO/+vZqyZhmKp39VDxy?= =?iso-8859-1?q?AulG0C389R55k+qN0/lJ6mkh6rBMk2U91URxv00TUZ7Z13IS5x0RP86alQVD?= =?iso-8859-1?q?ywAIrJG94I8dbVLWK/ijUeqG6ENnKNJOm3CqROv7+vPNnzqvTJOHcWh4hrLZ?= =?iso-8859-1?q?f5Oj+bl6EQAIOFxWvLFpKAJa7zhijYb4lV6HD1DidGmwciDPNlnu8pew3E6+?= =?iso-8859-1?q?KFnL8OPKerJA0zu7A/C63CJ3xEFSRgE8R8MEAPZciLi8GI4++Zj5OjYAO0pq?= =?iso-8859-1?q?88ghXYJTS62JXzSPIHuYOjAOCxCbTBVh+84s5xpEgeMPbptD538Jn+MwDeJa?= =?iso-8859-1?q?OVzcMvUxsicSqTRL6/2v2xWJ90n1mCliFbGZxm53EJ2PnSGzCjBWYvW4ObcK?= =?iso-8859-1?q?rgGJlKEMSpJMR8Nf6qo89yUQORAoiF0selKwwKRt7HSTeDqyKJT1vlGMk+ur?= =?iso-8859-1?q?yE25AfBIum34dKJ1uoW0qIg+Gu8DGskmdlaQe7+4yKMoGxah5N7kRrr0Dx2c?= =?iso-8859-1?q?06Ws=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: a477f472-47bb-4d73-d4d9-08d9df1b031c X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jan 2022 09:22:15.8499 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Qc0+ghyqbVfzqEDJTSTQUbOZIUQdd+1Cem/vdEaISQjSDxFkk2+j1tpE2fXvEE6m0GvWqt83UQclVbM8s+OiDTpWTPymzhENKvQ68JvhBps= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB0235 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 7B9641C0017 X-Stat-Signature: gha1egecexca68tgbou389grx15x4qp4 Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 40.107.9.73 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu X-HE-Tag: 1643016139-83598 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: within_module_core() and within_module_init() are doing the exact same test, one on core_layout, the second on init_layout. In preparation of increasing the complexity of that verification, refactor it into a single function called within_module_layout(). Signed-off-by: Christophe Leroy --- include/linux/module.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/include/linux/module.h b/include/linux/module.h index c9f1200b2312..33b4db8f5ca5 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -565,18 +565,27 @@ bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr); bool is_module_percpu_address(unsigned long addr); bool is_module_text_address(unsigned long addr); +static inline bool within_range(unsigned long addr, void *base, unsigned int size) +{ + return addr >= (unsigned long)base && addr < (unsigned long)base + size; +} + +static inline bool within_module_layout(unsigned long addr, + const struct module_layout *layout) +{ + return within_range(addr, layout->base, layout->size); +} + static inline bool within_module_core(unsigned long addr, const struct module *mod) { - return (unsigned long)mod->core_layout.base <= addr && - addr < (unsigned long)mod->core_layout.base + mod->core_layout.size; + return within_module_layout(addr, &mod->core_layout); } static inline bool within_module_init(unsigned long addr, const struct module *mod) { - return (unsigned long)mod->init_layout.base <= addr && - addr < (unsigned long)mod->init_layout.base + mod->init_layout.size; + return within_module_layout(addr, &mod->init_layout); } static inline bool within_module(unsigned long addr, const struct module *mod)