On Wed, Mar 18, 2026 at 03:46:29PM +0100, Christian Bruel wrote:
> Return -ENOSPC instead of -EOI when the status reports the NOSPC bit.

s/EOI/EIO/


> This signifies to the pci_endpoint test to skip this test instead of
> reporting a failure.
> 
> Link: 
> https://lore.kernel.org/linux-pci/20260317152707.GA85951@bhelgaas/T/#m87e4c24173097a0ea70195b71aab294ad8d6c283

I would drop the link.

I would put this patch after pci_epf_test.c patch and before selftest patch.


> Signed-off-by: Christian Bruel <[email protected]>
> ---
>  drivers/misc/pci_endpoint_test.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/pci_endpoint_test.c 
> b/drivers/misc/pci_endpoint_test.c
> index 
> 55e128ed82f00ae13b6fe9768cdbe56adbe8f9da..34ba06fb53f04e48c1c05f4aae85e6ecd03ef447
>  100644
> --- a/drivers/misc/pci_endpoint_test.c
> +++ b/drivers/misc/pci_endpoint_test.c
> @@ -61,6 +61,7 @@
>  #define STATUS_BAR_SUBRANGE_SETUP_FAIL               BIT(15)
>  #define STATUS_BAR_SUBRANGE_CLEAR_SUCCESS    BIT(16)
>  #define STATUS_BAR_SUBRANGE_CLEAR_FAIL               BIT(17)
> +#define STATUS_BAR_SUBRANGE_SETUP_NOSPC              BIT(18)
>  
>  #define PCI_ENDPOINT_TEST_LOWER_SRC_ADDR     0x0c
>  #define PCI_ENDPOINT_TEST_UPPER_SRC_ADDR     0x10
> @@ -476,8 +477,11 @@ static int pci_endpoint_test_bar_subrange_cmd(struct 
> pci_endpoint_test *test,
>               return -ETIMEDOUT;
>  
>       status = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS);
> -     if (status & fail_bit)
> +     if (status & fail_bit) {
> +             if (status & STATUS_BAR_SUBRANGE_SETUP_NOSPC)
> +                     return -ENOSPC;

Perhaps this should be something like:

if (command == COMMAND_BAR_SUBRANGE_SETUP && status & 
STATUS_BAR_SUBRANGE_SETUP_SKIP)

Personally, I'm not a big fan of having a common function for both
pci_endpoint_test_bar_subrange_setup() and
pci_endpoint_test_bar_subrange_clear() and then sending in parameters
for which bits to check. It make it hard to have small differences
between them (like checking for an bit that is only valid for one of
the commands).

I can understand why Koichiro wrote it why he did, but since we now
want differences, perhaps add a preparation patch that makes it two
separate functions?

It is not like pci_endpoint_test_bar_subrange_cmd() is a big function
anyway.


Kind regards,
Niklas

Reply via email to