Re: [PATCH v8 1/3] Drivers: hv: vmbus: Add vmbus_requestor data structure for VMBus hardening

From: Andrea Parri
Date: Thu Nov 05 2020 - 07:51:54 EST


> @@ -300,6 +303,22 @@ int hv_ringbuffer_write(struct vmbus_channel *channel,
> kv_list[i].iov_len);
> }
>
> + /*
> + * Allocate the request ID after the data has been copied into the
> + * ring buffer. Once this request ID is allocated, the completion
> + * path could find the data and free it.
> + */
> +
> + if (desc->flags == VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED) {
> + rqst_id = vmbus_next_request_id(&channel->requestor, requestid);
> + if (rqst_id == VMBUS_RQST_ERROR) {
> + pr_err("No request id available\n");
> + return -EAGAIN;

FYI, the lkp kernel test robot reported a missing call to
spin_unlock_irqrestore(&outring_info->ring_lock, flags) before the
above 'return': I'll address this in the next submission.

Andrea