Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1382566imm; Fri, 29 Jun 2018 17:33:50 -0700 (PDT) X-Google-Smtp-Source: AAOMgpepz3H8uaUdMGwoYn0lknggfI/8NoPXXZuFWJm116pwopXs1Gddy59s07XHYsLWpMgljvFl X-Received: by 2002:a65:40cd:: with SMTP id u13-v6mr2421843pgp.334.1530318830375; Fri, 29 Jun 2018 17:33:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530318830; cv=none; d=google.com; s=arc-20160816; b=k4N21dK66DciSwvmt03V3JXB5C0fulfK7Nd8Uwqidcn3M2kHodeW8b74aLuVw5cnTo ML17WgW+owoxJKrkKgKIcJV7BICmAQ/wUQC07H9AkEY1ePORR7MTInJYNa127dDXubXM T0VD/a4MJ41fG61q9NPbfIRcFjQRnEDj2rvrrmx0XIsRbYbWmgQM0w0wEcXOA3Qpo7fg 50csXsRZTKMAvG+fRMHFnDoVSnGOXb+osO9y1+9oLcaQBg46XaWhx7GfQZIqELFlbc5a gVSF93MMYm0tZsCKNLc3TEtOQT5FplQGff3IHdBCdB77I5bMJHcBk/YiHbXAZTJGsM+2 3Gvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=EUOdJhhuWtA1wWB8AkYtE0pFwG7sf1YJz09McQNBs/E=; b=Mn79EWfjw/snzRlPJfGU+9cXJeIQHliFQXPh9K3AY7yRpoocQp9OM+r2LIhL0m5tj6 Qvel/5XN8g31LZ4u0GUl/FDq/oF8YCjmj/c6zxBEhUQ8UDLpgCosYQreTz+buifG6D1y 23ttG7xpy+6stJJuQ1rdzStn1iBf0YUk6C4PKLwUe4+YGcKpqk7XAXXych7E4CZMhH/J t0KIb2gm61wAOCai+y7lDqIBYCcJRt1OwVpCVzS+hnKHnVUrRIQLcOYOXaT0G9WJodd5 iNcr7d/odmh6VZmQ+gj8phdVOaqo+2MUwHNEOVzpqoXoegK6RiT8HcCcQvxLcpGSHVDq JluQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="dR/kOAj/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x3-v6si10611365plb.478.2018.06.29.17.33.24; Fri, 29 Jun 2018 17:33:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="dR/kOAj/"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935367AbeF2Vng (ORCPT + 99 others); Fri, 29 Jun 2018 17:43:36 -0400 Received: from mail-vk0-f68.google.com ([209.85.213.68]:46092 "EHLO mail-vk0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933456AbeF2Vnd (ORCPT ); Fri, 29 Jun 2018 17:43:33 -0400 Received: by mail-vk0-f68.google.com with SMTP id b14-v6so499905vke.13; Fri, 29 Jun 2018 14:43:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=EUOdJhhuWtA1wWB8AkYtE0pFwG7sf1YJz09McQNBs/E=; b=dR/kOAj/hiLEWde/ZcipD4FNdJSVNdxpX6zWxsaEqN1fdtAn+V/1mRX5BJTpXKhL5v KnqUwJdwsfXGLpoMUXerAe4WASG0VUtwrpqRoMCOaNCr7Lol+w7xUxHkIMgRffqXtNIB TEdm2WokCanMxPk3rO5k7B8Nj60wmRXB57jb3ZJUdeZlDcA7HniVeT21NvkHk0paEgW8 Va2af8jWiWiNERtsbKsn3W6k+Qvtl8PoYPouu+ZxgsCpz4ior9gU2sWsFr5YL19KMyaA SJTy1zG3H/GdcvoKA7KTea2OhH4OvEJD/fDZxV1920oFyCA+lZR+pUnIu3h6P/bM4FTD rXww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=EUOdJhhuWtA1wWB8AkYtE0pFwG7sf1YJz09McQNBs/E=; b=Q8xHAxpXxg0rRFpGXrpXDY+TX6Re6kRv1jCio8OI655umJpI+EMcW0FprnStd6hVSF y4P2QKWpjb1UKME3p+EPDjrwu3bAQA/fRSi5gAp2Tge05ly1yv1NrzCmqRGzTkYII62T pRwtxf8yw85W/KlNqEAs3+Votb4DrRovtxRlYxsc0icpAtSlfUJNPhCg47EqjZQv7Ul8 zigzb2ThpnMBU95Q4Q9EAemaI8prcp1D4Cula24/bstetB598Pn8U2zlNIk9KDn6AefR 23sdKY2aZdS+fo+rOe+sFLtpUoHI72gBgqjYBMIGUs75Uo3aXAiXpvNvq6zA/Hk1lFfc Qw5g== X-Gm-Message-State: APt69E2Mhy5jGnCNusdJ77XIi5+IM52c4y82+XGWnYBN/ni0cMbHYDd8 13eJocDNBzvUQxWE8vftLMGR8lf23WzzKqQ3NDE= X-Received: by 2002:a1f:82c7:: with SMTP id e190-v6mr9964952vkd.187.1530308612719; Fri, 29 Jun 2018 14:43:32 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a67:8b02:0:0:0:0:0 with HTTP; Fri, 29 Jun 2018 14:43:32 -0700 (PDT) In-Reply-To: <1530214274-21139-4-git-send-email-okaya@codeaurora.org> References: <1530214274-21139-1-git-send-email-okaya@codeaurora.org> <1530214274-21139-4-git-send-email-okaya@codeaurora.org> From: Andy Shevchenko Date: Sat, 30 Jun 2018 00:43:32 +0300 Message-ID: Subject: Re: [PATCH V4 4/7] PCI: Unify try slot and bus reset API To: Sinan Kaya Cc: linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm Mailing List , Mike Marciniszyn , Dennis Dalessandro , Doug Ledford , Jason Gunthorpe , Bjorn Helgaas , Alex Williamson , Alexey Kardashevskiy , Peter Xu , Zhenyu Wang , "open list:HFI1 DRIVER" , open list , "open list:VFIO DRIVER" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 28, 2018 at 10:31 PM, Sinan Kaya wrote: > Drivers are expected to call pci_try_reset_slot() or pci_try_reset_bus() by > querying if a system supports hotplug or not. A survey showed that most > drivers don't do this and we are leaking hotplug capability to the user. > > Hide pci_try_slot_reset() from drivers and embed into pci_try_bus_reset(). > Change pci_try_reset_bus() parameter from struct pci_bus to struct pci_dev. > +/** > + * pci_try_reset_bus - Try to reset a PCI bus > + * @pdev: top level PCI device to reset via slot/bus > + * > + * Same as above except return -EAGAIN if the bus cannot be locked > + */ > +int pci_try_reset_bus(struct pci_dev *pdev) > +{ > + bool slot = false; > + > + if (!pci_probe_reset_slot(pdev->slot)) > + slot = true; > + > + return slot ? __pci_try_reset_slot(pdev->slot) : > + __pci_try_reset_bus(pdev->bus); This can be as simple as return pci_probe_reset_slot(pdev->slot) ? __pci_try_reset_bus(pdev->slot) : __pci_try_reset_slot(pdev->bus); > +} > EXPORT_SYMBOL_GPL(pci_try_reset_bus); -- With Best Regards, Andy Shevchenko