All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v3 0/3] Use new for_each macro to create hexdumps
@ 2025-02-19 21:10 Nick Child
  2025-02-19 21:11 ` [PATCH net-next v3 1/3] hexdump: Implement macro for converting large buffers Nick Child
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Nick Child @ 2025-02-19 21:10 UTC (permalink / raw)
  To: netdev
  Cc: linux-kernel, horms, david.laight.linux, nick.child, pmladek,
	rostedt, john.ogness, senozhatsky, Nick Child

Currently, obtaining a hexdump can be done through one of the following:
 1. hex_dump_to_buffer - takes at most 32 bytes of a buffer and returns a 
     hexdump string representation
 2. print_hex_dump - prints output of hex_dump_to_buffer iteratively over
    a large buffer

There is no functionality for iterating over a large buffer and receiving
the string representation. It seems most users of hex_dump_to_buffer are
calling hex_dump_to_buffer within the body of a loop which iterates
through a buffer.

This patchset creates a for_each macro that accepts a buffer and fills
out an output string with the converted hexdump. This loops over the
buffer and takes care of incrementing pointers. Hopefully this makes
writing sequential calls to hex_dump_to_buffer more straightforward.

From a users perspective there should be no difference in output.

The inspiration here was I wanted to use print_hex_dump in ibmvnic code
but I wanted to print through netdevice printing functions to maintain
formatting. Looking at other users of hex_dump_to_buffer it seems they had
similar intentions.

Thanks to Dave, Simon, David, and Paolo for v2 review.

Changes since v2:
 - patch1: remove unnecssary call to min, this addresses Simon's observation of
 gcc-7.5.0 warning. Other possible solutions were to change typing but it turns
 out the call to min is unnecessary since hex_dump_to_buffer has logic for
 handling len > rowlen and vice versa. So we can be honest about the len.
 - patch1: cleanup for loop i increment in response to Dave's review
 - patch3: fix ordering of [Signed-off,Reviewed]-by tags in the commit message
 - target net-next thanks to Paolo's recommendation

v2: https://lore.kernel.org/lkml/20250214162436.241359-1-nnac123@linux.ibm.com/

Changes since v1:
 - add Jacob's Reviewed-by
 - fix kernel doc typo in patch 1 noted by Simon

v1: https://lore.kernel.org/lkml/20250113221721.362093-1-nnac123@linux.ibm.com/

similar intentions.
Nick Child (3):
  hexdump: Implement macro for converting large buffers
  hexdump: Use for_each macro in print_hex_dump
  ibmvnic: Print data buffers with kernel API's

 drivers/net/ethernet/ibm/ibmvnic.c | 23 ++++++++++++++---------
 include/linux/printk.h             | 20 ++++++++++++++++++++
 lib/hexdump.c                      | 11 +++--------
 3 files changed, 37 insertions(+), 17 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-02-22 21:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-19 21:10 [PATCH net-next v3 0/3] Use new for_each macro to create hexdumps Nick Child
2025-02-19 21:11 ` [PATCH net-next v3 1/3] hexdump: Implement macro for converting large buffers Nick Child
2025-02-20 22:00   ` David Laight
2025-02-21 17:37     ` Nick Child
2025-02-21 18:04       ` David Laight
2025-02-21 18:50         ` Nick Child
2025-02-21 22:18           ` David Laight
2025-02-22 18:58             ` Nick Child
2025-02-22 21:27               ` David Laight
2025-02-19 21:11 ` [PATCH net-next v3 2/3] hexdump: Use for_each macro in print_hex_dump Nick Child
     [not found]   ` <875xl5y50q.fsf@linux.ibm.com>
2025-02-20 15:49     ` Nick Child
2025-02-20 21:41       ` David Laight
2025-02-20 21:56         ` Nick Child
2025-02-19 21:11 ` [PATCH net-next v3 3/3] ibmvnic: Print data buffers with kernel API's Nick Child

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.