return 0;
 }
+
+static
+int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret)
+{
+       struct octeon_device *oct = droq->oct_dev;
+       struct octeon_device_priv *oct_priv =
+           (struct octeon_device_priv *)oct->priv;
+
+       if (droq->ops.poll_mode) {
+               droq->ops.napi_fn(droq);
+       } else {
+               if (ret & MSIX_PO_INT) {
+                       if (OCTEON_CN23XX_VF(oct))
+                               dev_err(&oct->pci_dev->dev,
+                                       "should not come here should not get rx when poll mode = 0 for vf\n");
+                       tasklet_schedule(&oct_priv->droq_tasklet);
+                       return 1;
+               }
+               /* this will be flushed periodically by check iq db */
+               if (ret & MSIX_PI_INT)
+                       return 0;
+       }
+
+       return 0;
+}
+
+irqreturn_t
+liquidio_msix_intr_handler(int irq __attribute__((unused)), void *dev)
+{
+       struct octeon_ioq_vector *ioq_vector = (struct octeon_ioq_vector *)dev;
+       struct octeon_device *oct = ioq_vector->oct_dev;
+       struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
+       u64 ret;
+
+       ret = oct->fn_list.msix_interrupt_handler(ioq_vector);
+
+       if (ret & MSIX_PO_INT || ret & MSIX_PI_INT)
+               liquidio_schedule_msix_droq_pkt_handler(droq, ret);
+
+       return IRQ_HANDLED;
+}
 
        int started_ok;
 };
 
-struct octeon_device_priv {
-       /** Tasklet structures for this device. */
-       struct tasklet_struct droq_tasklet;
-       unsigned long napi_mask;
-};
-
 #ifdef CONFIG_PCI_IOV
 static int liquidio_enable_sriov(struct pci_dev *dev, int num_vfs);
 #endif
        }
 }
 
-static
-int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret)
-{
-       struct octeon_device *oct = droq->oct_dev;
-       struct octeon_device_priv *oct_priv =
-           (struct octeon_device_priv *)oct->priv;
-
-       if (droq->ops.poll_mode) {
-               droq->ops.napi_fn(droq);
-       } else {
-               if (ret & MSIX_PO_INT) {
-                       tasklet_schedule(&oct_priv->droq_tasklet);
-                       return 1;
-               }
-               /* this will be flushed periodically by check iq db */
-               if (ret & MSIX_PI_INT)
-                       return 0;
-       }
-       return 0;
-}
-
 /**
  * \brief Droq packet processor sceduler
  * @param oct octeon device
        }
 }
 
-static irqreturn_t
-liquidio_msix_intr_handler(int irq __attribute__((unused)), void *dev)
-{
-       u64 ret;
-       struct octeon_ioq_vector *ioq_vector = (struct octeon_ioq_vector *)dev;
-       struct octeon_device *oct = ioq_vector->oct_dev;
-       struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
-
-       ret = oct->fn_list.msix_interrupt_handler(ioq_vector);
-
-       if ((ret & MSIX_PO_INT) || (ret & MSIX_PI_INT))
-               liquidio_schedule_msix_droq_pkt_handler(droq, ret);
-
-       return IRQ_HANDLED;
-}
-
 /**
  * \brief Interrupt handler for octeon
  * @param irq unused
 
        dma_addr_t sg_dma_ptr;
 };
 
-struct octeon_device_priv {
-       /* Tasklet structures for this device. */
-       struct tasklet_struct droq_tasklet;
-       unsigned long napi_mask;
-};
-
 static int
 liquidio_vf_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
 static void liquidio_vf_remove(struct pci_dev *pdev);
        }
 }
 
-static
-int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret)
-{
-       struct octeon_device *oct = droq->oct_dev;
-       struct octeon_device_priv *oct_priv =
-           (struct octeon_device_priv *)oct->priv;
-
-       if (droq->ops.poll_mode) {
-               droq->ops.napi_fn(droq);
-       } else {
-               if (ret & MSIX_PO_INT) {
-                       dev_err(&oct->pci_dev->dev,
-                               "should not come here should not get rx when poll mode = 0 for vf\n");
-                       tasklet_schedule(&oct_priv->droq_tasklet);
-                       return 1;
-               }
-               /* this will be flushed periodically by check iq db */
-               if (ret & MSIX_PI_INT)
-                       return 0;
-       }
-       return 0;
-}
-
-static irqreturn_t
-liquidio_msix_intr_handler(int irq __attribute__((unused)), void *dev)
-{
-       struct octeon_ioq_vector *ioq_vector = (struct octeon_ioq_vector *)dev;
-       struct octeon_device *oct = ioq_vector->oct_dev;
-       struct octeon_droq *droq = oct->droq[ioq_vector->droq_index];
-       u64 ret;
-
-       ret = oct->fn_list.msix_interrupt_handler(ioq_vector);
-
-       if ((ret & MSIX_PO_INT) || (ret & MSIX_PI_INT))
-               liquidio_schedule_msix_droq_pkt_handler(droq, ret);
-
-       return IRQ_HANDLED;
-}
-
 /**
  * \brief Setup interrupt for octeon device
  * @param oct octeon device
 
 
 #define DRV_NAME "LiquidIO"
 
+struct octeon_device_priv {
+       /** Tasklet structures for this device. */
+       struct tasklet_struct droq_tasklet;
+       unsigned long napi_mask;
+};
+
 /** This structure is used by NIC driver to store information required
  * to free the sk_buff when the packet has been fetched by Octeon.
  * Bytes offset below assume worst-case of a 64-bit system.
 
 
 int liquidio_setup_io_queues(struct octeon_device *octeon_dev, int ifidx);
 
+irqreturn_t liquidio_msix_intr_handler(int irq __attribute__((unused)),
+                                      void *dev);
+
 /**
  * \brief Register ethtool operations
  * @param netdev    pointer to network device