Re: [PATCH kernel 1/4] pci/doe: Define protocol types and make those public

Alexey Kardashevskiy
2024-02-01T10:16:46Z

On 1/2/24 17:50, Lukas Wunner wrote:
> On Thu, Feb 01, 2024 at 05:02:25PM +1100, Alexey Kardashevskiy wrote:
>> Already public pci_doe() takes a protocol type argument.
>> PCIe 6.0 defines three, define them in a header for use with pci_doe().
> [...]
>> --- a/include/linux/pci-doe.h
>> +++ b/include/linux/pci-doe.h
>> @@ -13,6 +13,10 @@
>> #ifndef LINUX_PCI_DOE_H
>> #define LINUX_PCI_DOE_H
>>
>> +#define PCI_DOE_PROTOCOL_DISCOVERY 0
>> +#define PCI_DOE_PROTOCOL_CMA_SPDM 1
>> +#define PCI_DOE_PROTOCOL_SECURED_CMA_SPDM 2
>
> These are deliberately defined in the .c files which actually need them,
> i.e. DISCOVERY is defined in drivers/pci/doe.c and CMA_SPDM is defined in
> drivers/pci/cma.c:
>
> https://lore.kernel.org/all/7721bfa3b4f8a99a111f7808ad8890c3c13df56d.1695921657.git.lukas@wunner.de/
>
> I don't see why they would have to be public if they're each only needed
> in a single .c file.

SEV TIO needs both CMA and SECURED_CMA for DOE device<->firmware
bouncing and it is going to use pci_doe() for this. I should have put
this into the commit log, sorry about that.

Or the plan is to add pci_doe_secure_transport() to cma.c and force
everyone use that?

The PCI SIG DOE protocol numbers (discovery, CMA, secure CMA) are all
defined in one place in the PCIe spec and defining them in different
places (doe.c, cma.c) is weird imho.

>
> Thanks,
>
> Lukas

--
Alexey