From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: sstabellini@kernel.org, michal.orzel@amd.com,
xenia.ragiadakou@amd.com, ayan.kumar.halder@amd.com,
consulting@bugseng.com, andrew.cooper3@citrix.com,
roger.pau@citrix.com, Wei Liu <wl@xen.org>,
xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH][for-next v2 5/8] x86/io_apic: address violation of MISRA C:2012 Rule 10.1
Date: Mon, 16 Oct 2023 18:36:02 +0200 [thread overview]
Message-ID: <e4e6f6e9e0157a89fe50179d6f8fdbcd@bugseng.com> (raw)
In-Reply-To: <262b878b-578f-451a-6e7d-18af4a826848@suse.com>
On 16/10/2023 17:42, Jan Beulich wrote:
> On 12.10.2023 17:28, Nicola Vetrini wrote:
>> The definition of IO_APIC_BASE contains a sum of an essentially enum
>> value (FIX_IO_APIC_BASE_0) that is positive with an index that, in all
>> instances, is unsigned, therefore the former is cast to unsigned, so
>> that
>> the operands are of the same essential type.
>>
>> No functional change.
>> ---
>> xen/arch/x86/include/asm/io_apic.h | 7 ++++---
>> 1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/xen/arch/x86/include/asm/io_apic.h
>> b/xen/arch/x86/include/asm/io_apic.h
>> index a7e4c9e146de..a0fc50d601fe 100644
>> --- a/xen/arch/x86/include/asm/io_apic.h
>> +++ b/xen/arch/x86/include/asm/io_apic.h
>> @@ -14,9 +14,10 @@
>> * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar
>> */
>>
>> -#define IO_APIC_BASE(idx)
>> \
>> - ((volatile uint32_t *)(__fix_to_virt(FIX_IO_APIC_BASE_0 + (idx))
>> \
>> - + (mp_ioapics[idx].mpc_apicaddr &
>> ~PAGE_MASK)))
>> +#define IO_APIC_BASE(idx) \
>> + ((volatile uint32_t *) \
>> + (__fix_to_virt((unsigned int)FIX_IO_APIC_BASE_0 + (idx)) \
>> + + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK)))
>
> Let's assume that down the road we want to make __fix_to_virt() an
> inline
> function (which perhaps it really ought to be already): Won't this
> trade
> one violation for another then?
I don't think so: the violation is in the argument to the macro (i.e.,
the fact that
idx is unsigned and FIX_IO_APIC_BASE_0 is a constant from a named enum).
Do you see a way in
which a MISRA rule is violated if __fix_to_virt becomes a function with
an unsigned int argument?
> I wonder whether the better course of
> action wouldn't be to switch the two enums to be "anonymous", even if
> that
> means adjusting __set_fixmap() and __set_fixmap_x().
>
I don't know. It certainly would help from a violation count
perspective, though that's more of a code
style decision in my opinion.
> As an aside, since you touch the entire construct, it would be nice if
> the
> + was also moved to the end of the earlier line.
>
Sure
--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)
next prev parent reply other threads:[~2023-10-16 16:36 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-12 15:28 [XEN PATCH v2 0/8] address violations of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-next][for-4.19 v2 1/8] xen/include: add macro LOWEST_BIT Nicola Vetrini
2023-10-12 23:31 ` Stefano Stabellini
2023-10-13 10:40 ` Nicola Vetrini
2023-10-13 8:25 ` Julien Grall
2023-10-13 10:43 ` Nicola Vetrini
2023-10-16 15:33 ` Jan Beulich
2023-10-16 16:17 ` Nicola Vetrini
2023-10-16 16:30 ` Jan Beulich
2023-10-17 0:57 ` Stefano Stabellini
2023-10-19 14:26 ` Nicola Vetrini
2023-10-19 19:58 ` Stefano Stabellini
2023-10-20 6:00 ` Jan Beulich
2023-10-20 10:40 ` Nicola Vetrini
2023-10-20 13:28 ` Jan Beulich
2023-10-20 13:13 ` Luca Fancellu
2023-10-20 18:07 ` Stefano Stabellini
2023-10-20 18:11 ` Luca Fancellu
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 2/8] arm/bitops: encapsulate violation of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-12 23:31 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 3/8] xen/pdx: amend definition of PDX_GROUP_COUNT Nicola Vetrini
2023-10-12 23:33 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 4/8] x86_64/mm: express macro CNT using LOWEST_BIT Nicola Vetrini
2023-10-12 23:34 ` Stefano Stabellini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 5/8] x86/io_apic: address violation of MISRA C:2012 Rule 10.1 Nicola Vetrini
2023-10-16 15:42 ` Jan Beulich
2023-10-16 16:36 ` Nicola Vetrini [this message]
2023-10-17 6:58 ` Jan Beulich
2023-10-16 15:42 ` Jan Beulich
2023-10-16 16:36 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-next v2 6/8] x86/mce: Move MC_NCLASSES into the enum mctelem_class Nicola Vetrini
2023-10-12 23:44 ` Stefano Stabellini
2023-10-16 15:45 ` Jan Beulich
2023-10-16 16:05 ` Nicola Vetrini
2023-10-17 7:02 ` Jan Beulich
2023-10-17 8:12 ` Nicola Vetrini
2023-10-17 8:26 ` Jan Beulich
2023-10-17 9:43 ` Nicola Vetrini
2023-10-17 9:54 ` Jan Beulich
2023-10-19 14:33 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 7/8] xen/types: address Rule 10.1 for DECLARE_BITMAP use Nicola Vetrini
2023-10-16 15:49 ` Jan Beulich
2023-10-17 8:54 ` Nicola Vetrini
2023-10-12 15:28 ` [XEN PATCH][for-4.19 v2 8/8] xen/compat: use BUILD_BUG_ON in CHECK_SIZE macros Nicola Vetrini
2023-10-17 6:09 ` Jan Beulich
2023-10-19 14:35 ` Nicola Vetrini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e4e6f6e9e0157a89fe50179d6f8fdbcd@bugseng.com \
--to=nicola.vetrini@bugseng.com \
--cc=andrew.cooper3@citrix.com \
--cc=ayan.kumar.halder@amd.com \
--cc=consulting@bugseng.com \
--cc=jbeulich@suse.com \
--cc=michal.orzel@amd.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
--cc=xenia.ragiadakou@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.