From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755724AbbHYP0F (ORCPT ); Tue, 25 Aug 2015 11:26:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34071 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752945AbbHYP0C (ORCPT ); Tue, 25 Aug 2015 11:26:02 -0400 Date: Tue, 25 Aug 2015 10:25:54 -0500 From: Josh Poimboeuf To: Ingo Molnar Cc: Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, linux-kernel@vger.kernel.org, live-patching@vger.kernel.org, Michal Marek , Peter Zijlstra , Andy Lutomirski , Borislav Petkov , Linus Torvalds , Andi Kleen , Pedro Alves , Namhyung Kim , Bernd Petrovitsch , Chris J Arges , Andrew Morton , Konrad Rzeszutek Wilk , Boris Ostrovsky , David Vrabel , Jeremy Fitzhardinge , Chris Wright , Alok Kataria , Rusty Russell , Herbert Xu , "David S. Miller" , Pavel Machek , "Rafael J. Wysocki" , Len Brown , Matt Fleming Subject: Re: [PATCH v11 00/20] Compile-time stack validation Message-ID: <20150825152554.GA3724@treble.redhat.com> References: <20150825080500.GA17977@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20150825080500.GA17977@gmail.com> User-Agent: Mutt/1.5.23.1-rc1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 25, 2015 at 10:05:00AM +0200, Ingo Molnar wrote: > * Josh Poimboeuf wrote: > > lib/Kconfig.debug | 11 + > > scripts/Makefile | 1 + > > scripts/Makefile.build | 37 +- > > scripts/mod/Makefile | 2 + > > scripts/stackvalidate/Makefile | 24 + > > scripts/stackvalidate/arch-x86.c | 160 +++++ > > scripts/stackvalidate/arch.h | 44 ++ > > scripts/stackvalidate/elf.c | 427 +++++++++++++ > > scripts/stackvalidate/elf.h | 92 +++ > > scripts/stackvalidate/list.h | 217 +++++++ > > scripts/stackvalidate/special.c | 199 ++++++ > > scripts/stackvalidate/special.h | 42 ++ > > scripts/stackvalidate/stackvalidate.c | 976 ++++++++++++++++++++++++++++++ > > 43 files changed, 2803 insertions(+), 48 deletions(-) > > create mode 100644 Documentation/stack-validation.txt > > create mode 100644 arch/x86/include/asm/stackvalidate.h > > create mode 100644 include/linux/stackvalidate.h > > create mode 100644 scripts/stackvalidate/Makefile > > create mode 100644 scripts/stackvalidate/arch-x86.c > > create mode 100644 scripts/stackvalidate/arch.h > > create mode 100644 scripts/stackvalidate/elf.c > > create mode 100644 scripts/stackvalidate/elf.h > > create mode 100644 scripts/stackvalidate/list.h > > create mode 100644 scripts/stackvalidate/special.c > > create mode 100644 scripts/stackvalidate/special.h > > create mode 100644 scripts/stackvalidate/stackvalidate.c > > Btw., would you be against putting scripts/stackvalidate/ into > tools/stackvalidate/ ? > > That way it would be more generic, and could be used in a standalone fashion as > well I suspect. It would not change any of your current usage of it. > > (The other Kbuild glue changes still need to be in scripts/.) I like that idea. It could indeed be useful for any other projects which have asm code. In fact the musl project has been trying to solve similar problems with their CFI generation awk script. It does have some kernel-isms related to the reading of special sections (.altinstructions, __jump_table, etc). But that should be harmless for non-kernel code and could easily be factored out with a compile-time or cmdline flag if needed. BTW, since I'm planning on adding a CFI generation option to this tool, I wonder if "stackvalidate" is a misnomer. I can't think of anything better. Any naming ideas are welcome :-) -- Josh