Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp2457813ybl; Sat, 24 Aug 2019 18:15:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqypNbhzBgVLmZ9FBhWPvm87etPfieDfhGoWuOzeqmFZGrRmEjXDE9z8Lmn7S7EbS1jC22dc X-Received: by 2002:a17:902:e406:: with SMTP id ci6mr11963173plb.207.1566695721782; Sat, 24 Aug 2019 18:15:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566695721; cv=none; d=google.com; s=arc-20160816; b=mb3tXiNBV8hqVo6wWNwL/K4naYt5Nxlovucvbc/tc1csmp74zZ3sajVh2DUnNju4ie 7STpgbQxEqOiUPAk+Py/unoZ6AVcQd2MdGfUFs8o0Li/2O7LhzVmZEMx5CSXT8Fz9OdR Wg9zqIXWlQBOuZhAdh7exw3IlitxOKHcM5YRPkiE84Bq3Vm0868dappMrGAoupjJpKf5 q3BAo06fOXk1javtmqD/6asy/s0LUlFZfN9Nn2HwodJzGQ8Fr1eNo0vbreIC5SKR3oo/ PqlFvlbT2Q8XvI3RWwG1OVi4yoAMHFb1aFSnq+T6oL9j3dqoq7kCZKTN9/8Yq9GLkfV5 xXbw== 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=einH7m00Ea6ld3UGBLBrtUGreY39EcXUBHCwgz76kNo=; b=mMZeuYKAfGRaSwFOEt9IvXFtiErts8mFKKVKyIsm1FxybGUMR5/3ncjNwaH/t5YcqA 9b1kZutrM38cbSEdswO8LT7qXCFL4Hz2N1OolwO037kCUZNJzeXr0otDY4jciXjPJ76j rbXvkUNMep0ERuYnFwCvwKG45pi89y/NGnwgHClCHvofdIJc7Dw/kY1SZgY4xR4veKe5 4ugp32YeftCkJvN3z1TIxg9edf3iRWV56Atm7zJmmjjmSOfOHthj2+LfMbvFAX6t5kXt bedNShMZSCPuNLBLzzg27ddEDpIzzshSlgH7iDmWZnXJozaonDfi+GYLZ/ATwLzkMeEE io9g== 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 x17si6726595pfr.167.2019.08.24.18.15.06; Sat, 24 Aug 2019 18:15:21 -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 S1728332AbfHYBKi (ORCPT + 99 others); Sat, 24 Aug 2019 21:10:38 -0400 Received: from mga07.intel.com ([134.134.136.100]:4487 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728214AbfHYBKh (ORCPT ); Sat, 24 Aug 2019 21:10:37 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Aug 2019 18:10:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,427,1559545200"; d="scan'208";a="204158112" Received: from richard.sh.intel.com (HELO localhost) ([10.239.159.54]) by fmsmga004.fm.intel.com with ESMTP; 24 Aug 2019 18:10:35 -0700 From: Wei Yang To: akpm@linux-foundation.org, gregkh@linuxfoundation.org, dbueso@suse.de, linux-kernel@vger.kernel.org Cc: Wei Yang Subject: [PATCH] lib/rbtree: set successor's parent unconditionally Date: Sun, 25 Aug 2019 09:10:10 +0800 Message-Id: <20190825011010.31072-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 179faab29f52..8fcddfef7876 100644 --- a/include/linux/rbtree_augmented.h +++ b/include/linux/rbtree_augmented.h @@ -237,14 +237,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