Unverified Commit abd649fd authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'amdtee-fix-for-v6.5' of...

Merge tag 'amdtee-fix-for-v6.5' of https://git.linaro.org/people/jens.wiklander/linux-tee into arm/fixes

AMDTEE add return origin to load TA command

* tag 'amdtee-fix-for-v6.5' of https://git.linaro.org/people/jens.wiklander/linux-tee:
  tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta'

Link: https://lore.kernel.org/r/20230606075843.GA2792442@rayden


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 08425abb 436eeae0
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -122,12 +122,14 @@ struct tee_cmd_unmap_shared_mem {
 * @hi_addr:        [in] bits [63:32] of the physical address of the TA binary
 * @size:           [in] size of TA binary in bytes
 * @ta_handle:      [out] return handle of the loaded TA
 * @return_origin:  [out] origin of return code after TEE processing
 */
struct tee_cmd_load_ta {
	u32 low_addr;
	u32 hi_addr;
	u32 size;
	u32 ta_handle;
	u32 return_origin;
};

/**
+17 −13
Original line number Diff line number Diff line
@@ -423,7 +423,10 @@ int handle_load_ta(void *data, u32 size, struct tee_ioctl_open_session_arg *arg)
	if (ret) {
		arg->ret_origin = TEEC_ORIGIN_COMMS;
		arg->ret = TEEC_ERROR_COMMUNICATION;
	} else if (arg->ret == TEEC_SUCCESS) {
	} else {
		arg->ret_origin = load_cmd.return_origin;

		if (arg->ret == TEEC_SUCCESS) {
			ret = get_ta_refcount(load_cmd.ta_handle);
			if (!ret) {
				arg->ret_origin = TEEC_ORIGIN_COMMS;
@@ -438,6 +441,7 @@ int handle_load_ta(void *data, u32 size, struct tee_ioctl_open_session_arg *arg)
				set_session_id(load_cmd.ta_handle, 0, &arg->session);
			}
		}
	}
	mutex_unlock(&ta_refcount_mutex);

	pr_debug("load TA: TA handle = 0x%x, RO = 0x%x, ret = 0x%x\n",