mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 08:31:13 +00:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights: - Gustavo A. R. Silva keeps working on the implicit switch fallthru changes. - Support 802.11ax High-Efficiency wireless in cfg80211 et al, From Luca Coelho. - Re-enable ASPM in r8169, from Kai-Heng Feng. - Add virtual XFRM interfaces, which avoids all of the limitations of existing IPSEC tunnels. From Steffen Klassert. - Convert GRO over to use a hash table, so that when we have many flows active we don't traverse a long list during accumluation. - Many new self tests for routing, TC, tunnels, etc. Too many contributors to mention them all, but I'm really happy to keep seeing this stuff. - Hardware timestamping support for dpaa_eth/fsl-fman from Yangbo Lu. - Lots of cleanups and fixes in L2TP code from Guillaume Nault. - Add IPSEC offload support to netdevsim, from Shannon Nelson. - Add support for slotting with non-uniform distribution to netem packet scheduler, from Yousuk Seung. - Add UDP GSO support to mlx5e, from Boris Pismenny. - Support offloading of Team LAG in NFP, from John Hurley. - Allow to configure TX queue selection based upon RX queue, from Amritha Nambiar. - Support ethtool ring size configuration in aquantia, from Anton Mikaev. - Support DSCP and flowlabel per-transport in SCTP, from Xin Long. - Support list based batching and stack traversal of SKBs, this is very exciting work. From Edward Cree. - Busyloop optimizations in vhost_net, from Toshiaki Makita. - Introduce the ETF qdisc, which allows time based transmissions. IGB can offload this in hardware. From Vinicius Costa Gomes. - Add parameter support to devlink, from Moshe Shemesh. - Several multiplication and division optimizations for BPF JIT in nfp driver, from Jiong Wang. - Lots of prepatory work to make more of the packet scheduler layer lockless, when possible, from Vlad Buslov. - Add ACK filter and NAT awareness to sch_cake packet scheduler, from Toke Høiland-Jørgensen. - Support regions and region snapshots in devlink, from Alex Vesker. - Allow to attach XDP programs to both HW and SW at the same time on a given device, with initial support in nfp. From Jakub Kicinski. - Add TLS RX offload and support in mlx5, from Ilya Lesokhin. - Use PHYLIB in r8169 driver, from Heiner Kallweit. - All sorts of changes to support Spectrum 2 in mlxsw driver, from Ido Schimmel. - PTP support in mv88e6xxx DSA driver, from Andrew Lunn. - Make TCP_USER_TIMEOUT socket option more accurate, from Jon Maxwell. - Support for templates in packet scheduler classifier, from Jiri Pirko. - IPV6 support in RDS, from Ka-Cheong Poon. - Native tproxy support in nf_tables, from Máté Eckl. - Maintain IP fragment queue in an rbtree, but optimize properly for in-order frags. From Peter Oskolkov. - Improvde handling of ACKs on hole repairs, from Yuchung Cheng" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1996 commits) bpf: test: fix spelling mistake "REUSEEPORT" -> "REUSEPORT" hv/netvsc: Fix NULL dereference at single queue mode fallback net: filter: mark expected switch fall-through xen-netfront: fix warn message as irq device name has '/' cxgb4: Add new T5 PCI device ids 0x50af and 0x50b0 net: dsa: mv88e6xxx: missing unlock on error path rds: fix building with IPV6=m inet/connection_sock: prefer _THIS_IP_ to current_text_addr net: dsa: mv88e6xxx: bitwise vs logical bug net: sock_diag: Fix spectre v1 gadget in __sock_diag_cmd() ieee802154: hwsim: using right kind of iteration net: hns3: Add vlan filter setting by ethtool command -K net: hns3: Set tx ring' tc info when netdev is up net: hns3: Remove tx ring BD len register in hns3_enet net: hns3: Fix desc num set to default when setting channel net: hns3: Fix for phy link issue when using marvell phy driver net: hns3: Fix for information of phydev lost problem when down/up net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero net: hns3: Add support for serdes loopback selftest bnxt_en: take coredump_record structure off stack ...
This commit is contained in:
commit
9a76aba02a
1752 changed files with 119281 additions and 29178 deletions
28
net/socket.c
28
net/socket.c
|
@ -252,7 +252,7 @@ static struct inode *sock_alloc_inode(struct super_block *sb)
|
|||
init_waitqueue_head(&wq->wait);
|
||||
wq->fasync_list = NULL;
|
||||
wq->flags = 0;
|
||||
RCU_INIT_POINTER(ei->socket.wq, wq);
|
||||
ei->socket.wq = wq;
|
||||
|
||||
ei->socket.state = SS_UNCONNECTED;
|
||||
ei->socket.flags = 0;
|
||||
|
@ -266,11 +266,9 @@ static struct inode *sock_alloc_inode(struct super_block *sb)
|
|||
static void sock_destroy_inode(struct inode *inode)
|
||||
{
|
||||
struct socket_alloc *ei;
|
||||
struct socket_wq *wq;
|
||||
|
||||
ei = container_of(inode, struct socket_alloc, vfs_inode);
|
||||
wq = rcu_dereference_protected(ei->socket.wq, 1);
|
||||
kfree_rcu(wq, rcu);
|
||||
kfree_rcu(ei->socket.wq, rcu);
|
||||
kmem_cache_free(sock_inode_cachep, ei);
|
||||
}
|
||||
|
||||
|
@ -585,7 +583,7 @@ static void __sock_release(struct socket *sock, struct inode *inode)
|
|||
module_put(owner);
|
||||
}
|
||||
|
||||
if (rcu_dereference_protected(sock->wq, 1)->fasync_list)
|
||||
if (sock->wq->fasync_list)
|
||||
pr_err("%s: fasync list not empty!\n", __func__);
|
||||
|
||||
if (!sock->file) {
|
||||
|
@ -1112,12 +1110,21 @@ EXPORT_SYMBOL(sock_create_lite);
|
|||
static __poll_t sock_poll(struct file *file, poll_table *wait)
|
||||
{
|
||||
struct socket *sock = file->private_data;
|
||||
__poll_t events = poll_requested_events(wait);
|
||||
__poll_t events = poll_requested_events(wait), flag = 0;
|
||||
|
||||
sock_poll_busy_loop(sock, events);
|
||||
if (!sock->ops->poll)
|
||||
return 0;
|
||||
return sock->ops->poll(file, sock, wait) | sock_poll_busy_flag(sock);
|
||||
|
||||
if (sk_can_busy_loop(sock->sk)) {
|
||||
/* poll once if requested by the syscall */
|
||||
if (events & POLL_BUSY_LOOP)
|
||||
sk_busy_loop(sock->sk, 1);
|
||||
|
||||
/* if this socket can poll_ll, tell the system call */
|
||||
flag = POLL_BUSY_LOOP;
|
||||
}
|
||||
|
||||
return sock->ops->poll(file, sock, wait) | flag;
|
||||
}
|
||||
|
||||
static int sock_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
|
@ -1154,7 +1161,7 @@ static int sock_fasync(int fd, struct file *filp, int on)
|
|||
return -EINVAL;
|
||||
|
||||
lock_sock(sk);
|
||||
wq = rcu_dereference_protected(sock->wq, lockdep_sock_is_held(sk));
|
||||
wq = sock->wq;
|
||||
fasync_helper(fd, filp, on, &wq->fasync_list);
|
||||
|
||||
if (!wq->fasync_list)
|
||||
|
@ -2671,8 +2678,7 @@ EXPORT_SYMBOL(sock_unregister);
|
|||
|
||||
bool sock_is_registered(int family)
|
||||
{
|
||||
return family < NPROTO &&
|
||||
rcu_access_pointer(net_families[array_index_nospec(family, NPROTO)]);
|
||||
return family < NPROTO && rcu_access_pointer(net_families[family]);
|
||||
}
|
||||
|
||||
static int __init sock_init(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue