Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1199204 > unrolled thread

Re: [PATCH] ARM/PCI: set MPS before pci_bus_add_devices()

Started byRussell King - ARM Linux <linux@arm.linux.org.uk>
First post2015-08-03 21:20 +0200
Last post2015-08-04 00:40 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] ARM/PCI: set MPS before pci_bus_add_devices() Russell King - ARM Linux <linux@arm.linux.org.uk> - 2015-08-03 21:20 +0200
    Re: [PATCH] ARM/PCI: set MPS before pci_bus_add_devices() Bjorn Helgaas <bhelgaas@google.com> - 2015-08-04 00:40 +0200

#1199204 — Re: [PATCH] ARM/PCI: set MPS before pci_bus_add_devices()

FromRussell King - ARM Linux <linux@arm.linux.org.uk>
Date2015-08-03 21:20 +0200
SubjectRe: [PATCH] ARM/PCI: set MPS before pci_bus_add_devices()
Message-ID<pTtrc-3P6-7@gated-at.bofh.it>
On Tue, Jul 21, 2015 at 05:35:19PM -0400, Murali Karicheri wrote:
> The MPS configuration should be done *before* pci_bus_add_devices().
> After pci_bus_add_devices(), drivers may be bound to devices, and
> the PCI core shouldn't touch device configuration while a driver
> owns the device.
> 
> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
> Reported-by: Bjorn Helgaas <bhelgaas@google.com>
> ---
>  arch/arm/kernel/bios32.c | 19 +++++--------------
>  1 file changed, 5 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
> index fcbbbb1..17efde7 100644
> --- a/arch/arm/kernel/bios32.c
> +++ b/arch/arm/kernel/bios32.c
> @@ -520,7 +520,8 @@ void pci_common_init_dev(struct device *parent, struct hw_pci *hw)
>  	list_for_each_entry(sys, &head, node) {
>  		struct pci_bus *bus = sys->bus;
>  
> -		if (!pci_has_flag(PCI_PROBE_ONLY)) {
> +		if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {

Let's get rid of that useless check.  bus can't be NULL here.

In the original code (below) if bus was NULL, then we would've already
oopsed before we got here.  As we don't oops here, no one is ever
seeing it being NULL, so the test is redundant.

> -	list_for_each_entry(sys, &head, node) {
> -		struct pci_bus *bus = sys->bus;
> -
> -		/* Configure PCI Express settings */
> -		if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {

Thanks.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
--
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/

[toc] | [next] | [standalone]


#1199301

FromBjorn Helgaas <bhelgaas@google.com>
Date2015-08-04 00:40 +0200
Message-ID<pTwyK-8oA-11@gated-at.bofh.it>
In reply to#1199204
On Mon, Aug 3, 2015 at 2:13 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Tue, Jul 21, 2015 at 05:35:19PM -0400, Murali Karicheri wrote:
>> The MPS configuration should be done *before* pci_bus_add_devices().
>> After pci_bus_add_devices(), drivers may be bound to devices, and
>> the PCI core shouldn't touch device configuration while a driver
>> owns the device.
>>
>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>> Reported-by: Bjorn Helgaas <bhelgaas@google.com>
>> ---
>>  arch/arm/kernel/bios32.c | 19 +++++--------------
>>  1 file changed, 5 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
>> index fcbbbb1..17efde7 100644
>> --- a/arch/arm/kernel/bios32.c
>> +++ b/arch/arm/kernel/bios32.c
>> @@ -520,7 +520,8 @@ void pci_common_init_dev(struct device *parent, struct hw_pci *hw)
>>       list_for_each_entry(sys, &head, node) {
>>               struct pci_bus *bus = sys->bus;
>>
>> -             if (!pci_has_flag(PCI_PROBE_ONLY)) {
>> +             if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {
>
> Let's get rid of that useless check.  bus can't be NULL here.
>
> In the original code (below) if bus was NULL, then we would've already
> oopsed before we got here.  As we don't oops here, no one is ever
> seeing it being NULL, so the test is redundant.
>
>> -     list_for_each_entry(sys, &head, node) {
>> -             struct pci_bus *bus = sys->bus;
>> -
>> -             /* Configure PCI Express settings */
>> -             if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {
>

Sorry, I had forgotten to push this branch, but I did already get rid
of the check for bus being NULL:

http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?id=808b27a5ae05
--
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/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web