[PATCH v18 7/7] firmware: arm_rmm: Add wrappers for Realm related RMI commands
Suzuki K Poulose
suzuki.poulose at arm.com
Tue Sep 15 12:55:48 PDT 2026
On 15/09/2026 20:35, Alper Gun wrote:
> On Sat, Sep 12, 2026 at 1:37 AM Suzuki K Poulose <suzuki.poulose at arm.com> wrote:
> [...]
>> +/**
>> + * rmi_rtt_destroy() - Destroy an RTT
>> + * @rd: PA of the RD
>> + * @ipa: Base of the IPA range described by the RTT
>> + * @level: RTT level
>> + * @out_rtt: Pointer to write the PA of the RTT which was destroyed
>> + * @out_top: Pointer to write the top IPA of non-live RTT entries, from entry
>> + * at which the RTT walk terminated.
>> + *
>> + * Destroys an RTT. The RTT must be non-live, i.e. none of the entries in the
>> + * table are in ASSIGNED or TABLE state.
>> + *
>> + * Return: 0 on success, positive RMI result code or negative Linux error code.
>> + */
>> +static inline long rmi_rtt_destroy(unsigned long rd,
>> + unsigned long ipa,
>> + long level,
>> + unsigned long *out_rtt,
>> + unsigned long *out_top)
>> +{
>> + struct arm_smccc_1_2_regs regs = {
>> + SMC_RMI_RTT_DESTROY, rd, ipa, level
>> + };
>> + long ret = rmi_sro_execute(®s);
>> +
>> + if (ret != RMI_SUCCESS)
>> + return ret;
>> +
>> + if (out_rtt)
>> + *out_rtt = regs.a1;
>> + if (out_top)
>> + *out_top = regs.a2;
>> +
>> + return RMI_SUCCESS;
>> +}
>
> Doesn't out_top (regs.a2) need to be populated on RMI_ERROR_RTT as well?
> realm_tear_down_rtt_level() checks next_addr > addr under case
> RMI_ERROR_RTT: to determine whether the RTT is missing or has child tables
> that need recursive teardown.
You're right. The out_top is valid even when we get RMI_ERROR_RTT. I
will fix it.
Cheers
Suzuki
>
> Thanks,
> Alper
More information about the linux-arm-kernel
mailing list