net: rfkill: Correct return value in invalid parameter case
authorZijun Hu <quic_zijuhu@quicinc.com>
Thu, 13 Jun 2024 14:04:36 +0000 (22:04 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 26 Jun 2024 08:49:01 +0000 (10:49 +0200)
rfkill_set_hw_state_reason() does not return current combined
block state when its parameter @reason is invalid, that is
wrong according to its comments, fix it by correcting the
value returned.

Also reformat the WARN while at it.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://patch.msgid.link/1718287476-28227-1-git-send-email-quic_zijuhu@quicinc.com
[edit/reformat commit message, remove unneeded variable]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/rfkill/core.c

index c3feb4f49d09ca375f718267adf9e31ab1216b3a..7a5367628c05b9ef8f87d0d81c7cb1d39e053878 100644 (file)
@@ -546,10 +546,10 @@ bool rfkill_set_hw_state_reason(struct rfkill *rfkill,
 
        BUG_ON(!rfkill);
 
-       if (WARN(reason &
-           ~(RFKILL_HARD_BLOCK_SIGNAL | RFKILL_HARD_BLOCK_NOT_OWNER),
-           "hw_state reason not supported: 0x%lx", reason))
-               return blocked;
+       if (WARN(reason & ~(RFKILL_HARD_BLOCK_SIGNAL |
+                           RFKILL_HARD_BLOCK_NOT_OWNER),
+                "hw_state reason not supported: 0x%lx", reason))
+               return rfkill_blocked(rfkill);
 
        spin_lock_irqsave(&rfkill->lock, flags);
        prev = !!(rfkill->hard_block_reasons & reason);