Skip to content

Commit

Permalink
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/git/egtvedt/linux-avr32

Pull AVR32 updates from Hans-Christian Egtvedt.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:
  avr32: uapi: be sure of "_UAPI" prefix for all guard macros
  avr32: add kprobe_ctlblk memory struct
  avr32: fix out-of-range jump in large kernels
  avr32: setup crt for early panic()
  • Loading branch information
Linus Torvalds committed Nov 20, 2013
2 parents af2e2f3 + e7f2c8c commit 8a60ba0
Show file tree
Hide file tree
Showing 35 changed files with 101 additions and 129 deletions.
35 changes: 29 additions & 6 deletions arch/avr32/boot/u-boot/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
* published by the Free Software Foundation.
*/
#include <asm/setup.h>
#include <asm/thread_info.h>
#include <asm/sysreg.h>

/*
* The kernel is loaded where we want it to be and all caches
Expand All @@ -20,11 +22,6 @@
.section .init.text,"ax"
.global _start
_start:
/* Check if the boot loader actually provided a tag table */
lddpc r0, magic_number
cp.w r12, r0
brne no_tag_table

/* Initialize .bss */
lddpc r2, bss_start_addr
lddpc r3, end_addr
Expand All @@ -34,6 +31,25 @@ _start:
cp r2, r3
brlo 1b

/* Initialize status register */
lddpc r0, init_sr
mtsr SYSREG_SR, r0

/* Set initial stack pointer */
lddpc sp, stack_addr
sub sp, -THREAD_SIZE

#ifdef CONFIG_FRAME_POINTER
/* Mark last stack frame */
mov lr, 0
mov r7, 0
#endif

/* Check if the boot loader actually provided a tag table */
lddpc r0, magic_number
cp.w r12, r0
brne no_tag_table

/*
* Save the tag table address for later use. This must be done
* _after_ .bss has been initialized...
Expand All @@ -53,8 +69,15 @@ bss_start_addr:
.long __bss_start
end_addr:
.long _end
init_sr:
.long 0x007f0000 /* Supervisor mode, everything masked */
stack_addr:
.long init_thread_union
panic_addr:
.long panic

no_tag_table:
sub r12, pc, (. - 2f)
bral panic
/* branch to panic() which can be far away with that construct */
lddpc pc, panic_addr
2: .asciz "Boot loader didn't provide correct magic number\n"
14 changes: 14 additions & 0 deletions arch/avr32/include/asm/kprobes.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
typedef u16 kprobe_opcode_t;
#define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */
#define MAX_INSN_SIZE 2
#define MAX_STACK_SIZE 64 /* 32 would probably be OK */

#define kretprobe_blacklist_size 0

Expand All @@ -26,6 +27,19 @@ struct arch_specific_insn {
kprobe_opcode_t insn[MAX_INSN_SIZE];
};

struct prev_kprobe {
struct kprobe *kp;
unsigned int status;
};

/* per-cpu kprobe control block */
struct kprobe_ctlblk {
unsigned int kprobe_status;
struct prev_kprobe prev_kprobe;
struct pt_regs jprobe_saved_regs;
char jprobes_stack[MAX_STACK_SIZE];
};

extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
extern int kprobe_exceptions_notify(struct notifier_block *self,
unsigned long val, void *data);
Expand Down
24 changes: 12 additions & 12 deletions arch/avr32/include/uapi/asm/Kbuild
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,35 @@
include include/uapi/asm-generic/Kbuild.asm

header-y += auxvec.h
header-y += bitsperlong.h
header-y += byteorder.h
header-y += cachectl.h
header-y += errno.h
header-y += fcntl.h
header-y += ioctl.h
header-y += ioctls.h
header-y += ipcbuf.h
header-y += kvm_para.h
header-y += mman.h
header-y += msgbuf.h
header-y += param.h
header-y += poll.h
header-y += posix_types.h
header-y += ptrace.h
header-y += resource.h
header-y += sembuf.h
header-y += setup.h
header-y += shmbuf.h
header-y += sigcontext.h
header-y += siginfo.h
header-y += signal.h
header-y += socket.h
header-y += sockios.h
header-y += stat.h
header-y += statfs.h
header-y += swab.h
header-y += termbits.h
header-y += termios.h
header-y += types.h
header-y += unistd.h
generic-y += bitsperlong.h
generic-y += errno.h
generic-y += fcntl.h
generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += kvm_para.h
generic-y += mman.h
generic-y += param.h
generic-y += poll.h
generic-y += resource.h
generic-y += siginfo.h
generic-y += statfs.h
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/auxvec.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#ifndef __ASM_AVR32_AUXVEC_H
#define __ASM_AVR32_AUXVEC_H
#ifndef _UAPI__ASM_AVR32_AUXVEC_H
#define _UAPI__ASM_AVR32_AUXVEC_H

#endif /* __ASM_AVR32_AUXVEC_H */
#endif /* _UAPI__ASM_AVR32_AUXVEC_H */
1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/bitsperlong.h

This file was deleted.

6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/byteorder.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
/*
* AVR32 endian-conversion functions.
*/
#ifndef __ASM_AVR32_BYTEORDER_H
#define __ASM_AVR32_BYTEORDER_H
#ifndef _UAPI__ASM_AVR32_BYTEORDER_H
#define _UAPI__ASM_AVR32_BYTEORDER_H

#include <linux/byteorder/big_endian.h>

#endif /* __ASM_AVR32_BYTEORDER_H */
#endif /* _UAPI__ASM_AVR32_BYTEORDER_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/cachectl.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_CACHECTL_H
#define __ASM_AVR32_CACHECTL_H
#ifndef _UAPI__ASM_AVR32_CACHECTL_H
#define _UAPI__ASM_AVR32_CACHECTL_H

/*
* Operations that can be performed through the cacheflush system call
Expand All @@ -8,4 +8,4 @@
/* Clean the data cache, then invalidate the icache */
#define CACHE_IFLUSH 0

#endif /* __ASM_AVR32_CACHECTL_H */
#endif /* _UAPI__ASM_AVR32_CACHECTL_H */
6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/errno.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/fcntl.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/ioctl.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/ioctls.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/ipcbuf.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/kvm_para.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/mman.h

This file was deleted.

6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/msgbuf.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_MSGBUF_H
#define __ASM_AVR32_MSGBUF_H
#ifndef _UAPI__ASM_AVR32_MSGBUF_H
#define _UAPI__ASM_AVR32_MSGBUF_H

/*
* The msqid64_ds structure for i386 architecture.
Expand Down Expand Up @@ -28,4 +28,4 @@ struct msqid64_ds {
unsigned long __unused5;
};

#endif /* __ASM_AVR32_MSGBUF_H */
#endif /* _UAPI__ASM_AVR32_MSGBUF_H */
1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/poll.h

This file was deleted.

6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/posix_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_AVR32_POSIX_TYPES_H
#define __ASM_AVR32_POSIX_TYPES_H
#ifndef _UAPI__ASM_AVR32_POSIX_TYPES_H
#define _UAPI__ASM_AVR32_POSIX_TYPES_H

/*
* This file is generally used by user-level software, so you need to
Expand Down Expand Up @@ -34,4 +34,4 @@ typedef unsigned short __kernel_old_dev_t;

#include <asm-generic/posix_types.h>

#endif /* __ASM_AVR32_POSIX_TYPES_H */
#endif /* _UAPI__ASM_AVR32_POSIX_TYPES_H */
6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/resource.h

This file was deleted.

6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/sembuf.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_SEMBUF_H
#define __ASM_AVR32_SEMBUF_H
#ifndef _UAPI__ASM_AVR32_SEMBUF_H
#define _UAPI__ASM_AVR32_SEMBUF_H

/*
* The semid64_ds structure for AVR32 architecture.
Expand All @@ -22,4 +22,4 @@ struct semid64_ds {
unsigned long __unused4;
};

#endif /* __ASM_AVR32_SEMBUF_H */
#endif /* _UAPI__ASM_AVR32_SEMBUF_H */
1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/setup.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,4 @@

#define COMMAND_LINE_SIZE 256


#endif /* _UAPI__ASM_AVR32_SETUP_H__ */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/shmbuf.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_SHMBUF_H
#define __ASM_AVR32_SHMBUF_H
#ifndef _UAPI__ASM_AVR32_SHMBUF_H
#define _UAPI__ASM_AVR32_SHMBUF_H

/*
* The shmid64_ds structure for i386 architecture.
Expand Down Expand Up @@ -39,4 +39,4 @@ struct shminfo64 {
unsigned long __unused4;
};

#endif /* __ASM_AVR32_SHMBUF_H */
#endif /* _UAPI__ASM_AVR32_SHMBUF_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/sigcontext.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_AVR32_SIGCONTEXT_H
#define __ASM_AVR32_SIGCONTEXT_H
#ifndef _UAPI__ASM_AVR32_SIGCONTEXT_H
#define _UAPI__ASM_AVR32_SIGCONTEXT_H

struct sigcontext {
unsigned long oldmask;
Expand All @@ -31,4 +31,4 @@ struct sigcontext {
unsigned long r0;
};

#endif /* __ASM_AVR32_SIGCONTEXT_H */
#endif /* _UAPI__ASM_AVR32_SIGCONTEXT_H */
6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/siginfo.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/avr32/include/uapi/asm/signal.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,5 +118,4 @@ typedef struct sigaltstack {
size_t ss_size;
} stack_t;


#endif /* _UAPI__ASM_AVR32_SIGNAL_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/socket.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_SOCKET_H
#define __ASM_AVR32_SOCKET_H
#ifndef _UAPI__ASM_AVR32_SOCKET_H
#define _UAPI__ASM_AVR32_SOCKET_H

#include <asm/sockios.h>

Expand Down Expand Up @@ -78,4 +78,4 @@

#define SO_MAX_PACING_RATE 47

#endif /* __ASM_AVR32_SOCKET_H */
#endif /* _UAPI__ASM_AVR32_SOCKET_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/sockios.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_SOCKIOS_H
#define __ASM_AVR32_SOCKIOS_H
#ifndef _UAPI__ASM_AVR32_SOCKIOS_H
#define _UAPI__ASM_AVR32_SOCKIOS_H

/* Socket-level I/O control calls. */
#define FIOSETOWN 0x8901
Expand All @@ -10,4 +10,4 @@
#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */

#endif /* __ASM_AVR32_SOCKIOS_H */
#endif /* _UAPI__ASM_AVR32_SOCKIOS_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_AVR32_STAT_H
#define __ASM_AVR32_STAT_H
#ifndef _UAPI__ASM_AVR32_STAT_H
#define _UAPI__ASM_AVR32_STAT_H

struct __old_kernel_stat {
unsigned short st_dev;
Expand Down Expand Up @@ -76,4 +76,4 @@ struct stat64 {
unsigned long __unused2;
};

#endif /* __ASM_AVR32_STAT_H */
#endif /* _UAPI__ASM_AVR32_STAT_H */
6 changes: 0 additions & 6 deletions arch/avr32/include/uapi/asm/statfs.h

This file was deleted.

6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/swab.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/*
* AVR32 byteswapping functions.
*/
#ifndef __ASM_AVR32_SWAB_H
#define __ASM_AVR32_SWAB_H
#ifndef _UAPI__ASM_AVR32_SWAB_H
#define _UAPI__ASM_AVR32_SWAB_H

#include <linux/types.h>
#include <linux/compiler.h>
Expand Down Expand Up @@ -32,4 +32,4 @@ static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
#define __arch_swab32 __arch_swab32
#endif

#endif /* __ASM_AVR32_SWAB_H */
#endif /* _UAPI__ASM_AVR32_SWAB_H */
6 changes: 3 additions & 3 deletions arch/avr32/include/uapi/asm/termbits.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef __ASM_AVR32_TERMBITS_H
#define __ASM_AVR32_TERMBITS_H
#ifndef _UAPI__ASM_AVR32_TERMBITS_H
#define _UAPI__ASM_AVR32_TERMBITS_H

#include <linux/posix_types.h>

Expand Down Expand Up @@ -193,4 +193,4 @@ struct ktermios {
#define TCSADRAIN 1
#define TCSAFLUSH 2

#endif /* __ASM_AVR32_TERMBITS_H */
#endif /* _UAPI__ASM_AVR32_TERMBITS_H */
Loading

0 comments on commit 8a60ba0

Please sign in to comment.