From: Vladimir Oltean Date: Sun, 21 Mar 2021 21:05:49 +0000 (+0200) Subject: net/sched: cls_flower: use nla_get_be32 for TCA_FLOWER_KEY_FLAGS X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=abee13f53e889024401de913ff46a6997a866b0c;p=linux.git net/sched: cls_flower: use nla_get_be32 for TCA_FLOWER_KEY_FLAGS The existing code is functionally correct: iproute2 parses the ip_flags argument for tc-flower and really packs it as big endian into the TCA_FLOWER_KEY_FLAGS netlink attribute. But there is a problem in the fact that W=1 builds complain: net/sched/cls_flower.c:1047:15: warning: cast to restricted __be32 This is because we should use the dedicated helper for obtaining a __be32 pointer to the netlink attribute, not a u32 one. This ensures type correctness for be32_to_cpu. Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller --- diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 832a0ece6dbfb..9736df97e04d7 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -1044,8 +1044,8 @@ static int fl_set_key_flags(struct nlattr **tb, u32 *flags_key, return -EINVAL; } - key = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS])); - mask = be32_to_cpu(nla_get_u32(tb[TCA_FLOWER_KEY_FLAGS_MASK])); + key = be32_to_cpu(nla_get_be32(tb[TCA_FLOWER_KEY_FLAGS])); + mask = be32_to_cpu(nla_get_be32(tb[TCA_FLOWER_KEY_FLAGS_MASK])); *flags_key = 0; *flags_mask = 0;