From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753498AbcG3DCo (ORCPT ); Fri, 29 Jul 2016 23:02:44 -0400 Received: from omzsmtpe02.verizonbusiness.com ([199.249.25.209]:47270 "EHLO omzsmtpe02.verizonbusiness.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751043AbcG3DCQ convert rfc822-to-8bit (ORCPT ); Fri, 29 Jul 2016 23:02:16 -0400 X-Greylist: delayed 396 seconds by postgrey-1.27 at vger.kernel.org; Fri, 29 Jul 2016 23:02:15 EDT X-IronPort-Anti-Spam-Filtered: false From: "Levin, Alexander" Cc: "linux-kernel@vger.kernel.org" , Ben Hutchings , "Levin, Alexander" X-IronPort-AV: E=Sophos;i="5.28,442,1464652800"; d="scan'208";a="736925977" To: "mingo@redhat.com" , "peterz@infradead.org" Date: Fri, 29 Jul 2016 23:02:13 -0400 Subject: [PATCH 2/8] liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain::depth Thread-Topic: [PATCH 2/8] liblockdep: Reduce MAX_LOCK_DEPTH to avoid overflowing lock_chain::depth Thread-Index: AdHqDsVKQri8fS2ZTmiELD02M+Sl9g== Message-ID: <1469847222-21313-3-git-send-email-alexander.levin@verizon.com> References: <1469847222-21313-1-git-send-email-alexander.levin@verizon.com> In-Reply-To: <1469847222-21313-1-git-send-email-alexander.levin@verizon.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ben Hutchings liblockdep has been broken since commit 75dd602a5198 ("lockdep: Fix lock_chain::base size"), as that adds a check that MAX_LOCK_DEPTH is within the range of lock_chain::depth and in liblockdep it is much too large. That should have resulted in a compiler error, but didn't because: - the check uses ARRAY_SIZE(), which isn't yet defined in liblockdep so is assumed to be an (undeclared) function - putting a function call inside a BUILD_BUG_ON() expression quietly turns it into some nonsense involving a variable-length array It did produce a compiler warning, but I didn't notice because liblockdep already produces too many warnings if -Wall is enabled (which I'll fix shortly). Even before that commit, which reduced lock_chain::depth from 8 bits to 6, MAX_LOCK_DEPTH was too large. Cc: # for versions before 4.6, use a value of 255 Signed-off-by: Ben Hutchings Signed-off-by: Sasha Levin --- tools/lib/lockdep/uinclude/linux/lockdep.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/lib/lockdep/uinclude/linux/lockdep.h b/tools/lib/lockdep/uinclude/linux/lockdep.h index c808c7d..d302142 100644 --- a/tools/lib/lockdep/uinclude/linux/lockdep.h +++ b/tools/lib/lockdep/uinclude/linux/lockdep.h @@ -8,7 +8,7 @@ #include #include -#define MAX_LOCK_DEPTH 2000UL +#define MAX_LOCK_DEPTH 63UL #define asmlinkage #define __visible -- 2.7.4