[NET_SCHED]: Convert packet schedulers from rtnetlink to new netlink API
[firefly-linux-kernel-4.4.55.git] / net / sched / act_police.c
index 6085be5784598e1b5c40e712d80b24d2d6643209..07ffdf9c5e59adfd1b771b33cc1da012d1c40807 100644 (file)
@@ -21,8 +21,8 @@
 #include <net/act_api.h>
 #include <net/netlink.h>
 
-#define L2T(p,L)   ((p)->tcfp_R_tab->data[(L)>>(p)->tcfp_R_tab->rate.cell_log])
-#define L2T_P(p,L) ((p)->tcfp_P_tab->data[(L)>>(p)->tcfp_P_tab->rate.cell_log])
+#define L2T(p,L)   qdisc_l2t((p)->tcfp_R_tab, L)
+#define L2T_P(p,L) qdisc_l2t((p)->tcfp_P_tab, L)
 
 #define POL_TAB_MASK     15
 static struct tcf_common *tcf_police_ht[POL_TAB_MASK + 1];
@@ -56,7 +56,7 @@ static int tcf_act_police_walker(struct sk_buff *skb, struct netlink_callback *c
        int err = 0, index = -1, i = 0, s_i = 0, n_i = 0;
        struct rtattr *r;
 
-       read_lock(&police_lock);
+       read_lock_bh(&police_lock);
 
        s_i = cb->args[0];
 
@@ -85,7 +85,7 @@ static int tcf_act_police_walker(struct sk_buff *skb, struct netlink_callback *c
                }
        }
 done:
-       read_unlock(&police_lock);
+       read_unlock_bh(&police_lock);
        if (n_i)
                cb->args[0] += n_i;
        return n_i;
@@ -174,12 +174,12 @@ static int tcf_act_police_locate(struct rtattr *rta, struct rtattr *est,
 override:
        if (parm->rate.rate) {
                err = -ENOMEM;
-               R_tab = qdisc_get_rtab(&parm->rate, tb[TCA_POLICE_RATE-1]);
+               R_tab = qdisc_get_rtab(&parm->rate, (struct nlattr *)tb[TCA_POLICE_RATE-1]);
                if (R_tab == NULL)
                        goto failure;
                if (parm->peakrate.rate) {
                        P_tab = qdisc_get_rtab(&parm->peakrate,
-                                              tb[TCA_POLICE_PEAKRATE-1]);
+                                              (struct nlattr *)tb[TCA_POLICE_PEAKRATE-1]);
                        if (P_tab == NULL) {
                                qdisc_put_rtab(R_tab);
                                goto failure;
@@ -216,7 +216,7 @@ override:
        if (est)
                gen_replace_estimator(&police->tcf_bstats,
                                      &police->tcf_rate_est,
-                                     &police->tcf_lock, est);
+                                     &police->tcf_lock, (struct nlattr *)est);
 
        spin_unlock_bh(&police->tcf_lock);
        if (ret != ACT_P_CREATED)