All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
@ 2026-05-13 14:03 Jan Beulich
  2026-05-13 17:00 ` Andrew Cooper
  2026-05-13 20:47 ` Nicola Vetrini
  0 siblings, 2 replies; 6+ messages in thread
From: Jan Beulich @ 2026-05-13 14:03 UTC (permalink / raw)
  To: xen-devel@lists.xenproject.org
  Cc: Andrew Cooper, Roger Pau Monné, Teddy Astie

... ("Conversions shall not be performed between a pointer to an
incomplete type and any other type"): Add an intermediate cat to void *.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
---
https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
(covering more than just this)

--- a/xen/arch/x86/cpu/mcheck/mce.c
+++ b/xen/arch/x86/cpu/mcheck/mce.c
@@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
 
 #if BITS_PER_LONG == 64
 
-#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
+#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
 #define COOKIE2ID(c) ((uint64_t)(c))
 
 #elif defined(BITS_PER_LONG)


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
  2026-05-13 14:03 [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2 Jan Beulich
@ 2026-05-13 17:00 ` Andrew Cooper
  2026-05-15  6:26   ` Jan Beulich
  2026-05-13 20:47 ` Nicola Vetrini
  1 sibling, 1 reply; 6+ messages in thread
From: Andrew Cooper @ 2026-05-13 17:00 UTC (permalink / raw)
  To: Jan Beulich, xen-devel@lists.xenproject.org
  Cc: Andrew Cooper, Roger Pau Monné, Teddy Astie

On 13/05/2026 3:03 pm, Jan Beulich wrote:
> ... ("Conversions shall not be performed between a pointer to an
> incomplete type and any other type"): Add an intermediate cat to void *.

cast

> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
> (covering more than just this)
>
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>  
>  #if BITS_PER_LONG == 64
>  
> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))

The interface here is horrible, because we're passing a pointer to a
uint64_t to userspace and back.

But, can't we just cast through unsigned long instead?  The compiler is
happy, and that feels safer than using a pointer type.

~Andrew


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
  2026-05-13 14:03 [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2 Jan Beulich
  2026-05-13 17:00 ` Andrew Cooper
@ 2026-05-13 20:47 ` Nicola Vetrini
  2026-05-15  6:28   ` Jan Beulich
  1 sibling, 1 reply; 6+ messages in thread
From: Nicola Vetrini @ 2026-05-13 20:47 UTC (permalink / raw)
  To: Jan Beulich; +Cc: xen-devel, Andrew Cooper, Roger Pau Monné, Teddy Astie

On 2026-05-13 16:03, Jan Beulich wrote:
> ... ("Conversions shall not be performed between a pointer to an
> incomplete type and any other type"): Add an intermediate cat to void 
> *.
> 
> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> ---
> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
> (covering more than just this)
> 
> --- a/xen/arch/x86/cpu/mcheck/mce.c
> +++ b/xen/arch/x86/cpu/mcheck/mce.c
> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
> 
>  #if BITS_PER_LONG == 64
> 
> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))

Notwithstanding the comment from Andrew, I think a comment here could be 
nice to explain what it going on, otherwise the double cast looks quite 
odd.

Unrelated: why not contextually marking this rule as clean to prevent 
regressions?

>  #define COOKIE2ID(c) ((uint64_t)(c))
> 
>  #elif defined(BITS_PER_LONG)

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
  2026-05-13 17:00 ` Andrew Cooper
@ 2026-05-15  6:26   ` Jan Beulich
  0 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2026-05-15  6:26 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Roger Pau Monné, Teddy Astie, xen-devel@lists.xenproject.org

On 13.05.2026 19:00, Andrew Cooper wrote:
> On 13/05/2026 3:03 pm, Jan Beulich wrote:
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>  
>>  #if BITS_PER_LONG == 64
>>  
>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
> 
> The interface here is horrible, because we're passing a pointer to a
> uint64_t to userspace and back.

Indeed.

> But, can't we just cast through unsigned long instead?  The compiler is
> happy, and that feels safer than using a pointer type.
I can check if that also helps. Casting to void * let's us, aiui, get away
without leveraging any custom deviations that we have.

Jan


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
  2026-05-13 20:47 ` Nicola Vetrini
@ 2026-05-15  6:28   ` Jan Beulich
  2026-05-15  6:33     ` Nicola Vetrini
  0 siblings, 1 reply; 6+ messages in thread
From: Jan Beulich @ 2026-05-15  6:28 UTC (permalink / raw)
  To: Nicola Vetrini
  Cc: xen-devel, Andrew Cooper, Roger Pau Monné, Teddy Astie

On 13.05.2026 22:47, Nicola Vetrini wrote:
> On 2026-05-13 16:03, Jan Beulich wrote:
>> ... ("Conversions shall not be performed between a pointer to an
>> incomplete type and any other type"): Add an intermediate cat to void 
>> *.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>> ---
>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
>> (covering more than just this)
>>
>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>
>>  #if BITS_PER_LONG == 64
>>
>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
> 
> Notwithstanding the comment from Andrew, I think a comment here could be 
> nice to explain what it going on, otherwise the double cast looks quite 
> odd.

I've added

/* Two layers of casting to cover Misra C:2012 rule 11.2. */

> Unrelated: why not contextually marking this rule as clean to prevent 
> regressions?

Isn't this rule (and the others my patches were targeting) marked as clean
already, hence why the allcode job fails?

Jan


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2
  2026-05-15  6:28   ` Jan Beulich
@ 2026-05-15  6:33     ` Nicola Vetrini
  0 siblings, 0 replies; 6+ messages in thread
From: Nicola Vetrini @ 2026-05-15  6:33 UTC (permalink / raw)
  To: Jan Beulich; +Cc: xen-devel, Andrew Cooper, Roger Pau Monné, Teddy Astie

On 2026-05-15 08:28, Jan Beulich wrote:
> On 13.05.2026 22:47, Nicola Vetrini wrote:
>> On 2026-05-13 16:03, Jan Beulich wrote:
>>> ... ("Conversions shall not be performed between a pointer to an
>>> incomplete type and any other type"): Add an intermediate cat to void
>>> *.
>>> 
>>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>> ---
>>> https://gitlab.com/xen-project/hardware/xen-staging/-/jobs/14351897188
>>> (covering more than just this)
>>> 
>>> --- a/xen/arch/x86/cpu/mcheck/mce.c
>>> +++ b/xen/arch/x86/cpu/mcheck/mce.c
>>> @@ -1264,7 +1264,7 @@ static void cf_check __maybe_unused x86_
>>> 
>>>  #if BITS_PER_LONG == 64
>>> 
>>> -#define ID2COOKIE(id) ((mctelem_cookie_t)(id))
>>> +#define ID2COOKIE(id) ((mctelem_cookie_t)(void *)(id))
>> 
>> Notwithstanding the comment from Andrew, I think a comment here could 
>> be
>> nice to explain what it going on, otherwise the double cast looks 
>> quite
>> odd.
> 
> I've added
> 
> /* Two layers of casting to cover Misra C:2012 rule 11.2. */
> 

Sounds good

>> Unrelated: why not contextually marking this rule as clean to prevent
>> regressions?
> 
> Isn't this rule (and the others my patches were targeting) marked as 
> clean
> already, hence why the allcode job fails?
> 

Oh, you are right, I didn't check.

-- 
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-05-15  6:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-13 14:03 [PATCH] x86/MCE: adjust ID2COOKIE() for Misra C:2012 rule 11.2 Jan Beulich
2026-05-13 17:00 ` Andrew Cooper
2026-05-15  6:26   ` Jan Beulich
2026-05-13 20:47 ` Nicola Vetrini
2026-05-15  6:28   ` Jan Beulich
2026-05-15  6:33     ` Nicola Vetrini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.