|
@@ -501,7 +501,7 @@ static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h)
|
|
|
}
|
|
|
|
|
|
static int u32_replace_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h,
|
|
|
- u32 flags)
|
|
|
+ u32 flags, struct netlink_ext_ack *extack)
|
|
|
{
|
|
|
struct tcf_block *block = tp->chain->block;
|
|
|
struct tc_cls_u32_offload cls_u32 = {};
|
|
@@ -543,7 +543,7 @@ static void u32_remove_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n)
|
|
|
}
|
|
|
|
|
|
static int u32_replace_hw_knode(struct tcf_proto *tp, struct tc_u_knode *n,
|
|
|
- u32 flags)
|
|
|
+ u32 flags, struct netlink_ext_ack *extack)
|
|
|
{
|
|
|
struct tcf_block *block = tp->chain->block;
|
|
|
struct tc_cls_u32_offload cls_u32 = {};
|
|
@@ -965,7 +965,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
- err = u32_replace_hw_knode(tp, new, flags);
|
|
|
+ err = u32_replace_hw_knode(tp, new, flags, extack);
|
|
|
if (err) {
|
|
|
u32_destroy_key(tp, new, false);
|
|
|
return err;
|
|
@@ -1016,7 +1016,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
|
|
|
ht->prio = tp->prio;
|
|
|
idr_init(&ht->handle_idr);
|
|
|
|
|
|
- err = u32_replace_hw_hnode(tp, ht, flags);
|
|
|
+ err = u32_replace_hw_hnode(tp, ht, flags, extack);
|
|
|
if (err) {
|
|
|
idr_remove_ext(&tp_c->handle_idr, handle);
|
|
|
kfree(ht);
|
|
@@ -1122,7 +1122,7 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
|
|
|
struct tc_u_knode __rcu **ins;
|
|
|
struct tc_u_knode *pins;
|
|
|
|
|
|
- err = u32_replace_hw_knode(tp, n, flags);
|
|
|
+ err = u32_replace_hw_knode(tp, n, flags, extack);
|
|
|
if (err)
|
|
|
goto errhw;
|
|
|
|