linux/drivers/firmware/arm_scmi
Vincent Guittot d1cbd9e0f7 firmware: arm_scmi: Fix base agent discover response
According to scmi specification, the response of the discover agent request
is made of:
- int32 status
- uint32 agent_id
- uint8 name[16]

but the current implementation doesn't take into account the agent_id field
and only allocates a rx buffer of SCMI_MAX_STR_SIZE length

Allocate the correct length for rx buffer and copy the name from the
correct offset in the response.

While no error were returned until v5.15, v5.16-rc1 fails with virtio_scmi
transport channel:

 | arm-scmi firmware:scmi0: SCMI Notifications - Core Enabled.
 | arm-scmi firmware:scmi0: SCMI Protocol v2.0 'Linaro:PMWG' Firmware version 0x2090000
 | scmi-virtio virtio0: tx:used len 28 is larger than in buflen 24

Link: https://lore.kernel.org/r/20211117081856.9932-1-vincent.guittot@linaro.org
Fixes: b6f20ff8bd ("firmware: arm_scmi: add common infrastructure and support for base protocol")
Tested-by: Cristian Marussi <cristian.marussi@arm.com>
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
2021-11-17 11:24:50 +00:00
..
base.c firmware: arm_scmi: Fix base agent discover response 2021-11-17 11:24:50 +00:00
bus.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
clock.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
common.h firmware: arm_scmi: Add virtio transport 2021-08-05 10:24:08 +01:00
driver.c firmware: arm_scmi: Use WARN_ON() to check configured transports 2021-08-09 11:43:32 +01:00
Kconfig firmware: arm_scmi: Fix virtio transport Kconfig dependency 2021-09-20 11:50:57 +01:00
mailbox.c firmware: arm_scmi: Add priv parameter to scmi_rx_callback 2021-08-05 10:23:23 +01:00
Makefile firmware: arm_scmi: Add virtio transport 2021-08-05 10:24:08 +01:00
msg.c firmware: arm_scmi: Add message passing abstractions for transports 2021-08-05 10:23:23 +01:00
notify.c firmware: arm_scmi: Fix kernel doc warnings about return values 2021-07-13 11:39:54 +01:00
notify.h firmware: arm_scmi: Remove duplicate declaration of struct scmi_protocol_handle 2021-04-27 11:57:26 +01:00
perf.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
power.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
reset.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
scmi_pm_domain.c firmware: arm_scmi: Add clock management to the SCMI power domain 2021-05-11 16:01:39 +01:00
sensors.c firmware: arm_scmi: Avoid padding in sensor message structure 2021-07-13 11:42:14 +01:00
shmem.c firmware: arm_scmi: Rename .clear_notification() transport_ops 2020-04-20 17:25:26 +01:00
smc.c firmware: arm_scmi: Add priv parameter to scmi_rx_callback 2021-08-05 10:23:23 +01:00
system.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
virtio.c firmware: arm_scmi: Fix null de-reference on error path 2021-11-15 10:58:42 +00:00
voltage.c firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00