]> 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>
Thu, 17 Oct 2024 13:10:43 +0000 (15:10 +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 4badc4c453f3aac7e7c07cefba4f5b74de7a3404..f6f63923966afe602f44d9d63b5aa7b1582a44ac 100644 (file)
@@ -1371,8 +1371,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 e79bbcd3279aff7cb24bf45de5d1b63d6e6e3cf4..81332086e28997d93de4cf158ff114c29f9ee433 100644 (file)
@@ -491,8 +491,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);