Re: [PATCH v2] virtio_pci: Switch away from deprecated irq_set_affinity_hint

From: Xuan Zhuo
Date: Wed Oct 25 2023 - 23:36:29 EST


On Wed, 25 Oct 2023 16:53:19 +0200, Jakub Sitnicki <jakub@xxxxxxxxxxxxxx> wrote:
> Since commit 65c7cdedeb30 ("genirq: Provide new interfaces for affinity
> hints") irq_set_affinity_hint is being phased out.
>
> Switch to new interfaces for setting and applying irq affinity hints.
>
> Signed-off-by: Jakub Sitnicki <jakub@xxxxxxxxxxxxxx>

Reviewed-by: Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx>

Thanks.

> ---
> v2:
> - Leave cpumask_copy as is. We can't pass pointer to stack memory as hint.
> Proposed a change to IRQ affinity interface to address this limitation:
> https://lore.kernel.org/r/20231025141517.375378-1-jakub@xxxxxxxxxxxxxx
>
> v1: https://lore.kernel.org/r/20231019101625.412936-2-jakub@xxxxxxxxxxxxxx
> ---
> drivers/virtio/virtio_pci_common.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c
> index c2524a7207cf..7a5593997e0e 100644
> --- a/drivers/virtio/virtio_pci_common.c
> +++ b/drivers/virtio/virtio_pci_common.c
> @@ -242,7 +242,7 @@ void vp_del_vqs(struct virtio_device *vdev)
> if (v != VIRTIO_MSI_NO_VECTOR) {
> int irq = pci_irq_vector(vp_dev->pci_dev, v);
>
> - irq_set_affinity_hint(irq, NULL);
> + irq_update_affinity_hint(irq, NULL);
> free_irq(irq, vq);
> }
> }
> @@ -443,10 +443,10 @@ int vp_set_vq_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask)
> mask = vp_dev->msix_affinity_masks[info->msix_vector];
> irq = pci_irq_vector(vp_dev->pci_dev, info->msix_vector);
> if (!cpu_mask)
> - irq_set_affinity_hint(irq, NULL);
> + irq_update_affinity_hint(irq, NULL);
> else {
> cpumask_copy(mask, cpu_mask);
> - irq_set_affinity_hint(irq, mask);
> + irq_set_affinity_and_hint(irq, mask);
> }
> }
> return 0;
> --
> 2.41.0
>