mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 05:44:45 +01:00
ipv4: igmp: annotate data-races around idev->mr_maxdelay
idev->mr_maxdelay is read and written locklessly, add READ_ONCE()/WRITE_ONCE() annotations. While we are at it, make this field an u32. Signed-off-by: Eric Dumazet <edumazet@google.com> Reviewed-by: David Ahern <dsahern@kernel.org> Link: https://patch.msgid.link/20260122172247.2429403-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
0541302227
commit
e4faaf65a7
2 changed files with 3 additions and 3 deletions
|
|
@ -38,11 +38,11 @@ struct in_device {
|
|||
struct ip_mc_list *mc_tomb;
|
||||
unsigned long mr_v1_seen;
|
||||
unsigned long mr_v2_seen;
|
||||
unsigned long mr_maxdelay;
|
||||
unsigned long mr_qi; /* Query Interval */
|
||||
unsigned long mr_qri; /* Query Response Interval */
|
||||
unsigned char mr_qrv; /* Query Robustness Variable */
|
||||
unsigned char mr_gq_running;
|
||||
u32 mr_maxdelay;
|
||||
u32 mr_ifc_count;
|
||||
struct timer_list mr_gq_timer; /* general query timer */
|
||||
struct timer_list mr_ifc_timer; /* interface change timer */
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ static void igmp_start_timer(struct ip_mc_list *im, int max_delay)
|
|||
|
||||
static void igmp_gq_start_timer(struct in_device *in_dev)
|
||||
{
|
||||
int tv = get_random_u32_below(in_dev->mr_maxdelay);
|
||||
int tv = get_random_u32_below(READ_ONCE(in_dev->mr_maxdelay));
|
||||
unsigned long exp = jiffies + tv + 2;
|
||||
|
||||
if (in_dev->mr_gq_running &&
|
||||
|
|
@ -1009,7 +1009,7 @@ static bool igmp_heard_query(struct in_device *in_dev, struct sk_buff *skb,
|
|||
max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE);
|
||||
if (!max_delay)
|
||||
max_delay = 1; /* can't mod w/ 0 */
|
||||
in_dev->mr_maxdelay = max_delay;
|
||||
WRITE_ONCE(in_dev->mr_maxdelay, max_delay);
|
||||
|
||||
/* RFC3376, 4.1.6. QRV and 4.1.7. QQIC, when the most recently
|
||||
* received value was zero, use the default or statically
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue