Message ID | 20221117002022.860237-2-jim.cromie@gmail.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp134756wrr; Wed, 16 Nov 2022 16:22:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf5P3f2yQj4PhRAxYDdC3aBQLxggGVGh0QdPBBtkNolXzlSX4HRXhK1ZpOPuFuE1lmeMx0F7 X-Received: by 2002:a17:90b:a15:b0:212:8f7:acf with SMTP id gg21-20020a17090b0a1500b0021208f70acfmr276186pjb.13.1668644561312; Wed, 16 Nov 2022 16:22:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668644561; cv=none; d=google.com; s=arc-20160816; b=VBOXlo2TykHz60g4bGqjcSxINWp7uzaLfKsKPFq9PUy+qaTEuuIUcke1e6hPYR0TuI jKS7Cx73ZnwTa3rt1P97IkYl6wFX1qmzse0NBWsNckyzj+dgEoU6vlDRDHhJms+0V9bo eW8K+837zaFlGy7A3KZs9AZhtdXYmQGedExYyZxMAep2cvzdfZGwHLJicD5vWWDoYWWS dwSZRrC1XaUzDX0ks9XftLxs1DczWuux8Y42gBRXNKZq/Kq+yBORL45woY9ur0pXwu1O 3jf+skhR04kWSsrSLmpt2itOznFbPfQPX4QsUGzMa6ubktmrPEiXXe8gglzBXUHc8Xrx n70Q== 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 :dkim-signature; bh=oYrGcKZ90fvfsXSmxF4aK7/kvJ4eaidpI88a5ZAW7vs=; b=SzJqS5X4/5IwyXUiYXZVYDXtompyz3dc7a6t54utA0sF5+h9v1fd+KCJlYwSsz/DSE oz+kXsZobYKbYRvfmOMMgXJWuCZgvO1xBu8/oBhdAFSoEK5MnDKOVfmfzKujUONQHvpo LURX9UG9A5ADpv5xAQuZJSMGzCNmZNgt/+lR7FGLZgpDRNffez5DeBXuBsqrnp9qly0C UMDmDqtuprHN7Mb08T89cff4ysZ2pq8fuHizHReIMJo51SkIYJ07qlF5mIRDd+oBmRC/ 4TTY8xjDvniUi01b4BfFfeC0dSMwyqU+kB74vYAKBjujMSpI8dKN38XC1t2zxp+G5bfu 4MDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="qwy/1FEz"; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n12-20020a170902d2cc00b0017f9db0233fsi18435726plc.448.2022.11.16.16.22.28; Wed, 16 Nov 2022 16:22:41 -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=@gmail.com header.s=20210112 header.b="qwy/1FEz"; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234230AbiKQAUe (ORCPT <rfc822;just.gull.subs@gmail.com> + 99 others); Wed, 16 Nov 2022 19:20:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234166AbiKQAUb (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 16 Nov 2022 19:20:31 -0500 Received: from mail-io1-xd29.google.com (mail-io1-xd29.google.com [IPv6:2607:f8b0:4864:20::d29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 17B264730C for <linux-kernel@vger.kernel.org>; Wed, 16 Nov 2022 16:20:30 -0800 (PST) Received: by mail-io1-xd29.google.com with SMTP id p141so241722iod.6 for <linux-kernel@vger.kernel.org>; Wed, 16 Nov 2022 16:20:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oYrGcKZ90fvfsXSmxF4aK7/kvJ4eaidpI88a5ZAW7vs=; b=qwy/1FEzGt4fj7T2IyliiuYzYT/y/jniUSkgNGUXxB9xhsBPLzotbdGrENzUTLXf7x RJB4utHxjzAr5t2Rhp/XzN40Wf6TNKfz7HOtk2Izc5Xr4E6WyBH1fxO1CB9tCh2Xkf/n t7m1fDRkQOpeebwotn03PTV9Ei1Jzy4mTfZCrMH00SjR0xUTLa1JxKkeXhrhvq80mMBU AQaSXgSH8GP9Hq/vYdmBmd8o1GRPyVKM09TKTCkKXI9vBV2OwEov/Izuzlb+EXQI1968 JYfbC3rz54rYvb4EOSJS/YltrSYcpk+oziYnuHfVGUN8Et8HWOYom7TTsKRnKbd41Hvv yF5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oYrGcKZ90fvfsXSmxF4aK7/kvJ4eaidpI88a5ZAW7vs=; b=xcTY2aT3rTRObLlK3GqiWAbjifUxsRROnv64zMhkOr7/RI2m0waa1Pyw2rIyIjiLwE 3IXx2/VrFEyFCrbu63vapq6rKxStra4zYUzpkJVVdwZzfDecDYnOPE3BdwHRLbvZpUZV q4nh7bAmKL+lYlgbduk4CgkpJ04wzH6372/WwRali+I7Q0Je6usUsNpyR9owIsfMu/87 68UBOFqIdpFPF6lP+dFRfGZeZi7M+7B1V7cpn5ieBntoAOTMvqto1kwQ6MWWtxGmGz7G lCcUCWXrV2EU5lZLK1noHsFhiKPbMS5vsdEYubGQBGHDfZZf5uPQi5mxpSl8VmLDfELe A/ZA== X-Gm-Message-State: ANoB5pk/ofsQmQqPr53v+Njr4oYjwTi0k/1gF8s2immlpQti+UVjxGA7 tM7cuNuUlZz/VN6IBD/bnPI= X-Received: by 2002:a05:6602:4190:b0:6a4:9ae9:1303 with SMTP id bx16-20020a056602419000b006a49ae91303mr353818iob.43.1668644429402; Wed, 16 Nov 2022 16:20:29 -0800 (PST) Received: from frodo.. (c-73-78-62-130.hsd1.co.comcast.net. [73.78.62.130]) by smtp.googlemail.com with ESMTPSA id o194-20020a0222cb000000b0037556012c63sm6119777jao.132.2022.11.16.16.20.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Nov 2022 16:20:29 -0800 (PST) From: Jim Cromie <jim.cromie@gmail.com> To: jbaron@akamai.com, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Cc: Jim Cromie <jim.cromie@gmail.com> Subject: [PATCH 1/2] vmlinux.lds.h: fix BOUNDED_SECTION_(PRE|POST)_LABEL macros Date: Wed, 16 Nov 2022 17:20:21 -0700 Message-Id: <20221117002022.860237-2-jim.cromie@gmail.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221117002022.860237-1-jim.cromie@gmail.com> References: <Y20+PqtF+dFAe7hX@kroah.com> <20221117002022.860237-1-jim.cromie@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1749700639121493682?= X-GMAIL-MSGID: =?utf-8?q?1749700639121493682?= |
Series |
[1/2] vmlinux.lds.h: fix BOUNDED_SECTION_(PRE|POST)_LABEL macros
|
|
Commit Message
Jim Cromie
Nov. 17, 2022, 12:20 a.m. UTC
commit foo added BOUNDED_SECTION_(PRE|POST)_LABEL macros,
encapsulating the basic boilerplate to: KEEP/pack records into a
section, and to mark the begin and end of the section with
linker-symbols.
But it tried to do extra, adding KEEP(*(.gnu.linkonce.##_sec_)) to
optionally reserve a header record in front of the data. It wrongly
placed the KEEP after the linker-symbol starting the section,
so if a header was added, it would wind up in the data.
Putting the KEEP in the "correct" place proved brittle, and too clever
by half. The obvious safe fix is to remove the KEEP, and provide
separate macros to do the extra work.
While here, the macro var-names: _s_, _e_ are nearly invisible, change
them to more obvious names: _BEGIN_, _END_
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
include/asm-generic/vmlinux.lds.h | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
Comments
On Wed, Nov 16, 2022 at 05:20:21PM -0700, Jim Cromie wrote: > commit foo added BOUNDED_SECTION_(PRE|POST)_LABEL macros, > encapsulating the basic boilerplate to: KEEP/pack records into a > section, and to mark the begin and end of the section with > linker-symbols. > > But it tried to do extra, adding KEEP(*(.gnu.linkonce.##_sec_)) to > optionally reserve a header record in front of the data. It wrongly > placed the KEEP after the linker-symbol starting the section, > so if a header was added, it would wind up in the data. > > Putting the KEEP in the "correct" place proved brittle, and too clever > by half. The obvious safe fix is to remove the KEEP, and provide > separate macros to do the extra work. > > While here, the macro var-names: _s_, _e_ are nearly invisible, change > them to more obvious names: _BEGIN_, _END_ > > Signed-off-by: Jim Cromie <jim.cromie@gmail.com> > --- > include/asm-generic/vmlinux.lds.h | 14 ++++++-------- > 1 file changed, 6 insertions(+), 8 deletions(-) This change fails to apply to my driver-core-next tree. Are you sure it is correct? confused, greg k-h
On Wed, Nov 16, 2022 at 11:30 PM Greg KH <gregkh@linuxfoundation.org> wrote: > > On Wed, Nov 16, 2022 at 05:20:21PM -0700, Jim Cromie wrote: > > commit foo added BOUNDED_SECTION_(PRE|POST)_LABEL macros, > > encapsulating the basic boilerplate to: KEEP/pack records into a > > section, and to mark the begin and end of the section with > > linker-symbols. > > > > But it tried to do extra, adding KEEP(*(.gnu.linkonce.##_sec_)) to > > optionally reserve a header record in front of the data. It wrongly > > placed the KEEP after the linker-symbol starting the section, > > so if a header was added, it would wind up in the data. > > > > Putting the KEEP in the "correct" place proved brittle, and too clever > > by half. The obvious safe fix is to remove the KEEP, and provide > > separate macros to do the extra work. > > > > While here, the macro var-names: _s_, _e_ are nearly invisible, change > > them to more obvious names: _BEGIN_, _END_ > > > > Signed-off-by: Jim Cromie <jim.cromie@gmail.com> > > --- > > include/asm-generic/vmlinux.lds.h | 14 ++++++-------- > > 1 file changed, 6 insertions(+), 8 deletions(-) > > This change fails to apply to my driver-core-next tree. Are you sure it > is correct? > meh - it seems I missed a failure of a git commit --amend, since im sure I edited a fixes: tag into this commit-msg or something :-/ I'll send an update shortly, heres the HEAD of it: b8b7f5a7a624 (HEAD -> bounded-5) vmlinux.lds.h: add HEADERED_SECTION_* macros d712ed004b64 vmlinux.lds.h: fix BOUNDED_SECTION_(PRE|POST)_LABEL macros f613facc82cf (driver-core/driver-core-testing, driver-core/driver-core-next) mfd: vexpress-sysreg: Fix resource compound literal assignments 2f465b921bb8 vmlinux.lds.h: place optional header space in BOUNDED_SECTION 9b351be25360 vmlinux.lds.h: add BOUNDED_SECTION* macros > confused, > > greg k-h
hi Greg, Im not quite sure what went wrong with last rev. Im intrinsically noisy. Its hard to fix permamently. 1st patch restores basic BOUNDED_SECTION wo header reservation. 2nd redoes the HEADERED_SECTION idea with separate macros, so it cant affect the basic case. I havent actually used this yet. I should have stared at this patchset longer before sending. sorry about that. Jim Cromie (2): vmlinux.lds.h: fix BOUNDED_SECTION_(PRE|POST)_LABEL macros vmlinux.lds.h: add HEADERED_SECTION_* macros include/asm-generic/vmlinux.lds.h | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-)
On Thu, Nov 17, 2022 at 10:16:31AM -0700, Jim Cromie wrote: > hi Greg, > > Im not quite sure what went wrong with last rev. > Im intrinsically noisy. Its hard to fix permamently. > > 1st patch restores basic BOUNDED_SECTION wo header reservation. > > 2nd redoes the HEADERED_SECTION idea with separate macros, so it cant > affect the basic case. I havent actually used this yet. > > I should have stared at this patchset longer before sending. > sorry about that. Worked better, thanks, now applied. greg k-h
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 50851425b229..85d5d5b203dc 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -199,17 +199,15 @@ # endif #endif -#define BOUNDED_SECTION_PRE_LABEL(_sec_, _label_, _s_, _e_) \ - _s_##_label_ = .; \ - KEEP(*(.gnu.linkonce.##_sec_)) \ +#define BOUNDED_SECTION_PRE_LABEL(_sec_, _label_, _BEGIN_, _END_) \ + _BEGIN_##_label_ = .; \ KEEP(*(_sec_)) \ - _e_##_label_ = .; + _END_##_label_ = .; -#define BOUNDED_SECTION_POST_LABEL(_sec_, _label_, _s_, _e_) \ - _label_##_s_ = .; \ - KEEP(*(.gnu.linkonce.##_sec_)) \ +#define BOUNDED_SECTION_POST_LABEL(_sec_, _label_, _BEGIN_, _END_) \ + _label_##_BEGIN_ = .; \ KEEP(*(_sec_)) \ - _label_##_e_ = .; + _label_##_END_ = .; #define BOUNDED_SECTION_BY(_sec_, _label_) \ BOUNDED_SECTION_PRE_LABEL(_sec_, _label_, __start, __stop)