alistair23-linux/net
Toke Høiland-Jørgensen 1866760096 mac80211: Add TXQ scheduling API
This adds an API to mac80211 to handle scheduling of TXQs. The interface
between driver and mac80211 for TXQ handling is changed by adding two new
functions: ieee80211_next_txq(), which will return the next TXQ to schedule
in the current round-robin rotation, and ieee80211_return_txq(), which the
driver uses to indicate that it has finished scheduling a TXQ (which will
then be put back in the scheduling rotation if it isn't empty).

The driver must call ieee80211_txq_schedule_start() at the start of each
scheduling session, and ieee80211_txq_schedule_end() at the end. The API
then guarantees that the same TXQ is not returned twice in the same
session (so a driver can loop on ieee80211_next_txq() without worrying
about breaking the loop.

Usage of the new API is optional, so drivers can be ported one at a time.
In this patch, the actual scheduling performed by mac80211 is simple
round-robin, but a subsequent commit adds airtime fairness awareness to the
scheduler.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
[minor kernel-doc fix, propagate sparse locking checks out]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2019-01-19 09:24:12 +01:00
..
6lowpan 6lowpan: convert to DEFINE_SHOW_ATTRIBUTE 2018-12-19 00:28:05 +01:00
9p 9p/net: put a lower bound on msize 2018-12-25 17:07:49 +09:00
802
8021q net: core: dev: Add extack argument to dev_change_flags() 2018-12-06 13:26:07 -08:00
appletalk
atm
ax25 ax25: fix a use-after-free in ax25_fillin_cb() 2018-12-30 14:07:54 -08:00
batman-adv Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
bluetooth Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-12-27 13:53:32 -08:00
bpf Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-12-10 18:00:43 -08:00
bpfilter net: bpfilter: disallow to remove bpfilter module while being used 2019-01-11 18:05:41 -08:00
bridge switchdev: Add extack argument to call_switchdev_notifiers() 2019-01-17 15:18:47 -08:00
caif
can can: gw: ensure DLC boundaries after CAN frame modification 2019-01-07 05:17:51 -08:00
ceph libceph: allow setting abort_on_full for rbd 2019-01-07 22:47:48 +01:00
core devlink: Add health dump {get,clear} commands 2019-01-18 14:51:23 -08:00
dcb
dccp mm: convert totalram_pages and totalhigh_pages variables to atomic 2018-12-28 12:11:47 -08:00
decnet net, decnet: use struct_size() in kzalloc() 2019-01-16 13:22:10 -08:00
dns_resolver
dsa switchdev: Add extack argument to call_switchdev_notifiers() 2019-01-17 15:18:47 -08:00
ethernet net: ethernet: provide nvmem_get_mac_address() 2018-12-03 15:40:30 -08:00
hsr
ieee802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-24 16:19:56 -08:00
ife
ipv4 tcp: move rx_opt & syn_data_acked init to tcp_disconnect() 2019-01-17 22:19:05 -08:00
ipv6 net: ip6_gre: remove gre_hdr_len from ip6erspan_rcv 2019-01-18 13:56:44 -08:00
iucv
kcm
key
l2tp ppp: Move PFC decompression to PPP generic layer 2018-12-20 16:49:30 -08:00
l3mdev l3mdev: add function to retreive upper master 2018-12-03 14:15:26 -08:00
lapb
llc
mac80211 mac80211: Add TXQ scheduling API 2019-01-19 09:24:12 +01:00
mac802154
mpls
ncsi
netfilter jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
netlabel
netlink net: netlink: rename NETLINK_DUMP_STRICT_CHK -> NETLINK_GET_STRICT_CHK 2018-12-14 11:44:31 -08:00
netrom netrom: fix locking in nr_find_socket() 2018-12-30 20:24:16 -08:00
nfc net: Revert recent Spectre-v1 patches. 2018-12-23 16:01:35 -08:00
nsh
openvswitch openvswitch: meter: Use struct_size() in kzalloc() 2019-01-16 21:10:47 -08:00
packet packet: Do not leak dev refcounts on error exit 2019-01-08 21:41:40 -05:00
phonet net: Revert recent Spectre-v1 patches. 2018-12-23 16:01:35 -08:00
psample
qrtr
rds rds: use DIV_ROUND_UP instead of ceil 2019-01-07 07:22:36 -08:00
rfkill rfkill: gpio: Remove unused include 2018-12-18 13:13:56 +01:00
rose
rxrpc
sched net_sched: add hit counter for matchall 2019-01-18 14:13:50 -08:00
sctp mm: convert totalram_pages and totalhigh_pages variables to atomic 2018-12-28 12:11:47 -08:00
smc smc: move unhash as early as possible in smc_release() 2019-01-07 14:40:27 -05:00
strparser
sunrpc Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
switchdev switchdev: Add extack argument to call_switchdev_notifiers() 2019-01-17 15:18:47 -08:00
tipc tipc: remove unneeded semicolon in trace.c 2019-01-17 22:04:43 -08:00
tls tls: Fix recvmsg() to be able to peek across multiple records 2019-01-17 14:20:40 -08:00
unix
vmw_vsock Fix ERROR:do not initialise statics to 0 in af_vsock.c 2019-01-15 20:38:29 -08:00
wimax
wireless Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-12-27 13:53:32 -08:00
x25
xdp xsk: simplify AF_XDP socket teardown 2018-12-19 21:45:17 +01:00
xfrm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-20 11:53:36 -08:00
compat.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
Kconfig net: convert bridge_nf to use skb extension infrastructure 2018-12-19 11:21:37 -08:00
Makefile
socket.c y2038: more syscalls and cleanups 2018-12-28 12:45:04 -08:00
sysctl_net.c