wil6210: remove HALP voting in debugfs ioblob
authorMaya Erez <qca_merez@qca.qualcomm.com>
Wed, 5 Apr 2017 11:58:12 +0000 (14:58 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 13 Apr 2017 12:46:17 +0000 (15:46 +0300)
debugfs ioblob function is called by the FW logs scripts
to copy the FW logs via PCIe.
As the FW logs collection is done in parallel to the operational
11AD actions, the HALP voting can take place during 11AD reset flow
and other sensitive scenarios.
To prevent that, remove HALP voting from the ioblob function.

Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/debugfs.c
drivers/net/wireless/ath/wil6210/main.c
drivers/net/wireless/ath/wil6210/wil6210.h

index 3e8cdf12fedad5251a36aaedecf7470f80ef4d7e..5648ebbd0e1663720c2fd398d7e29fc623f9832b 100644 (file)
@@ -524,9 +524,8 @@ static ssize_t wil_read_file_ioblob(struct file *file, char __user *user_buf,
        if (!buf)
                return -ENOMEM;
 
-       wil_memcpy_fromio_halp_vote(wil_blob->wil, buf,
-                                   (const volatile void __iomem *)
-                                   wil_blob->blob.data + pos, count);
+       wil_memcpy_fromio_32(buf, (const void __iomem *)
+                            wil_blob->blob.data + pos, count);
 
        ret = copy_to_user(user_buf, buf, count);
        kfree(buf);
index 439d27c3aeae04f3da43279e588800f66eb9f142..32086792dfc30bb7f23a1cc34e69ed7600965fa8 100644 (file)
@@ -141,14 +141,6 @@ void wil_memcpy_fromio_32(void *dst, const volatile void __iomem *src,
        }
 }
 
-void wil_memcpy_fromio_halp_vote(struct wil6210_priv *wil, void *dst,
-                                const volatile void __iomem *src, size_t count)
-{
-       wil_halp_vote(wil);
-       wil_memcpy_fromio_32(dst, src, count);
-       wil_halp_unvote(wil);
-}
-
 void wil_memcpy_toio_32(volatile void __iomem *dst, const void *src,
                        size_t count)
 {
@@ -167,15 +159,6 @@ void wil_memcpy_toio_32(volatile void __iomem *dst, const void *src,
        }
 }
 
-void wil_memcpy_toio_halp_vote(struct wil6210_priv *wil,
-                              volatile void __iomem *dst,
-                              const void *src, size_t count)
-{
-       wil_halp_vote(wil);
-       wil_memcpy_toio_32(dst, src, count);
-       wil_halp_unvote(wil);
-}
-
 static void wil_disconnect_cid(struct wil6210_priv *wil, int cid,
                               u16 reason_code, bool from_event)
 __acquires(&sta->tid_rx_lock) __releases(&sta->tid_rx_lock)
index 2af4a643bd0319fd825f81bfdf485b60f29a0b06..ec646d7df522f045a9c470dfb11a616ebf6aeb5f 100644 (file)
@@ -803,12 +803,6 @@ void wil_memcpy_fromio_32(void *dst, const volatile void __iomem *src,
                          size_t count);
 void wil_memcpy_toio_32(volatile void __iomem *dst, const void *src,
                        size_t count);
-void wil_memcpy_fromio_halp_vote(struct wil6210_priv *wil, void *dst,
-                                const volatile void __iomem *src,
-                                size_t count);
-void wil_memcpy_toio_halp_vote(struct wil6210_priv *wil,
-                              volatile void __iomem *dst,
-                              const void *src, size_t count);
 
 void *wil_if_alloc(struct device *dev);
 void wil_if_free(struct wil6210_priv *wil);