diff mbox series

iwlwifi: avoid crash on unsupported debug collection

Message ID 20210219133506.ecabe285bc7d.I73d230d555c595fa2d9bf284f80078729fe18aa4@changeid (mailing list archive)
State Accepted
Commit 4538c5ed0f7e892f1b643472e48146757d1e60c5
Delegated to: Kalle Valo
Headers show
Series iwlwifi: avoid crash on unsupported debug collection | expand

Commit Message

Johannes Berg Feb. 19, 2021, 12:35 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

If the opmode doesn't support debug collection (DVM) then don't
crash, but just skip the callback.

Fixes: d01293154c0a ("iwlwifi: dbg: add op_mode callback for collecting debug data.")
Reported-by: Andy Lavr <andy.lavr@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h | 2 ++
 1 file changed, 2 insertions(+)

Comments

Kalle Valo Feb. 19, 2021, 2:50 p.m. UTC | #1
Johannes Berg <johannes@sipsolutions.net> writes:

> From: Johannes Berg <johannes.berg@intel.com>
>
> If the opmode doesn't support debug collection (DVM) then don't
> crash, but just skip the callback.
>
> Fixes: d01293154c0a ("iwlwifi: dbg: add op_mode callback for collecting debug data.")
> Reported-by: Andy Lavr <andy.lavr@gmail.com>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Should I take this to wireless-drivers?
Luca Coelho Feb. 19, 2021, 7:58 p.m. UTC | #2
On Fri, 2021-02-19 at 16:50 +0200, Kalle Valo wrote:
> Johannes Berg <johannes@sipsolutions.net> writes:
> 
> > From: Johannes Berg <johannes.berg@intel.com>
> > 
> > If the opmode doesn't support debug collection (DVM) then don't
> > crash, but just skip the callback.
> > 
> > Fixes: d01293154c0a ("iwlwifi: dbg: add op_mode callback for collecting debug data.")
> > Reported-by: Andy Lavr <andy.lavr@gmail.com>
> > Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> 
> Should I take this to wireless-drivers?

Yes, please take this to wireless-drivers.  As Johannes said, this
breaks all DVM (older) devices.

--
Luca.
Kalle Valo Feb. 22, 2021, 7:23 a.m. UTC | #3
Johannes Berg <johannes@sipsolutions.net> wrote:

> From: Johannes Berg <johannes.berg@intel.com>
> 
> If the opmode doesn't support debug collection (DVM) then don't
> crash, but just skip the callback.
> 
> Fixes: d01293154c0a ("iwlwifi: dbg: add op_mode callback for collecting debug data.")
> Reported-by: Andy Lavr <andy.lavr@gmail.com>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Patch applied to wireless-drivers.git, thanks.

4538c5ed0f7e iwlwifi: avoid crash on unsupported debug collection
Sedat Dilek Feb. 25, 2021, 10:43 a.m. UTC | #4
On Mon, Feb 22, 2021 at 8:24 AM Kalle Valo <kvalo@codeaurora.org> wrote:
>
> Johannes Berg <johannes@sipsolutions.net> wrote:
>
> > From: Johannes Berg <johannes.berg@intel.com>
> >
> > If the opmode doesn't support debug collection (DVM) then don't
> > crash, but just skip the callback.
> >
> > Fixes: d01293154c0a ("iwlwifi: dbg: add op_mode callback for collecting debug data.")
> > Reported-by: Andy Lavr <andy.lavr@gmail.com>
> > Signed-off-by: Johannes Berg <johannes.berg@intel.com>
>
> Patch applied to wireless-drivers.git, thanks.
>
> 4538c5ed0f7e iwlwifi: avoid crash on unsupported debug collection
>

Thanks for the patch.

I have seen a call-trace with my first build of Linux v5.11-10201-gc03c21ba6f4e.

After application - all good.

[ dmesg ]

[   44.744486] iwlwifi 0000:01:00.0: Detected Intel(R) Centrino(R)
Advanced-N 6230 AGN, REV=0xB0

[ lsmod ]

$ sudo lsmod | grep iwl | sort
cfg80211             1200128  3 iwldvm,iwlwifi,mac80211
iwldvm                176128  0
iwlwifi               348160  1 iwldvm
mac80211             1167360  1 iwldvm

- Sedat -
diff mbox series

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h b/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h
index 868da7e79a45..e6d2e0994317 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h
@@ -205,6 +205,8 @@  static inline void iwl_op_mode_time_point(struct iwl_op_mode *op_mode,
 					  enum iwl_fw_ini_time_point tp_id,
 					  union iwl_dbg_tlv_tp_data *tp_data)
 {
+	if (!op_mode || !op_mode->ops || !op_mode->ops->time_point)
+		return;
 	op_mode->ops->time_point(op_mode, tp_id, tp_data);
 }