Merge branch 'avr32-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
* 'avr32-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: avr32: Fix bug in early resource allocation code avr32: Build fix for CONFIG_BUG=n avr32: Work around byteswap bug in gcc < 4.2
This commit is contained in:
commit
074fcab574
|
@ -163,6 +163,7 @@ add_reserved_region(resource_size_t start, resource_size_t end,
|
|||
new->start = start;
|
||||
new->end = end;
|
||||
new->name = name;
|
||||
new->sibling = next;
|
||||
new->flags = IORESOURCE_MEM;
|
||||
|
||||
*pprev = new;
|
||||
|
|
|
@ -178,6 +178,7 @@ static int do_cop_absent(u32 insn)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BUG
|
||||
int is_valid_bugaddr(unsigned long pc)
|
||||
{
|
||||
unsigned short opcode;
|
||||
|
@ -189,6 +190,7 @@ int is_valid_bugaddr(unsigned long pc)
|
|||
|
||||
return opcode == AVR32_BUG_OPCODE;
|
||||
}
|
||||
#endif
|
||||
|
||||
asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
|
||||
{
|
||||
|
@ -197,6 +199,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
|
|||
void __user *pc;
|
||||
long code;
|
||||
|
||||
#ifdef CONFIG_BUG
|
||||
if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) {
|
||||
enum bug_trap_type type;
|
||||
|
||||
|
@ -211,6 +214,7 @@ asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
|
|||
die("Kernel BUG", regs, SIGKILL);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
local_irq_enable();
|
||||
|
||||
|
|
|
@ -12,8 +12,14 @@ extern unsigned long __builtin_bswap_32(unsigned long x);
|
|||
extern unsigned short __builtin_bswap_16(unsigned short x);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
|
||||
* the result.
|
||||
*/
|
||||
#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
|
||||
#define __arch__swab32(x) __builtin_bswap_32(x)
|
||||
#define __arch__swab16(x) __builtin_bswap_16(x)
|
||||
#endif
|
||||
|
||||
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
|
||||
# define __BYTEORDER_HAS_U64__
|
||||
|
|
Loading…
Reference in a new issue