]> 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:28:50 +0000 (16:28 +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 a0376a6787b8d0c8466d552f800f45686096c277..808fb6747a7f78381b50ca5627d8479540129d20 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 278ddc713fdc258de3c72c41f4a97fc7eacaf541..7b1452822431904b53ad92605b0478c54a4d8297 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);