Lines Matching refs:uvio_attest
85 u8 *meas, u8 *add_data, struct uvio_attest *uvio_attest) in uvio_build_uvcb_attest() argument
87 void __user *user_buf_arcb = (void __user *)uvio_attest->arcb_addr; in uvio_build_uvcb_attest()
89 if (copy_from_user(arcb, user_buf_arcb, uvio_attest->arcb_len)) in uvio_build_uvcb_attest()
96 uvcb_attest->user_data_len = uvio_attest->user_data_len; in uvio_build_uvcb_attest()
97 memcpy(uvcb_attest->user_data, uvio_attest->user_data, sizeof(uvcb_attest->user_data)); in uvio_build_uvcb_attest()
98 uvcb_attest->meas_len = uvio_attest->meas_len; in uvio_build_uvcb_attest()
100 uvcb_attest->add_data_len = uvio_attest->add_data_len; in uvio_build_uvcb_attest()
109 struct uvio_attest *uvio_attest) in uvio_copy_attest_result_to_user() argument
111 struct uvio_attest __user *user_uvio_attest = (void __user *)uv_ioctl->argument_addr; in uvio_copy_attest_result_to_user()
112 void __user *user_buf_add = (void __user *)uvio_attest->add_data_addr; in uvio_copy_attest_result_to_user()
113 void __user *user_buf_meas = (void __user *)uvio_attest->meas_addr; in uvio_copy_attest_result_to_user()
116 if (copy_to_user(user_buf_meas, measurement, uvio_attest->meas_len)) in uvio_copy_attest_result_to_user()
118 if (add_data && copy_to_user(user_buf_add, add_data, uvio_attest->add_data_len)) in uvio_copy_attest_result_to_user()
125 static int get_uvio_attest(struct uvio_ioctl_cb *uv_ioctl, struct uvio_attest *uvio_attest) in get_uvio_attest() argument
129 if (copy_from_user(uvio_attest, user_arg_buf, sizeof(*uvio_attest))) in get_uvio_attest()
132 if (uvio_attest->arcb_len > UVIO_ATT_ARCB_MAX_LEN) in get_uvio_attest()
134 if (uvio_attest->arcb_len == 0) in get_uvio_attest()
136 if (uvio_attest->meas_len > UVIO_ATT_MEASUREMENT_MAX_LEN) in get_uvio_attest()
138 if (uvio_attest->meas_len == 0) in get_uvio_attest()
140 if (uvio_attest->add_data_len > UVIO_ATT_ADDITIONAL_MAX_LEN) in get_uvio_attest()
142 if (uvio_attest->reserved136) in get_uvio_attest()
182 struct uvio_attest *uvio_attest = NULL; in uvio_attestation() local
189 if (uv_ioctl->argument_len != sizeof(*uvio_attest)) in uvio_attestation()
193 uvio_attest = kzalloc(sizeof(*uvio_attest), GFP_KERNEL); in uvio_attestation()
194 if (!uvio_attest) in uvio_attestation()
197 ret = get_uvio_attest(uv_ioctl, uvio_attest); in uvio_attestation()
202 arcb = kvzalloc(uvio_attest->arcb_len, GFP_KERNEL); in uvio_attestation()
203 measurement = kvzalloc(uvio_attest->meas_len, GFP_KERNEL); in uvio_attestation()
207 if (uvio_attest->add_data_len) { in uvio_attestation()
208 add_data = kvzalloc(uvio_attest->add_data_len, GFP_KERNEL); in uvio_attestation()
217 ret = uvio_build_uvcb_attest(uvcb_attest, arcb, measurement, add_data, uvio_attest); in uvio_attestation()
227 uvio_attest); in uvio_attestation()
232 kfree(uvio_attest); in uvio_attestation()