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
This commit is contained in:
Коммит
6538d62521
|
@ -813,9 +813,6 @@ static void __init clocksource_init(void)
|
|||
static int decrementer_set_next_event(unsigned long evt,
|
||||
struct clock_event_device *dev)
|
||||
{
|
||||
/* Don't adjust the decrementer if some irq work is pending */
|
||||
if (test_irq_work_pending())
|
||||
return 0;
|
||||
__get_cpu_var(decrementers_next_tb) = get_tb_or_rtc() + evt;
|
||||
set_dec(evt);
|
||||
|
||||
|
|
|
@ -549,7 +549,8 @@ static int ioda_eeh_reset(struct eeh_pe *pe, int option)
|
|||
ret = ioda_eeh_phb_reset(hose, option);
|
||||
} else {
|
||||
bus = eeh_pe_bus_get(pe);
|
||||
if (pci_is_root_bus(bus))
|
||||
if (pci_is_root_bus(bus) ||
|
||||
pci_is_root_bus(bus->parent))
|
||||
ret = ioda_eeh_root_reset(hose, option);
|
||||
else
|
||||
ret = ioda_eeh_bridge_reset(hose, bus->self, option);
|
||||
|
|
Загрузка…
Ссылка в новой задаче