Re: [PATCH v12 02/25] firmware: arm_scmi: Allow registration of unknown-size events/reports
From: Cristian Marussi <cristian.marussi@arm.com>
Date: 2026-09-23 10:56:10
Also in:
arm-scmi, linux-doc, lkml
On Tue, Sep 22, 2026 at 03:15:55PM +0200, David Hildenbrand (Arm) wrote:
On 9/20/26 11:19, Cristian Marussi wrote:quoted
Allow protocols to register events with build-time unknown sizes: such events can be declared zero-sized and let the core SCMI stack perform the needed safe-net boundary checks based on the configured transport size.ok, so we have a maximum message size defined by the transport. We'll use that as payload size, and the report size just gets the additional ktime_t.quoted
pd = scmi_allocate_registered_events_desc(ni, proto_id, ee->queue_sz,@@ -807,7 +821,8 @@ int scmi_register_protocol_events(const struct scmi_handle *handle, u8 proto_id, mutex_init(&r_evt->sources_mtx); r_evt->report = devm_kzalloc(ni->handle->dev, - evt->max_report_sz, GFP_KERNEL); + evt->max_report_sz ?: max_report_sz,Having two similarly named variables is a bit confusing. I wonder if you can somehow make it clearer in the latter case that it is the max_report_sz according to the transport.
Ok I'll do.
quoted
+ GFP_KERNEL); if (!r_evt->report) return -ENOMEM;diff --git a/drivers/firmware/arm_scmi/notify.h b/drivers/firmware/arm_scmi/notify.h index f18f98c5ab3b..c2eb4844c7db 100644 --- a/drivers/firmware/arm_scmi/notify.h +++ b/drivers/firmware/arm_scmi/notify.h@@ -18,8 +18,12 @@ /** * struct scmi_event - Describes an event to be supported * @id: Event ID - * @max_payld_sz: Max possible size for the payload of a notification message - * @max_report_sz: Max possible size for the report of a notification message + * @max_payld_sz: Max possible size for the payload of a notification message. + * Set to zero to use the maximum payload size allowed by the + * transport."maximum payload size" is ph->hops->get_max_msg_size(ph) ? Should we call this "maximum message size" then?
Ok
quoted
+ * @max_report_sz: Max possible size for the report of a notification message. + * Set to zero to use the maximum payload size allowed by the + * transport plus the additional ktime_t timestamp.Same here.
Ok Thanks, Cristian
-- Cheers, David