]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
clk: keystone: sci-clk: fix application of sizeof to pointer
authorJing Yangyang <jing.yangyang@zte.com.cn>
Tue, 12 May 2026 11:00:28 +0000 (06:00 -0500)
committerNishanth Menon <nm@ti.com>
Thu, 4 Jun 2026 02:46:01 +0000 (21:46 -0500)
Coccinelle (scripts/coccinelle/misc/noderef.cocci) reports:

  drivers/clk/keystone/sci-clk.c:391:8-14: ERROR: application of
  sizeof to pointer

In sci_clk_get(), 'clk' is declared as 'struct sci_clk **', so
sizeof(clk) is sizeof(struct sci_clk **) which is the size of a
pointer rather than the size of an array element. provider->clocks
is an array of 'struct sci_clk *', so the canonical size argument
to bsearch() is sizeof(*clk) (i.e. sizeof(struct sci_clk *)).

The two values are equal on every supported architecture, so this
is correctness/idiom, not a runtime fix, but the new form matches
the rest of the bsearch() callers in the tree and silences the
Coccinelle warning the script flagged.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Closes: https://lore.kernel.org/all/84a6ba16686347099a3dab2e5161a930e792eb6e.1629198281.git.jing.yangyang@zte.com.cn/
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@inria.fr>
Closes: https://lore.kernel.org/all/202512040525.zrHSDl5h-lkp@intel.com/
Link: https://lore.kernel.org/linux-clk/20211012021931.176727-1-davidcomponentone@gmail.com/
Reviewed-by: Stepan Ionichev <sozdayvek@gmail.com>
Reviewed-by: Andrew Davis <afd@ti.com>
Signed-off-by: Jing Yangyang <jing.yangyang@zte.com.cn>
Signed-off-by: David Yang <davidcomponentone@gmail.com>
[nm@ti.com: Improved commit message]
Reviewed-by: Brian Masney <bmasney@redhat.com>
Link: https://patch.msgid.link/20260512110028.2999471-1-nm@ti.com
Signed-off-by: Nishanth Menon <nm@ti.com>
drivers/clk/keystone/sci-clk.c

index 0a1565fdbb3b990c76b01de2e307b22866fd8db1..aed8dba29126eeadd067d6de7a4036a1d8560f5d 100644 (file)
@@ -396,7 +396,7 @@ static struct clk_hw *sci_clk_get(struct of_phandle_args *clkspec, void *data)
        key.clk_id = clkspec->args[1];
 
        clk = bsearch(&key, provider->clocks, provider->num_clocks,
-                     sizeof(clk), _cmp_sci_clk);
+                     sizeof(*clk), _cmp_sci_clk);
 
        if (!clk)
                return ERR_PTR(-ENODEV);