linux/arch/x86/include/asm
Linus Torvalds a7f934d4f1 asm alternatives: remove incorrect alignment notes
On x86-64, they were just wasteful: with the explicitly added (now
unnecessary) padding, the size of the alternatives structure was 16
bytes, and an alignment of 8 bytes didn't hurt much.

However, it was still silly, since the natural size and alignment for
the structure is actually just 12 bytes, 4-byte aligned since commit
59e97e4d6f ("x86: Make alternative instruction pointers relative").
So removing the padding, and removing the extra alignment is just a good
idea.

On x86-32, the alignment of 4 bytes was correct, but was incorrectly
hardcoded as 8 bytes in <asm/alternative-asm.h>.  That header file had
used to be an x86-64 only header file, but various unification efforts
have made it be used for x86-32 too (ie the unification of rwlock and
rwsem).

That in turn caused x86-32 boot failures, because the extra alignment
would result in random zero-filled words in the altinstructions section,
causing oopses early at boot when doing alternative instruction
replacement.

So just remove all the alignment noise entirely.  It's wrong, and it's
unnecessary.  The section itself is already properly aligned by the
linker scripts, and all additions to the section had better be of the
proper 12-byte format, keeping it aligned.  So if the align directive
were to ever make a difference, that would be an indication of a serious
bug to begin with.

Reported-by: Werner Landgraf <w.landgraf@ru.r>
Acked-by: Andrew Lutomirski <luto@mit.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-15 13:28:33 -07:00
..
uv x86, UV: Correct UV2 BAU destination timeout 2011-06-21 14:50:34 +02:00
visws
xen xen/x86: replace order-based range checking of M2P table by linear one 2011-08-17 10:26:48 -04:00
a.out-core.h
a.out.h
acpi.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-05-29 11:18:09 -07:00
aes.h
agp.h
alternative-asm.h asm alternatives: remove incorrect alignment notes 2011-09-15 13:28:33 -07:00
alternative.h asm alternatives: remove incorrect alignment notes 2011-09-15 13:28:33 -07:00
amd_nb.h x86, NUMA: trivial cleanups 2011-05-02 14:18:52 +02:00
apb_timer.h Merge branch 'timers-clocksource-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-07-23 10:34:47 -07:00
apic.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
apicdef.h x86, apic: Fix spurious error interrupts triggering on all non-boot APs 2011-05-16 13:48:25 +02:00
apm.h
arch_hweight.h x86, hweight: Use a 32-bit popcnt for __arch_hweight32() 2010-05-17 15:17:16 -07:00
asm-offsets.h
asm.h x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
atomic64_32.h atomic: move atomic_add_unless to generic code 2011-07-26 16:49:47 -07:00
atomic64_64.h atomic: move atomic_add_unless to generic code 2011-07-26 16:49:47 -07:00
atomic.h atomic: cleanup asm-generic atomic*.h inclusion 2011-07-26 16:49:47 -07:00
auxvec.h
bios_ebda.h x86: Better comments for get_bios_ebda() 2011-04-29 14:13:15 -07:00
bitops.h asm-generic: add another generic ext2 atomic bitops 2011-07-26 16:49:46 -07:00
bitsperlong.h
boot.h x86: support XZ-compressed kernel 2011-01-13 08:03:25 -08:00
bootparam.h x86: Add device tree support 2011-02-23 22:27:52 +01:00
bug.h
bugs.h
byteorder.h
cache.h
cacheflush.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
calgary.h x86, iommu: Make all IOMMU's detection routines return a value. 2010-08-26 15:13:13 -07:00
calling.h x86, asm: Flip RESTORE_ARGS arguments logic 2011-06-03 14:38:53 -07:00
ce4100.h x86: ce4100: Set pci ops via callback instead of module init 2011-03-14 15:13:23 +01:00
checksum_32.h
checksum_64.h
checksum.h
clocksource.h clocksource: Change __ARCH_HAS_CLOCKSOURCE_DATA to a CONFIG option 2011-07-21 13:34:05 -07:00
cmpxchg_32.h x86: Add support for cmpxchg_double 2011-06-25 12:17:32 -07:00
cmpxchg_64.h x86: Add support for cmpxchg_double 2011-06-25 12:17:32 -07:00
cmpxchg.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cpu.h x86: Fix mwait_usable section mismatch 2011-02-14 12:08:28 +01:00
cpufeature.h asm alternatives: remove incorrect alignment notes 2011-09-15 13:28:33 -07:00
cpumask.h
cputime.h
current.h
debugreg.h x86: Use this_cpu_ops to optimize code 2010-12-30 12:20:28 +01:00
delay.h asm-generic: move archictures to common delay.h 2011-07-22 18:46:24 +02:00
desc_defs.h
desc.h x86-64: Add user_64bit_mode paravirt op 2011-08-04 16:13:49 -07:00
device.h
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h x86, NUMA: Enable emulation on 32bit too 2011-05-02 17:24:48 +02:00
dmi.h
dwarf2.h x86: Use {push,pop}{l,q}_cfi in more places 2010-09-03 08:14:11 +02:00
e820.h x86: e820: Remove conditional early mapping in parse_e820_ext 2011-02-23 22:27:52 +01:00
edac.h
efi.h x86, efi: Consolidate EFI nx control 2011-05-09 12:14:29 -07:00
elf.h
emergency-restart.h
entry_arch.h x86, mce: Replace MCE_SELF_VECTOR by irq_work 2011-06-16 12:10:08 +02:00
errno.h
fb.h
fcntl.h
fixmap.h x86-64: Give vvars their own page 2011-06-05 21:30:32 +02:00
floppy.h
frame.h x86: Unify rwlock assembly implementation 2011-07-21 09:03:31 +02:00
ftrace.h ftrace/x86: mcount offset calculation 2011-05-16 14:55:57 -04:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
gart.h x86, gart: Set DISTLBWALKPRB bit always 2011-04-18 09:26:48 -07:00
genapic.h
geode.h
gpio.h x86/gpio: Implement x86 gpio_to_irq convert function 2011-01-11 12:46:15 +01:00
hardirq.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hpet.h x86: ioapic/hpet: Convert to new chip functions 2010-10-12 16:53:37 +02:00
hugetlb.h
hw_breakpoint.h x86: Fix instruction breakpoint encoding 2010-09-17 03:24:13 +02:00
hw_irq.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
hypertransport.h
hyperv.h x86: Clean up the hypervisor layer 2010-05-07 17:13:04 -07:00
hypervisor.h xen: HVM X2APIC support 2011-01-07 10:03:50 -05:00
i387.h x86-32, fpu: Fix FPU exception handling on non-SSE systems 2011-04-06 16:53:01 -07:00
i8259.h x86: i8259: Convert to new irq_chip functions 2010-10-12 16:53:36 +02:00
ia32_unistd.h
ia32.h
idle.h x86 idle: clarify AMD erratum 400 workaround 2011-05-29 03:38:57 -04:00
inat_types.h
inat.h
init.h x86: Rename e820_table_* to pgt_buf_* 2011-02-24 14:52:18 +01:00
insn.h
inst.h
intel_scu_ipc.h Remove indirect read write api support. 2010-08-03 09:50:30 -04:00
io_apic.h x86, ioapic: Consolidate gsi routing info into 'struct ioapic' 2011-05-20 13:41:01 +02:00
io.h x86: don't include xen/xen.h in <asm/io.h> unless XEN is enabled 2011-08-03 22:00:38 -10:00
ioctl.h
ioctls.h
iomap.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
iommu_table.h x86, iommu: Update header comments with appropriate naming 2010-10-08 13:11:21 -07:00
iommu.h
ipcbuf.h
ipi.h x86: Make default_send_IPI_mask_sequence/allbutself_logical() 32bit only 2011-01-28 14:54:05 +01:00
irq_controller.h x86: dtb: Add irq domain abstraction 2011-02-23 22:27:53 +01:00
irq_regs.h
irq_remapping.h x86: Speed up the irq_remapped check in hot pathes 2010-10-12 16:53:42 +02:00
irq_vectors.h Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip 2011-08-12 20:46:24 -07:00
irq.h x86: Add device tree support 2011-02-23 22:27:52 +01:00
irqflags.h tracing, x86/irq: Do not trace arch_local_{*,irq_*}() functions 2011-07-07 19:22:32 +02:00
ist.h
jump_label.h jump label: Add _ASM_ALIGN for x86 and x86_64 2011-04-04 13:42:51 -04:00
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h ptrace: unify show_regs() prototype 2011-07-26 16:49:43 -07:00
kexec.h
kgdb.h kgdbts: unify/generalize gdb breakpoint adjustment 2011-05-26 17:12:36 -07:00
kmap_types.h
kmemcheck.h
kprobes.h
kvm_emulate.h KVM: x86 emulator: fold decode_cache into x86_emulate_ctxt 2011-07-12 13:16:09 +03:00
kvm_host.h KVM: MMU: lockless walking shadow page table 2011-07-24 11:50:38 +03:00
kvm_para.h KVM guest: KVM Steal time registration 2011-07-24 11:49:36 +03:00
kvm.h KVM: x86: XSAVE/XRSTOR live migration support 2010-08-01 10:46:37 +03:00
ldt.h
lguest_hcall.h lguest: update comments 2011-07-22 14:39:50 +09:30
lguest.h
linkage.h x86: Get rid of asmregparm 2011-05-24 14:33:35 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mach_timer.h
mach_traps.h x86, NMI: Add NMI symbol constants and rename memory parity to PCI SERR 2011-01-07 15:08:51 +01:00
math_emu.h
mc146818rtc.h
mca_dma.h
mca.h
mce.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
memblock.h x86, efi: Do not reserve boot services regions within reserved areas 2011-06-18 22:48:49 +02:00
microcode.h x86, microcode, AMD: Cleanup code a bit 2010-11-10 14:54:54 +01:00
mman.h
mmconfig.h
mmu_context.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mmu.h x86: Reorder mm_context_t to remove x86_64 alignment padding and thus shrink mm_struct 2011-05-25 16:16:41 +02:00
mmx.h
mmzone_32.h x86, mm: s/PAGES_PER_ELEMENT/PAGES_PER_SECTION/ 2011-07-12 21:58:11 -07:00
mmzone_64.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
mmzone.h
module.h x86, cpu: Move AMD Elan Kconfig under "Processor family" 2011-04-08 13:01:25 -07:00
mpspec_def.h x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion 2011-01-05 14:09:23 +01:00
mpspec.h x86: Unify cpu/apicid <-> NUMA node mapping between 32 and 64bit 2011-01-28 14:54:09 +01:00
mrst-vrtc.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
mrst.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
msgbuf.h
mshyperv.h x86: Clean up the hypervisor layer 2010-05-07 17:13:04 -07:00
msidef.h
msr-index.h Merge branch 'kvm-updates/3.1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-07-24 09:07:03 -07:00
msr.h x86, gcc-4.6: Avoid unused by set variables in rdmsr 2010-07-20 15:38:18 -07:00
mtrr.h
mutex_32.h
mutex_64.h
mutex.h
mwait.h x86, mwait: Move mwait constants to a common header file 2010-09-17 15:36:40 -07:00
nmi.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
nops.h x86, cpu: Clean up and unify the NOP selection infrastructure 2011-04-18 16:40:21 -07:00
numa_32.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numa_64.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numa.h x86, NUMA: Make numa_init_array() static 2011-05-02 17:24:48 +02:00
numaq.h x86-32, NUMA: Update numaq to use new NUMA init protocol 2011-05-02 14:18:53 +02:00
olpc_ofw.h x86, olpc: Use device tree for platform identification 2011-03-15 14:17:23 -07:00
olpc.h x86, olpc-xo1-sci: Add GPE handler and ebook switch functionality 2011-07-06 14:44:38 -07:00
page_32_types.h x86: Remove CONFIG_4KSTACKS 2010-06-29 12:12:59 +02:00
page_32.h
page_64_types.h
page_64.h
page_types.h x86-64, NUMA: Revert NUMA affine page table allocation 2011-03-04 10:26:36 +01:00
page.h x86: Document __phys_reloc_hide() usage in __pa_symbol() 2010-08-11 08:43:49 +02:00
param.h
paravirt_types.h Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip 2011-08-12 20:46:24 -07:00
paravirt.h KVM guest: Add a pv_ops stub for steal time 2011-07-14 12:59:44 +03:00
parport.h
pat.h
pci_64.h
pci_x86.h x86/PCI: Clean up pci_cache_line_size 2010-10-18 10:49:30 -04:00
pci-direct.h
pci-functions.h
pci.h x86/PCI: Remove dma32_reserve_bootmem 2011-05-10 15:43:32 -07:00
percpu.h percpu: Fixup __this_cpu_xchg* operations 2011-07-12 13:47:16 +02:00
perf_event_p4.h x86, perf: P4 PMU - Fix typos in comments and style cleanup 2011-07-21 20:41:54 +02:00
perf_event.h x86: Save stack pointer in perf live regs savings 2011-07-02 18:04:03 +02:00
pgalloc.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
pgtable_32_types.h x86: use __ASSEMBLY__ rather than __ASSEMBLER__ 2010-06-07 17:27:11 -07:00
pgtable_32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable_64_types.h
pgtable_64.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable_types.h x86-64: Map the HPET NX 2011-06-05 21:30:33 +02:00
pgtable-2level_types.h
pgtable-2level.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable-3level_types.h
pgtable-3level.h x86: Flush TLB if PGD entry is changed in i386 PAE mode 2011-03-18 11:44:01 +01:00
pgtable.h thp: don't allow transparent hugepage support without PSE 2011-01-13 17:32:45 -08:00
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
probe_roms.h x86: Introduce pci_map_biosrom() 2011-03-15 15:34:15 -07:00
processor-cyrix.h
processor-flags.h KVM: Remove RDWRGSFS bit from CR4_RESERVED_BITS 2011-07-12 13:16:22 +03:00
processor.h x86 idle: move mwait_idle_with_hints() to where it is used 2011-08-03 19:06:36 -04:00
prom.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
proto.h
ptrace-abi.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
ptrace.h x86-64: Add user_64bit_mode paravirt op 2011-08-04 16:13:49 -07:00
pvclock-abi.h x86, paravirt: don't compute pvclock adjustments if we trust the tsc 2010-05-19 11:41:05 +03:00
pvclock.h KVM: Fix instruction size issue in pvclock scaling 2011-08-30 14:42:30 +03:00
reboot_fixups.h
reboot.h x86, reboot: Move the real-mode reboot code to an assembly file 2011-02-17 21:05:34 -08:00
required-features.h x86, cpu: Support the features flags in new CPUID leaf 7 2010-07-07 17:29:18 -07:00
resource.h
resume-trace.h
rio.h
rtc.h
rwlock.h x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
rwsem.h rwsem: Move duplicate function prototypes to linux/rwsem.h 2011-01-27 12:30:39 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h
segment.h x86, asm: Fix binutils 2.16 issue with __USER32_CS 2011-06-03 14:39:14 -07:00
sembuf.h
serial.h
setup_arch.h
setup.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-05-19 18:08:06 -07:00
shmbuf.h
shmparam.h
sigcontext32.h
sigcontext.h
sigframe.h
siginfo.h
signal.h
smp.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-03-15 19:49:10 -07:00
smpboot_hooks.h x86: Serialize SMP bootup CMOS accesses on rtc_lock 2011-07-21 09:20:59 +02:00
socket.h
sockios.h
sparsemem.h
spinlock_types.h x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
spinlock.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
stackprotector.h
stacktrace.h x86: Remove warning and warning_symbol from struct stacktrace_ops 2011-05-12 15:31:28 +02:00
stat.h
statfs.h
string_32.h
string_64.h
string.h
suspend_32.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
suspend_64.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
suspend.h
svm.h KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
swab.h
swiotlb.h x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. 2010-08-26 15:13:29 -07:00
sync_bitops.h
sys_ia32.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscall.h
syscalls.h Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
system.h x86: Demacro CONFIG_PARAVIRT cpu accessors 2011-04-24 13:20:36 +02:00
tce.h
termbits.h
termios.h
thread_info.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
time.h x86: i8253: Consolidate definitions of global_clock_event 2011-06-09 15:01:40 +02:00
timer.h x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog 2010-11-18 09:08:23 +01:00
timex.h
tlb.h
tlbflush.h x86-32, mm: Add an initial page table for core bootstrapping 2010-10-20 14:23:55 -07:00
topology.h x86, NUMA: Make 32bit use common NUMA init path 2011-05-02 17:24:48 +02:00
trampoline.h x86, trampoline: Use the unified trampoline setup for ACPI wakeup 2011-02-17 21:05:06 -08:00
traps.h x86-64: Rework vsyscall emulation and add vsyscall= parameter 2011-08-10 19:26:46 -05:00
tsc.h x86-64: Move vread_tsc and vread_hpet into the vDSO 2011-07-14 17:57:05 -07:00
types.h remove dma64_addr_t 2011-03-23 19:47:18 -07:00
uaccess_32.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess_64.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess.h x86, perf: Make copy_from_user_nmi() a library function 2011-07-21 20:41:57 +02:00
ucontext.h
unaligned.h
unistd_32.h ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
unistd_64.h All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
unistd.h
user32.h
user_32.h
user_64.h
user.h
vdso.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
vga.h
vgtod.h x86-64: Move vread_tsc and vread_hpet into the vDSO 2011-07-14 17:57:05 -07:00
virtext.h
vm86.h
vmx.h KVM: nVMX: vmcs12 checks on nested entry 2011-07-12 11:45:16 +03:00
vsyscall.h x86-64: Rework vsyscall emulation and add vsyscall= parameter 2011-08-10 19:26:46 -05:00
vvar.h x86-64: Give vvars their own page 2011-06-05 21:30:32 +02:00
x2apic.h x86, x2apic: Move the common bits to x2apic.h 2011-05-20 13:41:11 +02:00
x86_init.h x86,xen: introduce x86_init.mapping.pagetable_reserve 2011-05-12 13:05:04 -04:00
xcr.h
xor_32.h
xor_64.h
xor.h
xsave.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00