2015-12-29 22:21:10

by Jordan Hargrave

[permalink] [raw]
Subject: [PATCH] Limit VPD length on Atheros wifi cards

Attempt to read VPD on these cards causes kernel hang or delay

Signed-off-by: Jordan Hargrave <[email protected]>
---
drivers/pci/quirks.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index e6376f6..a72667f 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -2161,6 +2161,16 @@ static void quirk_brcm_570x_limit_vpd(struct pci_dev *dev)
}
}

+static void quirk_atheros_vpd(struct pci_dev *dev)
+{
+ /* Atheros WiFi cards hang when reading VPD */
+ if (dev->vpd)
+ dev->vpd->len = 0;
+}
+
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, quirk_atheros_vpd);
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, PCI_ANY_ID, quirk_atheros_vpd);
+
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
PCI_DEVICE_ID_NX2_5706,
quirk_brcm_570x_limit_vpd);
--
1.7.1