From: Thomas Weißschuh <[email protected]> Sent: Thursday, April 2, 2026 8:18 AM > > These attributes are never modified, mark them as const.
As Sashiko AI noted here [1], there are 4 channel attributes that you did not mark as "const". Is there a reason, or is that just an oversight? There are a total of 15 channel attributes, and this patch marks only 11 of them as const. [1] https://sashiko.dev/#/patchset/20260402-sysfs-const-hv-v1-0-a467d6f7726e%40weissschuh.net Michael > > Signed-off-by: Thomas Weißschuh <[email protected]> > --- > drivers/hv/vmbus_drv.c | 30 +++++++++++++++--------------- > 1 file changed, 15 insertions(+), 15 deletions(-) > > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c > index ecce6b72a2a2..7ca038c1e5aa 100644 > --- a/drivers/hv/vmbus_drv.c > +++ b/drivers/hv/vmbus_drv.c > @@ -1864,7 +1864,7 @@ static ssize_t target_cpu_store(struct vmbus_channel > *channel, > > return ret ?: count; > } > -static VMBUS_CHAN_ATTR(cpu, 0644, target_cpu_show, target_cpu_store); > +static const VMBUS_CHAN_ATTR(cpu, 0644, target_cpu_show, target_cpu_store); > > static ssize_t channel_pending_show(struct vmbus_channel *channel, > char *buf) > @@ -1873,7 +1873,7 @@ static ssize_t channel_pending_show(struct > vmbus_channel *channel, > channel_pending(channel, > vmbus_connection.monitor_pages[1])); > } > -static VMBUS_CHAN_ATTR(pending, 0444, channel_pending_show, NULL); > +static const VMBUS_CHAN_ATTR(pending, 0444, channel_pending_show, NULL); > > static ssize_t channel_latency_show(struct vmbus_channel *channel, > char *buf) > @@ -1882,19 +1882,19 @@ static ssize_t channel_latency_show(struct > vmbus_channel *channel, > channel_latency(channel, > vmbus_connection.monitor_pages[1])); > } > -static VMBUS_CHAN_ATTR(latency, 0444, channel_latency_show, NULL); > +static const VMBUS_CHAN_ATTR(latency, 0444, channel_latency_show, NULL); > > static ssize_t channel_interrupts_show(struct vmbus_channel *channel, char > *buf) > { > return sprintf(buf, "%llu\n", channel->interrupts); > } > -static VMBUS_CHAN_ATTR(interrupts, 0444, channel_interrupts_show, NULL); > +static const VMBUS_CHAN_ATTR(interrupts, 0444, channel_interrupts_show, > NULL); > > static ssize_t channel_events_show(struct vmbus_channel *channel, char *buf) > { > return sprintf(buf, "%llu\n", channel->sig_events); > } > -static VMBUS_CHAN_ATTR(events, 0444, channel_events_show, NULL); > +static const VMBUS_CHAN_ATTR(events, 0444, channel_events_show, NULL); > > static ssize_t channel_intr_in_full_show(struct vmbus_channel *channel, > char *buf) > @@ -1902,7 +1902,7 @@ static ssize_t channel_intr_in_full_show(struct > vmbus_channel *channel, > return sprintf(buf, "%llu\n", > (unsigned long long)channel->intr_in_full); > } > -static VMBUS_CHAN_ATTR(intr_in_full, 0444, channel_intr_in_full_show, NULL); > +static const VMBUS_CHAN_ATTR(intr_in_full, 0444, channel_intr_in_full_show, > NULL); > > static ssize_t channel_intr_out_empty_show(struct vmbus_channel *channel, > char *buf) > @@ -1910,7 +1910,7 @@ static ssize_t channel_intr_out_empty_show(struct > vmbus_channel *channel, > return sprintf(buf, "%llu\n", > (unsigned long long)channel->intr_out_empty); > } > -static VMBUS_CHAN_ATTR(intr_out_empty, 0444, channel_intr_out_empty_show, > NULL); > +static const VMBUS_CHAN_ATTR(intr_out_empty, 0444, > channel_intr_out_empty_show, NULL); > > static ssize_t channel_out_full_first_show(struct vmbus_channel *channel, > char *buf) > @@ -1918,7 +1918,7 @@ static ssize_t channel_out_full_first_show(struct > vmbus_channel *channel, > return sprintf(buf, "%llu\n", > (unsigned long long)channel->out_full_first); > } > -static VMBUS_CHAN_ATTR(out_full_first, 0444, channel_out_full_first_show, > NULL); > +static const VMBUS_CHAN_ATTR(out_full_first, 0444, > channel_out_full_first_show, NULL); > > static ssize_t channel_out_full_total_show(struct vmbus_channel *channel, > char *buf) > @@ -1926,14 +1926,14 @@ static ssize_t channel_out_full_total_show(struct > vmbus_channel *channel, > return sprintf(buf, "%llu\n", > (unsigned long long)channel->out_full_total); > } > -static VMBUS_CHAN_ATTR(out_full_total, 0444, channel_out_full_total_show, > NULL); > +static const VMBUS_CHAN_ATTR(out_full_total, 0444, > channel_out_full_total_show, NULL); > > static ssize_t subchannel_monitor_id_show(struct vmbus_channel *channel, > char *buf) > { > return sprintf(buf, "%u\n", channel->offermsg.monitorid); > } > -static VMBUS_CHAN_ATTR(monitor_id, 0444, subchannel_monitor_id_show, NULL); > +static const VMBUS_CHAN_ATTR(monitor_id, 0444, subchannel_monitor_id_show, > NULL); > > static ssize_t subchannel_id_show(struct vmbus_channel *channel, > char *buf) > @@ -1941,7 +1941,7 @@ static ssize_t subchannel_id_show(struct vmbus_channel > *channel, > return sprintf(buf, "%u\n", > channel->offermsg.offer.sub_channel_index); > } > -static VMBUS_CHAN_ATTR_RO(subchannel_id); > +static const VMBUS_CHAN_ATTR_RO(subchannel_id); > > static int hv_mmap_ring_buffer_wrapper(struct file *filp, struct kobject > *kobj, > const struct bin_attribute *attr, > @@ -1963,7 +1963,7 @@ static const struct bin_attribute chan_attr_ring_buffer > = { > }, > .mmap = hv_mmap_ring_buffer_wrapper, > }; > -static struct attribute *vmbus_chan_attrs[] = { > +static const struct attribute *const vmbus_chan_attrs[] = { > &chan_attr_out_mask.attr, > &chan_attr_in_mask.attr, > &chan_attr_read_avail.attr, > @@ -1992,7 +1992,7 @@ static const struct bin_attribute *const > vmbus_chan_bin_attrs[] = { > * each attribute, and returns 0 if an attribute is not visible. > */ > static umode_t vmbus_chan_attr_is_visible(struct kobject *kobj, > - struct attribute *attr, int idx) > + const struct attribute *attr, int idx) > { > const struct vmbus_channel *channel = > container_of(kobj, struct vmbus_channel, kobj); > @@ -2030,9 +2030,9 @@ static size_t vmbus_chan_bin_size(struct kobject *kobj, > } > > static const struct attribute_group vmbus_chan_group = { > - .attrs = vmbus_chan_attrs, > + .attrs_const = vmbus_chan_attrs, > .bin_attrs = vmbus_chan_bin_attrs, > - .is_visible = vmbus_chan_attr_is_visible, > + .is_visible_const = vmbus_chan_attr_is_visible, > .is_bin_visible = vmbus_chan_bin_attr_is_visible, > .bin_size = vmbus_chan_bin_size, > }; > > -- > 2.53.0 >

