Received: by 10.192.165.148 with SMTP id m20csp2949783imm; Sun, 22 Apr 2018 20:08:10 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/xaPNuNz+MdnHxyN+VKbwhq1MBM2Ii+UCW9eorbEx33ebUVaMURxmgB14tHsR/f+JtN/k/ X-Received: by 10.167.131.92 with SMTP id z28mr9813264pfm.237.1524452890298; Sun, 22 Apr 2018 20:08:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524452890; cv=none; d=google.com; s=arc-20160816; b=V6xgI/ETbIMisupEVMWBNJ3fMGsNvl3gevZPNarV2wIyXm44M0ddmPaQlrhU9bYk9Z yX969xTWH+AqrdyGbN8sFkZsAyHL0JEhXuwz6r6e4qa3sAtEjVQB57rJ/Dn3q6S8ivFl G5jiJgSg5yZTwctylApa/2J73Uc3R6WzjZa3weLt9wkLfcARjVfHUF37kI2NOip5VEpH wbw9yLCMlHTHKOOuO9WcMGTUUMPyOFhVnnKjpOIBosxdqCless6xEgR9P3YhyKxDmDzw oR0plv+zx1kwNL+lnPKhiGb5O4LMXQLSU8CNoc6fiXsFaD4HMj7zG00OPEtx2c1pp5bQ B+Pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:references:in-reply-to:date :subject:cc:to:from:arc-authentication-results; bh=LXwx70uXb90eGaPFrypWpkYUNVRXNjKox6FoRQVZo4c=; b=oQFHcEF77yEB07GVeYLLdwdO7cgT8AQ3P/WbD2xyMTh8i2gTwhlWSEqbiCb0f09G5R vpKmfDY/unIeb/Ro01Y6c3RYqW/lG7HIMeecPn4l2bZCEJ+6sMCDwL43hdVY3yRuW3LZ 6uN2DN01cR/OJSsDEV6O8UhzcCOed5eyYdAs4qlX1ThbVbe1+23bWnj7Om4waQU92pCX HME29ZpV9SXZt8Gr6/g0Ll3gBO3Q/VvzAcP30ycPvePcB//tdTTWHkjBWIXMZPu1qLT1 S5s5XProa+lZ3dIWQiCEcjK5UcRwIuC5hUC9rRBbSHQdYOkEDQV8coILZ3sIVKTbojWP E3hQ== 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=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 38-v6si11144617pln.390.2018.04.22.20.07.56; Sun, 22 Apr 2018 20:08:10 -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=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754177AbeDWDEa (ORCPT + 99 others); Sun, 22 Apr 2018 23:04:30 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:42502 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753976AbeDWDCk (ORCPT ); Sun, 22 Apr 2018 23:02:40 -0400 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w3N32Hxh128924 for ; Sun, 22 Apr 2018 23:02:40 -0400 Received: from e16.ny.us.ibm.com (e16.ny.us.ibm.com [129.33.205.206]) by mx0a-001b2d01.pphosted.com with ESMTP id 2hh6v5rkqu-1 (version=TLSv1.2 cipher=AES256-SHA256 bits=256 verify=NOT) for ; Sun, 22 Apr 2018 23:02:39 -0400 Received: from localhost by e16.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sun, 22 Apr 2018 23:02:38 -0400 Received: from b01cxnp22035.gho.pok.ibm.com (9.57.198.25) by e16.ny.us.ibm.com (146.89.104.203) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Sun, 22 Apr 2018 23:02:33 -0400 Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com [9.57.199.108]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w3N32VSF53346360; Mon, 23 Apr 2018 03:02:32 GMT Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7ABEFB2050; Mon, 23 Apr 2018 00:04:35 -0400 (EDT) Received: from paulmck-ThinkPad-W541 (unknown [9.85.149.45]) by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP id 48182B2054; Mon, 23 Apr 2018 00:04:35 -0400 (EDT) Received: by paulmck-ThinkPad-W541 (Postfix, from userid 1000) id 5207E16C91FB; Sun, 22 Apr 2018 20:03:45 -0700 (PDT) From: "Paul E. McKenney" To: linux-kernel@vger.kernel.org Cc: mingo@kernel.org, jiangshanlai@gmail.com, dipankar@in.ibm.com, akpm@linux-foundation.org, mathieu.desnoyers@efficios.com, josh@joshtriplett.org, tglx@linutronix.de, peterz@infradead.org, rostedt@goodmis.org, dhowells@redhat.com, edumazet@google.com, fweisbec@gmail.com, oleg@redhat.com, joel.opensrc@gmail.com, torvalds@linux-foundation.org, npiggin@gmail.com, "Paul E. McKenney" Subject: [PATCH tip/core/rcu 17/21] rcu: Make rcu_start_this_gp() check for out-of-range requests Date: Sun, 22 Apr 2018 20:03:40 -0700 X-Mailer: git-send-email 2.5.2 In-Reply-To: <20180423030258.GA23370@linux.vnet.ibm.com> References: <20180423030258.GA23370@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18042303-0024-0000-0000-0000034CD032 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008903; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000257; SDB=6.01021898; UDB=6.00521542; IPR=6.00801134; MB=3.00020719; MTD=3.00000008; XFM=3.00000015; UTC=2018-04-23 03:02:37 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18042303-0025-0000-0000-000047C2E84C Message-Id: <1524452624-27589-17-git-send-email-paulmck@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-04-23_01:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1804230032 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If rcu_start_this_gp() is invoked with a requested grace period more than three in the future, then either the ->need_future_gp[] array needs to be bigger or the caller needs to be repaired. This commit therefore adds a WARN_ON_ONCE() checking for this condition. Signed-off-by: Paul E. McKenney --- kernel/rcu/tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index d3c769502929..07bccb1f0c87 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1698,6 +1698,8 @@ static bool rcu_start_this_gp(struct rcu_node *rnp, struct rcu_data *rdp, for (rnp_root = rnp; 1; rnp_root = rnp_root->parent) { if (rnp_root != rnp) raw_spin_lock_rcu_node(rnp_root); + WARN_ON_ONCE(ULONG_CMP_LT(rnp_root->gpnum + + need_future_gp_mask(), c)); if (need_future_gp_element(rnp_root, c) || ULONG_CMP_GE(rnp_root->gpnum, c) || (rnp != rnp_root && -- 2.5.2