public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Andre Przywara <andre.przywara@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Trilok Soni <trilokkumar.soni@oss.qualcomm.com>,
	Salman Nabi <salman.nabi@arm.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	linux-kernel@vger.kernel.org, vwadekar@nvidia.com,
	Sudeep Holla <sudeep.holla@kernel.org>,
	vsethi@nvidia.com, Nirmoy Das <nirmoyd@nvidia.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v2 2/8] firmware: smccc: Add support for Live Firmware Activation (LFA)
Date: Wed, 18 Mar 2026 09:12:30 +0100	[thread overview]
Message-ID: <bad30062-3f61-41cb-af78-21f13b77ed4d@kernel.org> (raw)
In-Reply-To: <20260318-wealthy-quartz-iguana-9a836e@quoll>

On 18/03/2026 09:09, Krzysztof Kozlowski wrote:
> On Tue, Mar 17, 2026 at 11:33:28AM +0100, Andre Przywara wrote:
>> +
>> +/* A list of known GUIDs, to be shown in the "name" sysfs file. */
>> +static const struct fw_image_uuid {
>> +	const char *name;
>> +	const char *uuid;
>> +} fw_images_uuids[] = {
>> +	{
>> +		.name = "TF-A BL31 runtime",
>> +		.uuid = "47d4086d-4cfe-9846-9b95-2950cbbd5a00",
>> +	},
>> +	{
>> +		.name = "BL33 non-secure payload",
>> +		.uuid = "d6d0eea7-fcea-d54b-9782-9934f234b6e4",
>> +	},
>> +	{
>> +		.name = "TF-RMM",
>> +		.uuid = "6c0762a6-12f2-4b56-92cb-ba8f633606d9",
>> +	},
>> +};
>> +
>> +static struct kset *lfa_kset;
>> +static struct workqueue_struct *fw_images_update_wq;
>> +static struct work_struct fw_images_update_work;
>> +static struct attribute *image_default_attrs[LFA_ATTR_NR_IMAGES + 1];
> 
> Bunch of singletons here because (see later)...
> 
>> +
>> +static const struct attribute_group image_attr_group = {
>> +	.attrs = image_default_attrs,
>> +};
>> +
>> +static const struct attribute_group *image_default_groups[] = {
>> +	&image_attr_group,
>> +	NULL
>> +};
>> +
>> +static int __init lfa_init(void)
>> +{
>> +	struct arm_smccc_1_2_regs reg = { 0 };
>> +	int err;
>> +
>> +	reg.a0 = LFA_1_0_FN_GET_VERSION;
>> +	arm_smccc_1_2_invoke(&reg, &reg);
>> +	if (reg.a0 == -LFA_NOT_SUPPORTED) {
>> +		pr_info("Live Firmware activation: no firmware agent found\n");
>> +		return -ENODEV;
>> +	}
>> +
>> +	pr_info("Live Firmware Activation: detected v%ld.%ld\n",
>> +		reg.a0 >> 16, reg.a0 & 0xffff);
>> +
>> +	fw_images_update_wq = alloc_workqueue("fw_images_update_wq",
>> +					      WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
>> +	if (!fw_images_update_wq) {
>> +		pr_err("Live Firmware Activation: Failed to allocate workqueue.\n");
>> +
>> +		return -ENOMEM;
>> +	}
>> +	INIT_WORK(&fw_images_update_work, remove_invalid_fw_images);
>> +
>> +	init_image_default_attrs();
>> +	lfa_kset = kset_create_and_add("lfa", NULL, firmware_kobj);
>> +	if (!lfa_kset)
>> +		return -ENOMEM;
>> +
>> +	err = update_fw_images_tree();
>> +	if (err != 0) {
>> +		kset_unregister(lfa_kset);
>> +		destroy_workqueue(fw_images_update_wq);
>> +	}
>> +
>> +	return err;
>> +}
>> +module_init(lfa_init);
> 
> You do not use driver model, but 199x style of modprobing and performing
> actions.
> 
> I do not understand why module load is already doign anything. This
> looks like misinterpretation/misuse of Linux driver model - in a way,
> you don't use it all and this is like back to 199x where modprobe was
> already meaning you bind drivers...

Although now going through further patches I found you implementing some
parts of driver model, so probably this split is just needing fix.

Modprobe must not do "arm_smccc_1_2_invoke" or any other device related
things. You only initialize your bus, just like every other bus driver
would do, but honestly this should not be a bus-like code.

Best regards,
Krzysztof


  reply	other threads:[~2026-03-18  8:12 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-17 10:33 [PATCH v2 0/8] Arm Live Firmware Activation (LFA) support Andre Przywara
2026-03-17 10:33 ` [PATCH v2 1/8] dt-bindings: arm: Add Live Firmware Activation binding Andre Przywara
2026-03-18  8:04   ` Krzysztof Kozlowski
2026-03-18 16:00     ` Andre Przywara
2026-03-17 10:33 ` [PATCH v2 2/8] firmware: smccc: Add support for Live Firmware Activation (LFA) Andre Przywara
2026-03-18  8:09   ` Krzysztof Kozlowski
2026-03-18  8:12     ` Krzysztof Kozlowski [this message]
2026-03-18 15:39       ` Andre Przywara
2026-03-17 10:33 ` [PATCH v2 3/8] firmware: smccc: lfa: Move image rescanning Andre Przywara
2026-03-17 10:33 ` [PATCH v2 4/8] firmware: smccc: lfa: Add timeout and trigger watchdog Andre Przywara
2026-03-17 10:33 ` [PATCH v2 5/8] firmware: smccc: lfa: Register ACPI notification Andre Przywara
2026-03-17 10:33 ` [PATCH v2 6/8] firmware: smccc: lfa: Add auto_activate sysfs file Andre Przywara
2026-03-18  8:05   ` Krzysztof Kozlowski
2026-03-17 10:33 ` [PATCH v2 7/8] firmware: smccc: lfa: Register DT interrupt Andre Przywara
2026-03-18  8:14   ` Krzysztof Kozlowski
2026-03-18 11:35   ` kernel test robot
2026-03-18 14:21   ` kernel test robot
2026-03-18 14:21   ` kernel test robot
2026-03-19 12:52     ` Andre Przywara
2026-03-17 10:33 ` [PATCH v2 8/8] firmware: smccc: lfa: introduce SMC access lock Andre Przywara
2026-03-18  8:00 ` [PATCH v2 0/8] Arm Live Firmware Activation (LFA) support Krzysztof Kozlowski

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=bad30062-3f61-41cb-af78-21f13b77ed4d@kernel.org \
    --to=krzk@kernel.org \
    --cc=andre.przywara@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lpieralisi@kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=nirmoyd@nvidia.com \
    --cc=salman.nabi@arm.com \
    --cc=sudeep.holla@kernel.org \
    --cc=trilokkumar.soni@oss.qualcomm.com \
    --cc=vsethi@nvidia.com \
    --cc=vwadekar@nvidia.com \
    /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