]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
net/sched: act_pedit: remove extra check for key type
authorPedro Tammela <pctammela@mojatatu.com>
Fri, 21 Apr 2023 21:25:16 +0000 (18:25 -0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 23 Apr 2023 17:35:27 +0000 (18:35 +0100)
The netlink parsing already validates the key 'htype'.
Remove the datapath check as it's redundant.

Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Pedro Tammela <pctammela@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/act_pedit.c

index cc4dfb01c6c739d6e24b651d77d6cca77e73ad54..2fec4473d800703087704c93162da1f2e204ed9e 100644 (file)
@@ -325,37 +325,28 @@ static bool offset_valid(struct sk_buff *skb, int offset)
        return true;
 }
 
-static int pedit_skb_hdr_offset(struct sk_buff *skb,
-                               enum pedit_header_type htype, int *hoffset)
+static void pedit_skb_hdr_offset(struct sk_buff *skb,
+                                enum pedit_header_type htype, int *hoffset)
 {
-       int ret = -EINVAL;
-
+       /* 'htype' is validated in the netlink parsing */
        switch (htype) {
        case TCA_PEDIT_KEY_EX_HDR_TYPE_ETH:
-               if (skb_mac_header_was_set(skb)) {
+               if (skb_mac_header_was_set(skb))
                        *hoffset = skb_mac_offset(skb);
-                       ret = 0;
-               }
                break;
        case TCA_PEDIT_KEY_EX_HDR_TYPE_NETWORK:
        case TCA_PEDIT_KEY_EX_HDR_TYPE_IP4:
        case TCA_PEDIT_KEY_EX_HDR_TYPE_IP6:
                *hoffset = skb_network_offset(skb);
-               ret = 0;
                break;
        case TCA_PEDIT_KEY_EX_HDR_TYPE_TCP:
        case TCA_PEDIT_KEY_EX_HDR_TYPE_UDP:
-               if (skb_transport_header_was_set(skb)) {
+               if (skb_transport_header_was_set(skb))
                        *hoffset = skb_transport_offset(skb);
-                       ret = 0;
-               }
                break;
        default:
-               ret = -EINVAL;
                break;
        }
-
-       return ret;
 }
 
 TC_INDIRECT_SCOPE int tcf_pedit_act(struct sk_buff *skb,
@@ -388,10 +379,9 @@ TC_INDIRECT_SCOPE int tcf_pedit_act(struct sk_buff *skb,
 
        for (i = parms->tcfp_nkeys; i > 0; i--, tkey++) {
                int offset = tkey->off;
+               int hoffset = 0;
                u32 *ptr, hdata;
-               int hoffset;
                u32 val;
-               int rc;
 
                if (tkey_ex) {
                        htype = tkey_ex->htype;
@@ -400,12 +390,7 @@ TC_INDIRECT_SCOPE int tcf_pedit_act(struct sk_buff *skb,
                        tkey_ex++;
                }
 
-               rc = pedit_skb_hdr_offset(skb, htype, &hoffset);
-               if (rc) {
-                       pr_info("tc action pedit bad header type specified (0x%x)\n",
-                               htype);
-                       goto bad;
-               }
+               pedit_skb_hdr_offset(skb, htype, &hoffset);
 
                if (tkey->offmask) {
                        u8 *d, _d;