Skip to content

Commit a44406e

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Fix RCU locking in xfrm_local_error(), from Taehee Yoo. 2) Fix return value assignments and thus error checking in iwl_mvm_start_ap_ibss(), from Johannes Berg. 3) Don't count header length twice in vti4, from Stefano Brivio. 4) Fix deadlock in rt6_age_examine_exception, from Eric Dumazet. 5) Fix out-of-bounds access in nf_sk_lookup_slow{v4,v6}() from Subash Abhinov. 6) Check nladdr size in netlink_connect(), from Alexander Potapenko. 7) VF representor SQ numbers are 32 not 16 bits, in mlx5 driver, from Or Gerlitz. 8) Out of bounds read in skb_network_protocol(), from Eric Dumazet. 9) r8169 driver sets driver data pointer after register_netdev() which is too late. Fix from Heiner Kallweit. 10) Fix memory leak in mlx4 driver, from Moshe Shemesh. 11) The multi-VLAN decap fix added a regression when dealing with device that lack a MAC header, such as tun. Fix from Toshiaki Makita. 12) Fix integer overflow in dynamic interrupt coalescing code. From Tal Gilboa. 13) Use after free in vrf code, from David Ahern. 14) IPV6 route leak between VRFs fix, also from David Ahern. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (81 commits) net: mvneta: fix enable of all initialized RXQs net/ipv6: Fix route leaking between VRFs vrf: Fix use after free and double free in vrf_finish_output ipv6: sr: fix seg6 encap performances with TSO enabled net/dim: Fix int overflow vlan: Fix vlan insertion for packets without ethernet header net: Fix untag for vlan packets without ethernet header atm: iphase: fix spelling mistake: "Receiverd" -> "Received" vhost: validate log when IOTLB is enabled qede: Do not drop rx-checksum invalidated packets. hv_netvsc: enable multicast if necessary ip_tunnel: Resolve ipsec merge conflict properly. lan78xx: Crash in lan78xx_writ_reg (Workqueue: events lan78xx_deferred_multicast_write) qede: Fix barrier usage after tx doorbell write. vhost: correctly remove wait queue during poll failure net/mlx4_core: Fix memory leak while delete slave's resources net/mlx4_en: Fix mixed PFC and Global pause user control requests net/smc: use announced length in sock_recvmsg() llc: properly handle dev_queue_xmit() return value strparser: Fix sign of err codes ...
2 parents 9dd2326 + e81b5e0 commit a44406e

Some content is hidden

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

76 files changed

+793
-384
lines changed

Documentation/isdn/INTERFACE.CAPI

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ corresponding hardware driver. Kernel CAPI then forwards CAPI messages in both
1818
directions between the application and the hardware driver.
1919

2020
Format and semantics of CAPI messages are specified in the CAPI 2.0 standard.
21-
This standard is freely available from http://www.capi.org.
21+
This standard is freely available from https://www.capi.org.
2222

2323

2424
2. Driver and Device Registration

Documentation/isdn/README

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ README for the ISDN-subsystem
3333
de.alt.comm.isdn4linux
3434

3535
There is also a well maintained FAQ in English available at
36-
http://www.mhessler.de/i4lfaq/
36+
https://www.mhessler.de/i4lfaq/
3737
It can be viewed online, or downloaded in sgml/text/html format.
3838
The FAQ can also be viewed online at
39-
http://www.isdn4linux.de/faq/
39+
https://www.isdn4linux.de/faq/i4lfaq.html
4040
or downloaded from
4141
ftp://ftp.isdn4linux.de/pub/isdn4linux/FAQ/
4242

Documentation/isdn/README.FAQ

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ You find it in:
88

99
In case you just want to see the FAQ online, or download the newest version,
1010
you can have a look at my website:
11-
http://www.mhessler.de/i4lfaq/ (view + download)
11+
https://www.mhessler.de/i4lfaq/ (view + download)
1212
or:
13-
http://www.isdn4linux.de/faq/ (view)
13+
https://www.isdn4linux.de/faq/4lfaq.html (view)
1414

1515
As the extension tells, the FAQ is in SGML format, and you can convert it
1616
into text/html/... format by using the sgml2txt/sgml2html/... tools.

Documentation/isdn/README.gigaset

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ GigaSet 307x Device Driver
2929
T-Com Sinus 721 data
3030
Chicago 390 USB (KPN)
3131

32-
See also http://www.erbze.info/sinus_gigaset.htm and
33-
http://gigaset307x.sourceforge.net/
32+
See also http://www.erbze.info/sinus_gigaset.htm
33+
(archived at https://web.archive.org/web/20100717020421/http://www.erbze.info:80/sinus_gigaset.htm ) and
34+
http://gigaset307x.sourceforge.net/
3435

3536
We had also reports from users of Gigaset M105 who could use the drivers
3637
with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.5.)
@@ -52,7 +53,7 @@ GigaSet 307x Device Driver
5253
to use CAPI 2.0 or ISDN4Linux for ISDN connections (voice or data).
5354

5455
There are some user space tools available at
55-
http://sourceforge.net/projects/gigaset307x/
56+
https://sourceforge.net/projects/gigaset307x/
5657
which provide access to additional device specific functions like SMS,
5758
phonebook or call journal.
5859

@@ -202,7 +203,7 @@ GigaSet 307x Device Driver
202203
You can use some configuration tool of your distribution to configure this
203204
"modem" or configure pppd/wvdial manually. There are some example ppp
204205
configuration files and chat scripts in the gigaset-VERSION/ppp directory
205-
in the driver packages from http://sourceforge.net/projects/gigaset307x/.
206+
in the driver packages from https://sourceforge.net/projects/gigaset307x/.
206207
Please note that the USB drivers are not able to change the state of the
207208
control lines. This means you must use "Stupid Mode" if you are using
208209
wvdial or you should use the nocrtscts option of pppd.
@@ -361,7 +362,7 @@ GigaSet 307x Device Driver
361362
---------------------------
362363
If you can't solve problems with the driver on your own, feel free to
363364
use one of the forums, bug trackers, or mailing lists on
364-
http://sourceforge.net/projects/gigaset307x
365+
https://sourceforge.net/projects/gigaset307x
365366
or write an electronic mail to the maintainers.
366367

367368
Try to provide as much information as possible, such as
@@ -391,11 +392,12 @@ GigaSet 307x Device Driver
391392
4. Links, other software
392393
---------------------
393394
- Sourceforge project developing this driver and associated tools
394-
http://sourceforge.net/projects/gigaset307x
395+
https://sourceforge.net/projects/gigaset307x
395396
- Yahoo! Group on the Siemens Gigaset family of devices
396-
http://de.groups.yahoo.com/group/Siemens-Gigaset
397+
https://de.groups.yahoo.com/group/Siemens-Gigaset
397398
- Siemens Gigaset/T-Sinus compatibility table
398399
http://www.erbze.info/sinus_gigaset.htm
400+
(archived at https://web.archive.org/web/20100717020421/http://www.erbze.info:80/sinus_gigaset.htm )
399401

400402

401403
5. Credits

drivers/atm/iphase.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3147,7 +3147,7 @@ static int ia_proc_read(struct atm_dev *dev,loff_t *pos,char *page)
31473147
" Size of Tx Buffer : %u\n"
31483148
" Number of Rx Buffer: %u\n"
31493149
" Size of Rx Buffer : %u\n"
3150-
" Packets Receiverd : %u\n"
3150+
" Packets Received : %u\n"
31513151
" Packets Transmitted: %u\n"
31523152
" Cells Received : %u\n"
31533153
" Cells Transmitted : %u\n"

drivers/net/bonding/bond_main.c

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1528,39 +1528,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
15281528
goto err_close;
15291529
}
15301530

1531-
/* If the mode uses primary, then the following is handled by
1532-
* bond_change_active_slave().
1533-
*/
1534-
if (!bond_uses_primary(bond)) {
1535-
/* set promiscuity level to new slave */
1536-
if (bond_dev->flags & IFF_PROMISC) {
1537-
res = dev_set_promiscuity(slave_dev, 1);
1538-
if (res)
1539-
goto err_close;
1540-
}
1541-
1542-
/* set allmulti level to new slave */
1543-
if (bond_dev->flags & IFF_ALLMULTI) {
1544-
res = dev_set_allmulti(slave_dev, 1);
1545-
if (res)
1546-
goto err_close;
1547-
}
1548-
1549-
netif_addr_lock_bh(bond_dev);
1550-
1551-
dev_mc_sync_multiple(slave_dev, bond_dev);
1552-
dev_uc_sync_multiple(slave_dev, bond_dev);
1553-
1554-
netif_addr_unlock_bh(bond_dev);
1555-
}
1556-
1557-
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
1558-
/* add lacpdu mc addr to mc list */
1559-
u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
1560-
1561-
dev_mc_add(slave_dev, lacpdu_multicast);
1562-
}
1563-
15641531
res = vlan_vids_add_by_dev(slave_dev, bond_dev);
15651532
if (res) {
15661533
netdev_err(bond_dev, "Couldn't add bond vlan ids to %s\n",
@@ -1725,6 +1692,40 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
17251692
goto err_upper_unlink;
17261693
}
17271694

1695+
/* If the mode uses primary, then the following is handled by
1696+
* bond_change_active_slave().
1697+
*/
1698+
if (!bond_uses_primary(bond)) {
1699+
/* set promiscuity level to new slave */
1700+
if (bond_dev->flags & IFF_PROMISC) {
1701+
res = dev_set_promiscuity(slave_dev, 1);
1702+
if (res)
1703+
goto err_sysfs_del;
1704+
}
1705+
1706+
/* set allmulti level to new slave */
1707+
if (bond_dev->flags & IFF_ALLMULTI) {
1708+
res = dev_set_allmulti(slave_dev, 1);
1709+
if (res) {
1710+
if (bond_dev->flags & IFF_PROMISC)
1711+
dev_set_promiscuity(slave_dev, -1);
1712+
goto err_sysfs_del;
1713+
}
1714+
}
1715+
1716+
netif_addr_lock_bh(bond_dev);
1717+
dev_mc_sync_multiple(slave_dev, bond_dev);
1718+
dev_uc_sync_multiple(slave_dev, bond_dev);
1719+
netif_addr_unlock_bh(bond_dev);
1720+
1721+
if (BOND_MODE(bond) == BOND_MODE_8023AD) {
1722+
/* add lacpdu mc addr to mc list */
1723+
u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
1724+
1725+
dev_mc_add(slave_dev, lacpdu_multicast);
1726+
}
1727+
}
1728+
17281729
bond->slave_cnt++;
17291730
bond_compute_features(bond);
17301731
bond_set_carrier(bond);
@@ -1748,16 +1749,16 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
17481749
return 0;
17491750

17501751
/* Undo stages on error */
1752+
err_sysfs_del:
1753+
bond_sysfs_slave_del(new_slave);
1754+
17511755
err_upper_unlink:
17521756
bond_upper_dev_unlink(bond, new_slave);
17531757

17541758
err_unregister:
17551759
netdev_rx_handler_unregister(slave_dev);
17561760

17571761
err_detach:
1758-
if (!bond_uses_primary(bond))
1759-
bond_hw_addr_flush(bond_dev, slave_dev);
1760-
17611762
vlan_vids_del_by_dev(slave_dev, bond_dev);
17621763
if (rcu_access_pointer(bond->primary_slave) == new_slave)
17631764
RCU_INIT_POINTER(bond->primary_slave, NULL);

drivers/net/dsa/mt7530.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1409,6 +1409,7 @@ static const struct of_device_id mt7530_of_match[] = {
14091409
{ .compatible = "mediatek,mt7530" },
14101410
{ /* sentinel */ },
14111411
};
1412+
MODULE_DEVICE_TABLE(of, mt7530_of_match);
14121413

14131414
static struct mdio_driver mt7530_mdio_driver = {
14141415
.probe = mt7530_probe,
@@ -1424,4 +1425,3 @@ mdio_module_driver(mt7530_mdio_driver);
14241425
MODULE_AUTHOR("Sean Wang <[email protected]>");
14251426
MODULE_DESCRIPTION("Driver for Mediatek MT7530 Switch");
14261427
MODULE_LICENSE("GPL");
1427-
MODULE_ALIAS("platform:mediatek-mt7530");

drivers/net/ethernet/marvell/mvneta.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,7 @@ static void mvneta_port_up(struct mvneta_port *pp)
11321132
}
11331133
mvreg_write(pp, MVNETA_TXQ_CMD, q_map);
11341134

1135+
q_map = 0;
11351136
/* Enable all initialized RXQs. */
11361137
for (queue = 0; queue < rxq_number; queue++) {
11371138
struct mvneta_rx_queue *rxq = &pp->rxqs[queue];

drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c

Lines changed: 41 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -156,57 +156,63 @@ static int mlx4_en_dcbnl_getnumtcs(struct net_device *netdev, int tcid, u8 *num)
156156
static u8 mlx4_en_dcbnl_set_all(struct net_device *netdev)
157157
{
158158
struct mlx4_en_priv *priv = netdev_priv(netdev);
159+
struct mlx4_en_port_profile *prof = priv->prof;
159160
struct mlx4_en_dev *mdev = priv->mdev;
161+
u8 tx_pause, tx_ppp, rx_pause, rx_ppp;
160162

161163
if (!(priv->dcbx_cap & DCB_CAP_DCBX_VER_CEE))
162164
return 1;
163165

164166
if (priv->cee_config.pfc_state) {
165167
int tc;
168+
rx_ppp = prof->rx_ppp;
169+
tx_ppp = prof->tx_ppp;
166170

167-
priv->prof->rx_pause = 0;
168-
priv->prof->tx_pause = 0;
169171
for (tc = 0; tc < CEE_DCBX_MAX_PRIO; tc++) {
170172
u8 tc_mask = 1 << tc;
171173

172174
switch (priv->cee_config.dcb_pfc[tc]) {
173175
case pfc_disabled:
174-
priv->prof->tx_ppp &= ~tc_mask;
175-
priv->prof->rx_ppp &= ~tc_mask;
176+
tx_ppp &= ~tc_mask;
177+
rx_ppp &= ~tc_mask;
176178
break;
177179
case pfc_enabled_full:
178-
priv->prof->tx_ppp |= tc_mask;
179-
priv->prof->rx_ppp |= tc_mask;
180+
tx_ppp |= tc_mask;
181+
rx_ppp |= tc_mask;
180182
break;
181183
case pfc_enabled_tx:
182-
priv->prof->tx_ppp |= tc_mask;
183-
priv->prof->rx_ppp &= ~tc_mask;
184+
tx_ppp |= tc_mask;
185+
rx_ppp &= ~tc_mask;
184186
break;
185187
case pfc_enabled_rx:
186-
priv->prof->tx_ppp &= ~tc_mask;
187-
priv->prof->rx_ppp |= tc_mask;
188+
tx_ppp &= ~tc_mask;
189+
rx_ppp |= tc_mask;
188190
break;
189191
default:
190192
break;
191193
}
192194
}
193-
en_dbg(DRV, priv, "Set pfc on\n");
195+
rx_pause = !!(rx_ppp || tx_ppp) ? 0 : prof->rx_pause;
196+
tx_pause = !!(rx_ppp || tx_ppp) ? 0 : prof->tx_pause;
194197
} else {
195-
priv->prof->rx_pause = 1;
196-
priv->prof->tx_pause = 1;
197-
en_dbg(DRV, priv, "Set pfc off\n");
198+
rx_ppp = 0;
199+
tx_ppp = 0;
200+
rx_pause = prof->rx_pause;
201+
tx_pause = prof->tx_pause;
198202
}
199203

200204
if (mlx4_SET_PORT_general(mdev->dev, priv->port,
201205
priv->rx_skb_size + ETH_FCS_LEN,
202-
priv->prof->tx_pause,
203-
priv->prof->tx_ppp,
204-
priv->prof->rx_pause,
205-
priv->prof->rx_ppp)) {
206+
tx_pause, tx_ppp, rx_pause, rx_ppp)) {
206207
en_err(priv, "Failed setting pause params\n");
207208
return 1;
208209
}
209210

211+
prof->tx_ppp = tx_ppp;
212+
prof->rx_ppp = rx_ppp;
213+
prof->tx_pause = tx_pause;
214+
prof->rx_pause = rx_pause;
215+
210216
return 0;
211217
}
212218

@@ -408,6 +414,7 @@ static int mlx4_en_dcbnl_ieee_setpfc(struct net_device *dev,
408414
struct mlx4_en_priv *priv = netdev_priv(dev);
409415
struct mlx4_en_port_profile *prof = priv->prof;
410416
struct mlx4_en_dev *mdev = priv->mdev;
417+
u32 tx_pause, tx_ppp, rx_pause, rx_ppp;
411418
int err;
412419

413420
en_dbg(DRV, priv, "cap: 0x%x en: 0x%x mbc: 0x%x delay: %d\n",
@@ -416,23 +423,26 @@ static int mlx4_en_dcbnl_ieee_setpfc(struct net_device *dev,
416423
pfc->mbc,
417424
pfc->delay);
418425

419-
prof->rx_pause = !pfc->pfc_en;
420-
prof->tx_pause = !pfc->pfc_en;
421-
prof->rx_ppp = pfc->pfc_en;
422-
prof->tx_ppp = pfc->pfc_en;
426+
rx_pause = prof->rx_pause && !pfc->pfc_en;
427+
tx_pause = prof->tx_pause && !pfc->pfc_en;
428+
rx_ppp = pfc->pfc_en;
429+
tx_ppp = pfc->pfc_en;
423430

424431
err = mlx4_SET_PORT_general(mdev->dev, priv->port,
425432
priv->rx_skb_size + ETH_FCS_LEN,
426-
prof->tx_pause,
427-
prof->tx_ppp,
428-
prof->rx_pause,
429-
prof->rx_ppp);
430-
if (err)
433+
tx_pause, tx_ppp, rx_pause, rx_ppp);
434+
if (err) {
431435
en_err(priv, "Failed setting pause params\n");
432-
else
433-
mlx4_en_update_pfc_stats_bitmap(mdev->dev, &priv->stats_bitmap,
434-
prof->rx_ppp, prof->rx_pause,
435-
prof->tx_ppp, prof->tx_pause);
436+
return err;
437+
}
438+
439+
mlx4_en_update_pfc_stats_bitmap(mdev->dev, &priv->stats_bitmap,
440+
rx_ppp, rx_pause, tx_ppp, tx_pause);
441+
442+
prof->tx_ppp = tx_ppp;
443+
prof->rx_ppp = rx_ppp;
444+
prof->rx_pause = rx_pause;
445+
prof->tx_pause = tx_pause;
436446

437447
return err;
438448
}

drivers/net/ethernet/mellanox/mlx4/en_ethtool.c

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,27 +1046,32 @@ static int mlx4_en_set_pauseparam(struct net_device *dev,
10461046
{
10471047
struct mlx4_en_priv *priv = netdev_priv(dev);
10481048
struct mlx4_en_dev *mdev = priv->mdev;
1049+
u8 tx_pause, tx_ppp, rx_pause, rx_ppp;
10491050
int err;
10501051

10511052
if (pause->autoneg)
10521053
return -EINVAL;
10531054

1054-
priv->prof->tx_pause = pause->tx_pause != 0;
1055-
priv->prof->rx_pause = pause->rx_pause != 0;
1055+
tx_pause = !!(pause->tx_pause);
1056+
rx_pause = !!(pause->rx_pause);
1057+
rx_ppp = priv->prof->rx_ppp && !(tx_pause || rx_pause);
1058+
tx_ppp = priv->prof->tx_ppp && !(tx_pause || rx_pause);
1059+
10561060
err = mlx4_SET_PORT_general(mdev->dev, priv->port,
10571061
priv->rx_skb_size + ETH_FCS_LEN,
1058-
priv->prof->tx_pause,
1059-
priv->prof->tx_ppp,
1060-
priv->prof->rx_pause,
1061-
priv->prof->rx_ppp);
1062-
if (err)
1063-
en_err(priv, "Failed setting pause params\n");
1064-
else
1065-
mlx4_en_update_pfc_stats_bitmap(mdev->dev, &priv->stats_bitmap,
1066-
priv->prof->rx_ppp,
1067-
priv->prof->rx_pause,
1068-
priv->prof->tx_ppp,
1069-
priv->prof->tx_pause);
1062+
tx_pause, tx_ppp, rx_pause, rx_ppp);
1063+
if (err) {
1064+
en_err(priv, "Failed setting pause params, err = %d\n", err);
1065+
return err;
1066+
}
1067+
1068+
mlx4_en_update_pfc_stats_bitmap(mdev->dev, &priv->stats_bitmap,
1069+
rx_ppp, rx_pause, tx_ppp, tx_pause);
1070+
1071+
priv->prof->tx_pause = tx_pause;
1072+
priv->prof->rx_pause = rx_pause;
1073+
priv->prof->tx_ppp = tx_ppp;
1074+
priv->prof->rx_ppp = rx_ppp;
10701075

10711076
return err;
10721077
}

0 commit comments

Comments
 (0)