On 23.02.2024 08:58, Nicola Vetrini wrote:
> On 2024-02-19 16:14, Nicola Vetrini wrote:
>> The cache clearing and invalidation helpers in x86 and Arm didn't
>> comply with MISRA C Rule 17.7: "The value returned by a function
>> having non-void return type shall be used". On Arm they
>> were always returning 0, while some in x86 returned -EOPNOTSUPP
>> and in common/grant_table the return value is saved.
>>
>> As a consequence, a common helper arch_grant_cache_flush that returns
>> an integer is introduced, so that each architecture can choose whether 
>> to
>> return an error value on certain conditions, and the helpers have 
>> either
>> been changed to return void (on Arm) or deleted entirely (on x86).
>>
>> Signed-off-by: Julien Grall <[email protected]>
>> Signed-off-by: Nicola Vetrini <[email protected]>
>> ---
>> The original refactor idea came from Julien Grall in [1]; I edited that 
>> proposal
>> to fix build errors.
>>
>> I did introduce a cast to void for the call to flush_area_local on x86, 
>> because
>> even before this patch the return value of that function wasn't checked 
>> in all
>> but one use in x86/smp.c, and in this context the helper (perhaps 
>> incidentally)
>> ignored the return value of flush_area_local.
>>
>> [1] 
>> https://lore.kernel.org/xen-devel/[email protected]/
>> ---
>>  xen/arch/arm/include/asm/page.h     | 33 ++++++++++++++++++-----------
>>  xen/arch/x86/include/asm/flushtlb.h | 23 ++++++++++----------
>>  xen/common/grant_table.c            |  9 +-------
>>  3 files changed, 34 insertions(+), 31 deletions(-)
>>
> 
> I'll put this patch in the backlog at the moment: too many intricacies 
> while trying to untangle xen/flushtlb from xen/mm.h, and there are 
> easier cases that can be done faster. If someone is interested I can 
> post the partial work I've done so far, even though it doesn't
> build on x86.

This
https://lists.xen.org/archives/html/xen-devel/2024-02/msg01513.html
may be of interest to you in the context here.

Jan

Reply via email to