thermal: rockchip: optimize sensor auto accessing period
[firefly-linux-kernel-4.4.55.git] / net / netfilter / nft_redir.c
index d7e9e93a4e90f498f7a002c33840c928a3ab17e2..03f7bf40ae752d3c8d48425abc5611e4a2af2b63 100644 (file)
@@ -44,25 +44,28 @@ int nft_redir_init(const struct nft_ctx *ctx,
                   const struct nlattr * const tb[])
 {
        struct nft_redir *priv = nft_expr_priv(expr);
+       unsigned int plen;
        int err;
 
        err = nft_redir_validate(ctx, expr, NULL);
        if (err < 0)
                return err;
 
+       plen = FIELD_SIZEOF(struct nf_nat_range, min_addr.all);
        if (tb[NFTA_REDIR_REG_PROTO_MIN]) {
                priv->sreg_proto_min =
-                       ntohl(nla_get_be32(tb[NFTA_REDIR_REG_PROTO_MIN]));
+                       nft_parse_register(tb[NFTA_REDIR_REG_PROTO_MIN]);
 
-               err = nft_validate_input_register(priv->sreg_proto_min);
+               err = nft_validate_register_load(priv->sreg_proto_min, plen);
                if (err < 0)
                        return err;
 
                if (tb[NFTA_REDIR_REG_PROTO_MAX]) {
                        priv->sreg_proto_max =
-                               ntohl(nla_get_be32(tb[NFTA_REDIR_REG_PROTO_MAX]));
+                               nft_parse_register(tb[NFTA_REDIR_REG_PROTO_MAX]);
 
-                       err = nft_validate_input_register(priv->sreg_proto_max);
+                       err = nft_validate_register_load(priv->sreg_proto_max,
+                                                        plen);
                        if (err < 0)
                                return err;
                } else {
@@ -85,11 +88,11 @@ int nft_redir_dump(struct sk_buff *skb, const struct nft_expr *expr)
        const struct nft_redir *priv = nft_expr_priv(expr);
 
        if (priv->sreg_proto_min) {
-               if (nla_put_be32(skb, NFTA_REDIR_REG_PROTO_MIN,
-                                htonl(priv->sreg_proto_min)))
+               if (nft_dump_register(skb, NFTA_REDIR_REG_PROTO_MIN,
+                                     priv->sreg_proto_min))
                        goto nla_put_failure;
-               if (nla_put_be32(skb, NFTA_REDIR_REG_PROTO_MAX,
-                                htonl(priv->sreg_proto_max)))
+               if (nft_dump_register(skb, NFTA_REDIR_REG_PROTO_MAX,
+                                     priv->sreg_proto_max))
                        goto nla_put_failure;
        }