Message ID | 20221122120209.25682-1-yangyicong@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] hwtracing: hisi_ptt: Only add the supported devices to the filters list | expand |
On Tue, 22 Nov 2022 20:02:08 +0800 Yicong Yang <yangyicong@huawei.com> wrote: > From: Yicong Yang <yangyicong@hisilicon.com> > > The PTT device can only support the devices on the same PCIe core, > within BDF range [lower_bdf, upper_bdf]. It's not correct to assume > the devices on the root bus are from the same PCIe core, there are > cases that root ports from different PCIe core are sharing the same > bus. So add the 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: Yicong Yang <yangyicong@hisilicon.com> Make sense to me. Reviewed-by: Jonathan Cameron <Jonathan.Cameron@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 5d5526aa60c4..30f1525639b5 100644 > --- a/drivers/hwtracing/ptt/hisi_ptt.c > +++ b/drivers/hwtracing/ptt/hisi_ptt.c > @@ -356,8 +356,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
Hi Mathieu, Do we still have a chance to catch this cycle for these 2 patches? Thanks! On 2022/11/22 20:02, Yicong Yang wrote: > From: Yicong Yang <yangyicong@hisilicon.com> > > The PTT device can only support the devices on the same PCIe core, > within BDF range [lower_bdf, upper_bdf]. It's not correct to assume > the devices on the root bus are from the same PCIe core, there are > cases that root ports from different PCIe core are sharing the same > bus. So add the 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: Yicong Yang <yangyicong@hisilicon.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 5d5526aa60c4..30f1525639b5 100644 > --- a/drivers/hwtracing/ptt/hisi_ptt.c > +++ b/drivers/hwtracing/ptt/hisi_ptt.c > @@ -356,8 +356,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 >
Hi Yicong Yang On 06/12/2022 11:34, Yicong Yang wrote: > Hi Mathieu, > > Do we still have a chance to catch this cycle for these 2 patches? Sorry, I have been handling the coresight tree this cycle (and will be going forward). I have already sent the pull request to Greg. I am afraid it is late for this cycle. I can queue it for the next cycle. Suzuki > > Thanks! > > On 2022/11/22 20:02, Yicong Yang wrote: >> From: Yicong Yang <yangyicong@hisilicon.com> >> >> The PTT device can only support the devices on the same PCIe core, >> within BDF range [lower_bdf, upper_bdf]. It's not correct to assume >> the devices on the root bus are from the same PCIe core, there are >> cases that root ports from different PCIe core are sharing the same >> bus. So add the 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: Yicong Yang <yangyicong@hisilicon.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 5d5526aa60c4..30f1525639b5 100644 >> --- a/drivers/hwtracing/ptt/hisi_ptt.c >> +++ b/drivers/hwtracing/ptt/hisi_ptt.c >> @@ -356,8 +356,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 >>
On 2022/12/6 19:46, Suzuki K Poulose wrote: > Hi Yicong Yang > > On 06/12/2022 11:34, Yicong Yang wrote: >> Hi Mathieu, >> >> Do we still have a chance to catch this cycle for these 2 patches? > > Sorry, I have been handling the coresight tree this cycle (and will be > going forward). I have already sent the pull request to Greg. I am > afraid it is late for this cycle. > > I can queue it for the next cycle. > Thanks for the information. It's ok, I'll resend in the next cycle. Thanks, Yicong >> >> Thanks! >> >> On 2022/11/22 20:02, Yicong Yang wrote: >>> From: Yicong Yang <yangyicong@hisilicon.com> >>> >>> The PTT device can only support the devices on the same PCIe core, >>> within BDF range [lower_bdf, upper_bdf]. It's not correct to assume >>> the devices on the root bus are from the same PCIe core, there are >>> cases that root ports from different PCIe core are sharing the same >>> bus. So add the 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: Yicong Yang <yangyicong@hisilicon.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 5d5526aa60c4..30f1525639b5 100644 >>> --- a/drivers/hwtracing/ptt/hisi_ptt.c >>> +++ b/drivers/hwtracing/ptt/hisi_ptt.c >>> @@ -356,8 +356,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 >>> > > > .
diff --git a/drivers/hwtracing/ptt/hisi_ptt.c b/drivers/hwtracing/ptt/hisi_ptt.c index 5d5526aa60c4..30f1525639b5 100644 --- a/drivers/hwtracing/ptt/hisi_ptt.c +++ b/drivers/hwtracing/ptt/hisi_ptt.c @@ -356,8 +356,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