From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761066Ab2BKEIe (ORCPT ); Fri, 10 Feb 2012 23:08:34 -0500 Received: from rcsinet15.oracle.com ([148.87.113.117]:27061 "EHLO rcsinet15.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760909Ab2BKEHn (ORCPT ); Fri, 10 Feb 2012 23:07:43 -0500 From: Yinghai Lu To: Jesse Barnes , Benjamin Herrenschmidt , Tony Luck Cc: Bjorn Helgaas , Dominik Brodowski , Andrew Morton , Linus Torvalds , Greg Kroah-Hartman , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Yinghai Lu Subject: [PATCH 22/22] PCI: clean up rescan_bus_bridge_resize Date: Fri, 10 Feb 2012 20:06:25 -0800 Message-Id: <1328933185-15154-23-git-send-email-yinghai@kernel.org> X-Mailer: git-send-email 1.7.7 In-Reply-To: <1328933185-15154-1-git-send-email-yinghai@kernel.org> References: <1328933185-15154-1-git-send-email-yinghai@kernel.org> X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-CT-RefId: str=0001.0A090203.4F35E985.0032,ss=1,re=0.000,fgs=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Should only use it with bridge instead of bus. it could get new subordinate. so can not use it with reguar bus. in that case, use may need to make all children devices get removed already. Signed-off-by: Yinghai Lu --- drivers/pci/pci-sysfs.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 68caf29..a3fa64e 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -337,7 +337,7 @@ dev_bridge_rescan_store(struct device *dev, struct device_attribute *attr, if (val) { mutex_lock(&pci_remove_rescan_mutex); - pci_rescan_bus(pdev->subordinate); + pci_rescan_bus_bridge_resize(pdev); mutex_unlock(&pci_remove_rescan_mutex); } return count; @@ -387,10 +387,7 @@ dev_bus_rescan_store(struct device *dev, struct device_attribute *attr, if (val) { mutex_lock(&pci_remove_rescan_mutex); - if (!pci_is_root_bus(bus) && list_empty(&bus->devices)) - pci_rescan_bus_bridge_resize(bus->self); - else - pci_rescan_bus(bus); + pci_rescan_bus(bus); mutex_unlock(&pci_remove_rescan_mutex); } return count; -- 1.7.7