wifi: ath9k: Remove error checks when creating debugfs entries
authorToke Høiland-Jørgensen <toke@redhat.com>
Mon, 5 Aug 2024 11:02:22 +0000 (13:02 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 7 Aug 2024 08:09:11 +0000 (11:09 +0300)
We should not be checking the return values from debugfs creation at all: the
debugfs functions are designed to handle errors of previously called functions
and just transparently abort the creation of debugfs entries when debugfs is
disabled. If we check the return value and abort driver initialisation, we break
the driver if debugfs is disabled (such as when booting with debugfs=off).

Earlier versions of ath9k accidentally did the right thing by checking the
return value, but only for NULL, not for IS_ERR(). This was "fixed" by the two
commits referenced below, breaking ath9k with debugfs=off starting from the 6.6
kernel (as reported in the Bugzilla linked below).

Restore functionality by just getting rid of the return value check entirely.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=219122
Fixes: 1e4134610d93 ("wifi: ath9k: use IS_ERR() with debugfs_create_dir()")
Fixes: 6edb4ba6fb5b ("wifi: ath9k: fix parameter check in ath9k_init_debug()")
Reported-by: Daniel Tobias <dan.g.tob@gmail.com>
Tested-by: Daniel Tobias <dan.g.tob@gmail.com>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://patch.msgid.link/20240805110225.19690-1-toke@toke.dk
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/htc_drv_debug.c

index 886a102e5b025823ad4312adce41b2b9b6401d57..51abc470125b3cc4e773f5272e2394c8f790a32e 100644 (file)
@@ -1380,8 +1380,6 @@ int ath9k_init_debug(struct ath_hw *ah)
 
        sc->debug.debugfs_phy = debugfs_create_dir("ath9k",
                                                   sc->hw->wiphy->debugfsdir);
-       if (IS_ERR(sc->debug.debugfs_phy))
-               return -ENOMEM;
 
 #ifdef CONFIG_ATH_DEBUG
        debugfs_create_file("debug", 0600, sc->debug.debugfs_phy,
index f7c6d9bc931196195cadb7ee0260b5caee0ad797..9437d69877cc564ee5ff7cf170477cc7b4bee85d 100644 (file)
@@ -486,8 +486,6 @@ int ath9k_htc_init_debug(struct ath_hw *ah)
 
        priv->debug.debugfs_phy = debugfs_create_dir(KBUILD_MODNAME,
                                             priv->hw->wiphy->debugfsdir);
-       if (IS_ERR(priv->debug.debugfs_phy))
-               return -ENOMEM;
 
        ath9k_cmn_spectral_init_debug(&priv->spec_priv, priv->debug.debugfs_phy);