[PATCH] checkpatch: Prefer DEFINE_TYPES() over type_init / type_register_static

Philippe Mathieu-Daudé posted 1 patch 11 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230524145444.32820-1-philmd@linaro.org
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] checkpatch: Prefer DEFINE_TYPES() over type_init / type_register_static
Posted by Philippe Mathieu-Daudé 11 months, 2 weeks ago
When multiple QOM types are registered in the same file, it
is clearer and simpler to use the the DEFINE_TYPES() macro.

Add a rule to checkpatch.pl to suggest using DEFINE_TYPES()
instead of type_init() / type_register_static().

Suggested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 scripts/checkpatch.pl | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index eeaec436eb..db8029635c 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2877,6 +2877,12 @@ sub process {
 		if ($line =~ /^module_init\s*\(/) {
 			ERROR("please use block_init(), type_init() etc. instead of module_init()\n" . $herecurr);
 		}
+
+# recommend DEFINE_TYPES() over type_init()/type_register_static()
+		if ($line =~ /\b(type_init|type_register_static)\(/) {
+			WARN("consider using DEFINE_TYPES() in preference to type_init()\n" . $herecurr);
+		}
+
 # check for various ops structs, ensure they are const.
 		my $struct_ops = qr{AIOCBInfo|
 				BdrvActionOps|
-- 
2.38.1


Re: [PATCH] checkpatch: Prefer DEFINE_TYPES() over type_init / type_register_static
Posted by Daniel Henrique Barboza 11 months, 2 weeks ago

On 5/24/23 11:54, Philippe Mathieu-Daudé wrote:
> When multiple QOM types are registered in the same file, it
> is clearer and simpler to use the the DEFINE_TYPES() macro.
> 
> Add a rule to checkpatch.pl to suggest using DEFINE_TYPES()
> instead of type_init() / type_register_static().
> 

Nice!

> Suggested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---


Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>

>   scripts/checkpatch.pl | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index eeaec436eb..db8029635c 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -2877,6 +2877,12 @@ sub process {
>   		if ($line =~ /^module_init\s*\(/) {
>   			ERROR("please use block_init(), type_init() etc. instead of module_init()\n" . $herecurr);
>   		}
> +
> +# recommend DEFINE_TYPES() over type_init()/type_register_static()
> +		if ($line =~ /\b(type_init|type_register_static)\(/) {
> +			WARN("consider using DEFINE_TYPES() in preference to type_init()\n" . $herecurr);
> +		}
> +
>   # check for various ops structs, ensure they are const.
>   		my $struct_ops = qr{AIOCBInfo|
>   				BdrvActionOps|

Re: [PATCH] checkpatch: Prefer DEFINE_TYPES() over type_init / type_register_static
Posted by Richard Henderson 11 months, 2 weeks ago
On 5/24/23 07:54, Philippe Mathieu-Daudé wrote:
> When multiple QOM types are registered in the same file, it
> is clearer and simpler to use the the DEFINE_TYPES() macro.
> 
> Add a rule to checkpatch.pl to suggest using DEFINE_TYPES()
> instead of type_init() / type_register_static().
> 
> Suggested-by: Daniel Henrique Barboza<dbarboza@ventanamicro.com>
> Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org>
> ---
>   scripts/checkpatch.pl | 6 ++++++
>   1 file changed, 6 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~