drivers: remove direct access to interrupt handle
[dpdk.git] / drivers / bus / fslmc / fslmc_bus.c
index 8c8f8a2..ac3cb4a 100644 (file)
@@ -47,6 +47,7 @@ cleanup_fslmc_device_list(void)
 
        RTE_TAILQ_FOREACH_SAFE(dev, &rte_fslmc_bus.device_list, next, t_dev) {
                TAILQ_REMOVE(&rte_fslmc_bus.device_list, dev, next);
+               rte_intr_instance_free(dev->intr_handle);
                free(dev);
                dev = NULL;
        }
@@ -160,6 +161,15 @@ scan_one_fslmc_device(char *dev_name)
 
        dev->device.bus = &rte_fslmc_bus.bus;
 
+       /* Allocate interrupt instance */
+       dev->intr_handle =
+               rte_intr_instance_alloc(RTE_INTR_INSTANCE_F_PRIVATE);
+       if (dev->intr_handle == NULL) {
+               DPAA2_BUS_ERR("Failed to allocate intr handle");
+               ret = -ENOMEM;
+               goto cleanup;
+       }
+
        /* Parse the device name and ID */
        t_ptr = strtok(dup_dev_name, ".");
        if (!t_ptr) {
@@ -220,8 +230,10 @@ scan_one_fslmc_device(char *dev_name)
 cleanup:
        if (dup_dev_name)
                free(dup_dev_name);
-       if (dev)
+       if (dev) {
+               rte_intr_instance_free(dev->intr_handle);
                free(dev);
+       }
        return ret;
 }