Re: [PATCH v1 2/2] net: rfkill: Fix a logic error within rfkill_set_hw_state_reason()
From: quic_zijuhu <hidden>
Date: 2024-06-12 09:44:01
Also in:
linux-wireless
From: quic_zijuhu <hidden>
Date: 2024-06-12 09:44:01
Also in:
linux-wireless
On 6/12/2024 4:18 PM, Johannes Berg wrote:
On Fri, 2024-06-07 at 22:40 +0800, Zijun Hu wrote:quoted
Kernel API rfkill_set_hw_state_reason() wrongly gets previous block state by using its parameter @reason as reason mask.Using reason as a mask is perfectly valid. And checking that the bit changed also seems valid.
i don't think so as explained below. let us assume @rfkill->hard_block_reasons has value RFKILL_HARD_BLOCK_SIGNAL which means block state before __rfkill_set_sw_state(..., true, RFKILL_HARD_BLOCK_NOT_OWNER) is invoked. @prev should mean previous block state, @prev will have false based on current logic, it is wrong since rfkill have block state before the call.
We might want to not schedule the worker if it's not needed, but that's a different issue, I don't see a real bug here?
the worker will be unneccessarily scheduled for above example based on current logic even if the rfkill always stay in block state.
johannes