On 12/5/2025 7:26 PM, Arnd Bergmann wrote:
On Fri, Dec 5, 2025, at 14:45, Harshal Dev wrote:
On 12/4/2025 6:57 PM, Jens Wiklander wrote:
On Thu, Dec 4, 2025 at 11:17 AM Arnd Bergmann arnd@kernel.org wrote:
The only user-space client which is currently using this ABI (as per our knowledge) is the libqcomtee library: https://github.com/quic/quic-teec/blob/main/libqcomtee/src/linux/tee.h#L432
If I understand Arnd's concern correctly, if a compiler used to build the user-space client skips the padding for tee_ioctl_object_invoke_arg, it could lead to issues.
Let's wait for Amir's view here as well, however I do think the explicit padding would benefit here.
The problem is much narrower: as the amount of padding is determined by the architecture specific ABI, kernel and userspace on the same architecture always agree, and specifically 32-bit Arm userspace and 64-bit Arm userspace (aarch64) also have the same rules, so there is no problem on Qualcomm's platforms even with compat 32-bit userspace.
The only actual ABI problem would happen on 32-bit x86 (i386) userspace running on a 64-bit x86 kernel, since i386-linux compilers have different alignment rules from most other architectures.
Well, as Jens pointed out, the TEE_IOC_OBJECT_INVOKE ABI which supports object-based IPC currently has no back-end drivers that attempt to communicate with a TEE running on x86 and implementing their end of the object-IPC protocol in the firmware. So this obviously won't be an immediate issue.
But as you pointed out, the issue would pop up if someone on x86 decides to implement it at some point in the far away future.
I do not see any harm this patch would do for our existing implementation, we'll just update our user-space library ABI in-line with this.
Thanks, Harshal
Arnd