aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/configs/tilegx_defconfig1
-rw-r--r--arch/tile/configs/tilepro_defconfig1
-rw-r--r--arch/tile/include/asm/Kbuild1
-rw-r--r--arch/tile/include/asm/io.h4
-rw-r--r--arch/tile/kernel/early_printk.c19
-rw-r--r--arch/tile/kernel/pci_gx.c8
-rw-r--r--arch/tile/kernel/setup.c45
7 files changed, 41 insertions, 38 deletions
diff --git a/arch/tile/configs/tilegx_defconfig b/arch/tile/configs/tilegx_defconfig
index 91de7dd7427f..37dc9364c4a1 100644
--- a/arch/tile/configs/tilegx_defconfig
+++ b/arch/tile/configs/tilegx_defconfig
@@ -218,7 +218,6 @@ CONFIG_MACVLAN=m
218CONFIG_MACVTAP=m 218CONFIG_MACVTAP=m
219CONFIG_NETCONSOLE=m 219CONFIG_NETCONSOLE=m
220CONFIG_NETCONSOLE_DYNAMIC=y 220CONFIG_NETCONSOLE_DYNAMIC=y
221CONFIG_NETPOLL_TRAP=y
222CONFIG_TUN=y 221CONFIG_TUN=y
223CONFIG_VETH=m 222CONFIG_VETH=m
224CONFIG_NET_DSA_MV88E6060=y 223CONFIG_NET_DSA_MV88E6060=y
diff --git a/arch/tile/configs/tilepro_defconfig b/arch/tile/configs/tilepro_defconfig
index c7702b7ab7a5..76a2781dec2c 100644
--- a/arch/tile/configs/tilepro_defconfig
+++ b/arch/tile/configs/tilepro_defconfig
@@ -337,7 +337,6 @@ CONFIG_MACVLAN=m
337CONFIG_MACVTAP=m 337CONFIG_MACVTAP=m
338CONFIG_NETCONSOLE=m 338CONFIG_NETCONSOLE=m
339CONFIG_NETCONSOLE_DYNAMIC=y 339CONFIG_NETCONSOLE_DYNAMIC=y
340CONFIG_NETPOLL_TRAP=y
341CONFIG_TUN=y 340CONFIG_TUN=y
342CONFIG_VETH=m 341CONFIG_VETH=m
343CONFIG_NET_DSA_MV88E6060=y 342CONFIG_NET_DSA_MV88E6060=y
diff --git a/arch/tile/include/asm/Kbuild b/arch/tile/include/asm/Kbuild
index e6462b8a6284..b4c488b65745 100644
--- a/arch/tile/include/asm/Kbuild
+++ b/arch/tile/include/asm/Kbuild
@@ -11,7 +11,6 @@ generic-y += errno.h
11generic-y += exec.h 11generic-y += exec.h
12generic-y += fb.h 12generic-y += fb.h
13generic-y += fcntl.h 13generic-y += fcntl.h
14generic-y += hash.h
15generic-y += hw_irq.h 14generic-y += hw_irq.h
16generic-y += ioctl.h 15generic-y += ioctl.h
17generic-y += ioctls.h 16generic-y += ioctls.h
diff --git a/arch/tile/include/asm/io.h b/arch/tile/include/asm/io.h
index 4353539fb887..6ef4ecab1df2 100644
--- a/arch/tile/include/asm/io.h
+++ b/arch/tile/include/asm/io.h
@@ -241,6 +241,10 @@ static inline void writeq(u64 val, unsigned long addr)
241#define readw_relaxed readw 241#define readw_relaxed readw
242#define readl_relaxed readl 242#define readl_relaxed readl
243#define readq_relaxed readq 243#define readq_relaxed readq
244#define writeb_relaxed writeb
245#define writew_relaxed writew
246#define writel_relaxed writel
247#define writeq_relaxed writeq
244 248
245#define ioread8 readb 249#define ioread8 readb
246#define ioread16 readw 250#define ioread16 readw
diff --git a/arch/tile/kernel/early_printk.c b/arch/tile/kernel/early_printk.c
index b608e00e7f6d..aefb2c086726 100644
--- a/arch/tile/kernel/early_printk.c
+++ b/arch/tile/kernel/early_printk.c
@@ -43,13 +43,20 @@ static struct console early_hv_console = {
43 43
44void early_panic(const char *fmt, ...) 44void early_panic(const char *fmt, ...)
45{ 45{
46 va_list ap; 46 struct va_format vaf;
47 va_list args;
48
47 arch_local_irq_disable_all(); 49 arch_local_irq_disable_all();
48 va_start(ap, fmt); 50
49 early_printk("Kernel panic - not syncing: "); 51 va_start(args, fmt);
50 early_vprintk(fmt, ap); 52
51 early_printk("\n"); 53 vaf.fmt = fmt;
52 va_end(ap); 54 vaf.va = &args;
55
56 early_printk("Kernel panic - not syncing: %pV", &vaf);
57
58 va_end(args);
59
53 dump_stack(); 60 dump_stack();
54 hv_halt(); 61 hv_halt();
55} 62}
diff --git a/arch/tile/kernel/pci_gx.c b/arch/tile/kernel/pci_gx.c
index 47e048e31641..2c95f37ebbed 100644
--- a/arch/tile/kernel/pci_gx.c
+++ b/arch/tile/kernel/pci_gx.c
@@ -1441,7 +1441,7 @@ static struct pci_ops tile_cfg_ops = {
1441static unsigned int tilegx_msi_startup(struct irq_data *d) 1441static unsigned int tilegx_msi_startup(struct irq_data *d)
1442{ 1442{
1443 if (d->msi_desc) 1443 if (d->msi_desc)
1444 unmask_msi_irq(d); 1444 pci_msi_unmask_irq(d);
1445 1445
1446 return 0; 1446 return 0;
1447} 1447}
@@ -1453,14 +1453,14 @@ static void tilegx_msi_ack(struct irq_data *d)
1453 1453
1454static void tilegx_msi_mask(struct irq_data *d) 1454static void tilegx_msi_mask(struct irq_data *d)
1455{ 1455{
1456 mask_msi_irq(d); 1456 pci_msi_mask_irq(d);
1457 __insn_mtspr(SPR_IPI_MASK_SET_K, 1UL << d->irq); 1457 __insn_mtspr(SPR_IPI_MASK_SET_K, 1UL << d->irq);
1458} 1458}
1459 1459
1460static void tilegx_msi_unmask(struct irq_data *d) 1460static void tilegx_msi_unmask(struct irq_data *d)
1461{ 1461{
1462 __insn_mtspr(SPR_IPI_MASK_RESET_K, 1UL << d->irq); 1462 __insn_mtspr(SPR_IPI_MASK_RESET_K, 1UL << d->irq);
1463 unmask_msi_irq(d); 1463 pci_msi_unmask_irq(d);
1464} 1464}
1465 1465
1466static struct irq_chip tilegx_msi_chip = { 1466static struct irq_chip tilegx_msi_chip = {
@@ -1573,7 +1573,7 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
1573 msg.address_hi = msi_addr >> 32; 1573 msg.address_hi = msi_addr >> 32;
1574 msg.address_lo = msi_addr & 0xffffffff; 1574 msg.address_lo = msi_addr & 0xffffffff;
1575 1575
1576 write_msi_msg(irq, &msg); 1576 pci_write_msi_msg(irq, &msg);
1577 irq_set_chip_and_handler(irq, &tilegx_msi_chip, handle_level_irq); 1577 irq_set_chip_and_handler(irq, &tilegx_msi_chip, handle_level_irq);
1578 irq_set_handler_data(irq, controller); 1578 irq_set_handler_data(irq, controller);
1579 1579
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index f183f1c92b4f..864eea69556d 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -533,11 +533,10 @@ static void __init setup_memory(void)
533 } 533 }
534 } 534 }
535 physpages -= dropped_pages; 535 physpages -= dropped_pages;
536 pr_warning("Only using %ldMB memory;" 536 pr_warn("Only using %ldMB memory - ignoring %ldMB\n",
537 " ignoring %ldMB.\n", 537 physpages >> (20 - PAGE_SHIFT),
538 physpages >> (20 - PAGE_SHIFT), 538 dropped_pages >> (20 - PAGE_SHIFT));
539 dropped_pages >> (20 - PAGE_SHIFT)); 539 pr_warn("Consider using a larger page size\n");
540 pr_warning("Consider using a larger page size.\n");
541 } 540 }
542#endif 541#endif
543 542
@@ -564,9 +563,8 @@ static void __init setup_memory(void)
564 563
565#ifndef __tilegx__ 564#ifndef __tilegx__
566 if (node_end_pfn[0] > MAXMEM_PFN) { 565 if (node_end_pfn[0] > MAXMEM_PFN) {
567 pr_warning("Only using %ldMB LOWMEM.\n", 566 pr_warn("Only using %ldMB LOWMEM\n", MAXMEM >> 20);
568 MAXMEM>>20); 567 pr_warn("Use a HIGHMEM enabled kernel\n");
569 pr_warning("Use a HIGHMEM enabled kernel.\n");
570 max_low_pfn = MAXMEM_PFN; 568 max_low_pfn = MAXMEM_PFN;
571 max_pfn = MAXMEM_PFN; 569 max_pfn = MAXMEM_PFN;
572 node_end_pfn[0] = MAXMEM_PFN; 570 node_end_pfn[0] = MAXMEM_PFN;
@@ -1109,8 +1107,8 @@ static void __init load_hv_initrd(void)
1109 fd = hv_fs_findfile((HV_VirtAddr) initramfs_file); 1107 fd = hv_fs_findfile((HV_VirtAddr) initramfs_file);
1110 if (fd == HV_ENOENT) { 1108 if (fd == HV_ENOENT) {
1111 if (set_initramfs_file) { 1109 if (set_initramfs_file) {
1112 pr_warning("No such hvfs initramfs file '%s'\n", 1110 pr_warn("No such hvfs initramfs file '%s'\n",
1113 initramfs_file); 1111 initramfs_file);
1114 return; 1112 return;
1115 } else { 1113 } else {
1116 /* Try old backwards-compatible name. */ 1114 /* Try old backwards-compatible name. */
@@ -1123,8 +1121,8 @@ static void __init load_hv_initrd(void)
1123 stat = hv_fs_fstat(fd); 1121 stat = hv_fs_fstat(fd);
1124 BUG_ON(stat.size < 0); 1122 BUG_ON(stat.size < 0);
1125 if (stat.flags & HV_FS_ISDIR) { 1123 if (stat.flags & HV_FS_ISDIR) {
1126 pr_warning("Ignoring hvfs file '%s': it's a directory.\n", 1124 pr_warn("Ignoring hvfs file '%s': it's a directory\n",
1127 initramfs_file); 1125 initramfs_file);
1128 return; 1126 return;
1129 } 1127 }
1130 initrd = alloc_bootmem_pages(stat.size); 1128 initrd = alloc_bootmem_pages(stat.size);
@@ -1182,9 +1180,8 @@ static void __init validate_hv(void)
1182 HV_Topology topology = hv_inquire_topology(); 1180 HV_Topology topology = hv_inquire_topology();
1183 BUG_ON(topology.coord.x != 0 || topology.coord.y != 0); 1181 BUG_ON(topology.coord.x != 0 || topology.coord.y != 0);
1184 if (topology.width != 1 || topology.height != 1) { 1182 if (topology.width != 1 || topology.height != 1) {
1185 pr_warning("Warning: booting UP kernel on %dx%d grid;" 1183 pr_warn("Warning: booting UP kernel on %dx%d grid; will ignore all but first tile\n",
1186 " will ignore all but first tile.\n", 1184 topology.width, topology.height);
1187 topology.width, topology.height);
1188 } 1185 }
1189#endif 1186#endif
1190 1187
@@ -1205,9 +1202,8 @@ static void __init validate_hv(void)
1205 * We use a struct cpumask for this, so it must be big enough. 1202 * We use a struct cpumask for this, so it must be big enough.
1206 */ 1203 */
1207 if ((smp_height * smp_width) > nr_cpu_ids) 1204 if ((smp_height * smp_width) > nr_cpu_ids)
1208 early_panic("Hypervisor %d x %d grid too big for Linux" 1205 early_panic("Hypervisor %d x %d grid too big for Linux NR_CPUS %d\n",
1209 " NR_CPUS %d\n", smp_height, smp_width, 1206 smp_height, smp_width, nr_cpu_ids);
1210 nr_cpu_ids);
1211#endif 1207#endif
1212 1208
1213 /* 1209 /*
@@ -1262,10 +1258,9 @@ static void __init validate_va(void)
1262 1258
1263 /* Kernel PCs must have their high bit set; see intvec.S. */ 1259 /* Kernel PCs must have their high bit set; see intvec.S. */
1264 if ((long)VMALLOC_START >= 0) 1260 if ((long)VMALLOC_START >= 0)
1265 early_panic( 1261 early_panic("Linux VMALLOC region below the 2GB line (%#lx)!\n"
1266 "Linux VMALLOC region below the 2GB line (%#lx)!\n" 1262 "Reconfigure the kernel with smaller VMALLOC_RESERVE\n",
1267 "Reconfigure the kernel with smaller VMALLOC_RESERVE.\n", 1263 VMALLOC_START);
1268 VMALLOC_START);
1269#endif 1264#endif
1270} 1265}
1271 1266
@@ -1392,7 +1387,7 @@ static void __init setup_cpu_maps(void)
1392 1387
1393static int __init dataplane(char *str) 1388static int __init dataplane(char *str)
1394{ 1389{
1395 pr_warning("WARNING: dataplane support disabled in this kernel\n"); 1390 pr_warn("WARNING: dataplane support disabled in this kernel\n");
1396 return 0; 1391 return 0;
1397} 1392}
1398 1393
@@ -1410,8 +1405,8 @@ void __init setup_arch(char **cmdline_p)
1410 len = hv_get_command_line((HV_VirtAddr) boot_command_line, 1405 len = hv_get_command_line((HV_VirtAddr) boot_command_line,
1411 COMMAND_LINE_SIZE); 1406 COMMAND_LINE_SIZE);
1412 if (boot_command_line[0]) 1407 if (boot_command_line[0])
1413 pr_warning("WARNING: ignoring dynamic command line \"%s\"\n", 1408 pr_warn("WARNING: ignoring dynamic command line \"%s\"\n",
1414 boot_command_line); 1409 boot_command_line);
1415 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE); 1410 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
1416#else 1411#else
1417 char *hv_cmdline; 1412 char *hv_cmdline;