On 12/24/2024 12:46 PM, Jonathan Cameron wrote: > On Wed, 11 Dec 2024 17:40:00 -0600 > Terry Bowman <terry.bowman@xxxxxxx> wrote: > >> The CXL drivers use kernel trace functions for logging endpoint and RCH >> Downstream Port RAS errors. Similar functionality is required for CXL Root >> Ports, CXL Downstream Switch Ports, and CXL Upstream Switch Ports. >> >> Introduce trace logging functions for both RAS correctable and >> uncorrectable errors specific to CXL PCIe Ports. Additionally, update >> the PCIe Port error handlers to invoke these new trace functions. >> >> Signed-off-by: Terry Bowman <terry.bowman@xxxxxxx> > Trivial comment inline. > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Thank you Jonathan. >> --- >> drivers/cxl/core/pci.c | 16 ++++++++++---- >> drivers/cxl/core/trace.h | 47 ++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 59 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/cxl/core/pci.c b/drivers/cxl/core/pci.c >> index 52afaedf5171..3294ad5ff28f 100644 >> --- a/drivers/cxl/core/pci.c >> +++ b/drivers/cxl/core/pci.c >> @@ -661,10 +661,14 @@ static void __cxl_handle_cor_ras(struct device *dev, >> >> addr = ras_base + CXL_RAS_CORRECTABLE_STATUS_OFFSET; >> status = readl(addr); >> - if (status & CXL_RAS_CORRECTABLE_STATUS_MASK) { >> - writel(status & CXL_RAS_CORRECTABLE_STATUS_MASK, addr); >> + if (!(status & CXL_RAS_CORRECTABLE_STATUS_MASK)) >> + return; > I'd put a blank line here. Sure, I will add the blank line. Regards, Terry >> + writel(status & CXL_RAS_CORRECTABLE_STATUS_MASK, addr); >> + >> + if (is_cxl_memdev(dev)) >> trace_cxl_aer_correctable_error(to_cxl_memdev(dev), status); >> - } >> + else >> + trace_cxl_port_aer_correctable_error(dev, status); >> } >> >> static void cxl_handle_endpoint_cor_ras(struct cxl_dev_state *cxlds) >> @@ -720,7 +724,11 @@ static bool __cxl_handle_ras(struct device *dev, void __iomem *ras_base) >> } >> >> header_log_copy(ras_base, hl); >> - trace_cxl_aer_uncorrectable_error(to_cxl_memdev(dev), status, fe, hl); >> + if (is_cxl_memdev(dev)) >> + trace_cxl_aer_uncorrectable_error(to_cxl_memdev(dev), status, fe, hl); >> + else >> + trace_cxl_port_aer_uncorrectable_error(dev, status, fe, hl); >> + >> writel(status & CXL_RAS_UNCORRECTABLE_STATUS_MASK, addr); >> >> return true; >