Return -ENOSPC when the status reports the STATUS_NO_RESOURCE bit.
This signifies to the pci_endpoint test to skip this test.

Signed-off-by: Christian Bruel <[email protected]>
Reviewed-by: Niklas Cassel <[email protected]>
Reviewed-by: Frank Li <[email protected]>
Reviewed-by: Koichiro Den <[email protected]>
---
 drivers/misc/pci_endpoint_test.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c
index 
38679dfb1f9b67d92a2d0d90a1a58b72ea9fde6b..dbd017cabbb92394c20d07c478518f5fefe2067e
 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_NO_RESOURCE                     BIT(18)
 
 #define PCI_ENDPOINT_TEST_LOWER_SRC_ADDR       0x0c
 #define PCI_ENDPOINT_TEST_UPPER_SRC_ADDR       0x10
@@ -480,7 +481,7 @@ static int pci_endpoint_test_bar_subrange_cmd(struct 
pci_endpoint_test *test,
 
        status = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_STATUS);
        if (status & fail_bit)
-               return -EIO;
+               return (status & STATUS_NO_RESOURCE) ? -ENOSPC : -EIO;
 
        if (!(status & ok_bit))
                return -EIO;

-- 
2.34.1


Reply via email to