Hi benh,
Please find my comments inline.
On Tue, Jun 24, 2008 at 4:50 AM, Benjamin Herrenschmidt <
[EMAIL PROTECTED]> wrote:
> On Mon, 2008-06-23 at 14:55 +0200, Stefan Roese wrote:
> > From: Sathya Narayanan <[EMAIL PROTECTED]>
> >
> > Short packets has to be discarded by the driver
Hi benh,
Please find my comments inline.
Thanks and regards,
SathyaNarayanan
On Tue, Jun 24, 2008 at 4:50 AM, Benjamin Herrenschmidt <
[EMAIL PROTECTED]> wrote:
> On Mon, 2008-06-23 at 14:54 +0200, Stefan Roese wrote:
> > From: Sathya Narayanan <[EMAIL PROTE
Hi Benn,
Please find my comments below.
On Tue, Jun 24, 2008 at 4:51 AM, Benjamin Herrenschmidt <
[EMAIL PROTECTED]> wrote:
> On Mon, 2008-06-23 at 14:55 +0200, Stefan Roese wrote:
> > From: Sathya Narayanan <[EMAIL PROTECTED]>
> >
> > This patch addresses the memory leak happenni
On Wed, Jul 2, 2008 at 11:16 AM, Benjamin Herrenschmidt <
[EMAIL PROTECTED]> wrote:
>
> >
> > Actually the meachanism of stopping the queue and starting it is
> > already there. But even then due to some sync issue between the poll
> > routine and xmit, we were resulted in using the slots of skb
Hi,
On 4/16/20 12:59 PM, Jon Derrick wrote:
Some platforms have a mix of ports whose capabilities can be negotiated
by _OSC, and some ports which are not described by ACPI and instead
managed by Native drivers. The existing Firmware-First HEST model can
incorrectly tag these Native, Non-ACPI por
On 4/20/20 2:37 PM, Jon Derrick wrote:
Some platforms have a mix of ports whose capabilities can be negotiated
by _OSC, and some ports which are not described by ACPI and instead
managed by Native drivers. The existing Firmware-First HEST model can
incorrectly tag these Native, Non-ACPI ports
On 4/20/20 2:37 PM, Jon Derrick wrote:
The existing portdrv model prevents DPC services without either OS
control (_OSC) granted to AER services, a Host Bridge requesting Native
AER, or using one of the 'pcie_ports=' parameters of 'native' or
'dpc-native'.
The DPC port service driver itself w
On 4/23/20 8:11 AM, Derrick, Jonathan wrote:
Hi Sathyanarayanan,
On Wed, 2020-04-22 at 15:50 -0700, Kuppuswamy, Sathyanarayanan wrote:
On 4/20/20 2:37 PM, Jon Derrick wrote:
The existing portdrv model prevents DPC services without either OS
control (_OSC) granted to AER services, a Host
On 4/27/20 8:15 AM, Derrick, Jonathan wrote:
Hi Sathyanarayanan,
On Sat, 2020-04-25 at 13:46 -0700, Kuppuswamy, Sathyanarayanan wrote:
On 4/23/20 8:11 AM, Derrick, Jonathan wrote:
Hi Sathyanarayanan,
On Wed, 2020-04-22 at 15:50 -0700, Kuppuswamy, Sathyanarayanan wrote:
On 4/20/20 2:37
On 8/27/19 8:18 AM, Andy Shevchenko wrote:
This simplifies and standardizes slot manipulation code
by using for_each_set_bit() library function.
Signed-off-by: Andy Shevchenko
Reviewed-by: Kuppuswamy Sathyanarayanan
---
drivers/pci/pcie/aer.c | 19 ---
1 file changed, 8
_isr'
aer.c:1209: warning: Function parameter or member 'context' not described in
'aer_isr'
aer.c:1209: warning: Excess function parameter 'work' description in 'aer_isr'
Fix the above accordingly.
Signed-off-by: Andy Shevchenko
Reviewed-by: Kuppusw
On 7/10/23 4:21 PM, Bjorn Helgaas wrote:
> From: Bjorn Helgaas
>
> pci_disable_pcie_error_reporting() is unused; remove it.
> pci_enable_pcie_error_reporting() is used only inside aer.c; make it
> static.
Looks fine to me.
Reviewed-by: Kuppuswamy Sathyanarayanan
>
On 4/20/23 5:59 AM, Kai-Heng Feng wrote:
> There are many places that enable and disable AER interrput, so move
> them into helpers.
Add "No functional changes intended"
>
> Signed-off-by: Kai-Heng Feng
> ---
Looks good to me.
Reviewed-by: Kuppuswamy Sathyanaraya
t, RCEC, or RCiEP
> @@ -1420,6 +1440,8 @@ static struct pcie_port_service_driver aerdriver = {
> .service= PCIE_PORT_SERVICE_AER,
>
> .probe = aer_probe,
> + .suspend= aer_suspend,
> + .resume = aer_resume,
> .remove = aer_remove,
> };
>
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
= PCIE_PORT_SERVICE_AER,
>
> .probe = aer_probe,
> + .suspend= aer_suspend,
> + .resume = aer_resume,
> .remove = aer_remove,
> };
>
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
Hi,
On 4/24/23 10:55 PM, Kai-Heng Feng wrote:
> On Tue, Apr 25, 2023 at 7:47 AM Sathyanarayanan Kuppuswamy
> wrote:
>>
>>
>>
>> On 4/23/23 10:52 PM, Kai-Heng Feng wrote:
>>> PCIe service that shares IRQ with PME may cause spurious wakeup on
>>> sys
reset Root Port hierarchy, RCEC, or RCiEP
> * @dev: pointer to Root Port, RCEC, or RCiEP
> @@ -1420,6 +1440,8 @@ static struct pcie_port_service_driver aerdriver = {
> .service= PCIE_PORT_SERVICE_AER,
>
> .probe = aer_probe,
> + .suspend= aer_suspend,
> + .resume = aer_resume,
> .remove = aer_remove,
> };
>
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
pdev, &info);
> - pci_aer_clear_nonfatal_status(pdev);
> - pci_aer_clear_fatal_status(pdev);
> + pci_aer_clear_uncorrect_error_status(pdev);
> }
> }
>
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
; +static inline int pci_aer_clear_uncorrect_error_status(struct pci_dev *dev)
> +{
> + return -EINVAL;
> +}
> static inline void pci_save_aer_state(struct pci_dev *dev) {}
> static inline void pci_restore_aer_state(struct pci_dev *dev) {}
> #endif
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
fatal_status(pdev);
> + else /* Cleanup uncorrectable error status before getting to init */
> + pci_aer_clear_uncorrect_error_status(pdev);
>
> /* First enable the PCI device */
> ret = pcim_enable_device(pdev);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
@@ -4715,7 +4715,7 @@ lpfc_aer_cleanup_state(struct device *dev, struct
> device_attribute *attr,
> return -EINVAL;
>
> if (phba->hba_flag & HBA_AER_ENABLED)
> - rc = pci_aer_clear_nonfatal_status(phba->pcidev);
> + rc = pci_aer_clear_uncor
int pci_aer_clear_uncorrect_error_status(struct pci_dev *dev);
> void pci_save_aer_state(struct pci_dev *dev);
> void pci_restore_aer_state(struct pci_dev *dev);
> @@ -57,10 +56,6 @@ static inline int pci_disable_pcie_error_reporting(struct
> pci_dev *dev)
> {
> return -EINV
On 9/27/22 9:20 PM, Zhuo Chen wrote:
>
>
> On 9/28/22 3:39 AM, Sathyanarayanan Kuppuswamy wrote:
>>
>>
>> On 9/27/22 8:35 AM, Zhuo Chen wrote:
>>> Status bits for ERR_NONFATAL errors only are cleared in
>>> pci_aer_clear_nonfatal_status(), but we
gt; Signed-off-by: Bjorn Helgaas
Except for the suggestion given below, it looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan
> ---
> drivers/pci/pcie/aer.c | 9 +++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/driver
Corrected error received: :00:1c.5
> + pcieport :00:1c.5: AER: Correctable error received: :00:1c.5
>
> Signed-off-by: Bjorn Helgaas
> ---
Looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan
> drivers/pci/pcie/aer.c | 6 +++---
> 1 file changed, 3 insertions(+),
aer.h
> index ae0fae70d4bd..38ac802250ac 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -52,9 +52,9 @@ static inline int pcie_aer_is_native(struct pci_dev *dev) {
> return 0; }
> #endif
>
> void pci_print_aer(struct pci_dev *dev, int aer_severity,
> - struct aer_capability_regs *aer);
> + struct aer_capability_regs *aer, u16 device_status);
> int cper_severity_to_aer(int cper_severity);
> void aer_recover_queue(int domain, unsigned int bus, unsigned int devfn,
> -int severity, struct aer_capability_regs *aer_regs);
> +int severity, struct aer_capability_regs *aer_regs, u16
> device_status);
> #endif //_AER_H_
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index add9368e6314..259812620d4d 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -318,6 +318,33 @@ struct pci_sriov;
> struct pci_p2pdma;
> struct rcec_ea;
>
> +struct pcie_capability_regs {
> + u8 pcie_cap_id;
> + u8 next_cap_ptr;
> + u16 pcie_caps;
> + u32 device_caps;
> + u16 device_control;
> + u16 device_status;
> + u32 link_caps;
> + u16 link_control;
> + u16 link_status;
> + u32 slot_caps;
> + u16 slot_control;
> + u16 slot_status;
> + u16 root_control;
> + u16 root_caps;
> + u32 root_status;
> + u32 device_caps_2;
> + u16 device_control_2;
> + u16 device_status_2;
> + u32 link_caps_2;
> + u16 link_control_2;
> + u16 link_status_2;
> + u32 slot_caps_2;
> + u16 slot_control_2;
> + u16 slot_status_2;
> +};
> +
IIUC, this struct is only used drivers/acpi/apei/ghes.c . Why not define it in
that file?
> /* The pci_dev structure describes PCI devices */
> struct pci_dev {
> struct list_head bus_list; /* Node in per-bus list */
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
quot;,
> - aer_error_layer[layer], aer_agent_string[agent]);
>
> - if (aer_severity != AER_CORRECTABLE)
> + if (aer_severity == AER_CORRECTABLE) {
> + pci_info(dev, "aer_layer=%s, aer_agent=%s\n",
> + aer_error_layer[layer], aer_agent_string[agent]);
> + } else {
> + pci_err(dev, "aer_layer=%s, aer_agent=%s\n",
> + aer_error_layer[layer], aer_agent_string[agent]);
> pci_err(dev, "aer_uncor_severity: 0x%08x\n",
> aer->uncor_severity);
> + }
>
> if (tlp_header_valid)
> __print_tlp_header(dev, &aer->header_log);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
e struct irq_domain *
> pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; }
> static inline bool pci_pr3_present(struct pci_dev *pdev) { return false; }
> +static inline bool pci_ancestor_pr3_present(struct pci_dev *pdev) { return
> false; }
> #endif
>
> #ifdef CONFIG_EEH
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
hould not affect the
> basic functionality.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=209149
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=216295
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=218090
> Signed-off-by: Kai-Heng Feng
> ---
Looks good to me.
R
ing(struct pci_dev *dev)
> {
> + if (!pcie_aer_is_native(dev))
> + return;
> +
> switch (ecrc_policy) {
> case ECRC_POLICY_DEFAULT:
> return;
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
Hi,
On 1/11/23 3:10 PM, Bjorn Helgaas wrote:
> On Wed, Jan 11, 2023 at 01:42:21PM -0800, Sathyanarayanan Kuppuswamy wrote:
>> On 1/11/23 12:31 PM, Vidya Sagar wrote:
>>> As the ECRC configuration bits are part of AER registers, configure
>>> ECRC only if AER is n
agree that "on" and "off" option makes sense. Since the kernel defaults ecrc
setting to "bios", why again allow it as a command line option?
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 1/11/23 8:59 PM, Vidya Sagar wrote:
>
>
> On 1/12/2023 9:18 AM, Sathyanarayanan Kuppuswamy wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> On 1/11/23 7:33 PM, Vidya Sagar wrote:
>>> I think we still need bios op
Reviewed-by: Ashok Raj
Signed-off-by: Kuppuswamy Sathyanarayanan
---
drivers/pci/pcie/aer.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index 9fa1f97e5b27..7952e5efd6cf 100644
--- a/drivers/pci/pcie/aer.c
+++ b/dr
: Root Error Status 0002
Currently, the above issue has been only reproduced in the ICL server
platform.
[Eric: proposed reproducing steps]
Fixes: 4696b828ca37 ("PCI/AER: Hoist aerdrv.c, aer_inject.c up to
drivers/pci/pcie/")
Reported-by: Eric Badger
Reviewed-by: Ashok Raj
Signed-of
he last 3 steps with following?
# Inject another error (within 5 seconds)
$ echo 1 > error_inject
# You will get a new IRQ with only multiple ERR_COR bit set
pcieport : AER: Root Error Status 0002
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 3/15/22 12:52 PM, Eric Badger wrote:
On Tue, Mar 15, 2022 at 10:26:46AM -0700, Sathyanarayanan Kuppuswamy wrote:
On 3/15/22 10:14 AM, Eric Badger wrote:
# Prep injection data for a correctable error.
$ cd /sys/kernel/debug/apei/einj
$ echo 0x0040 > error_type
$ echo
& AER_ERR_STATUS_MASK))
return IRQ_NONE;
- pci_read_config_dword(rp, aer + PCI_ERR_ROOT_ERR_SRC, &e_src.id);
pci_write_config_dword(rp, aer + PCI_ERR_ROOT_STATUS,
e_src.status);
+ pci_read_config_dword(rp, aer + PCI_ERR_ROOT_ERR_SRC, &e_src.id)
--
Sat
= aer_suspend,
+ .resume = aer_resume,
+ .runtime_suspend= aer_suspend,
+ .runtime_resume = aer_resume,
+ .remove = aer_remove,
};
/**
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
ume,
+ .runtime_suspend= dpc_suspend,
+ .runtime_resume = dpc_resume,
+ .remove = dpc_remove,
};
int __init pcie_dpc_init(void)
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 3/20/22 7:38 PM, Kai-Heng Feng wrote:
On Sun, Mar 20, 2022 at 4:38 AM Sathyanarayanan Kuppuswamy
wrote:
On 1/26/22 6:54 PM, Kai-Heng Feng wrote:
Commit 50310600ebda ("iommu/vt-d: Enable PCI ACS for platform opt in
hint") enables ACS, and some platforms lose its NVMe after r
= aer_suspend,
+ .resume = aer_resume,
+ .runtime_suspend= aer_suspend,
+ .runtime_resume = aer_resume,
+ .remove = aer_remove,
};
/**
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
nce AER is disabled in previous patch for a Link in L2/L3 Ready, L2
and L3, also disable DPC here as DPC depends on AER to work.
Bugzilla:https://bugzilla.kernel.org/show_bug.cgi?id=215453
Reviewed-by: Mika Westerberg
Signed-off-by: Kai-Heng Feng
Reviewed-by: Kuppuswamy Sathyanarayanan
--
Sathy
[Eric: proposed reproducing steps]
Fixes: 4696b828ca37 ("PCI/AER: Hoist aerdrv.c, aer_inject.c up to
drivers/pci/pcie/")
Reported-by: Eric Badger
Reviewed-by: Ashok Raj
Signed-off-by: Kuppuswamy Sathyanarayanan
---
Changes since v2:
* Added more details to the commit log.
* Rebase
Hi Bjorn,
On 4/18/22 8:02 AM, Kuppuswamy Sathyanarayanan wrote:
Currently the aer_irq() handler returns IRQ_NONE for cases without bits
PCI_ERR_ROOT_UNCOR_RCV or PCI_ERR_ROOT_COR_RCV are set. But this
assumption is incorrect.
Consider a scenario where aer_irq() is triggered for a correctable
elated.
I think the actual change of interest is e167bfcaa4cd ("PCI: aerdrv:
remove magical ROOT_ERR_STATUS_MASKS") [1]. It looks like we did
exactly what you propose before that commit.
I can update this unless you disagree.
[1]https://git.kernel.org/linus/e167bfcaa4cd
Agree. Please
On 5/11/22 4:40 PM, Bjorn Helgaas wrote:
On Mon, Apr 18, 2022 at 03:02:37PM +, Kuppuswamy Sathyanarayanan wrote:
Currently the aer_irq() handler returns IRQ_NONE for cases without bits
PCI_ERR_ROOT_UNCOR_RCV or PCI_ERR_ROOT_COR_RCV are set. But this
assumption is incorrect.
Consider a
patch (please check following patch). But it includes
TDX changes as well. Shall I move TDX changes to different patch and just
create a separate patch for adding intel_cc_platform_has()?
commit fc5f98a0ed94629d903827c5b44ee9295f835831
Author: Kuppuswamy Sathyanarayanan
Date: Wed May 12 11:35:13
On 9/16/21 8:02 AM, Borislav Petkov wrote:
On Wed, Sep 15, 2021 at 10:26:06AM -0700, Kuppuswamy, Sathyanarayanan wrote:
I have a Intel variant patch (please check following patch). But it includes
TDX changes as well. Shall I move TDX changes to different patch and just
create a separate
ms/pseries/cc_platform.c
create mode 100644 arch/x86/kernel/cc_platform.c
create mode 100644 include/linux/cc_platform.h
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 9/28/21 1:31 PM, Borislav Petkov wrote:
On Tue, Sep 28, 2021 at 12:19:49PM -0700, Kuppuswamy, Sathyanarayanan wrote:
Intel CC support patch is not included in this series. You want me
to address the issue raised by Joerg before merging it?
Did you not see my email to you today:
https
On 9/28/21 1:58 PM, Borislav Petkov wrote:
On Tue, Sep 28, 2021 at 01:48:46PM -0700, Kuppuswamy, Sathyanarayanan wrote:
Just read it. If you want to use cpuid_has_tdx_guest() directly in
cc_platform_has(), then you want to rename intel_cc_platform_has() to
tdx_cc_platform_has()?
Why?
You
Hi Bjorn, Derrick,
On 5/22/20 12:46 PM, Bjorn Helgaas wrote:
On Fri, May 22, 2020 at 05:23:31PM +, Derrick, Jonathan wrote:
On Fri, 2020-05-01 at 11:35 -0600, Jonathan Derrick wrote:
On Fri, 2020-05-01 at 12:16 -0500, Bjorn Helgaas wrote:
On Thu, Apr 30, 2020 at 12:46:07PM -0600, Jon Derr
/include/asm/protected_guest.h
create mode 100644 include/linux/protected_guest.h
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
eeded, as
part of the TDX support.
We don't plan to set PROT_STATE. So it does not affect TDX.
For SMP, we use MADT ACPI table for AP booting.
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
)) {
vaddr = (unsigned long)__start_bss_decrypted;
vaddr_end = (unsigned long)__end_bss_decrypted;
Since this change is specific to AMD, can you replace PATTR_MEM_ENCRYPT with
prot_guest_has(PATTR_SME) || prot_guest_has(PATTR_SEV). It is not used in
TDX.
--
Sathyanarayanan
On 8/10/21 12:48 PM, Tom Lendacky wrote:
On 8/10/21 1:45 PM, Kuppuswamy, Sathyanarayanan wrote:
On 7/27/21 3:26 PM, Tom Lendacky wrote:
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index de01903c3735..cafed6456d45 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86
D_GUEST */
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* _PROTECTED_GUEST_H */
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
technology-specific checks
to the code (e.g. if (sev_active() || tdx_active())).
Reviewed-by: Joerg Roedel
Co-developed-by: Andi Kleen
Signed-off-by: Andi Kleen
Co-developed-by: Kuppuswamy
Sathyanarayanan
Signed-off-by: Kuppuswamy
Sathyanarayanan
Signed-off-by: Tom Lendacky
---
arch/Kconfig
requirements and we need some flags for
TDX specific checks. So I think it is fine to leave some space for vendor
flags.
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
; struct aer_err_info *info)
>
> /* Must reset in this function */
> info->status = 0;
> + info->anfe_status = 0;
> info->tlp_header_valid = 0;
>
> /* The device might not support AER */
> @@ -1226,6 +1276,9 @@ int aer_get_device
t;Wang, Qingshun"
> Signed-off-by: "Wang, Qingshun"
> Signed-off-by: Zhenzhong Duan
> ---
LGTM
Reviewed-by: Kuppuswamy Sathyanarayanan
> drivers/pci/pcie/aer.c | 15 +++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/pci/pcie/aer.c b/dri
tus);
> + }
Why split the handling part and storing part into two patches? Why not merge
this part of patch 1/3.
> if (pcie_aer_is_native(dev)) {
> struct pci_driver *pdrv = dev->driver;
>
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 6/13/24 7:39 PM, Duan, Zhenzhong wrote:
> Hi
>
>> -Original Message-
>> From: Kuppuswamy Sathyanarayanan
>>
>> Subject: Re: [PATCH v4 1/3] PCI/AER: Store UNCOR_STATUS bits that might
>> be ANFE in aer_err_info
>>
>> Hi,
>>
>>
On 6/13/24 7:40 PM, Duan, Zhenzhong wrote:
>
>> -Original Message-
>> From: Kuppuswamy, Sathyanarayanan
>> Subject: Re: [PATCH v4 3/3] PCI/AER: Clear UNCOR_STATUS bits that might
>> be ANFE
>>
>>
>> On 5/9/24 1:48 AM, Zhenzhong Duan wro
PCI_ERS_RESULT_DISCONNECT instead of trying to do a state
transition that will fail.
Also untangle the state transition failure from the lack of methods to
improve the debugging output in case it will happen ever again.
Otherwise, it looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan
Signed-off-by
int get_port_device_capability(struct pci_dev *dev)
> }
>
> #ifdef CONFIG_PCIEAER
> - if (dev->aer_cap && pci_aer_available() &&
> - (pcie_ports_native || host->native_aer)) {
> + if (pcie_aer_is_native(dev) && pci_aer_available()) {
> services |= PCIE_PORT_SERVICE_AER;
>
> /*
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
rs/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
> index 604feeb84ee4..98c18f4a01b2 100644
> --- a/drivers/pci/pcie/portdrv_core.c
> +++ b/drivers/pci/pcie/portdrv_core.c
> @@ -221,8 +221,7 @@ static int get_port_device_capability(struct pci_dev *dev)
> }
>
> #
@ -221,8 +221,7 @@ static int get_port_device_capability(struct pci_dev *dev)
> }
>
> #ifdef CONFIG_PCIEAER
> - if (dev->aer_cap && pci_aer_available() &&
> - (pcie_ports_native || host->native_aer)) {
> + if (pcie_aer_is_native(dev) && pci_aer_available()) {
> services |= PCIE_PORT_SERVICE_AER;
>
> /*
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
tive_aer || pcie_ports_native)".
>
> Or we can change "if ((host->native_aer || pcie_ports_native) && aer)" into
> "if (pcie_aer_is_native(root))". But in this way, argument NULL pointer check
> should be added in pcie_aer_is_native().
Looking into it again, I think it is better to leave it as it is. Please ignore
my comment.
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
ewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/dpc.c | 10 +-
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c
index 242cabd5eeeb..1a54a0b657ae 100644
--- a/drivers/pci/pcie/dpc.c
+++ b/drivers/pci/pcie/dpc.c
@@ -34
7 @@ static void edr_handle_event(acpi_handle handle, u32 event, void *data)
}
pci_dev_put(err_port);
+ pci_dev_put(err_dev);
}
void pci_acpi_add_edr_notifier(struct pci_dev *pdev)
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
} else {
- pci_dbg(edev, "DPC port recovery failed\n");
- acpi_send_edr_status(pdev, edev, EDR_OST_FAILED);
+ pci_dbg(err_port, "DPC port recovery failed\n");
+ acpi_send_edr_status(pdev, err_port, EDR_OST_FAILED);
}
- pci_dev_put(edev);
+ pci_dev_put(err_port);
+ pci_dev_put(err_dev);
}
void pci_acpi_add_edr_notifier(struct pci_dev *pdev)
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
);
}
@@ -259,6 +267,7 @@ pci_ers_result_t pcie_do_recovery(struct pci_dev *dev,
if (host->native_aer || pcie_ports_native) {
pcie_clear_device_status(dev);
pci_aer_clear_nonfatal_status(dev);
+ pci_aer_clear_fatal_status(dev);
I think we clear fatal status in DPC driver, why do it again?
}
pci_walk_bridge(bridge, pci_pm_runtime_put, NULL);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 1/23/25 5:45 PM, Shuai Xue wrote:
在 2025/1/24 04:10, Sathyanarayanan Kuppuswamy 写道:
Hi,
On 11/12/24 5:54 AM, Shuai Xue wrote:
The AER driver has historically avoided reading the configuration
space of
an endpoint or RCiEP that reported a fatal error, considering the
link to
that
pcie_clear_device_status(dev);
pci_aer_clear_nonfatal_status(dev);
+ pci_aer_clear_fatal_status(dev);
Add some info about above change in the commit log.
}
pci_walk_bridge(bridge, pci_pm_runtime_put, NULL);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
observe any functional changes.
Signed-off-by: Shuai Xue
---
Looks good to me
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pci.h | 2 +-
drivers/pci/pcie/dpc.c | 28
drivers/pci/pcie/edr.c | 7 ---
3 files changed, 29 insertions(+), 8
ce2d0116e6
prerequisite-patch-id: 482ad0609459a7654a4100cdc9f9aa4b671be50b
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
I bridge quirks
currently, right? If yes, just list what is currently supported.
+ */
+bool pci_aer_panic_enabled(void)
+{
+ return pcie_aer_panic;
+}
+EXPORT_SYMBOL(pci_aer_panic_enabled);
+
bool pci_aer_available(void)
{
return !pcie_aer_disable && pci_msi_enabled(
On 5/8/25 12:10 AM, Manivannan Sadhasivam wrote:
A PCI device is just another peripheral in a system. So failure to
recover it, must not result in a kernel panic. So remove the TODO which
is quite misleading.
Signed-off-by: Manivannan Sadhasivam
---
Reviewed-by: Kuppuswamy Sathyanarayanan
o should be returned.
Signed-off-by: Manivannan Sadhasivam
---
Looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pci.c | 12
drivers/pci/pcie/err.c | 5 -
include/linux/pci.h| 1 +
3 files changed, 13 insertions(+), 5 deletions(-)
diff
vices, don't ratelimit fatal errors,
"aer_report" -> "aer_info"]
Reported-by: Sargun Dhillon
Signed-off-by: Jon Pan-Doh
Signed-off-by: Bjorn Helgaas
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pci.h | 3
-> "aer_info"]
Signed-off-by: Karolina Stolarek
Signed-off-by: Jon Pan-Doh
Signed-off-by: Bjorn Helgaas
Tested-by: Krzysztof Wilczyński
---
Reviewed-by: Kuppuswamy Sathyanarayanan
...es-aer_stats => sysfs-bus-pci-devices-aer} | 34 +++
Documentation/PCI/pci
d the struct aer_rpc pointer, so pass it the
Root Port or RCEC pci_dev pointer instead.
Signed-off-by: Bjorn Helgaas
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/aer.c | 36 +++-
1 file changed, 23 insertions(+), 13 deletions(-)
diff --
Krzysztof Wilczyński
Reviewed-by: Ilpo Järvinen
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/aer.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index e6693f910a23..d845079429f0 100644
---
mit = 1; /* no ratelimiting */
aer_print_error(pdev, &info);
pci_aer_clear_nonfatal_status(pdev);
pci_aer_clear_fatal_status(pdev);
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 5/19/25 2:35 PM, Bjorn Helgaas wrote:
From: Jon Pan-Doh
Add ratelimits section for rationale and defaults.
Signed-off-by: Karolina Stolarek
Signed-off-by: Jon Pan-Doh
Signed-off-by: Bjorn Helgaas
Reviewed-by: Kuppuswamy Sathyanarayanan
Acked-by: Paul E. McKenney
---
Documentation
-by: Bjorn Helgaas
Acked-by: Paul E. McKenney
---
Reviewed-by: Kuppuswamy Sathyanarayanan
...es-aer_stats => sysfs-bus-pci-devices-aer} | 34 +++
Documentation/PCI/pcieaer-howto.rst | 5 +-
drivers/pci/pci-sysfs.c | 1 +
drivers/pci
On 5/20/25 11:31 AM, Bjorn Helgaas wrote:
On Mon, May 19, 2025 at 09:59:29PM -0700, Sathyanarayanan Kuppuswamy wrote:
On 5/19/25 2:35 PM, Bjorn Helgaas wrote:
From: Jon Pan-Doh
Spammy devices can flood kernel logs with AER errors and slow/stall
execution. Add per-device ratelimits for AER
On 5/20/25 12:48 PM, Bjorn Helgaas wrote:
On Mon, May 19, 2025 at 10:01:09PM -0700, Sathyanarayanan Kuppuswamy wrote:
On 5/19/25 2:35 PM, Bjorn Helgaas wrote:
From: Jon Pan-Doh
Add ratelimits section for rationale and defaults.
+AER Ratelimits
+--
+
+Since error messages can be
On 5/19/25 7:41 AM, Hans Zhang wrote:
On 2025/5/19 22:21, Hans Zhang wrote:
On 2025/5/17 02:10, Sathyanarayanan Kuppuswamy wrote:
On 5/16/25 9:55 AM, Hans Zhang wrote:
The following series introduces a new kernel command-line option aer_panic
to enhance error handling for PCIe Advanced
quot; at declaration so it starts as all zeroes.
/s/zeroes/zeros
Reviewed-by: Kuppuswamy Sathyanarayanan
Signed-off-by: Bjorn Helgaas
---
drivers/pci/pcie/dpc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c
index df42f1
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/dpc.c | 45 ++
1 file changed, 28 insertions(+), 17 deletions(-)
diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c
index fe7719238456..315bf2bfd570 100644
--- a/drivers/pci/pcie/dpc.
tus & PCI_ERR_ROOT_UNCOR_RCV) {
@@ -1316,10 +1318,10 @@ static void aer_isr_one_error(struct aer_rpc *rpc,
else
e_info.multi_error_valid = 0;
- aer_print_port_info(pdev, &e_info);
-
- if (find_source_device(pdev, &e_info))
+
ed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/aer.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index b8494ccd935b..dc8a50e0a2b7 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -736,14 +7
.
[bhelgaas: aer_print_rp_info() -> aer_print_source()]
Link: https://lore.kernel.org/r/20250321015806.954866-5-pan...@google.com
Signed-off-by: Jon Pan-Doh
Signed-off-by: Bjorn Helgaas
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/aer.c | 10 +-
1 file changed, 5 inserti
On 5/19/25 2:35 PM, Bjorn Helgaas wrote:
From: Bjorn Helgaas
Move aer_print_source() earlier in the file so a future change can use it
from aer_print_error(), where it's easier to rate limit it.
Signed-off-by: Bjorn Helgaas
---
Reviewed-by: Kuppuswamy Sathyanarayanan
driver
signated initializer list,
which initializes the other members to zero.
Signed-off-by: Bjorn Helgaas
---
Reviewed-by: Kuppuswamy Sathyanarayanan
drivers/pci/pcie/aer.c | 37 -
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/drivers/pci/
er_log, dev_fmt(" "));
- trace_aer_event(dev_name(&dev->dev), (status & ~mask),
+ trace_aer_event(pci_name(dev), (status & ~mask),
aer_severity, tlp_header_valid, &aer->header_log);
}
EXPORT_SYMBOL_NS_GPL(pci_print_aer, "CXL");
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
1 - 100 of 118 matches
Mail list logo