Skip to content

Commit 1b64b2e

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net into master
Pull networking fixes from David Miller: 1) Fix RCU locaking in iwlwifi, from Johannes Berg. 2) mt76 can access uninitialized NAPI struct, from Felix Fietkau. 3) Fix race in updating pause settings in bnxt_en, from Vasundhara Volam. 4) Propagate error return properly during unbind failures in ax88172a, from George Kennedy. 5) Fix memleak in adf7242_probe, from Liu Jian. 6) smc_drv_probe() can leak, from Wang Hai. 7) Don't muck with the carrier state if register_netdevice() fails in the bonding driver, from Taehee Yoo. 8) Fix memleak in dpaa_eth_probe, from Liu Jian. 9) Need to check skb_put_padto() return value in hsr_fill_tag(), from Murali Karicheri. 10) Don't lose ionic RSS hash settings across FW update, from Shannon Nelson. 11) Fix clobbered SKB control block in act_ct, from Wen Xu. 12) Missing newlink in "tx_timeout" sysfs output, from Xiongfeng Wang. 13) IS_UDPLITE cleanup a long time ago, incorrectly handled transformations involving UDPLITE_RECV_CC. From Miaohe Lin. 14) Unbalanced locking in netdevsim, from Taehee Yoo. 15) Suppress false-positive error messages in qed driver, from Alexander Lobakin. 16) Out of bounds read in ax25_connect and ax25_sendmsg, from Peilin Ye. 17) Missing SKB release in cxgb4's uld_send(), from Navid Emamdoost. 18) Uninitialized value in geneve_changelink(), from Cong Wang. 19) Fix deadlock in xen-netfront, from Andera Righi. 19) flush_backlog() frees skbs with IRQs disabled, so should use dev_kfree_skb_irq() instead of kfree_skb(). From Subash Abhinov Kasiviswanathan. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (111 commits) drivers/net/wan: lapb: Corrected the usage of skb_cow dev: Defer free of skbs in flush_backlog qrtr: orphan socket in qrtr_release() xen-netfront: fix potential deadlock in xennet_remove() flow_offload: Move rhashtable inclusion to the source file geneve: fix an uninitialized value in geneve_changelink() bonding: check return value of register_netdevice() in bond_newlink() tcp: allow at most one TLP probe per flight AX.25: Prevent integer overflows in connect and sendmsg cxgb4: add missing release on skb in uld_send() net: atlantic: fix PTP on AQC10X AX.25: Prevent out-of-bounds read in ax25_sendmsg() sctp: shrink stream outq when fails to do addstream reconf sctp: shrink stream outq only when new outcnt < old outcnt AX.25: Fix out-of-bounds read in ax25_connect() enetc: Remove the mdio bus on PF probe bailout net: ethernet: ti: add NETIF_F_HW_TC hw feature flag for taprio offload net: ethernet: ave: Fix error returns in ave_init drivers/net/wan/x25_asy: Fix to make it work ipvs: fix the connection sync failed in some cases ...
2 parents 23ee3e4 + 8754e13 commit 1b64b2e

File tree

127 files changed

+1022
-676
lines changed

Some content is hidden

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

127 files changed

+1022
-676
lines changed

Documentation/driver-api/ptp.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ PTP hardware clock infrastructure for Linux
2323
+ Ancillary clock features
2424
- Time stamp external events
2525
- Period output signals configurable from user space
26+
- Low Pass Filter (LPF) access from user space
2627
- Synchronization of the Linux system time via the PPS subsystem
2728

2829
PTP hardware clock kernel API
@@ -94,3 +95,14 @@ Supported hardware
9495

9596
- Auxiliary Slave/Master Mode Snapshot (optional interrupt)
9697
- Target Time (optional interrupt)
98+
99+
* Renesas (IDT) ClockMatrix™
100+
101+
- Up to 4 independent PHC channels
102+
- Integrated low pass filter (LPF), access via .adjPhase (compliant to ITU-T G.8273.2)
103+
- Programmable output periodic signals
104+
- Programmable inputs can time stamp external triggers
105+
- Driver and/or hardware configuration through firmware (idtcm.bin)
106+
- LPF settings (bandwidth, phase limiting, automatic holdover, physical layer assist (per ITU-T G.8273.2))
107+
- Programmable output PTP clocks, any frequency up to 1GHz (to other PHY/MAC time stampers, refclk to ASSPs/SoCs/FPGAs)
108+
- Lock to GNSS input, automatic switching between GNSS and user-space PHC control (optional)

Documentation/networking/bareudp.rst

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,29 @@ Usage
2626

2727
1) Device creation & deletion
2828

29-
a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype 0x8847.
29+
a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc
3030

3131
This creates a bareudp tunnel device which tunnels L3 traffic with ethertype
3232
0x8847 (MPLS traffic). The destination port of the UDP header will be set to
3333
6635.The device will listen on UDP port 6635 to receive traffic.
3434

3535
b) ip link delete bareudp0
3636

37-
2) Device creation with multiple proto mode enabled
37+
2) Device creation with multiproto mode enabled
3838

39-
There are two ways to create a bareudp device for MPLS & IP with multiproto mode
40-
enabled.
39+
The multiproto mode allows bareudp tunnels to handle several protocols of the
40+
same family. It is currently only available for IP and MPLS. This mode has to
41+
be enabled explicitly with the "multiproto" flag.
4142

42-
a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype 0x8847 multiproto
43+
a) ip link add dev bareudp0 type bareudp dstport 6635 ethertype ipv4 multiproto
4344

44-
b) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls
45+
For an IPv4 tunnel the multiproto mode allows the tunnel to also handle
46+
IPv6.
47+
48+
b) ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc multiproto
49+
50+
For MPLS, the multiproto mode allows the tunnel to handle both unicast
51+
and multicast MPLS packets.
4552

4653
3) Device Usage
4754

arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,7 @@
454454
status = "okay";
455455
phy-mode = "2500base-x";
456456
phys = <&cp1_comphy5 2>;
457-
fixed-link {
458-
speed = <2500>;
459-
full-duplex;
460-
};
457+
managed = "in-band-status";
461458
};
462459

463460
&cp1_spi1 {

drivers/crypto/chelsio/chtls/chtls_cm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ static struct net_device *chtls_find_netdev(struct chtls_dev *cdev,
102102
case PF_INET:
103103
if (likely(!inet_sk(sk)->inet_rcv_saddr))
104104
return ndev;
105-
ndev = ip_dev_find(&init_net, inet_sk(sk)->inet_rcv_saddr);
105+
ndev = __ip_dev_find(&init_net, inet_sk(sk)->inet_rcv_saddr, false);
106106
break;
107107
#if IS_ENABLED(CONFIG_IPV6)
108108
case PF_INET6:

drivers/crypto/chelsio/chtls/chtls_io.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,14 +1052,15 @@ int chtls_sendmsg(struct sock *sk, struct msghdr *msg, size_t size)
10521052
&record_type);
10531053
if (err)
10541054
goto out_err;
1055+
1056+
/* Avoid appending tls handshake, alert to tls data */
1057+
if (skb)
1058+
tx_skb_finalize(skb);
10551059
}
10561060

10571061
recordsz = size;
10581062
csk->tlshws.txleft = recordsz;
10591063
csk->tlshws.type = record_type;
1060-
1061-
if (skb)
1062-
ULP_SKB_CB(skb)->ulp.tls.type = record_type;
10631064
}
10641065

10651066
if (!skb || (ULP_SKB_CB(skb)->flags & ULPCB_FLAG_NO_APPEND) ||

drivers/net/bonding/bond_main.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5053,15 +5053,19 @@ int bond_create(struct net *net, const char *name)
50535053
bond_dev->rtnl_link_ops = &bond_link_ops;
50545054

50555055
res = register_netdevice(bond_dev);
5056+
if (res < 0) {
5057+
free_netdev(bond_dev);
5058+
rtnl_unlock();
5059+
5060+
return res;
5061+
}
50565062

50575063
netif_carrier_off(bond_dev);
50585064

50595065
bond_work_init_all(bond);
50605066

50615067
rtnl_unlock();
5062-
if (res < 0)
5063-
free_netdev(bond_dev);
5064-
return res;
5068+
return 0;
50655069
}
50665070

50675071
static int __net_init bond_net_init(struct net *net)

drivers/net/bonding/bond_netlink.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,11 +456,10 @@ static int bond_newlink(struct net *src_net, struct net_device *bond_dev,
456456
return err;
457457

458458
err = register_netdevice(bond_dev);
459-
460-
netif_carrier_off(bond_dev);
461459
if (!err) {
462460
struct bonding *bond = netdev_priv(bond_dev);
463461

462+
netif_carrier_off(bond_dev);
464463
bond_work_init_all(bond);
465464
}
466465

drivers/net/dsa/microchip/ksz9477.c

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -974,23 +974,6 @@ static void ksz9477_port_mirror_del(struct dsa_switch *ds, int port,
974974
PORT_MIRROR_SNIFFER, false);
975975
}
976976

977-
static void ksz9477_phy_setup(struct ksz_device *dev, int port,
978-
struct phy_device *phy)
979-
{
980-
/* Only apply to port with PHY. */
981-
if (port >= dev->phy_port_cnt)
982-
return;
983-
984-
/* The MAC actually cannot run in 1000 half-duplex mode. */
985-
phy_remove_link_mode(phy,
986-
ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
987-
988-
/* PHY does not support gigabit. */
989-
if (!(dev->features & GBIT_SUPPORT))
990-
phy_remove_link_mode(phy,
991-
ETHTOOL_LINK_MODE_1000baseT_Full_BIT);
992-
}
993-
994977
static bool ksz9477_get_gbit(struct ksz_device *dev, u8 data)
995978
{
996979
bool gbit;
@@ -1603,7 +1586,6 @@ static const struct ksz_dev_ops ksz9477_dev_ops = {
16031586
.get_port_addr = ksz9477_get_port_addr,
16041587
.cfg_port_member = ksz9477_cfg_port_member,
16051588
.flush_dyn_mac_table = ksz9477_flush_dyn_mac_table,
1606-
.phy_setup = ksz9477_phy_setup,
16071589
.port_setup = ksz9477_port_setup,
16081590
.r_mib_cnt = ksz9477_r_mib_cnt,
16091591
.r_mib_pkt = ksz9477_r_mib_pkt,
@@ -1617,7 +1599,29 @@ static const struct ksz_dev_ops ksz9477_dev_ops = {
16171599

16181600
int ksz9477_switch_register(struct ksz_device *dev)
16191601
{
1620-
return ksz_switch_register(dev, &ksz9477_dev_ops);
1602+
int ret, i;
1603+
struct phy_device *phydev;
1604+
1605+
ret = ksz_switch_register(dev, &ksz9477_dev_ops);
1606+
if (ret)
1607+
return ret;
1608+
1609+
for (i = 0; i < dev->phy_port_cnt; ++i) {
1610+
if (!dsa_is_user_port(dev->ds, i))
1611+
continue;
1612+
1613+
phydev = dsa_to_port(dev->ds, i)->slave->phydev;
1614+
1615+
/* The MAC actually cannot run in 1000 half-duplex mode. */
1616+
phy_remove_link_mode(phydev,
1617+
ETHTOOL_LINK_MODE_1000baseT_Half_BIT);
1618+
1619+
/* PHY does not support gigabit. */
1620+
if (!(dev->features & GBIT_SUPPORT))
1621+
phy_remove_link_mode(phydev,
1622+
ETHTOOL_LINK_MODE_1000baseT_Full_BIT);
1623+
}
1624+
return ret;
16211625
}
16221626
EXPORT_SYMBOL(ksz9477_switch_register);
16231627

drivers/net/dsa/microchip/ksz_common.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,6 @@ int ksz_enable_port(struct dsa_switch *ds, int port, struct phy_device *phy)
358358

359359
/* setup slave port */
360360
dev->dev_ops->port_setup(dev, port, false);
361-
if (dev->dev_ops->phy_setup)
362-
dev->dev_ops->phy_setup(dev, port, phy);
363361

364362
/* port_stp_state_set() will be called after to enable the port so
365363
* there is no need to do anything.

drivers/net/dsa/microchip/ksz_common.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,6 @@ struct ksz_dev_ops {
119119
u32 (*get_port_addr)(int port, int offset);
120120
void (*cfg_port_member)(struct ksz_device *dev, int port, u8 member);
121121
void (*flush_dyn_mac_table)(struct ksz_device *dev, int port);
122-
void (*phy_setup)(struct ksz_device *dev, int port,
123-
struct phy_device *phy);
124122
void (*port_cleanup)(struct ksz_device *dev, int port);
125123
void (*port_setup)(struct ksz_device *dev, int port, bool cpu_port);
126124
void (*r_phy)(struct ksz_device *dev, u16 phy, u16 reg, u16 *val);

0 commit comments

Comments
 (0)