Message ID | 20241115-refactor-blk-affinity-helpers-v5-3-c472afd84d9f@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | blk: refactor queue affinity helpers | expand |
On 15/11/2024 16:37, Daniel Wagner wrote: > Reviewed-by: Christoph Hellwig<hch@lst.de> > Reviewed-by: Hannes Reinecke<hare@suse.de> > Reviewed-by: Ming Lei<ming.lei@redhat.com> > Signed-off-by: Daniel Wagner<wagi@kernel.org> Reviewed-by: John Garry <john.g.garry@oracle.com> > --- > drivers/virtio/virtio.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c > index b9095751e43bb7db5fc991b0cc0979d2e86f7b9b..4ca6ec84cb092eac7ddf4b86b4eacac099b480cf 100644 > --- a/drivers/virtio/virtio.c > +++ b/drivers/virtio/virtio.c > @@ -377,6 +377,24 @@ static void virtio_dev_remove(struct device *_d) > of_node_put(dev->dev.of_node); > } > > +/** nit: does this really need to be kerneldoc, as it is static? > + * virtio_irq_get_affinity - get IRQ affinity mask for device > + * @_d: ptr to dev structure > + * @irq_vec: interrupt vector number > + * > + * Return the CPU affinity mask for @_d and @irq_vec. > + */ > +static const struct cpumask *virtio_irq_get_affinity(struct device *_d, > + unsigned int irq_vec) > +{ > + struct virtio_device *dev = dev_to_virtio(_d); > + > + if (!dev->config->get_vq_affinity) > + return NULL; > + > + return dev->config->get_vq_affinity(dev, irq_vec); > +} > + > static const struct bus_type virtio_bus = {
On Thu, Nov 21, 2024 at 09:01:49AM +0000, John Garry wrote: > > --- a/drivers/virtio/virtio.c > > +++ b/drivers/virtio/virtio.c > > @@ -377,6 +377,24 @@ static void virtio_dev_remove(struct device *_d) > > of_node_put(dev->dev.of_node); > > } > > +/** > > nit: does this really need to be kerneldoc, as it is static? No, it's not necessary, I didn't know what the rules for static functions are. I'll update it accordingly.
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c index b9095751e43bb7db5fc991b0cc0979d2e86f7b9b..4ca6ec84cb092eac7ddf4b86b4eacac099b480cf 100644 --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -377,6 +377,24 @@ static void virtio_dev_remove(struct device *_d) of_node_put(dev->dev.of_node); } +/** + * virtio_irq_get_affinity - get IRQ affinity mask for device + * @_d: ptr to dev structure + * @irq_vec: interrupt vector number + * + * Return the CPU affinity mask for @_d and @irq_vec. + */ +static const struct cpumask *virtio_irq_get_affinity(struct device *_d, + unsigned int irq_vec) +{ + struct virtio_device *dev = dev_to_virtio(_d); + + if (!dev->config->get_vq_affinity) + return NULL; + + return dev->config->get_vq_affinity(dev, irq_vec); +} + static const struct bus_type virtio_bus = { .name = "virtio", .match = virtio_dev_match, @@ -384,6 +402,7 @@ static const struct bus_type virtio_bus = { .uevent = virtio_uevent, .probe = virtio_dev_probe, .remove = virtio_dev_remove, + .irq_get_affinity = virtio_irq_get_affinity, }; int __register_virtio_driver(struct virtio_driver *driver, struct module *owner)