Message ID | 1522882209-9743-1-git-send-email-okaya@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: > Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags > unless its Extended Tag Field Enable is set, but all Receivers/Completers > must handle 8-bit Tags correctly regardless of their Extended Tag Field > Enable. > > Some devices do not handle 8-bit Tags as Completers, so add a quirk for > them. If we find such a device, we disable Extended Tags for the entire > hierarchy to make peer-to-peer DMA possible. > > The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit > tags. Mark it as broken. > > Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") > Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 > Signed-off-by: Sinan Kaya <okaya@codeaurora.org> Applied to pci/enumeration for v4.18, thanks! > --- > drivers/pci/quirks.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 8b14bd3..f012742 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -4813,9 +4813,13 @@ static void quirk_no_ext_tags(struct pci_dev *pdev) > > pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); > } > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_tags); > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_tags); > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags); > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags); > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags); > > #ifdef CONFIG_PCI_ATS > /* > -- > 2.7.4 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On Tue, Apr 10, 2018 at 02:41:44PM -0500, Bjorn Helgaas wrote: > On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: > > Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags > > unless its Extended Tag Field Enable is set, but all Receivers/Completers > > must handle 8-bit Tags correctly regardless of their Extended Tag Field > > Enable. > > > > Some devices do not handle 8-bit Tags as Completers, so add a quirk for > > them. If we find such a device, we disable Extended Tags for the entire > > hierarchy to make peer-to-peer DMA possible. > > > > The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit > > tags. Mark it as broken. > > > > Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 > > Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > > Applied to pci/enumeration for v4.18, thanks! Actually, this is a really annoying issue and I think the fix is appropriate for v4.17, so I moved it to my for-linus branch. > > --- > > drivers/pci/quirks.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > > index 8b14bd3..f012742 100644 > > --- a/drivers/pci/quirks.c > > +++ b/drivers/pci/quirks.c > > @@ -4813,9 +4813,13 @@ static void quirk_no_ext_tags(struct pci_dev *pdev) > > > > pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); > > } > > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_tags); > > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags); > > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_tags); > > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags); > > DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags); > > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags); > > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags); > > > > #ifdef CONFIG_PCI_ATS > > /* > > -- > > 2.7.4 > > > > > > _______________________________________________ > > linux-arm-kernel mailing list > > linux-arm-kernel@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
On 4/10/2018 3:50 PM, Bjorn Helgaas wrote: > On Tue, Apr 10, 2018 at 02:41:44PM -0500, Bjorn Helgaas wrote: >> On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: >>> Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags >>> unless its Extended Tag Field Enable is set, but all Receivers/Completers >>> must handle 8-bit Tags correctly regardless of their Extended Tag Field >>> Enable. >>> >>> Some devices do not handle 8-bit Tags as Completers, so add a quirk for >>> them. If we find such a device, we disable Extended Tags for the entire >>> hierarchy to make peer-to-peer DMA possible. >>> >>> The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit >>> tags. Mark it as broken. >>> >>> Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") >>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 >>> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> >> Applied to pci/enumeration for v4.18, thanks! > Actually, this is a really annoying issue and I think the fix is > appropriate for v4.17, so I moved it to my for-linus branch. > I agree. It causes boot issues on some AMD Opteron machines. It should probably be back-ported too.
On Tue, Apr 10, 2018 at 04:18:01PM -0400, Sinan Kaya wrote: > On 4/10/2018 3:50 PM, Bjorn Helgaas wrote: > > On Tue, Apr 10, 2018 at 02:41:44PM -0500, Bjorn Helgaas wrote: > >> On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: > >>> Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags > >>> unless its Extended Tag Field Enable is set, but all Receivers/Completers > >>> must handle 8-bit Tags correctly regardless of their Extended Tag Field > >>> Enable. > >>> > >>> Some devices do not handle 8-bit Tags as Completers, so add a quirk for > >>> them. If we find such a device, we disable Extended Tags for the entire > >>> hierarchy to make peer-to-peer DMA possible. > >>> > >>> The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit > >>> tags. Mark it as broken. > >>> > >>> Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") > >>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 > >>> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > >> Applied to pci/enumeration for v4.18, thanks! > > Actually, this is a really annoying issue and I think the fix is > > appropriate for v4.17, so I moved it to my for-linus branch. > > > > I agree. It causes boot issues on some AMD Opteron machines. It should > probably be back-ported too. We started enabling extended tags with 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported"), which appeared in v4.11. So I added these stable tags: CC: stable@vger.kernel.org # v4.11: 62ce94a7a5a5 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken CC: stable@vger.kernel.org # v4.11 I'm not sure I'm using the stable request correctly, but my intent is: - 62ce94a7a5a5 appeared in v4.14, so cherry-pick 62ce94a7a5a5 to v4.11 through v4.13 - cherry-pick *this* patch on top of 62ce94a7a5a5 to v4.11 and later
+GregKH On 4/11/2018 9:51 AM, Bjorn Helgaas wrote: > On Tue, Apr 10, 2018 at 04:18:01PM -0400, Sinan Kaya wrote: >> On 4/10/2018 3:50 PM, Bjorn Helgaas wrote: >>> On Tue, Apr 10, 2018 at 02:41:44PM -0500, Bjorn Helgaas wrote: >>>> On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: >>>>> Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags >>>>> unless its Extended Tag Field Enable is set, but all Receivers/Completers >>>>> must handle 8-bit Tags correctly regardless of their Extended Tag Field >>>>> Enable. >>>>> >>>>> Some devices do not handle 8-bit Tags as Completers, so add a quirk for >>>>> them. If we find such a device, we disable Extended Tags for the entire >>>>> hierarchy to make peer-to-peer DMA possible. >>>>> >>>>> The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit >>>>> tags. Mark it as broken. >>>>> >>>>> Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") >>>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 >>>>> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> >>>> Applied to pci/enumeration for v4.18, thanks! >>> Actually, this is a really annoying issue and I think the fix is >>> appropriate for v4.17, so I moved it to my for-linus branch. >>> >> >> I agree. It causes boot issues on some AMD Opteron machines. It should >> probably be back-ported too. > > We started enabling extended tags with 60db3a4d8cc9 ("PCI: Enable PCIe > Extended Tags if supported"), which appeared in v4.11. > > So I added these stable tags: > > CC: stable@vger.kernel.org # v4.11: 62ce94a7a5a5 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken > CC: stable@vger.kernel.org # v4.11 > > I'm not sure I'm using the stable request correctly, but my intent is: > > - 62ce94a7a5a5 appeared in v4.14, so cherry-pick 62ce94a7a5a5 to > v4.11 through v4.13 > - cherry-pick *this* patch on top of 62ce94a7a5a5 to v4.11 and later >
On Wed, Apr 11, 2018 at 10:02:07AM -0400, Sinan Kaya wrote: > +GregKH Why? > On 4/11/2018 9:51 AM, Bjorn Helgaas wrote: > > On Tue, Apr 10, 2018 at 04:18:01PM -0400, Sinan Kaya wrote: > >> On 4/10/2018 3:50 PM, Bjorn Helgaas wrote: > >>> On Tue, Apr 10, 2018 at 02:41:44PM -0500, Bjorn Helgaas wrote: > >>>> On Wed, Apr 04, 2018 at 06:50:09PM -0400, Sinan Kaya wrote: > >>>>> Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags > >>>>> unless its Extended Tag Field Enable is set, but all Receivers/Completers > >>>>> must handle 8-bit Tags correctly regardless of their Extended Tag Field > >>>>> Enable. > >>>>> > >>>>> Some devices do not handle 8-bit Tags as Completers, so add a quirk for > >>>>> them. If we find such a device, we disable Extended Tags for the entire > >>>>> hierarchy to make peer-to-peer DMA possible. > >>>>> > >>>>> The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit > >>>>> tags. Mark it as broken. > >>>>> > >>>>> Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") > >>>>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 > >>>>> Signed-off-by: Sinan Kaya <okaya@codeaurora.org> > >>>> Applied to pci/enumeration for v4.18, thanks! > >>> Actually, this is a really annoying issue and I think the fix is > >>> appropriate for v4.17, so I moved it to my for-linus branch. > >>> > >> > >> I agree. It causes boot issues on some AMD Opteron machines. It should > >> probably be back-ported too. > > > > We started enabling extended tags with 60db3a4d8cc9 ("PCI: Enable PCIe > > Extended Tags if supported"), which appeared in v4.11. > > > > So I added these stable tags: > > > > CC: stable@vger.kernel.org # v4.11: 62ce94a7a5a5 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken > > CC: stable@vger.kernel.org # v4.11 > > > > I'm not sure I'm using the stable request correctly, but my intent is: > > > > - 62ce94a7a5a5 appeared in v4.14, so cherry-pick 62ce94a7a5a5 to > > v4.11 through v4.13 > > - cherry-pick *this* patch on top of 62ce94a7a5a5 to v4.11 and later Bjorn is correct here, why are you dragging me into this? greg k-h
On 4/11/2018 10:08 AM, Greg Kroah-Hartman wrote: >>> So I added these stable tags: >>> >>> CC: stable@vger.kernel.org # v4.11: 62ce94a7a5a5 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken >>> CC: stable@vger.kernel.org # v4.11 >>> >>> I'm not sure I'm using the stable request correctly, but my intent is: Asking if we placed the tags correctly. Sounds like we did. >>> >>> - 62ce94a7a5a5 appeared in v4.14, so cherry-pick 62ce94a7a5a5 to >>> v4.11 through v4.13 >>> - cherry-pick *this* patch on top of 62ce94a7a5a5 to v4.11 and later > Bjorn is correct here, why are you dragging me into this? Thanks
On Wed, Apr 11, 2018 at 10:13:11AM -0400, Sinan Kaya wrote: > On 4/11/2018 10:08 AM, Greg Kroah-Hartman wrote: > >>> So I added these stable tags: > >>> > >>> CC: stable@vger.kernel.org # v4.11: 62ce94a7a5a5 PCI: Mark Broadcom HT2100 Root Port Extended Tags as broken > >>> CC: stable@vger.kernel.org # v4.11 > >>> > >>> I'm not sure I'm using the stable request correctly, but my intent is: > > Asking if we placed the tags correctly. Sounds like we did. > > >>> > >>> - 62ce94a7a5a5 appeared in v4.14, so cherry-pick 62ce94a7a5a5 to > >>> v4.11 through v4.13 > >>> - cherry-pick *this* patch on top of 62ce94a7a5a5 to v4.11 and later > > Bjorn is correct here, why are you dragging me into this? > > Thanks Next time explicitly ask the question, don't expect someone to rummage through an email to determine what you are thinking. You are being lazy by just adding someone else to an email thread like this, be considerate and take the time to explain yourself when asking someone else to do work. greg k-h
On 4/11/2018 10:19 AM, Greg Kroah-Hartman wrote: > Next time explicitly ask the question, don't expect someone to rummage > through an email to determine what you are thinking. You are being lazy > by just adding someone else to an email thread like this, be considerate > and take the time to explain yourself when asking someone else to do > work. Sorry, I should have stripped irrelevant pieces like you said.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 8b14bd3..f012742 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4813,9 +4813,13 @@ static void quirk_no_ext_tags(struct pci_dev *pdev) pci_walk_bus(bridge->bus, pci_configure_extended_tags, NULL); } +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0132, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0140, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0141, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0142, quirk_no_ext_tags); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0144, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags); #ifdef CONFIG_PCI_ATS /*
Per PCIe r3.1, sec 2.2.6.2 and 7.8.4, a Requester may not use 8-bit Tags unless its Extended Tag Field Enable is set, but all Receivers/Completers must handle 8-bit Tags correctly regardless of their Extended Tag Field Enable. Some devices do not handle 8-bit Tags as Completers, so add a quirk for them. If we find such a device, we disable Extended Tags for the entire hierarchy to make peer-to-peer DMA possible. The Broadcom HT1100/HT2000/HT2100 seems to have issues with handling 8-bit tags. Mark it as broken. Fixes: 60db3a4d8cc9 ("PCI: Enable PCIe Extended Tags if supported") Link: https://bugzilla.kernel.org/show_bug.cgi?id=196197 Signed-off-by: Sinan Kaya <okaya@codeaurora.org> --- drivers/pci/quirks.c | 4 ++++ 1 file changed, 4 insertions(+)