linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] ethtool: Add ethtool_puts()
@ 2023-10-25 23:40 Justin Stitt
  2023-10-25 23:40 ` [PATCH 1/3] ethtool: Implement ethtool_puts() Justin Stitt
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Justin Stitt @ 2023-10-25 23:40 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Shay Agroskin, Arthur Kiyanovski, David Arinzon, Noam Dagan,
	Saeed Bishara, Rasesh Mody, Sudarsana Kalluru, GR-Linux-NIC-Dev,
	Dimitris Michailidis, Yisen Zhuang, Salil Mehta,
	Jesse Brandeburg, Tony Nguyen, Louis Peens, Shannon Nelson,
	Brett Creeley, drivers, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, Ronak Doshi, VMware PV-Drivers Reviewers,
	Andy Whitcroft, Joe Perches, Dwaipayan Ray, Lukas Bulwahn
  Cc: linux-kernel, netdev, Nick Desaulniers, Nathan Chancellor,
	Kees Cook, intel-wired-lan, oss-drivers, linux-hyperv,
	Justin Stitt

Hi,

This series aims to implement ethtool_puts() and send out a wave 1 of
conversions from ethtool_sprintf(). There's also a checkpatch patch
included to check for the cases listed below.

This was sparked from recent discussion here [1]

The conversions are used in cases where ethtool_sprintf() was being used
with just two arguments:
|       ethtool_sprintf(&data, buffer[i].name);
or when it's used with format string: "%s"
|       ethtool_sprintf(&data, "%s", buffer[i].name);
which both now become:
|       ethtool_puts(&data, buffer[i].name);

The first case commonly triggers a -Wformat-security warning with Clang
due to potential problems with format flags present in the strings [3].

The second is just a bit weird with a plain-ol' "%s".

Note that I have some outstanding patches [2] (some picked up) that use
the second case of ethtool_sprintf(). I went with this approach to clean
up some strncpy() uses and avoid -Wformat-security warnings before
discussion about implementing ...puts() arose. I will probably let the
ones that have been picked up land but send new versions for others.

Wave 1 changes found with Cocci [4] and grep [5].

[1]: https://lore.kernel.org/all/202310141935.B326C9E@keescook/
[2]: https://lore.kernel.org/all/?q=dfb%3Aethtool_sprintf+AND+f%3Ajustinstitt
[3]: https://lore.kernel.org/all/202310101528.9496539BE@keescook/
[4]: (script authored by Kees)
@replace_2_args@
identifier BUF;
expression VAR;
@@

-       ethtool_sprintf
+       ethtool_puts
        (&BUF, VAR)

@replace_3_args@
identifier BUF;
expression VAR;
@@

-       ethtool_sprintf(&BUF, "%s", VAR)
+       ethtool_puts(&BUF, VAR)
[5]: $ rg "ethtool_sprintf\(\s*[^,)]+\s*,\s*[^,)]+\s*\)"

Signed-off-by: Justin Stitt <justinstitt@google.com>
---
Justin Stitt (3):
      ethtool: Implement ethtool_puts()
      treewide: Convert some ethtool_sprintf() to ethtool_puts()
      checkpatch: add ethtool_sprintf rules

 drivers/net/ethernet/amazon/ena/ena_ethtool.c      |  4 +-
 drivers/net/ethernet/brocade/bna/bnad_ethtool.c    |  2 +-
 .../net/ethernet/fungible/funeth/funeth_ethtool.c  |  8 +--
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c |  2 +-
 .../net/ethernet/hisilicon/hns/hns_dsaf_xgmac.c    |  2 +-
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   | 66 +++++++++++-----------
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |  4 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c       | 10 ++--
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |  6 +-
 drivers/net/ethernet/intel/igc/igc_ethtool.c       |  6 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |  5 +-
 .../net/ethernet/netronome/nfp/nfp_net_ethtool.c   | 44 +++++++--------
 drivers/net/ethernet/pensando/ionic/ionic_stats.c  |  4 +-
 drivers/net/hyperv/netvsc_drv.c                    |  4 +-
 drivers/net/vmxnet3/vmxnet3_ethtool.c              | 10 ++--
 include/linux/ethtool.h                            | 13 +++++
 net/ethtool/ioctl.c                                |  7 +++
 scripts/checkpatch.pl                              | 13 +++++
 18 files changed, 120 insertions(+), 90 deletions(-)
---
base-commit: d88520ad73b79e71e3ddf08de335b8520ae41c5c
change-id: 20231025-ethtool_puts_impl-a1479ffbc7e0

Best regards,
--
Justin Stitt <justinstitt@google.com>


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

end of thread, other threads:[~2023-10-26 17:57 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-25 23:40 [PATCH 0/3] ethtool: Add ethtool_puts() Justin Stitt
2023-10-25 23:40 ` [PATCH 1/3] ethtool: Implement ethtool_puts() Justin Stitt
2023-10-25 23:40 ` [PATCH 2/3] treewide: Convert some ethtool_sprintf() to ethtool_puts() Justin Stitt
2023-10-25 23:51   ` Joe Perches
2023-10-25 23:59     ` Justin Stitt
2023-10-26  9:23   ` Przemek Kitszel
2023-10-26 10:18     ` Kiyanovski, Arthur
2023-10-26 14:24     ` Jakub Kicinski
2023-10-26 14:48   ` Louis Peens
2023-10-26 14:52     ` Joe Perches
2023-10-26 16:10   ` Nelson, Shannon
2023-10-25 23:40 ` [PATCH 3/3] checkpatch: add ethtool_sprintf rules Justin Stitt
2023-10-25 23:52   ` Joe Perches
2023-10-26  9:29   ` Przemek Kitszel
2023-10-26 17:30   ` Joe Perches
2023-10-26 15:47 ` [PATCH 0/3] ethtool: Add ethtool_puts() Kees Cook
2023-10-26 16:33   ` Joe Perches
2023-10-26 17:49     ` Kees Cook
2023-10-26 17:57       ` Joe Perches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).