mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM fixes from Russell King: - Fix kgdb breakpoint for Thumb2 - Fix dependency for BITREVERSE kconfig - Fix nommu early_params and __setup returns * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE ARM: Fix kgdb breakpoint for Thumb2
This commit is contained in:
@@ -154,22 +154,38 @@ static int kgdb_compiled_brk_fn(struct pt_regs *regs, unsigned int instr)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct undef_hook kgdb_brkpt_hook = {
|
static struct undef_hook kgdb_brkpt_arm_hook = {
|
||||||
.instr_mask = 0xffffffff,
|
.instr_mask = 0xffffffff,
|
||||||
.instr_val = KGDB_BREAKINST,
|
.instr_val = KGDB_BREAKINST,
|
||||||
.cpsr_mask = MODE_MASK,
|
.cpsr_mask = PSR_T_BIT | MODE_MASK,
|
||||||
.cpsr_val = SVC_MODE,
|
.cpsr_val = SVC_MODE,
|
||||||
.fn = kgdb_brk_fn
|
.fn = kgdb_brk_fn
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct undef_hook kgdb_compiled_brkpt_hook = {
|
static struct undef_hook kgdb_brkpt_thumb_hook = {
|
||||||
|
.instr_mask = 0xffff,
|
||||||
|
.instr_val = KGDB_BREAKINST & 0xffff,
|
||||||
|
.cpsr_mask = PSR_T_BIT | MODE_MASK,
|
||||||
|
.cpsr_val = PSR_T_BIT | SVC_MODE,
|
||||||
|
.fn = kgdb_brk_fn
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct undef_hook kgdb_compiled_brkpt_arm_hook = {
|
||||||
.instr_mask = 0xffffffff,
|
.instr_mask = 0xffffffff,
|
||||||
.instr_val = KGDB_COMPILED_BREAK,
|
.instr_val = KGDB_COMPILED_BREAK,
|
||||||
.cpsr_mask = MODE_MASK,
|
.cpsr_mask = PSR_T_BIT | MODE_MASK,
|
||||||
.cpsr_val = SVC_MODE,
|
.cpsr_val = SVC_MODE,
|
||||||
.fn = kgdb_compiled_brk_fn
|
.fn = kgdb_compiled_brk_fn
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct undef_hook kgdb_compiled_brkpt_thumb_hook = {
|
||||||
|
.instr_mask = 0xffff,
|
||||||
|
.instr_val = KGDB_COMPILED_BREAK & 0xffff,
|
||||||
|
.cpsr_mask = PSR_T_BIT | MODE_MASK,
|
||||||
|
.cpsr_val = PSR_T_BIT | SVC_MODE,
|
||||||
|
.fn = kgdb_compiled_brk_fn
|
||||||
|
};
|
||||||
|
|
||||||
static int __kgdb_notify(struct die_args *args, unsigned long cmd)
|
static int __kgdb_notify(struct die_args *args, unsigned long cmd)
|
||||||
{
|
{
|
||||||
struct pt_regs *regs = args->regs;
|
struct pt_regs *regs = args->regs;
|
||||||
@@ -210,8 +226,10 @@ int kgdb_arch_init(void)
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
register_undef_hook(&kgdb_brkpt_hook);
|
register_undef_hook(&kgdb_brkpt_arm_hook);
|
||||||
register_undef_hook(&kgdb_compiled_brkpt_hook);
|
register_undef_hook(&kgdb_brkpt_thumb_hook);
|
||||||
|
register_undef_hook(&kgdb_compiled_brkpt_arm_hook);
|
||||||
|
register_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -224,8 +242,10 @@ int kgdb_arch_init(void)
|
|||||||
*/
|
*/
|
||||||
void kgdb_arch_exit(void)
|
void kgdb_arch_exit(void)
|
||||||
{
|
{
|
||||||
unregister_undef_hook(&kgdb_brkpt_hook);
|
unregister_undef_hook(&kgdb_brkpt_arm_hook);
|
||||||
unregister_undef_hook(&kgdb_compiled_brkpt_hook);
|
unregister_undef_hook(&kgdb_brkpt_thumb_hook);
|
||||||
|
unregister_undef_hook(&kgdb_compiled_brkpt_arm_hook);
|
||||||
|
unregister_undef_hook(&kgdb_compiled_brkpt_thumb_hook);
|
||||||
unregister_die_notifier(&kgdb_notifier);
|
unregister_die_notifier(&kgdb_notifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -212,12 +212,14 @@ early_param("ecc", early_ecc);
|
|||||||
static int __init early_cachepolicy(char *p)
|
static int __init early_cachepolicy(char *p)
|
||||||
{
|
{
|
||||||
pr_warn("cachepolicy kernel parameter not supported without cp15\n");
|
pr_warn("cachepolicy kernel parameter not supported without cp15\n");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
early_param("cachepolicy", early_cachepolicy);
|
early_param("cachepolicy", early_cachepolicy);
|
||||||
|
|
||||||
static int __init noalign_setup(char *__unused)
|
static int __init noalign_setup(char *__unused)
|
||||||
{
|
{
|
||||||
pr_warn("noalign kernel parameter not supported without cp15\n");
|
pr_warn("noalign kernel parameter not supported without cp15\n");
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
__setup("noalign", noalign_setup);
|
__setup("noalign", noalign_setup);
|
||||||
|
|
||||||
|
@@ -45,7 +45,6 @@ config BITREVERSE
|
|||||||
config HAVE_ARCH_BITREVERSE
|
config HAVE_ARCH_BITREVERSE
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
depends on BITREVERSE
|
|
||||||
help
|
help
|
||||||
This option enables the use of hardware bit-reversal instructions on
|
This option enables the use of hardware bit-reversal instructions on
|
||||||
architectures which support such operations.
|
architectures which support such operations.
|
||||||
|
Reference in New Issue
Block a user