Commit d9bc9e8
Herton R. Krzesinski
Merge: virtio_console: break out of buf poll on remove
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/2064
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>
Approved-by: Eugenio Pérez <eperezma@redhat.com>
Approved-by: Laurent Vivier <lvivier@redhat.com>
Approved-by: Jason Wang <jasowang@redhat.com>
Approved-by: MST <mst@redhat.com>
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>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