lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251227164132.1311988-1-cristian.marussi@arm.com>
Date: Sat, 27 Dec 2025 16:41:30 +0000
From: Cristian Marussi <cristian.marussi@....com>
To: linux-kernel@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org,
	arm-scmi@...r.kernel.org
Cc: sudeep.holla@....com,
	philip.radford@....com,
	peng.fan@....nxp.com,
	Cristian Marussi <cristian.marussi@....com>
Subject: [PATCH 0/2] Rework protocol version negotiation core logic

Hi,

this small series rectifies the protocol negotiation logic employed by the
core SCMI stack when trying to cope with newer unknown protocol versions
advertised by the platform under any circumstances.

The existing protocol negotiation logic per-se was fine, but unfortunately
the whole negotiation process was started at the end of the per-protocol
initialization phase since it relies on the version querying performed by
each protocol initialization logic.

Unfortunately, this means that if the protocol initialization failed
upfront as a whole, maybe exactly due to version incompatibilities, the
negotiation itself will never be started, effectively failing to negotiate
a better version in the exact scenario where negotiation would be mostly
needed.

This series simply moves the version_get query process out of the single
protocol units and delegates to the core SCMI stack the whole procedure:
this way, the supported protocol version querying and any further needed
negotiation exchanges are performed by the core SCMI stack right before
the start of the protocol initialization phase: as a consequence the
protocol initialization phase will now be performed using the appropriate
protocol version as negotiated in advance, when needed.

As a consequence per-protocol versioning code is considerably simplified.

Based on v6.19-rc2.

Any feedback, as usual, it is very much welcome.

Thanks,

Cristian


Cristian Marussi (2):
  firmware: arm_scmi: Rework protocol version negotiation logic
  firmware: arm_scmi: Remove legacy protocol versioning logic

 drivers/firmware/arm_scmi/base.c              | 11 +--
 drivers/firmware/arm_scmi/clock.c             | 24 ++---
 drivers/firmware/arm_scmi/driver.c            | 98 +++++++++++++++----
 drivers/firmware/arm_scmi/perf.c              | 57 ++++-------
 drivers/firmware/arm_scmi/pinctrl.c           | 12 +--
 drivers/firmware/arm_scmi/power.c             | 18 +---
 drivers/firmware/arm_scmi/powercap.c          | 21 ++--
 drivers/firmware/arm_scmi/protocols.h         |  9 +-
 drivers/firmware/arm_scmi/reset.c             | 18 +---
 drivers/firmware/arm_scmi/sensors.c           | 22 ++---
 drivers/firmware/arm_scmi/system.c            | 14 +--
 .../arm_scmi/vendors/imx/imx-sm-bbm.c         | 10 +-
 .../arm_scmi/vendors/imx/imx-sm-cpu.c         |  9 +-
 .../arm_scmi/vendors/imx/imx-sm-lmm.c         |  9 +-
 .../arm_scmi/vendors/imx/imx-sm-misc.c        | 10 +-
 drivers/firmware/arm_scmi/voltage.c           | 13 +--
 16 files changed, 153 insertions(+), 202 deletions(-)

-- 
2.52.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ