mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
virtio: defer config changed notifications
Defer config changed notifications that arrive during probe/scan/freeze/restore. This will allow drivers to set DRIVER_OK earlier, without worrying about racing with config change interrupts. This change will also benefit old hypervisors (before 2009) that send interrupts without checking DRIVER_OK: previously, the callback could race with driver-specific initialization. This will also help simplify drivers. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cosmetic changes)
This commit is contained in:
parent
c6716bae52
commit
22b7050a02
2 changed files with 55 additions and 9 deletions
|
@ -79,6 +79,9 @@ bool virtqueue_is_broken(struct virtqueue *vq);
|
|||
* virtio_device - representation of a device using virtio
|
||||
* @index: unique position on the virtio bus
|
||||
* @failed: saved value for CONFIG_S_FAILED bit (for restore)
|
||||
* @config_enabled: configuration change reporting enabled
|
||||
* @config_change_pending: configuration change reported while disabled
|
||||
* @config_lock: protects configuration change reporting
|
||||
* @dev: underlying device.
|
||||
* @id: the device type identification (used to match it with a driver).
|
||||
* @config: the configuration ops for this device.
|
||||
|
@ -90,6 +93,9 @@ bool virtqueue_is_broken(struct virtqueue *vq);
|
|||
struct virtio_device {
|
||||
int index;
|
||||
bool failed;
|
||||
bool config_enabled;
|
||||
bool config_change_pending;
|
||||
spinlock_t config_lock;
|
||||
struct device dev;
|
||||
struct virtio_device_id id;
|
||||
const struct virtio_config_ops *config;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue