]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:37:16 +0000 (16:37 +0200)
[ Upstream commit f6ffe7f0184792c2f99aca6ae5b916683973d7d3 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/htc_drv_debug.c

index d84e3ee7b5d902cdfbdc0134ff635b12109f2029..bf3da631c69fdac820696022fec3da5e90ff66ad 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);