From patchwork Fri Dec 16 22:16:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Webb X-Patchwork-Id: 34112 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1227509wrn; Fri, 16 Dec 2022 14:21:17 -0800 (PST) X-Google-Smtp-Source: AMrXdXv/hEHKmB5ApGAKBxPWRRpaU4Iv2Img1HIBbBJCgP7Ff2gUcRSbGHlbA281L5AlPPuGPqNW X-Received: by 2002:a05:6402:cb1:b0:472:cf46:e4de with SMTP id cn17-20020a0564020cb100b00472cf46e4demr10056297edb.23.1671229277036; Fri, 16 Dec 2022 14:21:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671229277; cv=none; d=google.com; s=arc-20160816; b=R37ua5Y645tt3sFFbYKWW99iu7+fqZCvnN4XJsFTOnwVE+PCV+jj8iuV7H5abyyciP X/H4rk90dh4ho1EQLvtwnI6wkn5gWMyAzT97aoxj/XTj2Kw89/693HCwBnnXB/k2x+CF 8wYU6tP00qp4OvSeEyQVJVGyw0X7eKpWRBmL/GPLgTBhaDOJJla4QmYxT/aUSnGQeZLb 0+BhjV5SQJBsdKw/Uw+U5Fndwa20JOBSyximsH9ZH8/oEC/I1WfkJz6/xp8yaOT8SiZI 7tahCCWLyZIBAVqvJfsWIWKhdtALDMNFwk1yeAmygIARfga2jr071YQ5urtcbow/Cxxi WrWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=QIkoHfPVoGJGQCXWyZmF+mudK9y7JC4uGfB+VF9vmAA=; b=Fqy3cwYdmOKrNsRn2sIqUIf6iKqa5N0ECALQVVnCiuyTq9BrTqF3qslPuVMWoQ4/9x vbODj1XLuP+Kfa+A25k8MYGQocO+D+2RvL+Ifdsq3ICJnWK4uhQMBiKtIEwLSwbASgzv IusUz+dBr0DQ1CnZbIgxOMtaxFVE0qBpr70GFWEN5F3vXH51qtP4qNOJCUJ1L0w1hMR5 NIn+X6EPKVrucuDJiC6mr12ED3MmlyXRvTptko157Vro7nHS2OndEvQQHOwSPebLw2lF nLY1m/NUeUo0YFiSR16IZYQZo2W9VQw63q5p9fpfMqIK0x94j4IQhdl31qv01091sVIL 4RkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=DPM862br; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c12-20020a05640227cc00b00459b51c2b25si4065863ede.438.2022.12.16.14.20.53; Fri, 16 Dec 2022 14:21:17 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=DPM862br; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229965AbiLPWR0 (ORCPT + 99 others); Fri, 16 Dec 2022 17:17:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229731AbiLPWRX (ORCPT ); Fri, 16 Dec 2022 17:17:23 -0500 Received: from mail-io1-xd4a.google.com (mail-io1-xd4a.google.com [IPv6:2607:f8b0:4864:20::d4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CF1DE2A252 for ; Fri, 16 Dec 2022 14:17:20 -0800 (PST) Received: by mail-io1-xd4a.google.com with SMTP id r25-20020a6bfc19000000b006e002cb217fso2026380ioh.2 for ; Fri, 16 Dec 2022 14:17:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=QIkoHfPVoGJGQCXWyZmF+mudK9y7JC4uGfB+VF9vmAA=; b=DPM862br1ksx4WgfZPPdueiIQnI6WvqPmGTG1MgLblwtuOlS7D2+IHQhAHJWXU9iNG j4RxkkFEM0HoFL3kqNsdC+IJMWBTwI8W6+Ta5PvZplSXceS8nTDmbx2x+33J5oD92OFT g77b5zdEyCeTgxNQQFcZA/XalLB+/1uF5YTqvBjiIxsFzKG/Km8FlFj84+FnuoT0LMow HT2aw6HDm83sOt0XTM+xnEBPzPFUkRx+tiHqOWVrRF/4zSEfTDSIW0wZe/YA3+3tJQA8 F7V6Z8l7ZANhHSadRJglbkKVcT0i88Xi5gRe00KnPx6R6+C1xOoBUsZ+idFieWINkCzf aXbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QIkoHfPVoGJGQCXWyZmF+mudK9y7JC4uGfB+VF9vmAA=; b=swHBLyhoTTIPjGvzs6ZWTGUg4jQsdLEJ8yHU6S5ToXoArDdBDnCuOll6qfPDAfuNlF XZeZ5o8CYkHCzhDfKSo3zLj0iHSWZNUR+C9iHqj8riUMNJ2XjwaQkdmImnoLm2BR0EFQ aVFlAKpJaJqA9JFzvgm1gJyxDXmkeb01iisLIP/fuoi8D7G0qLUaOJ0dYpn7z7ZpAU5n WcGJDXPb64Omz9FaTOj2SKmO4cydWpY+U2ZbJ6SZCJJrz8nxfW/JCEY9+RWPfkVDZXbk cLxR7pDoGEURhbfCQXeIC1KqNuR19tiSBzg7Asi3ddfOpWSg6fTJ+nc8LQJCefEl1M8+ zjcg== X-Gm-Message-State: ANoB5pl1m5hBtTciKG/Syt5ltmKFAgYIzQ7Yl5mU3LlD39wIpCrvoyvp b3ptlqUmOyqtuJteXUZDlWhfqJSYCtaNUSs= X-Received: from allenwebb.c.googlers.com ([fda3:e722:ac3:cc00:2b:ff92:c0a8:12e8]) (user=allenwebb job=sendgmr) by 2002:a5d:9e4a:0:b0:6de:42ff:d96b with SMTP id i10-20020a5d9e4a000000b006de42ffd96bmr34882896ioi.58.1671229040270; Fri, 16 Dec 2022 14:17:20 -0800 (PST) Date: Fri, 16 Dec 2022 16:16:59 -0600 In-Reply-To: <20221216221703.294683-1-allenwebb@google.com> Mime-Version: 1.0 References: <20221216221703.294683-1-allenwebb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20221216221703.294683-2-allenwebb@google.com> Subject: [PATCH v7 1/5] module.h: MODULE_DEVICE_TABLE for built-in modules From: Allen Webb To: "linux-modules@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Luis Chamberlain , Greg Kroah-Hartman , "Rafael J. Wysocki" , Allen Webb X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752410910230946689?= X-GMAIL-MSGID: =?utf-8?q?1752410910230946689?= Implement MODULE_DEVICE_TABLE for build-in modules to make it possible to generate a builtin.alias file to complement modules.alias. Signed-off-by: Allen Webb --- include/linux/module.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/linux/module.h b/include/linux/module.h index ec61fb53979a9..49e4019393127 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -243,7 +243,15 @@ extern void cleanup_module(void); extern typeof(name) __mod_##type##__##name##_device_table \ __attribute__ ((unused, alias(__stringify(name)))) #else /* !MODULE */ -#define MODULE_DEVICE_TABLE(type, name) +/* The names may not be unique for built-in modules, so include the module name + * to guarantee uniqueness. + */ +#define MODULE_DEVICE_TABLE(type, name) \ +extern void *CONCATENATE( \ + CONCATENATE(__mod_##type##__##name##__, \ + __KBUILD_MODNAME), \ + _device_table) \ + __attribute__ ((unused, alias(__stringify(name)))) #endif /* Version of form [:][-]. From patchwork Fri Dec 16 22:17:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Webb X-Patchwork-Id: 34110 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1227359wrn; Fri, 16 Dec 2022 14:20:48 -0800 (PST) X-Google-Smtp-Source: AA0mqf7begToocA6I5SVCgHaKCD3fQff6W24Lr3+NJBQGj+/9Wa0hA0x/MHj81QuBVGK1LG8CqMC X-Received: by 2002:a05:6402:401b:b0:46c:e2f1:3a81 with SMTP id d27-20020a056402401b00b0046ce2f13a81mr31344819eda.37.1671229248586; Fri, 16 Dec 2022 14:20:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671229248; cv=none; d=google.com; s=arc-20160816; b=zvOTO9M6/7IkpusArndemh2qScHJbLbsM5znzPQj1N93j2nXkk3chTQ+c3ZivvB6mD cBA5K7uzLN6gKWz0uwvZDGUktFB9QI68nl3ZHkw/N0+ePwbup4wKU2wQB6IT8WUaPY25 QX+b9yY+wGAmqH6RNm/ugKTgOHzHNQ4pq5/hMY035Tq8iEwcdWMcK35wqEU1Mj+3sOUI tZSovfjyv7pKHjJXmJsJjs5eaaE97YDo969puivx8sTmD7PsfTJ6BcI/j6ZiJkyqMsxK NmHhVkUZj5k+riZZIpQt+Di7uupElJAkisZGLeNS6W3rX18tcoqDPcnCrrYZFbB17X9i OyyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=G0/vtfeve/G9ydeke/gLh4oQEre+L13iDXwcfVwzkg8=; b=zw2uxS0fQL2x4AcixQuZV1zdEmqqY/T/TF8dvOHK9YZqSH0zeO+7Bm+xq8iLpox7gL pCe+HYkHcRcIjV1iDKr9AGcrHnp7dqyfM2EwHol0KeptOOeVbBpNODY/yPDoUYPK8zQv TP9V2dRaUstWe8+Tm6C0n86gZWW5F41zJe1f0pPyT1MxMtNv3UCHkIxMx+vb/kivQS+b 3Yz/z7ScfPw0PuGMtCS/dxpI7qon3zbRULWbbxf5Z9XZmGAfvz6CAQtg22slxVbOAmuk kCkouW1cJpGj+KiEDVNg6zswk37fvDy7by1gz57iuCdGWubY+TWL0sPy9ha3iQ2VvY1g Nyqg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=XuNwKmwP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id js1-20020a17090797c100b00780e022dfb8si4333913ejc.494.2022.12.16.14.20.25; Fri, 16 Dec 2022 14:20:48 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=XuNwKmwP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230010AbiLPWRg (ORCPT + 99 others); Fri, 16 Dec 2022 17:17:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49248 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229996AbiLPWRX (ORCPT ); Fri, 16 Dec 2022 17:17:23 -0500 Received: from mail-io1-xd49.google.com (mail-io1-xd49.google.com [IPv6:2607:f8b0:4864:20::d49]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2716727DC9 for ; Fri, 16 Dec 2022 14:17:23 -0800 (PST) Received: by mail-io1-xd49.google.com with SMTP id n10-20020a6b590a000000b006e03471b3eeso2016715iob.11 for ; Fri, 16 Dec 2022 14:17:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=G0/vtfeve/G9ydeke/gLh4oQEre+L13iDXwcfVwzkg8=; b=XuNwKmwPpNlfKES3zcBJOF59W0eZv2AMPYDbfitG7Ycy+a7Q8uZ5QCspwLjWD88r4N qNEl4O2mUAUamEUPN2f4xsKafyXL5LRghVfKvYYYkihHNyh/fjFCWr4roR2GazK/JIPT SD0xAPysuyXz0C/a5JxcHcz76ur05fNnHe53fXhRx15SQ1eGnqGenRPXKcBwY0enWofR 0fWkGOzlCjCBHavz7gOEclKO4CHaxd3tBdECRyE7nciqto1C2kIiHJfMhdsEv1Do0QJA m9iI/5kMYVVHZ8qMSWC4P15VHtu//B+FQXkpMrwUaM80OPXVP/RSbuK8Wyw+OnrTevgz 4m6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=G0/vtfeve/G9ydeke/gLh4oQEre+L13iDXwcfVwzkg8=; b=dsHX3SmPY0oK4BTEFmV02Cn9HVyEt00YNBeoWHeB7M+CbH2izfyxsvX9HxaocRqnYT mujQ64rGYWpY4ivRoeS9l02iKFAwibKqf46WMiK78OPYN7NRd5cQPts13cBqXZgH2s5w cyUlGbJHiTjiM9S2TZP26hGaKP73LxIohsBjTmgcA8wiBQ6sy0UjGcbOimzNzRq8w37N 4NDcPfHxjSEVpLo2CMRLHwoVY7gdVA7qpkcuUumYmxVE+u+8/QEpXSZI07xILeFAxcRV fG5UwDviumBudjKtNosIRh1cNV/j2IbeDU7lEbC+ObkUujsy4k0amQFDbGgs5T7UlYBo FJ1A== X-Gm-Message-State: ANoB5pnarsxGNMgL5fMW9O8RT0ncy7Pcoc1y169JiJFkemfBcLg85kLP s4mBI+Oub60HzvLv7mj16u8ya36FZ1hZcyY= X-Received: from allenwebb.c.googlers.com ([fda3:e722:ac3:cc00:2b:ff92:c0a8:12e8]) (user=allenwebb job=sendgmr) by 2002:a05:6602:2bf0:b0:6e2:c12d:571e with SMTP id d16-20020a0566022bf000b006e2c12d571emr4547416ioy.32.1671229042549; Fri, 16 Dec 2022 14:17:22 -0800 (PST) Date: Fri, 16 Dec 2022 16:17:00 -0600 In-Reply-To: <20221216221703.294683-1-allenwebb@google.com> Mime-Version: 1.0 References: <20221216221703.294683-1-allenwebb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20221216221703.294683-3-allenwebb@google.com> Subject: [PATCH v7 2/5] modpost: Track module name for built-in modules From: Allen Webb To: "linux-modules@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Luis Chamberlain , Greg Kroah-Hartman , "Rafael J. Wysocki" , Allen Webb X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752410880954012248?= X-GMAIL-MSGID: =?utf-8?q?1752410880954012248?= Keep track of the module name when processing match table symbols. Signed-off-by: Allen Webb --- scripts/mod/file2alias.c | 37 +++++++++++++++++++++++++++++++++---- scripts/mod/modpost.h | 1 + 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 80d973144fded..458e41ae0f5f1 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -28,6 +28,7 @@ typedef Elf64_Addr kernel_ulong_t; #include #endif +#include #include #include @@ -1540,9 +1541,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, Elf_Sym *sym, const char *symname) { void *symval; - char *zeros = NULL; - const char *name, *identifier; - unsigned int namelen; + char *zeros = NULL, *modname_str = NULL; + const char *name, *identifier, *modname; + unsigned int namelen, modnamelen; /* We're looking for a section relative symbol */ if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections) @@ -1552,7 +1553,11 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT) return; - /* All our symbols are of form __mod____device_table. */ + /* All our symbols are either of form + * __mod____device_table + * or + * __mod_____kmod__device_table + */ if (strncmp(symname, "__mod_", strlen("__mod_"))) return; name = symname + strlen("__mod_"); @@ -1564,8 +1569,29 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, identifier = strstr(name, "__"); if (!identifier) return; + modnamelen = namelen; namelen = identifier - name; + /* In the vmlinuz.o case we want to handle __kmod_ so aliases from + * builtin modules are attributed correctly. + */ + modname = strstr(identifier + 2, "__kmod_"); + if (modname) { + modname += strlen("__kmod_"); + modnamelen -= (modname - name) + strlen("_device_table"); + modname_str = malloc(modnamelen + 1); + /* We don't want to continue if the allocation fails. */ + assert(modname_str); + memcpy(modname_str, modname, modnamelen); + modname_str[modnamelen] = '\0'; + } + + if (modname_str) + modname = modname_str; + else + modname = mod->name; + mod->builtin_name = modname; + /* Handle all-NULL symbols allocated into .bss */ if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) { zeros = calloc(1, sym->st_size); @@ -1597,6 +1623,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, } } free(zeros); + mod->builtin_name = NULL; + if (modname_str) + free(modname_str); } /* Now add out buffered information to the generated C source */ diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index 1178f40a73f3d..34fe5fc0b02cb 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -128,6 +128,7 @@ struct module { struct list_head missing_namespaces; // Actual imported namespaces struct list_head imported_namespaces; + const char *builtin_name; char name[]; }; From patchwork Fri Dec 16 22:17:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Webb X-Patchwork-Id: 34111 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1227410wrn; Fri, 16 Dec 2022 14:20:59 -0800 (PST) X-Google-Smtp-Source: AA0mqf6Gha2C+sYc3Vo2MNeX7wFd+mX6UAGwsSlILkQ3x9aIuF/+K5DHHskk3dr2L/Ogkpvj+KvZ X-Received: by 2002:a17:906:1614:b0:7aa:8f6c:334d with SMTP id m20-20020a170906161400b007aa8f6c334dmr24338655ejd.50.1671229259400; Fri, 16 Dec 2022 14:20:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671229259; cv=none; d=google.com; s=arc-20160816; b=Unn8k9vu0XtnWTHvRpYz7HM9kQl7pHfDbF32oNSV2Hf9XjDQ47ki1l6ufTwpd9Hsef oAdmVbowEgpw5NtBtkali+iAeZWbjlL2Io8avd2IpJKj+QZXquCGvc4/ewt29blLz/IG yKmcU9609rRCXJYCHxZyq5VUeHf9N5pOhsz2yQsNfWdlDpk59lKD0S7TDt1cTD2Sps3d Cf5ntCHvdBRknRXnzBXiZnu9rY2p7me2HuI0K2D7wFKaDR0amURryzBqgPZ4j4wyM3io OW9U+Jj3QifwL+N2Ebi3qSGrT8gjuMw+2iSYGXHL4ELwb4AdjgvgL9jrOAXIcaU8nLhT yf3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=H+RvplB5wkPH74MUb1wifMfzO8M5nZWLX+/SXGO5TdI=; b=i4NCDQuMG1mhD9qbLm5R60SYuqMzkqv04PKI/2xEOAvGxHkL8QWIC+GQrct80BogV1 +PGfx9KwFAG/FVlvrkGiekYW1TTRJvggipknA6IXARcdcXcDJAbEfhay4r4Csoi5hR0R 7u+krGu/aFIljLxlUukPuWTvh0IKuNDQFY3fybVg6oKtBR6N7VNLQTn3Su4sxGcWgf1h BKAY4ANU3PNgovrp/9UEPoM+X6i00U52h3epyaoYOeC83QLxZnVOeV74ZW/H0Jv65XmI e1g/CZzMdegpviwemk1ObWDmzGA3aRBiBvL3+Z4Reepy0sx3J83DcifehDWieM5XDYp/ gX2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=q0b1jj9N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ga4-20020a1709070c0400b007becf776d7esi3765091ejc.462.2022.12.16.14.20.36; Fri, 16 Dec 2022 14:20:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=q0b1jj9N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229554AbiLPWRk (ORCPT + 99 others); Fri, 16 Dec 2022 17:17:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49246 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbiLPWRZ (ORCPT ); Fri, 16 Dec 2022 17:17:25 -0500 Received: from mail-io1-xd4a.google.com (mail-io1-xd4a.google.com [IPv6:2607:f8b0:4864:20::d4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60B402A95F for ; Fri, 16 Dec 2022 14:17:24 -0800 (PST) Received: by mail-io1-xd4a.google.com with SMTP id n10-20020a6b590a000000b006e03471b3eeso2016733iob.11 for ; Fri, 16 Dec 2022 14:17:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=H+RvplB5wkPH74MUb1wifMfzO8M5nZWLX+/SXGO5TdI=; b=q0b1jj9NvHbp3f43Na/217O79cCxnY5MMJB+tmd2m4a9KAMjYiB8BlpdORdqG+ungW 8rKFadTJM54bK/kumgRMVr1Yguw7JF71Hv3soXH7RaMR95ECsBNUxxq3e1WOSa+u2OI1 1Y6ix2z7qAGh4XvWq0HnpSOSARb3/Zy5jlbl3nwZp6nIH3KtoMlRZXkF8EBLJGK7iYWk 6niD7L0/pqfwMKn3UasRrTUGL8l+xEQJlvmdC1bwnoLHzUAGDpruXScii9m9DKrMoHDk /aWSB5puTi6SOEntsCfF2g/caz7oOkEyWLgRdcovsvqwpdvh1ZMq8KbdiMvYVh3WCVC5 RcdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=H+RvplB5wkPH74MUb1wifMfzO8M5nZWLX+/SXGO5TdI=; b=zMSa/gwC3ub2Upy36e7IPjXm0IU0g6Q5O4fs3jzrb2/zT52ZdR7DBer7VbHBsfSF+y x4mPnKHPtaIqMGXR2vJ/s1AfU9sUcDUk+4T1g4S1LdG5A72zjOgKKwsLpnAsgHIF+IUL VFGwzTlv2DR2odvkoZsbiVyYkTrKzfrtghGLEd+F21TzRq7TDTmRNArmkbDnbjCyTzhw J/nMtiM6FMY+OeAtoVkSIZ08TrYWRCTZnA9I1AEncMxUBu0kCt8oOmNhr6e7nHLCtmxa 5t1/eH4mFeETQmB1hn8BrHRsjKg3mzeSIfquT6bDunoi1mXGC4CXFKT2FomHqLa90xZM x7Ig== X-Gm-Message-State: AFqh2krf2WY7bJ4muvopHOsxuTakRvBWj9T88NUPnNekG7VW9mtA1Iqu TgWY95Xadt0rQcgKtRnC/ym7M4BxR6eHm2g= X-Received: from allenwebb.c.googlers.com ([fda3:e722:ac3:cc00:2b:ff92:c0a8:12e8]) (user=allenwebb job=sendgmr) by 2002:a6b:4415:0:b0:6e6:279:2e74 with SMTP id r21-20020a6b4415000000b006e602792e74mr235776ioa.10.1671229043653; Fri, 16 Dec 2022 14:17:23 -0800 (PST) Date: Fri, 16 Dec 2022 16:17:01 -0600 In-Reply-To: <20221216221703.294683-1-allenwebb@google.com> Mime-Version: 1.0 References: <20221216221703.294683-1-allenwebb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20221216221703.294683-4-allenwebb@google.com> Subject: [PATCH v7 3/5] modpost: Add -b option for emitting built-in aliases From: Allen Webb To: "linux-modules@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Luis Chamberlain , Greg Kroah-Hartman , "Rafael J. Wysocki" , Allen Webb X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752410891894371247?= X-GMAIL-MSGID: =?utf-8?q?1752410891894371247?= This adds an unimplemented command line flag for writing the built-in aliases to a file. Signed-off-by: Allen Webb --- scripts/mod/modpost.c | 23 +++++++++++++++++++++-- scripts/mod/modpost.h | 1 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 2c80da0220c32..845f157d69ebc 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -2165,6 +2165,19 @@ static void write_if_changed(struct buffer *b, const char *fname) write_buf(b, fname); } +/* Write the builtin aliases to the specified file. */ +static void write_builtin(const char *fname) +{ + struct buffer buf = { }; + struct module *mod; + + list_for_each_entry(mod, &modules, list) { + buf_write(&buf, mod->modalias_buf.p, mod->modalias_buf.pos); + } + write_if_changed(&buf, fname); + free(buf.p); +} + static void write_vmlinux_export_c_file(struct module *mod) { struct buffer buf = { }; @@ -2321,13 +2334,16 @@ int main(int argc, char **argv) { struct module *mod; char *missing_namespace_deps = NULL; - char *dump_write = NULL, *files_source = NULL; + char *builtin_write = NULL, *dump_write = NULL, *files_source = NULL; int opt; LIST_HEAD(dump_lists); struct dump_list *dl, *dl2; - while ((opt = getopt(argc, argv, "ei:mnT:o:awENd:")) != -1) { + while ((opt = getopt(argc, argv, "b:ei:mnT:o:awENd:")) != -1) { switch (opt) { + case 'b': + builtin_write = optarg; + break; case 'e': external_module = true; break; @@ -2390,6 +2406,9 @@ int main(int argc, char **argv) write_mod_c_file(mod); } + if (builtin_write) + write_builtin(builtin_write); + if (missing_namespace_deps) write_namespace_deps_files(missing_namespace_deps); diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h index 34fe5fc0b02cb..c55a6aeb46bfd 100644 --- a/scripts/mod/modpost.h +++ b/scripts/mod/modpost.h @@ -123,6 +123,7 @@ struct module { bool has_init; bool has_cleanup; struct buffer dev_table_buf; + struct buffer modalias_buf; char srcversion[25]; // Missing namespace dependencies struct list_head missing_namespaces; From patchwork Fri Dec 16 22:17:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Webb X-Patchwork-Id: 34109 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1227316wrn; Fri, 16 Dec 2022 14:20:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf7kGYni/rsoh91jZ1dPjzqMCXKCoqXV11qRpV6IThozrJQGlp7f1+GRrzjIzm5E2Y24GNfK X-Received: by 2002:aa7:d604:0:b0:470:4d71:6d43 with SMTP id c4-20020aa7d604000000b004704d716d43mr14009566edr.25.1671229242472; Fri, 16 Dec 2022 14:20:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671229242; cv=none; d=google.com; s=arc-20160816; b=JGJEkHg9pEOnhuDee7tNc53cWdMpDycOq7bKN5gU/KgaULQ2/nCcxuZSyJ/hSIdBy2 7hlboz30u+48lP+yj90940igNVmilhi7abp8U+YmSq3i4FDdz4oh8icIqaSYqGKWEmVx qOQEwymf/aZLHI2Sb5HBWN59bAvGpQAR1MbgG103wj9yvZ/GvzW8cNnSzoYOh5mA/ZXz FqjJPqyZbz0C+HnI/tF6C6lPc87RbZcJnavlF8i/vlXZv0sxB8u0YHZaUB/S5+VrINlw 9C6rB5LQWpOJhtInLAfNIg4RAjkypIjKmixZJfVTsv7znIrwpYHDQVAwV5hZhDXjegss G0pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=XLvu9YuJyEq4PpXLboWGHlPW5BtXq8Iaz4s/vCpOC+c=; b=ljI3IeJKJ+X+eT8lBBf5nc/RG3POcfnrNcsUFwDMHDY0TQoaLDbW503GvDUm/ksHO6 acnsD3wBd2zoyivSa+nx7C2fO21IPjeWNRRhlsd9gd155bCYdTKBBbmPeyFO8scMzRWj ubanBVbtriL1u+X0P9nYIjPYwLTuCj+oNqcvcM7v1e0XotDocKHFsIEX7ZGFUXdsMonr cMOiOIa9rnZiTwIPUoHCwmauQGW6ynvahs1DxCugYxIrMrLOP97Djvmq5StyllqNflQ3 9veJGxtNi0eNwXcC/J6m/GLfllcgHxEuIMQMbS+vR+3z40QTr9xLaimFo/Q6BzWFJGsW lkxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=e3ljpji6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t16-20020a056402525000b0046329e2724dsi4144179edd.86.2022.12.16.14.20.18; Fri, 16 Dec 2022 14:20:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=e3ljpji6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230042AbiLPWRt (ORCPT + 99 others); Fri, 16 Dec 2022 17:17:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229957AbiLPWR0 (ORCPT ); Fri, 16 Dec 2022 17:17:26 -0500 Received: from mail-io1-xd4a.google.com (mail-io1-xd4a.google.com [IPv6:2607:f8b0:4864:20::d4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3969127917 for ; Fri, 16 Dec 2022 14:17:25 -0800 (PST) Received: by mail-io1-xd4a.google.com with SMTP id a14-20020a6b660e000000b006bd37975cdfso2027071ioc.10 for ; Fri, 16 Dec 2022 14:17:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=XLvu9YuJyEq4PpXLboWGHlPW5BtXq8Iaz4s/vCpOC+c=; b=e3ljpji6ioK1JmswqGeMT59i8kwd6MfvqxyKihoCalO46QZMcp+qNJ22Sa/dWGHS61 hQt7Dcyt5iYvhfhIxS1m6bBXl92EiA703yaQJ6fsCkkgwyVN8osyFtrUyR75cY1ZUBA9 krWROrvfwpL/5grEcfPSXdqmcM6dLMUIEz9IZngi0SPq+C6F/bm6m4UDENUlS2E+UW89 HiSgi2UX07+CfWBK1m25AL8+Q+DKbt6diCGA6Yp0haO7lrWhf5tptnK3ipFVWLh448Gr ED8NdLMYqYqRdSeDeVmHP83G0e6eHTb+aniw1W2rC2ClRLHS3O47uYwiwaLCj8BxeZq1 s4gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=XLvu9YuJyEq4PpXLboWGHlPW5BtXq8Iaz4s/vCpOC+c=; b=oDT+8asFkeNAmqxhl5uUjTb5309j5kkoEtdFu6oVEpWbc9Td3H4CpoT6LTS55yuzYB JHpoh6iH8SiaIfDGBL7PoGuYhl4InADiRbUzM2yUr7spC0zMtD1LFnHhvqjwrCivJXYO o/2vWWIDlYJ3/wH2dR0MnlPpZzV+ZwY4GDxS2KDdgKOM1U9dSaa3+8YOOEve3wxKfeh8 gi6svlPJZMIpuY5Sez6jalBUJS8qcX32vy9EmsyXrKQhLw4iT/m+EXk+PwlYS08NXEp5 XGz6NjqP/5fHJ+iDAT2fZxTYRUc4SVdJrkZ9b7JfOSWtj44UJ+Ewgj5gUFy2jCALLx+3 lvhQ== X-Gm-Message-State: ANoB5pny3So0zOqGSNzkDFGXdOn/KclMi8XEbN7utcU+jgy9UDDiKxcu LtmpXyVwEBdiO2ulq2zwrGYMqM+Dn972zI4= X-Received: from allenwebb.c.googlers.com ([fda3:e722:ac3:cc00:2b:ff92:c0a8:12e8]) (user=allenwebb job=sendgmr) by 2002:a5e:8c10:0:b0:6e3:102d:4826 with SMTP id n16-20020a5e8c10000000b006e3102d4826mr1519940ioj.123.1671229044644; Fri, 16 Dec 2022 14:17:24 -0800 (PST) Date: Fri, 16 Dec 2022 16:17:02 -0600 In-Reply-To: <20221216221703.294683-1-allenwebb@google.com> Mime-Version: 1.0 References: <20221216221703.294683-1-allenwebb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20221216221703.294683-5-allenwebb@google.com> Subject: [PATCH v7 4/5] file2alias.c: Implement builtin.alias generation From: Allen Webb To: "linux-modules@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Luis Chamberlain , Greg Kroah-Hartman , "Rafael J. Wysocki" , Allen Webb X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752410874148235205?= X-GMAIL-MSGID: =?utf-8?q?1752410874148235205?= This populates the mod->modalias_buf with aliases for built-in modules when modpost is run against vmlinuz.o. Signed-off-by: Allen Webb --- scripts/mod/file2alias.c | 55 +++++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 458e41ae0f5f1..8ed08154b3d81 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -232,6 +232,8 @@ static void do_usb_entry(void *symval, add_wildcard(alias); buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"%s\");\n", alias); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias %s %s\n", alias, mod->builtin_name); } /* Handles increment/decrement of BCD formatted integers */ @@ -376,9 +378,13 @@ static void do_of_entry_multi(void *symval, struct module *mod) *tmp = '_'; buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"%s\");\n", alias); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias %s %s\n", alias, mod->builtin_name); strcat(alias, "C"); add_wildcard(alias); buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"%s\");\n", alias); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias %s %s\n", alias, mod->builtin_name); } static void do_of_table(void *symval, unsigned long size, @@ -610,12 +616,18 @@ static void do_pnp_device_entry(void *symval, unsigned long size, buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"pnp:d%s*\");\n", *id); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias pnp:d%s* %s\n", + *id, mod->builtin_name); /* fix broken pnp bus lowercasing */ for (j = 0; j < sizeof(acpi_id); j++) acpi_id[j] = toupper((*id)[j]); buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias acpi*:%s:* %s\n", + acpi_id, mod->builtin_name); } } @@ -662,19 +674,25 @@ static void do_pnp_card_entries(void *symval, unsigned long size, } /* add an individual alias for every device entry */ - if (!dup) { - char acpi_id[PNP_ID_LEN]; - int k; - - buf_printf(&mod->dev_table_buf, - "MODULE_ALIAS(\"pnp:d%s*\");\n", id); - - /* fix broken pnp bus lowercasing */ - for (k = 0; k < sizeof(acpi_id); k++) - acpi_id[k] = toupper(id[k]); - buf_printf(&mod->dev_table_buf, - "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id); - } + if (dup) + continue; + char acpi_id[PNP_ID_LEN]; + int k; + + buf_printf(&mod->dev_table_buf, + "MODULE_ALIAS(\"pnp:d%s*\");\n", id); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias pnp:d%s* %s\n", + id, mod->builtin_name); + + /* fix broken pnp bus lowercasing */ + for (k = 0; k < sizeof(acpi_id); k++) + acpi_id[k] = toupper(id[k]); + buf_printf(&mod->dev_table_buf, + "MODULE_ALIAS(\"acpi*:%s:*\");\n", acpi_id); + if (mod->builtin_name) + buf_printf(&mod->modalias_buf, "alias acpi*:%s:* %s\n", + acpi_id, mod->builtin_name); } } } @@ -1476,10 +1494,13 @@ static void do_table(void *symval, unsigned long size, size -= id_size; for (i = 0; i < size; i += id_size) { - if (do_entry(mod->name, symval+i, alias)) { - buf_printf(&mod->dev_table_buf, - "MODULE_ALIAS(\"%s\");\n", alias); - } + if (!do_entry(mod->name, symval + i, alias)) + continue; + buf_printf(&mod->dev_table_buf, "MODULE_ALIAS(\"%s\");\n", alias); + if (!mod->builtin_name) + continue; + buf_printf(&mod->modalias_buf, "alias %s %s\n", alias, + mod->builtin_name); } } From patchwork Fri Dec 16 22:17:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Webb X-Patchwork-Id: 34108 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp1226849wrn; Fri, 16 Dec 2022 14:19:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf5ou0Vx8jNtCLh1d+I5FrAQft0JeKxPc5eny59zQgpIZuVYEop4OReJDNNxPbp277+qDojZ X-Received: by 2002:a17:906:b34c:b0:7c1:1901:a445 with SMTP id cd12-20020a170906b34c00b007c11901a445mr26302694ejb.20.1671229178113; Fri, 16 Dec 2022 14:19:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671229178; cv=none; d=google.com; s=arc-20160816; b=Vr3ham2XPuccVype0SsK6BJLDudkshvuZCUPrCCPVhjwcd8Icjj0xD0zVs9NBpuGqu ofz2iCw3nSyaske83rb+wy5ruts2BZbwJKVpzXCLnNehuRicEyDjlf2ZKxNEBFnJOmOC WeojE+6xGOk39lIujdaNtt4W4DvGGjB+F/BwgjiLGNZZol0lvjCha2GlsopT+upMJRGo 97lQU4GNicaHCxV9MOy3oibLkBlcv4EmlK8JoJNl9HD36d3Ug6vw5xwqPeUlYnWautQx ooDsl9X53j4QkttRczRFiKKS8W/rnkpDqa7koPp/ixRv5Vt7JZKzL0NF0mESA9uGEI4j U74A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=iIc91OoDv/mBPCGHIucL2csPnIlsRLcBZ/NTNtcT38Q=; b=HK2VdamgnvN/z38Ai6Uz0J2MakB3pBuVtmNdk3tIiYcH6DpUb4N3kz/3CkHh/b3GLk v4BQ2HyPwQJLfVjz7lnDoHKuJ8q4NQOrn31NiQmXiRWgOT8lmQ23E6QrxzdiE7nfmz7H kpUjao3ThYn6omRNXoURQTiT2teQuGd+TX4uh1nNfGKw16HkgfCh8dFy1Nc4UuP57wmf OyVy2Ogx9z8+x30AXLgc3/XWZi2c1NojciFNzjohcYQ0BzZ85BW441m3Sc4+lSekuW+0 g/3xl0oHnJrypA8/E9+6xjAWfhetWMNTciFEUQ9xG/9qYpdOtMq98n9Pk7D99GwFYnHP Bl7w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=hAoT5MIA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id st9-20020a170907c08900b007c0e15d36b8si3080331ejc.732.2022.12.16.14.19.14; Fri, 16 Dec 2022 14:19:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=hAoT5MIA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230077AbiLPWRy (ORCPT + 99 others); Fri, 16 Dec 2022 17:17:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229883AbiLPWRd (ORCPT ); Fri, 16 Dec 2022 17:17:33 -0500 Received: from mail-ot1-x349.google.com (mail-ot1-x349.google.com [IPv6:2607:f8b0:4864:20::349]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 748B42A703 for ; Fri, 16 Dec 2022 14:17:26 -0800 (PST) Received: by mail-ot1-x349.google.com with SMTP id bq2-20020a056830388200b00672e4a07168so2000988otb.2 for ; Fri, 16 Dec 2022 14:17:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=iIc91OoDv/mBPCGHIucL2csPnIlsRLcBZ/NTNtcT38Q=; b=hAoT5MIAnuQSmqmxxyxbUJFAq8kFycgaIH3Rd2PXnLLgq4zV8nNoyOLPpXnYFa90MJ S/Y97RfYpDzWFWmFoI7ftgkP5qIXUmtQycstRGSutXYJQNRXpI+/tA5cXZ4MkpqC8m9h cdSrO4eoWj8H2mN8FnnHxk2Rf2m10M6jdxzt54kh/QZlJFj+8othZIIk4iBw9mv518Wa 1nQCSs5NUtfc0KkQN4P1EoPdmiYOe5KUsMZcNEYfChG0LL7SEfTDyV6SdUUiun7x6Vqh z6UcYgV6HizryvFbeMJ1FomnoFuWgB4DkUC10Huv6lBsxzb6LQvZYjqwm7y4dJedWs6M eNug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iIc91OoDv/mBPCGHIucL2csPnIlsRLcBZ/NTNtcT38Q=; b=UFywerS2bClcFx2k94TlqM5nbAIm4GgKrlQ3F3KmcEYrvtjJiHYUkpPPgurX9eP4xF s6GkA9NxQrEOVTQRhVZmd9FcCEoEDulW1mll69QyMsfQla+TuCV1ZD5jWzvi+3OmFyM+ pKoDQAACv/l521NZpicUZNAiXNPNZe0CwFbz9Aadg/dAw7K1tB2A7bY17D8Rdu/TqL+b YZ/lYLZq5PU2eLrDLjlnDjRsH+KBGzGLsEkcoGymQOdd1W0objT3qeGRu33m/JHJE95m vK5C3+IdRw9dsvDpG34xlvUY5zveSXHg29Wl9sknTNPxDxpv/PkODbQlyhaY+ZDxVjd6 KtKA== X-Gm-Message-State: AFqh2ko0KOfRhezVrTv1ngqTHDBNfY44WLQY2K9wt3w1r4LkyoXbUtMP L01TLtONLbHWLAV19SxyufeQ4u2prtJGaoc= X-Received: from allenwebb.c.googlers.com ([fda3:e722:ac3:cc00:2b:ff92:c0a8:12e8]) (user=allenwebb job=sendgmr) by 2002:a05:6870:6b8d:b0:143:53aa:5813 with SMTP id ms13-20020a0568706b8d00b0014353aa5813mr717884oab.161.1671229045721; Fri, 16 Dec 2022 14:17:25 -0800 (PST) Date: Fri, 16 Dec 2022 16:17:03 -0600 In-Reply-To: <20221216221703.294683-1-allenwebb@google.com> Mime-Version: 1.0 References: <20221216221703.294683-1-allenwebb@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20221216221703.294683-6-allenwebb@google.com> Subject: [PATCH v7 5/5] build: Add modules.builtin.alias From: Allen Webb To: "linux-modules@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Luis Chamberlain , Greg Kroah-Hartman , "Rafael J. Wysocki" , Allen Webb X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752410806438307616?= X-GMAIL-MSGID: =?utf-8?q?1752410806438307616?= Generate modules.builtin.alias using modpost and install it with the modules. Signed-off-by: Allen Webb --- .gitignore | 1 + Makefile | 1 + scripts/Makefile.modpost | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 47229f98b327b..40a90bca89641 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ modules.order /System.map /Module.markers /modules.builtin +/modules.builtin.alias /modules.builtin.modinfo /modules.nsdeps diff --git a/Makefile b/Makefile index 78525ebea8762..572f364f40538 100644 --- a/Makefile +++ b/Makefile @@ -1558,6 +1558,7 @@ __modinst_pre: fi @sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order @cp -f modules.builtin $(MODLIB)/ + @cp -f modules.builtin.alias $(MODLIB)/ @cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/ endif # CONFIG_MODULES diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost index e41dee64d429c..94c1d66c7769a 100644 --- a/scripts/Makefile.modpost +++ b/scripts/Makefile.modpost @@ -15,6 +15,7 @@ # 2) modpost is then used to # 3) create one .mod.c file per module # 4) create one Module.symvers file with CRC for all exported symbols +# 5) create modules.builtin.alias the aliases for built-in modules # Step 3 is used to place certain information in the module's ELF # section, including information such as: @@ -51,6 +52,21 @@ ifneq ($(findstring i,$(filter-out --%,$(MAKEFLAGS))),) modpost-args += -n endif +vmlinux.o-if-present := $(wildcard vmlinux.o) +ifneq ($(vmlinux.o-if-present),) +output-builtin.alias := modules.builtin.alias +modpost-args += -b .modules.builtin.alias.in +.modules.builtin.alias.in: $(output-symdump) + @# Building $(output-symdump) generates .modules.builtin.alias.in as a + @# side effect. + @[ -e $@ ] || $(MODPOST) -b .modules.builtin.alias.in $(vmlinux.o-if-present) + +$(output-builtin.alias): .modules.builtin.alias.in + sort -o $@ $^ + +__modpost: $(output-builtin.alias) +endif + ifeq ($(KBUILD_EXTMOD),) # Generate the list of in-tree objects in vmlinux @@ -78,7 +94,6 @@ targets += .vmlinux.objs .vmlinux.objs: vmlinux.a $(KBUILD_VMLINUX_LIBS) FORCE $(call if_changed,vmlinux_objs) -vmlinux.o-if-present := $(wildcard vmlinux.o) output-symdump := vmlinux.symvers ifdef KBUILD_MODULES