return ret;
 }
 
-static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test, u8 irq_type,
-                                  u16 irq)
+static void pci_epf_test_raise_irq(struct pci_epf_test *epf_test,
+                                  struct pci_epf_test_reg *reg)
 {
        struct pci_epf *epf = epf_test->epf;
        struct device *dev = &epf->dev;
        struct pci_epc *epc = epf->epc;
-       enum pci_barno test_reg_bar = epf_test->test_reg_bar;
-       struct pci_epf_test_reg *reg = epf_test->reg[test_reg_bar];
 
        reg->status |= STATUS_IRQ_RAISED;
 
-       switch (irq_type) {
+       switch (reg->irq_type) {
        case IRQ_TYPE_LEGACY:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
                                  PCI_EPC_IRQ_LEGACY, 0);
                break;
        case IRQ_TYPE_MSI:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
-                                 PCI_EPC_IRQ_MSI, irq);
+                                 PCI_EPC_IRQ_MSI, reg->irq_number);
                break;
        case IRQ_TYPE_MSIX:
                pci_epc_raise_irq(epc, epf->func_no, epf->vfunc_no,
-                                 PCI_EPC_IRQ_MSIX, irq);
+                                 PCI_EPC_IRQ_MSIX, reg->irq_number);
                break;
        default:
                dev_err(dev, "Failed to raise IRQ, unknown type\n");
                        reg->status |= STATUS_WRITE_FAIL;
                else
                        reg->status |= STATUS_WRITE_SUCCESS;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }
 
                        reg->status |= STATUS_READ_SUCCESS;
                else
                        reg->status |= STATUS_READ_FAIL;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }
 
                        reg->status |= STATUS_COPY_SUCCESS;
                else
                        reg->status |= STATUS_COPY_FAIL;
-               pci_epf_test_raise_irq(epf_test, reg->irq_type,
-                                      reg->irq_number);
+               pci_epf_test_raise_irq(epf_test, reg);
                goto reset_handler;
        }