lkml.org 
[lkml]   [2018]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 064/164] thunderbolt: Serialize PCIe tunnel creation with PCI rescan
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Mika Westerberg <mika.westerberg@linux.intel.com>

    commit a03e828915c00ed0ea5aa40647c81472cfa7a984 upstream.

    We need to make sure a new PCIe tunnel is not created in a middle of
    previous PCI rescan because otherwise the rescan code might find too
    much and fail to reconfigure devices properly. This is important when
    native PCIe hotplug is used. In BIOS assisted hotplug there should be no
    such issue.

    Fixes: f67cf491175a ("thunderbolt: Add support for Internal Connection Manager (ICM)")
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/thunderbolt/switch.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    --- a/drivers/thunderbolt/switch.c
    +++ b/drivers/thunderbolt/switch.c
    @@ -716,6 +716,13 @@ static int tb_switch_set_authorized(stru
    if (sw->authorized)
    goto unlock;

    + /*
    + * Make sure there is no PCIe rescan ongoing when a new PCIe
    + * tunnel is created. Otherwise the PCIe rescan code might find
    + * the new tunnel too early.
    + */
    + pci_lock_rescan_remove();
    +
    switch (val) {
    /* Approve switch */
    case 1:
    @@ -735,6 +742,8 @@ static int tb_switch_set_authorized(stru
    break;
    }

    + pci_unlock_rescan_remove();
    +
    if (!ret) {
    sw->authorized = val;
    /* Notify status change to the userspace */

    \
     
     \ /
      Last update: 2018-04-22 17:31    [W:2.039 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site