Jiang Liu
2015-Jun-04 08:41 UTC
[PATCH] virtio_pci: Clear stale cpumask when setting irq affinity
The cpumask vp_dev->msix_affinity_masks[info->msix_vector] may contain
staled information when vp_set_vq_affinity() gets called, so clear it
before setting the new cpu bit mask.
Signed-off-by: Jiang Liu <jiang.liu at linux.intel.com>
---
drivers/virtio/virtio_pci_common.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/virtio/virtio_pci_common.c
b/drivers/virtio/virtio_pci_common.c
index e894eb278d83..eba1b7ac7294 100644
--- a/drivers/virtio/virtio_pci_common.c
+++ b/drivers/virtio/virtio_pci_common.c
@@ -423,6 +423,7 @@ int vp_set_vq_affinity(struct virtqueue *vq, int cpu)
if (cpu == -1)
irq_set_affinity_hint(irq, NULL);
else {
+ cpumask_clear(mask);
cpumask_set_cpu(cpu, mask);
irq_set_affinity_hint(irq, mask);
}
--
1.7.10.4
Michael S. Tsirkin
2015-Jun-04 12:55 UTC
[PATCH] virtio_pci: Clear stale cpumask when setting irq affinity
On Thu, Jun 04, 2015 at 04:41:44PM +0800, Jiang Liu wrote:> The cpumask vp_dev->msix_affinity_masks[info->msix_vector] may contain > staled information when vp_set_vq_affinity() gets called, so clear it > before setting the new cpu bit mask. > > Signed-off-by: Jiang Liu <jiang.liu at linux.intel.com>I have queued this up. Thanks!> --- > drivers/virtio/virtio_pci_common.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c > index e894eb278d83..eba1b7ac7294 100644 > --- a/drivers/virtio/virtio_pci_common.c > +++ b/drivers/virtio/virtio_pci_common.c > @@ -423,6 +423,7 @@ int vp_set_vq_affinity(struct virtqueue *vq, int cpu) > if (cpu == -1) > irq_set_affinity_hint(irq, NULL); > else { > + cpumask_clear(mask); > cpumask_set_cpu(cpu, mask); > irq_set_affinity_hint(irq, mask); > } > -- > 1.7.10.4