lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230809182648.1816537-1-kuba@kernel.org>
Date: Wed,  9 Aug 2023 11:26:38 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org,
	edumazet@...gle.com,
	pabeni@...hat.com,
	jiri@...nulli.us,
	johannes@...solutions.net,
	Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next 00/10] genetlink: provide struct genl_info to dumps

One of the biggest (which is not to say only) annoyances with genetlink
handling today is that doit and dumpit need some of the same information,
but it is passed to them in completely different structs.

The implementations commonly end up writing a _fill() method which
populates a message and have to pass at least 6 parameters. 3 of which
are extracted manually from request info.

After a lot of umming and ahing I decided to populate struct genl_info
for dumps, without trying to factor out only the common parts.
This makes the adoption easiest.

In the future we may add a new version of dump which takes
struct genl_info *info as the second argument, instead of
struct netlink_callback *cb. For now developers have to call
genl_info_dump(cb) to get the info.

Typical genetlink families no longer get exposed to netlink protocol
internals like pid and seq numbers.

Jakub Kicinski (10):
  genetlink: use push conditional locking info dumpit/done
  genetlink: make genl_info->nlhdr const
  genetlink: remove userhdr from struct genl_info
  genetlink: add struct genl_info to struct genl_dumpit_info
  genetlink: use attrs from struct genl_info
  genetlink: add a family pointer to struct genl_info
  genetlink: add genlmsg_iput() API
  netdev-genl: use struct genl_info for reply construction
  ethtool: netlink: simplify arguments to ethnl_default_parse()
  ethtool: netlink: always pass genl_info to .prepare_data

 drivers/block/drbd/drbd_nl.c    |   9 +--
 drivers/net/wireguard/netlink.c |   2 +-
 include/net/genetlink.h         |  72 +++++++++++++++++--
 net/core/netdev-genl.c          |  15 ++--
 net/devlink/health.c            |   2 +-
 net/devlink/leftover.c          |   6 +-
 net/ethtool/channels.c          |   2 +-
 net/ethtool/coalesce.c          |   6 +-
 net/ethtool/debug.c             |   2 +-
 net/ethtool/eee.c               |   2 +-
 net/ethtool/eeprom.c            |   9 ++-
 net/ethtool/features.c          |   2 +-
 net/ethtool/fec.c               |   2 +-
 net/ethtool/linkinfo.c          |   2 +-
 net/ethtool/linkmodes.c         |   2 +-
 net/ethtool/linkstate.c         |   2 +-
 net/ethtool/mm.c                |   2 +-
 net/ethtool/module.c            |   5 +-
 net/ethtool/netlink.c           |  31 ++++-----
 net/ethtool/netlink.h           |   2 +-
 net/ethtool/pause.c             |   5 +-
 net/ethtool/phc_vclocks.c       |   2 +-
 net/ethtool/plca.c              |   4 +-
 net/ethtool/privflags.c         |   2 +-
 net/ethtool/pse-pd.c            |   6 +-
 net/ethtool/rings.c             |   5 +-
 net/ethtool/rss.c               |   3 +-
 net/ethtool/stats.c             |   5 +-
 net/ethtool/strset.c            |   2 +-
 net/ethtool/tsinfo.c            |   2 +-
 net/ethtool/tunnels.c           |   2 +-
 net/ethtool/wol.c               |   5 +-
 net/ieee802154/nl802154.c       |   4 +-
 net/ncsi/ncsi-netlink.c         |   2 +-
 net/ncsi/ncsi-netlink.h         |   2 +-
 net/netlink/genetlink.c         | 119 +++++++++++++++-----------------
 net/nfc/netlink.c               |   4 +-
 net/openvswitch/conntrack.c     |   2 +-
 net/openvswitch/datapath.c      |  29 ++++----
 net/openvswitch/meter.c         |  10 +--
 net/tipc/netlink_compat.c       |   4 +-
 net/tipc/node.c                 |   4 +-
 net/tipc/socket.c               |   2 +-
 net/tipc/udp_media.c            |   2 +-
 44 files changed, 226 insertions(+), 178 deletions(-)

-- 
2.41.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ