Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp441711ybh; Wed, 18 Mar 2020 02:50:57 -0700 (PDT) X-Google-Smtp-Source: ADFU+vv4Cy3u8UNm/vSZ7wL9t/Rr5CqAnxVGOPj1Z7rYIrvbdbIJMtDA+M2J4aRZHO1x9f9iYcVH X-Received: by 2002:a05:6830:22ee:: with SMTP id t14mr468553otc.280.1584525057256; Wed, 18 Mar 2020 02:50:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584525057; cv=none; d=google.com; s=arc-20160816; b=Puz8YubYw1nXotNY/K40RhMTO3jEETXLGXwWZfrUSfVtrTjOPeVLWfc46jKxBbNz/w cGPumWySkv6ZQ+JK88ZbgUWVO/8URw4hTV2+HbryOUhkMtWf6KAgKfv+Fa8Kf8lXts2S a0TO0JLmkcdFqa00nAhTWuYRwIlA8XQb1odntDaVt1Il86NxSZSNR1HVsKWfeywZGAAV a/N7gYiEAIG5+bFYpiN7L+r5wGy0XWviYloqf9ATJVXUHIAIJyuhAYMJqmm4tKMF1MCd kRDr3W9R0aem4ozj/5TCWUKVux7dy8Yu0yVjOuN25ACpSfsbshYzgZzkvzVqP+ylBeK1 riuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature:dkim-filter; bh=chiklVzBctTlLbxGf2Dcd0qlUqvFAB8Y+B4FfJ0EYR8=; b=iVsCitUJz7ehwGYd4g9He16pcHJ40YEO5mJJEE8XsmFBcSxiSR7q0hvBgAwueLKzCA 30Edg46zzQ+OA39lv+wwZRWgiqncVfo10OmSVL2Awov7wP5bzuuGYe2rQHcEwxJuugCL YCjZNTeSlikgT/ZKqCR+RmhIrA2qWboEkQZbJdIcW7wp5OPk11UHOh3hfycZAxxVp/cp QNMf2hpT1QAoYT9kVzK+jIvWY/+I03wG2qk12acNa+qvrRVtEC/DigCTh1oa6TZFxpZL wz9VsQDU4cIyg/xDLy4R6lS6Vn9u+5AMh28Jq9ZbwgBRh9zwPWGMbWZhZPZE3uUb2q/J QY4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VCGDYdMO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m125si2911661oia.240.2020.03.18.02.50.45; Wed, 18 Mar 2020 02:50:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=VCGDYdMO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727513AbgCRJuY (ORCPT + 99 others); Wed, 18 Mar 2020 05:50:24 -0400 Received: from conssluserg-05.nifty.com ([210.131.2.90]:24579 "EHLO conssluserg-05.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726786AbgCRJuY (ORCPT ); Wed, 18 Mar 2020 05:50:24 -0400 Received: from mail-vs1-f43.google.com (mail-vs1-f43.google.com [209.85.217.43]) (authenticated) by conssluserg-05.nifty.com with ESMTP id 02I9oKQL003768; Wed, 18 Mar 2020 18:50:20 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-05.nifty.com 02I9oKQL003768 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1584525021; bh=chiklVzBctTlLbxGf2Dcd0qlUqvFAB8Y+B4FfJ0EYR8=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=VCGDYdMO0tYz6eQOpRT7lOOmN+don6FrPMQ7LUkqhlZZRIfOVFfTRE3Klz/yMqj9y 7Dx3bTg4/hYPpT1iutfMzHx7nfOY+0nqRRiqjctxE2RMFLbyg8oUjUMYILChPHFPUM JWHcn5/Yae/acuLqnqadMyva9Y99VNhlnI2uKeTMEDZCNDeiUtzyOTqBOf1FJ9TPHT T2PHuVFVGliZXp6qQ0IGsl6vkym8a14J3GfGXxlAgFt9ycPOZiagCS4PIl6/5/ZHTT +aYPJv7qlKgimdPWExK8atFjrp+vL/LDBirJImsDQ6R4+nJgthLz5SIjte5dV8fcoN 6xIqWSuenQDRA== X-Nifty-SrcIP: [209.85.217.43] Received: by mail-vs1-f43.google.com with SMTP id z125so15965087vsb.13; Wed, 18 Mar 2020 02:50:20 -0700 (PDT) X-Gm-Message-State: ANhLgQ0qWZftZTWvPbzmzKhD5GM6LcXukZs9co57dkk81fq4cpfMoXNe pHkgMfIEvbtyJmlUy75xOYDo5npeOn87P33TQME= X-Received: by 2002:a67:3201:: with SMTP id y1mr2566856vsy.54.1584525019426; Wed, 18 Mar 2020 02:50:19 -0700 (PDT) MIME-Version: 1.0 References: <20200316122820.11032-1-yangx.jy@cn.fujitsu.com> <5E702236.8070109@cn.fujitsu.com> In-Reply-To: <5E702236.8070109@cn.fujitsu.com> From: Masahiro Yamada Date: Wed, 18 Mar 2020 18:49:43 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] modpost: Get proper section index by get_secindex() instead of st_shndx To: Xiao Yang Cc: Michal Marek , Linux Kbuild mailing list , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 17, 2020 at 10:05 AM Xiao Yang wrote: > > On 2020/3/16 20:28, Xiao Yang wrote: Thanks for catching this bug. > > (uint16_t) st_shndx is limited to 65535(i.e. SHN_XINDEX) so sym_get_dat= a() gets > > wrong section index by st_shndx if object file(e.g. vmlinux.o) has more= than > Hi, > > It seems better to say that sym_get_data() gets wrong section index by > st_shndx if requested symbol contains extended section index that is > more than 65535. Sounds good to me. > Thanks, > Xiao Yang > > 65535 sessions. In this case, we need to get proper section index by .= symtab_shndx > > section. > > > > Module.symvers generated by building kernel with "-ffunction-sections -= fdata-sections" > > shows the issue(i.e. cannot get 89902 by st_shndx): > > ------------------------------------------------------------------- > > [root@Fedora-30 linux]# file Module.symvers > > Module.symvers: data > > [root@Fedora-30 linux]# head -n1 Module.symvers > > 0x5caf3011 ipv6_chk_custom_prefix =E2=96=92=E2=96=92=E2=96=92=E2= =96=92=E2=96=92=E2=96=92=E2=96=92=E2=96=92 vmlinux EXPORT_SYMBOL Could you delete this dump? I'd like to avoid garbling where possible. > > ... > > [root@Fedora-30 linux]# readelf -s -W vmlinux.o | grep __kstrtabns_ipv6= _chk_custom_prefix > > 199174: 0000000000032578 1 OBJECT LOCAL DEFAULT 89902 __kstrtabns= _ipv6_chk_custom_prefix > > [root@Fedora-30 linux]# readelf -S -W vmlinux.o | grep 89902 > > [89902] __ksymtab_strings PROGBITS 0000000000000000 a94e00 03= 45a2 00 A 0 0 1 > > ------------------------------------------------------------------- > > > > Fixes: afa0459daa7b ("modpost: add a helper to get data pointed by a sy= mbol") Strictly speaking, this commit does not introduce any bug. The CRC bug for MODVERSIONS exists since 56067812d5b0 ("kbuild: modversions: add infrastructure for emitting relative CRCs") > > Fixes: 5545322c86d9 ("modpost: refactor namespace_from_kstrtabns() to n= ot hard-code section name") This commit hash is wrong. The correct one is Fixes: e84f9fbbece1 ("modpost: refactor namespace_from_kstrtabns() to not hard-code section name") > > Signed-off-by: Xiao Yang > > --- > > scripts/mod/modpost.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c > > index d9418c58a8c0..c1fec8cac257 100644 > > --- a/scripts/mod/modpost.c > > +++ b/scripts/mod/modpost.c > > @@ -310,7 +310,8 @@ static const char *sec_name(struct elf_info *elf, i= nt secindex) > > > > static void *sym_get_data(const struct elf_info *info, const Elf_Sym = *sym) > > { > > - Elf_Shdr *sechdr =3D&info->sechdrs[sym->st_shndx]; > > + unsigned int secindex =3D get_secindex(info, sym); > > + Elf_Shdr *sechdr =3D&info->sechdrs[secindex]; > > unsigned long offset; > > > > offset =3D sym->st_value; > > > -- Best Regards Masahiro Yamada