Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7421a10d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: Use .cfi_sections for assembly code
  x86-64: Reduce SMP locks table size
  x86, asm: Introduce and use percpu_inc()
parents 752f114f 9e565292
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -95,8 +95,9 @@ sp-$(CONFIG_X86_64) := rsp
cfi := $(call as-instr,.cfi_startproc\n.cfi_rel_offset $(sp-y)$(comma)0\n.cfi_endproc,-DCONFIG_AS_CFI=1)
# is .cfi_signal_frame supported too?
cfi-sigframe := $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1)
KBUILD_AFLAGS += $(cfi) $(cfi-sigframe)
KBUILD_CFLAGS += $(cfi) $(cfi-sigframe)
cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTIONS=1)
KBUILD_AFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections)
KBUILD_CFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections)

LDFLAGS := -m elf_$(UTS_MACHINE)

+2 −2
Original line number Diff line number Diff line
@@ -6,8 +6,8 @@
	.macro LOCK_PREFIX
1:	lock
	.section .smp_locks,"a"
	_ASM_ALIGN
	_ASM_PTR 1b
	.balign 4
	.long 1b - .
	.previous
	.endm
#else
+2 −2
Original line number Diff line number Diff line
@@ -30,8 +30,8 @@
#ifdef CONFIG_SMP
#define LOCK_PREFIX \
		".section .smp_locks,\"a\"\n"	\
		_ASM_ALIGN "\n"			\
		_ASM_PTR "661f\n" /* address */	\
		".balign 4\n"			\
		".long 661f - .\n" /* offset */	\
		".previous\n"			\
		"661:\n\tlock; "

+12 −0
Original line number Diff line number Diff line
@@ -34,6 +34,18 @@
#define CFI_SIGNAL_FRAME
#endif

#if defined(CONFIG_AS_CFI_SECTIONS) && defined(__ASSEMBLY__)
	/*
	 * Emit CFI data in .debug_frame sections, not .eh_frame sections.
	 * The latter we currently just discard since we don't do DWARF
	 * unwinding at runtime.  So only the offline DWARF information is
	 * useful to anyone.  Note we should not use this directive if this
	 * file is used in the vDSO assembly, or if vmlinux.lds.S gets
	 * changed so it doesn't discard .eh_frame.
	 */
	.cfi_sections .debug_frame
#endif

#else

/*
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);

#define __ARCH_IRQ_STAT

#define inc_irq_stat(member)	percpu_add(irq_stat.member, 1)
#define inc_irq_stat(member)	percpu_inc(irq_stat.member)

#define local_softirq_pending()	percpu_read(irq_stat.__softirq_pending)

Loading