| From: Tony Battersby <tonyb@cybernetics.com> |
| Subject: dmapool: use sysfs_emit() instead of scnprintf() |
| Date: Thu, 26 Jan 2023 13:51:16 -0800 |
| |
| Use sysfs_emit instead of scnprintf, snprintf or sprintf. |
| |
| Link: https://lkml.kernel.org/r/20230126215125.4069751-4-kbusch@meta.com |
| Fixes: 2d55c16c0c54 ("dmapool: create/destroy cleanup") |
| Signed-off-by: Tony Battersby <tonyb@cybernetics.com> |
| Signed-off-by: Keith Busch <kbusch@kernel.org> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/dmapool.c | 23 +++++++---------------- |
| 1 file changed, 7 insertions(+), 16 deletions(-) |
| |
| --- a/mm/dmapool.c~dmapool-use-sysfs_emit-instead-of-scnprintf |
| +++ a/mm/dmapool.c |
| @@ -64,18 +64,11 @@ static DEFINE_MUTEX(pools_reg_lock); |
| |
| static ssize_t pools_show(struct device *dev, struct device_attribute *attr, char *buf) |
| { |
| - unsigned temp; |
| - unsigned size; |
| - char *next; |
| + int size; |
| struct dma_page *page; |
| struct dma_pool *pool; |
| |
| - next = buf; |
| - size = PAGE_SIZE; |
| - |
| - temp = scnprintf(next, size, "poolinfo - 0.1\n"); |
| - size -= temp; |
| - next += temp; |
| + size = sysfs_emit(buf, "poolinfo - 0.1\n"); |
| |
| mutex_lock(&pools_lock); |
| list_for_each_entry(pool, &dev->dma_pools, pools) { |
| @@ -90,16 +83,14 @@ static ssize_t pools_show(struct device |
| spin_unlock_irq(&pool->lock); |
| |
| /* per-pool info, no real statistics yet */ |
| - temp = scnprintf(next, size, "%-16s %4u %4zu %4zu %2u\n", |
| - pool->name, blocks, |
| - pages * (pool->allocation / pool->size), |
| - pool->size, pages); |
| - size -= temp; |
| - next += temp; |
| + size += sysfs_emit_at(buf, size, "%-16s %4u %4zu %4zu %2u\n", |
| + pool->name, blocks, |
| + pages * (pool->allocation / pool->size), |
| + pool->size, pages); |
| } |
| mutex_unlock(&pools_lock); |
| |
| - return PAGE_SIZE - size; |
| + return size; |
| } |
| |
| static DEVICE_ATTR_RO(pools); |
| _ |