From patchwork Tue Dec 20 14:02:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Geliang Tang X-Patchwork-Id: 707455 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tjfgS6rPyz9t2T for ; Wed, 21 Dec 2016 01:05:08 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FXYsVeJ8"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934791AbcLTODv (ORCPT ); Tue, 20 Dec 2016 09:03:51 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:33890 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934512AbcLTODn (ORCPT ); Tue, 20 Dec 2016 09:03:43 -0500 Received: by mail-pg0-f67.google.com with SMTP id b1so12012542pgc.1; Tue, 20 Dec 2016 06:02:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3Ch/49WsKctivOddKaL0vdTqr1k21ewXmkMFTIPDCC4=; b=FXYsVeJ8ygxS1l2PNQAta5c2wy8a8O8qHjA0rPe+vGrb5QcKIQwGHLo7kwXSEVYSYA Tt0H+dmriI1CeLX1yBR52mkht2mQEylMtNFQx4Htp/2E2sQadypvDowSfA5vHm2IV/7I qJtsA+/2eToKxwxDS0hiTri49iYJcUhX3+ld68BMm1/sZpnA1fVfKn+jr9KA4Eq06C2n kq+3+ketU3qaGxnATv1UFknDQe9lE1JWP7Ja2iYDx0bcdvk6WNj5GvGJWJPixAiH4WyR vJ5NNV8jxy/MgWeoqAPLhzVmJ7G2JrFSumoR+m5hOswvzl7bf0mCX5lQF3s3u+A5vm+I dLFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3Ch/49WsKctivOddKaL0vdTqr1k21ewXmkMFTIPDCC4=; b=AkdFbP27WOqJ64aCc8Ztn7S4VQGYG9vUcSgvqZACJ0mwpmJMp/3lV97i8nSoAj4Yrd +UgCmVb2qc+iEgiE3arHJcJzTF7vA65YyxwYpIzJ+wMjS6jkUFJqCvzeufUd8dB1tgaw BE+0zDmuBtpV8CY1skbAQkBVKAtJGhrlzK9W750zdc4Uw9PrEQ0+urIpIpcxyuRc3hPX 0cG591BW7kkjZwT8tXHDCTBH2wvCsSa6gLsVKoXyaLgz51PpATZbu7qfZ0h/wlD/28qR A2YNHvpbaUdYVv1v3niJtcMgetbjXKdXQTnsJiMK/srTzK/IzcOsYeWg7L7CbYY7fLVW PxRA== X-Gm-Message-State: AKaTC024ItbLeJ1Lzl1EN2zDKPNYN1NnxKUBNbduCop7QnMrEirlvVZh35KOY8yH9p2FwQ== X-Received: by 10.84.225.22 with SMTP id t22mr42600175plj.76.1482242576471; Tue, 20 Dec 2016 06:02:56 -0800 (PST) Received: from localhost (li411-102.members.linode.com. [106.187.91.102]) by smtp.gmail.com with ESMTPSA id b71sm39574915pfj.62.2016.12.20.06.02.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Dec 2016 06:02:55 -0800 (PST) From: Geliang Tang To: Jamal Hadi Salim , "David S. Miller" Cc: Geliang Tang , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] net_sched: sch_fq: use rb_entry() Date: Tue, 20 Dec 2016 22:02:15 +0800 Message-Id: <6aa180710d70b09d4f81d3d219b3161077e1ff11.1482204526.git.geliangtang@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org To make the code clearer, use rb_entry() instead of container_of() to deal with rbtree. Signed-off-by: Geliang Tang Acked-by: Eric Dumazet --- net/sched/sch_fq.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/net/sched/sch_fq.c b/net/sched/sch_fq.c index 86309a3..a4f738a 100644 --- a/net/sched/sch_fq.c +++ b/net/sched/sch_fq.c @@ -136,7 +136,7 @@ static void fq_flow_set_throttled(struct fq_sched_data *q, struct fq_flow *f) struct fq_flow *aux; parent = *p; - aux = container_of(parent, struct fq_flow, rate_node); + aux = rb_entry(parent, struct fq_flow, rate_node); if (f->time_next_packet >= aux->time_next_packet) p = &parent->rb_right; else @@ -188,7 +188,7 @@ static void fq_gc(struct fq_sched_data *q, while (*p) { parent = *p; - f = container_of(parent, struct fq_flow, fq_node); + f = rb_entry(parent, struct fq_flow, fq_node); if (f->sk == sk) break; @@ -256,7 +256,7 @@ static struct fq_flow *fq_classify(struct sk_buff *skb, struct fq_sched_data *q) while (*p) { parent = *p; - f = container_of(parent, struct fq_flow, fq_node); + f = rb_entry(parent, struct fq_flow, fq_node); if (f->sk == sk) { /* socket might have been reallocated, so check * if its sk_hash is the same. @@ -424,7 +424,7 @@ static void fq_check_throttled(struct fq_sched_data *q, u64 now) q->time_next_delayed_flow = ~0ULL; while ((p = rb_first(&q->delayed)) != NULL) { - struct fq_flow *f = container_of(p, struct fq_flow, rate_node); + struct fq_flow *f = rb_entry(p, struct fq_flow, rate_node); if (f->time_next_packet > now) { q->time_next_delayed_flow = f->time_next_packet; @@ -563,7 +563,7 @@ static void fq_reset(struct Qdisc *sch) for (idx = 0; idx < (1U << q->fq_trees_log); idx++) { root = &q->fq_root[idx]; while ((p = rb_first(root)) != NULL) { - f = container_of(p, struct fq_flow, fq_node); + f = rb_entry(p, struct fq_flow, fq_node); rb_erase(p, root); fq_flow_purge(f); @@ -593,7 +593,7 @@ static void fq_rehash(struct fq_sched_data *q, oroot = &old_array[idx]; while ((op = rb_first(oroot)) != NULL) { rb_erase(op, oroot); - of = container_of(op, struct fq_flow, fq_node); + of = rb_entry(op, struct fq_flow, fq_node); if (fq_gc_candidate(of)) { fcnt++; kmem_cache_free(fq_flow_cachep, of); @@ -606,7 +606,7 @@ static void fq_rehash(struct fq_sched_data *q, while (*np) { parent = *np; - nf = container_of(parent, struct fq_flow, fq_node); + nf = rb_entry(parent, struct fq_flow, fq_node); BUG_ON(nf->sk == of->sk); if (nf->sk > of->sk)