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 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

Pull two powerpc fixes from Ben Herrenschmidt:
"Here are a couple of fixes for 3.15. One from Anton fixes a nasty
regression I introduced when trying to fix a loss of irq_work whose
consequences is that we can completely lose timer interrupts on a
CPU... not pretty.

The other one is a change to our PCIe reset hook to use a firmware
call instead of direct config space accesses to trigger a fundamental
reset on the root port. This is necessary so that the FW gets a
chance to disable the link down error monitoring, which would
otherwise trip and cause subsequent fatal EEH error"

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc: irq work racing with timer interrupt can result in timer interrupt hang
powerpc/powernv: Reset root port in firmware

+2 -4
-3
arch/powerpc/kernel/time.c
··· 813 813 static int decrementer_set_next_event(unsigned long evt, 814 814 struct clock_event_device *dev) 815 815 { 816 - /* Don't adjust the decrementer if some irq work is pending */ 817 - if (test_irq_work_pending()) 818 - return 0; 819 816 __get_cpu_var(decrementers_next_tb) = get_tb_or_rtc() + evt; 820 817 set_dec(evt); 821 818
+2 -1
arch/powerpc/platforms/powernv/eeh-ioda.c
··· 549 549 ret = ioda_eeh_phb_reset(hose, option); 550 550 } else { 551 551 bus = eeh_pe_bus_get(pe); 552 - if (pci_is_root_bus(bus)) 552 + if (pci_is_root_bus(bus) || 553 + pci_is_root_bus(bus->parent)) 553 554 ret = ioda_eeh_root_reset(hose, option); 554 555 else 555 556 ret = ioda_eeh_bridge_reset(hose, bus->self, option);