Re: [PATCH 4/4] dmaengine: ioatdma: make sysfs attributes const

From: Dave Jiang

Date: Mon Mar 02 2026 - 18:20:10 EST




On 3/2/26 3:15 PM, Thomas Weißschuh wrote:
> These structures are never modified, mark them as read-only.
>
> Signed-off-by: Thomas Weißschuh <linux@xxxxxxxxxxxxxx>

Acked-by: Dave Jiang <dave.jiang@xxxxxxxxx>



> ---
> drivers/dma/ioat/sysfs.c | 20 ++++++++++----------
> 1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/dma/ioat/sysfs.c b/drivers/dma/ioat/sysfs.c
> index da616365fef5..e796ddb5383f 100644
> --- a/drivers/dma/ioat/sysfs.c
> +++ b/drivers/dma/ioat/sysfs.c
> @@ -32,7 +32,7 @@ static ssize_t cap_show(struct dma_chan *c, char *page)
> dma_has_cap(DMA_INTERRUPT, dma->cap_mask) ? " intr" : "");
>
> }
> -static struct ioat_sysfs_entry ioat_cap_attr = __ATTR_RO(cap);
> +static const struct ioat_sysfs_entry ioat_cap_attr = __ATTR_RO(cap);
>
> static ssize_t version_show(struct dma_chan *c, char *page)
> {
> @@ -42,15 +42,15 @@ static ssize_t version_show(struct dma_chan *c, char *page)
> return sprintf(page, "%d.%d\n",
> ioat_dma->version >> 4, ioat_dma->version & 0xf);
> }
> -static struct ioat_sysfs_entry ioat_version_attr = __ATTR_RO(version);
> +static const struct ioat_sysfs_entry ioat_version_attr = __ATTR_RO(version);
>
> static ssize_t
> ioat_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
> {
> - struct ioat_sysfs_entry *entry;
> + const struct ioat_sysfs_entry *entry;
> struct ioatdma_chan *ioat_chan;
>
> - entry = container_of(attr, struct ioat_sysfs_entry, attr);
> + entry = container_of_const(attr, struct ioat_sysfs_entry, attr);
> ioat_chan = container_of(kobj, struct ioatdma_chan, kobj);
>
> if (!entry->show)
> @@ -62,10 +62,10 @@ static ssize_t
> ioat_attr_store(struct kobject *kobj, struct attribute *attr,
> const char *page, size_t count)
> {
> - struct ioat_sysfs_entry *entry;
> + const struct ioat_sysfs_entry *entry;
> struct ioatdma_chan *ioat_chan;
>
> - entry = container_of(attr, struct ioat_sysfs_entry, attr);
> + entry = container_of_const(attr, struct ioat_sysfs_entry, attr);
> ioat_chan = container_of(kobj, struct ioatdma_chan, kobj);
>
> if (!entry->store)
> @@ -120,7 +120,7 @@ static ssize_t ring_size_show(struct dma_chan *c, char *page)
>
> return sprintf(page, "%d\n", (1 << ioat_chan->alloc_order) & ~1);
> }
> -static struct ioat_sysfs_entry ring_size_attr = __ATTR_RO(ring_size);
> +static const struct ioat_sysfs_entry ring_size_attr = __ATTR_RO(ring_size);
>
> static ssize_t ring_active_show(struct dma_chan *c, char *page)
> {
> @@ -129,7 +129,7 @@ static ssize_t ring_active_show(struct dma_chan *c, char *page)
> /* ...taken outside the lock, no need to be precise */
> return sprintf(page, "%d\n", ioat_ring_active(ioat_chan));
> }
> -static struct ioat_sysfs_entry ring_active_attr = __ATTR_RO(ring_active);
> +static const struct ioat_sysfs_entry ring_active_attr = __ATTR_RO(ring_active);
>
> static ssize_t intr_coalesce_show(struct dma_chan *c, char *page)
> {
> @@ -154,9 +154,9 @@ size_t count)
> return count;
> }
>
> -static struct ioat_sysfs_entry intr_coalesce_attr = __ATTR_RW(intr_coalesce);
> +static const struct ioat_sysfs_entry intr_coalesce_attr = __ATTR_RW(intr_coalesce);
>
> -static struct attribute *ioat_attrs[] = {
> +static const struct attribute *const ioat_attrs[] = {
> &ring_size_attr.attr,
> &ring_active_attr.attr,
> &ioat_cap_attr.attr,
>