Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755682Ab2B0Wz0 (ORCPT ); Mon, 27 Feb 2012 17:55:26 -0500 Received: from mail-yx0-f174.google.com ([209.85.213.174]:53488 "EHLO mail-yx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754067Ab2B0WzY convert rfc822-to-8bit (ORCPT ); Mon, 27 Feb 2012 17:55:24 -0500 MIME-Version: 1.0 In-Reply-To: References: <1330299202-3838-1-git-send-email-yinghai@kernel.org> <1330299202-3838-6-git-send-email-yinghai@kernel.org> Date: Mon, 27 Feb 2012 14:55:24 -0800 X-Google-Sender-Auth: yAcIIxF1B5ROxVZ45YORlkb-2q4 Message-ID: Subject: Re: [PATCH 5/8] PCI: add generic device into pci_host_bridge struct From: Yinghai Lu To: Bjorn Helgaas Cc: Jesse Barnes , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1674 Lines: 45 On Mon, Feb 27, 2012 at 2:24 PM, Bjorn Helgaas wrote: >> >> for every bus will have ->bridge, and that is device pointer. to ?pci >> bridge dev. >> >> for root bus, there is not pci bridge for that. So create_root_bus >> allocate local dummy one. >> >> that dummy device will be bus->dev's parent. >> >> Now pci_host_bridge is added, and it is allocated, so just put the >> struct device into that pci_host_bridge. >> >> and use pci_host_bridge->dev as parent of root bus->dev's parent. > > What's the device passed in to pci_create_root_bus()? ?Why is that > different than the root bus dev's parent? ia64 and x86 doesn't pass that. arch/ia64/pci/pci.c: pbus = pci_create_root_bus(NULL, bus, &pci_root_ops, controller, arch/powerpc/kernel/pci-common.c: bus = pci_create_root_bus(hose->parent, hose->first_busno, arch/sparc/kernel/pci.c: bus = pci_create_root_bus(parent, pbm->pci_first_busno, pbm->pci_ops, arch/x86/pci/acpi.c: bus = pci_create_root_bus(NULL, busnum, &pci_root_ops, sd, drivers/parisc/dino.c: dino_dev->hba.hba_bus = bus = pci_create_root_bus(&dev->dev, drivers/parisc/lba_pci.c: pci_create_root_bus(&dev->dev, lba_dev->hba.bus_num.start, sparc, powerpc, parisc have their local ... so local hose etc's dev ---> allocated dev ---> root bus's dev this patch change to local hose etc's dev ---> allocated host bridge's dev ---> root bus's dev -- 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/