Re: [PATCH v8 2/5] cdx: Export Symbols for MCDI RPC and Initialization

From: Borislav Petkov
Date: Fri Aug 29 2025 - 08:04:25 EST


On Tue, Aug 26, 2025 at 10:59:11AM +0530, Shubhrajyoti Datta wrote:
> diff --git a/drivers/cdx/controller/mcdi.c b/drivers/cdx/controller/mcdi.c
> index 90bf9f7c257b..6f52d8dac907 100644
> --- a/drivers/cdx/controller/mcdi.c
> +++ b/drivers/cdx/controller/mcdi.c
> @@ -100,6 +100,19 @@ static unsigned long cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd
> return cdx->mcdi_ops->mcdi_rpc_timeout(cdx, cmd);
> }
>
> +/**
> + * cdx_mcdi_init - Initialize MCDI (Management Controller Driver Interface) state
> + * @cdx: NIC through which to issue the command

NIC?

/**
* struct cdx_mcdi - CDX MCDI Firmware interface, to interact
* with CDX controller.

Apparently there's a NIC behind this thing.

> + *
> + * This function allocates and initializes internal MCDI structures and resources

s/This function allocates/Allocate/

> + * for the CDX device, including the workqueue, locking primitives, and command
> + * tracking mechanisms. It sets the initial operating mode and prepares the device
> + * for MCDI operations.
> + *
> + * Return:
> + * * 0 - on success
> + * * -ENOMEM - if memory allocation or workqueue creation fails
> + */
> int cdx_mcdi_init(struct cdx_mcdi *cdx)
> {
> struct cdx_mcdi_iface *mcdi;
> @@ -129,6 +142,7 @@ int cdx_mcdi_init(struct cdx_mcdi *cdx)
> fail:
> return rc;
> }
> +EXPORT_SYMBOL_GPL(cdx_mcdi_init);
>
> void cdx_mcdi_finish(struct cdx_mcdi *cdx)
> {
> @@ -554,6 +568,19 @@ static void cdx_mcdi_start_or_queue(struct cdx_mcdi_iface *mcdi,
> cdx_mcdi_cmd_start_or_queue(mcdi, cmd);
> }
>
> +/**
> + * cdx_mcdi_process_cmd - Process an incoming MCDI response
> + * @cdx: NIC through which to issue the command

ditto. Also tabbing

> + * @outbuf: Pointer to the response buffer received from the management controller
> + * @len: Length of the response buffer in bytes
> + *
> + * This function handles a response from the management controller. It locates the

s/This function handles/Handle/

> + * corresponding command using the sequence number embedded in the header,
> + * completes the command if it is still pending, and initiates any necessary cleanup.
> + *
> + * The function assumes that the response buffer is well-formed and at least one
> + * dword in size.
> + */

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette