Lines Matching defs:data

53 MODULE_PARM_DESC(init_ex_path, " Path for INIT_EX data; if set try INIT_EX");
96 static void sev_irq_handler(int irq, void *data, unsigned int status)
98 struct sev_device *sev = data;
308 static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret)
325 if (WARN_ON_ONCE(!data != !buf_len))
329 * Copy the incoming data to driver's scratch buffer as __pa() will not
330 * work for some memory, e.g. vmalloc'd addresses, and @data may not be
333 if (data)
334 memcpy(sev->cmd_buf, data, buf_len);
337 phys_lsb = data ? lower_32_bits(__psp_pa(sev->cmd_buf)) : 0;
338 phys_msb = data ? upper_32_bits(__psp_pa(sev->cmd_buf)) : 0;
343 print_hex_dump_debug("(in): ", DUMP_PREFIX_OFFSET, 16, 2, data,
379 print_hex_dump_debug("(out): ", DUMP_PREFIX_OFFSET, 16, 2, data,
383 * Copy potential output from the PSP back to data. Do this even on
386 if (data)
387 memcpy(data, sev->cmd_buf, buf_len);
392 static int sev_do_cmd(int cmd, void *data, int *psp_ret)
397 rc = __sev_do_cmd_locked(cmd, data, psp_ret);
405 struct sev_data_init data;
407 memset(&data, 0, sizeof(data));
413 data.tmr_address = __pa(sev_es_tmr);
415 data.flags |= SEV_INIT_FLAGS_SEV_ES;
416 data.tmr_len = SEV_ES_TMR_SIZE;
419 return __sev_do_cmd_locked(SEV_CMD_INIT, &data, error);
424 struct sev_data_init_ex data;
426 memset(&data, 0, sizeof(data));
427 data.length = sizeof(data);
428 data.nv_address = __psp_pa(sev_init_ex_buffer);
429 data.nv_len = NV_LENGTH;
436 data.tmr_address = __pa(sev_es_tmr);
438 data.flags |= SEV_INIT_FLAGS_SEV_ES;
439 data.tmr_len = SEV_ES_TMR_SIZE;
442 return __sev_do_cmd_locked(SEV_CMD_INIT_EX, &data, error);
478 * related persistent data has failed. Retrying the
558 struct sev_user_data_status data;
561 rc = __sev_do_cmd_locked(SEV_CMD_PLATFORM_STATUS, &data, error);
565 *state = data.state;
603 struct sev_user_data_status data;
606 memset(&data, 0, sizeof(data));
608 ret = __sev_do_cmd_locked(SEV_CMD_PLATFORM_STATUS, &data, &argp->error);
612 if (copy_to_user((void __user *)argp->data, &data, sizeof(data)))
639 struct sev_data_pek_csr data;
647 if (copy_from_user(&input, (void __user *)argp->data, sizeof(input)))
650 memset(&data, 0, sizeof(data));
665 data.address = __psp_pa(blob);
666 data.len = input.length;
675 ret = __sev_do_cmd_locked(SEV_CMD_PEK_CSR, &data, &argp->error);
677 /* If we query the CSR length, FW responded with expected data. */
678 input.length = data.len;
680 if (copy_to_user((void __user *)argp->data, &input, sizeof(input))) {
767 struct sev_data_download_firmware *data;
787 * FW. Allocate enough memory for data structure + alignment
800 * Copy firmware data to a kernel allocated contiguous
803 data = page_address(p);
804 memcpy(page_address(p) + data_size, firmware->data, firmware->size);
806 data->address = __psp_pa(page_address(p) + data_size);
807 data->len = firmware->size;
809 ret = sev_do_cmd(SEV_CMD_DOWNLOAD_FIRMWARE, data, &error);
816 ret = sev_do_cmd(SEV_CMD_DOWNLOAD_FIRMWARE, data, &error);
835 struct sev_data_pek_cert_import data;
842 if (copy_from_user(&input, (void __user *)argp->data, sizeof(input)))
850 data.reserved = 0;
851 data.pek_cert_address = __psp_pa(pek_blob);
852 data.pek_cert_len = input.pek_cert_len;
861 data.oca_cert_address = __psp_pa(oca_blob);
862 data.oca_cert_len = input.oca_cert_len;
871 ret = __sev_do_cmd_locked(SEV_CMD_PEK_CERT_IMPORT, &data, &argp->error);
883 struct sev_data_get_id data;
892 if (copy_from_user(&input, (void __user *)argp->data, sizeof(input)))
909 data.address = __psp_pa(id_blob);
910 data.len = input.length;
912 data.address = 0;
913 data.len = 0;
916 ret = __sev_do_cmd_locked(SEV_CMD_GET_ID, &data, &argp->error);
922 input.length = data.len;
924 if (copy_to_user((void __user *)argp->data, &input, sizeof(input))) {
930 if (copy_to_user(input_address, id_blob, data.len)) {
944 struct sev_data_get_id *data;
955 * hold data structure + alignment padding + memory
965 data = mem;
968 data->address = __psp_pa(id_blob);
969 data->len = user_size;
971 ret = __sev_do_cmd_locked(SEV_CMD_GET_ID, data, &argp->error);
973 if (copy_to_user((void __user *)argp->data, id_blob, data->len))
987 struct sev_data_pdh_cert_export data;
1002 if (copy_from_user(&input, (void __user *)argp->data, sizeof(input)))
1005 memset(&data, 0, sizeof(data));
1028 data.pdh_cert_address = __psp_pa(pdh_blob);
1029 data.pdh_cert_len = input.pdh_cert_len;
1037 data.cert_chain_address = __psp_pa(cert_blob);
1038 data.cert_chain_len = input.cert_chain_len;
1041 ret = __sev_do_cmd_locked(SEV_CMD_PDH_CERT_EXPORT, &data, &argp->error);
1043 /* If we query the length, FW responded with expected data. */
1044 input.cert_chain_len = data.cert_chain_len;
1045 input.pdh_cert_len = data.pdh_cert_len;
1047 if (copy_to_user((void __user *)argp->data, &input, sizeof(input))) {
1142 int sev_platform_status(struct sev_user_data_status *data, int *error)
1144 return sev_do_cmd(SEV_CMD_PLATFORM_STATUS, data, error);
1148 int sev_guest_deactivate(struct sev_data_deactivate *data, int *error)
1150 return sev_do_cmd(SEV_CMD_DEACTIVATE, data, error);
1154 int sev_guest_activate(struct sev_data_activate *data, int *error)
1156 return sev_do_cmd(SEV_CMD_ACTIVATE, data, error);
1160 int sev_guest_decommission(struct sev_data_decommission *data, int *error)
1162 return sev_do_cmd(SEV_CMD_DECOMMISSION, data, error);
1248 dev_err(dev, "sev: missing driver data\n");
1312 void *data, int *error)
1317 return sev_do_cmd(cmd, data, error);