[PATCH] xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation

Xenia Ragiadakou posted 1 patch 1 year, 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20220705122114.419634-1-burzalodowa@gmail.com
Test gitlab-ci failed
There is a newer version of this series
xen/arch/arm/include/asm/processor.h | 2 ++
1 file changed, 2 insertions(+)
[PATCH] xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation
Posted by Xenia Ragiadakou 1 year, 9 months ago
Add the function prototype of show_stack() in <asm/processor.h> header file
so that it is visible before its definition in traps.c.

Although show_stack() is referenced only in traps.c, it is declared with
external linkage because, during development, it is often called also by
other files for debugging purposes. Declaring it static would increase
development effort. Add appropriate comment

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
---
 xen/arch/arm/include/asm/processor.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
index 4188ec6bfb..c021160412 100644
--- a/xen/arch/arm/include/asm/processor.h
+++ b/xen/arch/arm/include/asm/processor.h
@@ -558,7 +558,9 @@ extern register_t __cpu_logical_map[];
 void panic_PAR(uint64_t par);
 
 void show_execution_state(const struct cpu_user_regs *regs);
+/* Debugging functions are declared with external linkage to aid development. */
 void show_registers(const struct cpu_user_regs *regs);
+void show_stack(const struct cpu_user_regs *regs);
 //#define dump_execution_state() run_in_exception_handler(show_execution_state)
 #define dump_execution_state() WARN()
 
-- 
2.34.1
Re: [PATCH] xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation
Posted by Julien Grall 1 year, 9 months ago
Hi Xenia,

On 05/07/2022 13:21, Xenia Ragiadakou wrote:
> Add the function prototype of show_stack() in <asm/processor.h> header file
> so that it is visible before its definition in traps.c.
> 
> Although show_stack() is referenced only in traps.c, it is declared with
> external linkage because, during development, it is often called also by
> other files for debugging purposes. Declaring it static would increase
> development effort. Add appropriate comment
> 
> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>

With one request below:

Acked-by: Julien Grall <jgrall@amazon.com>

> ---
>   xen/arch/arm/include/asm/processor.h | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 4188ec6bfb..c021160412 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -558,7 +558,9 @@ extern register_t __cpu_logical_map[];
>   void panic_PAR(uint64_t par);
>   
>   void show_execution_state(const struct cpu_user_regs *regs);
> +/* Debugging functions are declared with external linkage to aid development. */

I agree that those functions are only used for debugging today. But 
there are no reason they can't be used in code in the future.
So I would like this comment to be dropped because it could easily 
become stale.

If the others argue for keeping it, then I think...

>   void show_registers(const struct cpu_user_regs *regs);
> +void show_stack(const struct cpu_user_regs *regs);

... we need a newline here so it is clearer which set of functions you 
are referring to (at the moment one may think that 
dump_execution_state()) is also included.

>   //#define dump_execution_state() run_in_exception_handler(show_execution_state)
>   #define dump_execution_state() WARN()
>   

Cheers,

-- 
Julien Grall
Re: [PATCH] xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation
Posted by Bertrand Marquis 1 year, 9 months ago
Hi Julien,

> On 5 Jul 2022, at 23:01, Julien Grall <julien@xen.org> wrote:
> 
> Hi Xenia,
> 
> On 05/07/2022 13:21, Xenia Ragiadakou wrote:
>> Add the function prototype of show_stack() in <asm/processor.h> header file
>> so that it is visible before its definition in traps.c.
>> Although show_stack() is referenced only in traps.c, it is declared with
>> external linkage because, during development, it is often called also by
>> other files for debugging purposes. Declaring it static would increase
>> development effort. Add appropriate comment
>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
> 
> With one request below:
> 
> Acked-by: Julien Grall <jgrall@amazon.com>
> 
>> ---
>>  xen/arch/arm/include/asm/processor.h | 2 ++
>>  1 file changed, 2 insertions(+)
>> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
>> index 4188ec6bfb..c021160412 100644
>> --- a/xen/arch/arm/include/asm/processor.h
>> +++ b/xen/arch/arm/include/asm/processor.h
>> @@ -558,7 +558,9 @@ extern register_t __cpu_logical_map[];
>>  void panic_PAR(uint64_t par);
>>    void show_execution_state(const struct cpu_user_regs *regs);
>> +/* Debugging functions are declared with external linkage to aid development. */
> 
> I agree that those functions are only used for debugging today. But there are no reason they can't be used in code in the future.
> So I would like this comment to be dropped because it could easily become stale.

I think if someone is one day using this somewhere else then he should remove the comment but in the current state the comment
would be useful so that the next one going through Misra violations is not trying to fix it.

In the mid-term, if we have a standard way to document violations then the comment should be replaced by it.

> 
> If the others argue for keeping it, then I think...
> 
>>  void show_registers(const struct cpu_user_regs *regs);
>> +void show_stack(const struct cpu_user_regs *regs);
> 
> ... we need a newline here so it is clearer which set of functions you are referring to (at the moment one may think that dump_execution_state()) is also included.

agree

Cheers
Bertrand

> 
>>  //#define dump_execution_state() run_in_exception_handler(show_execution_state)
>>  #define dump_execution_state() WARN()
>>  
> 
> Cheers,
> 
> -- 
> Julien Grall
Re: [PATCH] xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation
Posted by Bertrand Marquis 1 year, 9 months ago
Hi Xenia,

> On 5 Jul 2022, at 13:21, Xenia Ragiadakou <burzalodowa@gmail.com> wrote:
> 
> Add the function prototype of show_stack() in <asm/processor.h> header file
> so that it is visible before its definition in traps.c.
> 
> Although show_stack() is referenced only in traps.c, it is declared with
> external linkage because, during development, it is often called also by
> other files for debugging purposes. Declaring it static would increase
> development effort. Add appropriate comment
> 
> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>

Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>

Cheers
Bertrand

> ---
> xen/arch/arm/include/asm/processor.h | 2 ++
> 1 file changed, 2 insertions(+)
> 
> diff --git a/xen/arch/arm/include/asm/processor.h b/xen/arch/arm/include/asm/processor.h
> index 4188ec6bfb..c021160412 100644
> --- a/xen/arch/arm/include/asm/processor.h
> +++ b/xen/arch/arm/include/asm/processor.h
> @@ -558,7 +558,9 @@ extern register_t __cpu_logical_map[];
> void panic_PAR(uint64_t par);
> 
> void show_execution_state(const struct cpu_user_regs *regs);
> +/* Debugging functions are declared with external linkage to aid development. */
> void show_registers(const struct cpu_user_regs *regs);
> +void show_stack(const struct cpu_user_regs *regs);
> //#define dump_execution_state() run_in_exception_handler(show_execution_state)
> #define dump_execution_state() WARN()
> 
> -- 
> 2.34.1
>