[XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7

Nicola Vetrini posted 11 patches 1 year, 10 months ago
There is a newer version of this series
[XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7
Posted by Nicola Vetrini 1 year, 10 months ago
MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/common/page_alloc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 28c510d6669b..82dc55829f78 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -150,7 +150,7 @@
 #include <asm/paging.h>
 #else
 #define p2m_pod_offline_or_broken_hit(pg) 0
-#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL)
+#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL)
 #endif
 
 #ifndef PGC_static
-- 
2.34.1
Re: [XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7
Posted by Jan Beulich 1 year, 10 months ago
On 22.03.2024 17:01, Nicola Vetrini wrote:
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -150,7 +150,7 @@
>  #include <asm/paging.h>
>  #else
>  #define p2m_pod_offline_or_broken_hit(pg) 0

Seeing this in context: Does Misra also have a rule demanding evaluation
of macro arguments?

> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL)
> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL)

Or easier

#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg)

?

Jan
Re: [XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7
Posted by Nicola Vetrini 1 year, 10 months ago
Hi Jan,

sorry, forgot to reply.

On 2024-03-25 10:27, Jan Beulich wrote:
> On 22.03.2024 17:01, Nicola Vetrini wrote:
>> --- a/xen/common/page_alloc.c
>> +++ b/xen/common/page_alloc.c
>> @@ -150,7 +150,7 @@
>>  #include <asm/paging.h>
>>  #else
>>  #define p2m_pod_offline_or_broken_hit(pg) 0
> 
> Seeing this in context: Does Misra also have a rule demanding 
> evaluation
> of macro arguments?
> 

No such rule. There is one for unused function parameters, though.

>> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL)
>> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL)
> 
> Or easier
> 
> #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg)
> 
> ?
> 

Good point. I'll modify it.

> Jan

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)
Re: [XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7
Posted by Jan Beulich 1 year, 10 months ago
On 26.03.2024 16:27, Nicola Vetrini wrote:
> On 2024-03-25 10:27, Jan Beulich wrote:
>> On 22.03.2024 17:01, Nicola Vetrini wrote:
>>> --- a/xen/common/page_alloc.c
>>> +++ b/xen/common/page_alloc.c
>>> @@ -150,7 +150,7 @@
>>>  #include <asm/paging.h>
>>>  #else
>>>  #define p2m_pod_offline_or_broken_hit(pg) 0
>>
>> Seeing this in context: Does Misra also have a rule demanding 
>> evaluation
>> of macro arguments?
> 
> No such rule. There is one for unused function parameters, though.

Interesting. Are there no concerns regarding side effects not taking
place, as one might expect when looking just at the call site?

>>> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL)
>>> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL)
>>
>> Or easier
>>
>> #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg)
>>
>> ?
>>
> 
> Good point. I'll modify it.

I can do that as well while committing. With that adjustment
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan
Re: [XEN PATCH 07/11] xen/page_alloc: address violations of MISRA C Rule 20.7
Posted by Nicola Vetrini 1 year, 10 months ago
On 2024-03-26 16:35, Jan Beulich wrote:
> On 26.03.2024 16:27, Nicola Vetrini wrote:
>> On 2024-03-25 10:27, Jan Beulich wrote:
>>> On 22.03.2024 17:01, Nicola Vetrini wrote:
>>>> --- a/xen/common/page_alloc.c
>>>> +++ b/xen/common/page_alloc.c
>>>> @@ -150,7 +150,7 @@
>>>>  #include <asm/paging.h>
>>>>  #else
>>>>  #define p2m_pod_offline_or_broken_hit(pg) 0
>>> 
>>> Seeing this in context: Does Misra also have a rule demanding
>>> evaluation
>>> of macro arguments?
>> 
>> No such rule. There is one for unused function parameters, though.
> 
> Interesting. Are there no concerns regarding side effects not taking
> place, as one might expect when looking just at the call site?
> 

I don't know. Either it was never discussed or it never made it to the 
final revisions, I guess.

>>>> -#define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg != NULL)
>>>> +#define p2m_pod_offline_or_broken_replace(pg) BUG_ON((pg) != NULL)
>>> 
>>> Or easier
>>> 
>>> #define p2m_pod_offline_or_broken_replace(pg) BUG_ON(pg)
>>> 
>>> ?
>>> 
>> 
>> Good point. I'll modify it.
> 
> I can do that as well while committing. With that adjustment
> Acked-by: Jan Beulich <jbeulich@suse.com>
> 
> Jan

Thanks

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)