aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-16 16:54:16 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-16 16:54:16 -0500
commit0db2812a5240f2663b92d8d4b761122dd2e0c6c3 (patch)
tree4966ada2a4a75dc89b7038ac1694a8acc4d3aa3f /arch/tile/include
parenteb64c3c6cdb8fa8a4d324eb71a9033b62e150918 (diff)
parentc47b15c4928c46b889a1ea2e9b54f4110514e1c3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Pull arch/tile updates from Chris Metcalf: "Note that one of the changes converts my old cmetcalf@tilera.com email in MAINTAINERS to the cmetcalf@ezchip.com email that you see on this email" * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: arch/tile: update MAINTAINERS email to EZchip tile: avoid undefined behavior with regs[TREG_TP] etc arch: tile: kernel: kgdb.c: Use memcpy() instead of pointer copy one by one tile: Use the more common pr_warn instead of pr_warning arch: tile: gxio: Export symbols for module using in 'mpipe.c' arch: tile: kernel: signal.c: Use __copy_from/to_user() instead of __get/put_user()
Diffstat (limited to 'arch/tile/include')
-rw-r--r--arch/tile/include/asm/io.h5
-rw-r--r--arch/tile/include/asm/pgtable.h4
-rw-r--r--arch/tile/include/asm/pgtable_64.h2
-rw-r--r--arch/tile/include/uapi/asm/ptrace.h16
-rw-r--r--arch/tile/include/uapi/asm/sigcontext.h14
5 files changed, 25 insertions, 16 deletions
diff --git a/arch/tile/include/asm/io.h b/arch/tile/include/asm/io.h
index d372641054d9..6ef4ecab1df2 100644
--- a/arch/tile/include/asm/io.h
+++ b/arch/tile/include/asm/io.h
@@ -396,8 +396,7 @@ extern void ioport_unmap(void __iomem *addr);
396static inline long ioport_panic(void) 396static inline long ioport_panic(void)
397{ 397{
398#ifdef __tilegx__ 398#ifdef __tilegx__
399 panic("PCI IO space support is disabled. Configure the kernel with" 399 panic("PCI IO space support is disabled. Configure the kernel with CONFIG_TILE_PCI_IO to enable it");
400 " CONFIG_TILE_PCI_IO to enable it");
401#else 400#else
402 panic("inb/outb and friends do not exist on tile"); 401 panic("inb/outb and friends do not exist on tile");
403#endif 402#endif
@@ -406,7 +405,7 @@ static inline long ioport_panic(void)
406 405
407static inline void __iomem *ioport_map(unsigned long port, unsigned int len) 406static inline void __iomem *ioport_map(unsigned long port, unsigned int len)
408{ 407{
409 pr_info("ioport_map: mapping IO resources is unsupported on tile.\n"); 408 pr_info("ioport_map: mapping IO resources is unsupported on tile\n");
410 return NULL; 409 return NULL;
411} 410}
412 411
diff --git a/arch/tile/include/asm/pgtable.h b/arch/tile/include/asm/pgtable.h
index 33587f16c152..5d1950788c69 100644
--- a/arch/tile/include/asm/pgtable.h
+++ b/arch/tile/include/asm/pgtable.h
@@ -235,9 +235,9 @@ static inline void __pte_clear(pte_t *ptep)
235#define pte_donemigrate(x) hv_pte_set_present(hv_pte_clear_migrating(x)) 235#define pte_donemigrate(x) hv_pte_set_present(hv_pte_clear_migrating(x))
236 236
237#define pte_ERROR(e) \ 237#define pte_ERROR(e) \
238 pr_err("%s:%d: bad pte 0x%016llx.\n", __FILE__, __LINE__, pte_val(e)) 238 pr_err("%s:%d: bad pte 0x%016llx\n", __FILE__, __LINE__, pte_val(e))
239#define pgd_ERROR(e) \ 239#define pgd_ERROR(e) \
240 pr_err("%s:%d: bad pgd 0x%016llx.\n", __FILE__, __LINE__, pgd_val(e)) 240 pr_err("%s:%d: bad pgd 0x%016llx\n", __FILE__, __LINE__, pgd_val(e))
241 241
242/* Return PA and protection info for a given kernel VA. */ 242/* Return PA and protection info for a given kernel VA. */
243int va_to_cpa_and_pte(void *va, phys_addr_t *cpa, pte_t *pte); 243int va_to_cpa_and_pte(void *va, phys_addr_t *cpa, pte_t *pte);
diff --git a/arch/tile/include/asm/pgtable_64.h b/arch/tile/include/asm/pgtable_64.h
index 2c8a9cd102d3..e96cec52f6d8 100644
--- a/arch/tile/include/asm/pgtable_64.h
+++ b/arch/tile/include/asm/pgtable_64.h
@@ -86,7 +86,7 @@ static inline int pud_huge_page(pud_t pud)
86} 86}
87 87
88#define pmd_ERROR(e) \ 88#define pmd_ERROR(e) \
89 pr_err("%s:%d: bad pmd 0x%016llx.\n", __FILE__, __LINE__, pmd_val(e)) 89 pr_err("%s:%d: bad pmd 0x%016llx\n", __FILE__, __LINE__, pmd_val(e))
90 90
91static inline void pud_clear(pud_t *pudp) 91static inline void pud_clear(pud_t *pudp)
92{ 92{
diff --git a/arch/tile/include/uapi/asm/ptrace.h b/arch/tile/include/uapi/asm/ptrace.h
index 7757e1985fb6..d03b829857e8 100644
--- a/arch/tile/include/uapi/asm/ptrace.h
+++ b/arch/tile/include/uapi/asm/ptrace.h
@@ -52,12 +52,16 @@ typedef uint_reg_t pt_reg_t;
52 * system call or exception. "struct sigcontext" has the same shape. 52 * system call or exception. "struct sigcontext" has the same shape.
53 */ 53 */
54struct pt_regs { 54struct pt_regs {
55 /* Saved main processor registers; 56..63 are special. */ 55 union {
56 /* tp, sp, and lr must immediately follow regs[] for aliasing. */ 56 /* Saved main processor registers; 56..63 are special. */
57 pt_reg_t regs[53]; 57 pt_reg_t regs[56];
58 pt_reg_t tp; /* aliases regs[TREG_TP] */ 58 struct {
59 pt_reg_t sp; /* aliases regs[TREG_SP] */ 59 pt_reg_t __regs[53];
60 pt_reg_t lr; /* aliases regs[TREG_LR] */ 60 pt_reg_t tp; /* aliases regs[TREG_TP] */
61 pt_reg_t sp; /* aliases regs[TREG_SP] */
62 pt_reg_t lr; /* aliases regs[TREG_LR] */
63 };
64 };
61 65
62 /* Saved special registers. */ 66 /* Saved special registers. */
63 pt_reg_t pc; /* stored in EX_CONTEXT_K_0 */ 67 pt_reg_t pc; /* stored in EX_CONTEXT_K_0 */
diff --git a/arch/tile/include/uapi/asm/sigcontext.h b/arch/tile/include/uapi/asm/sigcontext.h
index 6348e59d3724..39ff5d1a232d 100644
--- a/arch/tile/include/uapi/asm/sigcontext.h
+++ b/arch/tile/include/uapi/asm/sigcontext.h
@@ -24,10 +24,16 @@
24 * but is simplified since we know the fault is from userspace. 24 * but is simplified since we know the fault is from userspace.
25 */ 25 */
26struct sigcontext { 26struct sigcontext {
27 __uint_reg_t gregs[53]; /* General-purpose registers. */ 27 __extension__ union {
28 __uint_reg_t tp; /* Aliases gregs[TREG_TP]. */ 28 /* General-purpose registers. */
29 __uint_reg_t sp; /* Aliases gregs[TREG_SP]. */ 29 __uint_reg_t gregs[56];
30 __uint_reg_t lr; /* Aliases gregs[TREG_LR]. */ 30 __extension__ struct {
31 __uint_reg_t __gregs[53];
32 __uint_reg_t tp; /* Aliases gregs[TREG_TP]. */
33 __uint_reg_t sp; /* Aliases gregs[TREG_SP]. */
34 __uint_reg_t lr; /* Aliases gregs[TREG_LR]. */
35 };
36 };
31 __uint_reg_t pc; /* Program counter. */ 37 __uint_reg_t pc; /* Program counter. */
32 __uint_reg_t ics; /* In Interrupt Critical Section? */ 38 __uint_reg_t ics; /* In Interrupt Critical Section? */
33 __uint_reg_t faultnum; /* Fault number. */ 39 __uint_reg_t faultnum; /* Fault number. */