From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amit Shah Subject: [PATCH 00/14] virtio: console: Hot-unplug fixes Date: Thu, 2 Sep 2010 18:11:39 +0530 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Rusty Russell Cc: Amit Shah , Virtualization List List-Id: virtualization@lists.linuxfoundation.org Hey Rusty, These are the patches that rework a few bits to make hot-unplug while ports are open not crash apps (or kernels). The problem is when hot-unplug is performed when a port is open, the cdev struct is kept around by the file pointers and when the app later does a 'close', things go boom-boom. This patch series makes sure port as well as device hot-unplug is now safe to perform at any time: when ports are open, not open, hvc consoles are active, inactive, module removal, applications doing blocking read/write/poll calls while port / devices are going away... Ideally this patchset would be applicable for 2.6.36 as well as 2.6.35, but I'll let you decide as it's quite big. Amit Shah (14): virtio: console: Reset vdev before removing device virtio: console: Remove control vq data only if using multiport support virtio: console: Check if portdev is valid in send_control_msg() virtio: console: Unblock reads on chardev close virtio: console: Unblock poll on port hot-unplug virtio: console: Make read() return -ENODEV on hot-unplug virtio: console: Make write() return -ENODEV on hot-unplug virtio: console: remove_port() should return void virtio: console: open: Use a common path for error handling virtio: console: Add a list of portdevs that are active virtio: console: Add a find_port_by_devt() function virtio: console: Use cdev_alloc() instead of cdev_init() virtio: console: Add reference counting for port struct virtio: console: Reference counting portdev structs is not needed drivers/char/virtio_console.c | 206 ++++++++++++++++++++++++++++++++++------- 1 files changed, 173 insertions(+), 33 deletions(-) -- 1.7.2.2