So pci_alloc_irq_vectors() can return errors different than ENOSPC, and in that case, you will overwrite that error. > @@ -442,9 +444,12 @@ static bool pci_endpoint_test_msi_irq(struct pci_endpoint_test *test, > val = wait_for_completion_timeout(&test->irq_raised, > msecs_to_jiffies(1000)); > if (!val) > - return false; > + return -ETIMEDOUT; > > - return pci_irq_vector(pdev, msi_num - 1) == test->last_irq; > + if (!(pci_irq_vector(pdev, msi_num - 1) == test->last_irq)) if (pci_irq_vector(pdev, msi_num - 1) != test->last_irq) ? Or perhaps even: ret = pci_irq_vector(); if (ret < 0) return ret; if (ret != test->last_irq) return -EIO; Otherwise, this looks good to me: Reviewed-by: Niklas Cassel <cassel@xxxxxxxxxx>