summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2026-03-24 13:08:20 +0300
committerPaolo Abeni <pabeni@redhat.com>2026-03-24 13:08:20 +0300
commita41a5733e71ac103ca8a045539f7b56050dae75a (patch)
tree5ea732518a6fe6174ba86e4d4c1e9504c878671d
parent9d9f21d314933edaf8180839375a47724cc322fc (diff)
parentde69301dc2f6d4172c69c3d1c7ceaad7af89b0dc (diff)
downloadlinux-a41a5733e71ac103ca8a045539f7b56050dae75a.tar.xz
Merge branch 'net-cleanup-bitmaps-printing'
Yury Norov says: ==================== net: cleanup bitmaps printing Bitmap API has a bitmap_print_to_pagebuf() function that is intended to print bitmap into a human readable format, making sure that the output string will not get big enough to cross the current page limit. Some drivers use this function immediately before passing the result to scnprintf() with no modification. This is useless because scnprintf(), and helpers based on it like seq_pritf() and sysfs_emit(), take care of not overflowing the buffer by itself, and perfectly print bitmaps with "%*pb[l]". v1: https://lore.kernel.org/all/20260219181407.290201-1-ynorov@nvidia.com/ ==================== Link: https://patch.msgid.link/20260319201713.941956-1-ynorov@nvidia.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
-rw-r--r--drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c28
-rw-r--r--net/core/net-sysfs.c2
2 files changed, 6 insertions, 24 deletions
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
index 413f9fa40b33..fa461489acdd 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c
@@ -962,30 +962,21 @@ static bool rvu_dbg_is_valid_lf(struct rvu *rvu, int blkaddr, int lf,
static void print_npa_qsize(struct seq_file *m, struct rvu_pfvf *pfvf)
{
- char *buf;
-
- buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
- if (!buf)
- return;
-
if (!pfvf->aura_ctx) {
seq_puts(m, "Aura context is not initialized\n");
} else {
- bitmap_print_to_pagebuf(false, buf, pfvf->aura_bmap,
- pfvf->aura_ctx->qsize);
seq_printf(m, "Aura count : %d\n", pfvf->aura_ctx->qsize);
- seq_printf(m, "Aura context ena/dis bitmap : %s\n", buf);
+ seq_printf(m, "Aura context ena/dis bitmap : %*pb\n",
+ pfvf->aura_ctx->qsize, pfvf->aura_bmap);
}
if (!pfvf->pool_ctx) {
seq_puts(m, "Pool context is not initialized\n");
} else {
- bitmap_print_to_pagebuf(false, buf, pfvf->pool_bmap,
- pfvf->pool_ctx->qsize);
seq_printf(m, "Pool count : %d\n", pfvf->pool_ctx->qsize);
- seq_printf(m, "Pool context ena/dis bitmap : %s\n", buf);
+ seq_printf(m, "Pool context ena/dis bitmap : %*pb\n",
+ pfvf->pool_ctx->qsize, pfvf->pool_bmap);
}
- kfree(buf);
}
/* The 'qsize' entry dumps current Aura/Pool context Qsize
@@ -2547,17 +2538,8 @@ RVU_DEBUG_SEQ_FOPS(nix_cq_ctx, nix_cq_ctx_display, nix_cq_ctx_write);
static void print_nix_qctx_qsize(struct seq_file *filp, int qsize,
unsigned long *bmap, char *qtype)
{
- char *buf;
-
- buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
- if (!buf)
- return;
-
- bitmap_print_to_pagebuf(false, buf, bmap, qsize);
seq_printf(filp, "%s context count : %d\n", qtype, qsize);
- seq_printf(filp, "%s context ena/dis bitmap : %s\n",
- qtype, buf);
- kfree(buf);
+ seq_printf(filp, "%s context ena/dis bitmap : %*pb\n", qtype, qsize, bmap);
}
static void print_nix_qsize(struct seq_file *filp, struct rvu_pfvf *pfvf)
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index 2ce011fae249..e430645748a7 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -1739,7 +1739,7 @@ static ssize_t xps_queue_show(struct net_device *dev, unsigned int index,
out_no_maps:
rcu_read_unlock();
- len = bitmap_print_to_pagebuf(false, buf, mask, nr_ids);
+ len = sysfs_emit(buf, "%*pb\n", nr_ids, mask);
bitmap_free(mask);
return len < PAGE_SIZE ? len : -EINVAL;