Message ID | 20241113-refactor-blk-affinity-helpers-v4-2-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:16PM +0100, Daniel Wagner wrote: > Introducing a callback in struct device_driver so that a device driver > can hook up the getters directly. This approach avoids exposing random > getters in drivers. > > Signed-off-by: Daniel Wagner <wagi@kernel.org> > --- > include/linux/device/driver.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h > index 5c04b8e3833b995f9fd4d65b8732b3dfce2eba7e..0d1aee423f6c076ae102bdd0536233c259947fac 100644 > --- a/include/linux/device/driver.h > +++ b/include/linux/device/driver.h > @@ -74,6 +74,7 @@ enum probe_type { > * @suspend: Called to put the device to sleep mode. Usually to a > * low power state. > * @resume: Called to bring a device from sleep mode. > + * @irq_get_affinity: Get IRQ affinity mask for the device. > * @groups: Default attributes that get created by the driver core > * automatically. > * @dev_groups: Additional attributes attached to device instance once > @@ -112,6 +113,8 @@ struct device_driver { > void (*shutdown) (struct device *dev); > int (*suspend) (struct device *dev, pm_message_t state); > int (*resume) (struct device *dev); > + const struct cpumask *(*irq_get_affinity)(struct device *dev, > + unsigned int irq_vec); > const struct attribute_group **groups; > const struct attribute_group **dev_groups; The patch looks fine, but if you put 1, 2 and 5 into single patch, it will become much easier to review, anyway: Reviewed-by: Ming Lei <ming.lei@redhat.com>
On Thu, Nov 14, 2024 at 09:52:55AM +0800, Ming Lei wrote: > On Wed, Nov 13, 2024 at 03:26:16PM +0100, Daniel Wagner wrote: > > Introducing a callback in struct device_driver so that a device driver > > can hook up the getters directly. This approach avoids exposing random > > getters in drivers. > > > > Signed-off-by: Daniel Wagner <wagi@kernel.org> > > --- > > include/linux/device/driver.h | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h > > index 5c04b8e3833b995f9fd4d65b8732b3dfce2eba7e..0d1aee423f6c076ae102bdd0536233c259947fac 100644 > > --- a/include/linux/device/driver.h > > +++ b/include/linux/device/driver.h > > @@ -74,6 +74,7 @@ enum probe_type { > > * @suspend: Called to put the device to sleep mode. Usually to a > > * low power state. > > * @resume: Called to bring a device from sleep mode. > > + * @irq_get_affinity: Get IRQ affinity mask for the device. > > * @groups: Default attributes that get created by the driver core > > * automatically. > > * @dev_groups: Additional attributes attached to device instance once > > @@ -112,6 +113,8 @@ struct device_driver { > > void (*shutdown) (struct device *dev); > > int (*suspend) (struct device *dev, pm_message_t state); > > int (*resume) (struct device *dev); > > + const struct cpumask *(*irq_get_affinity)(struct device *dev, > > + unsigned int irq_vec); > > const struct attribute_group **groups; > > const struct attribute_group **dev_groups; > > The patch looks fine, but if you put 1, 2 and 5 into single patch, > it will become much easier to review, anyway: 1 and 2 makes sense to merge. Christoph asked me to split 5 out 1 as it mixed different things together https://lore.kernel.org/linux-nvme/20241112044736.GA8883@lst.de/
diff --git a/include/linux/device/driver.h b/include/linux/device/driver.h index 5c04b8e3833b995f9fd4d65b8732b3dfce2eba7e..0d1aee423f6c076ae102bdd0536233c259947fac 100644 --- a/include/linux/device/driver.h +++ b/include/linux/device/driver.h @@ -74,6 +74,7 @@ enum probe_type { * @suspend: Called to put the device to sleep mode. Usually to a * low power state. * @resume: Called to bring a device from sleep mode. + * @irq_get_affinity: Get IRQ affinity mask for the device. * @groups: Default attributes that get created by the driver core * automatically. * @dev_groups: Additional attributes attached to device instance once @@ -112,6 +113,8 @@ struct device_driver { void (*shutdown) (struct device *dev); int (*suspend) (struct device *dev, pm_message_t state); int (*resume) (struct device *dev); + const struct cpumask *(*irq_get_affinity)(struct device *dev, + unsigned int irq_vec); const struct attribute_group **groups; const struct attribute_group **dev_groups;
Introducing a callback in struct device_driver so that a device driver can hook up the getters directly. This approach avoids exposing random getters in drivers. Signed-off-by: Daniel Wagner <wagi@kernel.org> --- include/linux/device/driver.h | 3 +++ 1 file changed, 3 insertions(+)