diff options
author | Zong-Zhe Yang <kevin_yang@realtek.com> | 2023-01-19 14:35:28 +0800 |
---|---|---|
committer | Kalle Valo <kvalo@kernel.org> | 2023-02-13 19:05:27 +0200 |
commit | c074da21dd346e0cfef5d08b0715078d7aea7f8d (patch) | |
tree | b75e54471d5a3c3705f28b72866fbcad467214bd /drivers/net/wireless/realtek/rtw89/debug.c | |
parent | 76f478a34dafcee28165022b2f73d0ee1f0f47e5 (diff) | |
download | linux-c074da21dd346e0cfef5d08b0715078d7aea7f8d.tar.gz linux-c074da21dd346e0cfef5d08b0715078d7aea7f8d.tar.bz2 linux-c074da21dd346e0cfef5d08b0715078d7aea7f8d.zip |
wifi: rtw89: debug: avoid invalid access on RTW89_DBG_SEL_MAC_30
Only 8852C chip has valid pages on RTW89_DBG_SEL_MAC_30. To other chips,
this section is an address hole. It will lead to crash if trying to access
this section on chips except for 8852C. So, we avoid that.
Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230119063529.61563-2-pkshih@realtek.com
Diffstat (limited to 'drivers/net/wireless/realtek/rtw89/debug.c')
-rw-r--r-- | drivers/net/wireless/realtek/rtw89/debug.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/debug.c b/drivers/net/wireless/realtek/rtw89/debug.c index 8297e35bfa52..6730eea930ec 100644 --- a/drivers/net/wireless/realtek/rtw89/debug.c +++ b/drivers/net/wireless/realtek/rtw89/debug.c @@ -615,6 +615,7 @@ rtw89_debug_priv_mac_reg_dump_select(struct file *filp, struct seq_file *m = (struct seq_file *)filp->private_data; struct rtw89_debugfs_priv *debugfs_priv = m->private; struct rtw89_dev *rtwdev = debugfs_priv->rtwdev; + const struct rtw89_chip_info *chip = rtwdev->chip; char buf[32]; size_t buf_size; int sel; @@ -634,6 +635,12 @@ rtw89_debug_priv_mac_reg_dump_select(struct file *filp, return -EINVAL; } + if (sel == RTW89_DBG_SEL_MAC_30 && chip->chip_id != RTL8852C) { + rtw89_info(rtwdev, "sel %d is address hole on chip %d\n", sel, + chip->chip_id); + return -EINVAL; + } + debugfs_priv->cb_data = sel; rtw89_info(rtwdev, "select mac page dump %d\n", debugfs_priv->cb_data); |