diff options
author | Jakub Kicinski <kuba@kernel.org> | 2023-06-10 00:53:31 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-06-12 13:32:45 +0300 |
commit | 500e1340d1d2695de3f15fc0b3781f593a77acc2 (patch) | |
tree | 4d86ba36fb3a24593be237c151aad15439d1bea8 /net/ethtool/netlink.c | |
parent | 5ab8c41cef30d8b6160a80b69d2eb39d570491ac (diff) | |
download | linux-500e1340d1d2695de3f15fc0b3781f593a77acc2.tar.xz |
net: ethtool: don't require empty header nests
Ethtool currently requires a header nest (which is used to carry
the common family options) in all requests including dumps.
$ cli.py --spec netlink/specs/ethtool.yaml --dump channels-get
lib.ynl.NlError: Netlink error: Invalid argument
nl_len = 64 (48) nl_flags = 0x300 nl_type = 2
error: -22 extack: {'msg': 'request header missing'}
$ cli.py --spec netlink/specs/ethtool.yaml --dump channels-get \
--json '{"header":{}}'; )
[{'combined-count': 1,
'combined-max': 1,
'header': {'dev-index': 2, 'dev-name': 'enp1s0'}}]
Requiring the header nest to always be there may seem nice
from the consistency perspective, but it's not serving any
practical purpose. We shouldn't burden the user like this.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ethtool/netlink.c')
-rw-r--r-- | net/ethtool/netlink.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ethtool/netlink.c b/net/ethtool/netlink.c index 08120095cc68..5dd5e8222c45 100644 --- a/net/ethtool/netlink.c +++ b/net/ethtool/netlink.c @@ -96,6 +96,8 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info, int ret; if (!header) { + if (!require_dev) + return 0; NL_SET_ERR_MSG(extack, "request header missing"); return -EINVAL; } |