diff --git a/drivers/virtio/virtio_magma.c b/drivers/virtio/virtio_magma.c
index dc655cd..49f5b3f 100644
--- a/drivers/virtio/virtio_magma.c
+++ b/drivers/virtio/virtio_magma.c
@@ -1153,12 +1153,10 @@ static int virtmagma_command_magma_export_semaphore(
 {
 	int ret;
 	struct virtmagma_connection *connection;
-	struct virtmagma_connection_object *object;
 	struct virtio_magma_export_semaphore_ctrl *request =
 		command->request_ptr;
 	struct virtio_magma_export_semaphore_resp *response =
 		command->response_ptr;
-	struct virtmagma_semaphore_fd_priv *priv;
 
 	if (!COMMAND_OK(command, request, response))
 		return -EINVAL;
@@ -1222,54 +1220,6 @@ static int
 			    items_size);
 }
 
-static int virtmagma_command_magma_read_notification_channel(
-	struct virtmagma_instance *instance,
-	struct virtmagma_virtio_command *command)
-{
-	int ret;
-	struct virtio_magma_read_notification_channel_ctrl *request =
-		command->request_ptr;
-	struct virtio_magma_read_notification_channel_resp *response =
-		command->response_ptr;
-
-	if (!COMMAND_OK(command, request, response))
-		return -EINVAL;
-
-	/* reallocate response buffer with additional space for notification data.
-	   note that the size is not modified, as we only want the response struct
-	   itself to be copied back to the user by our caller */
-
-	command->response_ptr = response =
-		kzalloc(sizeof(*response) + NOTIFICATION_MAX_BYTES, GFP_KERNEL);
-	if (!command->response_ptr)
-		return -ENOMEM;
-
-	ret = vq_out_send_sync(instance->vi, command);
-	if (ret)
-		return ret;
-
-	ret = virtmagma_check_expected_response_type(request, response);
-	if (ret)
-		return ret;
-
-	/* pass on magma errors without writing to the buffer */
-	if (response->result_return) {
-		pr_warn("virtmagma: magma_read_notification_channel returned %d",
-			(int32_t)response->result_return);
-		return 0; /* the ioctl is still successful */
-	}
-
-	if (response->buffer_size_out > request->buffer_size) {
-		pr_err("virtmagma: magma_read_notification_channel returned buffer_size_out (%lu) larger than buffer_size (%lld)",
-		       response->buffer_size_out, request->buffer_size);
-		return -EIO;
-	}
-
-	return copy_to_user((void *)request->buffer,
-			    (char *)command->response_ptr + sizeof(*response),
-			    response->buffer_size_out);
-}
-
 static int virtmagma_command_magma_read_notification_channel2(
 	struct virtmagma_instance *instance,
 	struct virtmagma_virtio_command *command)
@@ -1796,10 +1746,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr)
 	case VIRTIO_MAGMA_CMD_POLL:
 		ret = virtmagma_command_magma_poll(instance, &command);
 		break;
-	case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL:
-		ret = virtmagma_command_magma_read_notification_channel(
-			instance, &command);
-		break;
 	case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL2:
 		ret = virtmagma_command_magma_read_notification_channel2(
 			instance, &command);
@@ -1825,6 +1771,7 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr)
 	/* pass-through handlers */
 	case VIRTIO_MAGMA_CMD_QUERY2:
 	case VIRTIO_MAGMA_CMD_GET_ERROR:
+	case VIRTIO_MAGMA_CMD_SYNC:
 	case VIRTIO_MAGMA_CMD_GET_BUFFER_ID:
 	case VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE:
 	case VIRTIO_MAGMA_CMD_CLEAN_CACHE:
@@ -1839,7 +1786,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr)
 	case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE:
 	case VIRTIO_MAGMA_CMD_DEVICE_IMPORT:
 	case VIRTIO_MAGMA_CMD_DEVICE_RELEASE:
-	case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE:
 		ret = vq_out_send_sync(instance->vi, &command);
 		if (!ret)
 			ret = virtmagma_check_expected_response_type(
diff --git a/include/uapi/linux/virtio_magma.h b/include/uapi/linux/virtio_magma.h
index 93cb232..7925f9d 100644
--- a/include/uapi/linux/virtio_magma.h
+++ b/include/uapi/linux/virtio_magma.h
@@ -27,7 +27,6 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_CMD_RELEASE_CONTEXT = 0x1007,
 	VIRTIO_MAGMA_CMD_CREATE_BUFFER = 0x1008,
 	VIRTIO_MAGMA_CMD_RELEASE_BUFFER = 0x1009,
-	VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE = 0x100B,
 	VIRTIO_MAGMA_CMD_GET_BUFFER_ID = 0x100C,
 	VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE = 0x100D,
 	VIRTIO_MAGMA_CMD_CLEAN_CACHE = 0x100E,
@@ -48,7 +47,6 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE = 0x1028,
 	VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE = 0x1029,
 	VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE = 0x102A,
-	VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL = 0x102C,
 	VIRTIO_MAGMA_CMD_INITIALIZE_TRACING = 0x102D,
 	VIRTIO_MAGMA_CMD_DEVICE_IMPORT = 0x102E,
 	VIRTIO_MAGMA_CMD_DEVICE_RELEASE = 0x102F,
@@ -73,6 +71,7 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL2 = 0x1046,
 	VIRTIO_MAGMA_CMD_VIRT_CREATE_IMAGE = 0x1047,
 	VIRTIO_MAGMA_CMD_VIRT_GET_IMAGE_INFO = 0x1048,
+	VIRTIO_MAGMA_CMD_SYNC = 0x1049,
 	VIRTIO_MAGMA_CMD_INTERNAL_MAP = 0x1044,
 	VIRTIO_MAGMA_CMD_INTERNAL_UNMAP = 0x1045,
 	/* magma success responses
@@ -83,7 +82,6 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_RESP_RELEASE_CONTEXT = 0x2007,
 	VIRTIO_MAGMA_RESP_CREATE_BUFFER = 0x2008,
 	VIRTIO_MAGMA_RESP_RELEASE_BUFFER = 0x2009,
-	VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE = 0x200B,
 	VIRTIO_MAGMA_RESP_GET_BUFFER_ID = 0x200C,
 	VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE = 0x200D,
 	VIRTIO_MAGMA_RESP_CLEAN_CACHE = 0x200E,
@@ -104,7 +102,6 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE = 0x2028,
 	VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE = 0x2029,
 	VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE = 0x202A,
-	VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL = 0x202C,
 	VIRTIO_MAGMA_RESP_INITIALIZE_TRACING = 0x202D,
 	VIRTIO_MAGMA_RESP_DEVICE_IMPORT = 0x202E,
 	VIRTIO_MAGMA_RESP_DEVICE_RELEASE = 0x202F,
@@ -129,6 +126,7 @@ enum virtio_magma_ctrl_type {
 	VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL2 = 0x2046,
 	VIRTIO_MAGMA_RESP_VIRT_CREATE_IMAGE = 0x2047,
 	VIRTIO_MAGMA_RESP_VIRT_GET_IMAGE_INFO = 0x2048,
+	VIRTIO_MAGMA_RESP_SYNC = 0x2049,
 	VIRTIO_MAGMA_RESP_INTERNAL_MAP = 0x2044,
 	VIRTIO_MAGMA_RESP_INTERNAL_UNMAP = 0x2045,
 	/* magma error responses
@@ -155,8 +153,6 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ
 		case VIRTIO_MAGMA_RESP_CREATE_BUFFER: return "VIRTIO_MAGMA_RESP_CREATE_BUFFER";
 		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER: return "VIRTIO_MAGMA_CMD_RELEASE_BUFFER";
 		case VIRTIO_MAGMA_RESP_RELEASE_BUFFER: return "VIRTIO_MAGMA_RESP_RELEASE_BUFFER";
-		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE: return "VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE";
-		case VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE: return "VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE";
 		case VIRTIO_MAGMA_CMD_GET_BUFFER_ID: return "VIRTIO_MAGMA_CMD_GET_BUFFER_ID";
 		case VIRTIO_MAGMA_RESP_GET_BUFFER_ID: return "VIRTIO_MAGMA_RESP_GET_BUFFER_ID";
 		case VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE: return "VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE";
@@ -197,8 +193,6 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ
 		case VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE: return "VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE";
 		case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE: return "VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE";
 		case VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE: return "VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE";
-		case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL";
-		case VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL";
 		case VIRTIO_MAGMA_CMD_INITIALIZE_TRACING: return "VIRTIO_MAGMA_CMD_INITIALIZE_TRACING";
 		case VIRTIO_MAGMA_RESP_INITIALIZE_TRACING: return "VIRTIO_MAGMA_RESP_INITIALIZE_TRACING";
 		case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: return "VIRTIO_MAGMA_CMD_DEVICE_IMPORT";
@@ -247,6 +241,8 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ
 		case VIRTIO_MAGMA_RESP_VIRT_CREATE_IMAGE: return "VIRTIO_MAGMA_RESP_VIRT_CREATE_IMAGE";
 		case VIRTIO_MAGMA_CMD_VIRT_GET_IMAGE_INFO: return "VIRTIO_MAGMA_CMD_VIRT_GET_IMAGE_INFO";
 		case VIRTIO_MAGMA_RESP_VIRT_GET_IMAGE_INFO: return "VIRTIO_MAGMA_RESP_VIRT_GET_IMAGE_INFO";
+		case VIRTIO_MAGMA_CMD_SYNC: return "VIRTIO_MAGMA_CMD_SYNC";
+		case VIRTIO_MAGMA_RESP_SYNC: return "VIRTIO_MAGMA_RESP_SYNC";
 		case VIRTIO_MAGMA_CMD_INTERNAL_MAP: return "VIRTIO_MAGMA_CMD_INTERNAL_MAP";
 		case VIRTIO_MAGMA_RESP_INTERNAL_MAP: return "VIRTIO_MAGMA_RESP_INTERNAL_MAP";
 		case VIRTIO_MAGMA_CMD_INTERNAL_UNMAP: return "VIRTIO_MAGMA_CMD_INTERNAL_UNMAP";
@@ -269,7 +265,6 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt
 		case VIRTIO_MAGMA_CMD_RELEASE_CONTEXT: return VIRTIO_MAGMA_RESP_RELEASE_CONTEXT;
 		case VIRTIO_MAGMA_CMD_CREATE_BUFFER: return VIRTIO_MAGMA_RESP_CREATE_BUFFER;
 		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER: return VIRTIO_MAGMA_RESP_RELEASE_BUFFER;
-		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE: return VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE;
 		case VIRTIO_MAGMA_CMD_GET_BUFFER_ID: return VIRTIO_MAGMA_RESP_GET_BUFFER_ID;
 		case VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE: return VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE;
 		case VIRTIO_MAGMA_CMD_CLEAN_CACHE: return VIRTIO_MAGMA_RESP_CLEAN_CACHE;
@@ -290,7 +285,6 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt
 		case VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE: return VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE;
 		case VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE: return VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE;
 		case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE: return VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE;
-		case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL: return VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL;
 		case VIRTIO_MAGMA_CMD_INITIALIZE_TRACING: return VIRTIO_MAGMA_RESP_INITIALIZE_TRACING;
 		case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: return VIRTIO_MAGMA_RESP_DEVICE_IMPORT;
 		case VIRTIO_MAGMA_CMD_DEVICE_RELEASE: return VIRTIO_MAGMA_RESP_DEVICE_RELEASE;
@@ -315,6 +309,7 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt
 		case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL2: return VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL2;
 		case VIRTIO_MAGMA_CMD_VIRT_CREATE_IMAGE: return VIRTIO_MAGMA_RESP_VIRT_CREATE_IMAGE;
 		case VIRTIO_MAGMA_CMD_VIRT_GET_IMAGE_INFO: return VIRTIO_MAGMA_RESP_VIRT_GET_IMAGE_INFO;
+		case VIRTIO_MAGMA_CMD_SYNC: return VIRTIO_MAGMA_RESP_SYNC;
 		case VIRTIO_MAGMA_CMD_INTERNAL_MAP: return VIRTIO_MAGMA_RESP_INTERNAL_MAP;
 		case VIRTIO_MAGMA_CMD_INTERNAL_UNMAP: return VIRTIO_MAGMA_RESP_INTERNAL_UNMAP;
 		default: return VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND;
@@ -388,16 +383,6 @@ struct virtio_magma_release_buffer_resp {
 	struct virtio_magma_ctrl_hdr hdr;
 } __attribute((packed));
 
-struct virtio_magma_release_buffer_handle_ctrl {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le32 buffer_handle;
-} __attribute((packed));
-
-struct virtio_magma_release_buffer_handle_resp {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 result_return;
-} __attribute((packed));
-
 struct virtio_magma_get_buffer_id_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le64 buffer;
@@ -623,19 +608,6 @@ struct virtio_magma_get_notification_channel_handle_resp {
 	__le32 result_return;
 } __attribute((packed));
 
-struct virtio_magma_read_notification_channel_ctrl {
-	struct virtio_magma_ctrl_hdr hdr;
-	__le64 connection;
-	uintptr_t buffer;
-	__le64 buffer_size;
-} __attribute((packed));
-
-struct virtio_magma_read_notification_channel_resp {
-	struct virtio_magma_ctrl_hdr hdr;
-	uintptr_t buffer_size_out;
-	__le64 result_return;
-} __attribute((packed));
-
 struct virtio_magma_initialize_tracing_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le32 channel;
@@ -922,6 +894,16 @@ struct virtio_magma_virt_get_image_info_resp {
 	__le64 result_return;
 } __attribute((packed));
 
+struct virtio_magma_sync_ctrl {
+	struct virtio_magma_ctrl_hdr hdr;
+	__le64 connection;
+} __attribute((packed));
+
+struct virtio_magma_sync_resp {
+	struct virtio_magma_ctrl_hdr hdr;
+	__le64 result_return;
+} __attribute((packed));
+
 struct virtio_magma_internal_map_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le64 connection;
