diff mbox series

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

Message ID 20220705122114.419634-1-burzalodowa@gmail.com (mailing list archive)
State Superseded
Headers show
Series xen/arm: traps: Fix MISRA C 2012 Rule 8.4 violation | expand

Commit Message

Xenia Ragiadakou July 5, 2022, 12:21 p.m. UTC
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(+)

Comments

Bertrand Marquis July 5, 2022, 12:34 p.m. UTC | #1
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
>
Julien Grall July 5, 2022, 10:01 p.m. UTC | #2
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,
Bertrand Marquis July 6, 2022, 9:07 a.m. UTC | #3
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
diff mbox series

Patch

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()