|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH][for-4.19 v6 2/8] x86: add deviation for asm-only functions
On 02.11.2023 00:10, Stefano Stabellini wrote:
> On Wed, 1 Nov 2023, Nicola Vetrini wrote:
>> As stated in rules.rst, functions used only in asm modules
>> are allowed to have no prior declaration visible when being
>> defined, hence these functions are marked with an
>> 'asmlinkage' macro, which is then deviated for MISRA C:2012
>> Rule 8.4.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
>> ---
>> Changes in v3:
>> - added SAF deviations for vmx counterparts to svm functions.
>> Changes in v5:
>> - drop SAF deviations in favour of the pseudo-attribute asmlinkage
>> Changes in v6:
>> - conditioned asmlinkage definition to make it overridable;
>> - move the pseudo-attribute after the return type
>> ---
>> automation/eclair_analysis/ECLAIR/deviations.ecl | 9 +++++++++
>> docs/misra/deviations.rst | 6 ++++++
>> xen/arch/x86/hvm/svm/intr.c | 2 +-
>> xen/arch/x86/hvm/svm/nestedsvm.c | 2 +-
>> xen/arch/x86/hvm/svm/svm.c | 4 ++--
>> xen/arch/x86/hvm/vmx/intr.c | 2 +-
>> xen/arch/x86/hvm/vmx/vmx.c | 4 ++--
>> xen/arch/x86/hvm/vmx/vvmx.c | 2 +-
>> xen/arch/x86/traps.c | 2 +-
>> xen/arch/x86/x86_64/traps.c | 2 +-
>> xen/include/xen/compiler.h | 5 +++++
>> 11 files changed, 30 insertions(+), 10 deletions(-)
>>
>> diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> index fa56e5c00a27..06619ecf7e8d 100644
>> --- a/automation/eclair_analysis/ECLAIR/deviations.ecl
>> +++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
>> @@ -163,6 +163,15 @@ Therefore the absence of prior declarations is safe."
>> -config=MC3R1.R8.4,reports+={safe, "first_area(any_loc(file(gcov)))"}
>> -doc_end
>>
>> +-doc_begin="Recognize the occurrence of current_stack_pointer as a
>> declaration."
>> +-file_tag+={asm_defns, "^xen/arch/x86/include/asm/asm_defns\\.h$"}
>> +-config=MC3R1.R8.4,declarations+={safe,
>> "loc(file(asm_defns))&&^current_stack_pointer$"}
>> +-doc_end
>> +
>> +-doc_begin="asmlinkage is a marker to indicate that the function is only
>> used to interface with asm modules."
>> +-config=MC3R1.R8.4,declarations+={safe,"loc(text(^(?s).*asmlinkage.*$,
>> -1..0))"}
>> +-doc_end
>> +
>> -doc_begin="The following variables are compiled in multiple translation
>> units
>> belonging to different executables and therefore are safe."
>> -config=MC3R1.R8.6,declarations+={safe,
>> "name(current_stack_pointer||bsearch||sort)"}
>> diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
>> index 8511a189253b..d468da2f5ce9 100644
>> --- a/docs/misra/deviations.rst
>> +++ b/docs/misra/deviations.rst
>> @@ -133,6 +133,12 @@ Deviations related to MISRA C:2012 Rules:
>> configuration. Therefore, the absence of prior declarations is safe.
>> - Tagged as `safe` for ECLAIR.
>>
>> + * - R8.4
>> + - Functions and variables used only by asm modules are either marked
>> with
>> + the `asmlinkage` macro or with a SAF-1-safe textual deviation
>> + (see safe.json).
>> + - Tagged as `safe` for ECLAIR.
>
> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
with ...
> If Julien prefers a different wording I could modify on commit as needed
... wording clarified along the lines of his subsequent reply. Yet better
would be, as also suggested by him, to accompany this with a 2nd patch
replacing the now deprecated SAF-* comments.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |