diff options
author | Zhu Lingshan <lingshan.zhu@intel.com> | 2020-06-05 18:27:12 +0800 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2020-06-06 16:25:22 -0400 |
commit | bb02e6e63d0e71188bc5fe5f4732e66bc8b5dceb (patch) | |
tree | 2756d7ad22cb91e2b47ade6dd8d9603eea5d05cc /drivers | |
parent | fce8afd76e3a4d8c59c92f84f8027569fd7031d0 (diff) |
ifcvf: ignore continuous setting same status value
User space may try to set status of same value multiple times,
this patch handles this case more efficiently by ignoring the
setting of the same status value.
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
Link: https://lore.kernel.org/r/1591352835-22441-3-git-send-email-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/vdpa/ifcvf/ifcvf_main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c index d529ed681fe6..63a6366b4355 100644 --- a/drivers/vdpa/ifcvf/ifcvf_main.c +++ b/drivers/vdpa/ifcvf/ifcvf_main.c @@ -179,6 +179,9 @@ static void ifcvf_vdpa_set_status(struct vdpa_device *vdpa_dev, u8 status) adapter = dev_get_drvdata(vdpa_dev->dev.parent); status_old = ifcvf_get_status(vf); + if (status_old == status) + return; + if ((status_old & VIRTIO_CONFIG_S_DRIVER_OK) && !(status & VIRTIO_CONFIG_S_DRIVER_OK)) { ifcvf_stop_datapath(adapter); |