[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/5] x86: Misra fixes for U/L suffixes
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
- Date: Thu, 11 Dec 2025 08:39:20 +0100
- Arc-authentication-results: i=1; bugseng.com; arc=none smtp.remote-ip=162.55.131.47
- Arc-message-signature: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; c=relaxed/relaxed; t=1765438760; h=DKIM-Signature:MIME-Version:Date:From:To:Cc:Subject:In-Reply-To: References:Message-ID:X-Sender:Organization:Content-Type: Content-Transfer-Encoding; bh=L9WU1G5zKbxi4Cn3+3HW95CjXgBsCbejbcW+mkFs/nI=; b=iOi2/LI2B2bVid/7vEBLJ2AQK8B8GWLw0CZQXdj0G2GV9V+aUNv42ByVq+EujP548cRk YK80dCToLqlrQv1jUS4Ii0J1j2+3Hc8T8+YkQC11m2jzOFAkDmlyST954Wd0o7cp2xblV dk+p5QMRp49e54fVLcfJ+bWZybOcH2hO6I7RjSxUtYsWHg5JBpioJahFqOKY8BF79tlv1 a6A9IY18eBlCaUhGD9vaEQjTS4jSb3JJ1srSOGzn/dle/+i1aelTNR3WxjKOfpqtsBFrN JkuSBJ2oPaulKgwh+ybM3DNSZirRMmae9txNx+dEpzcIOwwu4d414ZoFOqL5kJbUTkLaf H8aCzFufTFN3ERoWqxntDOXVvh+nV9AC1q9o9ND9belYRhGJWuYKvyN/1q9CzkV6t3tK2 rVA5qHkEu4Bf3RaMQM4yoPJp9gowx3A6Jbp+Q3ZBEQaj9Bk1gFX2mYzSCbze5XMb5T+vu DZ0eFcwJCEge0BQI4H+OmO9CGoVjzKd30wFmq5YVAYOdEiCOz2TKFgZDhVvpBrsgEDGV6 KKL14eFZGbdLkYEqaW0O+0cvYMk87GA2l9C+nO9oL3zkPiILHE56CSafvnVy1v0LAtSL/ B+cB8Hp3ObXnlDnSe3p6cI4LJZnB/+rNENBHarGzWv/VTxAtRrCyiX92wWREaYE=
- Arc-seal: i=1; d=bugseng.com; s=openarc; a=rsa-sha256; cv=none; t=1765438760; b=DypkyhLfR5cJF6uDWANQJRAlQRWLOh0+bHCA4TKcawofcWTnSKQ7xInvjPAohYuhGbH5 tsnD9F40QThk286l3ArKMeQwaqXKL8c9Et/beqtySy7LwcpdJ935k2lAZDmhV15LNxNlw GSymwn9t03ljx/G0wc0mRdp9H9Vu+ejNpYAZ5OCmzWpncKxK0AhX76/fKQNBbyO1ZGaWQ rcHVh5uiOWdCXz82JTxGUBsSI9rGrC7my6/whDXMO01qU/rS1JuDvncezmhch8EqhwUPm 4q0wkfp/0UeLom9I8ebqdiN20UW70GgAPjb+5Jw4WjzyBD5alnkcWP+NWU4iufzs3GLCQ rlhvHks14iq4r1dpON+v/MEPKA5DD3qkTEGzAWe+jTUP2yPBOBmcCL/Ods0qWGJlFcf6s 4J6qjzfSTCfbett2KiEugwlSxyr+VBcitHY+oYaNbvkKEWmeMxBgqKue1fC+79DJCIQSp +Pmm1V7tS2fCQKYHsDJY+PvndIxGcadp/zkwBpBdniNjfZH3zb2Eg3Am/OX4ZrjyQXNgQ IJUNZmA3mX2xIDbv9x/dFQze164qmLzYU0WZdNtYUKNhoXXlFqDqK4a8xyUUd+eSyYsrT edOuhWx3TdEoxvcN5cD2ym6SMn2Of1ycVwjY/Pq6X7oFO6Rk0lJb8d52rUgpb8U=
- Authentication-results: bugseng.com; arc=none smtp.remote-ip=162.55.131.47
- Cc: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, "consulting @ bugseng . com" <consulting@xxxxxxxxxxx>
- Delivery-date: Thu, 11 Dec 2025 07:39:33 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 2025-12-11 00:48, Andrew Cooper wrote:
On 10/12/2025 8:31 pm, Nicola Vetrini wrote:
On 2025-12-10 21:09, Nicola Vetrini wrote:
On 2025-12-10 19:30, Andrew Cooper wrote:
diff --git a/xen/include/xen/elfstructs.h
b/xen/include/xen/elfstructs.h
index eb6b87a823a8..8770e7454672 100644
--- a/xen/include/xen/elfstructs.h
+++ b/xen/include/xen/elfstructs.h
@@ -360,7 +360,7 @@ typedef struct {
} Elf64_Rela;
#define ELF64_R_SYM(info) ((info) >> 32)
-#define ELF64_R_TYPE(info) ((info) & 0xFFFFFFFF)
+#define ELF64_R_TYPE(info) ((uint32_t)(info))
Actually I think this doesn't build:
arch/x86/livepatch.c: In function ‘arch_livepatch_perform_rela’:
././include/xen/config.h:55:24: error: format ‘%lu’ expects argument
of type ‘long unsigned int’, but argument 3 has type ‘unsigned int’
[-Werror=format=]
55 | #define XENLOG_ERR "<0>"
| ^~~~~
arch/x86/livepatch.c:332:20: note: in expansion of macro ‘XENLOG_ERR’
332 | printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
relocation %lu\n",
| ^~~~~~~~~~
arch/x86/livepatch.c:332:69: note: format string is defined here
332 | printk(XENLOG_ERR LIVEPATCH "%s: Unhandled
relocation %lu\n",
|
~~^
|
|
|
long unsigned int
| %u
the error location is a bit unclear, but the cast is the culprit
Yeah, I spotted that just as I heading out, and ran
https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/2207521982
instead.
I've swapped back to using 0xFFFFFFFFU. info ends up being long, and
the result of the expression needs to stay that way.
However, looking at the report for that, I still missed one. I've
folded in this hunk too.
diff --git a/xen/arch/x86/pv/emulate.c b/xen/arch/x86/pv/emulate.c
index 8c44dea12330..e741e686c1af 100644
--- a/xen/arch/x86/pv/emulate.c
+++ b/xen/arch/x86/pv/emulate.c
@@ -37,7 +37,7 @@ int pv_emul_read_descriptor(unsigned int sel, const
struct vcpu *v,
if ( !(desc.b & _SEGMENT_L) )
{
*base = ((desc.a >> 16) + ((desc.b & 0xff) << 16) +
- (desc.b & 0xff000000));
+ (desc.b & 0xff000000U));
*limit = (desc.a & 0xffff) | (desc.b & 0x000f0000);
if ( desc.b & _SEGMENT_G )
*limit = ((*limit + 1) << 12) - 1;
Makes sense, feel free to retain my R-by with these two changes.
~Andrew
--
Nicola Vetrini, B.Sc.
Software Engineer
BUGSENG (https://bugseng.com)
LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
|