Re: [PATCH v7 11/12] vduse: Introduce VDUSE - vDPA Device in Userspace

Jason Wang
2021-05-27T04:13:15Z

在 2021/5/17 下午5:55, Xie Yongji 写道:
> +
> +static int vduse_dev_msg_sync(struct vduse_dev *dev,
> + struct vduse_dev_msg *msg)
> +{
> + init_waitqueue_head(&msg->waitq);
> + spin_lock(&dev->msg_lock);
> + vduse_enqueue_msg(&dev->send_list, msg);
> + wake_up(&dev->waitq);
> + spin_unlock(&dev->msg_lock);
> + wait_event_killable(msg->waitq, msg->completed);

What happens if the userspace(malicous) doesn't give a response forever?

It looks like a DOS. If yes, we need to consider a way to fix that.

Thanks

> + spin_lock(&dev->msg_lock);
> + if (!msg->completed) {
> + list_del(&msg->list);
> + msg->resp.result = VDUSE_REQUEST_FAILED;
> + }
> + spin_unlock(&dev->msg_lock);
> +
> + return (msg->resp.result == VDUSE_REQUEST_OK) ? 0 : -1;
> +}