The function creates temporary buffer to convert xibm->bitmap to a
human-readable list before passing it to seq_printf. Drop it and print
the list in seq_printf() directly with the "%*pbl" specifier.

Signed-off-by: Yury Norov <[email protected]>
---
 arch/powerpc/sysdev/xive/spapr.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/sysdev/xive/spapr.c b/arch/powerpc/sysdev/xive/spapr.c
index 5aedbe3e8e6a..f818299579b1 100644
--- a/arch/powerpc/sysdev/xive/spapr.c
+++ b/arch/powerpc/sysdev/xive/spapr.c
@@ -667,17 +667,9 @@ static void xive_spapr_sync_source(u32 hw_irq)
 static int xive_spapr_debug_show(struct seq_file *m, void *private)
 {
        struct xive_irq_bitmap *xibm;
-       char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL);
 
-       if (!buf)
-               return -ENOMEM;
-
-       list_for_each_entry(xibm, &xive_irq_bitmaps, list) {
-               memset(buf, 0, PAGE_SIZE);
-               bitmap_print_to_pagebuf(true, buf, xibm->bitmap, xibm->count);
-               seq_printf(m, "bitmap #%d: %s", xibm->count, buf);
-       }
-       kfree(buf);
+       list_for_each_entry(xibm, &xive_irq_bitmaps, list)
+               seq_printf(m, "bitmap #%d: %*pbl\n", xibm->count, xibm->count, 
xibm->bitmap);
 
        return 0;
 }
-- 
2.43.0


Reply via email to