Lines Matching defs:transfer
857 * cxl_mem_abort_fw_xfer - Abort an in-progress FW transfer
860 * Abort an in-progress firmware transfer for the device specified.
869 struct cxl_mbox_transfer_fw *transfer;
873 transfer = kzalloc_flex(*transfer, data, 0);
874 if (!transfer)
880 .size_in = sizeof(*transfer),
881 .payload_in = transfer,
886 transfer->action = CXL_FW_TRANSFER_ACTION_ABORT;
889 kfree(transfer);
909 dev_err(&cxlmd->dev, "Error aborting FW transfer: %d\n", rc);
918 struct cxl_mbox_transfer_fw *transfer;
924 mds->fw.oneshot = struct_size(transfer, data, size) <
947 struct cxl_mbox_transfer_fw *transfer;
958 "misaligned offset for FW transfer slice (%u)\n",
964 * Pick transfer size based on mds->payload_size @size must bw 128-byte
966 * sizeof(*transfer) is 128. These constraints imply that @cur_size
969 cur_size = min_t(size_t, size, cxl_mbox->payload_size - sizeof(*transfer));
972 size_in = struct_size(transfer, data, cur_size);
984 /* Do the transfer via mailbox cmd */
985 transfer = kzalloc(size_in, GFP_KERNEL);
986 if (!transfer)
989 transfer->offset = cpu_to_le32(offset / CXL_FW_TRANSFER_ALIGNMENT);
990 memcpy(transfer->data, data + offset, cur_size);
992 transfer->action = CXL_FW_TRANSFER_ACTION_FULL;
993 transfer->slot = mds->fw.next_slot;
996 transfer->action = CXL_FW_TRANSFER_ACTION_INITIATE;
998 transfer->action = CXL_FW_TRANSFER_ACTION_END;
999 transfer->slot = mds->fw.next_slot;
1001 transfer->action = CXL_FW_TRANSFER_ACTION_CONTINUE;
1008 .payload_in = transfer,
1037 kfree(transfer);