148 lines
5.1 KiB
Diff
148 lines
5.1 KiB
Diff
|
From aef2a21a2221c03e4e00fd06ea74002317fbfd5e Mon Sep 17 00:00:00 2001
|
||
|
From: Michal Kubecek <mkubecek@suse.cz>
|
||
|
Date: Sun, 23 Aug 2020 21:40:18 +0200
|
||
|
Subject: [PATCH 03/17] netlink: get rid of signed/unsigned comparison warnings
|
||
|
|
||
|
Use unsigned types where appropriate to get rid of compiler warnings about
|
||
|
comparison between signed and unsigned integer values in netlink code.
|
||
|
|
||
|
v2: avoid casts in dump_features()
|
||
|
|
||
|
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
|
||
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||
|
(cherry picked from commit b038eef080221b1f9df944c3d2307bad172cf318)
|
||
|
---
|
||
|
netlink/features.c | 6 +++---
|
||
|
netlink/netlink.c | 4 ++--
|
||
|
netlink/netlink.h | 2 +-
|
||
|
netlink/nlsock.c | 2 +-
|
||
|
netlink/parser.c | 2 +-
|
||
|
netlink/settings.c | 6 +++---
|
||
|
6 files changed, 11 insertions(+), 11 deletions(-)
|
||
|
|
||
|
diff --git a/netlink/features.c b/netlink/features.c
|
||
|
index 762259405acc..3f1240437350 100644
|
||
|
--- a/netlink/features.c
|
||
|
+++ b/netlink/features.c
|
||
|
@@ -109,9 +109,9 @@ static bool flag_pattern_match(const char *name, const char *pattern)
|
||
|
int dump_features(const struct nlattr *const *tb,
|
||
|
const struct stringset *feature_names)
|
||
|
{
|
||
|
+ unsigned int *feature_flags = NULL;
|
||
|
struct feature_results results;
|
||
|
unsigned int i, j;
|
||
|
- int *feature_flags = NULL;
|
||
|
int ret;
|
||
|
|
||
|
ret = prepare_feature_results(tb, &results);
|
||
|
@@ -126,7 +126,7 @@ int dump_features(const struct nlattr *const *tb,
|
||
|
/* map netdev features to legacy flags */
|
||
|
for (i = 0; i < results.count; i++) {
|
||
|
const char *name = get_string(feature_names, i);
|
||
|
- feature_flags[i] = -1;
|
||
|
+ feature_flags[i] = UINT_MAX;
|
||
|
|
||
|
if (!name || !*name)
|
||
|
continue;
|
||
|
@@ -177,7 +177,7 @@ int dump_features(const struct nlattr *const *tb,
|
||
|
for (i = 0; i < results.count; i++) {
|
||
|
const char *name = get_string(feature_names, i);
|
||
|
|
||
|
- if (!name || !*name || feature_flags[i] >= 0)
|
||
|
+ if (!name || !*name || feature_flags[i] != UINT_MAX)
|
||
|
continue;
|
||
|
dump_feature(&results, NULL, NULL, i, name, "");
|
||
|
}
|
||
|
diff --git a/netlink/netlink.c b/netlink/netlink.c
|
||
|
index 76b6e825b1d0..e42d57076a4b 100644
|
||
|
--- a/netlink/netlink.c
|
||
|
+++ b/netlink/netlink.c
|
||
|
@@ -33,9 +33,9 @@ int nomsg_reply_cb(const struct nlmsghdr *nlhdr, void *data __maybe_unused)
|
||
|
int attr_cb(const struct nlattr *attr, void *data)
|
||
|
{
|
||
|
const struct attr_tb_info *tb_info = data;
|
||
|
- int type = mnl_attr_get_type(attr);
|
||
|
+ uint16_t type = mnl_attr_get_type(attr);
|
||
|
|
||
|
- if (type >= 0 && type <= tb_info->max_type)
|
||
|
+ if (type <= tb_info->max_type)
|
||
|
tb_info->tb[type] = attr;
|
||
|
|
||
|
return MNL_CB_OK;
|
||
|
diff --git a/netlink/netlink.h b/netlink/netlink.h
|
||
|
index a4984c82ae76..dd4a02bcc916 100644
|
||
|
--- a/netlink/netlink.h
|
||
|
+++ b/netlink/netlink.h
|
||
|
@@ -45,7 +45,7 @@ struct nl_context {
|
||
|
const char *cmd;
|
||
|
const char *param;
|
||
|
char **argp;
|
||
|
- int argc;
|
||
|
+ unsigned int argc;
|
||
|
bool ioctl_fallback;
|
||
|
bool wildcard_unsupported;
|
||
|
};
|
||
|
diff --git a/netlink/nlsock.c b/netlink/nlsock.c
|
||
|
index c3f09b6ee9ab..ef31d8c33b29 100644
|
||
|
--- a/netlink/nlsock.c
|
||
|
+++ b/netlink/nlsock.c
|
||
|
@@ -168,7 +168,7 @@ static void debug_msg(struct nl_socket *nlsk, const void *msg, unsigned int len,
|
||
|
*
|
||
|
* Return: error code extracted from the message
|
||
|
*/
|
||
|
-static int nlsock_process_ack(struct nlmsghdr *nlhdr, ssize_t len,
|
||
|
+static int nlsock_process_ack(struct nlmsghdr *nlhdr, unsigned long len,
|
||
|
unsigned int suppress_nlerr, bool pretty)
|
||
|
{
|
||
|
const struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {};
|
||
|
diff --git a/netlink/parser.c b/netlink/parser.c
|
||
|
index 395bd5743af9..c5a368a65a7a 100644
|
||
|
--- a/netlink/parser.c
|
||
|
+++ b/netlink/parser.c
|
||
|
@@ -604,7 +604,7 @@ static int parse_numeric_bitset(struct nl_context *nlctx, uint16_t type,
|
||
|
parser_err_invalid_value(nlctx, arg);
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
- len1 = maskptr ? (maskptr - arg) : strlen(arg);
|
||
|
+ len1 = maskptr ? (unsigned int)(maskptr - arg) : strlen(arg);
|
||
|
nwords = DIV_ROUND_UP(len1, 8);
|
||
|
nbits = 0;
|
||
|
|
||
|
diff --git a/netlink/settings.c b/netlink/settings.c
|
||
|
index 17ef000ed812..2b9c6e7a782c 100644
|
||
|
--- a/netlink/settings.c
|
||
|
+++ b/netlink/settings.c
|
||
|
@@ -276,10 +276,10 @@ int dump_link_modes(struct nl_context *nlctx, const struct nlattr *bitset,
|
||
|
const struct nlattr *bitset_tb[ETHTOOL_A_BITSET_MAX + 1] = {};
|
||
|
DECLARE_ATTR_TB_INFO(bitset_tb);
|
||
|
const unsigned int before_len = strlen(before);
|
||
|
+ unsigned int prev = UINT_MAX - 1;
|
||
|
const struct nlattr *bits;
|
||
|
const struct nlattr *bit;
|
||
|
bool first = true;
|
||
|
- int prev = -2;
|
||
|
bool nomask;
|
||
|
int ret;
|
||
|
|
||
|
@@ -333,7 +333,7 @@ int dump_link_modes(struct nl_context *nlctx, const struct nlattr *bitset,
|
||
|
if (first)
|
||
|
first = false;
|
||
|
/* ugly hack to preserve old output format */
|
||
|
- if (class == LM_CLASS_REAL && (prev == idx - 1) &&
|
||
|
+ if (class == LM_CLASS_REAL && (idx == prev + 1) &&
|
||
|
prev < link_modes_count &&
|
||
|
link_modes[prev].class == LM_CLASS_REAL &&
|
||
|
link_modes[prev].duplex == DUPLEX_HALF)
|
||
|
@@ -375,7 +375,7 @@ int dump_link_modes(struct nl_context *nlctx, const struct nlattr *bitset,
|
||
|
first = false;
|
||
|
} else {
|
||
|
/* ugly hack to preserve old output format */
|
||
|
- if ((class == LM_CLASS_REAL) && (prev == idx - 1) &&
|
||
|
+ if ((class == LM_CLASS_REAL) && (idx == prev + 1) &&
|
||
|
(prev < link_modes_count) &&
|
||
|
(link_modes[prev].class == LM_CLASS_REAL) &&
|
||
|
(link_modes[prev].duplex == DUPLEX_HALF))
|
||
|
--
|
||
|
2.26.2
|
||
|
|