On Fri, Mar 14, 2014 at 05:38:09PM +0800, Yijing Wang wrote: > pci_is_bridge() return true only when the device subordinate > is not equal to NULL. This confuses people. PCI device is a > bridge means header type(bit 0 through 6) is 0x1(PCI bridge) or > 0x2(CardBus bridge). > > Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx> > --- > drivers/pci/pci-acpi.c | 5 ----- > drivers/pci/pci-driver.c | 8 ++++---- > drivers/pci/pci.h | 2 +- > 3 files changed, 5 insertions(+), 10 deletions(-) > > diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c > index f49abef..4bc7971 100644 > --- a/drivers/pci/pci-acpi.c > +++ b/drivers/pci/pci-acpi.c > @@ -309,11 +309,6 @@ static struct acpi_device *acpi_pci_find_companion(struct device *dev) > bool check_children; > u64 addr; > > - /* > - * pci_is_bridge() is not suitable here, because pci_dev->subordinate > - * is set only after acpi_pci_find_device() has been called for the > - * given device. > - */ This hunk shouldn't be here. My guess is that you intended to replace the code below with the new pci_is_bridge() that you introduced in patch [2/2]. That new pci_is_bridge() is never used, and it does the same hdr_type test as the code below. But you apparently forgot to change this code to use it? > check_children = pci_dev->hdr_type == PCI_HEADER_TYPE_BRIDGE > || pci_dev->hdr_type == PCI_HEADER_TYPE_CARDBUS; > /* Please ref to ACPI spec for the syntax of _ADR */ > diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c > index 25f0bc6..019dcb2 100644 > --- a/drivers/pci/pci-driver.c > +++ b/drivers/pci/pci-driver.c > @@ -580,14 +580,14 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev) > { > pci_fixup_device(pci_fixup_resume, pci_dev); > > - if (!pci_is_bridge(pci_dev)) > + if (!pci_has_subordinate(pci_dev)) The rest of this is a simple rename and looks fine to me. > pci_enable_wake(pci_dev, PCI_D0, false); > } > > static void pci_pm_default_suspend(struct pci_dev *pci_dev) > { > /* Disable non-bridge devices without PM support */ > - if (!pci_is_bridge(pci_dev)) > + if (!pci_has_subordinate(pci_dev)) > pci_disable_enabled_device(pci_dev); > } > > @@ -711,7 +711,7 @@ static int pci_pm_suspend_noirq(struct device *dev) > > if (!pci_dev->state_saved) { > pci_save_state(pci_dev); > - if (!pci_is_bridge(pci_dev)) > + if (!pci_has_subordinate(pci_dev)) > pci_prepare_to_sleep(pci_dev); > } > > @@ -954,7 +954,7 @@ static int pci_pm_poweroff_noirq(struct device *dev) > return error; > } > > - if (!pci_dev->state_saved && !pci_is_bridge(pci_dev)) > + if (!pci_dev->state_saved && !pci_has_subordinate(pci_dev)) > pci_prepare_to_sleep(pci_dev); > > /* > diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h > index 4df38df..a3b9cc1 100644 > --- a/drivers/pci/pci.h > +++ b/drivers/pci/pci.h > @@ -79,7 +79,7 @@ static inline void pci_wakeup_event(struct pci_dev *dev) > pm_wakeup_event(&dev->dev, 100); > } > > -static inline bool pci_is_bridge(struct pci_dev *pci_dev) > +static inline bool pci_has_subordinate(struct pci_dev *pci_dev) > { > return !!(pci_dev->subordinate); > } > -- > 1.7.1 > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html