staging: clocking-wizard: check for a valid clk_name pointer
[firefly-linux-kernel-4.4.55.git] / drivers / staging / clocking-wizard / clk-xlnx-clock-wizard.c
index b8d89525bffdd4b986c3c8284ffb5797be11ef16..0a3a8fe67fb57ae9479669e92511ded16ef0d6ca 100644 (file)
@@ -29,7 +29,7 @@
 #define WZRD_NUM_OUTPUTS       7
 #define WZRD_ACLK_MAX_FREQ     250000000UL
 
-#define WZRD_CLK_CFG_REG(n)    (0x200 + 4 * n)
+#define WZRD_CLK_CFG_REG(n)    (0x200 + 4 * (n))
 
 #define WZRD_CLkOUT0_FRAC_EN   BIT(18)
 #define WZRD_CLkFBOUT_FRAC_EN  BIT(26)
@@ -221,6 +221,11 @@ static int clk_wzrd_probe(struct platform_device *pdev)
        reg = (readl(clk_wzrd->base + WZRD_CLK_CFG_REG(0)) &
                        WZRD_DIVCLK_DIVIDE_MASK) >> WZRD_DIVCLK_DIVIDE_SHIFT;
        clk_name = kasprintf(GFP_KERNEL, "%s_mul_div", dev_name(&pdev->dev));
+       if (!clk_name) {
+               ret = -ENOMEM;
+               goto err_rm_int_clk;
+       }
+
        clk_wzrd->clks_internal[wzrd_clk_mul_div] = clk_register_fixed_factor(
                        &pdev->dev, clk_name,
                        __clk_get_name(clk_wzrd->clks_internal[wzrd_clk_mul]),