diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 16:19:32 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 16:19:32 -0400 |
| commit | 2f997759dffe5458446075a58734df39d8035e6e (patch) | |
| tree | b799fbec4b57fa8e1408f3b8b43638bbcc5d7a50 /arch/hexagon/include | |
| parent | 472e374161bc00d392e1755fe9915f42b11e310f (diff) | |
| parent | a9a44fdf329668125042055c569656aa83d8cccb (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel
Pull Hexagon updates from Richard Kuo:
"Mostly cleanups for compilation with allmodconfig and some other
miscellaneous fixes"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
Hexagon: update CR year for elf.h
Hexagon: remove SP macro
Hexagon: set ELF_EXEC_PAGESIZE to PAGE_SIZE
Hexagon: set the e_flags in user regset view for core dumps
Hexagon: fix atomic_set
Hexagon: add screen_info for VGA_CONSOLE
hexagon: correct type on pgd copy
smp, hexagon: kill SMP single function call interrupt
arch: hexagon: include: asm: add generic macro 'mmiowb' in "io.h"
arch: hexagon: kernel: hexagon_ksyms.c: export related symbols which various modules need
arch: hexagon: kernel: reset.c: use function pointer instead of function for pm_power_off and export it
arch: hexagon: include: asm: add "vga.h" in Kbuild
arch: hexagon: include: asm: Kbuild: add generic "serial.h" in Kbuild
arch: hexagon: include: uapi: asm: setup.h add swith macro __KERNEL__
arch: hexagon: include: asm: add prefix "hvm[ci]_" for all enum members in "hexagon_vm.h"
arch: hexagon: Kconfig: add HAVE_DMA_ATTR in Kconfig and remove "linux/dma-mapping.h" from "asm/dma-mapping.h"
arch: hexagon: kernel: add export symbol function __delay()
hexagon: include: asm: kgdb: extend DBG_MAX_REG_NUM for "cs0/1"
hexagon: kernel: kgdb: include related header for pass compiling.
hexagon: kernel: remove useless variables 'dn', 'r' and 'err' in time_init_deferred() in "time.c"
Diffstat (limited to 'arch/hexagon/include')
| -rw-r--r-- | arch/hexagon/include/asm/Kbuild | 2 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/atomic.h | 15 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/delay.h | 1 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/dma-mapping.h | 1 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/elf.h | 4 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/hexagon_vm.h | 72 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/io.h | 2 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/kgdb.h | 5 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/pgalloc.h | 2 | ||||
| -rw-r--r-- | arch/hexagon/include/asm/smp.h | 1 | ||||
| -rw-r--r-- | arch/hexagon/include/uapi/asm/registers.h | 4 | ||||
| -rw-r--r-- | arch/hexagon/include/uapi/asm/setup.h | 5 |
12 files changed, 67 insertions, 47 deletions
diff --git a/arch/hexagon/include/asm/Kbuild b/arch/hexagon/include/asm/Kbuild index eadcc118f950..0e69796b58c7 100644 --- a/arch/hexagon/include/asm/Kbuild +++ b/arch/hexagon/include/asm/Kbuild | |||
| @@ -41,6 +41,7 @@ generic-y += scatterlist.h | |||
| 41 | generic-y += sections.h | 41 | generic-y += sections.h |
| 42 | generic-y += segment.h | 42 | generic-y += segment.h |
| 43 | generic-y += sembuf.h | 43 | generic-y += sembuf.h |
| 44 | generic-y += serial.h | ||
| 44 | generic-y += shmbuf.h | 45 | generic-y += shmbuf.h |
| 45 | generic-y += shmparam.h | 46 | generic-y += shmparam.h |
| 46 | generic-y += siginfo.h | 47 | generic-y += siginfo.h |
| @@ -56,4 +57,5 @@ generic-y += trace_clock.h | |||
| 56 | generic-y += types.h | 57 | generic-y += types.h |
| 57 | generic-y += ucontext.h | 58 | generic-y += ucontext.h |
| 58 | generic-y += unaligned.h | 59 | generic-y += unaligned.h |
| 60 | generic-y += vga.h | ||
| 59 | generic-y += xor.h | 61 | generic-y += xor.h |
diff --git a/arch/hexagon/include/asm/atomic.h b/arch/hexagon/include/asm/atomic.h index 7aae4cb2a29a..17dc63780c06 100644 --- a/arch/hexagon/include/asm/atomic.h +++ b/arch/hexagon/include/asm/atomic.h | |||
| @@ -26,7 +26,20 @@ | |||
| 26 | #include <asm/cmpxchg.h> | 26 | #include <asm/cmpxchg.h> |
| 27 | 27 | ||
| 28 | #define ATOMIC_INIT(i) { (i) } | 28 | #define ATOMIC_INIT(i) { (i) } |
| 29 | #define atomic_set(v, i) ((v)->counter = (i)) | 29 | |
| 30 | /* Normal writes in our arch don't clear lock reservations */ | ||
| 31 | |||
| 32 | static inline void atomic_set(atomic_t *v, int new) | ||
| 33 | { | ||
| 34 | asm volatile( | ||
| 35 | "1: r6 = memw_locked(%0);\n" | ||
| 36 | " memw_locked(%0,p0) = %1;\n" | ||
| 37 | " if (!P0) jump 1b;\n" | ||
| 38 | : | ||
| 39 | : "r" (&v->counter), "r" (new) | ||
| 40 | : "memory", "p0", "r6" | ||
| 41 | ); | ||
| 42 | } | ||
| 30 | 43 | ||
| 31 | /** | 44 | /** |
| 32 | * atomic_read - reads a word, atomically | 45 | * atomic_read - reads a word, atomically |
diff --git a/arch/hexagon/include/asm/delay.h b/arch/hexagon/include/asm/delay.h index 53079719d667..8933b9b1a3bf 100644 --- a/arch/hexagon/include/asm/delay.h +++ b/arch/hexagon/include/asm/delay.h | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #include <asm/param.h> | 22 | #include <asm/param.h> |
| 23 | 23 | ||
| 24 | extern void __delay(unsigned long cycles); | ||
| 24 | extern void __udelay(unsigned long usecs); | 25 | extern void __udelay(unsigned long usecs); |
| 25 | 26 | ||
| 26 | #define udelay(usecs) __udelay((usecs)) | 27 | #define udelay(usecs) __udelay((usecs)) |
diff --git a/arch/hexagon/include/asm/dma-mapping.h b/arch/hexagon/include/asm/dma-mapping.h index 85e9935660cb..16965427f6b4 100644 --- a/arch/hexagon/include/asm/dma-mapping.h +++ b/arch/hexagon/include/asm/dma-mapping.h | |||
| @@ -25,7 +25,6 @@ | |||
| 25 | #include <linux/cache.h> | 25 | #include <linux/cache.h> |
| 26 | #include <linux/mm.h> | 26 | #include <linux/mm.h> |
| 27 | #include <linux/scatterlist.h> | 27 | #include <linux/scatterlist.h> |
| 28 | #include <linux/dma-mapping.h> | ||
| 29 | #include <linux/dma-debug.h> | 28 | #include <linux/dma-debug.h> |
| 30 | #include <linux/dma-attrs.h> | 29 | #include <linux/dma-attrs.h> |
| 31 | #include <asm/io.h> | 30 | #include <asm/io.h> |
diff --git a/arch/hexagon/include/asm/elf.h b/arch/hexagon/include/asm/elf.h index e1b933a0e121..80311e7b8ca6 100644 --- a/arch/hexagon/include/asm/elf.h +++ b/arch/hexagon/include/asm/elf.h | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * ELF definitions for the Hexagon architecture | 2 | * ELF definitions for the Hexagon architecture |
| 3 | * | 3 | * |
| 4 | * Copyright (c) 2010-2012, The Linux Foundation. All rights reserved. | 4 | * Copyright (c) 2010-2013, The Linux Foundation. All rights reserved. |
| 5 | * | 5 | * |
| 6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
| 7 | * it under the terms of the GNU General Public License version 2 and | 7 | * it under the terms of the GNU General Public License version 2 and |
| @@ -202,7 +202,7 @@ do { \ | |||
| 202 | #define CORE_DUMP_USE_REGSET | 202 | #define CORE_DUMP_USE_REGSET |
| 203 | 203 | ||
| 204 | /* Hrm is this going to cause problems for changing PAGE_SIZE? */ | 204 | /* Hrm is this going to cause problems for changing PAGE_SIZE? */ |
| 205 | #define ELF_EXEC_PAGESIZE 4096 | 205 | #define ELF_EXEC_PAGESIZE PAGE_SIZE |
| 206 | 206 | ||
| 207 | /* | 207 | /* |
| 208 | * This is the location that an ET_DYN program is loaded if exec'ed. Typical | 208 | * This is the location that an ET_DYN program is loaded if exec'ed. Typical |
diff --git a/arch/hexagon/include/asm/hexagon_vm.h b/arch/hexagon/include/asm/hexagon_vm.h index 67bb6d6f3337..1f6918b428de 100644 --- a/arch/hexagon/include/asm/hexagon_vm.h +++ b/arch/hexagon/include/asm/hexagon_vm.h | |||
| @@ -55,27 +55,27 @@ | |||
| 55 | #ifndef __ASSEMBLY__ | 55 | #ifndef __ASSEMBLY__ |
| 56 | 56 | ||
| 57 | enum VM_CACHE_OPS { | 57 | enum VM_CACHE_OPS { |
| 58 | ickill, | 58 | hvmc_ickill, |
| 59 | dckill, | 59 | hvmc_dckill, |
| 60 | l2kill, | 60 | hvmc_l2kill, |
| 61 | dccleaninva, | 61 | hvmc_dccleaninva, |
| 62 | icinva, | 62 | hvmc_icinva, |
| 63 | idsync, | 63 | hvmc_idsync, |
| 64 | fetch_cfg | 64 | hvmc_fetch_cfg |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | enum VM_INT_OPS { | 67 | enum VM_INT_OPS { |
| 68 | nop, | 68 | hvmi_nop, |
| 69 | globen, | 69 | hvmi_globen, |
| 70 | globdis, | 70 | hvmi_globdis, |
| 71 | locen, | 71 | hvmi_locen, |
| 72 | locdis, | 72 | hvmi_locdis, |
| 73 | affinity, | 73 | hvmi_affinity, |
| 74 | get, | 74 | hvmi_get, |
| 75 | peek, | 75 | hvmi_peek, |
| 76 | status, | 76 | hvmi_status, |
| 77 | post, | 77 | hvmi_post, |
| 78 | clear | 78 | hvmi_clear |
| 79 | }; | 79 | }; |
| 80 | 80 | ||
| 81 | extern void _K_VM_event_vector(void); | 81 | extern void _K_VM_event_vector(void); |
| @@ -98,95 +98,95 @@ long __vmvpid(void); | |||
| 98 | 98 | ||
| 99 | static inline long __vmcache_ickill(void) | 99 | static inline long __vmcache_ickill(void) |
| 100 | { | 100 | { |
| 101 | return __vmcache(ickill, 0, 0); | 101 | return __vmcache(hvmc_ickill, 0, 0); |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | static inline long __vmcache_dckill(void) | 104 | static inline long __vmcache_dckill(void) |
| 105 | { | 105 | { |
| 106 | return __vmcache(dckill, 0, 0); | 106 | return __vmcache(hvmc_dckill, 0, 0); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | static inline long __vmcache_l2kill(void) | 109 | static inline long __vmcache_l2kill(void) |
| 110 | { | 110 | { |
| 111 | return __vmcache(l2kill, 0, 0); | 111 | return __vmcache(hvmc_l2kill, 0, 0); |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | static inline long __vmcache_dccleaninva(unsigned long addr, unsigned long len) | 114 | static inline long __vmcache_dccleaninva(unsigned long addr, unsigned long len) |
| 115 | { | 115 | { |
| 116 | return __vmcache(dccleaninva, addr, len); | 116 | return __vmcache(hvmc_dccleaninva, addr, len); |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | static inline long __vmcache_icinva(unsigned long addr, unsigned long len) | 119 | static inline long __vmcache_icinva(unsigned long addr, unsigned long len) |
| 120 | { | 120 | { |
| 121 | return __vmcache(icinva, addr, len); | 121 | return __vmcache(hvmc_icinva, addr, len); |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | static inline long __vmcache_idsync(unsigned long addr, | 124 | static inline long __vmcache_idsync(unsigned long addr, |
| 125 | unsigned long len) | 125 | unsigned long len) |
| 126 | { | 126 | { |
| 127 | return __vmcache(idsync, addr, len); | 127 | return __vmcache(hvmc_idsync, addr, len); |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | static inline long __vmcache_fetch_cfg(unsigned long val) | 130 | static inline long __vmcache_fetch_cfg(unsigned long val) |
| 131 | { | 131 | { |
| 132 | return __vmcache(fetch_cfg, val, 0); | 132 | return __vmcache(hvmc_fetch_cfg, val, 0); |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | /* interrupt operations */ | 135 | /* interrupt operations */ |
| 136 | 136 | ||
| 137 | static inline long __vmintop_nop(void) | 137 | static inline long __vmintop_nop(void) |
| 138 | { | 138 | { |
| 139 | return __vmintop(nop, 0, 0, 0, 0); | 139 | return __vmintop(hvmi_nop, 0, 0, 0, 0); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | static inline long __vmintop_globen(long i) | 142 | static inline long __vmintop_globen(long i) |
| 143 | { | 143 | { |
| 144 | return __vmintop(globen, i, 0, 0, 0); | 144 | return __vmintop(hvmi_globen, i, 0, 0, 0); |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | static inline long __vmintop_globdis(long i) | 147 | static inline long __vmintop_globdis(long i) |
| 148 | { | 148 | { |
| 149 | return __vmintop(globdis, i, 0, 0, 0); | 149 | return __vmintop(hvmi_globdis, i, 0, 0, 0); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | static inline long __vmintop_locen(long i) | 152 | static inline long __vmintop_locen(long i) |
| 153 | { | 153 | { |
| 154 | return __vmintop(locen, i, 0, 0, 0); | 154 | return __vmintop(hvmi_locen, i, 0, 0, 0); |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | static inline long __vmintop_locdis(long i) | 157 | static inline long __vmintop_locdis(long i) |
| 158 | { | 158 | { |
| 159 | return __vmintop(locdis, i, 0, 0, 0); | 159 | return __vmintop(hvmi_locdis, i, 0, 0, 0); |
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | static inline long __vmintop_affinity(long i, long cpu) | 162 | static inline long __vmintop_affinity(long i, long cpu) |
| 163 | { | 163 | { |
| 164 | return __vmintop(locdis, i, cpu, 0, 0); | 164 | return __vmintop(hvmi_affinity, i, cpu, 0, 0); |
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | static inline long __vmintop_get(void) | 167 | static inline long __vmintop_get(void) |
| 168 | { | 168 | { |
| 169 | return __vmintop(get, 0, 0, 0, 0); | 169 | return __vmintop(hvmi_get, 0, 0, 0, 0); |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | static inline long __vmintop_peek(void) | 172 | static inline long __vmintop_peek(void) |
| 173 | { | 173 | { |
| 174 | return __vmintop(peek, 0, 0, 0, 0); | 174 | return __vmintop(hvmi_peek, 0, 0, 0, 0); |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | static inline long __vmintop_status(long i) | 177 | static inline long __vmintop_status(long i) |
| 178 | { | 178 | { |
| 179 | return __vmintop(status, i, 0, 0, 0); | 179 | return __vmintop(hvmi_status, i, 0, 0, 0); |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | static inline long __vmintop_post(long i) | 182 | static inline long __vmintop_post(long i) |
| 183 | { | 183 | { |
| 184 | return __vmintop(post, i, 0, 0, 0); | 184 | return __vmintop(hvmi_post, i, 0, 0, 0); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | static inline long __vmintop_clear(long i) | 187 | static inline long __vmintop_clear(long i) |
| 188 | { | 188 | { |
| 189 | return __vmintop(clear, i, 0, 0, 0); | 189 | return __vmintop(hvmi_clear, i, 0, 0, 0); |
| 190 | } | 190 | } |
| 191 | 191 | ||
| 192 | #else /* Only assembly code should reference these */ | 192 | #else /* Only assembly code should reference these */ |
diff --git a/arch/hexagon/include/asm/io.h b/arch/hexagon/include/asm/io.h index 1b7698e19139..70298996e9b2 100644 --- a/arch/hexagon/include/asm/io.h +++ b/arch/hexagon/include/asm/io.h | |||
| @@ -189,6 +189,8 @@ static inline void writel(u32 data, volatile void __iomem *addr) | |||
| 189 | #define writew_relaxed __raw_writew | 189 | #define writew_relaxed __raw_writew |
| 190 | #define writel_relaxed __raw_writel | 190 | #define writel_relaxed __raw_writel |
| 191 | 191 | ||
| 192 | #define mmiowb() | ||
| 193 | |||
| 192 | /* | 194 | /* |
| 193 | * Need an mtype somewhere in here, for cache type deals? | 195 | * Need an mtype somewhere in here, for cache type deals? |
| 194 | * This is probably too long for an inline. | 196 | * This is probably too long for an inline. |
diff --git a/arch/hexagon/include/asm/kgdb.h b/arch/hexagon/include/asm/kgdb.h index 32a6fb66944a..ccd3ac336b24 100644 --- a/arch/hexagon/include/asm/kgdb.h +++ b/arch/hexagon/include/asm/kgdb.h | |||
| @@ -34,10 +34,11 @@ static inline void arch_kgdb_breakpoint(void) | |||
| 34 | * 32 gpr + sa0/1 + lc0/1 + m0/1 + gp + ugp + pred + pc = 42 total. | 34 | * 32 gpr + sa0/1 + lc0/1 + m0/1 + gp + ugp + pred + pc = 42 total. |
| 35 | * vm regs = psp+elr+est+badva = 4 | 35 | * vm regs = psp+elr+est+badva = 4 |
| 36 | * syscall+restart = 2 more | 36 | * syscall+restart = 2 more |
| 37 | * so 48 = 42 +4 + 2 | 37 | * also add cs0/1 = 2 |
| 38 | * so 48 = 42 + 4 + 2 + 2 | ||
| 38 | */ | 39 | */ |
| 39 | #define DBG_USER_REGS 42 | 40 | #define DBG_USER_REGS 42 |
| 40 | #define DBG_MAX_REG_NUM (DBG_USER_REGS + 6) | 41 | #define DBG_MAX_REG_NUM (DBG_USER_REGS + 8) |
| 41 | #define NUMREGBYTES (DBG_MAX_REG_NUM*4) | 42 | #define NUMREGBYTES (DBG_MAX_REG_NUM*4) |
| 42 | 43 | ||
| 43 | #endif /* __HEXAGON_KGDB_H__ */ | 44 | #endif /* __HEXAGON_KGDB_H__ */ |
diff --git a/arch/hexagon/include/asm/pgalloc.h b/arch/hexagon/include/asm/pgalloc.h index 4c9d382d7798..77da3b0ae3c2 100644 --- a/arch/hexagon/include/asm/pgalloc.h +++ b/arch/hexagon/include/asm/pgalloc.h | |||
| @@ -45,7 +45,7 @@ static inline pgd_t *pgd_alloc(struct mm_struct *mm) | |||
| 45 | * map with a copy of the kernel's persistent map. | 45 | * map with a copy of the kernel's persistent map. |
| 46 | */ | 46 | */ |
| 47 | 47 | ||
| 48 | memcpy(pgd, swapper_pg_dir, PTRS_PER_PGD*sizeof(pgd_t *)); | 48 | memcpy(pgd, swapper_pg_dir, PTRS_PER_PGD*sizeof(pgd_t)); |
| 49 | mm->context.generation = kmap_generation; | 49 | mm->context.generation = kmap_generation; |
| 50 | 50 | ||
| 51 | /* Physical version is what is passed to virtual machine on switch */ | 51 | /* Physical version is what is passed to virtual machine on switch */ |
diff --git a/arch/hexagon/include/asm/smp.h b/arch/hexagon/include/asm/smp.h index 2b9b974e0952..ca171c13891d 100644 --- a/arch/hexagon/include/asm/smp.h +++ b/arch/hexagon/include/asm/smp.h | |||
| @@ -29,7 +29,6 @@ enum ipi_message_type { | |||
| 29 | IPI_NOP = 0, | 29 | IPI_NOP = 0, |
| 30 | IPI_RESCHEDULE = 1, | 30 | IPI_RESCHEDULE = 1, |
| 31 | IPI_CALL_FUNC, | 31 | IPI_CALL_FUNC, |
| 32 | IPI_CALL_FUNC_SINGLE, | ||
| 33 | IPI_CPU_STOP, | 32 | IPI_CPU_STOP, |
| 34 | IPI_TIMER, | 33 | IPI_TIMER, |
| 35 | }; | 34 | }; |
diff --git a/arch/hexagon/include/uapi/asm/registers.h b/arch/hexagon/include/uapi/asm/registers.h index 487d6ceca5e7..e7be31840a90 100644 --- a/arch/hexagon/include/uapi/asm/registers.h +++ b/arch/hexagon/include/uapi/asm/registers.h | |||
| @@ -6,8 +6,6 @@ | |||
| 6 | #ifndef _ASM_REGISTERS_H | 6 | #ifndef _ASM_REGISTERS_H |
| 7 | #define _ASM_REGISTERS_H | 7 | #define _ASM_REGISTERS_H |
| 8 | 8 | ||
| 9 | #define SP r29 | ||
| 10 | |||
| 11 | #ifndef __ASSEMBLY__ | 9 | #ifndef __ASSEMBLY__ |
| 12 | 10 | ||
| 13 | /* See kernel/entry.S for further documentation. */ | 11 | /* See kernel/entry.S for further documentation. */ |
| @@ -215,7 +213,7 @@ struct pt_regs { | |||
| 215 | #define pt_clr_singlestep(regs) ((regs)->hvmer.vmest &= ~(1<<HVM_VMEST_SS_SFT)) | 213 | #define pt_clr_singlestep(regs) ((regs)->hvmer.vmest &= ~(1<<HVM_VMEST_SS_SFT)) |
| 216 | 214 | ||
| 217 | #define pt_set_rte_sp(regs, sp) do {\ | 215 | #define pt_set_rte_sp(regs, sp) do {\ |
| 218 | pt_psp(regs) = (regs)->SP = (sp);\ | 216 | pt_psp(regs) = (regs)->r29 = (sp);\ |
| 219 | } while (0) | 217 | } while (0) |
| 220 | 218 | ||
| 221 | #define pt_set_kmode(regs) \ | 219 | #define pt_set_kmode(regs) \ |
diff --git a/arch/hexagon/include/uapi/asm/setup.h b/arch/hexagon/include/uapi/asm/setup.h index e48285e4af96..7e3952d6221c 100644 --- a/arch/hexagon/include/uapi/asm/setup.h +++ b/arch/hexagon/include/uapi/asm/setup.h | |||
| @@ -19,7 +19,12 @@ | |||
| 19 | #ifndef _ASM_SETUP_H | 19 | #ifndef _ASM_SETUP_H |
| 20 | #define _ASM_SETUP_H | 20 | #define _ASM_SETUP_H |
| 21 | 21 | ||
| 22 | #ifdef __KERNEL__ | ||
| 22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
| 24 | #else | ||
| 25 | #define __init | ||
| 26 | #endif | ||
| 27 | |||
| 23 | #include <asm-generic/setup.h> | 28 | #include <asm-generic/setup.h> |
| 24 | 29 | ||
| 25 | extern char external_cmdline_buffer; | 30 | extern char external_cmdline_buffer; |
