From 5e414d74bedb6a2da45554952064133ccdead5ca Mon Sep 17 00:00:00 2001 From: Lei Zhou Date: Mon, 21 Nov 2022 22:02:10 +0800 Subject: [PATCH 11/19] hwtracing: hisi_ptt: Only add the supported devices to the filters list mainline inclusion from mainline-v6.3-rc1 commit b8d976c7d41a28c0fccf22c7113be9a29dc07e5c category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I60FNG CVE: NA Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b8d976c7d41a28c0fccf22c7113be9a29dc07e5c -------------------------------------------------------------- The PTT device can only filter the devices on the same PCIe core, within BDF range [lower_bdf, upper_bdf]. Add the miss checking when initialize the filters list. Fixes: ff0de066b463 ("hwtracing: hisi_ptt: Add trace function support for HiSilicon PCIe Tune and Trace device") Signed-off-by: Wangming Shao Signed-off-by: Lei Zhou Reviewed-by: Yicong Yang Reviewed-by: Yang Jihong Signed-off-by: Zheng Zengkai Signed-off-by: YunYi Yang --- drivers/hwtracing/ptt/hisi_ptt.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/hwtracing/ptt/hisi_ptt.c b/drivers/hwtracing/ptt/hisi_ptt.c index 70d3398d341f..8e0dddbad0ec 100644 --- a/drivers/hwtracing/ptt/hisi_ptt.c +++ b/drivers/hwtracing/ptt/hisi_ptt.c @@ -364,8 +364,18 @@ static int hisi_ptt_register_irq(struct hisi_ptt *hisi_ptt) static int hisi_ptt_init_filters(struct pci_dev *pdev, void *data) { + struct pci_dev *root_port = pcie_find_root_port(pdev); struct hisi_ptt_filter_desc *filter; struct hisi_ptt *hisi_ptt = data; + u32 port_devid; + + if (!root_port) + return 0; + + port_devid = PCI_DEVID(root_port->bus->number, root_port->devfn); + if (port_devid < hisi_ptt->lower_bdf || + port_devid > hisi_ptt->upper_bdf) + return 0; /* * We won't fail the probe if filter allocation failed here. The filters -- 2.27.0