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 @@
 {
 	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 @@
 			    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 @@
 	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 @@
 	/* 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 @@
 	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 @@
 	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 @@
 	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 @@
 	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 @@
 	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 @@
 	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 @@
 	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 @@
 		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 @@
 		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 @@
 		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 @@
 		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 @@
 		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 @@
 		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_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 @@
 	__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 @@
 	__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;
