|
|
@@ -313,12 +313,16 @@ static ssize_t out_intr_mask_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info outbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound,
|
|
|
+ &outbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", outbound.current_interrupt_mask);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(out_intr_mask);
|
|
|
@@ -328,12 +332,15 @@ static ssize_t out_read_index_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info outbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound,
|
|
|
+ &outbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
return sprintf(buf, "%d\n", outbound.current_read_index);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(out_read_index);
|
|
|
@@ -344,12 +351,15 @@ static ssize_t out_write_index_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info outbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound,
|
|
|
+ &outbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
return sprintf(buf, "%d\n", outbound.current_write_index);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(out_write_index);
|
|
|
@@ -360,12 +370,15 @@ static ssize_t out_read_bytes_avail_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info outbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound,
|
|
|
+ &outbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
return sprintf(buf, "%d\n", outbound.bytes_avail_toread);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(out_read_bytes_avail);
|
|
|
@@ -376,12 +389,15 @@ static ssize_t out_write_bytes_avail_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info outbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound, &outbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->outbound,
|
|
|
+ &outbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
return sprintf(buf, "%d\n", outbound.bytes_avail_towrite);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(out_write_bytes_avail);
|
|
|
@@ -391,12 +407,15 @@ static ssize_t in_intr_mask_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info inbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", inbound.current_interrupt_mask);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(in_intr_mask);
|
|
|
@@ -406,12 +425,15 @@ static ssize_t in_read_index_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info inbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", inbound.current_read_index);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(in_read_index);
|
|
|
@@ -421,12 +443,15 @@ static ssize_t in_write_index_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info inbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", inbound.current_write_index);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(in_write_index);
|
|
|
@@ -437,12 +462,15 @@ static ssize_t in_read_bytes_avail_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info inbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", inbound.bytes_avail_toread);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(in_read_bytes_avail);
|
|
|
@@ -453,12 +481,15 @@ static ssize_t in_write_bytes_avail_show(struct device *dev,
|
|
|
{
|
|
|
struct hv_device *hv_dev = device_to_hv_device(dev);
|
|
|
struct hv_ring_buffer_debug_info inbound;
|
|
|
+ int ret;
|
|
|
|
|
|
if (!hv_dev->channel)
|
|
|
return -ENODEV;
|
|
|
- if (hv_dev->channel->state != CHANNEL_OPENED_STATE)
|
|
|
- return -EINVAL;
|
|
|
- hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+
|
|
|
+ ret = hv_ringbuffer_get_debuginfo(&hv_dev->channel->inbound, &inbound);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
return sprintf(buf, "%d\n", inbound.bytes_avail_towrite);
|
|
|
}
|
|
|
static DEVICE_ATTR_RO(in_write_bytes_avail);
|