60 lines
2.0 KiB
Diff
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
|
|
|