lkml.org 
[lkml]   [2013]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectPlease revert 928bea964827d7824b548c1f8e06eccbbc4d0d7d
    From
    Date
    Hi Linus, Yinghai !

    Please consider reverting:

    928bea964827d7824b548c1f8e06eccbbc4d0d7d
    PCI: Delay enabling bridges until they're needed

    (I'd suggest to revert now and maybe merge a better patch later)

    This breaks PCI on the PowerPC "powernv" platform (which is booted via
    kexec) and probably x86 as well under similar circumstances. It will
    basically break PCIe if the bus master bit of the bridge isn't set at
    boot (by the firmware for example, or because kexec'ing cleared it).

    The reason is that the PCIe port driver will call pci_enable_device() on
    the bridge (on everything under the sun actually), which will marked the
    device enabled (but will not do a set_master).

    Because of that, pci_enable_bridge() later on (called as a result of the
    child device driver doing pci_enable_device) will see the bridge as
    already enabled and will not call pci_set_master() on it.

    Now, this could probably be fixed by simply doing pci_set_master() in
    the PCIe port driver, but I find the whole logic very fragile (anything
    that "enables" the bridge without setting master or for some reason
    clears master will forever fail to re-enable it).

    Maybe a better option is to unconditionally do pci_set_mater() in
    pci_enable_bridge(), ie, move the call to before the enabled test.

    However I am not too happy with that either. My experience with bridges
    is that if bus master isn't set, they will also fail to report AER
    errors and other similar upstream transactions. We might want to get
    these reported properly even if no downstream device got successfully
    enabled.

    So I think the premises of the patches are flawed, at least on PCI
    express, and we should stick to always enabling bridges (at least the
    bus master bit on them).

    Cheers,
    Ben.




    \
     
     \ /
      Last update: 2013-09-27 10:41    [W:2.621 / U:1.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site