The sscanf() function doesn't return negatives, it returns the number of the number of input items successfully matched. Fix the error checking to avoid some uninitialized variable bugs. Fixes: e5bf75dc46e1 ("wifi: iwlwifi: mvm: add a debugfs for (un)blocking EMLSR") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c index 17c97dfbc62a..88e78c798017 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c @@ -762,11 +762,9 @@ static ssize_t iwl_dbgfs_esr_disable_reason_write(struct ieee80211_vif *vif, struct iwl_mvm *mvm = mvmvif->mvm; u32 reason; u8 block; - int ret; - ret = sscanf(buf, "%u %hhu", &reason, &block); - if (ret < 0) - return ret; + if (sscanf(buf, "%u %hhu", &reason, &block) != 2) + return -EINVAL; if (hweight16(reason) != 1 || !(reason & IWL_MVM_BLOCK_ESR_REASONS)) return -EINVAL; -- 2.43.0