All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Poimboeuf <jpoimboe@redhat.com>
To: Mathias Krause <minipli@ld-linux.so>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	live-patching@vger.kernel.org, Michal Marek <mmarek@suse.cz>,
	Peter Zijlstra <peterz@infradead.org>,
	Andy Lutomirski <luto@kernel.org>, Borislav Petkov <bp@alien8.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>, Pedro Alves <palves@redhat.com>,
	Namhyung Kim <namhyung@gmail.com>,
	Bernd Petrovitsch <bernd@petrovitsch.priv.at>,
	Chris J Arges <chris.j.arges@canonical.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH v13 13/23] x86/asm/crypto: Create stack frames in aesni-intel_asm.S
Date: Thu, 1 Oct 2015 12:51:13 -0500	[thread overview]
Message-ID: <20151001175113.GC4269@treble.redhat.com> (raw)
In-Reply-To: <20151001173654.GA15578@ld-linux.so>

On Thu, Oct 01, 2015 at 07:36:54PM +0200, Mathias Krause wrote:
> On Do, Okt 01, 2015 at 08:29:50 -0500, Josh Poimboeuf wrote:
> > On Thu, Oct 01, 2015 at 08:10:26AM +0200, minipli@ld-linux.so wrote:
> > > On Tue, Sep 22, 2015 at 10:47:04AM -0500, Josh Poimboeuf wrote:
> > > >  ENTRY(aesni_set_key)
> > > > +	FRAME_BEGIN
> > > >  #ifndef __x86_64__
> > > >  	pushl KEYP
> > > >  	movl 8(%esp), KEYP		# ctx
> > > 
> > > This will break 32 bit builds using the aesni-intel.ko module. You need
> > > to adjust the esp-based offsets for the non-x86_64 case, as FRAME_BEGIN
> > > may do another push.
> > > 
> > > How about adding a FRAME_OFFSET() macro to <asm/frame.h> to wrap the
> > > offsets?:
> > > 
> > > #ifdef CONFIG_FRAME_POINTER
> > > # define FRAME_OFFSET(x)	((x) + (BITS_PER_LONG / 8))
> > > #else
> > > # define FRAME_OFFSET(x)	(x)
> > > #endif
> > > 
> > > And using them like this:
> > > 
> > > 	movl FRAME_OFFSET(8)(%esp), KEYP		# ctx
> > 
> > Ah, right.  The 32-bit ABI passes arguments on the stack instead of via
> > registers.
> > 
> > For now, I'm inclined to just make FRAME_BEGIN and FRAME_END do nothing
> > on 32-bit.  We're only doing stack validation on x86_64 and I don't know
> > if anybody cares about frame pointers on 32-bit at this point.
> 
> Well, we had issues in the past, especially in that very module, but
> only on 32 bit systems. So it would be nice to get frame pointers right
> for 32 bit, too.

Ok, I'll make your suggested changes for this file with FRAME_OFFSET.

(But note that stacktool doesn't currently support 32 bit so it won't
detect any frame pointer issues in 32 bit code.)

-- 
Josh

  reply	other threads:[~2015-10-01 17:51 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22 15:46 [PATCH v13 00/23] Compile-time stack metadata validation Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 01/23] tools: Fix formatting of the "make -C tools" help message Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 02/23] x86/asm: Frame pointer macro cleanup Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 03/23] x86/asm: Add C versions of frame pointer macros Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 04/23] x86/stacktool: Compile-time stack metadata validation Josh Poimboeuf
2015-09-23 11:38   ` Jiri Slaby
2015-09-23 11:40     ` Jiri Slaby
2015-09-23 12:42       ` [PATCH v13.1 " Josh Poimboeuf
2015-10-01 14:50         ` Chris J Arges
2015-10-01 15:25           ` Josh Poimboeuf
2015-10-01 15:38             ` Chris J Arges
2015-09-22 15:46 ` [PATCH v13 05/23] x86/stacktool: Add file and directory ignores Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 06/23] x86/stacktool: Add ignore macros Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 07/23] x86/xen: Add stack frame dependency to hypercall inline asm calls Josh Poimboeuf
2015-09-22 15:46 ` [PATCH v13 08/23] x86/paravirt: Add stack frame dependency to PVOP " Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 09/23] x86/paravirt: Create a stack frame in PV_CALLEE_SAVE_REGS_THUNK Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 10/23] x86/amd: Set ELF function type for vide() Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 11/23] x86/reboot: Add ljmp instructions to stacktool whitelist Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 12/23] x86/xen: Add xen_cpuid() and xen_setup_gdt() to stacktool whitelists Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 13/23] x86/asm/crypto: Create stack frames in aesni-intel_asm.S Josh Poimboeuf
2015-10-01  6:10   ` minipli
2015-10-01 13:29     ` Josh Poimboeuf
2015-10-01 17:36       ` Mathias Krause
2015-10-01 17:51         ` Josh Poimboeuf [this message]
2015-09-22 15:47 ` [PATCH v13 14/23] x86/asm/crypto: Move .Lbswap_mask data to .rodata section Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 15/23] x86/asm/crypto: Move jump_table " Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 16/23] x86/asm/crypto: Create stack frames in clmul_ghash_mul/update() Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 17/23] x86/asm/entry: Create stack frames in thunk functions Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 18/23] x86/asm/acpi: Create a stack frame in do_suspend_lowlevel() Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 19/23] x86/asm: Create stack frames in rwsem functions Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 20/23] x86/asm/efi: Create a stack frame in efi_call() Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 21/23] x86/asm/power: Create stack frames in hibernate_asm_64.S Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 22/23] x86/uaccess: Add stack frame output operand in get_user inline asm Josh Poimboeuf
2015-09-22 15:47 ` [PATCH v13 23/23] x86/stacktool: Ignore head_$(BITS) files Josh Poimboeuf
2015-09-28 13:45 ` [PATCH v13 00/23] Compile-time stack metadata validation Josh Poimboeuf
2015-10-12  7:41   ` Ingo Molnar
2015-10-12 14:23     ` Josh Poimboeuf
2015-11-11 18:14       ` Josh Poimboeuf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151001175113.GC4269@treble.redhat.com \
    --to=jpoimboe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=bernd@petrovitsch.priv.at \
    --cc=bp@alien8.de \
    --cc=chris.j.arges@canonical.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=live-patching@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=minipli@ld-linux.so \
    --cc=mmarek@suse.cz \
    --cc=namhyung@gmail.com \
    --cc=palves@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.