From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756644AbaIKPoI (ORCPT ); Thu, 11 Sep 2014 11:44:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:41665 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750852AbaIKPoG (ORCPT ); Thu, 11 Sep 2014 11:44:06 -0400 From: Aaron Tomlin To: peterz@infradead.org Cc: mingo@redhat.com, mingo@kernel.com, dzickus@redhat.com, bmr@redhat.com, jcastillo@redhat.com, atomlin@redhat.com, oleg@redhat.com, pzijlstr@redhat.com, riel@redhat.com, prarit@redhat.com, jgh@redhat.com, linux-kernel@vger.kernel.org, tglx@linutronix.de, x86@kernel.org, rostedt@goodmis.org, hannes@cmpxchg.org, aneesh.kumar@linux.vnet.ibm.com, akpm@linux-foundation.org, akpm@google.com, linuxppc-dev@lists.ozlabs.org, minchan@kernel.org Subject: [PATCH v3 0/3] sched: Always check the integrity of the canary Date: Thu, 11 Sep 2014 16:41:25 +0100 Message-Id: <1410450088-18236-1-git-send-email-atomlin@redhat.com> In-Reply-To: <1410255749-2956-1-git-send-email-atomlin@redhat.com> References: <1410255749-2956-1-git-send-email-atomlin@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Peter, Please let me know if this iteration is satisfactory. Thanks. Currently in the event of a stack overrun a call to schedule() does not check for this type of corruption. This corruption is often silent and can go unnoticed. However once the corrupted region is examined at a later stage, the outcome is undefined and often results in a sporadic page fault which cannot be handled. The first patch adds a canary to init_task's end of stack. While the second patch provides a helper to determine the integrity of the canary. The third checks for a stack overrun and takes appropriate action since the damage is already done, there is no point in continuing. Changes since v2: * Use BUG_ON in schedule_debug() - Peter Zijlstra * Use a more explicit function name for setting the canary - Chuck Ebbert Changes since v1: * Rebased against v3.17-rc4 * Add a canary to init_task - Oleg Nesterov * Fix various code formatting issues - Peter Zijlstra * Introduce Kconfig option - Peter Zijlstra Aaron Tomlin (3): init/main.c: Give init_task a canary sched: Add helper for task stack page overrun checking sched: BUG when stack end location is over written arch/powerpc/mm/fault.c | 5 +---- arch/x86/mm/fault.c | 5 +---- include/linux/sched.h | 4 ++++ init/main.c | 1 + kernel/fork.c | 12 +++++++++--- kernel/sched/core.c | 3 +++ kernel/trace/trace_stack.c | 4 +--- lib/Kconfig.debug | 12 ++++++++++++ 8 files changed, 32 insertions(+), 14 deletions(-) -- 1.9.3