Re: [PATCH v3] dcdbas: Add support for WSMT ACPI table

From: Andy Shevchenko
Date: Wed Jun 13 2018 - 04:54:55 EST


On Wed, Jun 13, 2018 at 4:24 AM, Stuart Hayes <stuart.w.hayes@xxxxxxxxx> wrote:
>
> If the WSMT ACPI table is present and indicates that a fixed communication
> buffer should be used, use the firmware-specified buffer instead of
> allocating a buffer in memory for communications between the dcdbas driver
> and firmare.

Thanks for an update. My comments below.

> - if ((pos + count) > MAX_SMI_DATA_BUF_SIZE)
> + if ((pos + count) > max_smi_data_buf_size)
> return -EINVAL;

Parens are redundant, but okay, not purpose of the change.

> + /* Calling Interface SMI

I suppose the style of the comments like
/*
* Calling ...
...

> + *
> + * Provide physical address of command buffer field within
> + * the struct smi_cmd... can't use virt_to_phys on smi_cmd
> + * because address may be from memremap.

Wait, memremap() might return a virtual address. How we be sure that
we got still physical address here?

(Also note () when referring to functions)

> + */
> + smi_cmd->ebx = smi_data_buf_phys_addr +
> + offsetof(struct smi_cmd, command_buffer);

Btw, can it be one line (~83 character are okay for my opinion).

> + acpi_get_table(ACPI_SIG_WSMT, 0, (struct acpi_table_header **)&wsmt);
> + if (!wsmt)
> + return 0;
> +
> + /* Check if WSMT ACPI table shows that protection is enabled */
> + if (!(wsmt->protection_flags & ACPI_WSMT_FIXED_COMM_BUFFERS)

> + || !(wsmt->protection_flags
> + & ACPI_WSMT_COMM_BUFFER_NESTED_PTR_PROTECTION))

Better to indent like

if (... ||
!(... & ...)

> + return 0;
> +
> + /* Scan for EPS (entry point structure) */
> + for (addr = (u8 *)__va(0xf0000);
> + addr < (u8 *)__va(0x100000 - sizeof(struct smm_eps_table));

> + addr += 1) {

This wasn't commented IIRC and changed. So, why?

--
With Best Regards,
Andy Shevchenko