On Wed, Jan 29, 2014 at 9:31 PM, `VL <vl.homutov@xxxxxxxxx> 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
Suject: [PATCH] x86, pci: use raw_pci_ext_ops for conf1 Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- 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; }