From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Jiang Liu To: Benjamin Herrenschmidt , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "Rafael J. Wysocki" , Bjorn Helgaas , Randy Dunlap , Yinghai Lu , Borislav Petkov , Grant Likely Cc: Jiang Liu , Konrad Rzeszutek Wilk , Andrew Morton , Tony Luck , Joerg Roedel , Greg Kroah-Hartman , x86@kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org Subject: [Bugfix 0/2] Fix bugs caused by "use irqdomain to dynamically allocate IRQ for IOAPIC" Date: Tue, 5 Aug 2014 11:26:16 +0800 Message-Id: <1407209178-18644-1-git-send-email-jiang.liu@linux.intel.com> Sender: linux-acpi-owner@vger.kernel.org List-ID: Two issues have been reported against patch set "use irqdomain to dynamically allocate IRQ for IOAPIC" at https://lkml.org/lkml/2014/6/9/44. This first one causes failure of suspend/hibernation, please refer to https://lkml.org/lkml/2014/7/28/822 for more information. And we have worked out a patch to fix it (https://lkml.org/lkml/2014/7/30/725) and Borislav has tested it. But with more testing and analysis, I found the provided patch still has some issues: 1) It may cause regression to Xen 2) Flag dev->dev.power.is_prepared has already been cleared when pcibios_enable_device() gets called, so it will cause IOAPIC pin reference count leak. So I reworked the patch to fix above issues. The first patch fixes issue 1 by moving check of dev->dev.power.is_prepared pcibios_enable_irq, so it won't affect Xen. The second patch fixes the IOAPIC pin reference count leakage issue. It also solves the issue we have discussed at http://www.spinics.net/lists/linux-pci/msg32902.html Regards! Gerry Jiang Liu (2): x86, irq, PCI: Keep IRQ assignment for PCI devices during suspend/hibernation x86, irq: Keep balance of IOAPIC pin reference count arch/x86/pci/intel_mid_pci.c | 9 ++++++++- arch/x86/pci/irq.c | 8 +++++++- drivers/acpi/pci_irq.c | 15 +++++++++++++-- include/linux/pci.h | 1 + 4 files changed, 29 insertions(+), 4 deletions(-) -- 1.7.10.4