Commit 5fa9d3c5 authored by Haiyang Zhang's avatar Haiyang Zhang Committed by Greg Kroah-Hartman
Browse files

staging: hv: move netvsc_send_recv_completion() to clean up forward declaration

parent 57991156
Loading
Loading
Loading
Loading
+42 −45
Original line number Diff line number Diff line
@@ -63,9 +63,6 @@ static void netvsc_send_completion(struct hv_device *device,
static void netvsc_receive(struct hv_device *device,
			    struct vmpacket_descriptor *packet);

static void netvsc_send_recv_completion(struct hv_device *device,
					u64 transaction_id);


static struct netvsc_device *alloc_net_device(struct hv_device *device)
{
@@ -835,6 +832,48 @@ static int netvsc_send(struct hv_device *device,
	return ret;
}

static void netvsc_send_recv_completion(struct hv_device *device,
					u64 transaction_id)
{
	struct nvsp_message recvcompMessage;
	int retries = 0;
	int ret;

	recvcompMessage.hdr.msg_type =
				NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE;

	/* FIXME: Pass in the status */
	recvcompMessage.msg.v1_msg.send_rndis_pkt_complete.status =
		NVSP_STAT_SUCCESS;

retry_send_cmplt:
	/* Send the completion */
	ret = vmbus_sendpacket(device->channel, &recvcompMessage,
			       sizeof(struct nvsp_message), transaction_id,
			       VM_PKT_COMP, 0);
	if (ret == 0) {
		/* success */
		/* no-op */
	} else if (ret == -1) {
		/* no more room...wait a bit and attempt to retry 3 times */
		retries++;
		dev_err(&device->device, "unable to send receive completion pkt"
			" (tid %llx)...retrying %d", transaction_id, retries);

		if (retries < 4) {
			udelay(100);
			goto retry_send_cmplt;
		} else {
			dev_err(&device->device, "unable to send receive "
				"completion pkt (tid %llx)...give up retrying",
				transaction_id);
		}
	} else {
		dev_err(&device->device, "unable to send receive "
			"completion pkt - %llx", transaction_id);
	}
}

/* Send a receive completion packet to RNDIS device (ie NetVsp) */
static void netvsc_receive_completion(void *context)
{
@@ -1069,48 +1108,6 @@ static void netvsc_receive(struct hv_device *device,
	put_net_device(device);
}

static void netvsc_send_recv_completion(struct hv_device *device,
					u64 transaction_id)
{
	struct nvsp_message recvcompMessage;
	int retries = 0;
	int ret;

	recvcompMessage.hdr.msg_type =
				NVSP_MSG1_TYPE_SEND_RNDIS_PKT_COMPLETE;

	/* FIXME: Pass in the status */
	recvcompMessage.msg.v1_msg.send_rndis_pkt_complete.status =
		NVSP_STAT_SUCCESS;

retry_send_cmplt:
	/* Send the completion */
	ret = vmbus_sendpacket(device->channel, &recvcompMessage,
			       sizeof(struct nvsp_message), transaction_id,
			       VM_PKT_COMP, 0);
	if (ret == 0) {
		/* success */
		/* no-op */
	} else if (ret == -1) {
		/* no more room...wait a bit and attempt to retry 3 times */
		retries++;
		dev_err(&device->device, "unable to send receive completion pkt"
			" (tid %llx)...retrying %d", transaction_id, retries);

		if (retries < 4) {
			udelay(100);
			goto retry_send_cmplt;
		} else {
			dev_err(&device->device, "unable to send receive "
				"completion pkt (tid %llx)...give up retrying",
				transaction_id);
		}
	} else {
		dev_err(&device->device, "unable to send receive "
			"completion pkt - %llx", transaction_id);
	}
}

static void netvsc_channel_cb(void *context)
{
	int ret;