post 2.6.26 requires pciehp_slot_with_bus - Kernel

This is a discussion on post 2.6.26 requires pciehp_slot_with_bus - Kernel ; Somewhere post 2.6.26, pciehp started whining about not being able to claim the slot and error code -17. It suggested adding "pciehp_slot_with_bus", which actually helped. Still, having a kernel parameter should just be a temporary fix. -- -- Pierre Ossman ...

+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 37

Thread: post 2.6.26 requires pciehp_slot_with_bus

  1. post 2.6.26 requires pciehp_slot_with_bus

    Somewhere post 2.6.26, pciehp started whining about not being able to
    claim the slot and error code -17. It suggested adding
    "pciehp_slot_with_bus", which actually helped. Still, having a kernel
    parameter should just be a temporary fix.

    --
    -- Pierre Ossman

    Linux kernel, MMC maintainer http://www.kernel.org
    rdesktop, core developer http://www.rdesktop.org

    WARNING: This correspondence is being monitored by the
    Swedish government. Make sure your server uses encryption
    for SMTP traffic and consider using PGP for end-to-end
    encryption.

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v2.0.9 (GNU/Linux)

    iEYEARECAAYFAkiIa90ACgkQ7b8eESbyJLgfOACeO4cEKsHL+U QUw2YAiDIVcphl
    IBoAoKLfWMwOby1ZIhRtXd9h7p9YP8kS
    =aKZt
    -----END PGP SIGNATURE-----


  2. Re: post 2.6.26 requires pciehp_slot_with_bus

    Hi Pierre,
    (Added linux-pci to CC)

    Pierre Ossman wrote:
    > Somewhere post 2.6.26, pciehp started whining about not being able to
    > claim the slot and error code -17. It suggested adding
    > "pciehp_slot_with_bus", which actually helped. Still, having a kernel
    > parameter should just be a temporary fix.


    The "pciehp_slot_with_bus" option is a workaround for the platforms
    that assign the same physical slot number to multiple slots. If your
    system has PCI chassis and it supports Chassis Number registers,
    maybe one of the solution is using chassis number + slot number as a
    slot name. But I don't have any idea other than "pciehp_slot_with_bus"
    if your system doesn't support chassis number.

    Do you have any idea?

    Thanks,
    Kenji Kaneshige


    --
    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/

  3. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thu, 24 Jul 2008 21:38:32 +0900
    Kenji Kaneshige wrote:

    > Hi Pierre,
    > (Added linux-pci to CC)
    >
    > Pierre Ossman wrote:
    > > Somewhere post 2.6.26, pciehp started whining about not being able to
    > > claim the slot and error code -17. It suggested adding
    > > "pciehp_slot_with_bus", which actually helped. Still, having a kernel
    > > parameter should just be a temporary fix.

    >
    > The "pciehp_slot_with_bus" option is a workaround for the platforms
    > that assign the same physical slot number to multiple slots. If your
    > system has PCI chassis and it supports Chassis Number registers,
    > maybe one of the solution is using chassis number + slot number as a
    > slot name. But I don't have any idea other than "pciehp_slot_with_bus"
    > if your system doesn't support chassis number.
    >


    The what now?

    This is a laptop with a single expressport that worked fine up until
    this merge window. What changed and why is it no longer possible to
    support this hardware without a kernel parameter?

    Rgds
    --
    -- Pierre Ossman

    Linux kernel, MMC maintainer http://www.kernel.org
    rdesktop, core developer http://www.rdesktop.org

    WARNING: This correspondence is being monitored by the
    Swedish government. Make sure your server uses encryption
    for SMTP traffic and consider using PGP for end-to-end
    encryption.

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v2.0.9 (GNU/Linux)

    iEYEARECAAYFAkiI6HwACgkQ7b8eESbyJLhHtgCgxO+Gouh56F Muuyfb2ZYGaFX8
    nPsAoLH9m9S4k0lNVwOHfcqXU/fTZR1a
    =ryDO
    -----END PGP SIGNATURE-----


  4. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thursday, July 24, 2008 1:39 pm Pierre Ossman wrote:
    > On Thu, 24 Jul 2008 21:38:32 +0900
    >
    > Kenji Kaneshige wrote:
    > > Hi Pierre,
    > > (Added linux-pci to CC)
    > >
    > > Pierre Ossman wrote:
    > > > Somewhere post 2.6.26, pciehp started whining about not being able to
    > > > claim the slot and error code -17. It suggested adding
    > > > "pciehp_slot_with_bus", which actually helped. Still, having a kernel
    > > > parameter should just be a temporary fix.

    > >
    > > The "pciehp_slot_with_bus" option is a workaround for the platforms
    > > that assign the same physical slot number to multiple slots. If your
    > > system has PCI chassis and it supports Chassis Number registers,
    > > maybe one of the solution is using chassis number + slot number as a
    > > slot name. But I don't have any idea other than "pciehp_slot_with_bus"
    > > if your system doesn't support chassis number.

    >
    > The what now?
    >
    > This is a laptop with a single expressport that worked fine up until
    > this merge window. What changed and why is it no longer possible to
    > support this hardware without a kernel parameter?


    Yeah we're being a bit more careful about registering hotplug slots these
    days. The fact that you got a conflict message indicates that more than one
    driver is trying to bind to that PCIe port and handle hotplug for it. I
    guess acpiphp must already be loaded?

    Jesse
    --
    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/

  5. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thu, 24 Jul 2008 14:07:18 -0700
    Jesse Barnes wrote:

    > On Thursday, July 24, 2008 1:39 pm Pierre Ossman wrote:
    > >
    > > This is a laptop with a single expressport that worked fine up until
    > > this merge window. What changed and why is it no longer possible to
    > > support this hardware without a kernel parameter?

    >
    > Yeah we're being a bit more careful about registering hotplug slots these
    > days. The fact that you got a conflict message indicates that more than one
    > driver is trying to bind to that PCIe port and handle hotplug for it. I
    > guess acpiphp must already be loaded?
    >


    Nope. Only pciehp is builtin, and acpiphp is not loaded. Anything
    non-hotplug related that can block stuff?

    Anyway, the port seems to work even with that warning present though
    (sorry for not testing that properly earlier). Stray warnings is still
    not pleasant though, so I can do some more testing if you have some
    ideas.

    Rgds
    --
    -- Pierre Ossman

    Linux kernel, MMC maintainer http://www.kernel.org
    rdesktop, core developer http://www.rdesktop.org

    WARNING: This correspondence is being monitored by the
    Swedish government. Make sure your server uses encryption
    for SMTP traffic and consider using PGP for end-to-end
    encryption.

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v2.0.9 (GNU/Linux)

    iEYEARECAAYFAkiI+WIACgkQ7b8eESbyJLjaeACcD4VTVh86Fs Hmom5GFRhnQhy1
    W9AAn0xPAQBQ/HRtWbN6Mf1VrJk7h0BT
    =lwj3
    -----END PGP SIGNATURE-----


  6. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thursday, July 24, 2008 2:51 pm Pierre Ossman wrote:
    > On Thu, 24 Jul 2008 14:07:18 -0700
    >
    > Jesse Barnes wrote:
    > > On Thursday, July 24, 2008 1:39 pm Pierre Ossman wrote:
    > > > This is a laptop with a single expressport that worked fine up until
    > > > this merge window. What changed and why is it no longer possible to
    > > > support this hardware without a kernel parameter?

    > >
    > > Yeah we're being a bit more careful about registering hotplug slots these
    > > days. The fact that you got a conflict message indicates that more than
    > > one driver is trying to bind to that PCIe port and handle hotplug for it.
    > > I guess acpiphp must already be loaded?

    >
    > Nope. Only pciehp is builtin, and acpiphp is not loaded. Anything
    > non-hotplug related that can block stuff?


    Theoretically only one of the other hotplug drivers could claim the slot (e.g.
    acpi, cpci, cpqhp, fakephp etc.). You could put a dump_stack() or something
    into drivers/pci/hotplug/pci_hotplug_core.cci_hp_register to see if we're
    getting multiple callers on the same slot for some reason... Maybe the
    pciehp driver itself is trying to register the same slot twice?

    > Anyway, the port seems to work even with that warning present though
    > (sorry for not testing that properly earlier). Stray warnings is still
    > not pleasant though, so I can do some more testing if you have some
    > ideas.


    Thanks. Yeah we don't want to scare people or break existing setups.

    Jesse
    --
    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/

  7. Re: post 2.6.26 requires pciehp_slot_with_bus

    * Jesse Barnes :
    > On Thursday, July 24, 2008 2:51 pm Pierre Ossman wrote:
    > > On Thu, 24 Jul 2008 14:07:18 -0700
    > >
    > > Jesse Barnes wrote:
    > > > On Thursday, July 24, 2008 1:39 pm Pierre Ossman wrote:
    > > > > This is a laptop with a single expressport that worked
    > > > > fine up until this merge window. What changed and why is
    > > > > it no longer possible to support this hardware without a
    > > > > kernel parameter?
    > > >
    > > > Yeah we're being a bit more careful about registering
    > > > hotplug slots these days. The fact that you got a conflict
    > > > message indicates that more than one driver is trying to
    > > > bind to that PCIe port and handle hotplug for it. I guess
    > > > acpiphp must already be loaded?

    > >
    > > Nope. Only pciehp is builtin, and acpiphp is not loaded.
    > > Anything non-hotplug related that can block stuff?

    >
    > Theoretically only one of the other hotplug drivers could claim
    > the slot (e.g. acpi, cpci, cpqhp, fakephp etc.). You could
    > put a dump_stack() or something into
    > drivers/pci/hotplug/pci_hotplug_core.cci_hp_register to see
    > if we're getting multiple callers on the same slot for some
    > reason... Maybe the pciehp driver itself is trying to register
    > the same slot twice?


    This is a good idea.

    Any chance you could get that debug info for us, Pierre?

    Thanks.

    /ac

    --
    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/

  8. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thu, 24 Jul 2008 16:29:14 -0600
    Alex Chiang wrote:

    > * Jesse Barnes :
    > >
    > > Theoretically only one of the other hotplug drivers could claim
    > > the slot (e.g. acpi, cpci, cpqhp, fakephp etc.). You could
    > > put a dump_stack() or something into
    > > drivers/pci/hotplug/pci_hotplug_core.cci_hp_register to see
    > > if we're getting multiple callers on the same slot for some
    > > reason... Maybe the pciehp driver itself is trying to register
    > > the same slot twice?

    >
    > This is a good idea.
    >
    > Any chance you could get that debug info for us, Pierre?
    >


    I aim to please. Following is the relevant lines from my bootup with a
    dump_stack() right at the beginning of pci_hp_register():

    [ 1.247459] pcieport-driver 0000:00:01.0: found MSI capability
    [ 1.247523] pci_express 0000:00:01.0cie00: allocate port service
    [ 1.247632] pci_express 0000:00:01.0cie02: allocate port service
    [ 1.247741] pci_express 0000:00:01.0cie03: allocate port service
    [ 1.248010] PCI: Setting latency timer of device 0000:00:1c.0 to 64
    [ 1.248158] pcieport-driver 0000:00:1c.0: found MSI capability
    [ 1.248299] pci_express 0000:00:1c.0cie00: allocate port service
    [ 1.248415] pci_express 0000:00:1c.0cie02: allocate port service
    [ 1.248524] pci_express 0000:00:1c.0cie03: allocate port service
    [ 1.248873] PCI: Setting latency timer of device 0000:00:1c.1 to 64
    [ 1.249020] pcieport-driver 0000:00:1c.1: found MSI capability
    [ 1.249162] pci_express 0000:00:1c.1cie00: allocate port service
    [ 1.249270] pci_express 0000:00:1c.1cie02: allocate port service
    [ 1.249379] pci_express 0000:00:1c.1cie03: allocate port service
    [ 1.249708] PCI: Setting latency timer of device 0000:00:1c.2 to 64
    [ 1.249855] pcieport-driver 0000:00:1c.2: found MSI capability
    [ 1.249995] pci_express 0000:00:1c.2cie00: allocate port service
    [ 1.250102] pci_express 0000:00:1c.2cie02: allocate port service
    [ 1.250211] pci_express 0000:00:1c.2cie03: allocate port service
    [ 1.250531] PCI: Setting latency timer of device 0000:00:1c.3 to 64
    [ 1.250679] pcieport-driver 0000:00:1c.3: found MSI capability
    [ 1.250819] pci_express 0000:00:1c.3cie00: allocate port service
    [ 1.250927] pci_express 0000:00:1c.3cie02: allocate port service
    [ 1.251035] pci_express 0000:00:1c.3cie03: allocate port service
    [ 1.251361] PCI: Setting latency timer of device 0000:00:1c.4 to 64
    [ 1.251508] pcieport-driver 0000:00:1c.4: found MSI capability
    [ 1.251649] pci_express 0000:00:1c.4cie00: allocate port service
    [ 1.251762] pci_express 0000:00:1c.4cie02: allocate port service
    [ 1.251894] pci_express 0000:00:1c.4cie03: allocate port service
    [ 1.252429] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    [ 1.253405] pciehp: HPC vendor_id 8086 device_id 2a01 ss_vid 0 ss_did 0
    [ 1.253453] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.253460] [] pci_hp_register+0x25/0x4b0
    [ 1.253475] [] ? get_adapter_status+0x2e/0x70
    [ 1.253485] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.253494] [] pciehp_probe+0x12b/0x3f0
    [ 1.253502] [] ? sysfs_add_one+0x18/0x50
    [ 1.253513] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.253523] [] pcie_port_probe_service+0x50/0x90
    [ 1.253531] [] ? sysfs_create_link+0x17/0x20
    [ 1.253540] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.253550] [] driver_probe_device+0x87/0x1a0
    [ 1.253557] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.253569] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.253578] [] __driver_attach+0x79/0x80
    [ 1.253585] [] bus_for_each_dev+0x53/0x80
    [ 1.253593] [] driver_attach+0x1e/0x20
    [ 1.253600] [] ? __driver_attach+0x0/0x80
    [ 1.253608] [] bus_add_driver+0x1b7/0x230
    [ 1.253615] [] driver_register+0x6e/0x150
    [ 1.253622] [] ? driver_register+0x6e/0x150
    [ 1.253630] [] pcie_port_service_register+0x3f/0x50
    [ 1.253638] [] pcied_init+0x16/0x83
    [ 1.253648] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.253657] [] kernel_init+0x1ad/0x2b8
    [ 1.253666] [] ? sys_select+0x44/0x1a0
    [ 1.253676] [] ? pcied_init+0x0/0x83
    [ 1.253685] [] ? schedule_tail+0x1f/0x50
    [ 1.253695] [] ? ret_from_fork+0x6/0x1c
    [ 1.253704] [] ? kernel_init+0x0/0x2b8
    [ 1.253712] [] ? kernel_init+0x0/0x2b8
    [ 1.253720] [] kernel_thread_helper+0x7/0x10
    [ 1.253728] =======================
    [ 1.253841] hpdriver 0000:00:01.0cie02: service driver hpdriver loaded
    [ 1.254648] pciehp: HPC vendor_id 8086 device_id 283f ss_vid 0 ss_did 0
    [ 1.254730] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.254735] [] pci_hp_register+0x25/0x4b0
    [ 1.254744] [] ? get_adapter_status+0x2e/0x70
    [ 1.254754] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.254763] [] pciehp_probe+0x12b/0x3f0
    [ 1.254771] [] ? sysfs_add_one+0x18/0x50
    [ 1.254780] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.254789] [] pcie_port_probe_service+0x50/0x90
    [ 1.254797] [] ? sysfs_create_link+0x17/0x20
    [ 1.254806] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.254814] [] driver_probe_device+0x87/0x1a0
    [ 1.254821] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.254830] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.254838] [] __driver_attach+0x79/0x80
    [ 1.254845] [] bus_for_each_dev+0x53/0x80
    [ 1.254853] [] driver_attach+0x1e/0x20
    [ 1.254859] [] ? __driver_attach+0x0/0x80
    [ 1.254867] [] bus_add_driver+0x1b7/0x230
    [ 1.254874] [] driver_register+0x6e/0x150
    [ 1.254881] [] ? driver_register+0x6e/0x150
    [ 1.254889] [] pcie_port_service_register+0x3f/0x50
    [ 1.254897] [] pcied_init+0x16/0x83
    [ 1.254905] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.254914] [] kernel_init+0x1ad/0x2b8
    [ 1.254922] [] ? sys_select+0x44/0x1a0
    [ 1.254930] [] ? pcied_init+0x0/0x83
    [ 1.254939] [] ? schedule_tail+0x1f/0x50
    [ 1.254948] [] ? ret_from_fork+0x6/0x1c
    [ 1.254956] [] ? kernel_init+0x0/0x2b8
    [ 1.254964] [] ? kernel_init+0x0/0x2b8
    [ 1.254972] [] kernel_thread_helper+0x7/0x10
    [ 1.254980] =======================
    [ 1.255097] hpdriver 0000:00:1c.0cie02: service driver hpdriver loaded
    [ 1.255900] pciehp: HPC vendor_id 8086 device_id 2841 ss_vid 0 ss_did 0
    [ 1.255989] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.255994] [] pci_hp_register+0x25/0x4b0
    [ 1.256004] [] ? get_adapter_status+0x2e/0x70
    [ 1.256013] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.256023] [] pciehp_probe+0x12b/0x3f0
    [ 1.256030] [] ? sysfs_add_one+0x18/0x50
    [ 1.256040] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.256049] [] pcie_port_probe_service+0x50/0x90
    [ 1.256057] [] ? sysfs_create_link+0x17/0x20
    [ 1.256066] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.256074] [] driver_probe_device+0x87/0x1a0
    [ 1.256082] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.256092] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.256100] [] __driver_attach+0x79/0x80
    [ 1.256107] [] bus_for_each_dev+0x53/0x80
    [ 1.256114] [] driver_attach+0x1e/0x20
    [ 1.256121] [] ? __driver_attach+0x0/0x80
    [ 1.256129] [] bus_add_driver+0x1b7/0x230
    [ 1.256136] [] driver_register+0x6e/0x150
    [ 1.256143] [] ? driver_register+0x6e/0x150
    [ 1.256151] [] pcie_port_service_register+0x3f/0x50
    [ 1.256159] [] pcied_init+0x16/0x83
    [ 1.256167] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.256176] [] kernel_init+0x1ad/0x2b8
    [ 1.256184] [] ? sys_select+0x44/0x1a0
    [ 1.256192] [] ? pcied_init+0x0/0x83
    [ 1.256201] [] ? schedule_tail+0x1f/0x50
    [ 1.256209] [] ? ret_from_fork+0x6/0x1c
    [ 1.256218] [] ? kernel_init+0x0/0x2b8
    [ 1.256226] [] ? kernel_init+0x0/0x2b8
    [ 1.256234] [] kernel_thread_helper+0x7/0x10
    [ 1.256242] =======================
    [ 1.256355] hpdriver 0000:00:1c.1cie02: service driver hpdriver loaded
    [ 1.257191] pciehp: HPC vendor_id 8086 device_id 2843 ss_vid 0 ss_did 0
    [ 1.257273] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.257278] [] pci_hp_register+0x25/0x4b0
    [ 1.257287] [] ? get_adapter_status+0x2e/0x70
    [ 1.257297] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.257306] [] pciehp_probe+0x12b/0x3f0
    [ 1.257313] [] ? sysfs_add_one+0x18/0x50
    [ 1.257323] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.257332] [] pcie_port_probe_service+0x50/0x90
    [ 1.257340] [] ? sysfs_create_link+0x17/0x20
    [ 1.257349] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.257358] [] driver_probe_device+0x87/0x1a0
    [ 1.257365] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.257374] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.257383] [] __driver_attach+0x79/0x80
    [ 1.257390] [] bus_for_each_dev+0x53/0x80
    [ 1.257397] [] driver_attach+0x1e/0x20
    [ 1.257403] [] ? __driver_attach+0x0/0x80
    [ 1.257411] [] bus_add_driver+0x1b7/0x230
    [ 1.257419] [] driver_register+0x6e/0x150
    [ 1.257426] [] ? driver_register+0x6e/0x150
    [ 1.257434] [] pcie_port_service_register+0x3f/0x50
    [ 1.257442] [] pcied_init+0x16/0x83
    [ 1.257450] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.257459] [] kernel_init+0x1ad/0x2b8
    [ 1.257467] [] ? sys_select+0x44/0x1a0
    [ 1.257475] [] ? pcied_init+0x0/0x83
    [ 1.257484] [] ? schedule_tail+0x1f/0x50
    [ 1.257492] [] ? ret_from_fork+0x6/0x1c
    [ 1.257500] [] ? kernel_init+0x0/0x2b8
    [ 1.257509] [] ? kernel_init+0x0/0x2b8
    [ 1.257517] [] kernel_thread_helper+0x7/0x10
    [ 1.257524] =======================
    [ 1.257639] hpdriver 0000:00:1c.2cie02: service driver hpdriver loaded
    [ 1.258440] pciehp: HPC vendor_id 8086 device_id 2845 ss_vid 0 ss_did 0
    [ 1.258522] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.258527] [] pci_hp_register+0x25/0x4b0
    [ 1.258537] [] ? get_adapter_status+0x2e/0x70
    [ 1.258546] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.258556] [] pciehp_probe+0x12b/0x3f0
    [ 1.258564] [] ? sysfs_add_one+0x18/0x50
    [ 1.258573] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.258583] [] pcie_port_probe_service+0x50/0x90
    [ 1.258591] [] ? sysfs_create_link+0x17/0x20
    [ 1.258600] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.258609] [] driver_probe_device+0x87/0x1a0
    [ 1.258616] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.258626] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.258634] [] __driver_attach+0x79/0x80
    [ 1.258642] [] bus_for_each_dev+0x53/0x80
    [ 1.258649] [] driver_attach+0x1e/0x20
    [ 1.258656] [] ? __driver_attach+0x0/0x80
    [ 1.258665] [] bus_add_driver+0x1b7/0x230
    [ 1.258672] [] driver_register+0x6e/0x150
    [ 1.258679] [] ? driver_register+0x6e/0x150
    [ 1.258687] [] pcie_port_service_register+0x3f/0x50
    [ 1.258695] [] pcied_init+0x16/0x83
    [ 1.258703] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.258712] [] kernel_init+0x1ad/0x2b8
    [ 1.258719] [] ? sys_select+0x44/0x1a0
    [ 1.258728] [] ? pcied_init+0x0/0x83
    [ 1.258737] [] ? schedule_tail+0x1f/0x50
    [ 1.258745] [] ? ret_from_fork+0x6/0x1c
    [ 1.258753] [] ? kernel_init+0x0/0x2b8
    [ 1.258761] [] ? kernel_init+0x0/0x2b8
    [ 1.258769] [] kernel_thread_helper+0x7/0x10
    [ 1.258777] =======================
    [ 1.258893] hpdriver 0000:00:1c.3cie02: service driver hpdriver loaded
    [ 1.259701] pciehp: HPC vendor_id 8086 device_id 2847 ss_vid 0 ss_did 0
    [ 1.259787] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.259791] [] pci_hp_register+0x25/0x4b0
    [ 1.259801] [] ? get_adapter_status+0x2e/0x70
    [ 1.259810] [] ? pciehp_probe+0xbd/0x3f0
    [ 1.259819] [] pciehp_probe+0x12b/0x3f0
    [ 1.259827] [] ? sysfs_add_one+0x18/0x50
    [ 1.259836] [] ? sysfs_do_create_link+0xa4/0x140
    [ 1.259845] [] pcie_port_probe_service+0x50/0x90
    [ 1.259853] [] ? sysfs_create_link+0x17/0x20
    [ 1.259862] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.259870] [] driver_probe_device+0x87/0x1a0
    [ 1.259877] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.259886] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.259894] [] __driver_attach+0x79/0x80
    [ 1.259901] [] bus_for_each_dev+0x53/0x80
    [ 1.259908] [] driver_attach+0x1e/0x20
    [ 1.259915] [] ? __driver_attach+0x0/0x80
    [ 1.259923] [] bus_add_driver+0x1b7/0x230
    [ 1.259930] [] driver_register+0x6e/0x150
    [ 1.259937] [] ? driver_register+0x6e/0x150
    [ 1.259945] [] pcie_port_service_register+0x3f/0x50
    [ 1.259954] [] pcied_init+0x16/0x83
    [ 1.259962] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.259971] [] kernel_init+0x1ad/0x2b8
    [ 1.259978] [] ? sys_select+0x44/0x1a0
    [ 1.259987] [] ? pcied_init+0x0/0x83
    [ 1.259996] [] ? schedule_tail+0x1f/0x50
    [ 1.260004] [] ? ret_from_fork+0x6/0x1c
    [ 1.260012] [] ? kernel_init+0x0/0x2b8
    [ 1.260020] [] ? kernel_init+0x0/0x2b8
    [ 1.260028] [] kernel_thread_helper+0x7/0x10
    [ 1.260036] =======================
    [ 1.260041] pciehp: pci_hp_register failed with error -17
    [ 1.260176] pciehp: Failed to register slot because of name collision. Try 'pciehp_slot_with_bus' module option.
    [ 1.260318] pciehp: pciehp: slot initialization failed
    [ 1.260576] pciehp: PCI Express Hot Plug Controller Driver version: 0.4


    --
    -- Pierre Ossman

    Linux kernel, MMC maintainer http://www.kernel.org
    rdesktop, core developer http://www.rdesktop.org

    WARNING: This correspondence is being monitored by the
    Swedish government. Make sure your server uses encryption
    for SMTP traffic and consider using PGP for end-to-end
    encryption.

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v2.0.9 (GNU/Linux)

    iEYEARECAAYFAkiJBvkACgkQ7b8eESbyJLipMACghIF/NTQPluw+mu9P8XqGl1GH
    S7QAn1hUC+ADRf09vt+12nAhfTvtiFb/
    =P5mM
    -----END PGP SIGNATURE-----


  9. Re: post 2.6.26 requires pciehp_slot_with_bus

    * Pierre Ossman :
    > On Thu, 24 Jul 2008 16:29:14 -0600
    > Alex Chiang wrote:
    >
    > > * Jesse Barnes :
    > > >
    > > > Theoretically only one of the other hotplug drivers could claim
    > > > the slot (e.g. acpi, cpci, cpqhp, fakephp etc.). You could
    > > > put a dump_stack() or something into
    > > > drivers/pci/hotplug/pci_hotplug_core.cci_hp_register to see
    > > > if we're getting multiple callers on the same slot for some
    > > > reason... Maybe the pciehp driver itself is trying to register
    > > > the same slot twice?

    > >
    > > This is a good idea.
    > >
    > > Any chance you could get that debug info for us, Pierre?
    > >

    >
    > I aim to please. Following is the relevant lines from my bootup with a
    > dump_stack() right at the beginning of pci_hp_register():


    Sorry for one more round-trip, but could you turn on debugging
    for pciehp as well?

    You're building it into your kernel right? I think you need to
    boot with pciehp_debug=1.

    Thanks.

    /ac


    >
    > [ 1.247459] pcieport-driver 0000:00:01.0: found MSI capability
    > [ 1.247523] pci_express 0000:00:01.0cie00: allocate port service
    > [ 1.247632] pci_express 0000:00:01.0cie02: allocate port service
    > [ 1.247741] pci_express 0000:00:01.0cie03: allocate port service
    > [ 1.248010] PCI: Setting latency timer of device 0000:00:1c.0 to 64
    > [ 1.248158] pcieport-driver 0000:00:1c.0: found MSI capability
    > [ 1.248299] pci_express 0000:00:1c.0cie00: allocate port service
    > [ 1.248415] pci_express 0000:00:1c.0cie02: allocate port service
    > [ 1.248524] pci_express 0000:00:1c.0cie03: allocate port service
    > [ 1.248873] PCI: Setting latency timer of device 0000:00:1c.1 to 64
    > [ 1.249020] pcieport-driver 0000:00:1c.1: found MSI capability
    > [ 1.249162] pci_express 0000:00:1c.1cie00: allocate port service
    > [ 1.249270] pci_express 0000:00:1c.1cie02: allocate port service
    > [ 1.249379] pci_express 0000:00:1c.1cie03: allocate port service
    > [ 1.249708] PCI: Setting latency timer of device 0000:00:1c.2 to 64
    > [ 1.249855] pcieport-driver 0000:00:1c.2: found MSI capability
    > [ 1.249995] pci_express 0000:00:1c.2cie00: allocate port service
    > [ 1.250102] pci_express 0000:00:1c.2cie02: allocate port service
    > [ 1.250211] pci_express 0000:00:1c.2cie03: allocate port service
    > [ 1.250531] PCI: Setting latency timer of device 0000:00:1c.3 to 64
    > [ 1.250679] pcieport-driver 0000:00:1c.3: found MSI capability
    > [ 1.250819] pci_express 0000:00:1c.3cie00: allocate port service
    > [ 1.250927] pci_express 0000:00:1c.3cie02: allocate port service
    > [ 1.251035] pci_express 0000:00:1c.3cie03: allocate port service
    > [ 1.251361] PCI: Setting latency timer of device 0000:00:1c.4 to 64
    > [ 1.251508] pcieport-driver 0000:00:1c.4: found MSI capability
    > [ 1.251649] pci_express 0000:00:1c.4cie00: allocate port service
    > [ 1.251762] pci_express 0000:00:1c.4cie02: allocate port service
    > [ 1.251894] pci_express 0000:00:1c.4cie03: allocate port service
    > [ 1.252429] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    > [ 1.253405] pciehp: HPC vendor_id 8086 device_id 2a01 ss_vid 0 ss_did 0
    > [ 1.253453] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.253460] [] pci_hp_register+0x25/0x4b0
    > [ 1.253475] [] ? get_adapter_status+0x2e/0x70
    > [ 1.253485] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.253494] [] pciehp_probe+0x12b/0x3f0
    > [ 1.253502] [] ? sysfs_add_one+0x18/0x50
    > [ 1.253513] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.253523] [] pcie_port_probe_service+0x50/0x90
    > [ 1.253531] [] ? sysfs_create_link+0x17/0x20
    > [ 1.253540] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.253550] [] driver_probe_device+0x87/0x1a0
    > [ 1.253557] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.253569] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.253578] [] __driver_attach+0x79/0x80
    > [ 1.253585] [] bus_for_each_dev+0x53/0x80
    > [ 1.253593] [] driver_attach+0x1e/0x20
    > [ 1.253600] [] ? __driver_attach+0x0/0x80
    > [ 1.253608] [] bus_add_driver+0x1b7/0x230
    > [ 1.253615] [] driver_register+0x6e/0x150
    > [ 1.253622] [] ? driver_register+0x6e/0x150
    > [ 1.253630] [] pcie_port_service_register+0x3f/0x50
    > [ 1.253638] [] pcied_init+0x16/0x83
    > [ 1.253648] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.253657] [] kernel_init+0x1ad/0x2b8
    > [ 1.253666] [] ? sys_select+0x44/0x1a0
    > [ 1.253676] [] ? pcied_init+0x0/0x83
    > [ 1.253685] [] ? schedule_tail+0x1f/0x50
    > [ 1.253695] [] ? ret_from_fork+0x6/0x1c
    > [ 1.253704] [] ? kernel_init+0x0/0x2b8
    > [ 1.253712] [] ? kernel_init+0x0/0x2b8
    > [ 1.253720] [] kernel_thread_helper+0x7/0x10
    > [ 1.253728] =======================
    > [ 1.253841] hpdriver 0000:00:01.0cie02: service driver hpdriver loaded
    > [ 1.254648] pciehp: HPC vendor_id 8086 device_id 283f ss_vid 0 ss_did 0
    > [ 1.254730] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.254735] [] pci_hp_register+0x25/0x4b0
    > [ 1.254744] [] ? get_adapter_status+0x2e/0x70
    > [ 1.254754] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.254763] [] pciehp_probe+0x12b/0x3f0
    > [ 1.254771] [] ? sysfs_add_one+0x18/0x50
    > [ 1.254780] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.254789] [] pcie_port_probe_service+0x50/0x90
    > [ 1.254797] [] ? sysfs_create_link+0x17/0x20
    > [ 1.254806] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.254814] [] driver_probe_device+0x87/0x1a0
    > [ 1.254821] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.254830] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.254838] [] __driver_attach+0x79/0x80
    > [ 1.254845] [] bus_for_each_dev+0x53/0x80
    > [ 1.254853] [] driver_attach+0x1e/0x20
    > [ 1.254859] [] ? __driver_attach+0x0/0x80
    > [ 1.254867] [] bus_add_driver+0x1b7/0x230
    > [ 1.254874] [] driver_register+0x6e/0x150
    > [ 1.254881] [] ? driver_register+0x6e/0x150
    > [ 1.254889] [] pcie_port_service_register+0x3f/0x50
    > [ 1.254897] [] pcied_init+0x16/0x83
    > [ 1.254905] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.254914] [] kernel_init+0x1ad/0x2b8
    > [ 1.254922] [] ? sys_select+0x44/0x1a0
    > [ 1.254930] [] ? pcied_init+0x0/0x83
    > [ 1.254939] [] ? schedule_tail+0x1f/0x50
    > [ 1.254948] [] ? ret_from_fork+0x6/0x1c
    > [ 1.254956] [] ? kernel_init+0x0/0x2b8
    > [ 1.254964] [] ? kernel_init+0x0/0x2b8
    > [ 1.254972] [] kernel_thread_helper+0x7/0x10
    > [ 1.254980] =======================
    > [ 1.255097] hpdriver 0000:00:1c.0cie02: service driver hpdriver loaded
    > [ 1.255900] pciehp: HPC vendor_id 8086 device_id 2841 ss_vid 0 ss_did 0
    > [ 1.255989] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.255994] [] pci_hp_register+0x25/0x4b0
    > [ 1.256004] [] ? get_adapter_status+0x2e/0x70
    > [ 1.256013] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.256023] [] pciehp_probe+0x12b/0x3f0
    > [ 1.256030] [] ? sysfs_add_one+0x18/0x50
    > [ 1.256040] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.256049] [] pcie_port_probe_service+0x50/0x90
    > [ 1.256057] [] ? sysfs_create_link+0x17/0x20
    > [ 1.256066] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.256074] [] driver_probe_device+0x87/0x1a0
    > [ 1.256082] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.256092] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.256100] [] __driver_attach+0x79/0x80
    > [ 1.256107] [] bus_for_each_dev+0x53/0x80
    > [ 1.256114] [] driver_attach+0x1e/0x20
    > [ 1.256121] [] ? __driver_attach+0x0/0x80
    > [ 1.256129] [] bus_add_driver+0x1b7/0x230
    > [ 1.256136] [] driver_register+0x6e/0x150
    > [ 1.256143] [] ? driver_register+0x6e/0x150
    > [ 1.256151] [] pcie_port_service_register+0x3f/0x50
    > [ 1.256159] [] pcied_init+0x16/0x83
    > [ 1.256167] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.256176] [] kernel_init+0x1ad/0x2b8
    > [ 1.256184] [] ? sys_select+0x44/0x1a0
    > [ 1.256192] [] ? pcied_init+0x0/0x83
    > [ 1.256201] [] ? schedule_tail+0x1f/0x50
    > [ 1.256209] [] ? ret_from_fork+0x6/0x1c
    > [ 1.256218] [] ? kernel_init+0x0/0x2b8
    > [ 1.256226] [] ? kernel_init+0x0/0x2b8
    > [ 1.256234] [] kernel_thread_helper+0x7/0x10
    > [ 1.256242] =======================
    > [ 1.256355] hpdriver 0000:00:1c.1cie02: service driver hpdriver loaded
    > [ 1.257191] pciehp: HPC vendor_id 8086 device_id 2843 ss_vid 0 ss_did 0
    > [ 1.257273] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.257278] [] pci_hp_register+0x25/0x4b0
    > [ 1.257287] [] ? get_adapter_status+0x2e/0x70
    > [ 1.257297] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.257306] [] pciehp_probe+0x12b/0x3f0
    > [ 1.257313] [] ? sysfs_add_one+0x18/0x50
    > [ 1.257323] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.257332] [] pcie_port_probe_service+0x50/0x90
    > [ 1.257340] [] ? sysfs_create_link+0x17/0x20
    > [ 1.257349] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.257358] [] driver_probe_device+0x87/0x1a0
    > [ 1.257365] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.257374] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.257383] [] __driver_attach+0x79/0x80
    > [ 1.257390] [] bus_for_each_dev+0x53/0x80
    > [ 1.257397] [] driver_attach+0x1e/0x20
    > [ 1.257403] [] ? __driver_attach+0x0/0x80
    > [ 1.257411] [] bus_add_driver+0x1b7/0x230
    > [ 1.257419] [] driver_register+0x6e/0x150
    > [ 1.257426] [] ? driver_register+0x6e/0x150
    > [ 1.257434] [] pcie_port_service_register+0x3f/0x50
    > [ 1.257442] [] pcied_init+0x16/0x83
    > [ 1.257450] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.257459] [] kernel_init+0x1ad/0x2b8
    > [ 1.257467] [] ? sys_select+0x44/0x1a0
    > [ 1.257475] [] ? pcied_init+0x0/0x83
    > [ 1.257484] [] ? schedule_tail+0x1f/0x50
    > [ 1.257492] [] ? ret_from_fork+0x6/0x1c
    > [ 1.257500] [] ? kernel_init+0x0/0x2b8
    > [ 1.257509] [] ? kernel_init+0x0/0x2b8
    > [ 1.257517] [] kernel_thread_helper+0x7/0x10
    > [ 1.257524] =======================
    > [ 1.257639] hpdriver 0000:00:1c.2cie02: service driver hpdriver loaded
    > [ 1.258440] pciehp: HPC vendor_id 8086 device_id 2845 ss_vid 0 ss_did 0
    > [ 1.258522] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.258527] [] pci_hp_register+0x25/0x4b0
    > [ 1.258537] [] ? get_adapter_status+0x2e/0x70
    > [ 1.258546] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.258556] [] pciehp_probe+0x12b/0x3f0
    > [ 1.258564] [] ? sysfs_add_one+0x18/0x50
    > [ 1.258573] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.258583] [] pcie_port_probe_service+0x50/0x90
    > [ 1.258591] [] ? sysfs_create_link+0x17/0x20
    > [ 1.258600] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.258609] [] driver_probe_device+0x87/0x1a0
    > [ 1.258616] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.258626] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.258634] [] __driver_attach+0x79/0x80
    > [ 1.258642] [] bus_for_each_dev+0x53/0x80
    > [ 1.258649] [] driver_attach+0x1e/0x20
    > [ 1.258656] [] ? __driver_attach+0x0/0x80
    > [ 1.258665] [] bus_add_driver+0x1b7/0x230
    > [ 1.258672] [] driver_register+0x6e/0x150
    > [ 1.258679] [] ? driver_register+0x6e/0x150
    > [ 1.258687] [] pcie_port_service_register+0x3f/0x50
    > [ 1.258695] [] pcied_init+0x16/0x83
    > [ 1.258703] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.258712] [] kernel_init+0x1ad/0x2b8
    > [ 1.258719] [] ? sys_select+0x44/0x1a0
    > [ 1.258728] [] ? pcied_init+0x0/0x83
    > [ 1.258737] [] ? schedule_tail+0x1f/0x50
    > [ 1.258745] [] ? ret_from_fork+0x6/0x1c
    > [ 1.258753] [] ? kernel_init+0x0/0x2b8
    > [ 1.258761] [] ? kernel_init+0x0/0x2b8
    > [ 1.258769] [] kernel_thread_helper+0x7/0x10
    > [ 1.258777] =======================
    > [ 1.258893] hpdriver 0000:00:1c.3cie02: service driver hpdriver loaded
    > [ 1.259701] pciehp: HPC vendor_id 8086 device_id 2847 ss_vid 0 ss_did 0
    > [ 1.259787] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.259791] [] pci_hp_register+0x25/0x4b0
    > [ 1.259801] [] ? get_adapter_status+0x2e/0x70
    > [ 1.259810] [] ? pciehp_probe+0xbd/0x3f0
    > [ 1.259819] [] pciehp_probe+0x12b/0x3f0
    > [ 1.259827] [] ? sysfs_add_one+0x18/0x50
    > [ 1.259836] [] ? sysfs_do_create_link+0xa4/0x140
    > [ 1.259845] [] pcie_port_probe_service+0x50/0x90
    > [ 1.259853] [] ? sysfs_create_link+0x17/0x20
    > [ 1.259862] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.259870] [] driver_probe_device+0x87/0x1a0
    > [ 1.259877] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.259886] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.259894] [] __driver_attach+0x79/0x80
    > [ 1.259901] [] bus_for_each_dev+0x53/0x80
    > [ 1.259908] [] driver_attach+0x1e/0x20
    > [ 1.259915] [] ? __driver_attach+0x0/0x80
    > [ 1.259923] [] bus_add_driver+0x1b7/0x230
    > [ 1.259930] [] driver_register+0x6e/0x150
    > [ 1.259937] [] ? driver_register+0x6e/0x150
    > [ 1.259945] [] pcie_port_service_register+0x3f/0x50
    > [ 1.259954] [] pcied_init+0x16/0x83
    > [ 1.259962] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.259971] [] kernel_init+0x1ad/0x2b8
    > [ 1.259978] [] ? sys_select+0x44/0x1a0
    > [ 1.259987] [] ? pcied_init+0x0/0x83
    > [ 1.259996] [] ? schedule_tail+0x1f/0x50
    > [ 1.260004] [] ? ret_from_fork+0x6/0x1c
    > [ 1.260012] [] ? kernel_init+0x0/0x2b8
    > [ 1.260020] [] ? kernel_init+0x0/0x2b8
    > [ 1.260028] [] kernel_thread_helper+0x7/0x10
    > [ 1.260036] =======================
    > [ 1.260041] pciehp: pci_hp_register failed with error -17
    > [ 1.260176] pciehp: Failed to register slot because of name collision. Try 'pciehp_slot_with_bus' module option.
    > [ 1.260318] pciehp: pciehp: slot initialization failed
    > [ 1.260576] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
    >
    >
    > --
    > -- Pierre Ossman
    >
    > Linux kernel, MMC maintainer http://www.kernel.org
    > rdesktop, core developer http://www.rdesktop.org
    >
    > WARNING: This correspondence is being monitored by the
    > Swedish government. Make sure your server uses encryption
    > for SMTP traffic and consider using PGP for end-to-end
    > encryption.



    --
    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/

  10. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thu, 24 Jul 2008 17:08:27 -0600
    Alex Chiang wrote:

    > Sorry for one more round-trip, but could you turn on debugging
    > for pciehp as well?
    >


    Same thing, with debugging:

    [ 1.247138] pcieport-driver 0000:00:01.0: found MSI capability
    [ 1.247203] pci_express 0000:00:01.0cie00: allocate port service
    [ 1.247316] pci_express 0000:00:01.0cie02: allocate port service
    [ 1.247425] pci_express 0000:00:01.0cie03: allocate port service
    [ 1.247655] PCI: Setting latency timer of device 0000:00:1c.0 to 64
    [ 1.247803] pcieport-driver 0000:00:1c.0: found MSI capability
    [ 1.247945] pci_express 0000:00:1c.0cie00: allocate port service
    [ 1.248058] pci_express 0000:00:1c.0cie02: allocate port service
    [ 1.248166] pci_express 0000:00:1c.0cie03: allocate port service
    [ 1.248488] PCI: Setting latency timer of device 0000:00:1c.1 to 64
    [ 1.248635] pcieport-driver 0000:00:1c.1: found MSI capability
    [ 1.248776] pci_express 0000:00:1c.1cie00: allocate port service
    [ 1.248909] pci_express 0000:00:1c.1cie02: allocate port service
    [ 1.249015] pci_express 0000:00:1c.1cie03: allocate port service
    [ 1.249344] PCI: Setting latency timer of device 0000:00:1c.2 to 64
    [ 1.249492] pcieport-driver 0000:00:1c.2: found MSI capability
    [ 1.249633] pci_express 0000:00:1c.2cie00: allocate port service
    [ 1.249743] pci_express 0000:00:1c.2cie02: allocate port service
    [ 1.249852] pci_express 0000:00:1c.2cie03: allocate port service
    [ 1.250175] PCI: Setting latency timer of device 0000:00:1c.3 to 64
    [ 1.250322] pcieport-driver 0000:00:1c.3: found MSI capability
    [ 1.250463] pci_express 0000:00:1c.3cie00: allocate port service
    [ 1.250570] pci_express 0000:00:1c.3cie02: allocate port service
    [ 1.250680] pci_express 0000:00:1c.3cie03: allocate port service
    [ 1.251001] PCI: Setting latency timer of device 0000:00:1c.4 to 64
    [ 1.251148] pcieport-driver 0000:00:1c.4: found MSI capability
    [ 1.251289] pci_express 0000:00:1c.4cie00: allocate port service
    [ 1.251397] pci_express 0000:00:1c.4cie02: allocate port service
    [ 1.251510] pci_express 0000:00:1c.4cie03: allocate port service
    [ 1.252030] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    [ 1.252940] pciehp: Hotplug Controller:
    [ 1.252946] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:01.0 IRQ 223
    [ 1.252951] pciehp: Vendor ID : 0x8086
    [ 1.252955] pciehp: Device ID : 0x2a01
    [ 1.252959] pciehp: Subsystem ID : 0x0000
    [ 1.252962] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.252966] pciehp: PCIe Cap offset : 0xa0
    [ 1.252972] pciehp: PCI resource [7] : 0x1000@0x2000
    [ 1.252977] pciehp: PCI resource [8] : 0x3000000@0xd4000000
    [ 1.252981] pciehp: PCI resource [9] : 0x10000000@0xe0000000
    [ 1.252986] pciehp: Slot Capabilities : 0x000c25c0
    [ 1.252990] pciehp: Physical Slot Number : 1
    [ 1.252994] pciehp: Attention Button : no
    [ 1.252998] pciehp: Power Controller : no
    [ 1.253002] pciehp: MRL Sensor : no
    [ 1.253006] pciehp: Attention Indicator : no
    [ 1.253009] pciehp: Power Indicator : no
    [ 1.253013] pciehp: Hot-Plug Surprise : no
    [ 1.253017] pciehp: EMI Present : no
    [ 1.253020] pciehp: Comamnd Completed : no
    [ 1.253026] pciehp: Slot Status : 0x0048
    [ 1.253031] pciehp: Slot Control : 0x01c0
    [ 1.253103] pciehp: HPC vendor_id 8086 device_id 2a01 ss_vid 0 ss_did 0
    [ 1.253142] pciehp: get_power_status - physical_slot = 1
    [ 1.253149] pciehp: hpc_get_power_status: SLOTCTRL b8 value read 1e8
    [ 1.253154] pciehp: get_attention_status - physical_slot = 1
    [ 1.253161] pciehp: hpc_get_attention_status: SLOTCTRL b8, value read 1e8
    [ 1.253166] pciehp: get_latch_status - physical_slot = 1
    [ 1.253172] pciehp: get_adapter_status - physical_slot = 1
    [ 1.253179] pciehp: Registering bus=1 dev=0 hp_slot=0 sun=1 slot_device_offset=0
    [ 1.253187] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.253193] [] pci_hp_register+0x25/0x4b0
    [ 1.253208] [] ? get_adapter_status+0x2e/0x70
    [ 1.253218] [] pciehp_probe+0x12b/0x3f0
    [ 1.253226] [] pcie_port_probe_service+0x50/0x90
    [ 1.253235] [] ? sysfs_create_link+0x17/0x20
    [ 1.253247] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.253256] [] driver_probe_device+0x87/0x1a0
    [ 1.253263] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.253274] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.253282] [] __driver_attach+0x79/0x80
    [ 1.253289] [] bus_for_each_dev+0x53/0x80
    [ 1.253296] [] driver_attach+0x1e/0x20
    [ 1.253303] [] ? __driver_attach+0x0/0x80
    [ 1.253310] [] bus_add_driver+0x1b7/0x230
    [ 1.253318] [] driver_register+0x6e/0x150
    [ 1.253325] [] ? driver_register+0x6e/0x150
    [ 1.253332] [] pcie_port_service_register+0x3f/0x50
    [ 1.253340] [] pcied_init+0x16/0x83
    [ 1.253350] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.253359] [] kernel_init+0x1ad/0x2b8
    [ 1.253368] [] ? sys_select+0x44/0x1a0
    [ 1.253378] [] ? pcied_init+0x0/0x83
    [ 1.253387] [] ? schedule_tail+0x1f/0x50
    [ 1.253396] [] ? ret_from_fork+0x6/0x1c
    [ 1.253405] [] ? kernel_init+0x0/0x2b8
    [ 1.253413] [] ? kernel_init+0x0/0x2b8
    [ 1.253421] [] kernel_thread_helper+0x7/0x10
    [ 1.253429] =======================
    [ 1.253543] hpdriver 0000:00:01.0cie02: service driver hpdriver loaded
    [ 1.254331] pciehp: Hotplug Controller:
    [ 1.254337] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.0 IRQ 222
    [ 1.254342] pciehp: Vendor ID : 0x8086
    [ 1.254346] pciehp: Device ID : 0x283f
    [ 1.254350] pciehp: Subsystem ID : 0x0000
    [ 1.254353] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.254358] pciehp: PCIe Cap offset : 0x40
    [ 1.254363] pciehp: PCI resource [7] : 0x1000@0x3000
    [ 1.254367] pciehp: PCI resource [8] : 0x2000000@0xfc000000
    [ 1.254372] pciehp: PCI resource [9] : 0x100000@0xf8000000
    [ 1.254377] pciehp: Slot Capabilities : 0x0010a0e0
    [ 1.254381] pciehp: Physical Slot Number : 2
    [ 1.254384] pciehp: Attention Button : no
    [ 1.254389] pciehp: Power Controller : no
    [ 1.254392] pciehp: MRL Sensor : no
    [ 1.254396] pciehp: Attention Indicator : no
    [ 1.254400] pciehp: Power Indicator : no
    [ 1.254404] pciehp: Hot-Plug Surprise : yes
    [ 1.254408] pciehp: EMI Present : no
    [ 1.254411] pciehp: Comamnd Completed : yes
    [ 1.254419] pciehp: Slot Status : 0x0000
    [ 1.254428] pciehp: Slot Control : 0x0000
    [ 1.254451] pciehp: HPC vendor_id 8086 device_id 283f ss_vid 0 ss_did 0
    [ 1.254513] pciehp: get_power_status - physical_slot = 2
    [ 1.254522] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    [ 1.254527] pciehp: get_attention_status - physical_slot = 2
    [ 1.254536] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    [ 1.254541] pciehp: get_latch_status - physical_slot = 2
    [ 1.254550] pciehp: get_adapter_status - physical_slot = 2
    [ 1.254560] pciehp: Registering bus=2 dev=0 hp_slot=0 sun=2 slot_device_offset=0
    [ 1.254566] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.254571] [] pci_hp_register+0x25/0x4b0
    [ 1.254580] [] ? get_adapter_status+0x2e/0x70
    [ 1.254590] [] pciehp_probe+0x12b/0x3f0
    [ 1.254598] [] pcie_port_probe_service+0x50/0x90
    [ 1.254606] [] ? sysfs_create_link+0x17/0x20
    [ 1.254616] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.254624] [] driver_probe_device+0x87/0x1a0
    [ 1.254631] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.254641] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.254649] [] __driver_attach+0x79/0x80
    [ 1.254656] [] bus_for_each_dev+0x53/0x80
    [ 1.254663] [] driver_attach+0x1e/0x20
    [ 1.254670] [] ? __driver_attach+0x0/0x80
    [ 1.254678] [] bus_add_driver+0x1b7/0x230
    [ 1.254685] [] driver_register+0x6e/0x150
    [ 1.254692] [] ? driver_register+0x6e/0x150
    [ 1.254700] [] pcie_port_service_register+0x3f/0x50
    [ 1.254709] [] pcied_init+0x16/0x83
    [ 1.254717] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.254725] [] kernel_init+0x1ad/0x2b8
    [ 1.254733] [] ? sys_select+0x44/0x1a0
    [ 1.254742] [] ? pcied_init+0x0/0x83
    [ 1.254751] [] ? schedule_tail+0x1f/0x50
    [ 1.254759] [] ? ret_from_fork+0x6/0x1c
    [ 1.254767] [] ? kernel_init+0x0/0x2b8
    [ 1.254776] [] ? kernel_init+0x0/0x2b8
    [ 1.254784] [] kernel_thread_helper+0x7/0x10
    [ 1.254792] =======================
    [ 1.254909] hpdriver 0000:00:1c.0cie02: service driver hpdriver loaded
    [ 1.255694] pciehp: Hotplug Controller:
    [ 1.255700] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.1 IRQ 221
    [ 1.255704] pciehp: Vendor ID : 0x8086
    [ 1.255709] pciehp: Device ID : 0x2841
    [ 1.255712] pciehp: Subsystem ID : 0x0000
    [ 1.255716] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.255720] pciehp: PCIe Cap offset : 0x40
    [ 1.255725] pciehp: PCI resource [7] : 0x1000@0x4000
    [ 1.255730] pciehp: PCI resource [8] : 0x3200000@0xdc100000
    [ 1.255735] pciehp: PCI resource [9] : 0x100000@0xdfd00000
    [ 1.255739] pciehp: Slot Capabilities : 0x0018a0e0
    [ 1.255743] pciehp: Physical Slot Number : 3
    [ 1.255747] pciehp: Attention Button : no
    [ 1.255750] pciehp: Power Controller : no
    [ 1.255754] pciehp: MRL Sensor : no
    [ 1.255758] pciehp: Attention Indicator : no
    [ 1.255762] pciehp: Power Indicator : no
    [ 1.255765] pciehp: Hot-Plug Surprise : yes
    [ 1.255769] pciehp: EMI Present : no
    [ 1.255773] pciehp: Comamnd Completed : yes
    [ 1.255781] pciehp: Slot Status : 0x0148
    [ 1.255792] pciehp: Slot Control : 0x0000
    [ 1.255817] pciehp: HPC vendor_id 8086 device_id 2841 ss_vid 0 ss_did 0
    [ 1.255884] pciehp: get_power_status - physical_slot = 3
    [ 1.255894] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    [ 1.255899] pciehp: get_attention_status - physical_slot = 3
    [ 1.255909] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    [ 1.255914] pciehp: get_latch_status - physical_slot = 3
    [ 1.255922] pciehp: get_adapter_status - physical_slot = 3
    [ 1.255932] pciehp: Registering bus=3 dev=0 hp_slot=0 sun=3 slot_device_offset=0
    [ 1.255938] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.255943] [] pci_hp_register+0x25/0x4b0
    [ 1.255952] [] ? get_adapter_status+0x2e/0x70
    [ 1.255962] [] pciehp_probe+0x12b/0x3f0
    [ 1.255971] [] pcie_port_probe_service+0x50/0x90
    [ 1.255978] [] ? sysfs_create_link+0x17/0x20
    [ 1.255988] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.255996] [] driver_probe_device+0x87/0x1a0
    [ 1.256003] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.256013] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.256021] [] __driver_attach+0x79/0x80
    [ 1.256028] [] bus_for_each_dev+0x53/0x80
    [ 1.256035] [] driver_attach+0x1e/0x20
    [ 1.256042] [] ? __driver_attach+0x0/0x80
    [ 1.256050] [] bus_add_driver+0x1b7/0x230
    [ 1.256057] [] driver_register+0x6e/0x150
    [ 1.256064] [] ? driver_register+0x6e/0x150
    [ 1.256072] [] pcie_port_service_register+0x3f/0x50
    [ 1.256081] [] pcied_init+0x16/0x83
    [ 1.256089] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.256098] [] kernel_init+0x1ad/0x2b8
    [ 1.256105] [] ? sys_select+0x44/0x1a0
    [ 1.256114] [] ? pcied_init+0x0/0x83
    [ 1.256122] [] ? schedule_tail+0x1f/0x50
    [ 1.256131] [] ? ret_from_fork+0x6/0x1c
    [ 1.256139] [] ? kernel_init+0x0/0x2b8
    [ 1.256147] [] ? kernel_init+0x0/0x2b8
    [ 1.256155] [] kernel_thread_helper+0x7/0x10
    [ 1.256163] =======================
    [ 1.256279] hpdriver 0000:00:1c.1cie02: service driver hpdriver loaded
    [ 1.257096] pciehp: Hotplug Controller:
    [ 1.257101] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.2 IRQ 220
    [ 1.257106] pciehp: Vendor ID : 0x8086
    [ 1.257110] pciehp: Device ID : 0x2843
    [ 1.257114] pciehp: Subsystem ID : 0x0000
    [ 1.257117] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.257121] pciehp: PCIe Cap offset : 0x40
    [ 1.257126] pciehp: PCI resource [7] : 0x1000@0x5000
    [ 1.257131] pciehp: PCI resource [8] : 0x2000000@0xd8000000
    [ 1.257136] pciehp: PCI resource [9] : 0x100000@0xdfa00000
    [ 1.257140] pciehp: Slot Capabilities : 0x0020a0e0
    [ 1.257144] pciehp: Physical Slot Number : 4
    [ 1.257148] pciehp: Attention Button : no
    [ 1.257152] pciehp: Power Controller : no
    [ 1.257155] pciehp: MRL Sensor : no
    [ 1.257159] pciehp: Attention Indicator : no
    [ 1.257163] pciehp: Power Indicator : no
    [ 1.257166] pciehp: Hot-Plug Surprise : yes
    [ 1.257170] pciehp: EMI Present : no
    [ 1.257173] pciehp: Comamnd Completed : yes
    [ 1.257181] pciehp: Slot Status : 0x0000
    [ 1.257189] pciehp: Slot Control : 0x0000
    [ 1.257213] pciehp: HPC vendor_id 8086 device_id 2843 ss_vid 0 ss_did 0
    [ 1.257274] pciehp: get_power_status - physical_slot = 4
    [ 1.257283] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    [ 1.257288] pciehp: get_attention_status - physical_slot = 4
    [ 1.257297] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    [ 1.257302] pciehp: get_latch_status - physical_slot = 4
    [ 1.257311] pciehp: get_adapter_status - physical_slot = 4
    [ 1.257320] pciehp: Registering bus=4 dev=0 hp_slot=0 sun=4 slot_device_offset=0
    [ 1.257326] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.257332] [] pci_hp_register+0x25/0x4b0
    [ 1.257341] [] ? get_adapter_status+0x2e/0x70
    [ 1.257351] [] pciehp_probe+0x12b/0x3f0
    [ 1.257360] [] pcie_port_probe_service+0x50/0x90
    [ 1.257367] [] ? sysfs_create_link+0x17/0x20
    [ 1.257377] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.257385] [] driver_probe_device+0x87/0x1a0
    [ 1.257392] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.257401] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.257409] [] __driver_attach+0x79/0x80
    [ 1.257417] [] bus_for_each_dev+0x53/0x80
    [ 1.257424] [] driver_attach+0x1e/0x20
    [ 1.257430] [] ? __driver_attach+0x0/0x80
    [ 1.257438] [] bus_add_driver+0x1b7/0x230
    [ 1.257445] [] driver_register+0x6e/0x150
    [ 1.257452] [] ? driver_register+0x6e/0x150
    [ 1.257460] [] pcie_port_service_register+0x3f/0x50
    [ 1.257469] [] pcied_init+0x16/0x83
    [ 1.257477] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.257485] [] kernel_init+0x1ad/0x2b8
    [ 1.257493] [] ? sys_select+0x44/0x1a0
    [ 1.257502] [] ? pcied_init+0x0/0x83
    [ 1.257511] [] ? schedule_tail+0x1f/0x50
    [ 1.257519] [] ? ret_from_fork+0x6/0x1c
    [ 1.257527] [] ? kernel_init+0x0/0x2b8
    [ 1.257535] [] ? kernel_init+0x0/0x2b8
    [ 1.257543] [] kernel_thread_helper+0x7/0x10
    [ 1.257551] =======================
    [ 1.257666] hpdriver 0000:00:1c.2cie02: service driver hpdriver loaded
    [ 1.258450] pciehp: Hotplug Controller:
    [ 1.258455] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.3 IRQ 219
    [ 1.258460] pciehp: Vendor ID : 0x8086
    [ 1.258464] pciehp: Device ID : 0x2845
    [ 1.258468] pciehp: Subsystem ID : 0x0000
    [ 1.258472] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.258476] pciehp: PCIe Cap offset : 0x40
    [ 1.258480] pciehp: PCI resource [7] : 0x1000@0x6000
    [ 1.258485] pciehp: PCI resource [8] : 0x2000000@0xd0000000
    [ 1.258490] pciehp: PCI resource [9] : 0x100000@0xdf700000
    [ 1.258495] pciehp: Slot Capabilities : 0x0028a0e0
    [ 1.258499] pciehp: Physical Slot Number : 5
    [ 1.258502] pciehp: Attention Button : no
    [ 1.258507] pciehp: Power Controller : no
    [ 1.258510] pciehp: MRL Sensor : no
    [ 1.258514] pciehp: Attention Indicator : no
    [ 1.258517] pciehp: Power Indicator : no
    [ 1.258521] pciehp: Hot-Plug Surprise : yes
    [ 1.258525] pciehp: EMI Present : no
    [ 1.258528] pciehp: Comamnd Completed : yes
    [ 1.258536] pciehp: Slot Status : 0x0000
    [ 1.258544] pciehp: Slot Control : 0x0028
    [ 1.258568] pciehp: HPC vendor_id 8086 device_id 2845 ss_vid 0 ss_did 0
    [ 1.258628] pciehp: get_power_status - physical_slot = 5
    [ 1.258638] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    [ 1.258643] pciehp: get_attention_status - physical_slot = 5
    [ 1.258652] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    [ 1.258657] pciehp: get_latch_status - physical_slot = 5
    [ 1.258665] pciehp: get_adapter_status - physical_slot = 5
    [ 1.258675] pciehp: Registering bus=5 dev=0 hp_slot=0 sun=5 slot_device_offset=0
    [ 1.258681] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.258686] [] pci_hp_register+0x25/0x4b0
    [ 1.258696] [] ? get_adapter_status+0x2e/0x70
    [ 1.258705] [] pciehp_probe+0x12b/0x3f0
    [ 1.258713] [] pcie_port_probe_service+0x50/0x90
    [ 1.258721] [] ? sysfs_create_link+0x17/0x20
    [ 1.258730] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.258739] [] driver_probe_device+0x87/0x1a0
    [ 1.258746] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.258756] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.258764] [] __driver_attach+0x79/0x80
    [ 1.258772] [] bus_for_each_dev+0x53/0x80
    [ 1.258778] [] driver_attach+0x1e/0x20
    [ 1.258785] [] ? __driver_attach+0x0/0x80
    [ 1.258793] [] bus_add_driver+0x1b7/0x230
    [ 1.258801] [] driver_register+0x6e/0x150
    [ 1.258808] [] ? driver_register+0x6e/0x150
    [ 1.258816] [] pcie_port_service_register+0x3f/0x50
    [ 1.258824] [] pcied_init+0x16/0x83
    [ 1.258832] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.258841] [] kernel_init+0x1ad/0x2b8
    [ 1.258849] [] ? sys_select+0x44/0x1a0
    [ 1.258857] [] ? pcied_init+0x0/0x83
    [ 1.258866] [] ? schedule_tail+0x1f/0x50
    [ 1.258874] [] ? ret_from_fork+0x6/0x1c
    [ 1.258883] [] ? kernel_init+0x0/0x2b8
    [ 1.258891] [] ? kernel_init+0x0/0x2b8
    [ 1.258899] [] kernel_thread_helper+0x7/0x10
    [ 1.258907] =======================
    [ 1.259022] hpdriver 0000:00:1c.3cie02: service driver hpdriver loaded
    [ 1.259814] pciehp: Hotplug Controller:
    [ 1.259820] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.4 IRQ 218
    [ 1.259825] pciehp: Vendor ID : 0x8086
    [ 1.259829] pciehp: Device ID : 0x2847
    [ 1.259833] pciehp: Subsystem ID : 0x0000
    [ 1.259836] pciehp: Subsystem Vendor ID : 0x0000
    [ 1.259840] pciehp: PCIe Cap offset : 0x40
    [ 1.259845] pciehp: PCI resource [7] : 0x1000@0x7000
    [ 1.259850] pciehp: PCI resource [8] : 0x2000000@0xcc000000
    [ 1.259855] pciehp: PCI resource [9] : 0x100000@0xdf400000
    [ 1.259859] pciehp: Slot Capabilities : 0x0010a0e0
    [ 1.259863] pciehp: Physical Slot Number : 2
    [ 1.259867] pciehp: Attention Button : no
    [ 1.259871] pciehp: Power Controller : no
    [ 1.259875] pciehp: MRL Sensor : no
    [ 1.259879] pciehp: Attention Indicator : no
    [ 1.259883] pciehp: Power Indicator : no
    [ 1.259886] pciehp: Hot-Plug Surprise : yes
    [ 1.259890] pciehp: EMI Present : no
    [ 1.259893] pciehp: Comamnd Completed : yes
    [ 1.259901] pciehp: Slot Status : 0x0000
    [ 1.259910] pciehp: Slot Control : 0x0000
    [ 1.259933] pciehp: HPC vendor_id 8086 device_id 2847 ss_vid 0 ss_did 0
    [ 1.259994] pciehp: get_power_status - physical_slot = 2
    [ 1.260003] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    [ 1.260008] pciehp: get_attention_status - physical_slot = 2
    [ 1.260017] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    [ 1.260022] pciehp: get_latch_status - physical_slot = 2
    [ 1.260031] pciehp: get_adapter_status - physical_slot = 2
    [ 1.260041] pciehp: Registering bus=d dev=0 hp_slot=0 sun=2 slot_device_offset=0
    [ 1.260047] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    [ 1.260052] [] pci_hp_register+0x25/0x4b0
    [ 1.260061] [] ? get_adapter_status+0x2e/0x70
    [ 1.260071] [] pciehp_probe+0x12b/0x3f0
    [ 1.260079] [] pcie_port_probe_service+0x50/0x90
    [ 1.260087] [] ? sysfs_create_link+0x17/0x20
    [ 1.260096] [] ? driver_sysfs_add+0x5d/0x90
    [ 1.260104] [] driver_probe_device+0x87/0x1a0
    [ 1.260111] [] ? _spin_lock_irqsave+0x21/0x40
    [ 1.260121] [] ? _spin_unlock_irqrestore+0x16/0x40
    [ 1.260129] [] __driver_attach+0x79/0x80
    [ 1.260137] [] bus_for_each_dev+0x53/0x80
    [ 1.260144] [] driver_attach+0x1e/0x20
    [ 1.260151] [] ? __driver_attach+0x0/0x80
    [ 1.260159] [] bus_add_driver+0x1b7/0x230
    [ 1.260166] [] driver_register+0x6e/0x150
    [ 1.260174] [] ? driver_register+0x6e/0x150
    [ 1.260182] [] pcie_port_service_register+0x3f/0x50
    [ 1.260191] [] pcied_init+0x16/0x83
    [ 1.260199] [] ? pci_hotplug_init+0x1f/0x23
    [ 1.260208] [] kernel_init+0x1ad/0x2b8
    [ 1.260216] [] ? sys_select+0x44/0x1a0
    [ 1.260225] [] ? pcied_init+0x0/0x83
    [ 1.260234] [] ? schedule_tail+0x1f/0x50
    [ 1.260242] [] ? ret_from_fork+0x6/0x1c
    [ 1.260250] [] ? kernel_init+0x0/0x2b8
    [ 1.260258] [] ? kernel_init+0x0/0x2b8
    [ 1.260266] [] kernel_thread_helper+0x7/0x10
    [ 1.260274] =======================
    [ 1.260278] pciehp: pci_hp_register failed with error -17
    [ 1.260412] pciehp: Failed to register slot because of name collision. Try 'pciehp_slot_with_bus' module option.
    [ 1.260547] pciehp: pciehp: slot initialization failed
    [ 1.260817] pciehp: pcie_port_service_register = 0
    [ 1.260822] pciehp: PCI Express Hot Plug Controller Driver version: 0.4


    --
    -- Pierre Ossman

    Linux kernel, MMC maintainer http://www.kernel.org
    rdesktop, core developer http://www.rdesktop.org

    WARNING: This correspondence is being monitored by the
    Swedish government. Make sure your server uses encryption
    for SMTP traffic and consider using PGP for end-to-end
    encryption.

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v2.0.9 (GNU/Linux)

    iEYEARECAAYFAkiJEE8ACgkQ7b8eESbyJLh9RgCdGoktBsh+1p 125exyP5EzVDSY
    7vsAoN2HhosClBjIio1kcdvlVWwx2nC7
    =QPI4
    -----END PGP SIGNATURE-----


  11. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Fri, Jul 25, 2008 at 01:29:16AM +0200, Pierre Ossman wrote:
    > On Thu, 24 Jul 2008 17:08:27 -0600
    > Alex Chiang wrote:
    >
    > > Sorry for one more round-trip, but could you turn on debugging
    > > for pciehp as well?
    > >

    >
    > Same thing, with debugging:


    I have a laptop with a similar problem (though I don't have pciehp
    enabled, so I didn't notice it). Obviously, we need to fix this.

    There is no question in my mind that firmware has programmed the slot
    numbers incorrectly. Here's the evidence from lspci -vvv:

    00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
    Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
    Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-

    I don't think anyone can credibly argue that this is correct. They're
    both PCIe devices, they're both both indicating that they have a slot
    (maybe if I get my screwdriver out, I can see if there's really a slot
    ....), they're on the same bus (so I don't know how the with_bus
    parameter makes any difference).

    I've always hated that with_bus parameter. I don't like it being a
    parameter and I don't like the names it produces.

    Part of the problem is the kobject API. It really hates you trying to
    register a duplicate name and won't just return -EEXIST and let you try
    a new name. Instead it prints an ugly warning and dumps stack. See
    kobject_add_internal() in lib/kobject.c.

    So we need a way to find if there's already a slot of this name. I
    don't see a kobject routine to do that. Maybe we can do it internally
    to the pci slot code.

    Then we need to pick a new name for the kobject if it does collide.
    My suggestion is that the second time we find an object named "2", we
    call it "2dup1" (the third time "2dup2", etc.) Other opinions I've
    seen include "2a", "2b", ... or "2-1", "2-2", ... or "2-brokenfw1",
    "2-brokenfw2".

    I'm at OLS this week, so no patch from me.

    --
    Intel are signing my paycheques ... these opinions are still mine
    "Bill, look, we understand that you're interested in selling us this
    operating system, but compare it to ours. We can't possibly take such
    a retrograde step."
    --
    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/

  12. Re: post 2.6.26 requires pciehp_slot_with_bus

    * Matthew Wilcox :
    > On Fri, Jul 25, 2008 at 01:29:16AM +0200, Pierre Ossman wrote:
    > > On Thu, 24 Jul 2008 17:08:27 -0600
    > > Alex Chiang wrote:
    > >
    > > > Sorry for one more round-trip, but could you turn on debugging
    > > > for pciehp as well?
    > > >

    > >
    > > Same thing, with debugging:

    >
    > I have a laptop with a similar problem (though I don't have pciehp
    > enabled, so I didn't notice it). Obviously, we need to fix this.
    >
    > There is no question in my mind that firmware has programmed the slot
    > numbers incorrectly. Here's the evidence from lspci -vvv:
    >
    > 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    > 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    >
    > I don't think anyone can credibly argue that this is correct. They're
    > both PCIe devices, they're both both indicating that they have a slot
    > (maybe if I get my screwdriver out, I can see if there's really a slot
    > ...), they're on the same bus (so I don't know how the with_bus
    > parameter makes any difference).
    >
    > I've always hated that with_bus parameter. I don't like it being a
    > parameter and I don't like the names it produces.
    >
    > Part of the problem is the kobject API. It really hates you trying to
    > register a duplicate name and won't just return -EEXIST and let you try
    > a new name. Instead it prints an ugly warning and dumps stack. See
    > kobject_add_internal() in lib/kobject.c.


    Yeah, I don't really like that part of the kobject API either.

    > So we need a way to find if there's already a slot of this name. I
    > don't see a kobject routine to do that. Maybe we can do it internally
    > to the pci slot code.


    Well, we have this code in pci_hp_register:

    /* Check if we have already registered a slot with the same name. */
    if (get_slot_from_name(slot->name))
    return -EEXIST;

    > Then we need to pick a new name for the kobject if it does collide.
    > My suggestion is that the second time we find an object named "2", we
    > call it "2dup1" (the third time "2dup2", etc.) Other opinions I've
    > seen include "2a", "2b", ... or "2-1", "2-2", ... or "2-brokenfw1",
    > "2-brokenfw2".
    >
    > I'm at OLS this week, so no patch from me.


    It should be pretty easy for pci_hp_register() to fix up the name
    in the event of a collision.

    The hard part is figuring out a convention that we can all agree
    on. I've no strong feelings here, but of the options
    presented, I lean towards "2a", "2b" or "2-1", "2-2".

    /ac

    --
    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/

  13. Re: post 2.6.26 requires pciehp_slot_with_bus

    Matthew Wilcox wrote:
    > On Fri, Jul 25, 2008 at 01:29:16AM +0200, Pierre Ossman wrote:
    >> On Thu, 24 Jul 2008 17:08:27 -0600
    >> Alex Chiang wrote:
    >>
    >>> Sorry for one more round-trip, but could you turn on debugging
    >>> for pciehp as well?
    >>>

    >> Same thing, with debugging:

    >
    > I have a laptop with a similar problem (though I don't have pciehp
    > enabled, so I didn't notice it). Obviously, we need to fix this.
    >
    > There is no question in my mind that firmware has programmed the slot
    > numbers incorrectly. Here's the evidence from lspci -vvv:
    >
    > 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    > 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    >
    > I don't think anyone can credibly argue that this is correct. They're
    > both PCIe devices, they're both both indicating that they have a slot
    > (maybe if I get my screwdriver out, I can see if there's really a slot
    > ...), they're on the same bus (so I don't know how the with_bus
    > parameter makes any difference).
    >
    > I've always hated that with_bus parameter. I don't like it being a
    > parameter and I don't like the names it produces.
    >
    > Part of the problem is the kobject API. It really hates you trying to
    > register a duplicate name and won't just return -EEXIST and let you try
    > a new name. Instead it prints an ugly warning and dumps stack. See
    > kobject_add_internal() in lib/kobject.c.
    >


    I'm thinking the same idea.
    (I just sent that before reading this mail)

    > So we need a way to find if there's already a slot of this name. I
    > don't see a kobject routine to do that. Maybe we can do it internally
    > to the pci slot code.
    >
    > Then we need to pick a new name for the kobject if it does collide.
    > My suggestion is that the second time we find an object named "2", we
    > call it "2dup1" (the third time "2dup2", etc.) Other opinions I've
    > seen include "2a", "2b", ... or "2-1", "2-2", ... or "2-brokenfw1",
    > "2-brokenfw2".
    >


    That looks quite better than using bus number.

    Thanks,
    Kenji Kaneshige


    --
    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/

  14. Re: post 2.6.26 requires pciehp_slot_with_bus

    Thank you for debug info, Pierre.

    According to the debugging output, five slots are detected (five
    slots on laptop!?) and two of them have the same physical slots
    number '2'. This is the reason why Pierre's machine needs
    'pciehp_slot_with_bus' option.

    Before 2.6.26 (from 2.6.xx), pciehp did the workaround for the
    problem (some platform wrongly assign the same physical slot
    number to multiple slots) by default. But this was not a good
    idea because of the several reasons like follows:

    - Slot name should be a physical identifier of physical slot
    on the system. Using bus number as a part of slot name is
    not a idea because bus number is logical number and it can
    be changed.

    - As Jesse explained, some hotplug slot can be handled through
    several type of controllers. For example, some hotplug slot
    can be handled by either acpiphp or pciehp. But those drivers
    must not handle the same slot at the same time. The pci
    hotplug core is checking this by checking duplicate names.
    This check didn't work because pciehp had started using bus
    number as a part of slot name and slot names became different
    between acpiphp and pciehp.

    About the former, I'm ok with using bus number as a part of slot
    name on the problematic platform. But it should not be used on
    the normal platform.

    About the latter, IIRC, thanks to Alex's pci slot framework from
    2.6.26, pci hotplug core can check if multiple drivers attempts
    to handle the same slot even if those drivers uses the different
    names.

    Based on my thought above, I have a following idea to remove
    "pciehp_slot_with_bus".

    - Try to use physical slot number as a slot name, first.

    - If pci_hp_register() success, no problem.

    - If pci_hp_register() returns -EBUSY, that means another
    hotplug driver already handling the slot. So return as error.

    - If pci_hp_register() returns -EEXIST, that means there is a
    existing slot with the same name. In this case, retry to
    register slots with logical name (bus number + physical slot
    number, or other).

    With this idea, slots names will become as follows on Pierre's
    machine.


    0001_0001, 0002_0002, 0003_0003, 0004_0004, 0005_0005, 000d_0002


    1, 2, 3, 4, 5


    1, 2, 3, 4, 5, 000d_0002


    Please give me comments.

    Thanks,
    Kenji Kaneshige



    Pierre Ossman wrote:
    > On Thu, 24 Jul 2008 17:08:27 -0600
    > Alex Chiang wrote:
    >
    >> Sorry for one more round-trip, but could you turn on debugging
    >> for pciehp as well?
    >>

    >
    > Same thing, with debugging:
    >
    > [ 1.247138] pcieport-driver 0000:00:01.0: found MSI capability
    > [ 1.247203] pci_express 0000:00:01.0cie00: allocate port service
    > [ 1.247316] pci_express 0000:00:01.0cie02: allocate port service
    > [ 1.247425] pci_express 0000:00:01.0cie03: allocate port service
    > [ 1.247655] PCI: Setting latency timer of device 0000:00:1c.0 to 64
    > [ 1.247803] pcieport-driver 0000:00:1c.0: found MSI capability
    > [ 1.247945] pci_express 0000:00:1c.0cie00: allocate port service
    > [ 1.248058] pci_express 0000:00:1c.0cie02: allocate port service
    > [ 1.248166] pci_express 0000:00:1c.0cie03: allocate port service
    > [ 1.248488] PCI: Setting latency timer of device 0000:00:1c.1 to 64
    > [ 1.248635] pcieport-driver 0000:00:1c.1: found MSI capability
    > [ 1.248776] pci_express 0000:00:1c.1cie00: allocate port service
    > [ 1.248909] pci_express 0000:00:1c.1cie02: allocate port service
    > [ 1.249015] pci_express 0000:00:1c.1cie03: allocate port service
    > [ 1.249344] PCI: Setting latency timer of device 0000:00:1c.2 to 64
    > [ 1.249492] pcieport-driver 0000:00:1c.2: found MSI capability
    > [ 1.249633] pci_express 0000:00:1c.2cie00: allocate port service
    > [ 1.249743] pci_express 0000:00:1c.2cie02: allocate port service
    > [ 1.249852] pci_express 0000:00:1c.2cie03: allocate port service
    > [ 1.250175] PCI: Setting latency timer of device 0000:00:1c.3 to 64
    > [ 1.250322] pcieport-driver 0000:00:1c.3: found MSI capability
    > [ 1.250463] pci_express 0000:00:1c.3cie00: allocate port service
    > [ 1.250570] pci_express 0000:00:1c.3cie02: allocate port service
    > [ 1.250680] pci_express 0000:00:1c.3cie03: allocate port service
    > [ 1.251001] PCI: Setting latency timer of device 0000:00:1c.4 to 64
    > [ 1.251148] pcieport-driver 0000:00:1c.4: found MSI capability
    > [ 1.251289] pci_express 0000:00:1c.4cie00: allocate port service
    > [ 1.251397] pci_express 0000:00:1c.4cie02: allocate port service
    > [ 1.251510] pci_express 0000:00:1c.4cie03: allocate port service
    > [ 1.252030] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    > [ 1.252940] pciehp: Hotplug Controller:
    > [ 1.252946] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:01.0 IRQ 223
    > [ 1.252951] pciehp: Vendor ID : 0x8086
    > [ 1.252955] pciehp: Device ID : 0x2a01
    > [ 1.252959] pciehp: Subsystem ID : 0x0000
    > [ 1.252962] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.252966] pciehp: PCIe Cap offset : 0xa0
    > [ 1.252972] pciehp: PCI resource [7] : 0x1000@0x2000
    > [ 1.252977] pciehp: PCI resource [8] : 0x3000000@0xd4000000
    > [ 1.252981] pciehp: PCI resource [9] : 0x10000000@0xe0000000
    > [ 1.252986] pciehp: Slot Capabilities : 0x000c25c0
    > [ 1.252990] pciehp: Physical Slot Number : 1
    > [ 1.252994] pciehp: Attention Button : no
    > [ 1.252998] pciehp: Power Controller : no
    > [ 1.253002] pciehp: MRL Sensor : no
    > [ 1.253006] pciehp: Attention Indicator : no
    > [ 1.253009] pciehp: Power Indicator : no
    > [ 1.253013] pciehp: Hot-Plug Surprise : no
    > [ 1.253017] pciehp: EMI Present : no
    > [ 1.253020] pciehp: Comamnd Completed : no
    > [ 1.253026] pciehp: Slot Status : 0x0048
    > [ 1.253031] pciehp: Slot Control : 0x01c0
    > [ 1.253103] pciehp: HPC vendor_id 8086 device_id 2a01 ss_vid 0 ss_did 0
    > [ 1.253142] pciehp: get_power_status - physical_slot = 1
    > [ 1.253149] pciehp: hpc_get_power_status: SLOTCTRL b8 value read 1e8
    > [ 1.253154] pciehp: get_attention_status - physical_slot = 1
    > [ 1.253161] pciehp: hpc_get_attention_status: SLOTCTRL b8, value read 1e8
    > [ 1.253166] pciehp: get_latch_status - physical_slot = 1
    > [ 1.253172] pciehp: get_adapter_status - physical_slot = 1
    > [ 1.253179] pciehp: Registering bus=1 dev=0 hp_slot=0 sun=1 slot_device_offset=0
    > [ 1.253187] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.253193] [] pci_hp_register+0x25/0x4b0
    > [ 1.253208] [] ? get_adapter_status+0x2e/0x70
    > [ 1.253218] [] pciehp_probe+0x12b/0x3f0
    > [ 1.253226] [] pcie_port_probe_service+0x50/0x90
    > [ 1.253235] [] ? sysfs_create_link+0x17/0x20
    > [ 1.253247] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.253256] [] driver_probe_device+0x87/0x1a0
    > [ 1.253263] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.253274] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.253282] [] __driver_attach+0x79/0x80
    > [ 1.253289] [] bus_for_each_dev+0x53/0x80
    > [ 1.253296] [] driver_attach+0x1e/0x20
    > [ 1.253303] [] ? __driver_attach+0x0/0x80
    > [ 1.253310] [] bus_add_driver+0x1b7/0x230
    > [ 1.253318] [] driver_register+0x6e/0x150
    > [ 1.253325] [] ? driver_register+0x6e/0x150
    > [ 1.253332] [] pcie_port_service_register+0x3f/0x50
    > [ 1.253340] [] pcied_init+0x16/0x83
    > [ 1.253350] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.253359] [] kernel_init+0x1ad/0x2b8
    > [ 1.253368] [] ? sys_select+0x44/0x1a0
    > [ 1.253378] [] ? pcied_init+0x0/0x83
    > [ 1.253387] [] ? schedule_tail+0x1f/0x50
    > [ 1.253396] [] ? ret_from_fork+0x6/0x1c
    > [ 1.253405] [] ? kernel_init+0x0/0x2b8
    > [ 1.253413] [] ? kernel_init+0x0/0x2b8
    > [ 1.253421] [] kernel_thread_helper+0x7/0x10
    > [ 1.253429] =======================
    > [ 1.253543] hpdriver 0000:00:01.0cie02: service driver hpdriver loaded
    > [ 1.254331] pciehp: Hotplug Controller:
    > [ 1.254337] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.0 IRQ 222
    > [ 1.254342] pciehp: Vendor ID : 0x8086
    > [ 1.254346] pciehp: Device ID : 0x283f
    > [ 1.254350] pciehp: Subsystem ID : 0x0000
    > [ 1.254353] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.254358] pciehp: PCIe Cap offset : 0x40
    > [ 1.254363] pciehp: PCI resource [7] : 0x1000@0x3000
    > [ 1.254367] pciehp: PCI resource [8] : 0x2000000@0xfc000000
    > [ 1.254372] pciehp: PCI resource [9] : 0x100000@0xf8000000
    > [ 1.254377] pciehp: Slot Capabilities : 0x0010a0e0
    > [ 1.254381] pciehp: Physical Slot Number : 2
    > [ 1.254384] pciehp: Attention Button : no
    > [ 1.254389] pciehp: Power Controller : no
    > [ 1.254392] pciehp: MRL Sensor : no
    > [ 1.254396] pciehp: Attention Indicator : no
    > [ 1.254400] pciehp: Power Indicator : no
    > [ 1.254404] pciehp: Hot-Plug Surprise : yes
    > [ 1.254408] pciehp: EMI Present : no
    > [ 1.254411] pciehp: Comamnd Completed : yes
    > [ 1.254419] pciehp: Slot Status : 0x0000
    > [ 1.254428] pciehp: Slot Control : 0x0000
    > [ 1.254451] pciehp: HPC vendor_id 8086 device_id 283f ss_vid 0 ss_did 0
    > [ 1.254513] pciehp: get_power_status - physical_slot = 2
    > [ 1.254522] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    > [ 1.254527] pciehp: get_attention_status - physical_slot = 2
    > [ 1.254536] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    > [ 1.254541] pciehp: get_latch_status - physical_slot = 2
    > [ 1.254550] pciehp: get_adapter_status - physical_slot = 2
    > [ 1.254560] pciehp: Registering bus=2 dev=0 hp_slot=0 sun=2 slot_device_offset=0
    > [ 1.254566] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.254571] [] pci_hp_register+0x25/0x4b0
    > [ 1.254580] [] ? get_adapter_status+0x2e/0x70
    > [ 1.254590] [] pciehp_probe+0x12b/0x3f0
    > [ 1.254598] [] pcie_port_probe_service+0x50/0x90
    > [ 1.254606] [] ? sysfs_create_link+0x17/0x20
    > [ 1.254616] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.254624] [] driver_probe_device+0x87/0x1a0
    > [ 1.254631] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.254641] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.254649] [] __driver_attach+0x79/0x80
    > [ 1.254656] [] bus_for_each_dev+0x53/0x80
    > [ 1.254663] [] driver_attach+0x1e/0x20
    > [ 1.254670] [] ? __driver_attach+0x0/0x80
    > [ 1.254678] [] bus_add_driver+0x1b7/0x230
    > [ 1.254685] [] driver_register+0x6e/0x150
    > [ 1.254692] [] ? driver_register+0x6e/0x150
    > [ 1.254700] [] pcie_port_service_register+0x3f/0x50
    > [ 1.254709] [] pcied_init+0x16/0x83
    > [ 1.254717] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.254725] [] kernel_init+0x1ad/0x2b8
    > [ 1.254733] [] ? sys_select+0x44/0x1a0
    > [ 1.254742] [] ? pcied_init+0x0/0x83
    > [ 1.254751] [] ? schedule_tail+0x1f/0x50
    > [ 1.254759] [] ? ret_from_fork+0x6/0x1c
    > [ 1.254767] [] ? kernel_init+0x0/0x2b8
    > [ 1.254776] [] ? kernel_init+0x0/0x2b8
    > [ 1.254784] [] kernel_thread_helper+0x7/0x10
    > [ 1.254792] =======================
    > [ 1.254909] hpdriver 0000:00:1c.0cie02: service driver hpdriver loaded
    > [ 1.255694] pciehp: Hotplug Controller:
    > [ 1.255700] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.1 IRQ 221
    > [ 1.255704] pciehp: Vendor ID : 0x8086
    > [ 1.255709] pciehp: Device ID : 0x2841
    > [ 1.255712] pciehp: Subsystem ID : 0x0000
    > [ 1.255716] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.255720] pciehp: PCIe Cap offset : 0x40
    > [ 1.255725] pciehp: PCI resource [7] : 0x1000@0x4000
    > [ 1.255730] pciehp: PCI resource [8] : 0x3200000@0xdc100000
    > [ 1.255735] pciehp: PCI resource [9] : 0x100000@0xdfd00000
    > [ 1.255739] pciehp: Slot Capabilities : 0x0018a0e0
    > [ 1.255743] pciehp: Physical Slot Number : 3
    > [ 1.255747] pciehp: Attention Button : no
    > [ 1.255750] pciehp: Power Controller : no
    > [ 1.255754] pciehp: MRL Sensor : no
    > [ 1.255758] pciehp: Attention Indicator : no
    > [ 1.255762] pciehp: Power Indicator : no
    > [ 1.255765] pciehp: Hot-Plug Surprise : yes
    > [ 1.255769] pciehp: EMI Present : no
    > [ 1.255773] pciehp: Comamnd Completed : yes
    > [ 1.255781] pciehp: Slot Status : 0x0148
    > [ 1.255792] pciehp: Slot Control : 0x0000
    > [ 1.255817] pciehp: HPC vendor_id 8086 device_id 2841 ss_vid 0 ss_did 0
    > [ 1.255884] pciehp: get_power_status - physical_slot = 3
    > [ 1.255894] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    > [ 1.255899] pciehp: get_attention_status - physical_slot = 3
    > [ 1.255909] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    > [ 1.255914] pciehp: get_latch_status - physical_slot = 3
    > [ 1.255922] pciehp: get_adapter_status - physical_slot = 3
    > [ 1.255932] pciehp: Registering bus=3 dev=0 hp_slot=0 sun=3 slot_device_offset=0
    > [ 1.255938] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.255943] [] pci_hp_register+0x25/0x4b0
    > [ 1.255952] [] ? get_adapter_status+0x2e/0x70
    > [ 1.255962] [] pciehp_probe+0x12b/0x3f0
    > [ 1.255971] [] pcie_port_probe_service+0x50/0x90
    > [ 1.255978] [] ? sysfs_create_link+0x17/0x20
    > [ 1.255988] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.255996] [] driver_probe_device+0x87/0x1a0
    > [ 1.256003] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.256013] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.256021] [] __driver_attach+0x79/0x80
    > [ 1.256028] [] bus_for_each_dev+0x53/0x80
    > [ 1.256035] [] driver_attach+0x1e/0x20
    > [ 1.256042] [] ? __driver_attach+0x0/0x80
    > [ 1.256050] [] bus_add_driver+0x1b7/0x230
    > [ 1.256057] [] driver_register+0x6e/0x150
    > [ 1.256064] [] ? driver_register+0x6e/0x150
    > [ 1.256072] [] pcie_port_service_register+0x3f/0x50
    > [ 1.256081] [] pcied_init+0x16/0x83
    > [ 1.256089] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.256098] [] kernel_init+0x1ad/0x2b8
    > [ 1.256105] [] ? sys_select+0x44/0x1a0
    > [ 1.256114] [] ? pcied_init+0x0/0x83
    > [ 1.256122] [] ? schedule_tail+0x1f/0x50
    > [ 1.256131] [] ? ret_from_fork+0x6/0x1c
    > [ 1.256139] [] ? kernel_init+0x0/0x2b8
    > [ 1.256147] [] ? kernel_init+0x0/0x2b8
    > [ 1.256155] [] kernel_thread_helper+0x7/0x10
    > [ 1.256163] =======================
    > [ 1.256279] hpdriver 0000:00:1c.1cie02: service driver hpdriver loaded
    > [ 1.257096] pciehp: Hotplug Controller:
    > [ 1.257101] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.2 IRQ 220
    > [ 1.257106] pciehp: Vendor ID : 0x8086
    > [ 1.257110] pciehp: Device ID : 0x2843
    > [ 1.257114] pciehp: Subsystem ID : 0x0000
    > [ 1.257117] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.257121] pciehp: PCIe Cap offset : 0x40
    > [ 1.257126] pciehp: PCI resource [7] : 0x1000@0x5000
    > [ 1.257131] pciehp: PCI resource [8] : 0x2000000@0xd8000000
    > [ 1.257136] pciehp: PCI resource [9] : 0x100000@0xdfa00000
    > [ 1.257140] pciehp: Slot Capabilities : 0x0020a0e0
    > [ 1.257144] pciehp: Physical Slot Number : 4
    > [ 1.257148] pciehp: Attention Button : no
    > [ 1.257152] pciehp: Power Controller : no
    > [ 1.257155] pciehp: MRL Sensor : no
    > [ 1.257159] pciehp: Attention Indicator : no
    > [ 1.257163] pciehp: Power Indicator : no
    > [ 1.257166] pciehp: Hot-Plug Surprise : yes
    > [ 1.257170] pciehp: EMI Present : no
    > [ 1.257173] pciehp: Comamnd Completed : yes
    > [ 1.257181] pciehp: Slot Status : 0x0000
    > [ 1.257189] pciehp: Slot Control : 0x0000
    > [ 1.257213] pciehp: HPC vendor_id 8086 device_id 2843 ss_vid 0 ss_did 0
    > [ 1.257274] pciehp: get_power_status - physical_slot = 4
    > [ 1.257283] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    > [ 1.257288] pciehp: get_attention_status - physical_slot = 4
    > [ 1.257297] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    > [ 1.257302] pciehp: get_latch_status - physical_slot = 4
    > [ 1.257311] pciehp: get_adapter_status - physical_slot = 4
    > [ 1.257320] pciehp: Registering bus=4 dev=0 hp_slot=0 sun=4 slot_device_offset=0
    > [ 1.257326] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.257332] [] pci_hp_register+0x25/0x4b0
    > [ 1.257341] [] ? get_adapter_status+0x2e/0x70
    > [ 1.257351] [] pciehp_probe+0x12b/0x3f0
    > [ 1.257360] [] pcie_port_probe_service+0x50/0x90
    > [ 1.257367] [] ? sysfs_create_link+0x17/0x20
    > [ 1.257377] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.257385] [] driver_probe_device+0x87/0x1a0
    > [ 1.257392] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.257401] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.257409] [] __driver_attach+0x79/0x80
    > [ 1.257417] [] bus_for_each_dev+0x53/0x80
    > [ 1.257424] [] driver_attach+0x1e/0x20
    > [ 1.257430] [] ? __driver_attach+0x0/0x80
    > [ 1.257438] [] bus_add_driver+0x1b7/0x230
    > [ 1.257445] [] driver_register+0x6e/0x150
    > [ 1.257452] [] ? driver_register+0x6e/0x150
    > [ 1.257460] [] pcie_port_service_register+0x3f/0x50
    > [ 1.257469] [] pcied_init+0x16/0x83
    > [ 1.257477] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.257485] [] kernel_init+0x1ad/0x2b8
    > [ 1.257493] [] ? sys_select+0x44/0x1a0
    > [ 1.257502] [] ? pcied_init+0x0/0x83
    > [ 1.257511] [] ? schedule_tail+0x1f/0x50
    > [ 1.257519] [] ? ret_from_fork+0x6/0x1c
    > [ 1.257527] [] ? kernel_init+0x0/0x2b8
    > [ 1.257535] [] ? kernel_init+0x0/0x2b8
    > [ 1.257543] [] kernel_thread_helper+0x7/0x10
    > [ 1.257551] =======================
    > [ 1.257666] hpdriver 0000:00:1c.2cie02: service driver hpdriver loaded
    > [ 1.258450] pciehp: Hotplug Controller:
    > [ 1.258455] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.3 IRQ 219
    > [ 1.258460] pciehp: Vendor ID : 0x8086
    > [ 1.258464] pciehp: Device ID : 0x2845
    > [ 1.258468] pciehp: Subsystem ID : 0x0000
    > [ 1.258472] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.258476] pciehp: PCIe Cap offset : 0x40
    > [ 1.258480] pciehp: PCI resource [7] : 0x1000@0x6000
    > [ 1.258485] pciehp: PCI resource [8] : 0x2000000@0xd0000000
    > [ 1.258490] pciehp: PCI resource [9] : 0x100000@0xdf700000
    > [ 1.258495] pciehp: Slot Capabilities : 0x0028a0e0
    > [ 1.258499] pciehp: Physical Slot Number : 5
    > [ 1.258502] pciehp: Attention Button : no
    > [ 1.258507] pciehp: Power Controller : no
    > [ 1.258510] pciehp: MRL Sensor : no
    > [ 1.258514] pciehp: Attention Indicator : no
    > [ 1.258517] pciehp: Power Indicator : no
    > [ 1.258521] pciehp: Hot-Plug Surprise : yes
    > [ 1.258525] pciehp: EMI Present : no
    > [ 1.258528] pciehp: Comamnd Completed : yes
    > [ 1.258536] pciehp: Slot Status : 0x0000
    > [ 1.258544] pciehp: Slot Control : 0x0028
    > [ 1.258568] pciehp: HPC vendor_id 8086 device_id 2845 ss_vid 0 ss_did 0
    > [ 1.258628] pciehp: get_power_status - physical_slot = 5
    > [ 1.258638] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    > [ 1.258643] pciehp: get_attention_status - physical_slot = 5
    > [ 1.258652] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    > [ 1.258657] pciehp: get_latch_status - physical_slot = 5
    > [ 1.258665] pciehp: get_adapter_status - physical_slot = 5
    > [ 1.258675] pciehp: Registering bus=5 dev=0 hp_slot=0 sun=5 slot_device_offset=0
    > [ 1.258681] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.258686] [] pci_hp_register+0x25/0x4b0
    > [ 1.258696] [] ? get_adapter_status+0x2e/0x70
    > [ 1.258705] [] pciehp_probe+0x12b/0x3f0
    > [ 1.258713] [] pcie_port_probe_service+0x50/0x90
    > [ 1.258721] [] ? sysfs_create_link+0x17/0x20
    > [ 1.258730] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.258739] [] driver_probe_device+0x87/0x1a0
    > [ 1.258746] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.258756] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.258764] [] __driver_attach+0x79/0x80
    > [ 1.258772] [] bus_for_each_dev+0x53/0x80
    > [ 1.258778] [] driver_attach+0x1e/0x20
    > [ 1.258785] [] ? __driver_attach+0x0/0x80
    > [ 1.258793] [] bus_add_driver+0x1b7/0x230
    > [ 1.258801] [] driver_register+0x6e/0x150
    > [ 1.258808] [] ? driver_register+0x6e/0x150
    > [ 1.258816] [] pcie_port_service_register+0x3f/0x50
    > [ 1.258824] [] pcied_init+0x16/0x83
    > [ 1.258832] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.258841] [] kernel_init+0x1ad/0x2b8
    > [ 1.258849] [] ? sys_select+0x44/0x1a0
    > [ 1.258857] [] ? pcied_init+0x0/0x83
    > [ 1.258866] [] ? schedule_tail+0x1f/0x50
    > [ 1.258874] [] ? ret_from_fork+0x6/0x1c
    > [ 1.258883] [] ? kernel_init+0x0/0x2b8
    > [ 1.258891] [] ? kernel_init+0x0/0x2b8
    > [ 1.258899] [] kernel_thread_helper+0x7/0x10
    > [ 1.258907] =======================
    > [ 1.259022] hpdriver 0000:00:1c.3cie02: service driver hpdriver loaded
    > [ 1.259814] pciehp: Hotplug Controller:
    > [ 1.259820] pciehp: Seg/Bus/Dev/Func/IRQ : 0000:00:1c.4 IRQ 218
    > [ 1.259825] pciehp: Vendor ID : 0x8086
    > [ 1.259829] pciehp: Device ID : 0x2847
    > [ 1.259833] pciehp: Subsystem ID : 0x0000
    > [ 1.259836] pciehp: Subsystem Vendor ID : 0x0000
    > [ 1.259840] pciehp: PCIe Cap offset : 0x40
    > [ 1.259845] pciehp: PCI resource [7] : 0x1000@0x7000
    > [ 1.259850] pciehp: PCI resource [8] : 0x2000000@0xcc000000
    > [ 1.259855] pciehp: PCI resource [9] : 0x100000@0xdf400000
    > [ 1.259859] pciehp: Slot Capabilities : 0x0010a0e0
    > [ 1.259863] pciehp: Physical Slot Number : 2
    > [ 1.259867] pciehp: Attention Button : no
    > [ 1.259871] pciehp: Power Controller : no
    > [ 1.259875] pciehp: MRL Sensor : no
    > [ 1.259879] pciehp: Attention Indicator : no
    > [ 1.259883] pciehp: Power Indicator : no
    > [ 1.259886] pciehp: Hot-Plug Surprise : yes
    > [ 1.259890] pciehp: EMI Present : no
    > [ 1.259893] pciehp: Comamnd Completed : yes
    > [ 1.259901] pciehp: Slot Status : 0x0000
    > [ 1.259910] pciehp: Slot Control : 0x0000
    > [ 1.259933] pciehp: HPC vendor_id 8086 device_id 2847 ss_vid 0 ss_did 0
    > [ 1.259994] pciehp: get_power_status - physical_slot = 2
    > [ 1.260003] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
    > [ 1.260008] pciehp: get_attention_status - physical_slot = 2
    > [ 1.260017] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
    > [ 1.260022] pciehp: get_latch_status - physical_slot = 2
    > [ 1.260031] pciehp: get_adapter_status - physical_slot = 2
    > [ 1.260041] pciehp: Registering bus=d dev=0 hp_slot=0 sun=2 slot_device_offset=0
    > [ 1.260047] Pid: 1, comm: swapper Not tainted 2.6.26 #110
    > [ 1.260052] [] pci_hp_register+0x25/0x4b0
    > [ 1.260061] [] ? get_adapter_status+0x2e/0x70
    > [ 1.260071] [] pciehp_probe+0x12b/0x3f0
    > [ 1.260079] [] pcie_port_probe_service+0x50/0x90
    > [ 1.260087] [] ? sysfs_create_link+0x17/0x20
    > [ 1.260096] [] ? driver_sysfs_add+0x5d/0x90
    > [ 1.260104] [] driver_probe_device+0x87/0x1a0
    > [ 1.260111] [] ? _spin_lock_irqsave+0x21/0x40
    > [ 1.260121] [] ? _spin_unlock_irqrestore+0x16/0x40
    > [ 1.260129] [] __driver_attach+0x79/0x80
    > [ 1.260137] [] bus_for_each_dev+0x53/0x80
    > [ 1.260144] [] driver_attach+0x1e/0x20
    > [ 1.260151] [] ? __driver_attach+0x0/0x80
    > [ 1.260159] [] bus_add_driver+0x1b7/0x230
    > [ 1.260166] [] driver_register+0x6e/0x150
    > [ 1.260174] [] ? driver_register+0x6e/0x150
    > [ 1.260182] [] pcie_port_service_register+0x3f/0x50
    > [ 1.260191] [] pcied_init+0x16/0x83
    > [ 1.260199] [] ? pci_hotplug_init+0x1f/0x23
    > [ 1.260208] [] kernel_init+0x1ad/0x2b8
    > [ 1.260216] [] ? sys_select+0x44/0x1a0
    > [ 1.260225] [] ? pcied_init+0x0/0x83
    > [ 1.260234] [] ? schedule_tail+0x1f/0x50
    > [ 1.260242] [] ? ret_from_fork+0x6/0x1c
    > [ 1.260250] [] ? kernel_init+0x0/0x2b8
    > [ 1.260258] [] ? kernel_init+0x0/0x2b8
    > [ 1.260266] [] kernel_thread_helper+0x7/0x10
    > [ 1.260274] =======================
    > [ 1.260278] pciehp: pci_hp_register failed with error -17
    > [ 1.260412] pciehp: Failed to register slot because of name collision. Try 'pciehp_slot_with_bus' module option.
    > [ 1.260547] pciehp: pciehp: slot initialization failed
    > [ 1.260817] pciehp: pcie_port_service_register = 0
    > [ 1.260822] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
    >
    >



    --
    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/

  15. Re: post 2.6.26 requires pciehp_slot_with_bus

    Alex Chiang wrote:
    > * Matthew Wilcox :
    >> On Fri, Jul 25, 2008 at 01:29:16AM +0200, Pierre Ossman wrote:
    >>> On Thu, 24 Jul 2008 17:08:27 -0600
    >>> Alex Chiang wrote:
    >>>
    >>>> Sorry for one more round-trip, but could you turn on debugging
    >>>> for pciehp as well?
    >>>>
    >>> Same thing, with debugging:

    >> I have a laptop with a similar problem (though I don't have pciehp
    >> enabled, so I didn't notice it). Obviously, we need to fix this.
    >>
    >> There is no question in my mind that firmware has programmed the slot
    >> numbers incorrectly. Here's the evidence from lspci -vvv:
    >>
    >> 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
    >> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    >> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    >> Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    >> 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
    >> Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    >> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    >> Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    >>
    >> I don't think anyone can credibly argue that this is correct. They're
    >> both PCIe devices, they're both both indicating that they have a slot
    >> (maybe if I get my screwdriver out, I can see if there's really a slot
    >> ...), they're on the same bus (so I don't know how the with_bus
    >> parameter makes any difference).
    >>
    >> I've always hated that with_bus parameter. I don't like it being a
    >> parameter and I don't like the names it produces.
    >>
    >> Part of the problem is the kobject API. It really hates you trying to
    >> register a duplicate name and won't just return -EEXIST and let you try
    >> a new name. Instead it prints an ugly warning and dumps stack. See
    >> kobject_add_internal() in lib/kobject.c.

    >
    > Yeah, I don't really like that part of the kobject API either.
    >
    >> So we need a way to find if there's already a slot of this name. I
    >> don't see a kobject routine to do that. Maybe we can do it internally
    >> to the pci slot code.

    >
    > Well, we have this code in pci_hp_register:
    >
    > /* Check if we have already registered a slot with the same name. */
    > if (get_slot_from_name(slot->name))
    > return -EEXIST;
    >
    >> Then we need to pick a new name for the kobject if it does collide.
    >> My suggestion is that the second time we find an object named "2", we
    >> call it "2dup1" (the third time "2dup2", etc.) Other opinions I've
    >> seen include "2a", "2b", ... or "2-1", "2-2", ... or "2-brokenfw1",
    >> "2-brokenfw2".
    >>
    >> I'm at OLS this week, so no patch from me.

    >
    > It should be pretty easy for pci_hp_register() to fix up the name
    > in the event of a collision.
    >
    > The hard part is figuring out a convention that we can all agree
    > on. I've no strong feelings here, but of the options
    > presented, I lean towards "2a", "2b" or "2-1", "2-2".
    >


    Only my hope is I don't want to look "2a" or "2-1" on normal platform.
    It should be "2" on normal platform.

    I'd like to try to make a patch, but it will be middle of next week
    because of other jobs. Is that ok?

    Thanks,
    Kenji Kaneshige


    --
    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/

  16. Re: post 2.6.26 requires pciehp_slot_with_bus

    Matthew Wilcox wrote:
    > On Fri, Jul 25, 2008 at 01:29:16AM +0200, Pierre Ossman wrote:
    >> On Thu, 24 Jul 2008 17:08:27 -0600
    >> Alex Chiang wrote:
    >>
    >>> Sorry for one more round-trip, but could you turn on debugging
    >>> for pciehp as well?
    >>>

    >> Same thing, with debugging:

    >
    > I have a laptop with a similar problem (though I don't have pciehp
    > enabled, so I didn't notice it). Obviously, we need to fix this.
    >
    > There is no question in my mind that firmware has programmed the slot
    > numbers incorrectly. Here's the evidence from lspci -vvv:
    >
    > 00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    > 00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
    > Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
    > SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surpise+
    > Slot # 2, PowerLimit 6.500000; Interlock- NoCompl-
    >
    > I don't think anyone can credibly argue that this is correct. They're
    > both PCIe devices, they're both both indicating that they have a slot
    > (maybe if I get my screwdriver out, I can see if there's really a slot
    > ...), they're on the same bus (so I don't know how the with_bus
    > parameter makes any difference).
    >


    FYI:

    IIRC, pciehp uses bridge's secondary bus number for slot name, and
    PCI express downstream port can have only one hotplug slot. I think
    this is why with_bus prameter makes difference. But it doesn't work
    on the system that has multiple pci segments. In addition, shpchp
    also has with_bus option, but it doesn't work because shpc controller
    can have multiple slots on the bridge's secondary bus. Anyway, as
    you mentioned, using bus number for slot name is obviously not good
    idea, and your idea (e.g. "2-1", "2-2") looks much better.

    Thanks,
    Kenji Kaneshige




    > I've always hated that with_bus parameter. I don't like it being a
    > parameter and I don't like the names it produces.
    >
    > Part of the problem is the kobject API. It really hates you trying to
    > register a duplicate name and won't just return -EEXIST and let you try
    > a new name. Instead it prints an ugly warning and dumps stack. See
    > kobject_add_internal() in lib/kobject.c.
    >
    > So we need a way to find if there's already a slot of this name. I
    > don't see a kobject routine to do that. Maybe we can do it internally
    > to the pci slot code.
    >
    > Then we need to pick a new name for the kobject if it does collide.
    > My suggestion is that the second time we find an object named "2", we
    > call it "2dup1" (the third time "2dup2", etc.) Other opinions I've
    > seen include "2a", "2b", ... or "2-1", "2-2", ... or "2-brokenfw1",
    > "2-brokenfw2".
    >
    > I'm at OLS this week, so no patch from me.
    >



    --
    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/

  17. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Fri, Jul 25, 2008 at 02:38:38PM +0900, Kenji Kaneshige wrote:
    > >The hard part is figuring out a convention that we can all agree
    > >on. I've no strong feelings here, but of the options
    > >presented, I lean towards "2a", "2b" or "2-1", "2-2".
    > >

    >
    > Only my hope is I don't want to look "2a" or "2-1" on normal platform.
    > It should be "2" on normal platform.


    Yes, the first slot will be "2", the second slot "2a" or "2-1" or
    whatever we decide. I don't have a strong feeling about the name.

    --
    Intel are signing my paycheques ... these opinions are still mine
    "Bill, look, we understand that you're interested in selling us this
    operating system, but compare it to ours. We can't possibly take such
    a retrograde step."
    --
    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/

  18. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Fri, Jul 25, 2008 at 05:53:33PM +0900, Kenji Kaneshige wrote:
    > IIRC, pciehp uses bridge's secondary bus number for slot name, and
    > PCI express downstream port can have only one hotplug slot. I think
    > this is why with_bus prameter makes difference.


    Ahh, I overlooked that last night.

    > But it doesn't work on the system that has multiple pci segments.


    Yes, we still have the problem that pciehp does not include the 'chassis
    number' as part of the name. I no longer have easy access to any
    systems with multiple chassis. Do your systems have devices which
    implement the PCI_CAP_ID_SLOTID capcbility? (as root) lspci -vvv will
    report it:

    printf("Slot ID: %d slots, First%c, chassis %02x\n",
    esr & PCI_SID_ESR_NSLOTS,
    FLAG(esr, PCI_SID_ESR_FIC),
    chs);

    > In addition, shpchp
    > also has with_bus option, but it doesn't work because shpc controller
    > can have multiple slots on the bridge's secondary bus. Anyway, as
    > you mentioned, using bus number for slot name is obviously not good
    > idea, and your idea (e.g. "2-1", "2-2") looks much better.


    Thanks!

    --
    Intel are signing my paycheques ... these opinions are still mine
    "Bill, look, we understand that you're interested in selling us this
    operating system, but compare it to ours. We can't possibly take such
    a retrograde step."
    --
    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/

  19. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Thursday, July 24, 2008 9:50 pm Kenji Kaneshige wrote:
    > Thank you for debug info, Pierre.
    >
    > According to the debugging output, five slots are detected (five
    > slots on laptop!?) and two of them have the same physical slots
    > number '2'. This is the reason why Pierre's machine needs
    > 'pciehp_slot_with_bus' option.
    >
    > Before 2.6.26 (from 2.6.xx), pciehp did the workaround for the
    > problem (some platform wrongly assign the same physical slot
    > number to multiple slots) by default. But this was not a good
    > idea because of the several reasons like follows:
    >
    > - Slot name should be a physical identifier of physical slot
    > on the system. Using bus number as a part of slot name is
    > not a idea because bus number is logical number and it can
    > be changed.
    >
    > - As Jesse explained, some hotplug slot can be handled through
    > several type of controllers. For example, some hotplug slot
    > can be handled by either acpiphp or pciehp. But those drivers
    > must not handle the same slot at the same time. The pci
    > hotplug core is checking this by checking duplicate names.
    > This check didn't work because pciehp had started using bus
    > number as a part of slot name and slot names became different
    > between acpiphp and pciehp.
    >
    > About the former, I'm ok with using bus number as a part of slot
    > name on the problematic platform. But it should not be used on
    > the normal platform.
    >
    > About the latter, IIRC, thanks to Alex's pci slot framework from
    > 2.6.26, pci hotplug core can check if multiple drivers attempts
    > to handle the same slot even if those drivers uses the different
    > names.
    >
    > Based on my thought above, I have a following idea to remove
    > "pciehp_slot_with_bus".
    >
    > - Try to use physical slot number as a slot name, first.
    >
    > - If pci_hp_register() success, no problem.
    >
    > - If pci_hp_register() returns -EBUSY, that means another
    > hotplug driver already handling the slot. So return as error.
    >
    > - If pci_hp_register() returns -EEXIST, that means there is a
    > existing slot with the same name. In this case, retry to
    > register slots with logical name (bus number + physical slot
    > number, or other).
    >
    > With this idea, slots names will become as follows on Pierre's
    > machine.
    >
    >
    > 0001_0001, 0002_0002, 0003_0003, 0004_0004, 0005_0005, 000d_0002
    >
    >
    > 1, 2, 3, 4, 5
    >
    >
    > 1, 2, 3, 4, 5, 000d_0002
    >
    >
    > Please give me comments.


    I think that's fine (automatically creating duplicate devices with names to
    differentiate them), but I think we should also try harder to avoid adding
    duplicates.

    In Pierre's case, and on my T61, there's only one actual hotplug slot
    available, but the firmware creates duplicate physical slot numbers and sets
    the HP_CAP bit on everything, both of which are obviously wrong (well I
    suppose you could pop these chips off the board, but it's not very
    practical). However, afaict that "other" OS uses the _RMV method to
    determine whether a given slot is actually hot pluggable. On my T61 at
    least, this seems to be accurate: only one of my EXP* objects has a _RMV
    method.

    So maybe the PCIe hotplug driver should be checking for that method when ACPI
    is available? We already try to use _OSC etc., so checking for _RMV first
    would make sense...

    I tried and failed to do this (naive patch attached), I think somehow I've got
    to traverse child devices too... (and of course add the appropriate #ifdef
    ACPI etc stuff).

    Kenji-san and Alex, maybe you can take a look and clue me in?

    Thanks,
    Jesse


  20. Re: post 2.6.26 requires pciehp_slot_with_bus

    On Fri, Jul 25, 2008 at 03:18:53PM -0700, Jesse Barnes wrote:
    > I think that's fine (automatically creating duplicate devices with names to
    > differentiate them), but I think we should also try harder to avoid adding
    > duplicates.
    >
    > In Pierre's case, and on my T61, there's only one actual hotplug slot
    > available, but the firmware creates duplicate physical slot numbers and sets
    > the HP_CAP bit on everything, both of which are obviously wrong (well I
    > suppose you could pop these chips off the board, but it's not very
    > practical). However, afaict that "other" OS uses the _RMV method to
    > determine whether a given slot is actually hot pluggable. On my T61 at
    > least, this seems to be accurate: only one of my EXP* objects has a _RMV
    > method.


    I think you're getting distracted from the real problem we're trying to
    solve here, the reason for introducing the pci_slot driver in the first
    place: we want to have information on all slots, not just hotplug ones.

    So while this is growing out of the hotplug system, we need to register
    all slots, even ones without _RMV.

    --
    Intel are signing my paycheques ... these opinions are still mine
    "Bill, look, we understand that you're interested in selling us this
    operating system, but compare it to ours. We can't possibly take such
    a retrograde step."
    --
    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/

+ Reply to Thread
Page 1 of 2 1 2 LastLast