summaryrefslogtreecommitdiffstats
path: root/net/llc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-11-15 14:56:19 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-15 14:56:19 -0500
commit5bbcc0f595fadb4cac0eddc4401035ec0bd95b09 (patch)
tree3b65e490cc36a6c6fecac1fa24d9e0ac9ced4455 /net/llc
parent892204e06cb9e89fbc4b299a678f9ca358e97cac (diff)
parent50895b9de1d3e0258e015e8e55128d835d9a9f19 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights: 1) Maintain the TCP retransmit queue using an rbtree, with 1GB windows at 100Gb this really has become necessary. From Eric Dumazet. 2) Multi-program support for cgroup+bpf, from Alexei Starovoitov. 3) Perform broadcast flooding in hardware in mv88e6xxx, from Andrew Lunn. 4) Add meter action support to openvswitch, from Andy Zhou. 5) Add a data meta pointer for BPF accessible packets, from Daniel Borkmann. 6) Namespace-ify almost all TCP sysctl knobs, from Eric Dumazet. 7) Turn on Broadcom Tags in b53 driver, from Florian Fainelli. 8) More work to move the RTNL mutex down, from Florian Westphal. 9) Add 'bpftool' utility, to help with bpf program introspection. From Jakub Kicinski. 10) Add new 'cpumap' type for XDP_REDIRECT action, from Jesper Dangaard Brouer. 11) Support 'blocks' of transformations in the packet scheduler which can span multiple network devices, from Jiri Pirko. 12) TC flower offload support in cxgb4, from Kumar Sanghvi. 13) Priority based stream scheduler for SCTP, from Marcelo Ricardo Leitner. 14) Thunderbolt networking driver, from Amir Levy and Mika Westerberg. 15) Add RED qdisc offloadability, and use it in mlxsw driver. From Nogah Frankel. 16) eBPF based device controller for cgroup v2, from Roman Gushchin. 17) Add some fundamental tracepoints for TCP, from Song Liu. 18) Remove garbage collection from ipv6 route layer, this is a significant accomplishment. From Wei Wang. 19) Add multicast route offload support to mlxsw, from Yotam Gigi" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2177 commits) tcp: highest_sack fix geneve: fix fill_info when link down bpf: fix lockdep splat net: cdc_ncm: GetNtbFormat endian fix openvswitch: meter: fix NULL pointer dereference in ovs_meter_cmd_reply_start netem: remove unnecessary 64 bit modulus netem: use 64 bit divide by rate tcp: Namespace-ify sysctl_tcp_default_congestion_control net: Protect iterations over net::fib_notifier_ops in fib_seq_sum() ipv6: set all.accept_dad to 0 by default uapi: fix linux/tls.h userspace compilation error usbnet: ipheth: prevent TX queue timeouts when device not ready vhost_net: conditionally enable tx polling uapi: fix linux/rxrpc.h userspace compilation errors net: stmmac: fix LPI transitioning for dwmac4 atm: horizon: Fix irq release error net-sysfs: trigger netlink notification on ifalias change via sysfs openvswitch: Using kfree_rcu() to simplify the code openvswitch: Make local function ovs_nsh_key_attr_size() static openvswitch: Fix return value check in ovs_meter_cmd_features() ...
Diffstat (limited to 'net/llc')
-rw-r--r--net/llc/llc_c_ac.c27
-rw-r--r--net/llc/llc_conn.c12
2 files changed, 21 insertions, 18 deletions
diff --git a/net/llc/llc_c_ac.c b/net/llc/llc_c_ac.c
index ea225bd2672c..f59648018060 100644
--- a/net/llc/llc_c_ac.c
+++ b/net/llc/llc_c_ac.c
@@ -1318,9 +1318,8 @@ static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb)
1318 return 0; 1318 return 0;
1319} 1319}
1320 1320
1321static void llc_conn_tmr_common_cb(unsigned long timeout_data, u8 type) 1321static void llc_conn_tmr_common_cb(struct sock *sk, u8 type)
1322{ 1322{
1323 struct sock *sk = (struct sock *)timeout_data;
1324 struct sk_buff *skb = alloc_skb(0, GFP_ATOMIC); 1323 struct sk_buff *skb = alloc_skb(0, GFP_ATOMIC);
1325 1324
1326 bh_lock_sock(sk); 1325 bh_lock_sock(sk);
@@ -1334,24 +1333,32 @@ static void llc_conn_tmr_common_cb(unsigned long timeout_data, u8 type)
1334 bh_unlock_sock(sk); 1333 bh_unlock_sock(sk);
1335} 1334}
1336 1335
1337void llc_conn_pf_cycle_tmr_cb(unsigned long timeout_data) 1336void llc_conn_pf_cycle_tmr_cb(struct timer_list *t)
1338{ 1337{
1339 llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_P_TMR); 1338 struct llc_sock *llc = from_timer(llc, t, pf_cycle_timer.timer);
1339
1340 llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_P_TMR);
1340} 1341}
1341 1342
1342void llc_conn_busy_tmr_cb(unsigned long timeout_data) 1343void llc_conn_busy_tmr_cb(struct timer_list *t)
1343{ 1344{
1344 llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_BUSY_TMR); 1345 struct llc_sock *llc = from_timer(llc, t, busy_state_timer.timer);
1346
1347 llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_BUSY_TMR);
1345} 1348}
1346 1349
1347void llc_conn_ack_tmr_cb(unsigned long timeout_data) 1350void llc_conn_ack_tmr_cb(struct timer_list *t)
1348{ 1351{
1349 llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_ACK_TMR); 1352 struct llc_sock *llc = from_timer(llc, t, ack_timer.timer);
1353
1354 llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_ACK_TMR);
1350} 1355}
1351 1356
1352void llc_conn_rej_tmr_cb(unsigned long timeout_data) 1357void llc_conn_rej_tmr_cb(struct timer_list *t)
1353{ 1358{
1354 llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_REJ_TMR); 1359 struct llc_sock *llc = from_timer(llc, t, rej_sent_timer.timer);
1360
1361 llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_REJ_TMR);
1355} 1362}
1356 1363
1357int llc_conn_ac_rst_vs(struct sock *sk, struct sk_buff *skb) 1364int llc_conn_ac_rst_vs(struct sock *sk, struct sk_buff *skb)
diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c
index 5e91b47f0d2a..9177dbb16dce 100644
--- a/net/llc/llc_conn.c
+++ b/net/llc/llc_conn.c
@@ -902,20 +902,16 @@ static void llc_sk_init(struct sock *sk)
902 llc->inc_cntr = llc->dec_cntr = 2; 902 llc->inc_cntr = llc->dec_cntr = 2;
903 llc->dec_step = llc->connect_step = 1; 903 llc->dec_step = llc->connect_step = 1;
904 904
905 setup_timer(&llc->ack_timer.timer, llc_conn_ack_tmr_cb, 905 timer_setup(&llc->ack_timer.timer, llc_conn_ack_tmr_cb, 0);
906 (unsigned long)sk);
907 llc->ack_timer.expire = sysctl_llc2_ack_timeout; 906 llc->ack_timer.expire = sysctl_llc2_ack_timeout;
908 907
909 setup_timer(&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb, 908 timer_setup(&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb, 0);
910 (unsigned long)sk);
911 llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout; 909 llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout;
912 910
913 setup_timer(&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb, 911 timer_setup(&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb, 0);
914 (unsigned long)sk);
915 llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout; 912 llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout;
916 913
917 setup_timer(&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb, 914 timer_setup(&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb, 0);
918 (unsigned long)sk);
919 llc->busy_state_timer.expire = sysctl_llc2_busy_timeout; 915 llc->busy_state_timer.expire = sysctl_llc2_busy_timeout;
920 916
921 llc->n2 = 2; /* max retransmit */ 917 llc->n2 = 2; /* max retransmit */