stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Jian Cai <jiancai@google.com>
Cc: stable@vger.kernel.org, gregkh@linuxfoundation.org,
	sashal@kernel.org, ndesaulniers@google.com,
	manojgupta@google.com, llozano@google.com,
	clang-built-linux@googlegroups.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] arm64: vdso: remove commas between macro name and arguments
Date: Wed, 5 May 2021 14:16:23 -0700	[thread overview]
Message-ID: <YJMLJ4mUscjMz517@archlinux-ax161> (raw)
In-Reply-To: <YJMJAiwMPqlWmr8Y@archlinux-ax161>

Fixing Will's email (make sure to run get_maintainer.pl against the
latest kernel tree so that .mailmap can do its thing).

Original thread: https://lore.kernel.org/r/20210416232341.2421342-1-jiancai@google.com/

On Wed, May 05, 2021 at 02:07:14PM -0700, Nathan Chancellor wrote:
> Hi Jian,
> 
> On Fri, Apr 16, 2021 at 04:23:41PM -0700, Jian Cai wrote:
> > LLVM's integrated assembler does not support using commas separating
> > the name and arguments in .macro. However, only spaces are used in the
> > manual page. This replaces commas between macro names and the subsequent
> > arguments with space in calls to clock_gettime_return to make it
> > compatible with IAS.
> > 
> > Link:
> > https://sourceware.org/binutils/docs/as/Macro.html#Macro
> > https://github.com/ClangBuiltLinux/linux/issues/1349
> > 
> > Signed-off-by: Jian Cai <jiancai@google.com>
> 
> The actual patch itself looks fine to me but there should be some more
> explanation in the commit message that this patch is for 4.19 only and
> why it is not applicable upstream. Additionally, I would recommend using
> the '--subject-prefix=' flag to 'git format-patch' to clarify that as
> well, something like '--subject-prefix="PATCH 4.19 ONLY"'?
> 
> My explanation would be something like (take bits and pieces as you feel
> necessary):
> 
> ========================================================================
> 
> [PATCH 4.19 ONLY] arm64: vdso: remove commas between macro name and
> arguments
> 
> LLVM's integrated assembler does not support using a comma to separate
> a macro name and its arguments when there is only one argument with a
> default value:
> 
> arch/arm64/kernel/vdso/gettimeofday.S:230:24: error: too many positional
> arguments
>  clock_gettime_return, shift=1
>                        ^
> arch/arm64/kernel/vdso/gettimeofday.S:253:24: error: too many positional
> arguments
>  clock_gettime_return, shift=1
>                        ^
> arch/arm64/kernel/vdso/gettimeofday.S:274:24: error: too many positional
> arguments
>  clock_gettime_return, shift=1
>                        ^
> 
> This error is not in mainline because commit 28b1a824a4f4 ("arm64: vdso:
> Substitute gettimeofday() with C implementation") rewrote this assembler
> file in C as part of a 25 patch series that is unsuitable for stable.
> Just remove the comma in the clock_gettime_return invocations in 4.19 so
> that GNU as and LLVM's integrated assembler work the same.
> 
> ========================================================================
> 
> I worded the first sentence the way that I did because correct me if I
> am wrong but it seems that the integrated assembler has no issues with
> the use of commas separating the arguments in a .macro definition as
> that is done everywhere in arch/arm64, just not when there is a single
> parameter with a default value because essentially what it is evaluating
> it to is "clock_gettime_return ,shift=1", which according to the GAS
> manual [1] means that "shift" is actually being set to 0 then there is an
> other parameter, when it expects only one.
> 
> [1]: After the definition is complete, you can call the macro either as
> ‘reserve_str a,b’ (with ‘\p1’ evaluating to a and ‘\p2’ evaluating to
> b), or as ‘reserve_str ,b’ (with ‘\p1’ evaluating as the default, in
> this case ‘0’, and ‘\p2’ evaluating to b).
> 
> Lastly, Will or Catalin should ack this as an explicitly out of mainline
> patch so that Greg or Sasha can take it. I would put them on the "To:"
> line in addition to Greg and Sasha.
> 
> Hopefully this is helpful!
> 
> Cheers,
> Nathan
> 
> > ---
> > 
> > Changes v1 -> v2:
> >   Keep the comma in the macro definition to be consistent with other
> >   definitions.
> > 
> > Changes v2 -> v3:
> >   Edit tags.
> > 
> >  arch/arm64/kernel/vdso/gettimeofday.S | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm64/kernel/vdso/gettimeofday.S b/arch/arm64/kernel/vdso/gettimeofday.S
> > index 856fee6d3512..b6faf8b5d1fe 100644
> > --- a/arch/arm64/kernel/vdso/gettimeofday.S
> > +++ b/arch/arm64/kernel/vdso/gettimeofday.S
> > @@ -227,7 +227,7 @@ realtime:
> >  	seqcnt_check fail=realtime
> >  	get_ts_realtime res_sec=x10, res_nsec=x11, \
> >  		clock_nsec=x15, xtime_sec=x13, xtime_nsec=x14, nsec_to_sec=x9
> > -	clock_gettime_return, shift=1
> > +	clock_gettime_return shift=1
> >  
> >  	ALIGN
> >  monotonic:
> > @@ -250,7 +250,7 @@ monotonic:
> >  		clock_nsec=x15, xtime_sec=x13, xtime_nsec=x14, nsec_to_sec=x9
> >  
> >  	add_ts sec=x10, nsec=x11, ts_sec=x3, ts_nsec=x4, nsec_to_sec=x9
> > -	clock_gettime_return, shift=1
> > +	clock_gettime_return shift=1
> >  
> >  	ALIGN
> >  monotonic_raw:
> > @@ -271,7 +271,7 @@ monotonic_raw:
> >  		clock_nsec=x15, nsec_to_sec=x9
> >  
> >  	add_ts sec=x10, nsec=x11, ts_sec=x13, ts_nsec=x14, nsec_to_sec=x9
> > -	clock_gettime_return, shift=1
> > +	clock_gettime_return shift=1
> >  
> >  	ALIGN
> >  realtime_coarse:
> > -- 
> > 2.31.1.368.gbe11c130af-goog
> > 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-05-05 21:16 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-16 18:14 [PATCH] arm64: vdso: remove commas between macro name and arguments Jian Cai
2021-04-16 18:23 ` Jian Cai
2021-04-16 19:08 ` Ard Biesheuvel
2021-04-16 20:35 ` [PATCH v2] " Jian Cai
2021-04-16 21:40   ` Ard Biesheuvel
2021-04-16 23:23   ` [PATCH v3] " Jian Cai
2021-05-05 21:07     ` Nathan Chancellor
2021-05-05 21:16       ` Nathan Chancellor [this message]
2021-05-06  1:03       ` Jian Cai
2021-05-06  1:30         ` Jian Cai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YJMLJ4mUscjMz517@archlinux-ax161 \
    --to=nathan@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jiancai@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llozano@google.com \
    --cc=manojgupta@google.com \
    --cc=ndesaulniers@google.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).