virtio-balloon: tweak config_changed implementation
authorWei Wang <wei.w.wang@intel.com>
Mon, 7 Jan 2019 07:01:04 +0000 (15:01 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 15 Jan 2019 01:15:20 +0000 (20:15 -0500)
commitbf4dc0b2beebfd9338df7c0bcf473b356f67cf66
tree2f7d09c5a40626a7cac01a49dee42b225d3405ef
parenta229989d975eb926076307c1f2f5e4c6111768e7
virtio-balloon: tweak config_changed implementation

virtio-ccw has deadlock issues with reading the config space inside the
interrupt context, so we tweak the virtballoon_changed implementation
by moving the config read operations into the related workqueue contexts.
The config_read_bitmap is used as a flag to the workqueue callbacks
about the related config fields that need to be read.

The cmd_id_received is also renamed to cmd_id_received_cache, and
the value should be obtained via virtio_balloon_cmd_id_received.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Cc: stable@vger.kernel.org
Fixes: 86a559787e6f ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
drivers/virtio/virtio_balloon.c