[PATCH] coccinelle: platform_no_drv_owner: Handle also built-in drivers

Krzysztof Kozlowski posted 1 patch 1 year, 1 month ago
There is a newer version of this series
scripts/coccinelle/api/platform_no_drv_owner.cocci | 9 +++++++++
1 file changed, 9 insertions(+)
[PATCH] coccinelle: platform_no_drv_owner: Handle also built-in drivers
Posted by Krzysztof Kozlowski 1 year, 1 month ago
builtin_platform_driver() and others also use macro
platform_driver_register() which sets the .owner=THIS_MODULE, so extend
the cocci script to detect these as well.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 scripts/coccinelle/api/platform_no_drv_owner.cocci | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/scripts/coccinelle/api/platform_no_drv_owner.cocci b/scripts/coccinelle/api/platform_no_drv_owner.cocci
index 8fa050eeb7e5..5e869858bda8 100644
--- a/scripts/coccinelle/api/platform_no_drv_owner.cocci
+++ b/scripts/coccinelle/api/platform_no_drv_owner.cocci
@@ -10,12 +10,21 @@ virtual org
 virtual report
 
 @match1@
+declarer name builtin_i2c_driver;
+declarer name builtin_platform_driver;
+declarer name builtin_platform_driver_probe;
 declarer name module_i2c_driver;
 declarer name module_platform_driver;
 declarer name module_platform_driver_probe;
 identifier __driver;
 @@
 (
+	builtin_i2c_driver(__driver);
+|
+	builtin_platform_driver(__driver);
+|
+	builtin_platform_driver_probe(__driver, ...);
+|
 	module_i2c_driver(__driver);
 |
 	module_platform_driver(__driver);
-- 
2.43.0
Re: [cocci] [PATCH] coccinelle: platform_no_drv_owner: Handle also built-in drivers
Posted by Markus Elfring 1 year, 1 month ago
…
> +++ b/scripts/coccinelle/api/platform_no_drv_owner.cocci
> @@ -10,12 +10,21 @@ virtual org
>  virtual report
>
>  @match1@
…
>  @@
>  (
> +	builtin_i2c_driver(__driver);
> +|
> +	builtin_platform_driver(__driver);
> +|
> +	builtin_platform_driver_probe(__driver, ...);
> +|
>  	module_i2c_driver(__driver);
>  |
>  	module_platform_driver(__driver);

How do you think about to avoid a bit for duplicate SmPL code
(by using nested disjunctions)?

Development idea:
(
(builtin_platform_driver
|builtin_i2c_driver
|module_i2c_driver
|module_platform_driver
)(__driver);
|builtin_platform_driver_probe(__driver, ...);)


Regards,
Markus