New upstream version 18.08
[deb_dpdk.git] / drivers / bus / dpaa / base / qbman / qman_driver.c
index 7cfa8ee..f6ecd6b 100644 (file)
@@ -20,9 +20,9 @@ u16 qm_channel_caam = QMAN_CHANNEL_CAAM;
 u16 qm_channel_pme = QMAN_CHANNEL_PME;
 
 /* Ccsr map address to access ccsrbased register */
-void *qman_ccsr_map;
+static void *qman_ccsr_map;
 /* The qman clock frequency */
-u32 qman_clk;
+static u32 qman_clk;
 
 static __thread int qmfd = -1;
 static __thread struct qm_portal_config qpcfg;
@@ -160,6 +160,7 @@ struct qman_portal *fsl_qman_portal_create(void)
                                     &cpuset);
        if (ret) {
                error(0, ret, "pthread_getaffinity_np()");
+               kfree(q_pcfg);
                return NULL;
        }
 
@@ -168,12 +169,14 @@ struct qman_portal *fsl_qman_portal_create(void)
                if (CPU_ISSET(loop, &cpuset)) {
                        if (q_pcfg->cpu != -1) {
                                pr_err("Thread is not affine to 1 cpu\n");
+                               kfree(q_pcfg);
                                return NULL;
                        }
                        q_pcfg->cpu = loop;
                }
        if (q_pcfg->cpu == -1) {
                pr_err("Bug in getaffinity handling!\n");
+               kfree(q_pcfg);
                return NULL;
        }
 
@@ -183,6 +186,7 @@ struct qman_portal *fsl_qman_portal_create(void)
        ret = process_portal_map(&q_map);
        if (ret) {
                error(0, ret, "process_portal_map()");
+               kfree(q_pcfg);
                return NULL;
        }
        q_pcfg->channel = q_map.channel;
@@ -217,6 +221,7 @@ err2:
        close(q_fd);
 err1:
        process_portal_unmap(&q_map.addr);
+       kfree(q_pcfg);
        return NULL;
 }
 
@@ -246,7 +251,6 @@ int fsl_qman_portal_destroy(struct qman_portal *qp)
 int qman_global_init(void)
 {
        const struct device_node *dt_node;
-       int ret = 0;
        size_t lenp;
        const u32 *chanid;
        static int ccsr_map_fd;
@@ -352,9 +356,7 @@ int qman_global_init(void)
                qman_clk = be32_to_cpu(*clk);
 
 #ifdef CONFIG_FSL_QMAN_FQ_LOOKUP
-       ret = qman_setup_fq_lookup_table(CONFIG_FSL_QMAN_FQ_LOOKUP_MAX);
-       if (ret)
-               return ret;
+       return qman_setup_fq_lookup_table(CONFIG_FSL_QMAN_FQ_LOOKUP_MAX);
 #endif
        return 0;
 }