vu_dev             62 arch/um/drivers/virtio_uml.c #define vu_err(vu_dev, ...)	dev_err(&(vu_dev)->pdev->dev, __VA_ARGS__)
vu_dev            124 arch/um/drivers/virtio_uml.c static int vhost_user_recv_resp(struct virtio_uml_device *vu_dev,
vu_dev            128 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_recv(vu_dev->sock, msg, max_payload_size);
vu_dev            139 arch/um/drivers/virtio_uml.c static int vhost_user_recv_u64(struct virtio_uml_device *vu_dev,
vu_dev            143 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_recv_resp(vu_dev, &msg,
vu_dev            154 arch/um/drivers/virtio_uml.c static int vhost_user_recv_req(struct virtio_uml_device *vu_dev,
vu_dev            158 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_recv(vu_dev->req_fd, msg, max_payload_size);
vu_dev            170 arch/um/drivers/virtio_uml.c static int vhost_user_send(struct virtio_uml_device *vu_dev,
vu_dev            186 arch/um/drivers/virtio_uml.c 	if (!(vu_dev->protocol_features &
vu_dev            193 arch/um/drivers/virtio_uml.c 	rc = full_sendmsg_fds(vu_dev->sock, msg, size, fds, num_fds);
vu_dev            200 arch/um/drivers/virtio_uml.c 		rc = vhost_user_recv_u64(vu_dev, &status);
vu_dev            205 arch/um/drivers/virtio_uml.c 			vu_err(vu_dev, "slave reports error: %llu\n", status);
vu_dev            213 arch/um/drivers/virtio_uml.c static int vhost_user_send_no_payload(struct virtio_uml_device *vu_dev,
vu_dev            220 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, need_response, &msg, NULL, 0);
vu_dev            223 arch/um/drivers/virtio_uml.c static int vhost_user_send_no_payload_fd(struct virtio_uml_device *vu_dev,
vu_dev            230 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, &fd, 1);
vu_dev            233 arch/um/drivers/virtio_uml.c static int vhost_user_send_u64(struct virtio_uml_device *vu_dev,
vu_dev            242 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, NULL, 0);
vu_dev            245 arch/um/drivers/virtio_uml.c static int vhost_user_set_owner(struct virtio_uml_device *vu_dev)
vu_dev            247 arch/um/drivers/virtio_uml.c 	return vhost_user_send_no_payload(vu_dev, false, VHOST_USER_SET_OWNER);
vu_dev            250 arch/um/drivers/virtio_uml.c static int vhost_user_get_features(struct virtio_uml_device *vu_dev,
vu_dev            253 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_send_no_payload(vu_dev, true,
vu_dev            258 arch/um/drivers/virtio_uml.c 	return vhost_user_recv_u64(vu_dev, features);
vu_dev            261 arch/um/drivers/virtio_uml.c static int vhost_user_set_features(struct virtio_uml_device *vu_dev,
vu_dev            264 arch/um/drivers/virtio_uml.c 	return vhost_user_send_u64(vu_dev, VHOST_USER_SET_FEATURES, features);
vu_dev            267 arch/um/drivers/virtio_uml.c static int vhost_user_get_protocol_features(struct virtio_uml_device *vu_dev,
vu_dev            270 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_send_no_payload(vu_dev, true,
vu_dev            275 arch/um/drivers/virtio_uml.c 	return vhost_user_recv_u64(vu_dev, protocol_features);
vu_dev            278 arch/um/drivers/virtio_uml.c static int vhost_user_set_protocol_features(struct virtio_uml_device *vu_dev,
vu_dev            281 arch/um/drivers/virtio_uml.c 	return vhost_user_send_u64(vu_dev, VHOST_USER_SET_PROTOCOL_FEATURES,
vu_dev            285 arch/um/drivers/virtio_uml.c static void vhost_user_reply(struct virtio_uml_device *vu_dev,
vu_dev            299 arch/um/drivers/virtio_uml.c 	rc = full_sendmsg_fds(vu_dev->req_fd, &reply, size, NULL, 0);
vu_dev            302 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev,
vu_dev            309 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = data;
vu_dev            317 arch/um/drivers/virtio_uml.c 	rc = vhost_user_recv_req(vu_dev, &msg.msg,
vu_dev            326 arch/um/drivers/virtio_uml.c 		virtio_config_changed(&vu_dev->vdev);
vu_dev            334 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev, "unexpected slave request %d\n",
vu_dev            339 arch/um/drivers/virtio_uml.c 		vhost_user_reply(vu_dev, &msg.msg, response);
vu_dev            344 arch/um/drivers/virtio_uml.c static int vhost_user_init_slave_req(struct virtio_uml_device *vu_dev)
vu_dev            352 arch/um/drivers/virtio_uml.c 	vu_dev->req_fd = req_fds[0];
vu_dev            354 arch/um/drivers/virtio_uml.c 	rc = um_request_irq(VIRTIO_IRQ, vu_dev->req_fd, IRQ_READ,
vu_dev            356 arch/um/drivers/virtio_uml.c 			    vu_dev->pdev->name, vu_dev);
vu_dev            360 arch/um/drivers/virtio_uml.c 	rc = vhost_user_send_no_payload_fd(vu_dev, VHOST_USER_SET_SLAVE_REQ_FD,
vu_dev            368 arch/um/drivers/virtio_uml.c 	um_free_irq(VIRTIO_IRQ, vu_dev);
vu_dev            377 arch/um/drivers/virtio_uml.c static int vhost_user_init(struct virtio_uml_device *vu_dev)
vu_dev            379 arch/um/drivers/virtio_uml.c 	int rc = vhost_user_set_owner(vu_dev);
vu_dev            383 arch/um/drivers/virtio_uml.c 	rc = vhost_user_get_features(vu_dev, &vu_dev->features);
vu_dev            387 arch/um/drivers/virtio_uml.c 	if (vu_dev->features & BIT_ULL(VHOST_USER_F_PROTOCOL_FEATURES)) {
vu_dev            388 arch/um/drivers/virtio_uml.c 		rc = vhost_user_get_protocol_features(vu_dev,
vu_dev            389 arch/um/drivers/virtio_uml.c 				&vu_dev->protocol_features);
vu_dev            392 arch/um/drivers/virtio_uml.c 		vu_dev->protocol_features &= VHOST_USER_SUPPORTED_PROTOCOL_F;
vu_dev            393 arch/um/drivers/virtio_uml.c 		rc = vhost_user_set_protocol_features(vu_dev,
vu_dev            394 arch/um/drivers/virtio_uml.c 				vu_dev->protocol_features);
vu_dev            399 arch/um/drivers/virtio_uml.c 	if (vu_dev->protocol_features &
vu_dev            401 arch/um/drivers/virtio_uml.c 		rc = vhost_user_init_slave_req(vu_dev);
vu_dev            409 arch/um/drivers/virtio_uml.c static void vhost_user_get_config(struct virtio_uml_device *vu_dev,
vu_dev            418 arch/um/drivers/virtio_uml.c 	if (!(vu_dev->protocol_features &
vu_dev            430 arch/um/drivers/virtio_uml.c 	rc = vhost_user_send(vu_dev, true, msg, NULL, 0);
vu_dev            432 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev, "sending VHOST_USER_GET_CONFIG failed: %d\n",
vu_dev            437 arch/um/drivers/virtio_uml.c 	rc = vhost_user_recv_resp(vu_dev, msg, msg_size);
vu_dev            439 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev,
vu_dev            448 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev,
vu_dev            460 arch/um/drivers/virtio_uml.c static void vhost_user_set_config(struct virtio_uml_device *vu_dev,
vu_dev            468 arch/um/drivers/virtio_uml.c 	if (!(vu_dev->protocol_features &
vu_dev            481 arch/um/drivers/virtio_uml.c 	rc = vhost_user_send(vu_dev, false, msg, NULL, 0);
vu_dev            483 arch/um/drivers/virtio_uml.c 		vu_err(vu_dev, "sending VHOST_USER_SET_CONFIG failed: %d\n",
vu_dev            511 arch/um/drivers/virtio_uml.c static int vhost_user_set_mem_table(struct virtio_uml_device *vu_dev)
vu_dev            571 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, fds,
vu_dev            575 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_state(struct virtio_uml_device *vu_dev,
vu_dev            585 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, NULL, 0);
vu_dev            588 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_num(struct virtio_uml_device *vu_dev,
vu_dev            591 arch/um/drivers/virtio_uml.c 	return vhost_user_set_vring_state(vu_dev, VHOST_USER_SET_VRING_NUM,
vu_dev            595 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_base(struct virtio_uml_device *vu_dev,
vu_dev            598 arch/um/drivers/virtio_uml.c 	return vhost_user_set_vring_state(vu_dev, VHOST_USER_SET_VRING_BASE,
vu_dev            602 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_addr(struct virtio_uml_device *vu_dev,
vu_dev            616 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, NULL, 0);
vu_dev            619 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_fd(struct virtio_uml_device *vu_dev,
vu_dev            632 arch/um/drivers/virtio_uml.c 		return vhost_user_send(vu_dev, false, &msg, NULL, 0);
vu_dev            634 arch/um/drivers/virtio_uml.c 	return vhost_user_send(vu_dev, false, &msg, &fd, 1);
vu_dev            637 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_call(struct virtio_uml_device *vu_dev,
vu_dev            640 arch/um/drivers/virtio_uml.c 	return vhost_user_set_vring_fd(vu_dev, VHOST_USER_SET_VRING_CALL,
vu_dev            644 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_kick(struct virtio_uml_device *vu_dev,
vu_dev            647 arch/um/drivers/virtio_uml.c 	return vhost_user_set_vring_fd(vu_dev, VHOST_USER_SET_VRING_KICK,
vu_dev            651 arch/um/drivers/virtio_uml.c static int vhost_user_set_vring_enable(struct virtio_uml_device *vu_dev,
vu_dev            654 arch/um/drivers/virtio_uml.c 	if (!(vu_dev->features & BIT_ULL(VHOST_USER_F_PROTOCOL_FEATURES)))
vu_dev            657 arch/um/drivers/virtio_uml.c 	return vhost_user_set_vring_state(vu_dev, VHOST_USER_SET_VRING_ENABLE,
vu_dev            697 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            699 arch/um/drivers/virtio_uml.c 	vhost_user_get_config(vu_dev, offset, buf, len);
vu_dev            705 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            707 arch/um/drivers/virtio_uml.c 	vhost_user_set_config(vu_dev, offset, buf, len);
vu_dev            712 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            714 arch/um/drivers/virtio_uml.c 	return vu_dev->status;
vu_dev            719 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            721 arch/um/drivers/virtio_uml.c 	vu_dev->status = status;
vu_dev            726 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            728 arch/um/drivers/virtio_uml.c 	vu_dev->status = 0;
vu_dev            746 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            752 arch/um/drivers/virtio_uml.c 		WARN_ON(vhost_user_set_vring_enable(vu_dev, vq->index, false));
vu_dev            755 arch/um/drivers/virtio_uml.c 	WARN_ON(vhost_user_get_features(vu_dev, &features));
vu_dev            761 arch/um/drivers/virtio_uml.c static int vu_setup_vq_call_fd(struct virtio_uml_device *vu_dev,
vu_dev            779 arch/um/drivers/virtio_uml.c 	rc = vhost_user_set_vring_call(vu_dev, vq->index, call_fds[1]);
vu_dev            800 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            801 arch/um/drivers/virtio_uml.c 	struct platform_device *pdev = vu_dev->pdev;
vu_dev            829 arch/um/drivers/virtio_uml.c 	rc = vu_setup_vq_call_fd(vu_dev, vq);
vu_dev            833 arch/um/drivers/virtio_uml.c 	rc = vhost_user_set_vring_num(vu_dev, index, num);
vu_dev            837 arch/um/drivers/virtio_uml.c 	rc = vhost_user_set_vring_base(vu_dev, index, 0);
vu_dev            841 arch/um/drivers/virtio_uml.c 	rc = vhost_user_set_vring_addr(vu_dev, index,
vu_dev            869 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            873 arch/um/drivers/virtio_uml.c 	rc = vhost_user_set_mem_table(vu_dev);
vu_dev            894 arch/um/drivers/virtio_uml.c 		rc = vhost_user_set_vring_kick(vu_dev, vq->index,
vu_dev            899 arch/um/drivers/virtio_uml.c 		rc = vhost_user_set_vring_enable(vu_dev, vq->index, true);
vu_dev            913 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            915 arch/um/drivers/virtio_uml.c 	return vu_dev->features;
vu_dev            920 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            924 arch/um/drivers/virtio_uml.c 	vu_dev->features = vdev->features | supported;
vu_dev            926 arch/um/drivers/virtio_uml.c 	return vhost_user_set_features(vu_dev, vu_dev->features);
vu_dev            931 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            933 arch/um/drivers/virtio_uml.c 	return vu_dev->pdev->name;
vu_dev            953 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = to_virtio_uml_device(vdev);
vu_dev            956 arch/um/drivers/virtio_uml.c 	if (vu_dev->req_fd >= 0) {
vu_dev            957 arch/um/drivers/virtio_uml.c 		um_free_irq(VIRTIO_IRQ, vu_dev);
vu_dev            958 arch/um/drivers/virtio_uml.c 		os_close_file(vu_dev->req_fd);
vu_dev            961 arch/um/drivers/virtio_uml.c 	os_close_file(vu_dev->sock);
vu_dev            974 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev;
vu_dev            980 arch/um/drivers/virtio_uml.c 	vu_dev = devm_kzalloc(&pdev->dev, sizeof(*vu_dev), GFP_KERNEL);
vu_dev            981 arch/um/drivers/virtio_uml.c 	if (!vu_dev)
vu_dev            984 arch/um/drivers/virtio_uml.c 	vu_dev->vdev.dev.parent = &pdev->dev;
vu_dev            985 arch/um/drivers/virtio_uml.c 	vu_dev->vdev.dev.release = virtio_uml_release_dev;
vu_dev            986 arch/um/drivers/virtio_uml.c 	vu_dev->vdev.config = &virtio_uml_config_ops;
vu_dev            987 arch/um/drivers/virtio_uml.c 	vu_dev->vdev.id.device = pdata->virtio_device_id;
vu_dev            988 arch/um/drivers/virtio_uml.c 	vu_dev->vdev.id.vendor = VIRTIO_DEV_ANY_ID;
vu_dev            989 arch/um/drivers/virtio_uml.c 	vu_dev->pdev = pdev;
vu_dev            990 arch/um/drivers/virtio_uml.c 	vu_dev->req_fd = -1;
vu_dev            997 arch/um/drivers/virtio_uml.c 	vu_dev->sock = rc;
vu_dev            999 arch/um/drivers/virtio_uml.c 	rc = vhost_user_init(vu_dev);
vu_dev           1003 arch/um/drivers/virtio_uml.c 	platform_set_drvdata(pdev, vu_dev);
vu_dev           1005 arch/um/drivers/virtio_uml.c 	rc = register_virtio_device(&vu_dev->vdev);
vu_dev           1007 arch/um/drivers/virtio_uml.c 		put_device(&vu_dev->vdev.dev);
vu_dev           1011 arch/um/drivers/virtio_uml.c 	os_close_file(vu_dev->sock);
vu_dev           1017 arch/um/drivers/virtio_uml.c 	struct virtio_uml_device *vu_dev = platform_get_drvdata(pdev);
vu_dev           1019 arch/um/drivers/virtio_uml.c 	unregister_virtio_device(&vu_dev->vdev);