diff options
Diffstat (limited to 'drivers/s390/kvm/kvm_virtio.c')
-rw-r--r-- | drivers/s390/kvm/kvm_virtio.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/s390/kvm/kvm_virtio.c b/drivers/s390/kvm/kvm_virtio.c index 292b60da6dc7..ff4a6931bb8e 100644 --- a/drivers/s390/kvm/kvm_virtio.c +++ b/drivers/s390/kvm/kvm_virtio.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/kvm_virtio.h> | 24 | #include <asm/kvm_virtio.h> |
25 | #include <asm/setup.h> | 25 | #include <asm/setup.h> |
26 | #include <asm/s390_ext.h> | 26 | #include <asm/s390_ext.h> |
27 | #include <asm/s390_rdev.h> | ||
27 | 28 | ||
28 | #define VIRTIO_SUBCODE_64 0x0D00 | 29 | #define VIRTIO_SUBCODE_64 0x0D00 |
29 | 30 | ||
@@ -241,10 +242,7 @@ static struct virtio_config_ops kvm_vq_configspace_ops = { | |||
241 | * The root device for the kvm virtio devices. | 242 | * The root device for the kvm virtio devices. |
242 | * This makes them appear as /sys/devices/kvm_s390/0,1,2 not /sys/devices/0,1,2. | 243 | * This makes them appear as /sys/devices/kvm_s390/0,1,2 not /sys/devices/0,1,2. |
243 | */ | 244 | */ |
244 | static struct device kvm_root = { | 245 | static struct device *kvm_root; |
245 | .parent = NULL, | ||
246 | .bus_id = "kvm_s390", | ||
247 | }; | ||
248 | 246 | ||
249 | /* | 247 | /* |
250 | * adds a new device and register it with virtio | 248 | * adds a new device and register it with virtio |
@@ -261,7 +259,7 @@ static void add_kvm_device(struct kvm_device_desc *d, unsigned int offset) | |||
261 | return; | 259 | return; |
262 | } | 260 | } |
263 | 261 | ||
264 | kdev->vdev.dev.parent = &kvm_root; | 262 | kdev->vdev.dev.parent = kvm_root; |
265 | kdev->vdev.id.device = d->type; | 263 | kdev->vdev.id.device = d->type; |
266 | kdev->vdev.config = &kvm_vq_configspace_ops; | 264 | kdev->vdev.config = &kvm_vq_configspace_ops; |
267 | kdev->desc = d; | 265 | kdev->desc = d; |
@@ -317,15 +315,16 @@ static int __init kvm_devices_init(void) | |||
317 | if (!MACHINE_IS_KVM) | 315 | if (!MACHINE_IS_KVM) |
318 | return -ENODEV; | 316 | return -ENODEV; |
319 | 317 | ||
320 | rc = device_register(&kvm_root); | 318 | kvm_root = s390_root_dev_register("kvm_s390"); |
321 | if (rc) { | 319 | if (IS_ERR(kvm_root)) { |
320 | rc = PTR_ERR(kvm_root); | ||
322 | printk(KERN_ERR "Could not register kvm_s390 root device"); | 321 | printk(KERN_ERR "Could not register kvm_s390 root device"); |
323 | return rc; | 322 | return rc; |
324 | } | 323 | } |
325 | 324 | ||
326 | rc = vmem_add_mapping(PFN_PHYS(max_pfn), PAGE_SIZE); | 325 | rc = vmem_add_mapping(PFN_PHYS(max_pfn), PAGE_SIZE); |
327 | if (rc) { | 326 | if (rc) { |
328 | device_unregister(&kvm_root); | 327 | s390_root_dev_unregister(kvm_root); |
329 | return rc; | 328 | return rc; |
330 | } | 329 | } |
331 | 330 | ||