Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus

Pull MIPS fixes from Ralf Baechle:
"MIPS fixes for 3.11. Half of then is for Netlogic the remainder
touches things across arch/mips.

Nothing really dramatic and by rc1 standards MIPS will be in fairly
good shape with this applied. Tested by building all MIPS defconfigs
of which with this pull request four platforms won't build. And yes,
it boots also on my favorite test systems"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
MIPS: kvm: Kconfig: Drop HAVE_KVM dependency from VIRTUALIZATION
MIPS: Octeon: Fix DT pruning bug with pip ports
MIPS: KVM: Mark KVM_GUEST (T&E KVM) as BROKEN_ON_SMP
MIPS: tlbex: fix broken build in v3.11-rc1
MIPS: Netlogic: Add XLP PIC irqdomain
MIPS: Netlogic: Fix USB block's coherent DMA mask
MIPS: tlbex: Fix typo in r3000 tlb store handler
MIPS: BMIPS: Fix thinko to release slave TP from reset
MIPS: Delete dead invocation of exception_exit().

+69 -21
+1
arch/mips/Kconfig
··· 1702 1702 1703 1703 config KVM_GUEST 1704 1704 bool "KVM Guest Kernel" 1705 + depends on BROKEN_ON_SMP 1705 1706 help 1706 1707 Select this option if building a guest kernel for KVM (Trap & Emulate) mode 1707 1708
+3 -2
arch/mips/cavium-octeon/octeon-platform.c
··· 334 334 char name_buffer[20]; 335 335 int iface; 336 336 int p; 337 - int count; 337 + int count = 0; 338 338 339 - count = cvmx_helper_interface_enumerate(idx); 339 + if (cvmx_helper_interface_enumerate(idx) == 0) 340 + count = cvmx_helper_ports_on_interface(idx); 340 341 341 342 snprintf(name_buffer, sizeof(name_buffer), "interface@%d", idx); 342 343 iface = fdt_subnode_offset(initial_boot_params, pip, name_buffer);
+1 -1
arch/mips/kernel/smp-bmips.c
··· 173 173 else { 174 174 #if defined(CONFIG_CPU_BMIPS4350) || defined(CONFIG_CPU_BMIPS4380) 175 175 /* Reset slave TP1 if booting from TP0 */ 176 - if (cpu_logical_map(cpu) == 0) 176 + if (cpu_logical_map(cpu) == 1) 177 177 set_c0_brcm_cmt_ctrl(0x01); 178 178 #elif defined(CONFIG_CPU_BMIPS5000) 179 179 if (cpu & 0x01)
-1
arch/mips/kernel/traps.c
··· 1242 1242 panic("Caught Machine Check exception - %scaused by multiple " 1243 1243 "matching entries in the TLB.", 1244 1244 (multi_match) ? "" : "not "); 1245 - exception_exit(prev_state); 1246 1245 } 1247 1246 1248 1247 asmlinkage void do_mt(struct pt_regs *regs)
-1
arch/mips/kvm/Kconfig
··· 5 5 6 6 menuconfig VIRTUALIZATION 7 7 bool "Virtualization" 8 - depends on HAVE_KVM 9 8 ---help--- 10 9 Say Y here to get to see options for using your Linux host to run 11 10 other operating systems inside virtual machines (guests).
+2 -2
arch/mips/mm/tlbex.c
··· 1456 1456 { 1457 1457 const int a0 = 4; 1458 1458 const int a1 = 5; 1459 - u32 *p = tlbmiss_handler_setup_pgd_array; 1459 + u32 *p = tlbmiss_handler_setup_pgd; 1460 1460 const int tlbmiss_handler_setup_pgd_size = 1461 1461 tlbmiss_handler_setup_pgd_end - tlbmiss_handler_setup_pgd; 1462 1462 struct uasm_label *l = labels; ··· 1793 1793 uasm_i_j(&p, (unsigned long)tlb_do_page_fault_1 & 0x0fffffff); 1794 1794 uasm_i_nop(&p); 1795 1795 1796 - if (p >= handle_tlbs) 1796 + if (p >= handle_tlbs_end) 1797 1797 panic("TLB store handler fastpath space exceeded"); 1798 1798 1799 1799 uasm_resolve_relocs(relocs, labels);
+57 -11
arch/mips/netlogic/common/irq.c
··· 40 40 #include <linux/slab.h> 41 41 #include <linux/irq.h> 42 42 43 + #include <linux/irqdomain.h> 44 + #include <linux/of_address.h> 45 + #include <linux/of_irq.h> 46 + 43 47 #include <asm/errno.h> 44 48 #include <asm/signal.h> 45 49 #include <asm/ptrace.h> ··· 227 223 nodep->irqmask = irqmask; 228 224 } 229 225 230 - void __init arch_init_irq(void) 231 - { 232 - /* Initialize the irq descriptors */ 233 - nlm_init_percpu_irqs(); 234 - nlm_init_node_irqs(0); 235 - write_c0_eimr(nlm_current_node()->irqmask); 236 - #if defined(CONFIG_CPU_XLR) 237 - nlm_setup_fmn_irq(); 238 - #endif 239 - } 240 - 241 226 void nlm_smp_irq_init(int hwcpuid) 242 227 { 243 228 int node, cpu; ··· 258 265 259 266 /* top level irq handling */ 260 267 do_IRQ(nlm_irq_to_xirq(node, i)); 268 + } 269 + 270 + #ifdef CONFIG_OF 271 + static struct irq_domain *xlp_pic_domain; 272 + 273 + static const struct irq_domain_ops xlp_pic_irq_domain_ops = { 274 + .xlate = irq_domain_xlate_onetwocell, 275 + }; 276 + 277 + static int __init xlp_of_pic_init(struct device_node *node, 278 + struct device_node *parent) 279 + { 280 + const int n_picirqs = PIC_IRT_LAST_IRQ - PIC_IRQ_BASE + 1; 281 + struct resource res; 282 + int socid, ret; 283 + 284 + /* we need a hack to get the PIC's SoC chip id */ 285 + ret = of_address_to_resource(node, 0, &res); 286 + if (ret < 0) { 287 + pr_err("PIC %s: reg property not found!\n", node->name); 288 + return -EINVAL; 289 + } 290 + socid = (res.start >> 18) & 0x3; 291 + xlp_pic_domain = irq_domain_add_legacy(node, n_picirqs, 292 + nlm_irq_to_xirq(socid, PIC_IRQ_BASE), PIC_IRQ_BASE, 293 + &xlp_pic_irq_domain_ops, NULL); 294 + if (xlp_pic_domain == NULL) { 295 + pr_err("PIC %s: Creating legacy domain failed!\n", node->name); 296 + return -EINVAL; 297 + } 298 + pr_info("Node %d: IRQ domain created for PIC@%pa\n", socid, 299 + &res.start); 300 + return 0; 301 + } 302 + 303 + static struct of_device_id __initdata xlp_pic_irq_ids[] = { 304 + { .compatible = "netlogic,xlp-pic", .data = xlp_of_pic_init }, 305 + {}, 306 + }; 307 + #endif 308 + 309 + void __init arch_init_irq(void) 310 + { 311 + /* Initialize the irq descriptors */ 312 + nlm_init_percpu_irqs(); 313 + nlm_init_node_irqs(0); 314 + write_c0_eimr(nlm_current_node()->irqmask); 315 + #if defined(CONFIG_CPU_XLR) 316 + nlm_setup_fmn_irq(); 317 + #endif 318 + #if defined(CONFIG_OF) 319 + of_irq_init(xlp_pic_irq_ids); 320 + #endif 261 321 }
+2 -1
arch/mips/netlogic/dts/xlp_evp.dts
··· 76 76 }; 77 77 }; 78 78 pic: pic@4000 { 79 - interrupt-controller; 79 + compatible = "netlogic,xlp-pic"; 80 80 #address-cells = <0>; 81 81 #interrupt-cells = <1>; 82 82 reg = <0 0x4000 0x200>; 83 + interrupt-controller; 83 84 }; 84 85 85 86 nor_flash@1,0 {
+2 -1
arch/mips/netlogic/dts/xlp_svp.dts
··· 76 76 }; 77 77 }; 78 78 pic: pic@4000 { 79 - interrupt-controller; 79 + compatible = "netlogic,xlp-pic"; 80 80 #address-cells = <0>; 81 81 #interrupt-cells = <1>; 82 82 reg = <0 0x4000 0x200>; 83 + interrupt-controller; 83 84 }; 84 85 85 86 nor_flash@1,0 {
+1 -1
arch/mips/netlogic/xlp/usb-init.c
··· 119 119 static void nlm_usb_fixup_final(struct pci_dev *dev) 120 120 { 121 121 dev->dev.dma_mask = &xlp_usb_dmamask; 122 - dev->dev.coherent_dma_mask = DMA_BIT_MASK(64); 122 + dev->dev.coherent_dma_mask = DMA_BIT_MASK(32); 123 123 switch (dev->devfn) { 124 124 case 0x10: 125 125 dev->irq = PIC_EHCI_0_IRQ;