diff mbox

pci->pcie bridge issue: kernel unable to find a free I/O port range.

Message ID CAE9FiQVD-qx-12G3j89SRqt3hUyLaUw8XKngjkFUsLwOrKSNrA@mail.gmail.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Yinghai Lu Jan. 30, 2014, 6:56 p.m. UTC
On Wed, Jan 29, 2014 at 9:31 PM, `VL <vl.homutov@gmail.com> wrote:
> On 15.01.2014 22:09, `VL wrote:
>>
>> On 15.01.2014 13:10, `VL wrote:
>>>>
>>>> looks like the your adapter need more time to settle down?
>>>> Can you check if you can enable slow boot mode in BIOS setup?
>>>
>>> yes, probably. I'll try to repeat steps with disabled fast boot.
>>
>> no, this is not the case. I've disabled all fast boot in BIOS and nothing
>> changed in logs.
>>
>> so this is the best of what we have:
>> http://inspert.ru/pci/dmesg-earlydump.txt
>>
>> I was also able to reproduce the issue without pci=realloc. I have
>> disabled
>> all builtin devices on motherboard (unused controllers, NICs and audio).
>> Looks like in this conditions kernel was able to allocate some resource
>> and hang during snd_ice1712 driver load.
>>
>> Attached is the photo of boot with this situation.
>> Unfortunately, since NICs are disabled and there is no serial onboard,
>> I cannot provide full log.
>>
> up: any concluision/suggestions?

I don't know why the io bar of 07:00.0 can not be updated.
also it's weird that 07:0.0 is not showing up in earlydump.

anyway please try attached patch to see if it could make any difference.

Thanks

Yinghai

Comments

`VL Feb. 1, 2014, 10:30 a.m. UTC | #1
On 30.01.2014 22:56, Yinghai Lu wrote:
> On Wed, Jan 29, 2014 at 9:31 PM, `VL <vl.homutov@gmail.com> wrote:
>> On 15.01.2014 22:09, `VL wrote:
>>> On 15.01.2014 13:10, `VL wrote:
>>>>> looks like the your adapter need more time to settle down?
>>>>> Can you check if you can enable slow boot mode in BIOS setup?
>>>> yes, probably. I'll try to repeat steps with disabled fast boot.
>>> no, this is not the case. I've disabled all fast boot in BIOS and nothing
>>> changed in logs.
>>>
>>> so this is the best of what we have:
>>> http://inspert.ru/pci/dmesg-earlydump.txt
>>>
>>> I was also able to reproduce the issue without pci=realloc. I have
>>> disabled
>>> all builtin devices on motherboard (unused controllers, NICs and audio).
>>> Looks like in this conditions kernel was able to allocate some resource
>>> and hang during snd_ice1712 driver load.
>>>
>>> Attached is the photo of boot with this situation.
>>> Unfortunately, since NICs are disabled and there is no serial onboard,
>>> I cannot provide full log.
>>>
>> up: any concluision/suggestions?
> I don't know why the io bar of 07:00.0 can not be updated.
> also it's weird that 07:0.0 is not showing up in earlydump.
>
> anyway please try attached patch to see if it could make any difference.
>
> Thanks
>
> Yinghai
thank you, I'll try the patch and report results.
--
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
Bjorn Helgaas Oct. 13, 2014, 8:48 p.m. UTC | #2
On Sat, Feb 1, 2014 at 3:30 AM, `VL <vl.homutov@gmail.com> wrote:
> On 30.01.2014 22:56, Yinghai Lu wrote:
>>
>> On Wed, Jan 29, 2014 at 9:31 PM, `VL <vl.homutov@gmail.com> wrote:
>>>
>>> On 15.01.2014 22:09, `VL wrote:
>>>>
>>>> On 15.01.2014 13:10, `VL wrote:
>>>>>>
>>>>>> looks like the your adapter need more time to settle down?
>>>>>> Can you check if you can enable slow boot mode in BIOS setup?
>>>>>
>>>>> yes, probably. I'll try to repeat steps with disabled fast boot.
>>>>
>>>> no, this is not the case. I've disabled all fast boot in BIOS and
>>>> nothing
>>>> changed in logs.
>>>>
>>>> so this is the best of what we have:
>>>> http://inspert.ru/pci/dmesg-earlydump.txt
>>>>
>>>> I was also able to reproduce the issue without pci=realloc. I have
>>>> disabled
>>>> all builtin devices on motherboard (unused controllers, NICs and audio).
>>>> Looks like in this conditions kernel was able to allocate some resource
>>>> and hang during snd_ice1712 driver load.
>>>>
>>>> Attached is the photo of boot with this situation.
>>>> Unfortunately, since NICs are disabled and there is no serial onboard,
>>>> I cannot provide full log.
>>>>
>>> up: any concluision/suggestions?
>>
>> I don't know why the io bar of 07:00.0 can not be updated.
>> also it's weird that 07:0.0 is not showing up in earlydump.
>>
>> anyway please try attached patch to see if it could make any difference.
>>
>> Thanks
>>
>> Yinghai
>
> thank you, I'll try the patch and report results.

Did this ever get resolved?  If not, can you open a report at
bugzilla.kernel.org and attach the info you have?

Bjorn
--
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
diff mbox

Patch

Suject: [PATCH] x86, pci: use raw_pci_ext_ops for conf1

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 arch/x86/pci/common.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Index: linux-2.6/arch/x86/pci/common.c
===================================================================
--- linux-2.6.orig/arch/x86/pci/common.c
+++ linux-2.6/arch/x86/pci/common.c
@@ -41,20 +41,20 @@  const struct pci_raw_ops *__read_mostly
 int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
 						int reg, int len, u32 *val)
 {
-	if (domain == 0 && reg < 256 && raw_pci_ops)
-		return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
 	if (raw_pci_ext_ops)
 		return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val);
+	if (domain == 0 && reg < 256 && raw_pci_ops)
+		return raw_pci_ops->read(domain, bus, devfn, reg, len, val);
 	return -EINVAL;
 }
 
 int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
 						int reg, int len, u32 val)
 {
-	if (domain == 0 && reg < 256 && raw_pci_ops)
-		return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
 	if (raw_pci_ext_ops)
 		return raw_pci_ext_ops->write(domain, bus, devfn, reg, len, val);
+	if (domain == 0 && reg < 256 && raw_pci_ops)
+		return raw_pci_ops->write(domain, bus, devfn, reg, len, val);
 	return -EINVAL;
 }