mbox series

[v9,0/5] Simplify PCIe native ownership detection logic

Message ID cover.1600457297.git.sathyanarayanan.kuppuswamy@linux.intel.com (mailing list archive)
Headers show
Series Simplify PCIe native ownership detection logic | expand

Message

Kuppuswamy Sathyanarayanan Sept. 22, 2020, 8:54 p.m. UTC
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

Currently, PCIe capabilities ownership status is detected by
verifying the status of pcie_ports_native, pcie_ports_dpc_native
and _OSC negotiated results (cached in  struct pci_host_bridge
->native_* members). But this logic can be simplified, and we can
use only struct pci_host_bridge ->native_* members to detect it. 

This patchset removes the distributed checks for pcie_ports_native,
pcie_ports_dpc_native parameters.

Changes since v8:
 * Simplified setting _OSC ownwership logic
 * Moved bridge->native_ltr out of #ifdef CONFIG_PCIEPORTBUS.

Changes since v7:
 * Fixed "fix array_size.cocci warnings".

Changes since v6:
 * Created new patch for CONFIG_PCIEPORTBUS check in
   pci_init_host_bridge().
 * Added warning message for a case when pcie_ports_native
   overrides _OSC negotiation result.

Changes since v5:
 * Rebased on top of v5.8-rc1

Changes since v4:
 * Changed the patch set title (Original link: https://lkml.org/lkml/2020/5/26/1710)
 * Added AER/DPC dependency logic cleanup fixes.
 

Kuppuswamy Sathyanarayanan (5):
  PCI: Conditionally initialize host bridge native_* members
  ACPI/PCI: Ignore _OSC negotiation result if pcie_ports_native is set.
  ACPI/PCI: Ignore _OSC DPC negotiation result if pcie_ports_dpc_native
    is set.
  PCI/portdrv: Remove redundant pci_aer_available() check in DPC enable
    logic
  PCI/DPC: Move AER/DPC dependency checks out of DPC driver

 drivers/acpi/pci_root.c           | 37 ++++++++++++++++++++++---------
 drivers/pci/hotplug/pciehp_core.c |  2 +-
 drivers/pci/pci-acpi.c            |  3 ---
 drivers/pci/pcie/aer.c            |  2 +-
 drivers/pci/pcie/dpc.c            |  3 ---
 drivers/pci/pcie/portdrv.h        |  2 --
 drivers/pci/pcie/portdrv_core.c   | 13 +++++------
 drivers/pci/probe.c               |  6 +++--
 include/linux/acpi.h              |  2 ++
 include/linux/pci.h               |  2 ++
 10 files changed, 42 insertions(+), 30 deletions(-)

Comments

Kuppuswamy Sathyanarayanan Sept. 29, 2020, 8:58 p.m. UTC | #1
Hi Bjorn,

On 9/27/20 6:11 PM, Kuppuswamy Sathyanarayanan wrote:
> Currently, PCIe capabilities ownership status is detected by
> verifying the status of pcie_ports_native, pcie_ports_dpc_native
> and _OSC negotiated results (cached in  struct pci_host_bridge
> ->native_* members). But this logic can be simplified, and we can
> use only struct pci_host_bridge ->native_* members to detect it.
> 
Did you get this patch set or do I need to send it again?
> This patchset removes the distributed checks for pcie_ports_native,
> pcie_ports_dpc_native parameters.
> 
> Changes since v8:
>   * Simplified setting _OSC ownwership logic
>   * Moved bridge->native_ltr out of #ifdef CONFIG_PCIEPORTBUS.
> 
> Changes since v7:
>   * Fixed "fix array_size.cocci warnings".
> 
> Changes since v6:
>   * Created new patch for CONFIG_PCIEPORTBUS check in
>     pci_init_host_bridge().
>   * Added warning message for a case when pcie_ports_native
>     overrides _OSC negotiation result.
> 
> Changes since v5:
>   * Rebased on top of v5.8-rc1
> 
> Changes since v4:
>   * Changed the patch set title (Original link: https://lkml.org/lkml/2020/5/26/1710)
>   * Added AER/DPC dependency logic cleanup fixes.
>   
> 
> Kuppuswamy Sathyanarayanan (5):
>    PCI: Conditionally initialize host bridge native_* members
>    ACPI/PCI: Ignore _OSC negotiation result if pcie_ports_native is set.
>    ACPI/PCI: Ignore _OSC DPC negotiation result if pcie_ports_dpc_native
>      is set.
>    PCI/portdrv: Remove redundant pci_aer_available() check in DPC enable
>      logic
>    PCI/DPC: Move AER/DPC dependency checks out of DPC driver
> 
>   drivers/acpi/pci_root.c           | 37 ++++++++++++++++++++++---------
>   drivers/pci/hotplug/pciehp_core.c |  2 +-
>   drivers/pci/pci-acpi.c            |  3 ---
>   drivers/pci/pcie/aer.c            |  2 +-
>   drivers/pci/pcie/dpc.c            |  3 ---
>   drivers/pci/pcie/portdrv.h        |  2 --
>   drivers/pci/pcie/portdrv_core.c   | 13 +++++------
>   drivers/pci/probe.c               |  6 +++--
>   include/linux/acpi.h              |  2 ++
>   include/linux/pci.h               |  2 ++
>   10 files changed, 42 insertions(+), 30 deletions(-)
>
Bjorn Helgaas Sept. 29, 2020, 9:04 p.m. UTC | #2
On Tue, Sep 29, 2020 at 4:00 PM Kuppuswamy, Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com> wrote:
>
> Hi Bjorn,
>
> On 9/27/20 6:11 PM, Kuppuswamy Sathyanarayanan wrote:
> > Currently, PCIe capabilities ownership status is detected by
> > verifying the status of pcie_ports_native, pcie_ports_dpc_native
> > and _OSC negotiated results (cached in  struct pci_host_bridge
> > ->native_* members). But this logic can be simplified, and we can
> > use only struct pci_host_bridge ->native_* members to detect it.
> >
> Did you get this patch set or do I need to send it again?

I got it, thanks.  More importantly, it looks like linux-pci got it, too :)

$ b4 am -om/ https://lore.kernel.org/r/a640e9043db50f5adee8e38f5c60ff8423f3f598.1600457297.git.sathyanarayanan.kuppuswamy@linux.intel.com
Looking up https://lore.kernel.org/r/a640e9043db50f5adee8e38f5c60ff8423f3f598.1600457297.git.sathyanarayanan.kuppuswamy%40linux.intel.com
Grabbing thread from lore.kernel.org/linux-pci
Reduced thread to strict matches only (18->10)
Analyzing 10 messages in the thread
---
Writing m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.mbx
  [PATCH v9 1/5] PCI: Conditionally initialize host bridge native_* members
  [PATCH v9 2/5] ACPI/PCI: Ignore _OSC negotiation result if
pcie_ports_native is set.
  [PATCH v9 3/5] ACPI/PCI: Ignore _OSC DPC negotiation result if
pcie_ports_dpc_native is set.
  [PATCH v9 4/5] PCI/portdrv: Remove redundant pci_aer_available()
check in DPC enable logic
  [PATCH v9 5/5] PCI/DPC: Move AER/DPC dependency checks out of DPC driver
---
Total patches: 5
---
Cover: m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.cover
 Link: https://lore.kernel.org/r/cover.1600457297.git.sathyanarayanan.kuppuswamy@linux.intel.com
 Base: not found (applies clean to current tree)
       git am m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.mbx
Kuppuswamy Sathyanarayanan Sept. 29, 2020, 9:23 p.m. UTC | #3
Hi,

On 9/29/20 2:04 PM, Bjorn Helgaas wrote:
> On Tue, Sep 29, 2020 at 4:00 PM Kuppuswamy, Sathyanarayanan
> <sathyanarayanan.kuppuswamy@linux.intel.com> wrote:
>>
>> Hi Bjorn,
>>
>> On 9/27/20 6:11 PM, Kuppuswamy Sathyanarayanan wrote:
>>> Currently, PCIe capabilities ownership status is detected by
>>> verifying the status of pcie_ports_native, pcie_ports_dpc_native
>>> and _OSC negotiated results (cached in  struct pci_host_bridge
>>> ->native_* members). But this logic can be simplified, and we can
>>> use only struct pci_host_bridge ->native_* members to detect it.
>>>
>> Did you get this patch set or do I need to send it again?
> 
> I got it, thanks.  More importantly, it looks like linux-pci got it, too :)
Thanks for the confirmation.
> 
> $ b4 am -om/ https://lore.kernel.org/r/a640e9043db50f5adee8e38f5c60ff8423f3f598.1600457297.git.sathyanarayanan.kuppuswamy@linux.intel.com
> Looking up https://lore.kernel.org/r/a640e9043db50f5adee8e38f5c60ff8423f3f598.1600457297.git.sathyanarayanan.kuppuswamy%40linux.intel.com
> Grabbing thread from lore.kernel.org/linux-pci
> Reduced thread to strict matches only (18->10)
> Analyzing 10 messages in the thread
> ---
> Writing m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.mbx
>    [PATCH v9 1/5] PCI: Conditionally initialize host bridge native_* members
>    [PATCH v9 2/5] ACPI/PCI: Ignore _OSC negotiation result if
> pcie_ports_native is set.
>    [PATCH v9 3/5] ACPI/PCI: Ignore _OSC DPC negotiation result if
> pcie_ports_dpc_native is set.
>    [PATCH v9 4/5] PCI/portdrv: Remove redundant pci_aer_available()
> check in DPC enable logic
>    [PATCH v9 5/5] PCI/DPC: Move AER/DPC dependency checks out of DPC driver
> ---
> Total patches: 5
> ---
> Cover: m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.cover
>   Link: https://lore.kernel.org/r/cover.1600457297.git.sathyanarayanan.kuppuswamy@linux.intel.com
>   Base: not found (applies clean to current tree)
>         git am m/v9_20200922_sathyanarayanan_kuppuswamy_simplify_pcie_native_ownership_detection_logic.mbx
>