android_kernel_motorola_sm6375/net
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kevin Bracey 3bd7629eb8 net_sched: restore "mpu xxx" handling
commit fb80445c438c78b40b547d12b8d56596ce4ccfeb upstream.

commit 56b765b79e ("htb: improved accuracy at high rates") broke
"overhead X", "linklayer atm" and "mpu X" attributes.

"overhead X" and "linklayer atm" have already been fixed. This restores
the "mpu X" handling, as might be used by DOCSIS or Ethernet shaping:

    tc class add ... htb rate X overhead 4 mpu 64

The code being fixed is used by htb, tbf and act_police. Cake has its
own mpu handling. qdisc_calculate_pkt_len still uses the size table
containing values adjusted for mpu by user space.

iproute2 tc has always passed mpu into the kernel via a tc_ratespec
structure, but the kernel never directly acted on it, merely stored it
so that it could be read back by `tc class show`.

Rather, tc would generate length-to-time tables that included the mpu
(and linklayer) in their construction, and the kernel used those tables.

Since v3.7, the tables were no longer used. Along with "mpu", this also
broke "overhead" and "linklayer" which were fixed in 01cb71d2d4
("net_sched: restore "overhead xxx" handling", v3.10) and 8a8e3d84b1
("net_sched: restore "linklayer atm" handling", v3.11).

"overhead" was fixed by simply restoring use of tc_ratespec::overhead -
this had originally been used by the kernel but was initially omitted
from the new non-table-based calculations.

"linklayer" had been handled in the table like "mpu", but the mode was
not originally passed in tc_ratespec. The new implementation was made to
handle it by getting new versions of tc to pass the mode in an extended
tc_ratespec, and for older versions of tc the table contents were analysed
at load time to deduce linklayer.

As "mpu" has always been given to the kernel in tc_ratespec,
accompanying the mpu-based table, we can restore system functionality
with no userspace change by making the kernel act on the tc_ratespec
value.

Fixes: 56b765b79e ("htb: improved accuracy at high rates")
Signed-off-by: Kevin Bracey <kevin@bracey.fi>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jiri Pirko <jiri@resnulli.us>
Cc: Vimalkumar <j.vimal@gmail.com>
Link: https://lore.kernel.org/r/20220112170210.1014351-1-kevin@bracey.fi
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-27 09:19:55 +01:00
..
6lowpan
9p 9p/net: fix missing error check in p9_check_errors 2021-11-17 09:48:49 +01:00
802
8021q net: vlan: fix underflow for the real_dev refcnt 2021-12-01 09:23:34 +01:00
appletalk
atm
ax25 ax25: NPD bug when detaching AX25 device 2021-12-29 12:23:38 +01:00
batman-adv batman-adv: allow netlink usage in unprivileged containers 2022-01-27 09:19:41 +01:00
bluetooth Bluetooth: Fix debugfs entry leak in hci_register_dev() 2022-01-27 09:19:40 +01:00
bpf
bpfilter
bridge netfilter: bridge: add support for pppoe filtering 2022-01-27 09:19:31 +01:00
caif
can can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM 2021-12-08 09:01:08 +01:00
ceph
core netns: add schedule point in ops_exit_list() 2022-01-27 09:19:54 +01:00
dcb
dccp
decnet
dns_resolver
dsa
ethernet
hsr
ieee802154
ife
ipv4 gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst() 2022-01-27 09:19:54 +01:00
ipv6 xfrm: fix policy lookup for ipv6 gre packets 2022-01-27 09:19:50 +01:00
iucv
kcm
key
l2tp
l3mdev
lapb
llc
mac80211 mac80211: allow non-standard VHT MCS-10/11 2022-01-27 09:19:46 +01:00
mac802154
mpls net: mpls: Fix notifications when deleting a device 2021-12-08 09:01:12 +01:00
ncsi net/ncsi: check for error return from call to nla_put_u32 2022-01-05 12:37:45 +01:00
netfilter netfilter: fix regression in looped (broad|multi)cast's MAC handling 2021-12-29 12:23:34 +01:00
netlabel
netlink net: netlink: af_netlink: Prevent empty skb by adding a check on len. 2021-12-17 10:12:23 +01:00
netrom
nfc nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind() 2022-01-27 09:19:26 +01:00
nsh
openvswitch
packet net/packet: rx_owner_map depends on pg_vec 2021-12-22 09:29:38 +01:00
phonet phonet: refcount leak in pep_sock_accep 2022-01-11 15:23:33 +01:00
psample
qrtr
rds rds: memory leak in __rds_conn_create() 2021-12-22 09:29:37 +01:00
rfkill
rose
rxrpc rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() 2021-12-08 09:01:12 +01:00
sched net_sched: restore "mpu xxx" handling 2022-01-27 09:19:55 +01:00
sctp sctp: use call_rcu to free endpoint 2022-01-05 12:37:44 +01:00
smc net/smc: Prevent smc_release() from long blocking 2021-12-22 09:29:38 +01:00
strparser bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding 2021-11-17 09:48:48 +01:00
sunrpc SUNRPC: Partial revert of commit 6f9f17287e78 2021-11-17 09:48:50 +01:00
switchdev net: switchdev: do not propagate bridge updates across bridges 2021-10-27 09:54:24 +02:00
tipc
tls net/tls: Fix authentication failure in CCM mode 2021-12-08 09:01:14 +01:00
unix af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress 2022-01-27 09:19:53 +01:00
vmw_vsock vsock: prevent unnecessary refcnt inc for nonblocking connect 2021-11-17 09:48:48 +01:00
wimax
wireless cfg80211: call cfg80211_stop_ap when switch from P2P_GO type 2021-11-26 10:47:22 +01:00
x25
xdp Revert "xsk: Do not sleep in poll() when need_wakeup set" 2021-12-22 09:29:40 +01:00
xfrm xfrm: Don't accidentally set RTO_ONLINK in decode_session4() 2022-01-27 09:19:54 +01:00
compat.c
Kconfig
Makefile
socket.c
sysctl_net.c