Loading net/sched/cls_fw.c +13 −10 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ struct fw_head { u32 mask; bool mask_set; struct fw_filter __rcu *ht[HTSIZE]; struct rcu_head rcu; }; Loading Loading @@ -113,6 +114,14 @@ static unsigned long fw_get(struct tcf_proto *tp, u32 handle) static int fw_init(struct tcf_proto *tp) { struct fw_head *head; head = kzalloc(sizeof(struct fw_head), GFP_KERNEL); if (head == NULL) return -ENOBUFS; head->mask_set = false; rcu_assign_pointer(tp->root, head); return 0; } Loading Loading @@ -286,17 +295,11 @@ static int fw_change(struct net *net, struct sk_buff *in_skb, if (!handle) return -EINVAL; if (head == NULL) { u32 mask = 0xFFFFFFFF; if (!head->mask_set) { head->mask = 0xFFFFFFFF; if (tb[TCA_FW_MASK]) mask = nla_get_u32(tb[TCA_FW_MASK]); head = kzalloc(sizeof(struct fw_head), GFP_KERNEL); if (head == NULL) return -ENOBUFS; head->mask = mask; rcu_assign_pointer(tp->root, head); head->mask = nla_get_u32(tb[TCA_FW_MASK]); head->mask_set = true; } f = kzalloc(sizeof(struct fw_filter), GFP_KERNEL); Loading Loading
net/sched/cls_fw.c +13 −10 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ struct fw_head { u32 mask; bool mask_set; struct fw_filter __rcu *ht[HTSIZE]; struct rcu_head rcu; }; Loading Loading @@ -113,6 +114,14 @@ static unsigned long fw_get(struct tcf_proto *tp, u32 handle) static int fw_init(struct tcf_proto *tp) { struct fw_head *head; head = kzalloc(sizeof(struct fw_head), GFP_KERNEL); if (head == NULL) return -ENOBUFS; head->mask_set = false; rcu_assign_pointer(tp->root, head); return 0; } Loading Loading @@ -286,17 +295,11 @@ static int fw_change(struct net *net, struct sk_buff *in_skb, if (!handle) return -EINVAL; if (head == NULL) { u32 mask = 0xFFFFFFFF; if (!head->mask_set) { head->mask = 0xFFFFFFFF; if (tb[TCA_FW_MASK]) mask = nla_get_u32(tb[TCA_FW_MASK]); head = kzalloc(sizeof(struct fw_head), GFP_KERNEL); if (head == NULL) return -ENOBUFS; head->mask = mask; rcu_assign_pointer(tp->root, head); head->mask = nla_get_u32(tb[TCA_FW_MASK]); head->mask_set = true; } f = kzalloc(sizeof(struct fw_filter), GFP_KERNEL); Loading