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