On Thu, Jan 23, 2025 at 01:01:48PM +0100, Niklas Cassel wrote: > The current code returns -ENOMEM if test->bar[barno] is NULL. > > There can be two reasons why test->bar[barno] is NULL: > 1) The pci_ioremap_bar() call in pci_endpoint_test_probe() failed. > 2) The BAR was skipped, because it is disabled by the endpoint. > > Many PCI endpoint controller drivers will disable all BARs in their > init function. A disabled BAR will have a size of 0. > > A PCI endpoint function driver will be able to enable any BAR that > is not marked as BAR_RESERVED (which means that the BAR should not > be touched by the EPF driver). > > Thus, perform check if the size is 0, before checking if > test->bar[barno] is NULL, such that we can return different errors. > > This will allow the selftests to return SKIP instead of FAIL for > disabled BARs. > > Signed-off-by: Niklas Cassel <cassel@xxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> - Mani > --- > Hello PCI maintainers. > This patch might give a trivial conflict with: > https://lore.kernel.org/linux-pci/20250123095906.3578241-2-cassel@xxxxxxxxxx/T/#u > because the context lines (lines that haven't been changed) > might be different. If there is a conflict, simply look at > this patch by itself, and resolution should be trivial. > > drivers/misc/pci_endpoint_test.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c > index d5ac71a49386..b95980b29eb9 100644 > --- a/drivers/misc/pci_endpoint_test.c > +++ b/drivers/misc/pci_endpoint_test.c > @@ -292,11 +292,13 @@ static int pci_endpoint_test_bar(struct pci_endpoint_test *test, > void *read_buf __free(kfree) = NULL; > struct pci_dev *pdev = test->pdev; > > + bar_size = pci_resource_len(pdev, barno); > + if (!bar_size) > + return -ENODATA; > + > if (!test->bar[barno]) > return -ENOMEM; > > - bar_size = pci_resource_len(pdev, barno); > - > if (barno == test->test_reg_bar) > bar_size = 0x4; > > -- > 2.48.1 > -- மணிவண்ணன் சதாசிவம்