Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp2990136ybg; Mon, 28 Oct 2019 05:47:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqxPhr1Y0ZrlNSVV8aok0po+HkDZIMuaQ9ZmAXX9136lzNNq8rn/1WZ65HSSKgHO+8wivGg6 X-Received: by 2002:aa7:ca0b:: with SMTP id y11mr19142423eds.51.1572266847447; Mon, 28 Oct 2019 05:47:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572266847; cv=none; d=google.com; s=arc-20160816; b=qoJBWeh2Gx+GdgZTlRMXCRgiwfqjuFCi9ioIa8YSpu7eUfn53d4u7Ah8w+EZNXv2Kw wrNJ5wrdvA8rETAmBS8+13xklUZl6BdAW2kM0A8xd0tpVLvOuyMDNLqhMZtBLigmMOb3 4XMJfBoNpQtuztEtCcMNAPwp/Ux/fJ8sTKsKDrZFUCXCRCXjSZt+4+ur5oi8OqY6oyFq eguynv1Lk85Y8tDAgceC9A5Wi+qqFR4RG/pvYU+3AeNsVYwl/L1TjiIlhu/SR1ALM2La 5VTzHBF/EwVw5jozrGxjufCHB8L6bwJKVQABXCHzg8Y/Vxt77fD72stu2bP2kk1168Rm pDzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=DLwdL9ui2bM2gBfqA/+b6yc5gRAqv0KcEuyb36WAyLU=; b=KlZhYaS+8Kg1jzcR08UVTABYyPidD/nLgSJbztkzm5Kwkgh5xpLMv76OSSckSdyOz6 ywCY17yC1zAtOZh0spWdtZsJd1BvdGyVAXTu0bZg1kwBVPKj1hW3E2+dSDK4enYwm/fi LOwSodH2s2YQdG6fu47AnFaGAnLkZkQzHi3yzMxN4TFY5ace6qc8Hm8dixQ18l3Ip6Gr qjGaYBaomwFFP8DXky1vuLu4djbCMh952Vg2UWlz2gnKNpzSbWnhxrIZWf9aSgsZVSRR vp6yfDKe6RYG0d/P0qfgdTjQeFAXHqexUlS27w5bVNLrGbi3m6h/Jy4DfWcb5Jlg3e/2 EZlA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q4si7722414edc.403.2019.10.28.05.47.04; Mon, 28 Oct 2019 05:47:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729865AbfJ1CPk (ORCPT + 99 others); Sun, 27 Oct 2019 22:15:40 -0400 Received: from mga17.intel.com ([192.55.52.151]:5377 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727598AbfJ1CPj (ORCPT ); Sun, 27 Oct 2019 22:15:39 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Oct 2019 19:15:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,238,1569308400"; d="scan'208";a="189497390" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by orsmga007.jf.intel.com with ESMTP; 27 Oct 2019 19:15:37 -0700 From: Wei Yang To: akpm@linux-foundation.org, peterz@infradead.org, walken@google.com, richardw.yang@linux.intel.com, dbueso@suse.de, tglx@linutronix.de Cc: linux-kernel@vger.kernel.org Subject: [Patch v2 1/2] lib/rbtree: set successor's parent unconditionally Date: Mon, 28 Oct 2019 10:14:41 +0800 Message-Id: <20191028021442.5450-1-richardw.yang@linux.intel.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Both in Case 2 and 3, we exchange n and s. This mean no matter whether child2 is NULL or not, successor's parent should be assigned to node's. This patch takes this step out to make it explicit and reduce the ambiguity. Besides, this step reduces some symbol size like rb_erase(). KERN_CONFIG upstream patched OPT_FOR_PERF 877 870 OPT_FOR_SIZE 635 621 Signed-off-by: Wei Yang --- include/linux/rbtree_augmented.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h index fdd421b8d9ae..99c42e1a74b8 100644 --- a/include/linux/rbtree_augmented.h +++ b/include/linux/rbtree_augmented.h @@ -283,14 +283,13 @@ __rb_erase_augmented(struct rb_node *node, struct rb_root *root, __rb_change_child(node, successor, tmp, root); if (child2) { - successor->__rb_parent_color = pc; rb_set_parent_color(child2, parent, RB_BLACK); rebalance = NULL; } else { unsigned long pc2 = successor->__rb_parent_color; - successor->__rb_parent_color = pc; rebalance = __rb_is_black(pc2) ? parent : NULL; } + successor->__rb_parent_color = pc; tmp = successor; } -- 2.17.1