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

Commit ef0e1ea8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARC fixes from Vineet Gupta:

 - support for Syscall ABI v4 with upstream gcc 6.x

 - lockdep fix (Daniel Mentz)

 - gdb register clobber (Liav Rehana)

 - couple of missing exports for modules

 - other fixes here and there

* tag 'arc-4.8-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: export __udivdi3 for modules
  ARC: mm: fix build breakage with STRICT_MM_TYPECHECKS
  ARC: export kmap
  ARC: Support syscall ABI v4
  ARC: use correct offset in pt_regs for saving/restoring user mode r25
  ARC: Elide redundant setup of DMA callbacks
  ARC: Call trace_hardirqs_on() before enabling irqs
parents 37c669b2 c57653dc
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@

#ifdef CONFIG_ARC_CURR_IN_REG
	; Retrieve orig r25 and save it with rest of callee_regs
	ld.as   r12, [r12, PT_user_r25]
	ld	r12, [r12, PT_user_r25]
	PUSH	r12
#else
	PUSH	r25
@@ -198,7 +198,7 @@

	; SP is back to start of pt_regs
#ifdef CONFIG_ARC_CURR_IN_REG
	st.as   r12, [sp, PT_user_r25]
	st	r12, [sp, PT_user_r25]
#endif
.endm

+1 −1
Original line number Diff line number Diff line
@@ -188,10 +188,10 @@ static inline int arch_irqs_disabled(void)
.endm

.macro IRQ_ENABLE  scratch
	TRACE_ASM_IRQ_ENABLE
	lr	\scratch, [status32]
	or	\scratch, \scratch, (STATUS_E1_MASK | STATUS_E2_MASK)
	flag	\scratch
	TRACE_ASM_IRQ_ENABLE
.endm

#endif	/* __ASSEMBLY__ */
+1 −1
Original line number Diff line number Diff line
@@ -280,7 +280,7 @@ static inline void pmd_set(pmd_t *pmdp, pte_t *ptep)

#define pte_page(pte)		pfn_to_page(pte_pfn(pte))
#define mk_pte(page, prot)	pfn_pte(page_to_pfn(page), prot)
#define pfn_pte(pfn, prot)	(__pte(((pte_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))
#define pfn_pte(pfn, prot)	__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))

/* Don't use virt_to_pfn for macros below: could cause truncations for PAE40*/
#define pte_pfn(pte)		(pte_val(pte) >> PAGE_SHIFT)
+9 −2
Original line number Diff line number Diff line
@@ -13,8 +13,15 @@

/* Machine specific ELF Hdr flags */
#define EF_ARC_OSABI_MSK	0x00000f00
#define EF_ARC_OSABI_ORIG	0x00000000   /* MUST be zero for back-compat */
#define EF_ARC_OSABI_CURRENT	0x00000300   /* v3 (no legacy syscalls) */

#define EF_ARC_OSABI_V3		0x00000300   /* v3 (no legacy syscalls) */
#define EF_ARC_OSABI_V4		0x00000400   /* v4 (64bit data any reg align) */

#if __GNUC__ < 6
#define EF_ARC_OSABI_CURRENT	EF_ARC_OSABI_V3
#else
#define EF_ARC_OSABI_CURRENT	EF_ARC_OSABI_V4
#endif

typedef unsigned long elf_greg_t;
typedef unsigned long elf_fpregset_t;
+2 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ extern void __muldf3(void);
extern void __divdf3(void);
extern void __floatunsidf(void);
extern void __floatunsisf(void);
extern void __udivdi3(void);

EXPORT_SYMBOL(__ashldi3);
EXPORT_SYMBOL(__ashrdi3);
@@ -45,6 +46,7 @@ EXPORT_SYMBOL(__muldf3);
EXPORT_SYMBOL(__divdf3);
EXPORT_SYMBOL(__floatunsidf);
EXPORT_SYMBOL(__floatunsisf);
EXPORT_SYMBOL(__udivdi3);

/* ARC optimised assembler routines */
EXPORT_SYMBOL(memset);
Loading