Skip to content

Commit 8659c73

Browse files
edumazetNipaLocal
authored andcommitted
net: annotate writes on dev->mtu from ndo_change_mtu()
Simon reported that ndo_change_mtu() methods were never updated to use WRITE_ONCE(dev->mtu, new_mtu) as hinted in commit 501a90c ("inet: protect against too small mtu values.") We read dev->mtu without holding RTNL in many places, with READ_ONCE() annotations. It is time to take care of ndo_change_mtu() methods to use corresponding WRITE_ONCE() Signed-off-by: Eric Dumazet <[email protected]> Reported-by: Simon Horman <[email protected]> Closes: https://lore.kernel.org/netdev/[email protected]/ Signed-off-by: NipaLocal <nipa@local>
1 parent a016ea5 commit 8659c73

File tree

153 files changed

+174
-173
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+174
-173
lines changed

drivers/infiniband/ulp/ipoib/ipoib_main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu)
238238
ipoib_warn(priv, "mtu > %d will cause multicast packet drops.\n",
239239
priv->mcast_mtu);
240240

241-
dev->mtu = new_mtu;
241+
WRITE_ONCE(dev->mtu, new_mtu);
242242
return 0;
243243
}
244244

@@ -265,7 +265,7 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu)
265265
if (carrier_status)
266266
netif_carrier_on(dev);
267267
} else {
268-
dev->mtu = new_mtu;
268+
WRITE_ONCE(dev->mtu, new_mtu);
269269
}
270270

271271
return ret;

drivers/net/bonding/bond_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4710,7 +4710,7 @@ static int bond_change_mtu(struct net_device *bond_dev, int new_mtu)
47104710
}
47114711
}
47124712

4713-
bond_dev->mtu = new_mtu;
4713+
WRITE_ONCE(bond_dev->mtu, new_mtu);
47144714

47154715
return 0;
47164716

drivers/net/can/dev/dev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ int can_change_mtu(struct net_device *dev, int new_mtu)
338338
return -EINVAL;
339339
}
340340

341-
dev->mtu = new_mtu;
341+
WRITE_ONCE(dev->mtu, new_mtu);
342342
return 0;
343343
}
344344
EXPORT_SYMBOL_GPL(can_change_mtu);

drivers/net/can/vcan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ static int vcan_change_mtu(struct net_device *dev, int new_mtu)
140140
!can_is_canxl_dev_mtu(new_mtu))
141141
return -EINVAL;
142142

143-
dev->mtu = new_mtu;
143+
WRITE_ONCE(dev->mtu, new_mtu);
144144
return 0;
145145
}
146146

drivers/net/can/vxcan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ static int vxcan_change_mtu(struct net_device *dev, int new_mtu)
135135
!can_is_canxl_dev_mtu(new_mtu))
136136
return -EINVAL;
137137

138-
dev->mtu = new_mtu;
138+
WRITE_ONCE(dev->mtu, new_mtu);
139139
return 0;
140140
}
141141

drivers/net/ethernet/agere/et131x.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3852,7 +3852,7 @@ static int et131x_change_mtu(struct net_device *netdev, int new_mtu)
38523852

38533853
et131x_disable_txrx(netdev);
38543854

3855-
netdev->mtu = new_mtu;
3855+
WRITE_ONCE(netdev->mtu, new_mtu);
38563856

38573857
et131x_adapter_memory_free(adapter);
38583858

drivers/net/ethernet/alteon/acenic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2539,7 +2539,7 @@ static int ace_change_mtu(struct net_device *dev, int new_mtu)
25392539
struct ace_regs __iomem *regs = ap->regs;
25402540

25412541
writel(new_mtu + ETH_HLEN + 4, &regs->IfMtu);
2542-
dev->mtu = new_mtu;
2542+
WRITE_ONCE(dev->mtu, new_mtu);
25432543

25442544
if (new_mtu > ACE_STD_MTU) {
25452545
if (!(ap->jumbo)) {

drivers/net/ethernet/altera/altera_tse_main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -788,7 +788,7 @@ static int tse_change_mtu(struct net_device *dev, int new_mtu)
788788
return -EBUSY;
789789
}
790790

791-
dev->mtu = new_mtu;
791+
WRITE_ONCE(dev->mtu, new_mtu);
792792
netdev_update_features(dev);
793793

794794
return 0;

drivers/net/ethernet/amazon/ena/ena_netdev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ static int ena_change_mtu(struct net_device *dev, int new_mtu)
104104
if (!ret) {
105105
netif_dbg(adapter, drv, dev, "Set MTU to %d\n", new_mtu);
106106
update_rx_ring_mtu(adapter, new_mtu);
107-
dev->mtu = new_mtu;
107+
WRITE_ONCE(dev->mtu, new_mtu);
108108
} else {
109109
netif_err(adapter, drv, dev, "Failed to set MTU to %d\n",
110110
new_mtu);

drivers/net/ethernet/amd/amd8111e.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,9 +1520,9 @@ static int amd8111e_change_mtu(struct net_device *dev, int new_mtu)
15201520

15211521
if (!netif_running(dev)) {
15221522
/* new_mtu will be used
1523-
* when device starts netxt time
1523+
* when device starts next time
15241524
*/
1525-
dev->mtu = new_mtu;
1525+
WRITE_ONCE(dev->mtu, new_mtu);
15261526
return 0;
15271527
}
15281528

@@ -1531,7 +1531,7 @@ static int amd8111e_change_mtu(struct net_device *dev, int new_mtu)
15311531
/* stop the chip */
15321532
writel(RUN, lp->mmio + CMD0);
15331533

1534-
dev->mtu = new_mtu;
1534+
WRITE_ONCE(dev->mtu, new_mtu);
15351535

15361536
err = amd8111e_restart(dev);
15371537
spin_unlock_irq(&lp->lock);

0 commit comments

Comments
 (0)