Skip to contentSkip to conversation

clk-gate: fix bit # check in clk_register_gate()

PATCH Applied Sergei Shtylyov 2 participants 3 messages Dec 24, 2014 – Jan 17, 2015 SuperH

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 clk-gate: fix bit # check in clk_register_gate()

In case CLK_GATE_HIWORD_MASK flag is passed to clk_register_gate(), the bit # should be no higher than 15, however the corresponding check is obviously off- by-one.

Fixes 045779942c04 ("clk: gate: add CLK_GATE_HIWORD_MASK")

---
The patch is against Linus' repo because the 'clk-fixes' branch in Mike Turquette's 'linux.git' repo at Linaro seems very outdated. BTW, the repo at kernel.org specified by the MAINTAINERS file doesn't seem to exist -- can something be done about that?

 drivers/clk/clk-gate.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/clk/clk-gate.c =================================--- linux.orig/drivers/clk/clk-gate.c +++ linux/drivers/clk/clk-gate.c
@@ -128,7 +128,7 @@ struct clk *clk_register_gate(struct dev
struct clk_init_data init;

if (clk_gate_flags & CLK_GATE_HIWORD_MASK) {
- if (bit_idx > 16) {
+ if (bit_idx > 15) {
pr_err("gate bit exceeds LOWORD field\n"); return ERR_PTR(-EINVAL);
}

#1 lore raw

Quoting Sergei Shtylyov (2014-12-24 06:43:27)

Quoted 6 lines

In case CLK_GATE_HIWORD_MASK flag is passed to clk_register_gate(), the bit # should be no higher than 15, however the corresponding check is obviously off- by-one.

Fixes 045779942c04 ("clk: gate: add CLK_GATE_HIWORD_MASK")

Applied to clk-next. Thanks! Is this causing a visible regression for you? It is not a new bug so I'd prefer to send it though clk-next unless something is blowing up on your end.

Quoted 6 lines

---
The patch is against Linus' repo because the 'clk-fixes' branch in Mike Turquette's 'linux.git' repo at Linaro seems very outdated. BTW, the repo at kernel.org specified by the MAINTAINERS file doesn't seem to exist -- can something be done about that?

The clk-fixes branch at git.linaro.org is now updated and the clk tree at git.kernel.org is also live. Blame the holidays.

For now they will mirror each other (and linux-next will continue to reference the one at git.linaro.org until 3.19 is released).

Regards,
Mike

Quoted 17 lines
 drivers/clk/clk-gate.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/clk/clk-gate.c =================================> --- linux.orig/drivers/clk/clk-gate.c +++ linux/drivers/clk/clk-gate.c

(quoted diff) +1 -1
@@ -128,7 +128,7 @@ struct clk *clk_register_gate(struct dev
        struct clk_init_data init;
 
        if (clk_gate_flags & CLK_GATE_HIWORD_MASK) {
-               if (bit_idx > 16) {
+               if (bit_idx > 15) {
                        pr_err("gate bit exceeds LOWORD field\n");
                        return ERR_PTR(-EINVAL);
                }
#2 lore raw

Hello.

Quoted 10 lines · Mike Turquette
Quoted 6 lines

In case CLK_GATE_HIWORD_MASK flag is passed to clk_register_gate(), the bit # should be no higher than 15, however the corresponding check is obviously off- by-one.

Fixes 045779942c04 ("clk: gate: add CLK_GATE_HIWORD_MASK")

Applied to clk-next. Thanks! Is this causing a visible regression for you? It is not a new bug so I'd prefer to send it though clk-next unless something is blowing up on your end.

No, nothing, I don't even call this function (was using composite clock).
Found by just looking at the code.

Quoted 11 lines
Quoted 5 lines

---
The patch is against Linus' repo because the 'clk-fixes' branch in Mike Turquette's 'linux.git' repo at Linaro seems very outdated. BTW, the repo at kernel.org specified by the MAINTAINERS file doesn't seem to exist -- can something be done about that?

The clk-fixes branch at git.linaro.org is now updated and the clk tree at git.kernel.org is also live. Blame the holidays.

For now they will mirror each other (and linux-next will continue to reference the one at git.linaro.org until 3.19 is released).

Thank you.

Quoted 2 lines

Regards,
Mike

WBR, Sergei