diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-22 13:03:51 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-22 13:03:51 -0400 |
| commit | 7b1f513aacee53ed2d20cdf82191c7f486136469 (patch) | |
| tree | eecd228c44fec22c19d7368c48094df722727bbf | |
| parent | 258152acc09c5c2df97002cd58cb37cb241aacde (diff) | |
| parent | 2de16a493cc6153f7fa0b9da12a3862d063e3425 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio: console: Check if port is valid in resize_console
virtio: console: Generate a kobject CHANGE event on adding 'name' attribute
| -rw-r--r-- | drivers/char/virtio_console.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c index f404ccfc9c20..44288ce0cb45 100644 --- a/drivers/char/virtio_console.c +++ b/drivers/char/virtio_console.c | |||
| @@ -681,6 +681,10 @@ static void resize_console(struct port *port) | |||
| 681 | struct virtio_device *vdev; | 681 | struct virtio_device *vdev; |
| 682 | struct winsize ws; | 682 | struct winsize ws; |
| 683 | 683 | ||
| 684 | /* The port could have been hot-unplugged */ | ||
| 685 | if (!port) | ||
| 686 | return; | ||
| 687 | |||
| 684 | vdev = port->portdev->vdev; | 688 | vdev = port->portdev->vdev; |
| 685 | if (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_SIZE)) { | 689 | if (virtio_has_feature(vdev, VIRTIO_CONSOLE_F_SIZE)) { |
| 686 | vdev->config->get(vdev, | 690 | vdev->config->get(vdev, |
| @@ -947,11 +951,18 @@ static void handle_control_message(struct ports_device *portdev, | |||
| 947 | */ | 951 | */ |
| 948 | err = sysfs_create_group(&port->dev->kobj, | 952 | err = sysfs_create_group(&port->dev->kobj, |
| 949 | &port_attribute_group); | 953 | &port_attribute_group); |
| 950 | if (err) | 954 | if (err) { |
| 951 | dev_err(port->dev, | 955 | dev_err(port->dev, |
| 952 | "Error %d creating sysfs device attributes\n", | 956 | "Error %d creating sysfs device attributes\n", |
| 953 | err); | 957 | err); |
| 954 | 958 | } else { | |
| 959 | /* | ||
| 960 | * Generate a udev event so that appropriate | ||
| 961 | * symlinks can be created based on udev | ||
| 962 | * rules. | ||
| 963 | */ | ||
| 964 | kobject_uevent(&port->dev->kobj, KOBJ_CHANGE); | ||
| 965 | } | ||
| 955 | break; | 966 | break; |
| 956 | case VIRTIO_CONSOLE_PORT_REMOVE: | 967 | case VIRTIO_CONSOLE_PORT_REMOVE: |
| 957 | /* | 968 | /* |
