[PATCH v1 13/26] s390: Introduce read/write ARM sysreg instructions

Janosch Frank frankja at linux.ibm.com
Wed Jun 10 01:55:29 PDT 2026


On 6/10/26 10:30, Steffen Eiden wrote:
> On Tue, Jun 09, 2026 at 05:04:10PM +0200, Janosch Frank wrote:
>> On 5/29/26 17:55, Steffen Eiden wrote:
>>> Introduce Extract Arm System Register and Store Arm System Register to
>>> enable s390 hosts to read and write system registers for arm64 guests.
>>> The new instructions use the new RIE_H instruction format. Add assembler
>>> macros to create instructions in RIE_H format manually. Add Support for
>>> disassembling the new instructions.
>>>
>>> Co-developed-by: Andreas Grapentin <gra at linux.ibm.com>
>>> Signed-off-by: Andreas Grapentin <gra at linux.ibm.com>
>>> Signed-off-by: Steffen Eiden <seiden at linux.ibm.com>
>>> ---
>>>    arch/s390/include/asm/sae-asm.h | 48 +++++++++++++++++++++++++++
>>>    arch/s390/include/asm/sae.h     | 58 +++++++++++++++++++++++++++++++++
>>>    arch/s390/kernel/dis.c          |  1 +
>>>    arch/s390/tools/opcodes.txt     |  2 ++
>>>    4 files changed, 109 insertions(+)
>>>    create mode 100644 arch/s390/include/asm/sae-asm.h
>>>
> 

[...]

>>> + * sasr() - Set Arm System Register
>>> + * @arm_reg: ARM system register identifier; compile-time constant
>>> + * @val: Value to set
>>> + * @save_area: Pointer to SAE save area
>>> + * @flags: Operation flags; compile-time constant
>>> + *
>>> + * Sets an ARM system register value.
>>> + */
>>> +static __always_inline void sasr(unsigned int arm_reg, u64 val,
>>> +				 struct kvm_sae_save_area *save_area,
>>> +				 u64 flags)
>>
>> m4 is 4 bits in length, any reason why we use a u64 here?
>> Same for easr.
>>
> 
> No real reason beside my preference of using u64 by default.
> 
> Do you want me to change it to u8?

Yes, that makes the potential problem a bit smaller but also:

Since we go through our macro magic I'm not sure if the compiler would 
complain about values over 4 bits. Did you check for that and if not 
please do check now.

If it does not complain we need a compile time check. Well maybe we 
should have one either way until the instruction format is available in 
compilers just to be safe.

@Christian: Thoughts?



More information about the linux-arm-kernel mailing list