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

Commit 57e6bbcb authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARM fixes from Russell King:
 "A number of fixes for the merge window, fixing a number of cases
  missed when testing the uaccess code, particularly cases which only
  show up with certain compiler versions"

* 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
  ARM: 8431/1: fix alignement of __bug_table section entries
  arm/xen: Enable user access to the kernel before issuing a privcmd call
  ARM: domains: add memory dependencies to get_domain/set_domain
  ARM: domains: thread_info.h no longer needs asm/domains.h
  ARM: uaccess: fix undefined instruction on ARMv7M/noMMU
  ARM: uaccess: remove unneeded uaccess_save_and_disable macro
  ARM: swpan: fix nwfpe for uaccess changes
  ARM: 8429/1: disable GCC SRA optimization
parents 6ff33f39 c2172ce2
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -54,6 +54,14 @@ AS += -EL
LD		+= -EL
endif

#
# The Scalar Replacement of Aggregates (SRA) optimization pass in GCC 4.9 and
# later may result in code being generated that handles signed short and signed
# char struct members incorrectly. So disable it.
# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932)
#
KBUILD_CFLAGS	+= $(call cc-option,-fno-ipa-sra)

# This selects which instruction set is used.
# Note that GCC does not numerically define an architecture version
# macro, but instead defines a whole series of macros which makes
+0 −5
Original line number Diff line number Diff line
@@ -491,11 +491,6 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
#endif
	.endm

	.macro	uaccess_save_and_disable, tmp
	uaccess_save \tmp
	uaccess_disable \tmp
	.endm

	.irp	c,,eq,ne,cs,cc,mi,pl,vs,vc,hi,ls,ge,lt,gt,le,hs,lo
	.macro	ret\c, reg
#if __LINUX_ARM_ARCH__ < 6
+1 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ do { \
		"2:\t.asciz " #__file "\n" 			\
		".popsection\n" 				\
		".pushsection __bug_table,\"a\"\n"		\
		".align 2\n"					\
		"3:\t.word 1b, 2b\n"				\
		"\t.hword " #__line ", 0\n"			\
		".popsection");					\
+4 −2
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@

#ifndef __ASSEMBLY__
#include <asm/barrier.h>
#include <asm/thread_info.h>
#endif

/*
@@ -89,7 +90,8 @@ static inline unsigned int get_domain(void)

	asm(
	"mrc	p15, 0, %0, c3, c0	@ get domain"
	 : "=r" (domain));
	 : "=r" (domain)
	 : "m" (current_thread_info()->cpu_domain));

	return domain;
}
@@ -98,7 +100,7 @@ static inline void set_domain(unsigned val)
{
	asm volatile(
	"mcr	p15, 0, %0, c3, c0	@ set domain"
	  : : "r" (val));
	  : : "r" (val) : "memory");
	isb();
}

+0 −1
Original line number Diff line number Diff line
@@ -25,7 +25,6 @@
struct task_struct;

#include <asm/types.h>
#include <asm/domain.h>

typedef unsigned long mm_segment_t;

Loading