Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756812Ab2JDTpJ (ORCPT ); Thu, 4 Oct 2012 15:45:09 -0400 Received: from mail-lb0-f174.google.com ([209.85.217.174]:44967 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756726Ab2JDTpE (ORCPT ); Thu, 4 Oct 2012 15:45:04 -0400 MIME-Version: 1.0 In-Reply-To: References: <1349305214-3241-1-git-send-email-yinghai@kernel.org> <20121004174746.GA24119@google.com> From: Bjorn Helgaas Date: Thu, 4 Oct 2012 13:44:42 -0600 Message-ID: Subject: Re: [PATCH 0/4] ACPI: kill acpi_pci_root_start To: Yinghai Lu Cc: Len Brown , Greg Kroah-Hartman , Andrew Morton , Linus Torvalds , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 X-System-Of-Record: true Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1994 Lines: 39 On Thu, Oct 4, 2012 at 12:36 PM, Yinghai Lu wrote: > On Thu, Oct 4, 2012 at 10:47 AM, Bjorn Helgaas wrote: >> On Wed, Oct 03, 2012 at 04:00:10PM -0700, Yinghai Lu wrote: >> This is a fundamental difference: at boot-time, all the ACPI devices below the >> host bridge already exist before the pci_root.c driver claims the bridge, >> while at hot-add time, pci_root.c claims the bridge *before* those ACPI >> devices exist. >> >> I think this is wrong. The hot-plug case (where the driver is already >> loaded and binds to the device as soon as it's discovered, before the >> ACPI hierarchy below it is enumerated) seems like the obviously correct >> order. I think we should change the boot-time order to match that, i.e., >> we should register pci_root.c *before* enumerating ACPI devices. > > in booting path, all device get probed at first, and then register driver... > do you want to register all pci driver before probing pci devices? I don't think we should have dependencies either way. It shouldn't matter whether we enumerate devices first or we register the driver first. That's why I think the current PCI/ACPI binding is broken -- it assumes that we fully enumerate ACPI before the driver is registered. To answer your specific question, yes, I do think drivers that are statically built in probably should be registered before devices are enumerated. That way, the boot-time case is more similar to the hot-add case. Obviously, for drivers that can be modules, the reverse must work as well (enumerate devices, then load and register the driver). And then the other order (register driver, then enumerate device) must also work so future hot-adds of the same device type work. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/