kernel/patches/0011-hwtracing-hisi_ptt-Only-add-the-supported-devices-to.patch

60 lines
2.0 KiB
Diff

From 5e414d74bedb6a2da45554952064133ccdead5ca Mon Sep 17 00:00:00 2001
From: Lei Zhou <zhoulei154@h-partners.com>
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 <shaowangming@h-partners.com>
Signed-off-by: Lei Zhou <zhoulei154@h-partners.com>
Reviewed-by: Yicong Yang <yangyicong@huawei.com>
Reviewed-by: Yang Jihong <yangjihong1@huawei.com>
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
Signed-off-by: YunYi Yang <yangyunyi2@huawei.com>
---
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