From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: kys@microsoft.com, haiyangz@microsoft.com
Cc: devel@linuxdriverproject.org, linux-kernel@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH 01/13] hv: use dev_groups for device attributes
Date: Fri, 13 Sep 2013 11:32:49 -0700 [thread overview]
Message-ID: <1379097181-23407-2-git-send-email-gregkh@linuxfoundation.org> (raw)
In-Reply-To: <1379097181-23407-1-git-send-email-gregkh@linuxfoundation.org>
This patch is the first in a series that moves the hv bus code to use the
dev_groups field instead of dev_attrs, as dev_attrs is going away in future
kernel releases.
It moves the id sysfs file to the dev_groups structure, and creates the needed
show/store functions, instead of relying on one "universal" function for this.
By doing this, it removes the need for this to be in a temporary structure.
Cc: "K. Y. Srinivasan" <kys@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/hv/channel.c | 1 -
drivers/hv/vmbus_drv.c | 23 ++++++++++++++++++-----
include/linux/hyperv.h | 1 -
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index 6de6c98c..b58a1785 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -69,7 +69,6 @@ void vmbus_get_debug_info(struct vmbus_channel *channel,
u8 monitor_group = (u8)channel->offermsg.monitorid / 32;
u8 monitor_offset = (u8)channel->offermsg.monitorid % 32;
- debuginfo->relid = channel->offermsg.child_relid;
debuginfo->state = channel->state;
memcpy(&debuginfo->interfacetype,
&channel->offermsg.offer.if_type, sizeof(uuid_le));
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index f9fe46f5..5c21b228 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -47,7 +47,6 @@ static struct completion probe_event;
static int irq;
struct hv_device_info {
- u32 chn_id;
u32 chn_state;
uuid_le chn_type;
uuid_le chn_instance;
@@ -83,7 +82,6 @@ static void get_channel_info(struct hv_device *device,
vmbus_get_debug_info(device->channel, &debug_info);
- info->chn_id = debug_info.relid;
info->chn_state = debug_info.state;
memcpy(&info->chn_type, &debug_info.interfacetype,
sizeof(uuid_le));
@@ -156,8 +154,6 @@ static ssize_t vmbus_show_device_attr(struct device *dev,
ret = sprintf(buf, "vmbus:%s\n", alias_name);
} else if (!strcmp(dev_attr->attr.name, "state")) {
ret = sprintf(buf, "%d\n", device_info->chn_state);
- } else if (!strcmp(dev_attr->attr.name, "id")) {
- ret = sprintf(buf, "%d\n", device_info->chn_id);
} else if (!strcmp(dev_attr->attr.name, "out_intr_mask")) {
ret = sprintf(buf, "%d\n", device_info->outbound.int_mask);
} else if (!strcmp(dev_attr->attr.name, "out_read_index")) {
@@ -204,9 +200,25 @@ static ssize_t vmbus_show_device_attr(struct device *dev,
return ret;
}
+static ssize_t id_show(struct device *dev, struct device_attribute *dev_attr,
+ char *buf)
+{
+ struct hv_device *hv_dev = device_to_hv_device(dev);
+
+ if (!hv_dev->channel)
+ return -ENODEV;
+ return sprintf(buf, "%d\n", hv_dev->channel->offermsg.child_relid);
+}
+static DEVICE_ATTR_RO(id);
+
+static struct attribute *vmbus_attrs[] = {
+ &dev_attr_id.attr,
+ NULL,
+};
+ATTRIBUTE_GROUPS(vmbus);
+
/* Set up per device attributes in /sys/bus/vmbus/devices/<bus device> */
static struct device_attribute vmbus_device_attrs[] = {
- __ATTR(id, S_IRUGO, vmbus_show_device_attr, NULL),
__ATTR(state, S_IRUGO, vmbus_show_device_attr, NULL),
__ATTR(class_id, S_IRUGO, vmbus_show_device_attr, NULL),
__ATTR(device_id, S_IRUGO, vmbus_show_device_attr, NULL),
@@ -384,6 +396,7 @@ static struct bus_type hv_bus = {
.probe = vmbus_probe,
.uevent = vmbus_uevent,
.dev_attrs = vmbus_device_attrs,
+ .dev_groups = vmbus_groups,
};
static const char *driver_name = "hyperv";
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index a3b8b2e2..45e9b65e 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -900,7 +900,6 @@ enum vmbus_channel_state {
};
struct vmbus_channel_debug_info {
- u32 relid;
enum vmbus_channel_state state;
uuid_le interfacetype;
uuid_le interface_instance;
--
1.8.4.3.gca3854a
next prev parent reply other threads:[~2013-09-13 18:33 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-13 18:32 [PATCH 00/13] hv: clean up dev_attr usage Greg Kroah-Hartman
2013-09-13 18:32 ` Greg Kroah-Hartman [this message]
2013-09-13 18:32 ` [PATCH 02/13] hv: move "state" bus attribute to dev_groups Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 03/13] hv: move "monitor_id" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 04/13] hv: move "modalias" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 05/13] hv: move "class_id" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 06/13] hv: move "device_id" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 07/13] hv: make "monitor_pages" a "real" pointer array Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 08/13] hv: move "client/server_monitor_pending" bus attributes to dev_groups Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 09/13] hv: move "client/server_monitor_latency" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 10/13] hv: move "client/server_monitor_conn_id" " Greg Kroah-Hartman
2013-09-13 18:32 ` [PATCH 11/13] hv: delete vmbus_get_debug_info() Greg Kroah-Hartman
2013-09-13 18:33 ` [PATCH 12/13] hv: delete struct hv_dev_port_info Greg Kroah-Hartman
2013-09-13 18:33 ` [PATCH 13/13] hv: move ringbuffer bus attributes to dev_groups Greg Kroah-Hartman
2013-09-13 19:13 ` [PATCH 00/13] hv: clean up dev_attr usage KY Srinivasan
2013-09-17 18:42 ` KY Srinivasan
2013-09-26 15:59 ` Greg Kroah-Hartman
2013-09-26 22:36 ` KY Srinivasan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1379097181-23407-2-git-send-email-gregkh@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=devel@linuxdriverproject.org \
--cc=haiyangz@microsoft.com \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.