android_kernel_xiaomi_sm8350/include/asm-x86
Suresh Siddha 871de93903 x86: fix 64-bit asm NOPS for CONFIG_GENERIC_CPU
ASM_NOP's for 64-bit kernel with CONFIG_GENERIC_CPU is broken
with the recent x86 nops merge. They were using GENERIC_NOPS
which will truncate the upper 32bits of %rsi, because of the missing
64bit rex prefix.

For now, fall back ASM NOPS for generic cpu to K8 NOPS, similar
to the code before the wrong x86 nop merge.

This should resolve the crash seen by Ingo on a test-system:

BUG: unable to handle kernel paging request at 00000000d80d8ee8
IP: [<ffffffff802121af>] save_i387_ia32+0x61/0xd8
PGD b8e0067 PUD 51490067 PMD 0
Oops: 0000 [1] SMP
CPU 2
Modules linked in:
Pid: 3871, comm: distcc Not tainted 2.6.25-rc7-sched-devel.git-x86-latest.git #359
RIP: 0010:[<ffffffff802121af>]  [<ffffffff802121af>] save_i387_ia32+0x61/0xd8
RSP: 0000:ffff81003abd3cb8  EFLAGS: 00010246
RAX: ffff810082e93400 RBX: 00000000ffc37f84 RCX: ffff8100d80d8ee0
RDX: 0000000000000000 RSI: 00000000d80d8ee0 RDI: ffff810082e93400
RBP: 00000000ffc37fdc R08: 00000000ffc37f88 R09: 0000000000000008
R10: ffff81003abd2000 R11: 0000000000000000 R12: ffff810082e93400
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff81011fb12dc0(0063) knlGS:00000000f7f1a6c0
CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000d80d8ee8 CR3: 0000000076922000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process distcc (pid: 3871, threadinfo ffff81003abd2000, task ffff8100d80d8ee0)
Stack:  ffff8100bb670380 ffffffff8026de50 0000000000000118 0000000000000002
 0000000000000002 ffff81003abd3e68 ffff81003abd3ed8 ffff81003abd3de8
 ffff81003abd3d18 ffffffff80229785 ffff8100d80d8ee0 ffff810001041280
Call Trace:
 [<ffffffff8026de50>] ? __generic_file_aio_write_nolock+0x343/0x377
 [<ffffffff80229785>] ? update_curr+0x54/0x64
 [<ffffffff80227cd3>] ? ia32_setup_sigcontext+0x125/0x1d2
 [<ffffffff8022839f>] ? ia32_setup_frame+0x73/0x1a5
 [<ffffffff8020b2a5>] ? do_notify_resume+0x1aa/0x7db
 [<ffffffff8024ae8c>] ? getnstimeofday+0x31/0x85
 [<ffffffff80249858>] ? ktime_get_ts+0x17/0x48
 [<ffffffff80249933>] ? ktime_get+0xc/0x41
 [<ffffffff8024973e>] ? hrtimer_nanosleep+0x75/0xd5
 [<ffffffff80249261>] ? hrtimer_wakeup+0x0/0x21
 [<ffffffff8020bfbc>] ? int_signal+0x12/0x17
 [<ffffffff8030e6b3>] ? dummy_file_free_security+0x0/0x1

Code: a6 08 05 00 00 f6 40 14 01 74 34 4c 89 e7 48 0f ae 07 48 8b 86 08 05 00 00 80 78 02 00 79 02 db e2 90 8d b4 26 00 00 00 00 89 f6 <48> 8b 46 08 83 60 14 fe 0f 20 c0 48 83 c8 08 0f 22 c0 eb 07 c6 

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-04-07 21:09:14 +02:00
..
mach-bigsmp x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-default x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-es7000 x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-generic x86: add generic GPIO support to x86 2008-01-30 13:33:35 +01:00
mach-numaq x86: move NUMAQ io handling into arch/x86/pci/numa.c 2008-02-04 16:48:03 +01:00
mach-rdc321x rdc321x: GPIO routines bugfixes 2008-03-27 16:08:45 +01:00
mach-summit x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-visws
mach-voyager time: delete comments that refer to noexistent symbols 2008-02-03 16:20:13 +02:00
xen
a.out-core.h aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT 2008-02-08 09:22:30 -08:00
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
acpi.h x86: fix sparse warnings in acpi/bus.c 2008-02-09 23:24:08 +01:00
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
alternative-asm.h
alternative.h x86: actually merge <asm/alternative.h> 2008-01-30 13:30:30 +01:00
apic.h x86: adjust enable_NMI_through_LVT0() 2008-01-30 13:31:24 +01:00
apicdef.h x86: extended interrupt LVT support for AMD Barcelona 2008-01-30 13:30:40 +01:00
arch_hooks.h x86: move debug related declarations to kdebug.h 2008-01-30 13:30:17 +01:00
asm.h x86: add _ASM_EXTABLE macro to <asm/asm.h> 2008-02-04 16:47:56 +01:00
atomic_32.h
atomic_64.h
atomic.h
auxvec.h
bitops_32.h x86: partial unification of asm-x86/bitops.h 2008-01-30 13:30:55 +01:00
bitops_64.h iommu sg: kill __clear_bit_string and find_next_zero_string 2008-02-05 09:44:11 -08:00
bitops.h x86: change bitwise operations to get a void parameter. 2008-01-30 13:31:31 +01:00
boot.h
bootparam.h x86: EFI runtime service support 2008-01-30 13:31:19 +01:00
bug.h x86: nuke a ton of unused exports 2008-01-30 13:30:28 +01:00
bugs.h x86: add include to cpu/intel.c 2008-02-04 16:48:04 +01:00
byteorder.h x86: fix asm-x86/byteorder.h for userspace export 2008-01-01 19:12:15 +01:00
cache.h
cacheflush.h x86: include proper prototypes for rodata_test 2008-02-14 23:30:20 +01:00
calgary.h
calling.h x86: clean up include/asm-x86/calling.h 2008-01-30 13:32:49 +01:00
checksum_32.h
checksum_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
checksum.h
cmpxchg_32.h x86: cast cmpxchg and cmpxchg_local result for 386 and 486 2008-03-21 17:06:15 +01:00
cmpxchg_64.h Add cmpxchg64 and cmpxchg64_local to x86_64 2008-02-07 08:42:31 -08:00
cmpxchg.h
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
cpu.h x86: avoid section mismatch involving arch_register_cpu 2008-02-01 17:49:43 +01:00
cpufeature.h x86: add feature macros for the gbpages cpuid bit 2008-02-04 16:48:09 +01:00
cputime.h
current_32.h
current_64.h
current.h
debugreg.h
delay.h Fix __const_udelay declaration and definition mismatches 2008-02-06 10:41:06 -08:00
desc_defs.h x86: move _set_gate and its users to a common location 2008-01-30 13:31:14 +01:00
desc.h x86: x86 TLS desc_struct cleanup 2008-01-30 13:31:51 +01:00
device.h intel-iommu: fix for IOMMU early crash 2007-10-22 08:13:19 -07:00
div64.h x86: unify div64{,_32,_64}.h 2007-10-23 22:37:23 +02:00
dma-mapping_32.h Change table chaining layout 2007-10-22 21:20:01 +02:00
dma-mapping_64.h
dma-mapping.h
dma.h x86: merge include/asm-x86/dma.h 2008-01-30 13:30:20 +01:00
dmi.h x86 32-bit boot: rename bt_ioremap() to early_ioremap() 2008-01-30 13:33:44 +01:00
ds.h x86, ptrace: support 32bit-cross-64bit BTS recording 2008-01-30 13:32:03 +01:00
dwarf2_32.h
dwarf2_64.h
dwarf2.h
e820_32.h x86: trim mtrr don't close gap for resource allocation. 2008-03-21 17:06:15 +01:00
e820_64.h x86: trim mtrr don't close gap for resource allocation. 2008-03-21 17:06:15 +01:00
e820.h x86: fix the missing BIOS area check in page_is_ram 2008-01-30 13:34:06 +01:00
edac.h
efi.h x86: fix EFI mapping 2008-02-04 16:48:06 +01:00
elf.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
emergency-restart.h x86: reboot_{32|64}.c unification 2008-01-30 13:32:51 +01:00
errno.h
fb.h
fcntl.h
fixmap_32.h x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
fixmap_64.h x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
fixmap.h
floppy.h
frame.h
futex.h x86: no robust/pi futex for real i386 CPUs 2008-02-26 12:56:06 +01:00
gart.h x86: disable the GART early, 64-bit 2008-01-30 13:33:09 +01:00
genapic_32.h
genapic_64.h
genapic.h
geode.h x86: GEODE: MFGPT: Use "just-in-time" detection for the MFGPT timers 2008-02-09 23:24:08 +01:00
gpio.h x86: add generic GPIO support to x86 2008-01-30 13:33:35 +01:00
hardirq_32.h
hardirq_64.h
hardirq.h
highmem.h i386: Resolve dependency of asm-i386/pgtable.h on highmem.h 2008-02-05 09:44:14 -08:00
hpet.h x86, rtc: make CONFIG_HPET_EMULATE_RTC usable from modules 2008-01-30 13:33:28 +01:00
hw_irq_32.h x86: remove final FASTCALL() uses 2008-02-04 16:48:03 +01:00
hw_irq_64.h x86: provide a native_init_IRQ function on 64-bit 2008-01-30 13:33:19 +01:00
hw_irq.h
hypertransport.h
i387.h x86: make mxcsr_feature_mask static again 2008-02-19 16:18:28 +01:00
i8253.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
i8259.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
ia32_unistd.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
ia32.h x86: TLS cleanup 2008-01-30 13:30:46 +01:00
ide.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
idle.h x86: remove dead code and exports 2008-01-30 13:30:28 +01:00
intel_arch_perfmon.h
io_32.h x86-32: Pass the full resource data to ioremap() 2008-03-24 11:22:39 -07:00
io_64.h x86-32: Pass the full resource data to ioremap() 2008-03-24 11:22:39 -07:00
io_apic.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
io.h
ioctl.h
ioctls.h
iommu.h x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
ipcbuf.h
ipi.h x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
irq_32.h i386: introduce "used_vectors" bitmap which can be used to reserve vectors. 2007-10-19 20:35:03 +02:00
irq_64.h
irq_regs_32.h
irq_regs_64.h
irq_regs.h
irq.h
irqflags.h x86: fix breakage of vSMP irq operations 2008-04-04 18:36:46 +02:00
ist.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
k8.h x86: move k8 related declarations 2008-01-30 13:30:16 +01:00
Kbuild Really unexport asm/page.h 2008-03-06 08:13:47 -08:00
kdebug.h x86: make dump_pagetable() static 2008-02-14 23:30:19 +01:00
kexec.h x86: unify kexec_{32|64}.h 2008-01-30 13:31:26 +01:00
kmap_types.h
kprobes.h Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
kvm_host.h KVM: x86 emulator: Only allow VMCALL/VMMCALL trapped by #UD 2008-01-30 18:01:21 +02:00
kvm_para.h KVM: Per-architecture hypercall definitions 2008-01-30 17:52:55 +02:00
kvm_x86_emulate.h KVM: Move arch dependent files to new directory arch/x86/kvm/ 2008-01-30 18:01:18 +02:00
kvm.h KVM: Portability: Move kvm_fpu to asm-x86/kvm.h 2008-01-30 18:01:22 +02:00
ldt.h
lguest_hcall.h lguest: comment documentation update. 2008-03-28 11:05:54 +11:00
lguest.h lguest: include function prototypes 2008-02-26 12:55:49 +01:00
linkage.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
local.h x86: local.h fix checkpatch warnings 2008-01-30 13:31:26 +01:00
mach_apic.h
math_emu.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
mc146818rtc.h x86: isolate the rtc code for sharing 2008-01-30 13:30:26 +01:00
mca_dma.h
mca.h
mce.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
mman.h
mmu_context_32.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmu_context_64.h x86: put generic mm_hooks include into PARAVIRT 2008-01-30 13:33:19 +01:00
mmu_context.h
mmu.h x86: voluntary leave_mm before entering ACPI C3 2008-01-30 13:32:01 +01:00
mmx.h
mmzone_32.h Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
mmzone_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
mmzone.h
module.h x86: unify module_{32|64}.h 2008-01-30 13:31:43 +01:00
mpspec_def.h x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mpspec.h x86: cleanup smp.h variants 2008-01-30 13:30:36 +01:00
msgbuf.h x86: merge msgbuf_32/64.h 2007-10-23 22:37:24 +02:00
msidef.h
msr-index.h x86: msr for AMD Fam 10h mmio 2008-01-30 13:33:18 +01:00
msr.h x86: use _ASM_EXTABLE macro in include/asm-x86/msr.h 2008-02-04 16:47:58 +01:00
mtrr.h x86, 32-bit: trim memory not covered by wb mtrrs 2008-01-30 13:33:18 +01:00
mutex_32.h x86: remove fastcall from include/asm-x86 2008-01-30 13:31:17 +01:00
mutex_64.h
mutex.h
namei.h
nmi_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
nmi_64.h x86: nmi_64.c: make code static 2008-01-30 13:30:31 +01:00
nmi.h
nops.h x86: fix 64-bit asm NOPS for CONFIG_GENERIC_CPU 2008-04-07 21:09:14 +02:00
numa_32.h x86: arch/x86/mm/init_32.c cleanup 2008-01-30 13:34:10 +01:00
numa_64.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
numa.h
numaq.h
page_32.h x86: construct 32-bit boot time page tables in native format. 2008-02-09 23:24:09 +01:00
page_64.h x86: rename KERNEL_TEXT_SIZE => KERNEL_IMAGE_SIZE 2008-02-26 12:55:56 +01:00
page.h x86: fix {clear,copy}_user_page() declarations in page.h 2008-03-21 17:06:15 +01:00
param.h
paravirt.h x86: add mm parameter to paravirt_alloc_pd 2008-01-30 13:33:39 +01:00
parport.h
pci_32.h
pci_64.h x86: revert: reserve dma32 early for gart 2008-03-22 19:25:41 +01:00
pci-direct.h
pci.h x86: consolidate toloplogy_32/64.h 2008-01-30 13:30:38 +01:00
pda.h x86: clean up include/asm-x86/pda.h 2008-01-30 13:31:25 +01:00
percpu.h x86: unify percpu.h 2008-01-30 13:32:53 +01:00
pgalloc_32.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgalloc_64.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgalloc.h
pgtable_32.h x86: remove quicklists 2008-03-11 17:11:55 +01:00
pgtable_64.h Revert "x86: fix pmd_bad and pud_bad to support huge pages" 2008-03-03 10:02:44 -08:00
pgtable-2level-defs.h
pgtable-2level.h x86: clean up pte_exec 2008-01-30 13:33:42 +01:00
pgtable-3level-defs.h
pgtable-3level.h x86: update reference for PAE tlb flushing 2008-02-04 16:48:02 +01:00
pgtable.h x86: fix performance drop for glx 2008-03-26 22:23:41 +01:00
poll.h
posix_types_32.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
posix_types_64.h
posix_types.h
prctl.h
processor-cyrix.h
processor-flags.h
processor.h x86: minor cleanup of comments in processor.h 2008-02-19 16:18:32 +01:00
proto.h x86: replace hard coded reservations in 64-bit early boot code with dynamic table 2008-01-30 13:33:17 +01:00
ptrace-abi.h x86 ptrace: fix ptrace_bts_config structure declaration 2008-02-29 18:55:43 +01:00
ptrace.h x86: rename stack_pointer to kernel_trap_sp 2008-01-30 13:33:16 +01:00
reboot_fixups.h
reboot.h
required-features.h x86: merge required-features.h 2007-10-23 22:37:24 +02:00
resource.h
resume-trace.h x86: merge resume-trace.h variants 2008-01-30 13:30:38 +01:00
rio.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
rtc.h
rwlock.h x86: use immediates instead of RW_LOCK_BIAS_STR 2008-01-30 13:30:34 +01:00
rwsem.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
scatterlist.h x86: merge include/asm-x86/scatterlist.h 2008-01-30 13:30:21 +01:00
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h
segment.h x86: early_idt_handler improvements, 64-bit 2008-01-30 13:33:06 +01:00
semaphore_32.h x86: fix UML and -regparm=3 2008-01-30 13:33:00 +01:00
semaphore_64.h
semaphore.h
sembuf.h
serial.h
setup.h x86: prepare 64-bit architecture initialization for paravirt 2008-01-30 13:31:11 +01:00
shmbuf.h x86: merge shmbuf_32/64.h 2007-10-23 22:37:24 +02:00
shmparam.h
sigcontext32.h x86: use generic register names in struct sigcontext 2008-01-30 13:30:56 +01:00
sigcontext.h x86: fix sigcontext.h user export 2008-02-13 16:20:35 +01:00
siginfo.h
signal.h x86 single_step: TIF_FORCED_TF 2008-01-30 13:30:50 +01:00
smp_32.h x86: cleanup x86_cpu_to_apicid references 2008-01-30 13:33:11 +01:00
smp_64.h x86: change bios_cpu_apicid to percpu data variable 2008-01-30 13:33:12 +01:00
smp.h
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h
sparsemem.h x86: merge include/asm-x86/sparsemem.h 2008-01-30 13:30:37 +01:00
spinlock_types.h x86: FIFO ticket spinlocks 2008-01-30 13:31:21 +01:00
spinlock.h x86: big ticket locks 2008-01-30 13:33:00 +01:00
srat.h
stacktrace.h x86: add the capability to print fuzzy backtraces 2008-01-30 13:33:07 +01:00
stat.h x86: merge stat_32/64.h 2007-10-23 22:37:24 +02:00
statfs.h x86: merge statfs_32/64.h 2007-10-23 22:37:24 +02:00
string_32.h x86: sparse errors from string_32.h 2008-02-04 16:48:01 +01:00
string_64.h
string.h
suspend_32.h x86: unify struct desc_ptr 2008-01-30 13:31:12 +01:00
suspend_64.h x86: make __{save,restore}_processor_state static 2008-01-30 13:31:23 +01:00
suspend.h
swiotlb.h
sync_bitops.h sync_bitops: fix wrong comments [Bug 10247] 2008-03-21 17:06:15 +01:00
system_64.h x86: move switch_to macro to system.h 2008-01-30 13:31:08 +01:00
system.h x86: remove final FASTCALL() uses 2008-02-04 16:48:03 +01:00
tce.h
termbits.h
termios.h tty: fix tty network driver interactions with TCGET/TCSET calls (x86 fix) 2008-02-07 08:42:16 -08:00
therm_throt.h
thread_info_32.h x86, ptrace: support for branch trace store(BTS) 2008-01-30 13:31:09 +01:00
thread_info_64.h x86: fix duplicated TIF on 64-bit 2008-01-30 23:27:57 +01:00
thread_info.h
time.h x86: prepare time related functions for paravirt 2008-01-30 13:31:10 +01:00
timer.h x86: scale cyc_2_nsec according to CPU frequency 2008-01-30 13:30:06 +01:00
timex.h read_current_timer() cleanups 2008-02-06 10:41:02 -08:00
tlb.h
tlbflush.h x86: merge tlbflush.h variants 2008-01-30 13:30:35 +01:00
topology.h x86: change size of node ids from u8 to s16 2008-01-30 13:33:25 +01:00
tsc.h x86: get_cycles() fix 2008-01-30 13:33:24 +01:00
types.h
uaccess_32.h x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_32.h 2008-02-04 16:47:59 +01:00
uaccess_64.h x86: use _ASM_EXTABLE macro in include/asm-x86/uaccess_64.h 2008-02-04 16:47:59 +01:00
uaccess.h
ucontext.h
unaligned.h
unistd_32.h timerfd: wire the new timerfd API to the x86 family 2008-02-05 09:44:07 -08:00
unistd_64.h timerfd: wire the new timerfd API to the x86 family 2008-02-05 09:44:07 -08:00
unistd.h
unwind.h
user32.h
user_32.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
user_64.h Sanitize the type of struct user.u_ar0 2008-02-07 08:42:30 -08:00
user.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
vdso.h x86 vDSO: i386 vdso32 2008-01-30 13:30:42 +01:00
vga.h
vgtod.h
vic.h
vm86.h x86: add function prototype to vm86.h 2008-02-04 16:48:04 +01:00
vmi_time.h
vmi.h
voyager.h
vsyscall.h x86: map vsyscalls early enough 2008-01-30 13:32:39 +01:00
xor_32.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor_64.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
xor.h