LKML Archive on lore.kernel.org
 help / color / Atom feed
* x86: Clean up asmlinkage use
@ 2013-08-05 22:02 Andi Kleen
  2013-08-05 22:02 ` [PATCH 01/16] x86: Fix sys_call_table type in asm/syscall.h v2 Andi Kleen
                   ` (15 more replies)
  0 siblings, 16 replies; 37+ messages in thread
From: Andi Kleen @ 2013-08-05 22:02 UTC (permalink / raw)
  To: x86; +Cc: linux-kernel

This patchkit makes the use of asmlinkage consistent in arch/x86
Originally arch/x86 was (mostly) fully annotated with asmlinkage, but 
this has bitrotted over time.

These changes were originally part of my LTO patchkit. In the interest
of making it smaller, I'm posting them separately, as they can be
considered cleanups.

By itself they do not improve anything in the existing kernel,
except for making things more consistent.

They may be useful for other global compile time instrumentation tools
to indicate clearly that some function/variable can be changed
outside their view.

---

The goal is to mark every function or variable that can be called
from assembler. asmlinkage on 32bit includes regparm(0) so changes
semantics. Since I didn't want to audit every caller and make
this patchkit a nop by itself, I did not add new asmlinkage
to 32bit functions that take parameters. So no existing function
switches from regparm(3) to (0).

Instead every function with parameter (and variables) becomes
__visible. This is roughly equivalent now to the old "asmregparm"
(which was removed some time ago), except it also works for 
variables.

So in summary the changes are:
- Mark every function without arguments (or 64bit only) 
that is used by assembler asmlinkage
- Mark every function with parameters or variables 
that is used by assembler __visible.

I also included a few related fixes with inline assembler
and a type fix for the syscall table.


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, back to index

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-05 22:02 x86: Clean up asmlinkage use Andi Kleen
2013-08-05 22:02 ` [PATCH 01/16] x86: Fix sys_call_table type in asm/syscall.h v2 Andi Kleen
2013-08-06 21:42   ` [tip:x86/asmlinkage] x86: Fix sys_call_table type in asm/ syscall.h tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 02/16] x86, asmlinkage: Change dotraplinkage into __visible on 32bit v2 Andi Kleen
2013-08-06 21:42   ` [tip:x86/asmlinkage] x86, asmlinkage: Change dotraplinkage into __visible on 32bit tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 03/16] x86, asmlinkage: Make all interrupt handlers asmlinkage / __visible Andi Kleen
2013-08-06 21:07   ` H. Peter Anvin
2013-08-06 21:24     ` H. Peter Anvin
2013-08-06 21:43   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 04/16] x86, asmlinkage: Make _*_start_kernel visible Andi Kleen
2013-08-06 21:43   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 05/16] x86, asmlinkage: Make 32bit/64bit __switch_to visible Andi Kleen
2013-08-06 21:43   ` [tip:x86/asmlinkage] x86, asmlinkage: Make 32bit/ 64bit " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 06/16] x86, asmlinkage: Make various syscalls asmlinkage Andi Kleen
2013-08-06 21:43   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 07/16] x86, asmlinkage: Make kprobes code visible and fix assembler code Andi Kleen
2013-08-06 21:43   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-07  3:55     ` Masami Hiramatsu
2013-08-05 22:02 ` [PATCH 08/16] x86, asmlinkage, kexec: Drop bogus asmlinkage in machine_kexec_32 Andi Kleen
2013-08-05 23:03   ` H. Peter Anvin
2013-08-05 23:10     ` Andi Kleen
2013-08-05 22:02 ` [PATCH 09/16] x86, asmlinkage: Make several variables used from assembler/linker script visible Andi Kleen
2013-08-06 21:43   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 10/16] x86, asmlinkage: Make syscall tables visible Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 11/16] x86, asmlinkage, apm: Make APM data structure used from assembler visible Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 12/16] x86, asmlinkage, paravirt: Add __visible/asmlinkage to xen paravirt ops Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] x86, asmlinkage, paravirt: Add __visible/ asmlinkage " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 13/16] x86, asmlinkage: Make 64bit checksum functions visible Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 14/16] x86, asmlinkage: Make dump_stack visible Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 15/16] x86, asmlinkage, power: Make various symbols used by the suspend asm code visible Andi Kleen
2013-08-06 21:44   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen
2013-08-05 22:02 ` [PATCH 16/16] x86, asmlinkage, vdso: Mark vdso variables __visible Andi Kleen
2013-08-06 21:45   ` [tip:x86/asmlinkage] " tip-bot for Andi Kleen

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git