virtio: console: Add reference counting for port struct
authorAmit Shah <amit.shah@redhat.com>
Thu, 2 Sep 2010 13:08:29 +0000 (18:38 +0530)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 21 Oct 2010 07:14:03 +0000 (17:44 +1030)
commitb353a6b821627053f82b4e7b907e824cb7a6879c
treea863bec4278a403bd63336b4f01b45794a987805
parentd22a69892bd8f29e3096f6f54c2c00d8aec2e796
virtio: console: Add reference counting for port struct

When a port got hot-unplugged, when a port was open, any file operation
after the unplugging resulted in a crash. This is fixed by ref-counting
the port structure, and releasing it only when the file is closed.

This splits the unplug operation in two parts: first marks the port
as unavailable, removes all the buffers in the vqs and removes the port
from the per-device list of ports. The second stage, invoked when all
references drop to zero, releases the chardev and frees all other memory.

Signed-off-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/char/virtio_console.c