Thread (12 messages) 12 messages, 2 authors, 2024-06-12

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

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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help