All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
To: Sudeep Holla <sudeep.holla@kernel.org>
Cc: kernel test robot <lkp@intel.com>,
	oe-kbuild-all@lists.linux.dev,
	Sudeep Holla <sudeep.holla@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>,
	Jason Gunthorpe <jgg@nvidia.com>
Subject: Re: [linux-next:master 8264/14724] drivers/firmware/smccc/smccc.c:141:1: error: r7 cannot be used in asm here
Date: Wed, 07 Oct 2026 15:09:27 +0530	[thread overview]
Message-ID: <yq5a5wzd4zow.fsf@kernel.org> (raw)
In-Reply-To: <20261007-predictable-interesting-mole-e02db7@sudeepholla>

Sudeep Holla <sudeep.holla@kernel.org> writes:

> (+ Marc, Mark)
>
> On Wed, Oct 07, 2026 at 12:28:54PM +0530, Aneesh Kumar K.V wrote:
>> kernel test robot <lkp@intel.com> writes:
>> 
>> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>> > head:   eea3fef32a9cf36abcb5975a5a594e4135a6b026
>> > commit: d8263a131bb05398faa72ac32be54a03e48fa197 [8264/14724] firmware: hwrng: arm_smccc_trng: Register as an SMCCC device
>> > config: arm-randconfig-1001-20261007 (https://download.01.org/0day-ci/archive/20261007/202610070641.B8hxBJcf-lkp@intel.com/config)
>> > compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
>> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261007/202610070641.B8hxBJcf-lkp@intel.com/reproduce)
>> >
>> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
>> > the same patch/commit), kindly add following tags
>> > | Reported-by: kernel test robot <lkp@intel.com>
>> > | Closes: https://lore.kernel.org/oe-kbuild-all/202610070641.B8hxBJcf-lkp@intel.com/
>> >
>> > All errors (new ones prefixed by >>):
>> >
>> >    drivers/firmware/smccc/smccc.c: In function 'smccc_devices_init':
>> >>> drivers/firmware/smccc/smccc.c:141:1: error: r7 cannot be used in asm here
>> >     }
>> >     ^
>> >>> drivers/firmware/smccc/smccc.c:141:1: error: r7 cannot be used in asm here
>> >
>> >
>> > vim +141 drivers/firmware/smccc/smccc.c
>> >
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  122) 
>> > b83c2d92be719bf Andre Przywara         2021-07-31  123  static int __init smccc_devices_init(void)
>> > b83c2d92be719bf Andre Przywara         2021-07-31  124  {
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  125) 	struct arm_smccc_device *sdev;
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  126) 	const struct smccc_device_info *smccc_dev;
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  127) 
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  128) 	for (int i = 0; i < ARRAY_SIZE(smccc_devices); i++) {
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  129) 		smccc_dev = &smccc_devices[i];
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  130) 
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  131) 		if (!smccc_probe_smccc_device(smccc_dev))
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  132) 			continue;
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  133) 
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  134) 		sdev = arm_smccc_device_register(smccc_dev->device_name, smccc_dev->func_id);
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  135) 		if (IS_ERR(sdev))
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  136) 			pr_err("%s: could not register device: %pe\n",
>> > d8263a131bb0539 Aneesh Kumar K.V (Arm  2026-09-23  137) 			       smccc_dev->device_name, sdev);
>> > b83c2d92be719bf Andre Przywara         2021-07-31  138  	}
>> > b83c2d92be719bf Andre Przywara         2021-07-31  139  
>> > b83c2d92be719bf Andre Przywara         2021-07-31  140  	return 0;
>> > b83c2d92be719bf Andre Przywara         2021-07-31 @141  }
>> >
>> 
>> 
>> This is with:
>> 
>> CONFIG_ARM_THUMB=y
>> CONFIG_ARM_THUMBEE=y
>> 
>> where there are restrictions on the use of r7. IMHO, this needs to be
>> addressed in the implementation of arm_smccc_1_1_invoke(), rather than
>> worked around in this patch?
>>
>
> We can even drop the extra arguments set 0 as it was original used in
> TRNG or just use 4 arguments. That shouldn't impact <FEAT>_VERSION ABIs.
>
> I think there is a precedent here with `SMCCC_ARCH_WORKAROUND_*` calls.
> `__arm_smccc_1_1()` is deliberately variadic: it sets up only the input
> registers supplied by the caller. Not sure if it is trivial to meddle with
> the macro to handle this as workaround.
>
> Regards,
> Sudeep
>
> -->8
>
> diff --git i/drivers/firmware/smccc/smccc.c w/drivers/firmware/smccc/smccc.c
> index afc2e4d602ba..dfbd04c8eeac 100644
> --- i/drivers/firmware/smccc/smccc.c
> +++ w/drivers/firmware/smccc/smccc.c
> @@ -116,8 +116,7 @@ static bool __init smccc_probe_smccc_device(const struct smccc_device_info *smcc
>         if (IS_ENABLED(CONFIG_ARM) && ARM_SMCCC_IS_64(smccc_dev->func_id))
>                 return false;
>
> -       arm_smccc_1_1_invoke(smccc_dev->func_id,
> -                            0, 0, 0, 0, 0, 0, 0, &res);
> +       arm_smccc_1_1_invoke(smccc_dev->func_id, &res);
>         ret = res.a0;
>

However, we used the seven-argument form here because we do not know
which input registers a particular SMCCC function may use.

-aneesh

  parent reply	other threads:[~2026-10-07  9:39 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-06 22:25 [linux-next:master 8264/14724] drivers/firmware/smccc/smccc.c:141:1: error: r7 cannot be used in asm here kernel test robot
2026-10-07  6:58 ` Aneesh Kumar K.V
2026-10-07  8:44   ` Sudeep Holla
2026-10-07  9:10     ` Catalin Marinas
2026-10-07  9:18       ` Sudeep Holla
2026-10-07 10:19         ` Catalin Marinas
2026-10-07 10:25           ` Sudeep Holla
2026-10-07  9:46       ` Aneesh Kumar K.V
2026-10-07  9:39     ` Aneesh Kumar K.V [this message]
2026-10-07  9:47       ` Sudeep Holla
2026-10-07  8:48   ` Aneesh Kumar K.V
2026-10-07  9:51     ` Aneesh Kumar K.V
2026-10-09 13:42     ` Jason Gunthorpe
2026-10-10  9:57       ` Aneesh Kumar K.V

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=yq5a5wzd4zow.fsf@kernel.org \
    --to=aneesh.kumar@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=jgg@nvidia.com \
    --cc=jonathan.cameron@oss.qualcomm.com \
    --cc=lkp@intel.com \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=sudeep.holla@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.