From: Andi Kleen <andi@firstfloor.org> To: x86@kernel.org Cc: linux-kernel@vger.kernel.org Subject: x86: Clean up asmlinkage use Date: Mon, 5 Aug 2013 15:02:34 -0700 Message-ID: <1375740170-7446-1-git-send-email-andi@firstfloor.org> (raw) 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.
next reply index Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-08-05 22:02 Andi Kleen [this message] 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
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=1375740170-7446-1-git-send-email-andi@firstfloor.org \ --to=andi@firstfloor.org \ --cc=linux-kernel@vger.kernel.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
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