2014-08-25 10:23:01

by Michal Kazior

[permalink] [raw]
Subject: [PATCH] ath10k: fix fw crash dumping

Recent crash dump patches introduced a regression.
If debugfs was disabled upon crash user could only
see the following:

[ 793.880000] ath10k: firmware crashed! (uuid n/a)
[ 793.890000] ath10k: qca988x hw2.0 (0x4100016c, 0x043202ff) fw 10.1.467.2-1 api 2 htt 2.1
[ 793.890000] ath10k: debug 0 debugfs 0 tracing 0 dfs 1

The report was missing register dump. Fix it by
printing registers regardless if crash_data is
present or not.

Signed-off-by: Michal Kazior <[email protected]>
---
Note: This is based on my logging patch.

drivers/net/wireless/ath/ath10k/pci.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c
index 83ef6ef..144eb8a3 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -916,6 +916,9 @@ static void ath10k_pci_dump_registers(struct ath10k *ar,
reg_dump_values[i + 2],
reg_dump_values[i + 3]);

+ if (!crash_data)
+ return;
+
/* crash_data is in little endian */
for (i = 0; i < REG_DUMP_COUNT_QCA988X; i++)
crash_data->registers[i] = cpu_to_le32(reg_dump_values[i]);
@@ -937,13 +940,8 @@ static void ath10k_pci_fw_crashed_dump(struct ath10k *ar)

ath10k_err(ar, "firmware crashed! (uuid %s)\n", uuid);
ath10k_print_driver_info(ar);
-
- if (!crash_data)
- goto exit;
-
ath10k_pci_dump_registers(ar, crash_data);

-exit:
spin_unlock_bh(&ar->data_lock);

queue_work(ar->workqueue, &ar->restart_work);
--
1.8.5.3



2014-08-26 16:11:45

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] ath10k: fix fw crash dumping

Michal Kazior <[email protected]> writes:

> Recent crash dump patches introduced a regression.
> If debugfs was disabled upon crash user could only
> see the following:
>
> [ 793.880000] ath10k: firmware crashed! (uuid n/a)
> [ 793.890000] ath10k: qca988x hw2.0 (0x4100016c, 0x043202ff) fw 10.1.467.2-1 api 2 htt 2.1
> [ 793.890000] ath10k: debug 0 debugfs 0 tracing 0 dfs 1
>
> The report was missing register dump. Fix it by
> printing registers regardless if crash_data is
> present or not.
>
> Signed-off-by: Michal Kazior <[email protected]>

Thanks, applied.

--
Kalle Valo