clk: sunxi: Fix of_io_request_and_map error check
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Sat, 2 May 2015 15:03:22 +0000 (17:03 +0200)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Tue, 5 May 2015 15:43:57 +0000 (17:43 +0200)
of_io_request_and map returns an error pointer, but the current code assumes
that on error the returned pointer will be NULL.

Obviously, that makes the check completely useless. Change the test to actually
check for the proper error code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
drivers/clk/sunxi/clk-sun9i-core.c
drivers/clk/sunxi/clk-sunxi.c

index d8da77d72861b29f0867d47b43b7917da31037f7..887f4ea161bb4eb79700c7778aecbec2c977e2b4 100644 (file)
@@ -93,7 +93,7 @@ static void __init sun9i_a80_pll4_setup(struct device_node *node)
        void __iomem *reg;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
-       if (!reg) {
+       if (IS_ERR(reg)) {
                pr_err("Could not get registers for a80-pll4-clk: %s\n",
                       node->name);
                return;
@@ -154,7 +154,7 @@ static void __init sun9i_a80_gt_setup(struct device_node *node)
        struct clk *gt;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
-       if (!reg) {
+       if (IS_ERR(reg)) {
                pr_err("Could not get registers for a80-gt-clk: %s\n",
                       node->name);
                return;
@@ -218,7 +218,7 @@ static void __init sun9i_a80_ahb_setup(struct device_node *node)
        void __iomem *reg;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
-       if (!reg) {
+       if (IS_ERR(reg)) {
                pr_err("Could not get registers for a80-ahb-clk: %s\n",
                       node->name);
                return;
@@ -244,7 +244,7 @@ static void __init sun9i_a80_apb0_setup(struct device_node *node)
        void __iomem *reg;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
-       if (!reg) {
+       if (IS_ERR(reg)) {
                pr_err("Could not get registers for a80-apb0-clk: %s\n",
                       node->name);
                return;
@@ -310,7 +310,7 @@ static void __init sun9i_a80_apb1_setup(struct device_node *node)
        void __iomem *reg;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
-       if (!reg) {
+       if (IS_ERR(reg)) {
                pr_err("Could not get registers for a80-apb1-clk: %s\n",
                       node->name);
                return;
index 7e1e2bd189b6a6f6f3c0047d6b3f4d6b5899c3c6..9a82f17d2d73daf611ac5e8651e35c2101ea6245 100644 (file)
@@ -198,6 +198,8 @@ static void __init sun6i_ahb1_clk_setup(struct device_node *node)
        int i = 0;
 
        reg = of_io_request_and_map(node, 0, of_node_full_name(node));
+       if (IS_ERR(reg))
+               return;
 
        /* we have a mux, we will have >1 parents */
        while (i < SUN6I_AHB1_MAX_PARENTS &&
This page took 0.027568 seconds and 5 git commands to generate.