All of lore.kernel.org
 help / color / mirror / Atom feed
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"Nicola Vetrini" <nicola.vetrini@bugseng.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Julien Grall" <julien@xen.org>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Anthony PERARD" <anthony.perard@vates.tech>,
	"Michal Orzel" <michal.orzel@amd.com>,
	"Roger Pau Monné" <roger@xenproject.org>,
	"Bertrand Marquis" <bertrand.marquis@arm.com>
Subject: Re: [PATCH 09/14] ACPI: address a Misra rule 11.8 violation in Arm code
Date: Tue, 22 Sep 2026 21:18:31 +0000	[thread overview]
Message-ID: <87h5jh56ji.fsf@epam.com> (raw)
In-Reply-To: <c3585a8f-df34-425c-b504-7702f638cf37@suse.com> (Jan Beulich's message of "Tue, 22 Sep 2026 13:16:22 +0200")

Hi Jan,

Sorry for the late reply

Jan Beulich <jbeulich@suse.com> writes:

> On 22.09.2026 12:57, Volodymyr Babchuk wrote:
>> Jan Beulich <jbeulich@suse.com> writes:
>>> On 22.09.2026 03:38, Volodymyr Babchuk wrote:
>>>> Jan Beulich <jbeulich@suse.com> writes:
>>>>> Outside of drivers/acpi/tables/ (which is excluded from Eclair reporting
>>>>> for dubious reasons), arch/arm/acpi/domain_build.c is the only user of
>>>>> ACPI_COMPARE_NAME(). Make the macro const correct, at the expense of
>>>>> introducing a "const" variant of ACPI_CAST_PTR(), and at the expense of
>>>>
>>>> I think you can avoid adding ACPI_CAST_PTR() by providing a const
>>>> type. Like this:
>>>>
>>>> +#define ACPI_COMPARE_NAME(a, b)         (*ACPI_CAST_PTR (const u32, a) == \
>>>> +                                         *ACPI_CAST_PTR (const u32, b))
>>>
>>> I don't think so. You did notice ...
>>>
>>>>> --- a/xen/include/acpi/acmacros.h
>>>>> +++ b/xen/include/acpi/acmacros.h
>>>>> @@ -103,6 +103,7 @@
>>>>>   * Pointer manipulation
>>>>>   */
>>>>>  #define ACPI_CAST_PTR(t, p)             ((t *) (acpi_uintptr_t) (p))
>>>>> +#define ACPI_CAST_CPTR(t, p)            ((const t *) (const acpi_uintptr_t) (p))
>>>
>>> ... this, I assume. On the surface it looks odd, because one would expect
>>> acpi_uintptr_t to be a scalar type, like uintptr_t is. But it isn't:
>>>
>>> #ifndef acpi_uintptr_t
>>> #define acpi_uintptr_t                  void *
>>> #endif
>> 
>> Well, that was unexpected. Talk about principle of least surprise...
>> 
>>> The only alternative I see (somewhat more risky overall) would be to
>>> introduce
>>>
>>> #define acpi_uintptr_t                  uintptr_t
>> 
>> What are the risks? I'd really prefer to have fewer gotchas in the code.
>
> It hides casting away of const-ness. Right here we would like that, yet in
> the general case I think we don't. Otoh Linux switched to the above in the
> 5.18 dev cycle.

... but for different reason. clang complained about pointer
subtraction with a null pointer. This does not fired in Xen because we
are not using ACPI_PTR_DIFF() yet. But, if we are going to use it, we'll
face the same problem.

So, if we are already touching this parts, maybe it is better port that
Linux patch ([1]) and use const types as I suggested?


[1] https://lore.kernel.org/linux-acpi/20210927121338.938994-1-arnd@kernel.org, 

-- 
WBR, Volodymyr

  reply	other threads:[~2026-09-22 21:18 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-02  6:28 [PATCH 00/14] address half the remaining Misra rule 11.8 violations Jan Beulich
2026-09-02  6:30 ` [PATCH 01/14] lib: obey to Misra rule 11.8 where possible Jan Beulich
2026-09-22  1:24   ` Volodymyr Babchuk
2026-09-02  6:30 ` [PATCH 02/14] x86/bitops: don't cast away volatile-ness Jan Beulich
2026-09-02 11:29   ` Andrew Cooper
2026-09-02  6:31 ` [PATCH 03/14] x86: have cmpxchg16b() obey to Misra rule 11.8 Jan Beulich
2026-10-05 14:09   ` Andrew Cooper
2026-09-02  6:31 ` [PATCH 04/14] x86/boot: don't cast away const-ness Jan Beulich
2026-09-07  8:02   ` Roger Pau Monné
2026-09-02  6:32 ` [PATCH 05/14] x86/altcall: hide casting away of const Jan Beulich
2026-09-07  7:54   ` Roger Pau Monné
2026-09-02  6:32 ` [PATCH 06/14] Arm/alternative: " Jan Beulich
2026-09-02 11:47   ` Orzel, Michal
2026-09-02 12:35     ` Jan Beulich
2026-09-02  6:33 ` [PATCH 07/14] Arm64/GICv3: have gicv3_its_find_quirk() not cast away const-ness Jan Beulich
2026-09-02 11:22   ` Orzel, Michal
2026-09-02  6:33 ` [PATCH 08/14] Arm/guestcopy: deviate copy_guest() uses just like their x86 counterparts Jan Beulich
2026-09-07  6:37   ` Orzel, Michal
2026-09-21 11:46   ` Nicola Vetrini
2026-09-21 12:15     ` Jan Beulich
2026-09-02  6:34 ` [PATCH 09/14] ACPI: address a Misra rule 11.8 violation in Arm code Jan Beulich
2026-09-22  1:38   ` Volodymyr Babchuk
2026-09-22  6:47     ` Jan Beulich
2026-09-22 10:57       ` Volodymyr Babchuk
2026-09-22 11:16         ` Jan Beulich
2026-09-22 21:18           ` Volodymyr Babchuk [this message]
2026-10-06 15:53             ` Jan Beulich
2026-09-02  6:34 ` [PATCH 10/14] ELF/notes: use pointer-to-const by default in ELFNOTE_...() Jan Beulich
2026-09-22  1:45   ` Volodymyr Babchuk
2026-09-22  6:36     ` Jan Beulich
2026-09-22 11:01       ` Volodymyr Babchuk
2026-09-22 11:18         ` Jan Beulich
2026-09-02  6:35 ` [PATCH 11/14] crypto/vmac: don't cast away const-ness in aes_key_setup() Jan Beulich
2026-09-22  1:47   ` Volodymyr Babchuk
2026-09-02  6:35 ` [PATCH 12/14] gnttab: don't cast away constness Jan Beulich
2026-10-05 16:59   ` Roger Pau Monné
2026-10-06  5:59     ` Jan Beulich
2026-10-06  6:28       ` Jan Beulich
2026-09-02  6:36 ` [PATCH 13/14] passthrough/PCI: rework (s,b,d,f) init of struct pci_dev Jan Beulich
2026-09-02 12:44   ` Roger Pau Monné
2026-09-02 12:53     ` Jan Beulich
2026-09-02 15:07       ` Roger Pau Monné
2026-09-03  6:05         ` Jan Beulich
2026-09-02  6:37 ` [PATCH 14/14] xhci-dbc: don't cast away const-ness in xhci_find_dbc() Jan Beulich
2026-09-02  9:56   ` Marek Marczykowski-Górecki

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=87h5jh56ji.fsf@epam.com \
    --to=volodymyr_babchuk@epam.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=anthony.perard@vates.tech \
    --cc=bertrand.marquis@arm.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=michal.orzel@amd.com \
    --cc=nicola.vetrini@bugseng.com \
    --cc=roger@xenproject.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /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.