diff --git a/drivers/virtio/virtio_magma.c b/drivers/virtio/virtio_magma.c
index 31c7c370..14def0e 100644
--- a/drivers/virtio/virtio_magma.c
+++ b/drivers/virtio/virtio_magma.c
@@ -940,81 +940,6 @@ static int virtmagma_command_magma_release_buffer(
 	return 0;
 }
 
-static int virtmagma_command_magma_execute_command_buffer_with_resources(
-	struct virtmagma_instance *instance,
-	struct virtmagma_virtio_command *command)
-{
-	struct virtio_magma_execute_command_buffer_with_resources_ctrl *request =
-		command->request_ptr;
-	struct virtio_magma_execute_command_buffer_with_resources_resp
-		*response = command->response_ptr;
-	struct virtmagma_connection *connection;
-	struct virtmagma_command_buffer virt_command_buffer;
-	char *dst_ptr;
-	int ret;
-
-	if (!COMMAND_OK(command, request, response))
-		return -EINVAL;
-
-	connection = get_connection(instance, request->connection);
-	if (!connection)
-		return -EINVAL;
-
-	if (!get_connection_object(connection, request->context_id,
-				   MAGMA_CONTEXT))
-		return -EINVAL;
-
-	/* The virtmagma_comand_buffer includes the resources and semaphore data
-	   and their lengths, so we ignore the corresponding members of the request. */
-	ret = copy_from_user(&virt_command_buffer,
-			     (void *)request->command_buffer,
-			     sizeof(virt_command_buffer));
-	if (ret)
-		return ret;
-
-	/* reallocate request buffer with enough space for the structures */
-	command->request_size = sizeof(*request) +
-				virt_command_buffer.command_buffer_size +
-				virt_command_buffer.resource_size +
-				virt_command_buffer.semaphore_size;
-	/* memory will be freed by the caller */
-	dst_ptr = kzalloc(command->request_size, GFP_KERNEL);
-	if (!dst_ptr)
-		return -ENOMEM;
-
-	memcpy(dst_ptr, request, sizeof(*request));
-	command->request_ptr = dst_ptr;
-
-	dst_ptr += sizeof(*request);
-	ret = copy_from_user(dst_ptr,
-			     (void *)virt_command_buffer.command_buffer,
-			     virt_command_buffer.command_buffer_size);
-	if (ret)
-		return ret;
-
-	dst_ptr += virt_command_buffer.command_buffer_size;
-	ret = copy_from_user(dst_ptr, (void *)virt_command_buffer.resources,
-			     virt_command_buffer.resource_size);
-	if (ret)
-		return ret;
-
-	dst_ptr += virt_command_buffer.resource_size;
-	ret = copy_from_user(dst_ptr, (void *)virt_command_buffer.semaphores,
-			     virt_command_buffer.semaphore_size);
-	if (ret)
-		return ret;
-
-	ret = vq_out_send_sync(instance->vi, command);
-	if (ret)
-		return ret;
-
-	ret = virtmagma_check_expected_response_type(request, response);
-	if (ret)
-		return ret;
-
-	return 0;
-}
-
 static int virtmagma_command_magma_execute_command_buffer_with_resources2(
 	struct virtmagma_instance *instance,
 	struct virtmagma_virtio_command *command)
@@ -1798,10 +1723,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr)
 		ret = virtmagma_command_magma_release_buffer(instance,
 							     &command);
 		break;
-	case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES:
-		ret = virtmagma_command_magma_execute_command_buffer_with_resources(
-			instance, &command);
-		break;
 	case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES2:
 		ret = virtmagma_command_magma_execute_command_buffer_with_resources2(
 			instance, &command);
@@ -1858,7 +1779,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr)
 	case VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY:
 	case VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU:
 	case VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU:
-	case VIRTIO_MAGMA_CMD_COMMIT_BUFFER:
 	case VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID:
 	case VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE:
 	case VIRTIO_MAGMA_CMD_RESET_SEMAPHORE:
diff --git a/include/uapi/linux/virtio_magma.h b/include/uapi/linux/virtio_magma.h
index 4c93d2e..fea2e0e 100644
--- a/include/uapi/linux/virtio_magma.h
+++ b/include/uapi/linux/virtio_magma.h
@@ -34,10 +34,8 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY = 0x1010,
 	VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU = 0x1017,
 	VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU = 0x1018,
-	VIRTIO_MAGMA_CMD_COMMIT_BUFFER = 0x1019,
 	VIRTIO_MAGMA_CMD_EXPORT = 0x101A,
 	VIRTIO_MAGMA_CMD_IMPORT = 0x101B,
-	VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x101F,
 	VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2 = 0x1021,
 	VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE = 0x1022,
 	VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE = 0x1023,
@@ -90,10 +88,8 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY = 0x2010,
 	VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU = 0x2017,
 	VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU = 0x2018,
-	VIRTIO_MAGMA_RESP_COMMIT_BUFFER = 0x2019,
 	VIRTIO_MAGMA_RESP_EXPORT = 0x201A,
 	VIRTIO_MAGMA_RESP_IMPORT = 0x201B,
-	VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x201F,
 	VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2 = 0x2021,
 	VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE = 0x2022,
 	VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE = 0x2023,
@@ -169,14 +165,10 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ
 		case VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU: return "VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU";
 		case VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU: return "VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU";
 		case VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU: return "VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU";
-		case VIRTIO_MAGMA_CMD_COMMIT_BUFFER: return "VIRTIO_MAGMA_CMD_COMMIT_BUFFER";
-		case VIRTIO_MAGMA_RESP_COMMIT_BUFFER: return "VIRTIO_MAGMA_RESP_COMMIT_BUFFER";
 		case VIRTIO_MAGMA_CMD_EXPORT: return "VIRTIO_MAGMA_CMD_EXPORT";
 		case VIRTIO_MAGMA_RESP_EXPORT: return "VIRTIO_MAGMA_RESP_EXPORT";
 		case VIRTIO_MAGMA_CMD_IMPORT: return "VIRTIO_MAGMA_CMD_IMPORT";
 		case VIRTIO_MAGMA_RESP_IMPORT: return "VIRTIO_MAGMA_RESP_IMPORT";
-		case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return "VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES";
-		case VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return "VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES";
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2: return "VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2";
 		case VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2: return "VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2";
 		case VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE: return "VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE";
@@ -276,10 +268,8 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt
 		case VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY: return VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY;
 		case VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU: return VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU;
 		case VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU: return VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU;
-		case VIRTIO_MAGMA_CMD_COMMIT_BUFFER: return VIRTIO_MAGMA_RESP_COMMIT_BUFFER;
 		case VIRTIO_MAGMA_CMD_EXPORT: return VIRTIO_MAGMA_RESP_EXPORT;
 		case VIRTIO_MAGMA_CMD_IMPORT: return VIRTIO_MAGMA_RESP_IMPORT;
-		case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES;
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2: return VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2;
 		case VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE: return VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE;
 		case VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE: return VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE;
@@ -470,19 +460,6 @@ struct virtio_magma_unmap_buffer_gpu_resp {
 	struct virtio_magma_ctrl_hdr hdr;
 } __attribute((packed));
 
-struct virtio_magma_commit_buffer_ctrl {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 connection;
-	__le64 buffer;
-	__le64 page_offset;
-	__le64 page_count;
-} __attribute((packed));
-
-struct virtio_magma_commit_buffer_resp {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 result_return;
-} __attribute((packed));
-
 struct virtio_magma_export_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le64 connection;
@@ -507,20 +484,6 @@ struct virtio_magma_import_resp {
 	__le64 result_return;
 } __attribute((packed));
 
-struct virtio_magma_execute_command_buffer_with_resources_ctrl {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 connection;
-	__le32 context_id;
-	uintptr_t command_buffer;
-	uintptr_t resources;
-	uintptr_t semaphore_ids;
-} __attribute((packed));
-
-struct virtio_magma_execute_command_buffer_with_resources_resp {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 result_return;
-} __attribute((packed));
-
 struct virtio_magma_execute_immediate_commands2_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le64 connection;
