 
	
| [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 |