Message ID | 20241113-refactor-blk-affinity-helpers-v4-1-dd3baa1e267f@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | blk: refactor queue affinity helpers | expand |
On Wed, Nov 13, 2024 at 03:26:15PM +0100, Daniel Wagner wrote: > Introducing a callback in struct bus_type so that a subsystem > can hook up the getters directly. This approach avoids exposing > random getters in any subsystems APIs. > > Acked-by: Bjorn Helgaas <bhelgaas@google.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Hannes Reinecke <hare@suse.de> > Signed-off-by: Daniel Wagner <wagi@kernel.org> > --- > include/linux/device/bus.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/linux/device/bus.h b/include/linux/device/bus.h > index cdc4757217f9bb4b36b5c3b8a48bab45737e44c5..b18658bce2c3819fc1cbeb38fb98391d56ec3317 100644 > --- a/include/linux/device/bus.h > +++ b/include/linux/device/bus.h > @@ -48,6 +48,7 @@ struct fwnode_handle; > * will never get called until they do. > * @remove: Called when a device removed from this bus. > * @shutdown: Called at shut-down time to quiesce the device. > + * @irq_get_affinity: Get IRQ affinity mask for the device on this bus. > * > * @online: Called to put the device back online (after offlining it). > * @offline: Called to put the device offline for hot-removal. May fail. > @@ -87,6 +88,8 @@ struct bus_type { > void (*sync_state)(struct device *dev); > void (*remove)(struct device *dev); > void (*shutdown)(struct device *dev); > + const struct cpumask *(*irq_get_affinity)(struct device *dev, > + unsigned int irq_vec); > > int (*online)(struct device *dev); > int (*offline)(struct device *dev); > Looks one nice abstraction, Reviewed-by: Ming Lei <ming.lei@redhat.com>
diff --git a/include/linux/device/bus.h b/include/linux/device/bus.h index cdc4757217f9bb4b36b5c3b8a48bab45737e44c5..b18658bce2c3819fc1cbeb38fb98391d56ec3317 100644 --- a/include/linux/device/bus.h +++ b/include/linux/device/bus.h @@ -48,6 +48,7 @@ struct fwnode_handle; * will never get called until they do. * @remove: Called when a device removed from this bus. * @shutdown: Called at shut-down time to quiesce the device. + * @irq_get_affinity: Get IRQ affinity mask for the device on this bus. * * @online: Called to put the device back online (after offlining it). * @offline: Called to put the device offline for hot-removal. May fail. @@ -87,6 +88,8 @@ struct bus_type { void (*sync_state)(struct device *dev); void (*remove)(struct device *dev); void (*shutdown)(struct device *dev); + const struct cpumask *(*irq_get_affinity)(struct device *dev, + unsigned int irq_vec); int (*online)(struct device *dev); int (*offline)(struct device *dev);