if skb->sk is NULL, we can try to restore from skb->bk_classid,
because we may have saved it.

Signed-off-by: Libo Chen <clbchenlibo.c...@huawei.com>
---
 net/sched/cls_cgroup.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c
index d228a5d..6ab0e69 100644
--- a/net/sched/cls_cgroup.c
+++ b/net/sched/cls_cgroup.c
@@ -141,9 +141,10 @@ static int cls_cgroup_classify(struct sk_buff *skb, const 
struct tcf_proto *tp,
         */
        if (in_serving_softirq()) {
                /* If there is an sk_classid we'll use that. */
-               if (!skb->sk)
-                       return -1;
-               classid = skb->sk->sk_classid;
+               if (skb->sk)
+                       classid = skb->sk->sk_classid;
+               else
+                       classid = skb->backup_classid;
        }

        if (!classid)
-- 
1.8.2.2


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to