Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King: "The usual random collection of relatively small ARM fixes" * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: ARM: 8063/1: bL_switcher: fix individual online status reporting of removed CPUs ARM: 8064/1: fix v7-M signal return ARM: 8057/1: amba: Add Qualcomm vendor ID. ARM: 8052/1: unwind: Fix handling of "Pop r4-r[4+nnn],r14" opcode ARM: 8051/1: put_user: fix possible data corruption in put_user ARM: 8048/1: fix v7-M setup stack location
This commit is contained in:
commit
fe45736f41
|
@ -433,8 +433,12 @@ static void bL_switcher_restore_cpus(void)
|
|||
{
|
||||
int i;
|
||||
|
||||
for_each_cpu(i, &bL_switcher_removed_logical_cpus)
|
||||
cpu_up(i);
|
||||
for_each_cpu(i, &bL_switcher_removed_logical_cpus) {
|
||||
struct device *cpu_dev = get_cpu_device(i);
|
||||
int ret = device_online(cpu_dev);
|
||||
if (ret)
|
||||
dev_err(cpu_dev, "switcher: unable to restore CPU\n");
|
||||
}
|
||||
}
|
||||
|
||||
static int bL_switcher_halve_cpus(void)
|
||||
|
@ -521,7 +525,7 @@ static int bL_switcher_halve_cpus(void)
|
|||
continue;
|
||||
}
|
||||
|
||||
ret = cpu_down(i);
|
||||
ret = device_offline(get_cpu_device(i));
|
||||
if (ret) {
|
||||
bL_switcher_restore_cpus();
|
||||
return ret;
|
||||
|
|
|
@ -171,8 +171,9 @@ extern int __put_user_8(void *, unsigned long long);
|
|||
#define __put_user_check(x,p) \
|
||||
({ \
|
||||
unsigned long __limit = current_thread_info()->addr_limit - 1; \
|
||||
const typeof(*(p)) __user *__tmp_p = (p); \
|
||||
register const typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \
|
||||
register unsigned long __l asm("r1") = __limit; \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
|
|
|
@ -132,6 +132,10 @@
|
|||
orrne r5, V7M_xPSR_FRAMEPTRALIGN
|
||||
biceq r5, V7M_xPSR_FRAMEPTRALIGN
|
||||
|
||||
@ ensure bit 0 is cleared in the PC, otherwise behaviour is
|
||||
@ unpredictable
|
||||
bic r4, #1
|
||||
|
||||
@ write basic exception frame
|
||||
stmdb r2!, {r1, r3-r5}
|
||||
ldmia sp, {r1, r3-r5}
|
||||
|
|
|
@ -285,7 +285,7 @@ static int unwind_exec_pop_r4_to_rN(struct unwind_ctrl_block *ctrl,
|
|||
if (unwind_pop_register(ctrl, &vsp, reg))
|
||||
return -URC_FAILURE;
|
||||
|
||||
if (insn & 0x80)
|
||||
if (insn & 0x8)
|
||||
if (unwind_pop_register(ctrl, &vsp, 14))
|
||||
return -URC_FAILURE;
|
||||
|
||||
|
|
|
@ -123,6 +123,11 @@ __v7m_setup:
|
|||
mov pc, lr
|
||||
ENDPROC(__v7m_setup)
|
||||
|
||||
.align 2
|
||||
__v7m_setup_stack:
|
||||
.space 4 * 8 @ 8 registers
|
||||
__v7m_setup_stack_top:
|
||||
|
||||
define_processor_functions v7m, dabort=nommu_early_abort, pabort=legacy_pabort, nommu=1
|
||||
|
||||
.section ".rodata"
|
||||
|
@ -152,6 +157,3 @@ __v7m_proc_info:
|
|||
.long nop_cache_fns @ proc_info_list.cache
|
||||
.size __v7m_proc_info, . - __v7m_proc_info
|
||||
|
||||
__v7m_setup_stack:
|
||||
.space 4 * 8 @ 8 registers
|
||||
__v7m_setup_stack_top:
|
||||
|
|
|
@ -47,6 +47,7 @@ struct amba_driver {
|
|||
enum amba_vendor {
|
||||
AMBA_VENDOR_ARM = 0x41,
|
||||
AMBA_VENDOR_ST = 0x80,
|
||||
AMBA_VENDOR_QCOM = 0x51,
|
||||
};
|
||||
|
||||
extern struct bus_type amba_bustype;
|
||||
|
|
Loading…
Reference in New Issue