On 2/28/2025 6:32 PM, Johannes Berg wrote: > On Wed, 2025-01-29 at 21:22 +0530, Roopni Devanathan wrote: >> >> + result = rdev_set_wiphy_params(rdev, radio_id, changed); >> + if (result) { >> + rdev->wiphy.retry_short = old_retry_short; >> + rdev->wiphy.retry_long = old_retry_long; >> + rdev->wiphy.frag_threshold = old_frag_threshold; >> + rdev->wiphy.rts_threshold = old_rts_threshold; >> + rdev->wiphy.coverage_class = old_coverage_class; >> + rdev->wiphy.txq_limit = old_txq_limit; >> + rdev->wiphy.txq_memory_limit = old_txq_memory_limit; >> + rdev->wiphy.txq_quantum = old_txq_quantum; >> + return result; >> + } >> + >> + for (i = 0 ; i < rdev->wiphy.n_radio; i++) { >> + rdev->wiphy.radio_cfg[i].rts_threshold = >> + rdev->wiphy.rts_threshold; >> + } >> > > The order here also seems really odd? That basically means the driver > now needs to propagate it to all the radios, but you still have > different per-radio values at that point, that seems bad. You also > didn't even document any such assumptions. The idea is to maintain different variables for global RTS threshold and per-radio RTS threshold. Each time RTS threshold of a radio is getting changed, we are trying to update the RTS threshold for that radio alone. If global RTS threshold(rdev->wiphy.rts_threshold) is updated, we are trying to change the RTS threshold of all radios. This is the reason we are assigning same value - rts_threshold, to all radios. I'll document this assumption to make it clear, thanks for pointing out. > > johannes