aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sock.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/sock.h')
-rw-r--r--include/net/sock.h71
1 files changed, 10 insertions, 61 deletions
diff --git a/include/net/sock.h b/include/net/sock.h
index 2210fec65669..ab186b1d31ff 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -857,18 +857,6 @@ static inline void sock_rps_record_flow_hash(__u32 hash)
857#endif 857#endif
858} 858}
859 859
860static inline void sock_rps_reset_flow_hash(__u32 hash)
861{
862#ifdef CONFIG_RPS
863 struct rps_sock_flow_table *sock_flow_table;
864
865 rcu_read_lock();
866 sock_flow_table = rcu_dereference(rps_sock_flow_table);
867 rps_reset_sock_flow(sock_flow_table, hash);
868 rcu_read_unlock();
869#endif
870}
871
872static inline void sock_rps_record_flow(const struct sock *sk) 860static inline void sock_rps_record_flow(const struct sock *sk)
873{ 861{
874#ifdef CONFIG_RPS 862#ifdef CONFIG_RPS
@@ -876,28 +864,18 @@ static inline void sock_rps_record_flow(const struct sock *sk)
876#endif 864#endif
877} 865}
878 866
879static inline void sock_rps_reset_flow(const struct sock *sk)
880{
881#ifdef CONFIG_RPS
882 sock_rps_reset_flow_hash(sk->sk_rxhash);
883#endif
884}
885
886static inline void sock_rps_save_rxhash(struct sock *sk, 867static inline void sock_rps_save_rxhash(struct sock *sk,
887 const struct sk_buff *skb) 868 const struct sk_buff *skb)
888{ 869{
889#ifdef CONFIG_RPS 870#ifdef CONFIG_RPS
890 if (unlikely(sk->sk_rxhash != skb->hash)) { 871 if (unlikely(sk->sk_rxhash != skb->hash))
891 sock_rps_reset_flow(sk);
892 sk->sk_rxhash = skb->hash; 872 sk->sk_rxhash = skb->hash;
893 }
894#endif 873#endif
895} 874}
896 875
897static inline void sock_rps_reset_rxhash(struct sock *sk) 876static inline void sock_rps_reset_rxhash(struct sock *sk)
898{ 877{
899#ifdef CONFIG_RPS 878#ifdef CONFIG_RPS
900 sock_rps_reset_flow(sk);
901 sk->sk_rxhash = 0; 879 sk->sk_rxhash = 0;
902#endif 880#endif
903} 881}
@@ -1099,11 +1077,6 @@ static inline bool memcg_proto_active(struct cg_proto *cg_proto)
1099 return test_bit(MEMCG_SOCK_ACTIVE, &cg_proto->flags); 1077 return test_bit(MEMCG_SOCK_ACTIVE, &cg_proto->flags);
1100} 1078}
1101 1079
1102static inline bool memcg_proto_activated(struct cg_proto *cg_proto)
1103{
1104 return test_bit(MEMCG_SOCK_ACTIVATED, &cg_proto->flags);
1105}
1106
1107#ifdef SOCK_REFCNT_DEBUG 1080#ifdef SOCK_REFCNT_DEBUG
1108static inline void sk_refcnt_debug_inc(struct sock *sk) 1081static inline void sk_refcnt_debug_inc(struct sock *sk)
1109{ 1082{
@@ -1374,29 +1347,6 @@ void sk_prot_clear_portaddr_nulls(struct sock *sk, int size);
1374#define SOCK_BINDADDR_LOCK 4 1347#define SOCK_BINDADDR_LOCK 4
1375#define SOCK_BINDPORT_LOCK 8 1348#define SOCK_BINDPORT_LOCK 8
1376 1349
1377/* sock_iocb: used to kick off async processing of socket ios */
1378struct sock_iocb {
1379 struct list_head list;
1380
1381 int flags;
1382 int size;
1383 struct socket *sock;
1384 struct sock *sk;
1385 struct scm_cookie *scm;
1386 struct msghdr *msg, async_msg;
1387 struct kiocb *kiocb;
1388};
1389
1390static inline struct sock_iocb *kiocb_to_siocb(struct kiocb *iocb)
1391{
1392 return (struct sock_iocb *)iocb->private;
1393}
1394
1395static inline struct kiocb *siocb_to_kiocb(struct sock_iocb *si)
1396{
1397 return si->kiocb;
1398}
1399
1400struct socket_alloc { 1350struct socket_alloc {
1401 struct socket socket; 1351 struct socket socket;
1402 struct inode vfs_inode; 1352 struct inode vfs_inode;
@@ -1826,27 +1776,25 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
1826} 1776}
1827 1777
1828static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb, 1778static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
1829 char __user *from, char *to, 1779 struct iov_iter *from, char *to,
1830 int copy, int offset) 1780 int copy, int offset)
1831{ 1781{
1832 if (skb->ip_summed == CHECKSUM_NONE) { 1782 if (skb->ip_summed == CHECKSUM_NONE) {
1833 int err = 0; 1783 __wsum csum = 0;
1834 __wsum csum = csum_and_copy_from_user(from, to, copy, 0, &err); 1784 if (csum_and_copy_from_iter(to, copy, &csum, from) != copy)
1835 if (err) 1785 return -EFAULT;
1836 return err;
1837 skb->csum = csum_block_add(skb->csum, csum, offset); 1786 skb->csum = csum_block_add(skb->csum, csum, offset);
1838 } else if (sk->sk_route_caps & NETIF_F_NOCACHE_COPY) { 1787 } else if (sk->sk_route_caps & NETIF_F_NOCACHE_COPY) {
1839 if (!access_ok(VERIFY_READ, from, copy) || 1788 if (copy_from_iter_nocache(to, copy, from) != copy)
1840 __copy_from_user_nocache(to, from, copy))
1841 return -EFAULT; 1789 return -EFAULT;
1842 } else if (copy_from_user(to, from, copy)) 1790 } else if (copy_from_iter(to, copy, from) != copy)
1843 return -EFAULT; 1791 return -EFAULT;
1844 1792
1845 return 0; 1793 return 0;
1846} 1794}
1847 1795
1848static inline int skb_add_data_nocache(struct sock *sk, struct sk_buff *skb, 1796static inline int skb_add_data_nocache(struct sock *sk, struct sk_buff *skb,
1849 char __user *from, int copy) 1797 struct iov_iter *from, int copy)
1850{ 1798{
1851 int err, offset = skb->len; 1799 int err, offset = skb->len;
1852 1800
@@ -1858,7 +1806,7 @@ static inline int skb_add_data_nocache(struct sock *sk, struct sk_buff *skb,
1858 return err; 1806 return err;
1859} 1807}
1860 1808
1861static inline int skb_copy_to_page_nocache(struct sock *sk, char __user *from, 1809static inline int skb_copy_to_page_nocache(struct sock *sk, struct iov_iter *from,
1862 struct sk_buff *skb, 1810 struct sk_buff *skb,
1863 struct page *page, 1811 struct page *page,
1864 int off, int copy) 1812 int off, int copy)
@@ -2262,6 +2210,7 @@ bool sk_net_capable(const struct sock *sk, int cap);
2262extern __u32 sysctl_wmem_max; 2210extern __u32 sysctl_wmem_max;
2263extern __u32 sysctl_rmem_max; 2211extern __u32 sysctl_rmem_max;
2264 2212
2213extern int sysctl_tstamp_allow_data;
2265extern int sysctl_optmem_max; 2214extern int sysctl_optmem_max;
2266 2215
2267extern __u32 sysctl_wmem_default; 2216extern __u32 sysctl_wmem_default;