All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yijing Wang <wangyijing@huawei.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"huxinwei@huawei.com" <huxinwei@huawei.com>,
	Wuyun <wuyun.wu@huawei.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>,
	"x86@kernel.org" <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Tony Luck <tony.luck@intel.com>,
	"linux-ia64@vger.kernel.org" <linux-ia64@vger.kernel.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Liviu Dudau <liviu@dudau.co.uk>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	Yijing Wang <wangyijing0307@gmail.com>
Subject: Re: [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()
Date: Wed, 19 Nov 2014 01:19:23 +0000	[thread overview]
Message-ID: <546BF01B.6010209@huawei.com> (raw)
In-Reply-To: <20141118142817.GI12037@e106497-lin.cambridge.arm.com>

On 2014/11/18 22:28, Liviu Dudau wrote:
> On Mon, Nov 17, 2014 at 10:21:36AM +0000, Yijing Wang wrote:
>> From: Yijing Wang <wangyijing0307@gmail.com>
>>
>> Now we could use pci_scan_root_bus() instead of
>> pci_scan_bus(), pass NULL resources means use the default
>> io/mem.
> 
> Actually, I think this patch goes in the wrong direction. You are adding
> two additional parameters that are NULL for every call you replace.
> pci_scan_bus() was actually intended as a "shortcut with defaults" kind
> of call so that you don't have to pass a value for parameters you don't
> care about.
> 
> My suggestion would be to keep the function as is and replace the call
> to pci_create_root_bus() inside with the appropriate sequence.

Hmmm, maybe you are right, provide a simple pci scan interfaces
(which don't care parent and resources) is better than use a complex
one with several NULL arguments. :)


> 
> Best regards,
> Liviu
> 
>>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> ---
>>  arch/alpha/include/asm/pci.h      |    2 +-
>>  arch/alpha/kernel/sys_nautilus.c  |    2 +-
>>  arch/cris/include/asm/pci.h       |    2 +-
>>  arch/ia64/include/asm/pci.h       |    2 +-
>>  arch/m68k/coldfire/pci.c          |    2 +-
>>  arch/mips/include/asm/pci.h       |    2 +-
>>  arch/mn10300/include/asm/pci.h    |    2 +-
>>  arch/sh/include/asm/pci.h         |    2 +-
>>  arch/sparc/include/asm/pci_32.h   |    2 +-
>>  arch/sparc/include/asm/pci_64.h   |    2 +-
>>  arch/sparc/kernel/pcic.c          |    3 ++-
>>  arch/unicore32/kernel/pci.c       |    2 +-
>>  arch/x86/include/asm/pci.h        |    2 +-
>>  arch/x86/pci/amd_bus.c            |    2 +-
>>  arch/xtensa/include/asm/pci.h     |    2 +-
>>  drivers/parisc/dino.c             |    4 ++--
>>  drivers/pci/hotplug/ibmphp_core.c |    2 +-
>>  17 files changed, 19 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h
>> index f7f680f..157925a 100644
>> --- a/arch/alpha/include/asm/pci.h
>> +++ b/arch/alpha/include/asm/pci.h
>> @@ -49,7 +49,7 @@ struct pci_controller {
>>  	void *sysdata;
>>  };
>>  
>> -/* Override the logic in pci_scan_bus for skipping already-configured
>> +/* Override the logic in pci_scan_root_bus for skipping already-configured
>>     bus numbers.  */
>>  
>>  #define pcibios_assign_all_busses()	1
>> diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
>> index 837c0fa..1047ab3 100644
>> --- a/arch/alpha/kernel/sys_nautilus.c
>> +++ b/arch/alpha/kernel/sys_nautilus.c
>> @@ -206,7 +206,7 @@ nautilus_init_pci(void)
>>  	unsigned long memtop = max_low_pfn << PAGE_SHIFT;
>>  
>>  	/* Scan our single hose.  */
>> -	bus = pci_scan_bus(0, alpha_mv.pci_ops, hose);
>> +	bus = pci_scan_root_bus(NULL, 0, alpha_mv.pci_ops, hose, NULL);
>>  	hose->bus = bus;
>>  	pcibios_claim_one_bus(bus);
>>  
>> diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h
>> index cc2399c..96b33a6 100644
>> --- a/arch/cris/include/asm/pci.h
>> +++ b/arch/cris/include/asm/pci.h
>> @@ -5,7 +5,7 @@
>>  #ifdef __KERNEL__
>>  #include <linux/mm.h>		/* for struct page */
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h
>> index 52af5ed..64b34d6 100644
>> --- a/arch/ia64/include/asm/pci.h
>> +++ b/arch/ia64/include/asm/pci.h
>> @@ -20,7 +20,7 @@ struct pci_vector_struct {
>>  };
>>  
>>  /*
>> - * Can be used to override the logic in pci_scan_bus for skipping already-configured bus
>> + * Can be used to override the logic in pci_scan_root_bus for skipping already-configured bus
>>   * numbers - to be used for buggy BIOSes or architectures with incomplete PCI setup by the
>>   * loader.
>>   */
>> diff --git a/arch/m68k/coldfire/pci.c b/arch/m68k/coldfire/pci.c
>> index df96792..4d242fb 100644
>> --- a/arch/m68k/coldfire/pci.c
>> +++ b/arch/m68k/coldfire/pci.c
>> @@ -312,7 +312,7 @@ static int __init mcf_pci_init(void)
>>  	set_current_state(TASK_UNINTERRUPTIBLE);
>>  	schedule_timeout(msecs_to_jiffies(200));
>>  
>> -	rootbus = pci_scan_bus(0, &mcf_pci_ops, NULL);
>> +	rootbus = pci_scan_root_bus(NULL, 0, &mcf_pci_ops, NULL, NULL);
>>  	rootbus->resource[0] = &mcf_pci_io;
>>  	rootbus->resource[1] = &mcf_pci_mem;
>>  
>> diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
>> index 974b0e3..212030a 100644
>> --- a/arch/mips/include/asm/pci.h
>> +++ b/arch/mips/include/asm/pci.h
>> @@ -60,7 +60,7 @@ extern void register_pci_controller(struct pci_controller *hose);
>>  extern int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
>>  
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
>> index 5f70af2..6305f14 100644
>> --- a/arch/mn10300/include/asm/pci.h
>> +++ b/arch/mn10300/include/asm/pci.h
>> @@ -33,7 +33,7 @@ do {							\
>>  #define __pcidebug(FMT, BUS, DEVFN, WHERE, ...)	do {} while (0)
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes or
>>   * architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
>> index 5b45115..69bcb78 100644
>> --- a/arch/sh/include/asm/pci.h
>> +++ b/arch/sh/include/asm/pci.h
>> @@ -3,7 +3,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
>> index 53e9b49..4ef6064 100644
>> --- a/arch/sparc/include/asm/pci_32.h
>> +++ b/arch/sparc/include/asm/pci_32.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
>> index bd00a62..6e017f9 100644
>> --- a/arch/sparc/include/asm/pci_64.h
>> +++ b/arch/sparc/include/asm/pci_64.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
>> index 6cc78c2..64aafac 100644
>> --- a/arch/sparc/kernel/pcic.c
>> +++ b/arch/sparc/kernel/pcic.c
>> @@ -390,7 +390,8 @@ static void __init pcic_pbm_scan_bus(struct linux_pcic *pcic)
>>  {
>>  	struct linux_pbm_info *pbm = &pcic->pbm;
>>  
>> -	pbm->pci_bus = pci_scan_bus(pbm->pci_first_busno, &pcic_ops, pbm);
>> +	pbm->pci_bus = pci_scan_root_bus(NULL, pbm->pci_first_busno, 
>> +			&pcic_ops, pbm, NULL);
>>  #if 0 /* deadwood transplanted from sparc64 */
>>  	pci_fill_in_pbm_cookies(pbm->pci_bus, pbm, pbm->prom_node);
>>  	pci_record_assignments(pbm, pbm->pci_bus);
>> diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
>> index 374a055..be0f261 100644
>> --- a/arch/unicore32/kernel/pci.c
>> +++ b/arch/unicore32/kernel/pci.c
>> @@ -258,7 +258,7 @@ static int __init pci_common_init(void)
>>  
>>  	pci_puv3_preinit();
>>  
>> -	puv3_bus = pci_scan_bus(0, &pci_puv3_ops, NULL);
>> +	puv3_bus = pci_scan_root_bus(NULL, 0, &pci_puv3_ops, NULL, NULL);
>>  
>>  	if (!puv3_bus)
>>  		panic("PCI: unable to scan bus!");
>> diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
>> index 0892ea0..0540ff7 100644
>> --- a/arch/x86/include/asm/pci.h
>> +++ b/arch/x86/include/asm/pci.h
>> @@ -41,7 +41,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
>>  }
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
>> index c20d2cc..baf6209 100644
>> --- a/arch/x86/pci/amd_bus.c
>> +++ b/arch/x86/pci/amd_bus.c
>> @@ -52,7 +52,7 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
>>  
>>  /**
>>   * early_root_info_init()
>> - * called before pcibios_scan_root and pci_scan_bus
>> + * called before pcibios_scan_root and pci_scan_root_bus
>>   * fills the mp_bus_to_cpumask array based according
>>   * to the LDT Bus Number Registers found in the northbridge.
>>   */
>> diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h
>> index 5d52dc4..377fae9 100644
>> --- a/arch/xtensa/include/asm/pci.h
>> +++ b/arch/xtensa/include/asm/pci.h
>> @@ -13,7 +13,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader
>>   */
>> diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
>> index a0580af..67c31bd 100644
>> --- a/drivers/parisc/dino.c
>> +++ b/drivers/parisc/dino.c
>> @@ -74,7 +74,7 @@
>>  ** assigned a PCI bus number based on "when" it's discovered.
>>  **
>>  ** The "secondary" bus number is set to this before calling
>> -** pci_scan_bus(). If any PPB's are present, the scan will
>> +** pci_scan_root_bus(). If any PPB's are present, the scan will
>>  ** discover them and update the "secondary" and "subordinate"
>>  ** fields in Dino's pci_bus structure.
>>  **
>> @@ -787,7 +787,7 @@ static int __init dino_common_init(struct parisc_device *dev,
>>  
>>  	pcibios_register_hba(&dino_dev->hba);
>>  
>> -	pci_bios = &dino_bios_ops;   /* used by pci_scan_bus() */
>> +	pci_bios = &dino_bios_ops;   
>>  	pci_port = &dino_port_ops;
>>  
>>  	/*
>> diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
>> index 3efaf4c..b486432 100644
>> --- a/drivers/pci/hotplug/ibmphp_core.c
>> +++ b/drivers/pci/hotplug/ibmphp_core.c
>> @@ -767,7 +767,7 @@ static u8 bus_structure_fixup(u8 busno)
>>  					(l != 0x0000) && (l != 0xffff)) {
>>  			debug("%s - Inside bus_structure_fixup()\n",
>>  							__func__);
>> -			pci_scan_bus(busno, ibmphp_pci_bus->ops, NULL);
>> +			pci_scan_root_bus(NULL, busno, ibmphp_pci_bus->ops, NULL, NULL);
>>  			break;
>>  		}
>>  	}
>> -- 
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 


-- 
Thanks!
Yijing


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"huxinwei@huawei.com" <huxinwei@huawei.com>,
	Wuyun <wuyun.wu@huawei.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Russell King <linux@arm.linux.org.uk>,
	"x86@kernel.org" <x86@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Tony Luck <tony.luck@intel.com>,
	"linux-ia64@vger.kernel.org" <linux-ia64@vger.kernel.org>,
	Thierry Reding <thierry.reding@gmail.com>,
	Liviu Dudau <liviu@dudau.co.uk>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	Yijing Wang <wangyijing0307@gmail.com>
Subject: Re: [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()
Date: Wed, 19 Nov 2014 09:19:23 +0800	[thread overview]
Message-ID: <546BF01B.6010209@huawei.com> (raw)
In-Reply-To: <20141118142817.GI12037@e106497-lin.cambridge.arm.com>

On 2014/11/18 22:28, Liviu Dudau wrote:
> On Mon, Nov 17, 2014 at 10:21:36AM +0000, Yijing Wang wrote:
>> From: Yijing Wang <wangyijing0307@gmail.com>
>>
>> Now we could use pci_scan_root_bus() instead of
>> pci_scan_bus(), pass NULL resources means use the default
>> io/mem.
> 
> Actually, I think this patch goes in the wrong direction. You are adding
> two additional parameters that are NULL for every call you replace.
> pci_scan_bus() was actually intended as a "shortcut with defaults" kind
> of call so that you don't have to pass a value for parameters you don't
> care about.
> 
> My suggestion would be to keep the function as is and replace the call
> to pci_create_root_bus() inside with the appropriate sequence.

Hmmm, maybe you are right, provide a simple pci scan interfaces
(which don't care parent and resources) is better than use a complex
one with several NULL arguments. :)


> 
> Best regards,
> Liviu
> 
>>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> ---
>>  arch/alpha/include/asm/pci.h      |    2 +-
>>  arch/alpha/kernel/sys_nautilus.c  |    2 +-
>>  arch/cris/include/asm/pci.h       |    2 +-
>>  arch/ia64/include/asm/pci.h       |    2 +-
>>  arch/m68k/coldfire/pci.c          |    2 +-
>>  arch/mips/include/asm/pci.h       |    2 +-
>>  arch/mn10300/include/asm/pci.h    |    2 +-
>>  arch/sh/include/asm/pci.h         |    2 +-
>>  arch/sparc/include/asm/pci_32.h   |    2 +-
>>  arch/sparc/include/asm/pci_64.h   |    2 +-
>>  arch/sparc/kernel/pcic.c          |    3 ++-
>>  arch/unicore32/kernel/pci.c       |    2 +-
>>  arch/x86/include/asm/pci.h        |    2 +-
>>  arch/x86/pci/amd_bus.c            |    2 +-
>>  arch/xtensa/include/asm/pci.h     |    2 +-
>>  drivers/parisc/dino.c             |    4 ++--
>>  drivers/pci/hotplug/ibmphp_core.c |    2 +-
>>  17 files changed, 19 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h
>> index f7f680f..157925a 100644
>> --- a/arch/alpha/include/asm/pci.h
>> +++ b/arch/alpha/include/asm/pci.h
>> @@ -49,7 +49,7 @@ struct pci_controller {
>>  	void *sysdata;
>>  };
>>  
>> -/* Override the logic in pci_scan_bus for skipping already-configured
>> +/* Override the logic in pci_scan_root_bus for skipping already-configured
>>     bus numbers.  */
>>  
>>  #define pcibios_assign_all_busses()	1
>> diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
>> index 837c0fa..1047ab3 100644
>> --- a/arch/alpha/kernel/sys_nautilus.c
>> +++ b/arch/alpha/kernel/sys_nautilus.c
>> @@ -206,7 +206,7 @@ nautilus_init_pci(void)
>>  	unsigned long memtop = max_low_pfn << PAGE_SHIFT;
>>  
>>  	/* Scan our single hose.  */
>> -	bus = pci_scan_bus(0, alpha_mv.pci_ops, hose);
>> +	bus = pci_scan_root_bus(NULL, 0, alpha_mv.pci_ops, hose, NULL);
>>  	hose->bus = bus;
>>  	pcibios_claim_one_bus(bus);
>>  
>> diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h
>> index cc2399c..96b33a6 100644
>> --- a/arch/cris/include/asm/pci.h
>> +++ b/arch/cris/include/asm/pci.h
>> @@ -5,7 +5,7 @@
>>  #ifdef __KERNEL__
>>  #include <linux/mm.h>		/* for struct page */
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h
>> index 52af5ed..64b34d6 100644
>> --- a/arch/ia64/include/asm/pci.h
>> +++ b/arch/ia64/include/asm/pci.h
>> @@ -20,7 +20,7 @@ struct pci_vector_struct {
>>  };
>>  
>>  /*
>> - * Can be used to override the logic in pci_scan_bus for skipping already-configured bus
>> + * Can be used to override the logic in pci_scan_root_bus for skipping already-configured bus
>>   * numbers - to be used for buggy BIOSes or architectures with incomplete PCI setup by the
>>   * loader.
>>   */
>> diff --git a/arch/m68k/coldfire/pci.c b/arch/m68k/coldfire/pci.c
>> index df96792..4d242fb 100644
>> --- a/arch/m68k/coldfire/pci.c
>> +++ b/arch/m68k/coldfire/pci.c
>> @@ -312,7 +312,7 @@ static int __init mcf_pci_init(void)
>>  	set_current_state(TASK_UNINTERRUPTIBLE);
>>  	schedule_timeout(msecs_to_jiffies(200));
>>  
>> -	rootbus = pci_scan_bus(0, &mcf_pci_ops, NULL);
>> +	rootbus = pci_scan_root_bus(NULL, 0, &mcf_pci_ops, NULL, NULL);
>>  	rootbus->resource[0] = &mcf_pci_io;
>>  	rootbus->resource[1] = &mcf_pci_mem;
>>  
>> diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
>> index 974b0e3..212030a 100644
>> --- a/arch/mips/include/asm/pci.h
>> +++ b/arch/mips/include/asm/pci.h
>> @@ -60,7 +60,7 @@ extern void register_pci_controller(struct pci_controller *hose);
>>  extern int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
>>  
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
>> index 5f70af2..6305f14 100644
>> --- a/arch/mn10300/include/asm/pci.h
>> +++ b/arch/mn10300/include/asm/pci.h
>> @@ -33,7 +33,7 @@ do {							\
>>  #define __pcidebug(FMT, BUS, DEVFN, WHERE, ...)	do {} while (0)
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes or
>>   * architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
>> index 5b45115..69bcb78 100644
>> --- a/arch/sh/include/asm/pci.h
>> +++ b/arch/sh/include/asm/pci.h
>> @@ -3,7 +3,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
>> index 53e9b49..4ef6064 100644
>> --- a/arch/sparc/include/asm/pci_32.h
>> +++ b/arch/sparc/include/asm/pci_32.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
>> index bd00a62..6e017f9 100644
>> --- a/arch/sparc/include/asm/pci_64.h
>> +++ b/arch/sparc/include/asm/pci_64.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
>> index 6cc78c2..64aafac 100644
>> --- a/arch/sparc/kernel/pcic.c
>> +++ b/arch/sparc/kernel/pcic.c
>> @@ -390,7 +390,8 @@ static void __init pcic_pbm_scan_bus(struct linux_pcic *pcic)
>>  {
>>  	struct linux_pbm_info *pbm = &pcic->pbm;
>>  
>> -	pbm->pci_bus = pci_scan_bus(pbm->pci_first_busno, &pcic_ops, pbm);
>> +	pbm->pci_bus = pci_scan_root_bus(NULL, pbm->pci_first_busno, 
>> +			&pcic_ops, pbm, NULL);
>>  #if 0 /* deadwood transplanted from sparc64 */
>>  	pci_fill_in_pbm_cookies(pbm->pci_bus, pbm, pbm->prom_node);
>>  	pci_record_assignments(pbm, pbm->pci_bus);
>> diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
>> index 374a055..be0f261 100644
>> --- a/arch/unicore32/kernel/pci.c
>> +++ b/arch/unicore32/kernel/pci.c
>> @@ -258,7 +258,7 @@ static int __init pci_common_init(void)
>>  
>>  	pci_puv3_preinit();
>>  
>> -	puv3_bus = pci_scan_bus(0, &pci_puv3_ops, NULL);
>> +	puv3_bus = pci_scan_root_bus(NULL, 0, &pci_puv3_ops, NULL, NULL);
>>  
>>  	if (!puv3_bus)
>>  		panic("PCI: unable to scan bus!");
>> diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
>> index 0892ea0..0540ff7 100644
>> --- a/arch/x86/include/asm/pci.h
>> +++ b/arch/x86/include/asm/pci.h
>> @@ -41,7 +41,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
>>  }
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
>> index c20d2cc..baf6209 100644
>> --- a/arch/x86/pci/amd_bus.c
>> +++ b/arch/x86/pci/amd_bus.c
>> @@ -52,7 +52,7 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
>>  
>>  /**
>>   * early_root_info_init()
>> - * called before pcibios_scan_root and pci_scan_bus
>> + * called before pcibios_scan_root and pci_scan_root_bus
>>   * fills the mp_bus_to_cpumask array based according
>>   * to the LDT Bus Number Registers found in the northbridge.
>>   */
>> diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h
>> index 5d52dc4..377fae9 100644
>> --- a/arch/xtensa/include/asm/pci.h
>> +++ b/arch/xtensa/include/asm/pci.h
>> @@ -13,7 +13,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader
>>   */
>> diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
>> index a0580af..67c31bd 100644
>> --- a/drivers/parisc/dino.c
>> +++ b/drivers/parisc/dino.c
>> @@ -74,7 +74,7 @@
>>  ** assigned a PCI bus number based on "when" it's discovered.
>>  **
>>  ** The "secondary" bus number is set to this before calling
>> -** pci_scan_bus(). If any PPB's are present, the scan will
>> +** pci_scan_root_bus(). If any PPB's are present, the scan will
>>  ** discover them and update the "secondary" and "subordinate"
>>  ** fields in Dino's pci_bus structure.
>>  **
>> @@ -787,7 +787,7 @@ static int __init dino_common_init(struct parisc_device *dev,
>>  
>>  	pcibios_register_hba(&dino_dev->hba);
>>  
>> -	pci_bios = &dino_bios_ops;   /* used by pci_scan_bus() */
>> +	pci_bios = &dino_bios_ops;   
>>  	pci_port = &dino_port_ops;
>>  
>>  	/*
>> diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
>> index 3efaf4c..b486432 100644
>> --- a/drivers/pci/hotplug/ibmphp_core.c
>> +++ b/drivers/pci/hotplug/ibmphp_core.c
>> @@ -767,7 +767,7 @@ static u8 bus_structure_fixup(u8 busno)
>>  					(l != 0x0000) && (l != 0xffff)) {
>>  			debug("%s - Inside bus_structure_fixup()\n",
>>  							__func__);
>> -			pci_scan_bus(busno, ibmphp_pci_bus->ops, NULL);
>> +			pci_scan_root_bus(NULL, busno, ibmphp_pci_bus->ops, NULL, NULL);
>>  			break;
>>  		}
>>  	}
>> -- 
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 


-- 
Thanks!
Yijing


WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Liviu Dudau <Liviu.Dudau@arm.com>
Cc: Liviu Dudau <liviu@dudau.co.uk>, Tony Luck <tony.luck@intel.com>,
	Russell King <linux@arm.linux.org.uk>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"huxinwei@huawei.com" <huxinwei@huawei.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Yijing Wang <wangyijing0307@gmail.com>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	"linux-ia64@vger.kernel.org" <linux-ia64@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>, Wuyun <wuyun.wu@huawei.com>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()
Date: Wed, 19 Nov 2014 09:19:23 +0800	[thread overview]
Message-ID: <546BF01B.6010209@huawei.com> (raw)
In-Reply-To: <20141118142817.GI12037@e106497-lin.cambridge.arm.com>

On 2014/11/18 22:28, Liviu Dudau wrote:
> On Mon, Nov 17, 2014 at 10:21:36AM +0000, Yijing Wang wrote:
>> From: Yijing Wang <wangyijing0307@gmail.com>
>>
>> Now we could use pci_scan_root_bus() instead of
>> pci_scan_bus(), pass NULL resources means use the default
>> io/mem.
> 
> Actually, I think this patch goes in the wrong direction. You are adding
> two additional parameters that are NULL for every call you replace.
> pci_scan_bus() was actually intended as a "shortcut with defaults" kind
> of call so that you don't have to pass a value for parameters you don't
> care about.
> 
> My suggestion would be to keep the function as is and replace the call
> to pci_create_root_bus() inside with the appropriate sequence.

Hmmm, maybe you are right, provide a simple pci scan interfaces
(which don't care parent and resources) is better than use a complex
one with several NULL arguments. :)


> 
> Best regards,
> Liviu
> 
>>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> ---
>>  arch/alpha/include/asm/pci.h      |    2 +-
>>  arch/alpha/kernel/sys_nautilus.c  |    2 +-
>>  arch/cris/include/asm/pci.h       |    2 +-
>>  arch/ia64/include/asm/pci.h       |    2 +-
>>  arch/m68k/coldfire/pci.c          |    2 +-
>>  arch/mips/include/asm/pci.h       |    2 +-
>>  arch/mn10300/include/asm/pci.h    |    2 +-
>>  arch/sh/include/asm/pci.h         |    2 +-
>>  arch/sparc/include/asm/pci_32.h   |    2 +-
>>  arch/sparc/include/asm/pci_64.h   |    2 +-
>>  arch/sparc/kernel/pcic.c          |    3 ++-
>>  arch/unicore32/kernel/pci.c       |    2 +-
>>  arch/x86/include/asm/pci.h        |    2 +-
>>  arch/x86/pci/amd_bus.c            |    2 +-
>>  arch/xtensa/include/asm/pci.h     |    2 +-
>>  drivers/parisc/dino.c             |    4 ++--
>>  drivers/pci/hotplug/ibmphp_core.c |    2 +-
>>  17 files changed, 19 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h
>> index f7f680f..157925a 100644
>> --- a/arch/alpha/include/asm/pci.h
>> +++ b/arch/alpha/include/asm/pci.h
>> @@ -49,7 +49,7 @@ struct pci_controller {
>>  	void *sysdata;
>>  };
>>  
>> -/* Override the logic in pci_scan_bus for skipping already-configured
>> +/* Override the logic in pci_scan_root_bus for skipping already-configured
>>     bus numbers.  */
>>  
>>  #define pcibios_assign_all_busses()	1
>> diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
>> index 837c0fa..1047ab3 100644
>> --- a/arch/alpha/kernel/sys_nautilus.c
>> +++ b/arch/alpha/kernel/sys_nautilus.c
>> @@ -206,7 +206,7 @@ nautilus_init_pci(void)
>>  	unsigned long memtop = max_low_pfn << PAGE_SHIFT;
>>  
>>  	/* Scan our single hose.  */
>> -	bus = pci_scan_bus(0, alpha_mv.pci_ops, hose);
>> +	bus = pci_scan_root_bus(NULL, 0, alpha_mv.pci_ops, hose, NULL);
>>  	hose->bus = bus;
>>  	pcibios_claim_one_bus(bus);
>>  
>> diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h
>> index cc2399c..96b33a6 100644
>> --- a/arch/cris/include/asm/pci.h
>> +++ b/arch/cris/include/asm/pci.h
>> @@ -5,7 +5,7 @@
>>  #ifdef __KERNEL__
>>  #include <linux/mm.h>		/* for struct page */
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h
>> index 52af5ed..64b34d6 100644
>> --- a/arch/ia64/include/asm/pci.h
>> +++ b/arch/ia64/include/asm/pci.h
>> @@ -20,7 +20,7 @@ struct pci_vector_struct {
>>  };
>>  
>>  /*
>> - * Can be used to override the logic in pci_scan_bus for skipping already-configured bus
>> + * Can be used to override the logic in pci_scan_root_bus for skipping already-configured bus
>>   * numbers - to be used for buggy BIOSes or architectures with incomplete PCI setup by the
>>   * loader.
>>   */
>> diff --git a/arch/m68k/coldfire/pci.c b/arch/m68k/coldfire/pci.c
>> index df96792..4d242fb 100644
>> --- a/arch/m68k/coldfire/pci.c
>> +++ b/arch/m68k/coldfire/pci.c
>> @@ -312,7 +312,7 @@ static int __init mcf_pci_init(void)
>>  	set_current_state(TASK_UNINTERRUPTIBLE);
>>  	schedule_timeout(msecs_to_jiffies(200));
>>  
>> -	rootbus = pci_scan_bus(0, &mcf_pci_ops, NULL);
>> +	rootbus = pci_scan_root_bus(NULL, 0, &mcf_pci_ops, NULL, NULL);
>>  	rootbus->resource[0] = &mcf_pci_io;
>>  	rootbus->resource[1] = &mcf_pci_mem;
>>  
>> diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
>> index 974b0e3..212030a 100644
>> --- a/arch/mips/include/asm/pci.h
>> +++ b/arch/mips/include/asm/pci.h
>> @@ -60,7 +60,7 @@ extern void register_pci_controller(struct pci_controller *hose);
>>  extern int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
>>  
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
>> index 5f70af2..6305f14 100644
>> --- a/arch/mn10300/include/asm/pci.h
>> +++ b/arch/mn10300/include/asm/pci.h
>> @@ -33,7 +33,7 @@ do {							\
>>  #define __pcidebug(FMT, BUS, DEVFN, WHERE, ...)	do {} while (0)
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes or
>>   * architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
>> index 5b45115..69bcb78 100644
>> --- a/arch/sh/include/asm/pci.h
>> +++ b/arch/sh/include/asm/pci.h
>> @@ -3,7 +3,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
>> index 53e9b49..4ef6064 100644
>> --- a/arch/sparc/include/asm/pci_32.h
>> +++ b/arch/sparc/include/asm/pci_32.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
>> index bd00a62..6e017f9 100644
>> --- a/arch/sparc/include/asm/pci_64.h
>> +++ b/arch/sparc/include/asm/pci_64.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
>> index 6cc78c2..64aafac 100644
>> --- a/arch/sparc/kernel/pcic.c
>> +++ b/arch/sparc/kernel/pcic.c
>> @@ -390,7 +390,8 @@ static void __init pcic_pbm_scan_bus(struct linux_pcic *pcic)
>>  {
>>  	struct linux_pbm_info *pbm = &pcic->pbm;
>>  
>> -	pbm->pci_bus = pci_scan_bus(pbm->pci_first_busno, &pcic_ops, pbm);
>> +	pbm->pci_bus = pci_scan_root_bus(NULL, pbm->pci_first_busno, 
>> +			&pcic_ops, pbm, NULL);
>>  #if 0 /* deadwood transplanted from sparc64 */
>>  	pci_fill_in_pbm_cookies(pbm->pci_bus, pbm, pbm->prom_node);
>>  	pci_record_assignments(pbm, pbm->pci_bus);
>> diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
>> index 374a055..be0f261 100644
>> --- a/arch/unicore32/kernel/pci.c
>> +++ b/arch/unicore32/kernel/pci.c
>> @@ -258,7 +258,7 @@ static int __init pci_common_init(void)
>>  
>>  	pci_puv3_preinit();
>>  
>> -	puv3_bus = pci_scan_bus(0, &pci_puv3_ops, NULL);
>> +	puv3_bus = pci_scan_root_bus(NULL, 0, &pci_puv3_ops, NULL, NULL);
>>  
>>  	if (!puv3_bus)
>>  		panic("PCI: unable to scan bus!");
>> diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
>> index 0892ea0..0540ff7 100644
>> --- a/arch/x86/include/asm/pci.h
>> +++ b/arch/x86/include/asm/pci.h
>> @@ -41,7 +41,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
>>  }
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
>> index c20d2cc..baf6209 100644
>> --- a/arch/x86/pci/amd_bus.c
>> +++ b/arch/x86/pci/amd_bus.c
>> @@ -52,7 +52,7 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
>>  
>>  /**
>>   * early_root_info_init()
>> - * called before pcibios_scan_root and pci_scan_bus
>> + * called before pcibios_scan_root and pci_scan_root_bus
>>   * fills the mp_bus_to_cpumask array based according
>>   * to the LDT Bus Number Registers found in the northbridge.
>>   */
>> diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h
>> index 5d52dc4..377fae9 100644
>> --- a/arch/xtensa/include/asm/pci.h
>> +++ b/arch/xtensa/include/asm/pci.h
>> @@ -13,7 +13,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader
>>   */
>> diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
>> index a0580af..67c31bd 100644
>> --- a/drivers/parisc/dino.c
>> +++ b/drivers/parisc/dino.c
>> @@ -74,7 +74,7 @@
>>  ** assigned a PCI bus number based on "when" it's discovered.
>>  **
>>  ** The "secondary" bus number is set to this before calling
>> -** pci_scan_bus(). If any PPB's are present, the scan will
>> +** pci_scan_root_bus(). If any PPB's are present, the scan will
>>  ** discover them and update the "secondary" and "subordinate"
>>  ** fields in Dino's pci_bus structure.
>>  **
>> @@ -787,7 +787,7 @@ static int __init dino_common_init(struct parisc_device *dev,
>>  
>>  	pcibios_register_hba(&dino_dev->hba);
>>  
>> -	pci_bios = &dino_bios_ops;   /* used by pci_scan_bus() */
>> +	pci_bios = &dino_bios_ops;   
>>  	pci_port = &dino_port_ops;
>>  
>>  	/*
>> diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
>> index 3efaf4c..b486432 100644
>> --- a/drivers/pci/hotplug/ibmphp_core.c
>> +++ b/drivers/pci/hotplug/ibmphp_core.c
>> @@ -767,7 +767,7 @@ static u8 bus_structure_fixup(u8 busno)
>>  					(l != 0x0000) && (l != 0xffff)) {
>>  			debug("%s - Inside bus_structure_fixup()\n",
>>  							__func__);
>> -			pci_scan_bus(busno, ibmphp_pci_bus->ops, NULL);
>> +			pci_scan_root_bus(NULL, busno, ibmphp_pci_bus->ops, NULL, NULL);
>>  			break;
>>  		}
>>  	}
>> -- 
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 


-- 
Thanks!
Yijing

WARNING: multiple messages have this Message-ID (diff)
From: wangyijing@huawei.com (Yijing Wang)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus()
Date: Wed, 19 Nov 2014 09:19:23 +0800	[thread overview]
Message-ID: <546BF01B.6010209@huawei.com> (raw)
In-Reply-To: <20141118142817.GI12037@e106497-lin.cambridge.arm.com>

On 2014/11/18 22:28, Liviu Dudau wrote:
> On Mon, Nov 17, 2014 at 10:21:36AM +0000, Yijing Wang wrote:
>> From: Yijing Wang <wangyijing0307@gmail.com>
>>
>> Now we could use pci_scan_root_bus() instead of
>> pci_scan_bus(), pass NULL resources means use the default
>> io/mem.
> 
> Actually, I think this patch goes in the wrong direction. You are adding
> two additional parameters that are NULL for every call you replace.
> pci_scan_bus() was actually intended as a "shortcut with defaults" kind
> of call so that you don't have to pass a value for parameters you don't
> care about.
> 
> My suggestion would be to keep the function as is and replace the call
> to pci_create_root_bus() inside with the appropriate sequence.

Hmmm, maybe you are right, provide a simple pci scan interfaces
(which don't care parent and resources) is better than use a complex
one with several NULL arguments. :)


> 
> Best regards,
> Liviu
> 
>>
>> Signed-off-by: Yijing Wang <wangyijing@huawei.com>
>> ---
>>  arch/alpha/include/asm/pci.h      |    2 +-
>>  arch/alpha/kernel/sys_nautilus.c  |    2 +-
>>  arch/cris/include/asm/pci.h       |    2 +-
>>  arch/ia64/include/asm/pci.h       |    2 +-
>>  arch/m68k/coldfire/pci.c          |    2 +-
>>  arch/mips/include/asm/pci.h       |    2 +-
>>  arch/mn10300/include/asm/pci.h    |    2 +-
>>  arch/sh/include/asm/pci.h         |    2 +-
>>  arch/sparc/include/asm/pci_32.h   |    2 +-
>>  arch/sparc/include/asm/pci_64.h   |    2 +-
>>  arch/sparc/kernel/pcic.c          |    3 ++-
>>  arch/unicore32/kernel/pci.c       |    2 +-
>>  arch/x86/include/asm/pci.h        |    2 +-
>>  arch/x86/pci/amd_bus.c            |    2 +-
>>  arch/xtensa/include/asm/pci.h     |    2 +-
>>  drivers/parisc/dino.c             |    4 ++--
>>  drivers/pci/hotplug/ibmphp_core.c |    2 +-
>>  17 files changed, 19 insertions(+), 18 deletions(-)
>>
>> diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h
>> index f7f680f..157925a 100644
>> --- a/arch/alpha/include/asm/pci.h
>> +++ b/arch/alpha/include/asm/pci.h
>> @@ -49,7 +49,7 @@ struct pci_controller {
>>  	void *sysdata;
>>  };
>>  
>> -/* Override the logic in pci_scan_bus for skipping already-configured
>> +/* Override the logic in pci_scan_root_bus for skipping already-configured
>>     bus numbers.  */
>>  
>>  #define pcibios_assign_all_busses()	1
>> diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c
>> index 837c0fa..1047ab3 100644
>> --- a/arch/alpha/kernel/sys_nautilus.c
>> +++ b/arch/alpha/kernel/sys_nautilus.c
>> @@ -206,7 +206,7 @@ nautilus_init_pci(void)
>>  	unsigned long memtop = max_low_pfn << PAGE_SHIFT;
>>  
>>  	/* Scan our single hose.  */
>> -	bus = pci_scan_bus(0, alpha_mv.pci_ops, hose);
>> +	bus = pci_scan_root_bus(NULL, 0, alpha_mv.pci_ops, hose, NULL);
>>  	hose->bus = bus;
>>  	pcibios_claim_one_bus(bus);
>>  
>> diff --git a/arch/cris/include/asm/pci.h b/arch/cris/include/asm/pci.h
>> index cc2399c..96b33a6 100644
>> --- a/arch/cris/include/asm/pci.h
>> +++ b/arch/cris/include/asm/pci.h
>> @@ -5,7 +5,7 @@
>>  #ifdef __KERNEL__
>>  #include <linux/mm.h>		/* for struct page */
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h
>> index 52af5ed..64b34d6 100644
>> --- a/arch/ia64/include/asm/pci.h
>> +++ b/arch/ia64/include/asm/pci.h
>> @@ -20,7 +20,7 @@ struct pci_vector_struct {
>>  };
>>  
>>  /*
>> - * Can be used to override the logic in pci_scan_bus for skipping already-configured bus
>> + * Can be used to override the logic in pci_scan_root_bus for skipping already-configured bus
>>   * numbers - to be used for buggy BIOSes or architectures with incomplete PCI setup by the
>>   * loader.
>>   */
>> diff --git a/arch/m68k/coldfire/pci.c b/arch/m68k/coldfire/pci.c
>> index df96792..4d242fb 100644
>> --- a/arch/m68k/coldfire/pci.c
>> +++ b/arch/m68k/coldfire/pci.c
>> @@ -312,7 +312,7 @@ static int __init mcf_pci_init(void)
>>  	set_current_state(TASK_UNINTERRUPTIBLE);
>>  	schedule_timeout(msecs_to_jiffies(200));
>>  
>> -	rootbus = pci_scan_bus(0, &mcf_pci_ops, NULL);
>> +	rootbus = pci_scan_root_bus(NULL, 0, &mcf_pci_ops, NULL, NULL);
>>  	rootbus->resource[0] = &mcf_pci_io;
>>  	rootbus->resource[1] = &mcf_pci_mem;
>>  
>> diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
>> index 974b0e3..212030a 100644
>> --- a/arch/mips/include/asm/pci.h
>> +++ b/arch/mips/include/asm/pci.h
>> @@ -60,7 +60,7 @@ extern void register_pci_controller(struct pci_controller *hose);
>>  extern int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
>>  
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/mn10300/include/asm/pci.h b/arch/mn10300/include/asm/pci.h
>> index 5f70af2..6305f14 100644
>> --- a/arch/mn10300/include/asm/pci.h
>> +++ b/arch/mn10300/include/asm/pci.h
>> @@ -33,7 +33,7 @@ do {							\
>>  #define __pcidebug(FMT, BUS, DEVFN, WHERE, ...)	do {} while (0)
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes or
>>   * architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
>> index 5b45115..69bcb78 100644
>> --- a/arch/sh/include/asm/pci.h
>> +++ b/arch/sh/include/asm/pci.h
>> @@ -3,7 +3,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/sparc/include/asm/pci_32.h b/arch/sparc/include/asm/pci_32.h
>> index 53e9b49..4ef6064 100644
>> --- a/arch/sparc/include/asm/pci_32.h
>> +++ b/arch/sparc/include/asm/pci_32.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/include/asm/pci_64.h b/arch/sparc/include/asm/pci_64.h
>> index bd00a62..6e017f9 100644
>> --- a/arch/sparc/include/asm/pci_64.h
>> +++ b/arch/sparc/include/asm/pci_64.h
>> @@ -5,7 +5,7 @@
>>  
>>  #include <linux/dma-mapping.h>
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader.
>>   */
>> diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c
>> index 6cc78c2..64aafac 100644
>> --- a/arch/sparc/kernel/pcic.c
>> +++ b/arch/sparc/kernel/pcic.c
>> @@ -390,7 +390,8 @@ static void __init pcic_pbm_scan_bus(struct linux_pcic *pcic)
>>  {
>>  	struct linux_pbm_info *pbm = &pcic->pbm;
>>  
>> -	pbm->pci_bus = pci_scan_bus(pbm->pci_first_busno, &pcic_ops, pbm);
>> +	pbm->pci_bus = pci_scan_root_bus(NULL, pbm->pci_first_busno, 
>> +			&pcic_ops, pbm, NULL);
>>  #if 0 /* deadwood transplanted from sparc64 */
>>  	pci_fill_in_pbm_cookies(pbm->pci_bus, pbm, pbm->prom_node);
>>  	pci_record_assignments(pbm, pbm->pci_bus);
>> diff --git a/arch/unicore32/kernel/pci.c b/arch/unicore32/kernel/pci.c
>> index 374a055..be0f261 100644
>> --- a/arch/unicore32/kernel/pci.c
>> +++ b/arch/unicore32/kernel/pci.c
>> @@ -258,7 +258,7 @@ static int __init pci_common_init(void)
>>  
>>  	pci_puv3_preinit();
>>  
>> -	puv3_bus = pci_scan_bus(0, &pci_puv3_ops, NULL);
>> +	puv3_bus = pci_scan_root_bus(NULL, 0, &pci_puv3_ops, NULL, NULL);
>>  
>>  	if (!puv3_bus)
>>  		panic("PCI: unable to scan bus!");
>> diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h
>> index 0892ea0..0540ff7 100644
>> --- a/arch/x86/include/asm/pci.h
>> +++ b/arch/x86/include/asm/pci.h
>> @@ -41,7 +41,7 @@ static inline int pci_proc_domain(struct pci_bus *bus)
>>  }
>>  #endif
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>     already-configured bus numbers - to be used for buggy BIOSes
>>     or architectures with incomplete PCI setup by the loader */
>>  
>> diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
>> index c20d2cc..baf6209 100644
>> --- a/arch/x86/pci/amd_bus.c
>> +++ b/arch/x86/pci/amd_bus.c
>> @@ -52,7 +52,7 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
>>  
>>  /**
>>   * early_root_info_init()
>> - * called before pcibios_scan_root and pci_scan_bus
>> + * called before pcibios_scan_root and pci_scan_root_bus
>>   * fills the mp_bus_to_cpumask array based according
>>   * to the LDT Bus Number Registers found in the northbridge.
>>   */
>> diff --git a/arch/xtensa/include/asm/pci.h b/arch/xtensa/include/asm/pci.h
>> index 5d52dc4..377fae9 100644
>> --- a/arch/xtensa/include/asm/pci.h
>> +++ b/arch/xtensa/include/asm/pci.h
>> @@ -13,7 +13,7 @@
>>  
>>  #ifdef __KERNEL__
>>  
>> -/* Can be used to override the logic in pci_scan_bus for skipping
>> +/* Can be used to override the logic in pci_scan_root_bus for skipping
>>   * already-configured bus numbers - to be used for buggy BIOSes
>>   * or architectures with incomplete PCI setup by the loader
>>   */
>> diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
>> index a0580af..67c31bd 100644
>> --- a/drivers/parisc/dino.c
>> +++ b/drivers/parisc/dino.c
>> @@ -74,7 +74,7 @@
>>  ** assigned a PCI bus number based on "when" it's discovered.
>>  **
>>  ** The "secondary" bus number is set to this before calling
>> -** pci_scan_bus(). If any PPB's are present, the scan will
>> +** pci_scan_root_bus(). If any PPB's are present, the scan will
>>  ** discover them and update the "secondary" and "subordinate"
>>  ** fields in Dino's pci_bus structure.
>>  **
>> @@ -787,7 +787,7 @@ static int __init dino_common_init(struct parisc_device *dev,
>>  
>>  	pcibios_register_hba(&dino_dev->hba);
>>  
>> -	pci_bios = &dino_bios_ops;   /* used by pci_scan_bus() */
>> +	pci_bios = &dino_bios_ops;   
>>  	pci_port = &dino_port_ops;
>>  
>>  	/*
>> diff --git a/drivers/pci/hotplug/ibmphp_core.c b/drivers/pci/hotplug/ibmphp_core.c
>> index 3efaf4c..b486432 100644
>> --- a/drivers/pci/hotplug/ibmphp_core.c
>> +++ b/drivers/pci/hotplug/ibmphp_core.c
>> @@ -767,7 +767,7 @@ static u8 bus_structure_fixup(u8 busno)
>>  					(l != 0x0000) && (l != 0xffff)) {
>>  			debug("%s - Inside bus_structure_fixup()\n",
>>  							__func__);
>> -			pci_scan_bus(busno, ibmphp_pci_bus->ops, NULL);
>> +			pci_scan_root_bus(NULL, busno, ibmphp_pci_bus->ops, NULL, NULL);
>>  			break;
>>  		}
>>  	}
>> -- 
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 


-- 
Thanks!
Yijing

  reply	other threads:[~2014-11-19  1:19 UTC|newest]

Thread overview: 253+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-17  9:43 [RFC PATCH 00/16] Refine PCI host bridge scan interfaces Yijing Wang
2014-11-17 10:21 ` Yijing Wang
2014-11-17 10:21 ` Yijing Wang
2014-11-17 10:21 ` Yijing Wang
2014-11-17  9:40 ` [RFC PATCH 03/16] PCI: Clean up pci_scan_bus() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:40 ` [RFC PATCH 12/16] ia64/PCI: Remove the redundant bus variable Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:40 ` [RFC PATCH 05/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus_parented() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:42 ` [RFC PATCH 16/16] powerpc/PCI: Use pci_scan_host_bridge() to scan PCI bus Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:43 ` [RFC PATCH 15/16] arm/PCI: Use pci_scan_host_bridge() instead of pci_scan_root_bus() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:43 ` [RFC PATCH 14/16] arm/PCI: Introduce pci_get_domain_nr() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 12:08   ` Lorenzo Pieralisi
2014-11-17 12:08     ` Lorenzo Pieralisi
2014-11-17 12:08     ` Lorenzo Pieralisi
2014-11-18  0:55     ` Yijing Wang
2014-11-18  0:55       ` Yijing Wang
2014-11-18  0:55       ` Yijing Wang
2014-11-18  0:55       ` Yijing Wang
2014-11-17  9:43 ` [RFC PATCH 13/16] ia64/PCI: Use pci_scan_host_bridge() to refactor pci_acpi_scan_root() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:43 ` [RFC PATCH 09/16] PCI: Associate .get_msi_ctrl() with pci_host_bridge Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 15:03   ` Lorenzo Pieralisi
2014-11-17 15:03     ` Lorenzo Pieralisi
2014-11-17 15:03     ` Lorenzo Pieralisi
2014-11-17  9:43 ` [RFC PATCH 10/16] PCI: Add of_scan_bus() to pci_host_info Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:43 ` [RFC PATCH 04/16] PCI: Rip out pci_bus_add_devices() from pci_scan_root_bus() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-18 14:34   ` Liviu Dudau
2014-11-18 14:34     ` Liviu Dudau
2014-11-18 14:34     ` Liviu Dudau
2014-11-18 14:34     ` Liviu Dudau
2014-11-19  1:21     ` Yijing Wang
2014-11-19  1:21       ` Yijing Wang
2014-11-19  1:21       ` Yijing Wang
2014-11-19  1:21       ` Yijing Wang
2014-11-17  9:45 ` [RFC PATCH 06/16] PCI: Use u32 type to combine PCI domain and bus number Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17  9:45 ` [RFC PATCH 02/16] PCI: Use pci_scan_root_bus() instead of pci_scan_bus() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-18 14:28   ` Liviu Dudau
2014-11-18 14:28     ` Liviu Dudau
2014-11-18 14:28     ` Liviu Dudau
2014-11-18 14:28     ` Liviu Dudau
2014-11-19  1:19     ` Yijing Wang [this message]
2014-11-19  1:19       ` Yijing Wang
2014-11-19  1:19       ` Yijing Wang
2014-11-19  1:19       ` Yijing Wang
2014-11-17  9:45 ` [RFC PATCH 01/16] PCI: Enhance pci_scan_root_bus() to support default IO/MEM resources Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:08   ` Arnd Bergmann
2014-11-17 10:08     ` Arnd Bergmann
2014-11-17 10:08     ` Arnd Bergmann
2014-11-17 10:08     ` Arnd Bergmann
2014-11-18  7:44     ` Yijing Wang
2014-11-18  7:44       ` Yijing Wang
2014-11-18  7:44       ` Yijing Wang
2014-11-18  7:44       ` Yijing Wang
2014-11-18  9:36       ` Arnd Bergmann
2014-11-18  9:36         ` Arnd Bergmann
2014-11-18  9:36         ` Arnd Bergmann
2014-11-18  9:36         ` Arnd Bergmann
2014-11-18 11:46         ` Yijing Wang
2014-11-18 11:46           ` Yijing Wang
2014-11-18 11:46           ` Yijing Wang
2014-11-18 11:46           ` Yijing Wang
2014-11-18 14:23           ` Liviu Dudau
2014-11-18 14:23             ` Liviu Dudau
2014-11-18 14:23             ` Liviu Dudau
2014-11-18 14:23             ` Liviu Dudau
2014-11-19  1:15             ` Yijing Wang
2014-11-19  1:15               ` Yijing Wang
2014-11-19  1:15               ` Yijing Wang
2014-11-19  1:15               ` Yijing Wang
2014-11-17  9:45 ` [RFC PATCH 08/16] PCI: Introduce pci_scan_host_bridge() and pci_host_info Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-18 15:42   ` Liviu Dudau
2014-11-18 15:42     ` Liviu Dudau
2014-11-18 15:42     ` Liviu Dudau
2014-11-18 15:42     ` Liviu Dudau
2014-11-19  2:09     ` Yijing Wang
2014-11-19  2:09       ` Yijing Wang
2014-11-19  2:09       ` Yijing Wang
2014-11-19  2:09       ` Yijing Wang
2014-11-19 16:41       ` Liviu Dudau
2014-11-19 16:41         ` Liviu Dudau
2014-11-19 16:41         ` Liviu Dudau
2014-11-19 16:41         ` Liviu Dudau
2014-11-20  2:54         ` Yijing Wang
2014-11-20  2:54           ` Yijing Wang
2014-11-20  2:54           ` Yijing Wang
2014-11-20  2:54           ` Yijing Wang
2014-11-17  9:45 ` [RFC PATCH 07/16] PCI: Separate pci_host_bridge creation out of pci_create_root_bus() Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:56   ` Arnd Bergmann
2014-11-17 10:56     ` Arnd Bergmann
2014-11-17 10:56     ` Arnd Bergmann
2014-11-17 10:56     ` Arnd Bergmann
2014-11-18  8:32     ` Yijing Wang
2014-11-18  8:32       ` Yijing Wang
2014-11-18  8:32       ` Yijing Wang
2014-11-18  8:32       ` Yijing Wang
2014-11-18  9:30       ` Arnd Bergmann
2014-11-18  9:30         ` Arnd Bergmann
2014-11-18  9:30         ` Arnd Bergmann
2014-11-18  9:30         ` Arnd Bergmann
2014-11-18 11:44         ` Yijing Wang
2014-11-18 11:44           ` Yijing Wang
2014-11-18 11:44           ` Yijing Wang
2014-11-18 11:44           ` Yijing Wang
2014-11-18 12:25           ` Arnd Bergmann
2014-11-18 12:25             ` Arnd Bergmann
2014-11-18 12:25             ` Arnd Bergmann
2014-11-18 12:25             ` Arnd Bergmann
2014-11-18 12:41             ` Yijing Wang
2014-11-18 12:41               ` Yijing Wang
2014-11-18 12:41               ` Yijing Wang
2014-11-18 12:41               ` Yijing Wang
2014-11-18 14:48       ` Liviu Dudau
2014-11-18 14:48         ` Liviu Dudau
2014-11-18 14:48         ` Liviu Dudau
2014-11-18 14:48         ` Liviu Dudau
2014-11-19  2:24         ` Yijing Wang
2014-11-19  2:24           ` Yijing Wang
2014-11-19  2:24           ` Yijing Wang
2014-11-19  2:24           ` Yijing Wang
2014-11-19 16:29           ` Liviu Dudau
2014-11-19 16:29             ` Liviu Dudau
2014-11-19 16:29             ` Liviu Dudau
2014-11-20  2:00             ` Yijing Wang
2014-11-20  2:00               ` Yijing Wang
2014-11-20  2:00               ` Yijing Wang
2014-11-20  2:00               ` Yijing Wang
2014-11-18 15:30   ` Liviu Dudau
2014-11-18 15:30     ` Liviu Dudau
2014-11-18 15:30     ` Liviu Dudau
2014-11-18 15:30     ` Liviu Dudau
2014-11-19  1:42     ` Yijing Wang
2014-11-19  1:42       ` Yijing Wang
2014-11-19  1:42       ` Yijing Wang
2014-11-19  1:42       ` Yijing Wang
2014-11-19 16:37       ` Liviu Dudau
2014-11-19 16:37         ` Liviu Dudau
2014-11-19 16:37         ` Liviu Dudau
2014-11-19 16:37         ` Liviu Dudau
2014-11-20  2:47         ` Yijing Wang
2014-11-20  2:47           ` Yijing Wang
2014-11-20  2:47           ` Yijing Wang
2014-11-20  2:47           ` Yijing Wang
2014-11-20  9:47           ` Liviu Dudau
2014-11-20  9:47             ` Liviu Dudau
2014-11-20  9:47             ` Liviu Dudau
2014-11-20  9:47             ` Liviu Dudau
2014-11-21  2:53             ` Yijing Wang
2014-11-21  2:53               ` Yijing Wang
2014-11-21  2:53               ` Yijing Wang
2014-11-21  2:53               ` Yijing Wang
2014-11-21  9:53               ` Liviu Dudau
2014-11-21  9:53                 ` Liviu Dudau
2014-11-21  9:53                 ` Liviu Dudau
2014-11-21  9:53                 ` Liviu Dudau
2014-11-17  9:45 ` [RFC PATCH 11/16] x86/PCI: Use pci_scan_host_bridge() instead " Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 10:21   ` Yijing Wang
2014-11-17 14:13 ` [RFC PATCH 00/16] Refine PCI host bridge scan interfaces Arnd Bergmann
2014-11-17 14:13   ` Arnd Bergmann
2014-11-17 14:13   ` Arnd Bergmann
2014-11-17 14:13   ` Arnd Bergmann
2014-11-18 11:17   ` Yijing Wang
2014-11-18 11:17     ` Yijing Wang
2014-11-18 11:17     ` Yijing Wang
2014-11-18 11:17     ` Yijing Wang
2014-11-18 11:30     ` Arnd Bergmann
2014-11-18 11:30       ` Arnd Bergmann
2014-11-18 11:30       ` Arnd Bergmann
2014-11-18 11:30       ` Arnd Bergmann
2014-11-18 11:45       ` Lorenzo Pieralisi
2014-11-18 11:45         ` Lorenzo Pieralisi
2014-11-18 11:45         ` Lorenzo Pieralisi
2014-11-18 12:14         ` Yijing Wang
2014-11-18 12:14           ` Yijing Wang
2014-11-18 12:14           ` Yijing Wang
2014-11-18 12:17       ` Yijing Wang
2014-11-18 12:17         ` Yijing Wang
2014-11-18 12:17         ` Yijing Wang
2014-11-18 12:17         ` Yijing Wang
2014-11-18 12:27         ` Arnd Bergmann
2014-11-18 12:27           ` Arnd Bergmann
2014-11-18 12:27           ` Arnd Bergmann
2014-11-18 12:27           ` Arnd Bergmann
2014-11-20 12:01           ` Tomasz Nowicki
2014-11-20 12:01             ` Tomasz Nowicki
2014-11-20 12:01             ` Tomasz Nowicki
2014-11-20 12:01             ` Tomasz Nowicki
2014-11-20 13:15             ` Arnd Bergmann
2014-11-20 13:15               ` Arnd Bergmann
2014-11-20 13:15               ` Arnd Bergmann
2014-11-20 13:15               ` Arnd Bergmann
2014-11-20 11:54   ` Tomasz Nowicki
2014-11-20 11:54     ` Tomasz Nowicki
2014-11-20 11:54     ` Tomasz Nowicki
2014-11-20 11:54     ` Tomasz Nowicki
2014-11-20 12:08     ` Liviu Dudau
2014-11-20 12:08       ` Liviu Dudau
2014-11-20 12:08       ` Liviu Dudau
2014-11-20 12:53       ` Tomasz Nowicki
2014-11-20 12:53         ` Tomasz Nowicki
2014-11-20 12:53         ` Tomasz Nowicki
2014-11-20 12:53         ` Tomasz Nowicki
2014-11-20 16:39         ` Liviu Dudau
2014-11-20 16:39           ` Liviu Dudau
2014-11-20 16:39           ` Liviu Dudau
2014-11-21  2:58           ` Yijing Wang
2014-11-21  2:58             ` Yijing Wang
2014-11-21  2:58             ` Yijing Wang
2014-11-21  2:58             ` Yijing Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=546BF01B.6010209@huawei.com \
    --to=wangyijing@huawei.com \
    --cc=Liviu.Dudau@arm.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=huxinwei@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=liviu@dudau.co.uk \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=tony.luck@intel.com \
    --cc=wangyijing0307@gmail.com \
    --cc=wuyun.wu@huawei.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.