Commit 30ff2ab
virtio_console: break out of buf poll on remove
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1786239
Upstream Status: All mainline
A common pattern for device reset is currently:
vdev->config->reset(vdev);
.. cleanup ..
reset prevents new interrupts from arriving and waits for interrupt
handlers to finish.
However if - as is common - the handler queues a work request which is
flushed during the cleanup stage, we have code adding buffers / trying
to get buffers while device is reset. Not good.
This was reproduced by running
modprobe virtio_console
modprobe -r virtio_console
in a loop.
Fix this up by calling virtio_break_device + flush before reset.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1786239
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 0e7174b)
Signed-off-by: Cindy Lu <lulu@redhat.com>1 parent 8a04ea6 commit 30ff2ab
1 file changed
+7
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1952 | 1952 | | |
1953 | 1953 | | |
1954 | 1954 | | |
| 1955 | + | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
1955 | 1962 | | |
1956 | 1963 | | |
1957 | 1964 | | |
| |||
0 commit comments