Loading arch/sparc64/kernel/vio.c +29 −7 Original line number Diff line number Diff line Loading @@ -104,18 +104,24 @@ static ssize_t devspec_show(struct device *dev, struct vio_dev *vdev = to_vio_dev(dev); const char *str = "none"; if (vdev->type) { if (!strcmp(vdev->type, "network")) str = "vnet"; else if (!strcmp(vdev->type, "block")) str = "vdisk"; } return sprintf(buf, "%s\n", str); } static ssize_t type_show(struct device *dev, struct device_attribute *attr, char *buf) { struct vio_dev *vdev = to_vio_dev(dev); return sprintf(buf, "%s\n", vdev->type); } static struct device_attribute vio_dev_attrs[] = { __ATTR_RO(devspec), __ATTR_RO(type), __ATTR_NULL }; Loading Loading @@ -201,8 +207,11 @@ static struct vio_dev *vio_create_one(struct mdesc_node *mp, int err, clen; type = md_get_property(mp, "device-type", NULL); if (!type) if (!type) { type = md_get_property(mp, "name", NULL); if (!type) type = mp->name; } compat = md_get_property(mp, "device-type", &clen); vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); Loading Loading @@ -279,6 +288,8 @@ static void walk_tree(struct mdesc_node *n, struct vio_dev *parent) static void create_devices(struct mdesc_node *root) { struct mdesc_node *mp; root_vdev = vio_create_one(root, NULL); if (!root_vdev) { printk(KERN_ERR "VIO: Coult not create root device.\n"); Loading @@ -286,6 +297,17 @@ static void create_devices(struct mdesc_node *root) } walk_tree(root, root_vdev); /* Domain services is odd as it doesn't sit underneath the * channel-devices node, so we plug it in manually. */ mp = md_find_node_by_name(NULL, "domain-services"); if (mp) { struct vio_dev *parent = vio_create_one(mp, &root_vdev->dev); if (parent) walk_tree(mp, parent); } } const char *channel_devices_node = "channel-devices"; Loading Loading
arch/sparc64/kernel/vio.c +29 −7 Original line number Diff line number Diff line Loading @@ -104,18 +104,24 @@ static ssize_t devspec_show(struct device *dev, struct vio_dev *vdev = to_vio_dev(dev); const char *str = "none"; if (vdev->type) { if (!strcmp(vdev->type, "network")) str = "vnet"; else if (!strcmp(vdev->type, "block")) str = "vdisk"; } return sprintf(buf, "%s\n", str); } static ssize_t type_show(struct device *dev, struct device_attribute *attr, char *buf) { struct vio_dev *vdev = to_vio_dev(dev); return sprintf(buf, "%s\n", vdev->type); } static struct device_attribute vio_dev_attrs[] = { __ATTR_RO(devspec), __ATTR_RO(type), __ATTR_NULL }; Loading Loading @@ -201,8 +207,11 @@ static struct vio_dev *vio_create_one(struct mdesc_node *mp, int err, clen; type = md_get_property(mp, "device-type", NULL); if (!type) if (!type) { type = md_get_property(mp, "name", NULL); if (!type) type = mp->name; } compat = md_get_property(mp, "device-type", &clen); vdev = kzalloc(sizeof(*vdev), GFP_KERNEL); Loading Loading @@ -279,6 +288,8 @@ static void walk_tree(struct mdesc_node *n, struct vio_dev *parent) static void create_devices(struct mdesc_node *root) { struct mdesc_node *mp; root_vdev = vio_create_one(root, NULL); if (!root_vdev) { printk(KERN_ERR "VIO: Coult not create root device.\n"); Loading @@ -286,6 +297,17 @@ static void create_devices(struct mdesc_node *root) } walk_tree(root, root_vdev); /* Domain services is odd as it doesn't sit underneath the * channel-devices node, so we plug it in manually. */ mp = md_find_node_by_name(NULL, "domain-services"); if (mp) { struct vio_dev *parent = vio_create_one(mp, &root_vdev->dev); if (parent) walk_tree(mp, parent); } } const char *channel_devices_node = "channel-devices"; Loading