xen/multicall: Change nr_calls to uniformly be unsigned long

Right now, the non-compat declaration and definition of do_multicall()
differing types for the nr_calls parameter.

This is a MISRA rule 8.3 violation, but it's also time-bomb waiting for the
first 128bit architecture (RISC-V looks as if it might get there first).

Worse, the type chosen here has a side effect of truncating the guest
parameter, because Xen still doesn't have a clean hypercall ABI definition.

Switch uniformly to using unsigned long.

This addresses the MISRA violation, and while it is a guest-visible ABI
change, it's only in the corner case where the guest kernel passed a
bogus-but-correct-when-truncated value.  I can't find any any users of
mutilcall which pass a bad size to begin with, so this should have no
practical effect on guests.

In fact, this brings the behaviour of multicalls more in line with the header
description of how it behaves.

With this fix, Xen is now fully clean to Rule 8.3, so mark it so.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Andrew Cooper authored and Stefano Stabellini committed 2024-11-14 17:49:18 -08:00
1 parent d2c214ede0
commit d2bbb0d455
4 files changed
+6 -5

No files matched your search

@@ -45,6 +45,7 @@ MC3R1.R7.3||
MC3R1.R7.4||
MC3R1.R8.1||
MC3R1.R8.2||
MC3R1.R8.3||
MC3R1.R8.5||
MC3R1.R8.6||
MC3R1.R8.8||
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.