• Kalle Valo's avatar
    wifi: ath11k: use RCU when accessing struct inet6_dev::ac_list · feafe59c
    Kalle Valo authored
    Commit c3718936 ("ipv6: anycast: complete RCU handling of struct
    ifacaddr6") converted struct inet6_dev::ac_list to use RCU but missed that
    ath11k also accesses this list. Now sparse warns:
    
    drivers/net/wireless/ath/ath11k/mac.c:9145:21: warning: incorrect type in assignment (different address spaces)
    drivers/net/wireless/ath/ath11k/mac.c:9145:21:    expected struct ifacaddr6 *ifaca6
    drivers/net/wireless/ath/ath11k/mac.c:9145:21:    got struct ifacaddr6 [noderef] __rcu *ac_list
    drivers/net/wireless/ath/ath11k/mac.c:9145:53: warning: incorrect type in assignment (different address spaces)
    drivers/net/wireless/ath/ath11k/mac.c:9145:53:    expected struct ifacaddr6 *ifaca6
    drivers/net/wireless/ath/ath11k/mac.c:9145:53:    got struct ifacaddr6 [noderef] __rcu *aca_next
    
    Fix it by using rtnl_dereference(). Also add a note that read_lock_bh() calls
    rcu_read_lock() which I was not aware of.
    
    Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37
    
    Fixes: c3718936 ("ipv6: anycast: complete RCU handling of struct ifacaddr6")
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Acked-by: default avatarJeff Johnson <quic_jjohnson@quicinc.com>
    Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
    Link: https://msgid.link/20240411165516.4070649-2-kvalo@kernel.org
    feafe59c
mac.c 278 KB