mbox series

[v3,wireless-drivers,0/2] fix mt76x2e hangs on U7612E mini-pcie

Message ID cover.1572204430.git.lorenzo@kernel.org (mailing list archive)
Headers show
Series fix mt76x2e hangs on U7612E mini-pcie | expand

Message

Lorenzo Bianconi Oct. 27, 2019, 7:53 p.m. UTC
Various mt76x2e issues have been reported on U7612E mini-pcie card [1].
On U7612E-H1 PCIE_ASPM causes continuous mcu hangs and instability and
so patch 1/2 disable it by default.
Moreover mt76 does not properly unmap dma buffers for non-linear skbs.
This issue may result in hw hangs if the system relies on IOMMU.
Patch 2/2 fix the problem properly unmapping data fragments on
non-linear skbs. 

Changes since v2:
- fix compilation error if PCI support is not compiled

Changes since v1:
- simplify buf0 unmap condition
- use IS_ENABLED(CONFIG_PCIEASPM) instead of ifdef CONFIG_PCIEASPM
- check pci_disable_link_state return value

[1]: https://lore.kernel.org/netdev/deaafa7a3e9ea2111ebb5106430849c6@natalenko.name/


Lorenzo Bianconi (2):
  mt76: mt76x2e: disable pcie_aspm by default
  mt76: dma: fix buffer unmap with non-linear skbs

 drivers/net/wireless/mediatek/mt76/Makefile   |  2 +
 drivers/net/wireless/mediatek/mt76/dma.c      |  6 ++-
 drivers/net/wireless/mediatek/mt76/mt76.h     |  6 ++-
 .../net/wireless/mediatek/mt76/mt76x2/pci.c   |  2 +
 drivers/net/wireless/mediatek/mt76/pci.c      | 46 +++++++++++++++++++
 5 files changed, 58 insertions(+), 4 deletions(-)
 create mode 100644 drivers/net/wireless/mediatek/mt76/pci.c

Comments

Oleksandr Natalenko Oct. 28, 2019, 7:17 a.m. UTC | #1
On 27.10.2019 20:53, Lorenzo Bianconi wrote:
> Various mt76x2e issues have been reported on U7612E mini-pcie card [1].
> On U7612E-H1 PCIE_ASPM causes continuous mcu hangs and instability and
> so patch 1/2 disable it by default.
> Moreover mt76 does not properly unmap dma buffers for non-linear skbs.
> This issue may result in hw hangs if the system relies on IOMMU.
> Patch 2/2 fix the problem properly unmapping data fragments on
> non-linear skbs.
> 
> Changes since v2:
> - fix compilation error if PCI support is not compiled
> 
> Changes since v1:
> - simplify buf0 unmap condition
> - use IS_ENABLED(CONFIG_PCIEASPM) instead of ifdef CONFIG_PCIEASPM
> - check pci_disable_link_state return value
> 
> [1]:
> https://lore.kernel.org/netdev/deaafa7a3e9ea2111ebb5106430849c6@natalenko.name/
> 
> 
> Lorenzo Bianconi (2):
>   mt76: mt76x2e: disable pcie_aspm by default
>   mt76: dma: fix buffer unmap with non-linear skbs
> 
>  drivers/net/wireless/mediatek/mt76/Makefile   |  2 +
>  drivers/net/wireless/mediatek/mt76/dma.c      |  6 ++-
>  drivers/net/wireless/mediatek/mt76/mt76.h     |  6 ++-
>  .../net/wireless/mediatek/mt76/mt76x2/pci.c   |  2 +
>  drivers/net/wireless/mediatek/mt76/pci.c      | 46 +++++++++++++++++++
>  5 files changed, 58 insertions(+), 4 deletions(-)
>  create mode 100644 drivers/net/wireless/mediatek/mt76/pci.c

So, works fine for me. Checked with 5.3 and additional include fix I've 
mentioned previously.

With that, for the whole series feel free to add:

Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>

Thank you.