Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1529005rdb; Mon, 2 Oct 2023 12:22:11 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH2M3+6ZqwDG+t+qs1iNHsAx3Jjfm68vx3tMIfp4jfOBBvt1N6tsTHGoUyg3G5meoEmSsz/ X-Received: by 2002:a05:6358:430c:b0:14c:92ea:b500 with SMTP id r12-20020a056358430c00b0014c92eab500mr12656955rwc.4.1696274531095; Mon, 02 Oct 2023 12:22:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696274531; cv=none; d=google.com; s=arc-20160816; b=MZiVncjyOqpzCQqEMlTGdpEa+GXFsCoPpbBy7iBuDCAhdfRhf089HpFC4p5r8UBopj VQBll296/ATsGsQtETQwtiiXq0Gw6zMa5Qtbl6xMOxObMbCWONtd0INuTEuZ+0Ls4rfK ZM35+5iSdVZZzlsI5FnWk6Md57/8OjJpIQrdX8gyaMzLO+k4f2kxKE6Dj5C/ZMrTKiqE haeUmFWLJ5ZefMecGPjl121KBhD/9eEC7iMW+d8C7kOr0VKqbFdw2n2PCdQkY5bRPEas NKpHtEV/L53ENAJaOyeK3tFTavjjKqpUPnnZUue1bUknRh/9e5xRi3HiBn22JKzp5+XN XgBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=pJAfxKKIDOmNQ6NAPWDPTRLLaIM+b+cKty2EQafbHM8=; fh=N7MyQAAWCSXQy5dNgvcvh5SJWZailG0Yojzw8BTWwQ8=; b=jXs18PxUxyCAuU7BN1D4TXyFh0OuPe/Py8CbqC7/deGUHS5Ex0a01+xhDNckJzf/ET ELBW29QBNe30T/ZFp7VB4eYm80eOII13Qo/DT8xmQbjipx8Vdv/WdHFldHMS88FAYQB2 FkDkcwjjQAnGCY9TiX60P2340+KhRqPeR5MrvuRK3qUsbICgh3Y54JRhABhB8lP8hDBv hRhLB2W+a7tyJQq0G5yxvAaex8eIzc+kR5uHm7UYDHLPR/vRPviQUAw9iX4G5KUqcscc E8BN3ZsDBsrPj20v/KPUosTbtRQmwS/monR0CALLVzxkajk0u+y2Ty06fTrs9X1eP/pd w/Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=hPjtMehO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id n7-20020a63f807000000b0055c1760dd8esi27694308pgh.380.2023.10.02.12.22.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 12:22:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=hPjtMehO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 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 (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id CEDAB805F4B5; Mon, 2 Oct 2023 09:01:56 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238378AbjJBQBo (ORCPT + 99 others); Mon, 2 Oct 2023 12:01:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238350AbjJBQBn (ORCPT ); Mon, 2 Oct 2023 12:01:43 -0400 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C258B8 for ; Mon, 2 Oct 2023 09:01:40 -0700 (PDT) Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3231d67aff2so13236385f8f.0 for ; Mon, 02 Oct 2023 09:01:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696262498; x=1696867298; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=pJAfxKKIDOmNQ6NAPWDPTRLLaIM+b+cKty2EQafbHM8=; b=hPjtMehO/f1RvGT0ZqMSgIN6v9zpED8cVW6ReBE6U1MWLUlG2M594f55fEb0tiZVJF V8hTLD1ldbrPMwf25Gsa/bpQRf7l+hjFZ9RTDxMpFgV4NBkUVaUuxBBqKeTSUNOi+7gv k7XU0gdiycEx6DcG4h/BP8CDt/gCirVk7wufVOdybLQUhY/ekA+YOemUSOeF6pF6IukC IO8BXwmc0fBrkreBK8tG3c3zQmSAV5NKtXsx5gfJlAlypnjsGEtQYG2B2WY4QUsi0E4u VQFykO4+HH1tCQDRWXR1LN1DNryDDQgIYV7L594V1w9Wc9BsXN6Dgtks/qmOOWOup5zR Fkvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696262498; x=1696867298; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pJAfxKKIDOmNQ6NAPWDPTRLLaIM+b+cKty2EQafbHM8=; b=BDyJnmjV4PH1pZaNPQvI5B0iOsyRT1B3sP9up34eruuo8+Ox4rzrxhGy5zKawqM+ok Ahei97EFjPNgC4Dm2PnK6imSOBEU7Rsoh4woASjLnbCiKJRSYg3ZRzulWkP+nOfJGrrT YYfeW06IgciLmSkV8jbWwpVu4StYeRUDE4n1ii8eZGjYfRIKSa/GdEMBnh81BsfYydQw EZwSLBxdkZ7U+vY2QUl1oAyLx9bbZtGH/DEiR6ynOhio3mtGqCBf1lrt4pJpredcDG8L XMPMgiXeHZ4PH74H7biW2oBgW3IpP7jwsGw7/LM12md//p05gY8si8DhSA+IzIO6cTmf +akg== X-Gm-Message-State: AOJu0YwjASYAC3YRX7M29mNGv7QwLzjt7mNc6EwvS+tNc9ANigsilt7A QUM5qCAt2M1t3czshc4bFfX7upImvzAQdyZwqvLqOQ== X-Received: by 2002:a5d:674a:0:b0:324:7a6b:d4fe with SMTP id l10-20020a5d674a000000b003247a6bd4femr11097545wrw.9.1696262498408; Mon, 02 Oct 2023 09:01:38 -0700 (PDT) MIME-Version: 1.0 References: <20231001054736.1586001-1-masahiroy@kernel.org> <20231001054736.1586001-2-masahiroy@kernel.org> In-Reply-To: <20231001054736.1586001-2-masahiroy@kernel.org> From: Nick Desaulniers Date: Mon, 2 Oct 2023 09:01:27 -0700 Message-ID: Subject: Re: [PATCH 2/2] modpost: factor out the common boilerplate of section_rel(a) To: Masahiro Yamada Cc: linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, Nathan Chancellor , Nicolas Schier Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,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 pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Mon, 02 Oct 2023 09:01:57 -0700 (PDT) On Sat, Sep 30, 2023 at 10:47=E2=80=AFPM Masahiro Yamada wrote: > > The first few lines of section_rel() and section_rela() are the same. > They both retrieve the index of the section to which the relocaton s/relocaton/relocation/ > applies, and skip known-good sections. This common code should be moved > to check_sec_ref(). > > Avoid ugly casts when computing 'start' and 'stop', and also make the > Elf_Rel and Elf_Rela pointers const. > > Signed-off-by: Masahiro Yamada Thanks for the patch! Reviewed-by: Nick Desaulniers > --- > > scripts/mod/modpost.c | 50 ++++++++++++++++++++++--------------------- > 1 file changed, 26 insertions(+), 24 deletions(-) > > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c > index 15d78fe152ac..0e18fe617ed1 100644 > --- a/scripts/mod/modpost.c > +++ b/scripts/mod/modpost.c > @@ -1425,17 +1425,10 @@ static void get_rel_type_and_sym(struct elf_info = *elf, uint64_t r_info, > } > > static void section_rela(struct module *mod, struct elf_info *elf, > - Elf_Shdr *sechdr) > + unsigned int fsecndx, const char *fromsec, > + const Elf_Rela *start, const Elf_Rela *stop) > { > - Elf_Rela *rela; > - unsigned int fsecndx =3D sechdr->sh_info; > - const char *fromsec =3D sec_name(elf, fsecndx); > - Elf_Rela *start =3D (void *)elf->hdr + sechdr->sh_offset; > - Elf_Rela *stop =3D (void *)start + sechdr->sh_size; > - > - /* if from section (name) is know good then skip it */ > - if (match(fromsec, section_white_list)) > - return; > + const Elf_Rela *rela; > > for (rela =3D start; rela < stop; rela++) { > Elf_Addr taddr, r_offset; > @@ -1465,17 +1458,10 @@ static void section_rela(struct module *mod, stru= ct elf_info *elf, > } > > static void section_rel(struct module *mod, struct elf_info *elf, > - Elf_Shdr *sechdr) > + unsigned int fsecndx, const char *fromsec, > + const Elf_Rel *start, const Elf_Rel *stop) > { > - Elf_Rel *rel; > - unsigned int fsecndx =3D sechdr->sh_info; > - const char *fromsec =3D sec_name(elf, fsecndx); > - Elf_Rel *start =3D (void *)elf->hdr + sechdr->sh_offset; > - Elf_Rel *stop =3D (void *)start + sechdr->sh_size; > - > - /* if from section (name) is know good then skip it */ > - if (match(fromsec, section_white_list)) > - return; > + const Elf_Rel *rel; > > for (rel =3D start; rel < stop; rel++) { > Elf_Sym *tsym; > @@ -1530,10 +1516,26 @@ static void check_sec_ref(struct module *mod, str= uct elf_info *elf) > > check_section(mod->name, elf, sechdr); > /* We want to process only relocation sections and not .i= nit */ > - if (sechdr->sh_type =3D=3D SHT_RELA) > - section_rela(mod, elf, sechdr); > - else if (sechdr->sh_type =3D=3D SHT_REL) > - section_rel(mod, elf, sechdr); > + if (sechdr->sh_type =3D=3D SHT_REL || sechdr->sh_type =3D= =3D SHT_RELA) { > + /* section to which the relocation applies */ > + unsigned int secndx =3D sechdr->sh_info; > + const char *secname =3D sec_name(elf, secndx); > + const void *start, *stop; > + > + /* If the section is known good, skip it */ > + if (match(secname, section_white_list)) > + continue; > + > + start =3D sym_get_data_by_offset(elf, i, 0); > + stop =3D start + sechdr->sh_size; > + > + if (sechdr->sh_type =3D=3D SHT_RELA) > + section_rela(mod, elf, secndx, secname, > + start, stop); > + else > + section_rel(mod, elf, secndx, secname, > + start, stop); > + } > } > } > > -- > 2.39.2 > --=20 Thanks, ~Nick Desaulniers