50931 Commits

Author SHA1 Message Date
Adithya R
e461316405 wireguard: compat: Remove skb_mark_not_on_list
Already added in 4263e32f284dd23341770573709e6e9bd16998da ("UPSTREAM: net: use skb_list_del_init() to remove from RX sublists")
2022-10-01 23:55:36 +05:30
idkwhoiam322
b7f4d80fbc wireguard: compat: Adapt for upstream mm commit
3b3cecea215895b2235f2eb70e9e6859b379630a: "mm: convert totalram_pages and totalhigh_pages variables to atomic"

Signed-off-by: Adithya R <gh0strider.2k18.reborn@gmail.com>
2022-10-01 23:53:31 +05:30
Adithya R
33e79cbd8f net: Import WireGuard from wireguard-linux-compat
v1.0.20220627

https://github.com/WireGuard/wireguard-linux-compat/releases/tag/v1.0.20220627
2022-10-01 23:46:20 +05:30
Adithya R
8960a882bf Merge tag 'LA.UM.9.1.r1-12300-SMxxx0.0' of msm-4.14 2022-09-21 01:33:22 +05:30
Marcelo Ricardo Leitner
198f601808 sctp: add param size validation for SCTP_PARAM_SET_PRIMARY
commit ef6c8d6ccf0c1dccdda092ebe8782777cd7803c9 upstream.

When SCTP handles an INIT chunk, it calls for example:
sctp_sf_do_5_1B_init
  sctp_verify_init
    sctp_verify_param
  sctp_process_init
    sctp_process_param
      handling of SCTP_PARAM_SET_PRIMARY

sctp_verify_init() wasn't doing proper size validation and neither the
later handling, allowing it to work over the chunk itself, possibly being
uninitialized memory.

Change-Id: I84e0d63e3ad4072efb8b38e1ebb4ab8e8c59fef4
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: 6c4a5606951cf2be8cbed4d4aefbbeaedb4cb24f
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: PavanKumar S.R <quic_pavasr@quicinc.com>
2022-03-10 23:13:27 +05:30
Marcelo Ricardo Leitner
524cbe4967 sctp: validate chunk size in __rcv_asconf_lookup
commit b6ffe7671b24689c09faa5675dd58f93758a97ae upstream.

In one of the fallbacks that SCTP has for identifying an association for an
incoming packet, it looks for AddIp chunk (from ASCONF) and take a peek.
Thing is, at this stage nothing was validating that the chunk actually had
enough content for that, allowing the peek to happen over uninitialized
memory.

Similar check already exists in actual asconf handling in
sctp_verify_asconf().

Change-Id: I3f1e77136feb7bccc649706c4bc48e7c4a146e38
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Git-commit: e58e3511b3c2080071ce451917d032f1e39c0788
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: PavanKumar S.R <quic_pavasr@quicinc.com>
2022-03-10 23:09:54 +05:30
Marcelo Ricardo Leitner
1466ff7c5f sctp: add size validation when walking chunks
[ Upstream commit 50619dbf8db77e98d821d615af4f634d08e22698 ]

The first chunk in a packet is ensured to be present at the beginning of
sctp_rcv(), as a packet needs to have at least 1 chunk. But the second
one, may not be completely available and ch->length can be over
uninitialized memory.

Fix here is by only trying to walk on the next chunk if there is enough to
hold at least the header, and then proceed with the ch->length validation
that is already there.

Change-Id: I3d6ed22a498b6203cad4c7eef923d3b5fe8d9f6e
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Git-commit: d890768c1ed6688ca5cd54ee37a69d90ea8c422f
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: PavanKumar S.R <quic_pavasr@quicinc.com>
2022-03-10 23:05:09 +05:30
Marcelo Ricardo Leitner
fb9bbf90f2 sctp: validate from_addr_param return
[ Upstream commit 0c5dc070ff3d6246d22ddd931f23a6266249e3db ]

Ilja reported that, simply putting it, nothing was validating that
from_addr_param functions were operating on initialized memory. That is,
the parameter itself was being validated by sctp_walk_params, but it
doesn't check for types and their specific sizes and it could be a 0-length
one, causing from_addr_param to potentially work over the next parameter or
even uninitialized memory.

The fix here is to, in all calls to from_addr_param, check if enough space
is there for the wanted IP address type.

Change-Id: Ia9b0ce49cb95dc200bddf88596fb3f996feb8309
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Git-commit: f01bfaea62d14938ff2fbeaf67f0afec2ec64ab9
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: PavanKumar S.R <quic_pavasr@quicinc.com>
2022-03-10 23:00:56 +05:30
Eric Dumazet
6b9159a662 BACKPORT: tcp: do not call tcp_cleanup_rbuf() if we have a backlog
Under pressure, tcp recvmsg() has logic to process the socket backlog,
but calls tcp_cleanup_rbuf() right before.

Avoiding sending ACK right before processing new segments makes
a lot of sense, as this decrease the number of ACK packets,
with no impact on effective ACK clocking.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:49 +05:30
Eric Dumazet
43f1df2ab9 BACKPORT: tcp: check local var (timeo) before socket fields in one test
Testing timeo before sk_err/sk_state/sk_shutdown makes more sense.

Modern applications use non-blocking IO, while a socket is terminated
only once during its life time.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:49 +05:30
Eric Dumazet
d445199147 BACKPORT: tcp: defer skb freeing after socket lock is released
tcp recvmsg() (or rx zerocopy) spends a fair amount of time
freeing skbs after their payload has been consumed.

A typical ~64KB GRO packet has to release ~45 page
references, eventually going to page allocator
for each of them.

Currently, this freeing is performed while socket lock
is held, meaning that there is a high chance that
BH handler has to queue incoming packets to tcp socket backlog.

This can cause additional latencies, because the user
thread has to process the backlog at release_sock() time,
and while doing so, additional frames can be added
by BH handler.

This patch adds logic to defer these frees after socket
lock is released, or directly from BH handler if possible.

Being able to free these skbs from BH handler helps a lot,
because this avoids the usual alloc/free assymetry,
when BH handler and user thread do not run on same cpu or
NUMA node.

One cpu can now be fully utilized for the kernel->user copy,
and another cpu is handling BH processing and skb/page
allocs/frees (assuming RFS is not forcing use of a single CPU)

Tested:
 100Gbit NIC
 Max throughput for one TCP_STREAM flow, over 10 runs

MTU : 1500
Before: 55 Gbit
After:  66 Gbit

MTU : 4096+(headers)
Before: 82 Gbit
After:  95 Gbit

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:48 +05:30
Eric Dumazet
1d7913c11a BACKPORT: tcp: avoid indirect calls to sock_rfree
TCP uses sk_eat_skb() when skbs can be removed from receive queue.
However, the call to skb_orphan() from __kfree_skb() incurs
an indirect call so sock_rfee(), which is more expensive than
a direct call, especially for CONFIG_RETPOLINE=y.

Add tcp_eat_recv_skb() function to make the call before
__kfree_skb().

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:48 +05:30
Eric Dumazet
f35d827b65 BACKPORT: tcp: tp->urg_data is unlikely to be set
Use some unlikely() hints in the fast path.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:47 +05:30
Eric Dumazet
94f96c1a43 BACKPORT: tcp: annotate races around tp->urg_data
tcp_poll() and tcp_ioctl() are reading tp->urg_data without socket lock
owned.

Also, it is faster to first check tp->urg_data in tcp_poll(),
then tp->urg_seq == tp->copied_seq, because tp->urg_seq is
located in a different/cold cache line.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:47 +05:30
Eric Dumazet
5ac4ca9d80 BACKPORT: tcp: annotate data-races on tp->segs_in and tp->data_segs_in
tcp_segs_in() can be called from BH, while socket spinlock
is held but socket owned by user, eventually reading these
fields from tcp_get_info()

Found by code inspection, no need to backport this patch
to older kernels.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:47 +05:30
Eric Dumazet
633b6bd09f BACKPORT: tcp: small optimization in tcp recvmsg()
When reading large chunks of data, incoming packets might
be added to the backlog from BH.

tcp recvmsg() detects the backlog queue is not empty, and uses
a release_sock()/lock_sock() pair to process this backlog.

We now have __sk_flush_backlog() to perform this
a bit faster.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:46 +05:30
Eric Dumazet
8bd67bfd31 BACKPORT: tcp: remove dead code after CHECKSUM_PARTIAL adoption
Since all skbs in write/rtx queues have CHECKSUM_PARTIAL,
we can remove dead code.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:46 +05:30
Eric Dumazet
abb6ffcfca BACKPORT: tcp: minor optimization in tcp_add_backlog()
If packet is going to be coalesced, sk_sndbuf/sk_rcvbuf values
are not used. Defer their access to the point we need them.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[cyberknight777: backport to 4.14]
Signed-off-by: Cyber Knight <cyberknight755@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2022-02-06 23:50:45 +05:30
Adithya R
91e0f44ee7 Merge tag 'LA.UM.9.1.r1-11300-SMxxx0.0' of https://source.codeaurora.org/quic/la/kernel/msm-4.14 into staging/LA.UM.9.x
"LA.UM.9.1.r1-11300-SMxxx0.0"
2021-11-10 17:28:46 +05:30
Eric Dumazet
1af8561ce1 net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
commit 50535249f624d0072cd885bcdce4e4b6fb770160 upstream.

struct sockaddr_qrtr has a 2-byte hole, and qrtr_recvmsg() currently
does not clear it before copying kernel data to user space.

It might be too late to name the hole since sockaddr_qrtr structure is uapi.

BUG: KMSAN: kernel-infoleak in kmsan_copy_to_user+0x9c/0xb0 mm/kmsan/kmsan_hooks.c:249
CPU: 0 PID: 29705 Comm: syz-executor.3 Not tainted 5.11.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:79 [inline]
 dump_stack+0x21c/0x280 lib/dump_stack.c:120
 kmsan_report+0xfb/0x1e0 mm/kmsan/kmsan_report.c:118
 kmsan_internal_check_memory+0x202/0x520 mm/kmsan/kmsan.c:402
 kmsan_copy_to_user+0x9c/0xb0 mm/kmsan/kmsan_hooks.c:249
 instrument_copy_to_user include/linux/instrumented.h:121 [inline]
 _copy_to_user+0x1ac/0x270 lib/usercopy.c:33
 copy_to_user include/linux/uaccess.h:209 [inline]
 move_addr_to_user+0x3a2/0x640 net/socket.c:237
 ____sys_recvmsg+0x696/0xd50 net/socket.c:2575
 ___sys_recvmsg net/socket.c:2610 [inline]
 do_recvmmsg+0xa97/0x22d0 net/socket.c:2710
 __sys_recvmmsg net/socket.c:2789 [inline]
 __do_sys_recvmmsg net/socket.c:2812 [inline]
 __se_sys_recvmmsg+0x24a/0x410 net/socket.c:2805
 __x64_sys_recvmmsg+0x62/0x80 net/socket.c:2805
 do_syscall_64+0x9f/0x140 arch/x86/entry/common.c:48
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x465f69
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f43659d6188 EFLAGS: 00000246 ORIG_RAX: 000000000000012b
RAX: ffffffffffffffda RBX: 000000000056bf60 RCX: 0000000000465f69
RDX: 0000000000000008 RSI: 0000000020003e40 RDI: 0000000000000003
RBP: 00000000004bfa8f R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000010060 R11: 0000000000000246 R12: 000000000056bf60
R13: 0000000000a9fb1f R14: 00007f43659d6300 R15: 0000000000022000

Local variable ----addr@____sys_recvmsg created at:
 ____sys_recvmsg+0x168/0xd50 net/socket.c:2550
 ____sys_recvmsg+0x168/0xd50 net/socket.c:2550

Bytes 2-3 of 12 are uninitialized
Memory access of size 12 starts at ffff88817c627b40
Data copied to user address 0000000020000140

Fixes: bdabad3e363d ("net: Add Qualcomm IPC router")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Courtney Cavin <courtney.cavin@sonymobile.com>
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: Ia9a1f07114272dc78a471c3c271358b34ebb3dc3
Git-commit: 749d2e33bfbacb3112cbfaafde75e507cb46c67d
Git-repo: https://android.googlesource.com/kernel/msm
Signed-off-by: PavanKumar S.R. <pavasr@codeaurora.org>
2021-10-17 23:04:14 -07:00
DennySPb
89b0407d40 net: Prevent useless userpace spam
NetlinkEvent::FindParam(): Parameter '...' not found"

Signed-off-by: DennySPb <dennyspb@gmail.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-09-15 14:29:11 +05:30
LibXZR
f4007622df Revert "net: qrtr: Add pm_wakeup_event() support"
* This isn't quite needed imo. We already have a modem wakelock.

This reverts commit 26f20c8e5eb2553e4412a0d5502e769f5f710a6c.

Signed-off-by: LibXZR <xzr467706992@163.com>
2021-08-15 13:19:26 +05:30
Adithya R
c65c2e9bc6 [SQUASH] treewide: Revert backported crypto algos
* breaks vowifi, besides i had little to no improvement
   in geekbench aex-xts scores with these

Revert "ARM64/configs: surya: Enable backported crypto algos"

This reverts commit 53cf765af430ea1ce8b99cfdebfaf1fbd05ce9e7.

Revert "arm64: crypto: aes-glue: always clear out defines before assuming"

This reverts commit 6bdf40bd12304f3c26c7278be8172dae4d355d23.

Revert "lib: crypto: move out aes generic library into arm64"

This reverts commit 6f53883b2cac7ec3818464e90738182c7da727b4.

Revert "crypto: bring back blkcipher"

This reverts commit 49ab3ad968fdf0f3b15a7014d6958cc46e50c4a3.

Revert "crypto: lib/aes - export sbox and inverse sbox"

This reverts commit 6d7509597228bb2824b229b6f92200621af17039.

Revert "crypto: lib/aes add aes generic"

This reverts commit cd956b7d9c2533f72a41eaa1421d7896c867137c.

Revert "HACK: include: crypto: aes.h: redirect aes function definitions to current ones"

This reverts commit 90035f7567d034bebd0672724d2ee341d9ef789a.

Revert "arm64: assembler: add utility macros to push/pop stack frames"

This reverts commit 5899671c86c750a23f68fce359ac4574f289b252.

Revert "crypto: skcipher - add the ability to abort a skcipher walk"

This reverts commit 6bfa9de12bea39c63115d573b292e6352a85ef69.

Revert "crypto: aes/fixed-time - align key schedule with other implementations"

This reverts commit 6b930b634c0bab896b127835ffba9a3c2d796760.

Revert "crypto: sm4 - export encrypt/decrypt routines to other drivers"

This reverts commit 306ce112895e48e8c67f5531dcc7794b8c9799d2.

Revert "crypto: sm4 - introduce SM4 symmetric cipher algorithm"

This reverts commit 9e677e8a2fe26fd4694dfff61279bd85237aacc8.

Revert "crypto: hash - introduce crypto_shash_tfm_digest()"

This reverts commit 2e972aa2655e7e50b4362d92e13b78723ab32c01.

Revert "crypto: ctr - add helper for performing a CTR encryption walk"

This reverts commit 20d0ffb036d9f88eb7b2c056202a9e6f4cece6bf.

Revert "crypto: sm3 - export crypto_sm3_final function"

This reverts commit d6983c76e3da30db111421795beda5c703955aa9.

Revert "crypto: sm3 - add OSCCA SM3 secure hash"

This reverts commit d6a29406704f117dfd2cc99b78078831d1fe287e.

Revert "crypto: don't optimize keccakf()"

This reverts commit 598d21bacff6319be4aa058025c632b107413f32.

Revert "crypto: sha3-generic - Use __optimize to support old compilers"

This reverts commit 734a8b2ae19a5e6e1ca1ada7ccb333a9655a0673.

Revert "crypto: sha3-generic - deal with oversize stack frames"

This reverts commit 83f16c21f6e058890a258a2a5b765046f6d1230c.

Revert "crypto: sha3-generic - export init/update/final routines"

This reverts commit 591f7afb9d0890c2ee9460360112aa4e448a3924.

Revert "crypto: sha3-generic - simplify code"

This reverts commit 6a9ea8f69fb0baa3d403fbbb82e052d684bc9fec.

Revert "crypto: sha3-generic - rewrite KECCAK transform to help the compiler optimize"

This reverts commit f7f038880d90b321a48788160beea14fa294f109.

Revert "arm64: crypto: fallback to may_use_yield"

This reverts commit 5dc3c1306cd51f5ca293e8b76f7f382ba68da2c2.

Revert "arm64: assembler: add cond_yield macro"

This reverts commit 10ec3894fbd69c75638c44925408b4a618a6afa8.

Revert "crypto: arm64/aes-ce - deal with oversight in new CTR carry code"

This reverts commit 769190a03e8e1373a4e6ebfffa409bd89a123e85.

Revert "crypto: arm64/crc-t10dif - move NEON yield to C code"

This reverts commit ae264b6f57eb729aaeb9f8c0cb64d6da7d2a61ae.

Revert "crypto: arm64/aes-ce-mac - simplify NEON yield"

This reverts commit f497267b2d962c1d1e3227b68ed47450235c0134.

Revert "crypto: arm64/aes-neonbs - remove NEON yield calls"

This reverts commit e3bf48533edde9d66e0de81df758b75e5daf7649.

Revert "crypto: arm64/sha512-ce - simplify NEON yield"

This reverts commit 223c7a38e2597442d1bfa9b8cf1d22d4e5bc975b.

Revert "crypto: arm64/sha3-ce - simplify NEON yield"

This reverts commit c4ab0f1013d7f75e77bbb190d2d0a45931777e06.

Revert "crypto: arm64/sha2-ce - simplify NEON yield"

This reverts commit c194acd3691aa17bb4bfff16124b2a3f476d0f4f.

Revert "crypto: arm64/sha1-ce - simplify NEON yield"

This reverts commit 2c13ddfe897ccda89cdbbb77d44522b7a1b52d71.

Revert "crypto: arm64/sha - add missing module aliases"

This reverts commit 0ccfa37388086d02858f9a829a8424ea6fe91369.

Revert "crypto: arm64/aes-ctr - improve tail handling"

This reverts commit 76050bf6b606b2a634d5d2615e3e37da30de1ccd.

Revert "crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled"

This reverts commit 5648ba13a3c67b2f15544c73d75525f4b47af4f6.

Revert "crypto: arm64/gcm - move authentication tag check to SIMD domain"

This reverts commit 1efe38494e3a102b79f267e85359dad696483790.

Revert "crypto: arm64/chacha - simplify tail block handling"

This reverts commit c5f4710f95bbc3b530f22d6752cd1ff3d2006f67.

Revert "crypto: hash - Use memzero_explicit() for clearing state"

This reverts commit 1ec2a7f09f56c06773a754b1037d9463d44cf5b0.

Revert "crypto: arm64: Use x16 with indirect branch to bti_c"

This reverts commit a8c3cc4987341e820cf33589fb8be1e80d6a1455.

Revert "crypto: arm64/gcm - Fix endianness warnings"

This reverts commit 02adba8b71b749dbd0d4912e233e18b20f5a8a9d.

Revert "crypto: arm64/sha - Add declarations for assembly variables"

This reverts commit 435ec992f88cefba133194f1ee249805d482d8b2.

Revert "crypto: arm64/gcm - use inline helper to suppress indirect calls"

This reverts commit bc92b86fadeb48ae4bfef2b0d3c5b9ba078a4328.

Revert "crypto: arm64/gcm - use variably sized key struct"

This reverts commit 0aa3bc4ef6a0400c29fa82bf222996ed63a221f9.

Revert "crypto: arm64/gcm - disentangle ghash and gcm setkey() routines"

This reverts commit 4ff08ef5dd27b020b66fbe45f61282f20942c7cb.

Revert "crypto: arm64/ghash - drop PMULL based shash"

This reverts commit 313a347394fc9593669d088608fa327c21481d16.

Revert "crypto: arm64/aes-glue - use crypto_shash_tfm_digest()"

This reverts commit fb5c6d2fd18e01024fc8a509945545ec6925cdd7.

Revert "crypto: arm64 - Consistently enable extension"

This reverts commit 6eae8549471bc9b81b8d25859e6683e9be4cc67c.

Revert "crypto: arm/neon - memzero_explicit aes-cbc key"

This reverts commit fda9fcfafd679f7ed2ef75f8859ff91680b9dd6b.

Revert "arm64: crypto: Modernize names for AES function macros"

This reverts commit 2d88fdbd9de0f95ef5b8e135474a40004b0b63c3.

Revert "arm64: crypto: Modernize some extra assembly annotations"

This reverts commit d6b0bf996b79a03a37c407bfe93a8c80adbd7821.

Revert "crypto: arm64/sha-ce - implement export/import"

This reverts commit 62e0842054a83d169791e1fddb0699589b82079d.

Revert "crypto: arm64 - Use modern annotations for assembly functions"

This reverts commit cecb3c804506cae6693fa140435dc47a5ee9154c.

Revert "crypto: arm64/ghash-neon - bump priority to 150"

This reverts commit c1c96a11a6618724bd9f2c094d22118a6244439a.

Revert "crypto: arm64/sha - fix function types"

This reverts commit b2a6b1e16dc2abd35ec6cb0fee1bb5681fc27e95.

Revert "crypto: skcipher - rename the crypto_blkcipher module and kconfig option"

This reverts commit 515e10b92b2b7bf161703c0ffbdbb7273626de1d.

Revert "crypto: arm64/aes-neonbs - add return value of skcipher_walk_done() in __xts_crypt()"

This reverts commit 06cd75589703d1b6bce80320a182b595ed42ab8e.

Revert "crypto: arm64/gcm-ce - implement 4 way interleave"

This reverts commit c14ebb4667dd5e494867ee129a997c6d2198507d.

Revert "crypto: arm64/aes-neonbs - implement ciphertext stealing for XTS"

This reverts commit d5397cf5dc32382901d611cd724eec6c3817656c.

Revert "crypto: arm64/aes - implement support for XTS ciphertext stealing"

This reverts commit 192933ba203e238cae5b16ab599e4cfa6b698d51.

Revert "crypto: arm64/aes-cts-cbc - move request context data to the stack"

This reverts commit f71bf2534f6d610950b010790b8e5675ed5455c7.

Revert "crypto: arm64/aes-cts-cbc-ce - performance tweak"

This reverts commit 7e8f61db4e78db217a3364ee47cfca764cbc5f0d.

Revert "crypto: arm64/aes-neon - limit exposed routines if faster driver is enabled"

This reverts commit ecd648682b2dc6bed3214b2e43a0eca35b63094d.

Revert "crypto: arm64/aes-neonbs - replace tweak mask literal with composition"

This reverts commit 5be595c6ba8edae081cdb63dca0353115d2484d1.

Revert "crypto: arm64/aes - Use PTR_ERR_OR_ZERO rather than its implementation."

This reverts commit aab710faff1ec9001c805568e6b8831103e3ecb6.

Revert "crypto: arm64 - Rename functions to avoid conflict with crypto/sha256.h"

This reverts commit caf246ef54b23c9675585fa555d4bb541bd59c92.

Revert "crypto: arm64/aes - implement accelerated ESSIV/CBC mode"

This reverts commit f8779aee4500c50d6d94bd980a2842308abeb79c.

Revert "crypto: arm64/aes-cts-cbc - factor out CBC en/decryption of a walk"

This reverts commit e0a1f4f64a8d1f4edf497ff327e016fbffadf66f.

Revert "crypto: arm64/aes-cipher - switch to shared AES inverse Sbox"

This reverts commit 186ffd910b0d5b0489d89ba6ca191c0cd376f05c.

Revert "crypto: arm64/aes-neon - switch to shared AES Sboxes"

This reverts commit 59e5b082956da502c60ac5760a915b486d1b8e5a.

Revert "crypto: arm64/aes-ce-cipher - use AES library as fallback"

This reverts commit a700606c4170512da6f9b4c96aba4f6df8ccf8a7.

Revert "crypto: aes - move sync ctr(aes) to AES library and generic helper"

This reverts commit 48b821c53fc518c80c410047748577bea1983e71.

Revert "crypto: arm64/aes-ce - switch to library version of key expansion routine"

This reverts commit cdd168c7cd95008f372dfadc2ba3861fc906ca60.

Revert "crypto: arm64/aes-neonbs - switch to library version of key expansion routine"

This reverts commit e2eb9cb4f948c5541bf39bbe3c5b4298c8a92909.

Revert "crypto: arm64/aes-ccm - switch to AES library"

This reverts commit 9fd25afeced4df2f1da1ecdebab4833b2aa98c3a.

Revert "crypto: arm64/ghash - switch to AES library"

This reverts commit 8790d3e83a3f13e887eadd033719c08e1156ad52.

Revert "crypto: aes - rename local routines to prevent future clashes"

This reverts commit cef928c589372b9fc280695fcaecfb6c21b7ee83.

Revert "crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR"

This reverts commit fdce296ea17bff501601164bb25b783798b4a402.

Revert "crypto: arm64/aes-ce - add 5 way interleave routines"

This reverts commit 917c3db52e00f145613a362143cb01fa16e72676.

Revert "crypto: chacha - constify ctx and iv arguments"

This reverts commit c83b6ad8ff05e72d0142471ed848023d984da356.

Revert "arm64: HWCAP: add support for AT_HWCAP2"

This reverts commit 9bb745a4cea3de91bf69fe01af7532f2877f6ac3.

Revert "crypto: arm64/cbcmac - handle empty messages in same way as template"

This reverts commit 4e90675cbb0ff662a9027f73d1f13fd6ec3d694a.

Revert "crypto: arm64 - convert to use crypto_simd_usable()"

This reverts commit 3b5ca4665ab8281d8ccec34709aafa8e43dc2e6d.

Revert "crypto: arm64/gcm-aes-ce - fix no-NEON fallback code"

This reverts commit 924a1110fe35f605fb92804200bf21b4594479d3.

Revert "crypto: arm64/chacha - fix hchacha_block_neon() for big endian"

This reverts commit 6ecb0ec105fdd67f4f60736e166ae33bc96c3821.

Revert "crypto: arm64/chacha - fix chacha_4block_xor_neon() for big endian"

This reverts commit e0c9ed3235e0d9460acc931eff40d02244553204.

Revert "crypto: arm64/aes-blk - update IV after partial final CTR block"

This reverts commit 18b10273b19d1e5e9e29d27948f68fb9a9291a28.

Revert "crypto: arm64/aes-neonbs - fix returning final keystream block"

This reverts commit 9f297390e264ffa3f1a00ff46f21c656dde26df9.

Revert "crypto: arm64/crct10dif-ce - cleanup and optimizations"

This reverts commit 2aae1e3d62019544b8716d1b69ebf90614e8cdab.

Revert "crypto: arm64/crct10dif - register PMULL variants as separate algos"

This reverts commit bb84013e29730f4f68d227d2668a67a23eea8187.

Revert "crypto: arm64/crct10dif - remove dead code"

This reverts commit e9a91b8f781aa9b9ce9b8cba96b84f564aa5c9f4.

Revert "crypto: arm64/ghash - register PMULL variants as separate algos"

This reverts commit 7d747b051d69639da21c96e934909611c9f81549.

Revert "crypto: arm64/aes-ccm - don't use an atomic walk needlessly"

This reverts commit 25b54060800d593a4ffdb34579210fc804b5489a.

Revert "crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling"

This reverts commit 8b995fb58cc5c8c6bf7489dab8fe8142301ac1da.

Revert "crypto: arm64/chacha - use combined SIMD/ALU routine for more speed"

This reverts commit fefef573014532d1deb1bdc428d3a71306d0e558.

Revert "crypto: arm64/chacha - optimize for arbitrary length inputs"

This reverts commit d7764657bd5578c796275ba5dbbac2ad713cfdca.

Revert "crypto: arm64/chacha - add XChaCha12 support"

This reverts commit e6c5e231ae1cd27d51526fafa4a7b081f332b019.

Revert "crypto: arm64/chacha20 - refactor to allow varying number of rounds"

This reverts commit fe2906d03233b94e1ddc91c505a6d2f385cc6679.

Revert "crypto: arm64/chacha20 - add XChaCha20 support"

This reverts commit b4e2ca051adf26b8cafad012b16b39d96cb77d3f.

Revert "crypto: arm64/nhpoly1305 - add NEON-accelerated NHPoly1305"

This reverts commit f5d169f37be30ca6360232e88357d715a578174f.

Revert "crypto: arm64/aes-blk - ensure XTS mask is always loaded"

This reverts commit a21d4e59e8d54c315ccbc196def1aa15ee6538c9.

Revert "crypto: arm64/aes - fix handling sub-block CTS-CBC inputs"

This reverts commit 2211e34cc97c80548ab831166373fefc7dc2f29d.

Revert "crypto: arm64/aes-blk - improve XTS mask handling"

This reverts commit 3fef20ad89773585e81febe97e7337664b488450.

Revert "crypto: arm64/aes-blk - add support for CTS-CBC mode"

This reverts commit 54f8af3c79f88da71c3173be25cbd790c8bd07ec.

Revert "crypto: arm64/aes-blk - revert NEON yield for skciphers"

This reverts commit 4007f6d321639b70146b5f3c1e4612c8f8158fee.

Revert "crypto: arm64/aes-blk - remove pointless (u8 *) casts"

This reverts commit 3e38de9d524ebc2d509f4af77a1ef53d71579f6b.

Revert "crypto: arm64/crct10dif - implement non-Crypto Extensions alternative"

This reverts commit 7546637992dddb0d5ed8ec161f5aa00b5e13d5e6.

Revert "crypto: arm64/crct10dif - preparatory refactor for 8x8 PMULL version"

This reverts commit 4a0e214b37f461ea570b3e23982447bb2cad31a5.

Revert "crypto: arm64/crc32 - remove PMULL based CRC32 driver"

This reverts commit 7362148d02a38e69e11f2c5f9985ff7375d4bd29.

Revert "crypto: arm64/aes-modes - get rid of literal load of addend vector"

This reverts commit ca48e35e57323d4ce03694240616a9d967c8ebfd.

Revert "crypto: arm64/aes-gcm-ce - fix scatterwalk API violation"

This reverts commit 842ecc8548a5ba41706ce1943f3caabed69ac06a.

Revert "crypto: arm64/sm4-ce - check for the right CPU feature bit"

This reverts commit 0d9a3ccbc34f63956c254406faf28ba2ae22fe6f.

Revert "crypto: arm64/ghash-ce - implement 4-way aggregation"

This reverts commit c2b969ace9aade2625ae01f466289f05762192ff.

Revert "crypto: arm64/ghash-ce - replace NEON yield check with block limit"

This reverts commit 811b2c5d4d1ade3c71dfc62da2ed082490acae6a.

Revert "crypto: arm64/aes-ce-gcm - don't reload key schedule if avoidable"

This reverts commit e873ab3d42c7ad1906ec869900a0507fabc0d517.

Revert "crypto: arm64/aes-ce-gcm - implement 2-way aggregation"

This reverts commit 94ccba0f7c486355122d25da43c39097d81a02c7.

Revert "crypto: arm64/aes-ce-gcm - operate on two input blocks at a time"

This reverts commit f2105c4e7e500b80b28d8ebc2f17db32c1d8bfd6.

Revert "crypto: arm64 - revert NEON yield for fast AEAD implementations"

This reverts commit 39e662f0f9d3db97eccef09f36f2fefc9a618bbd.

Revert "crypto/arm64: aes-ce-gcm - add missing kernel_neon_begin/end pair"

This reverts commit 15d003b13075a16712dcbdb177c41b2bddbcbf0e.

Revert "crypto: arm64/sha256 - increase cra_priority of scalar implementations"

This reverts commit 2ef73cb76eb12bb45bf0f89a49b7dc7126fadd47.

Revert "crypto: shash - remove useless setting of type flags"

This reverts commit c1d4b72ca1321bfcbee7b86390b808428c3a27fa.

Revert "crypto: arm64/aes-blk - fix and move skcipher_walk_done out of kernel_neon_begin, _end"

This reverts commit ac65336b8bd522c96fd50f49ef9c4ceee3603487.

Revert "crypto: clarify licensing of OpenSSL asm code"

This reverts commit e989520a26841372c045c493e7e2c8f7bbda4f59.

Revert "crypto: arm64/sha512-ce - yield NEON after every block of input"

This reverts commit 3bdd591e9b4da8c93d9ef7ae6049cf28385098a0.

Revert "crypto: arm64/sha3-ce - yield NEON after every block of input"

This reverts commit e3d3203e0645587a72da93e482f38695f107c3a4.

Revert "crypto: arm64/crct10dif-ce - yield NEON after every block of input"

This reverts commit 859ffc1c5d38d109ca9c57f0703e792f3a9582c2.

Revert "crypto: arm64/crc32-ce - yield NEON after every block of input"

This reverts commit 5f1c71918b39f512e4c1f4daeeb3c9d5706351a8.

Revert "crypto: arm64/aes-ghash - yield NEON after every block of input"

This reverts commit 3125f780eb7ac53a4cdbeed97ae91e8ec5945ea1.

Revert "crypto: arm64/aes-bs - yield NEON after every block of input"

This reverts commit ad2d657e731bd4d462cedbcd6ef5662a265d75a0.

Revert "Revert "crypto: arm64/aes-neonbs - fix returning final keystream block""

This reverts commit 1525d077c18b78b2953cf0d1868c444c37d3c682.

Revert "crypto: arm64/aes-blk - yield NEON after every block of input"

This reverts commit 5accaa34eea96c527aa8ec741383d3f38042ff69.

Revert "crypto: arm64/aes-ccm - yield NEON after every block of input"

This reverts commit c8f4e1b6574b2d4fdc06cd352b6950a8da2bef6c.

Revert "Revert "crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling""

This reverts commit 1629c18dda48bbac7154022dccdf9eb952ba8643.

Revert "crypto: arm64/sha2-ce - yield NEON after every block of input"

This reverts commit 343779e3c70586299ab67f3f9216562ab9bd6001.

Revert "crypto: arm64/sha1-ce - yield NEON after every block of input"

This reverts commit 68106b7893e6e78da5dc39601cba4d7a60071dea.

Revert "crypto: arm64 - add support for SM4 encryption using special instructions"

This reverts commit b9547b0195e0c89e59f41a631eadad77220d8993.

Revert "crypto: arm64/sha256-neon - play nice with CONFIG_PREEMPT kernels"

This reverts commit 33045c52eb89af1dca46aa2f31b9ace6848eb1fd.

Revert "crypto: arm64/aes-blk - add 4 way interleave to CBC-MAC encrypt path"

This reverts commit 2624ccfec2c746fd5c38e52be423d81d772ab785.

Revert "crypto: arm64/aes-blk - add 4 way interleave to CBC encrypt path"

This reverts commit 26acced8924afe42757e2f20420d2b412fd5122d.

Revert "crypto: arm64/aes-blk - remove configurable interleave"

This reverts commit aade51c37fda96baf6708504fae38dd7e8f3b525.

Revert "crypto: arm64/chacha20 - move kernel mode neon en/disable into loop"

This reverts commit 563fdb9d8718c999feff21a56e855d7d368bfe38.

Revert "crypto: arm64/aes-bs - move kernel mode neon en/disable into loop"

This reverts commit 7693fb31e5ec7a3a442abc82ce6dc223e0070c63.

Revert "crypto: arm64/aes-blk - move kernel mode neon en/disable into loop"

This reverts commit f3d47872ae322555f1933b89deaedf15f01a1630.

Revert "crypto: arm64/aes-ce-ccm - move kernel mode neon en/disable into loop"

This reverts commit 208213ffed71f368561cddafd96b8d726a96d628.

Revert "crypto: arm64/speck - add NEON-accelerated implementation of Speck-XTS"

This reverts commit a53ebc68fb69e48a0670b74f2107339937af236b.

Revert "crypto: arm64/sha512 - fix/improve new v8.2 Crypto Extensions code"

This reverts commit 3fe60009d5c1a9619412ff4e8f3a3963b90b03ee.

Revert "crypto: arm64/sm3 - new v8.2 Crypto Extensions implementation"

This reverts commit f12a399dc824600b5df583418a96759d7b76df3d.

Revert "crypto: arm64/sha3 - new v8.2 Crypto Extensions implementation"

This reverts commit 0224378dd15ddc1e5bf6999b26f6a722be125604.

Revert "crypto: arm64/sha1-ce - get rid of literal pool"

This reverts commit 537e00dd0c79e6c31c4b3b2adde9727aa9f2590f.

Revert "crypto: arm64/sha2-ce - move the round constant table to .rodata section"

This reverts commit 11f38eee4f30ae202563dce4742be2819cf5ffe7.

Revert "crypto: arm64/crct10dif - move literal data to .rodata section"

This reverts commit 89710355b705b55f2c410c698ee8cd510c769672.

Revert "crypto: arm64/crc32 - move literal data to .rodata section"

This reverts commit d3fada575171f56e3dbbc402b119db0a7e106b65.

Revert "crypto: arm64/aes-neon - move literal data to .rodata section"

This reverts commit b73eae3af478173d89be32546d3db209c241a2ac.

Revert "crypto: arm64/aes-cipher - move S-box to .rodata section"

This reverts commit fc79c79af1578456030b820c8855887f79460eec.

Revert "crypto: arm64 - implement SHA-512 using special instructions"

This reverts commit f85618f0d28e37abd7fbb83acaa3de5e32849c5e.

Revert "crypto: arm64/aes - do not call crypto_unregister_skcipher twice on error"

This reverts commit 095b634144846d00932b2d68b212373b203d8265.

Revert "[SQUASH] arm64: crypto: Revert old backports"

This reverts commit 62e858fc144999fd13942977e9de8f0ab4b17041.
2021-08-13 15:21:38 +05:30
Sultanxda
b54c853d29 net: sch_generic: Remove unnecessary watchdog warning
We're never going to debug these ugly warnings.

Signed-off-by: Sultanxda <sultanxda@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2021-08-13 13:19:10 +05:30
Eric Biggers
515e10b92b crypto: skcipher - rename the crypto_blkcipher module and kconfig option
Now that the blkcipher algorithm type has been removed in favor of
skcipher, rename the crypto_blkcipher kernel module to crypto_skcipher,
and rename the config options accordingly:

	CONFIG_CRYPTO_BLKCIPHER => CONFIG_CRYPTO_SKCIPHER
	CONFIG_CRYPTO_BLKCIPHER2 => CONFIG_CRYPTO_SKCIPHER2

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Jebaitedneko <Jebaitedneko@gmail.com>
Signed-off-by: Vaisakh Murali <mvaisakh@statixos.com>
2021-07-31 22:16:24 +05:30
Kees Cook
6ec6a34288 xfrm: remove VLA usage in __xfrm6_sort()
In the quest to remove all stack VLA usage removed from the kernel[1],
just use XFRM_MAX_DEPTH as already done for the "class" array. In one
case, it'll do this loop up to 5, the other caller up to 6.

[1] https://lkml.org/lkml/2018/3/7/621

Co-developed-by: Andreas Christoforou <andreaschristofo@gmail.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:54 +05:30
Kees Cook
e5089f8d0e netfilter: nfnetlink: Remove VLA usage
In the quest to remove all stack VLA usage from the kernel[1], this
allocates the maximum size expected for all possible attrs and adds
sanity-checks at both registration and usage to make sure nothing
gets out of sync.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:54 +05:30
Prashant Bhole
fe83e9c32c rtnetlink: Fix null-ptr-deref in rtnl_newlink
In rtnl_newlink(), NULL check is performed on m_ops however member of
ops is accessed. Fixed by accessing member of m_ops instead of ops.

[  345.432629] BUG: KASAN: null-ptr-deref in rtnl_newlink+0x400/0x1110
[  345.432629] Read of size 4 at addr 0000000000000088 by task ip/986
[  345.432629]
[  345.432629] CPU: 1 PID: 986 Comm: ip Not tainted 4.17.0-rc6+ #9
[  345.432629] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[  345.432629] Call Trace:
[  345.432629]  dump_stack+0xc6/0x150
[  345.432629]  ? dump_stack_print_info.cold.0+0x1b/0x1b
[  345.432629]  ? kasan_report+0xb4/0x410
[  345.432629]  kasan_report.cold.4+0x8f/0x91
[  345.432629]  ? rtnl_newlink+0x400/0x1110
[  345.432629]  rtnl_newlink+0x400/0x1110
[...]

Fixes: ccf8dbcd062a ("rtnetlink: Remove VLA usage")
Signed-off-by: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
Tested-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:53 +05:30
Kees Cook
143b297c8e rtnetlink: Remove VLA usage
In the quest to remove all stack VLA usage from the kernel[1], this
allocates the maximum size expected for all possible types and adds
sanity-checks at both registration and usage to make sure nothing gets
out of sync. This matches the proposed VLA solution for nfnetlink[2]. The
values chosen here were based on finding assignments for .maxtype and
.slave_maxtype and manually counting the enums:

slave_maxtype (max 33):
	IFLA_BRPORT_MAX     33
	IFLA_BOND_SLAVE_MAX  9

maxtype (max 45):
	IFLA_BOND_MAX       28
	IFLA_BR_MAX         45
	__IFLA_CAIF_HSI_MAX  8
	IFLA_CAIF_MAX        4
	IFLA_CAN_MAX        16
	IFLA_GENEVE_MAX     12
	IFLA_GRE_MAX        25
	IFLA_GTP_MAX         5
	IFLA_HSR_MAX         7
	IFLA_IPOIB_MAX       4
	IFLA_IPTUN_MAX      21
	IFLA_IPVLAN_MAX      3
	IFLA_MACSEC_MAX     15
	IFLA_MACVLAN_MAX     7
	IFLA_PPP_MAX         2
	__IFLA_RMNET_MAX     4
	IFLA_VLAN_MAX        6
	IFLA_VRF_MAX         2
	IFLA_VTI_MAX         7
	IFLA_VXLAN_MAX      28
	VETH_INFO_MAX        2
	VXCAN_INFO_MAX       2

This additionally changes maxtype and slave_maxtype fields to unsigned,
since they're only ever using positive values.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com
[2] https://patchwork.kernel.org/patch/10439647/

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:53 +05:30
Kees Cook
201c5408b1 rxrpc: Remove VLA usage of skcipher
In the quest to remove all stack VLA usage from the kernel[1], this
replaces struct crypto_skcipher and SKCIPHER_REQUEST_ON_STACK() usage
with struct crypto_sync_skcipher and SYNC_SKCIPHER_REQUEST_ON_STACK(),
which uses a fixed stack size.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Cc: David Howells <dhowells@redhat.com>
Cc: linux-afs@lists.infradead.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:49 +05:30
Kees Cook
daba0eba6f libceph: Remove VLA usage of skcipher
In the quest to remove all stack VLA usage from the kernel[1], this
replaces struct crypto_skcipher and SKCIPHER_REQUEST_ON_STACK() usage
with struct crypto_sync_skcipher and SYNC_SKCIPHER_REQUEST_ON_STACK(),
which uses a fixed stack size.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Cc: Ilya Dryomov <idryomov@gmail.com>
Cc: "Yan, Zheng" <zyan@redhat.com>
Cc: Sage Weil <sage@redhat.com>
Cc: ceph-devel@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:48 +05:30
Kees Cook
fc2d51a64e gss_krb5: Remove VLA usage of skcipher
In the quest to remove all stack VLA usage from the kernel[1], this
replaces struct crypto_skcipher and SKCIPHER_REQUEST_ON_STACK() usage
with struct crypto_sync_skcipher and SYNC_SKCIPHER_REQUEST_ON_STACK(),
which uses a fixed stack size.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna.schumaker@netapp.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: YueHaibing <yuehaibing@huawei.com>
Cc: linux-nfs@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-31 10:54:47 +05:30
Arun KS
196186bca5 mm: convert totalram_pages and totalhigh_pages variables to atomic
totalram_pages and totalhigh_pages are made static inline function.

Main motivation was that managed_page_count_lock handling was complicating
things.  It was discussed in length here,
https://lore.kernel.org/patchwork/patch/995739/#1181785 So it seemes
better to remove the lock and convert variables to atomic, with preventing
poteintial store-to-read tearing as a bonus.

[akpm@linux-foundation.org: coding style fixes]
Link: http://lkml.kernel.org/r/1542090790-21750-4-git-send-email-arunks@codeaurora.org
Signed-off-by: Arun KS <arunks@codeaurora.org>
Suggested-by: Michal Hocko <mhocko@suse.com>
Suggested-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Reviewed-by: Pavel Tatashin <pasha.tatashin@soleen.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Alex Winkowski <dereference23@outlook.com>

Change-Id: Iad12311402dcdebc7804fc3e4866b67c25eb4d00
2021-07-31 10:43:16 +05:30
Yury Norov
7e1b85740d bitmap: replace bitmap_{from,to}_u32array
with bitmap_{from,to}_arr32 over the kernel. Additionally to it:
* __check_eq_bitmap() now takes single nbits argument.
* __check_eq_u32_array is not used in new test but may be used in
  future. So I don't remove it here, but annotate as __used.

Tested on arm64 and 32-bit BE mips.

[arnd@arndb.de: perf: arm_dsu_pmu: convert to bitmap_from_arr32]
  Link: http://lkml.kernel.org/r/20180201172508.5739-2-ynorov@caviumnetworks.com
[ynorov@caviumnetworks.com: fix net/core/ethtool.c]
  Link: http://lkml.kernel.org/r/20180205071747.4ekxtsbgxkj5b2fz@yury-thinkpad
Link: http://lkml.kernel.org/r/20171228150019.27953-2-ynorov@caviumnetworks.com
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: David Decotigny <decot@googlers.com>,
Cc: David S. Miller <davem@davemloft.net>,
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Panchajanya Sarkar <panchajanya@azure-dev.live>
(cherry picked from commit 1db57b07796d7327995540b09d4ae9bf7e9cdfe4)
2021-07-31 10:37:59 +05:30
Martin KaFai Lau
c2f652fd4f UPSTREAM: tcp: Rename bictcp function prefix to cubictcp
The cubic functions in tcp_cubic.c are using the bictcp prefix as
in tcp_bic.c.  This patch gives it the proper name cubictcp
because the later patch will allow the bpf prog to directly
call the cubictcp implementation.  Renaming them will avoid
the name collision when trying to find the intended
one to call during bpf prog load time.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20210325015155.1545532-1-kafai@fb.com
(cherry picked from commit d22f6ad18709e93622b6115ec9a5e42ed96b5d82)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:57 +05:30
Eric Dumazet
392859af43 UPSTREAM: tcp_cubic: refactor code to perform a divide only when needed
Neal Cardwell suggested to not change ca->delay_min
and apply the ack delay cushion only when Hystart ACK train
is still under consideration. This should avoid a 64bit
divide unless needed.

Tested:

40Gbit(mlx4) testbed (with sch_fq as packet scheduler)

$ echo -n 'file tcp_cubic.c +p'  >/sys/kernel/debug/dynamic_debug/control
$ nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
  14815
  16280
  15293
  15563
  11574
  15145
  14789
  18548
  16972
  12520
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       1396               0.0
$ dmesg | tail -10
[ 4873.951350] hystart_ack_train (116 > 93) delay_min 24 (+ ack_delay 69) cwnd 80
[ 4875.155379] hystart_ack_train (55 > 50) delay_min 21 (+ ack_delay 29) cwnd 160
[ 4876.333921] hystart_ack_train (69 > 62) delay_min 23 (+ ack_delay 39) cwnd 130
[ 4877.519037] hystart_ack_train (69 > 60) delay_min 22 (+ ack_delay 38) cwnd 130
[ 4878.701559] hystart_ack_train (87 > 63) delay_min 24 (+ ack_delay 39) cwnd 160
[ 4879.844597] hystart_ack_train (93 > 50) delay_min 21 (+ ack_delay 29) cwnd 216
[ 4880.956650] hystart_ack_train (74 > 67) delay_min 20 (+ ack_delay 47) cwnd 108
[ 4882.098500] hystart_ack_train (61 > 57) delay_min 23 (+ ack_delay 34) cwnd 130
[ 4883.262056] hystart_ack_train (72 > 67) delay_min 21 (+ ack_delay 46) cwnd 130
[ 4884.418760] hystart_ack_train (74 > 67) delay_min 29 (+ ack_delay 38) cwnd 152

10Gbit(bnx2x) testbed (with sch_fq as packet scheduler)

$ echo -n 'file tcp_cubic.c +p'  >/sys/kernel/debug/dynamic_debug/control
$ nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpk52 -l -4000000; done;nstat|egrep "Hystart"
   7050
   7065
   7100
   6900
   7202
   7263
   7189
   6869
   7463
   7034
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       3199               0.0
$ dmesg | tail -10
[  176.920012] hystart_ack_train (161 > 141) delay_min 83 (+ ack_delay 58) cwnd 264
[  179.144645] hystart_ack_train (164 > 159) delay_min 120 (+ ack_delay 39) cwnd 444
[  181.354527] hystart_ack_train (214 > 168) delay_min 125 (+ ack_delay 43) cwnd 436
[  183.539565] hystart_ack_train (170 > 147) delay_min 96 (+ ack_delay 51) cwnd 326
[  185.727309] hystart_ack_train (177 > 160) delay_min 61 (+ ack_delay 99) cwnd 128
[  187.947142] hystart_ack_train (184 > 167) delay_min 123 (+ ack_delay 44) cwnd 367
[  190.166680] hystart_ack_train (230 > 153) delay_min 116 (+ ack_delay 37) cwnd 444
[  192.327285] hystart_ack_train (210 > 206) delay_min 86 (+ ack_delay 120) cwnd 152
[  194.511392] hystart_ack_train (173 > 151) delay_min 94 (+ ack_delay 57) cwnd 239
[  196.736023] hystart_ack_train (149 > 146) delay_min 105 (+ ack_delay 41) cwnd 399

Fixes: 42f3a8aaae66 ("tcp_cubic: tweak Hystart detection for short RTT flows")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Neal Cardwell <ncardwell@google.com>
Link: https://www.spinics.net/lists/netdev/msg621886.html
Link: https://www.spinics.net/lists/netdev/msg621797.html
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f278b99ca6b2d91a5744588d81bae297179b0d1f)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:53 +05:30
Eric Dumazet
acc41dbece UPSTREAM: tcp_cubic: make Hystart aware of pacing
For years we disabled Hystart ACK train detection at Google
because it was fooled by TCP pacing.

ACK train detection uses a simple heuristic, detecting if
we receive ACK past half the RTT, to exit slow start before
hitting the bottleneck and experience massive drops.

But pacing by design might delay packets up to RTT/2,
so we need to tweak the Hystart logic to be aware of this
extra delay.

Tested:
 Added a 100 usec delay at receiver.

Before:
nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
   9117
   7057
   9553
   8300
   7030
   6849
   9533
  10126
   6876
   8473
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       1230               0.0

After :
nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
   9845
  10103
  10866
  11096
  11936
  11487
  11773
  12188
  11066
  11894
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       6462               0.0

Disabling Hystart ACK Train detection gives similar numbers

echo 2 >/sys/module/tcp_cubic/parameters/hystart_detect
nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
  11173
  10954
  12455
  10627
  11578
  11583
  11222
  10880
  10665
  11366

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit ede656e8465839530c3287c7f54adf75dc2b9563)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:53 +05:30
Eric Dumazet
9c407fabbb UPSTREAM: tcp_cubic: tweak Hystart detection for short RTT flows
After switching ca->delay_min to usec resolution, we exit
slow start prematurely for very low RTT flows, setting
snd_ssthresh to 20.

The reason is that delay_min is fed with RTT of small packet
trains. Then as cwnd is increased, TCP sends bigger TSO packets.

LRO/GRO aggregation and/or interrupt mitigation strategies
on receiver tend to inflate RTT samples.

Fix this by adding to delay_min the expected delay of
two TSO packets, given current pacing rate.

Tested:

Sender uses pfifo_fast qdisc

Before :
$ nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
  11348
  11707
  11562
  11428
  11773
  11534
   9878
  11693
  10597
  10968
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       200                0.0

After :
$ nstat -n;for f in {1..10}; do ./super_netperf 1 -H lpaa24 -l -4000000; done;nstat|egrep "Hystart"
  14877
  14517
  15797
  18466
  17376
  14833
  17558
  17933
  16039
  18059
TcpExtTCPHystartTrainDetect     10                 0.0
TcpExtTCPHystartTrainCwnd       1670               0.0

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 42f3a8aaae66d31d87850fb4b02979a0fc5dc541)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:53 +05:30
Eric Dumazet
ac777ca454 UPSTREAM: tcp_cubic: switch bictcp_clock() to usec resolution
Current 1ms clock feeds ca->round_start, ca->delay_min,
ca->last_ack.

This is quite problematic for data-center flows, where delay_min
is way below 1 ms.

This means Hystart Train detection triggers every time jiffies value
is updated, since "((s32)(now - ca->round_start) > ca->delay_min >> 4)"
expression becomes true.

This kind of random behavior can be solved by reusing the existing
usec timestamp that TCP keeps in tp->tcp_mstamp

Note that a followup patch will tweak things a bit, because
during slow start, GRO aggregation on receivers naturally
increases the RTT as TSO packets gradually come to ~64KB size.

To recap, right after this patch CUBIC Hystart train detection
is more aggressive, since short RTT flows might exit slow start at
cwnd = 20, instead of being possibly unbounded.

Following patch will address this problem.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit cff04e2da308c522f654237b45dd64248fe8d1fa)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:53 +05:30
Eric Dumazet
087008095d UPSTREAM: tcp_cubic: remove one conditional from hystart_update()
If we initialize ca->curr_rtt to ~0U, we do not need to test
for zero value in hystart_update()

We only read ca->curr_rtt if at least HYSTART_MIN_SAMPLES have
been processed, and thus ca->curr_rtt will have a sane value.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 35821fc2b41c51161e503bade3630603668dd3af)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:52 +05:30
Eric Dumazet
89cb0676c8 UPSTREAM: tcp_cubic: optimize hystart_update()
We do not care which bit in ca->found is set.

We avoid accessing hystart and hystart_detect unless really needed,
possibly avoiding one cache line miss.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 473900a504e510cf9175876de8892ad1e3e7efab)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
2021-07-26 16:39:52 +05:30
Adithya R
15194b33c2 Merge tag 'LA.UM.9.1.r1-10600-SMxxx0.0' of https://source.codeaurora.org/quic/la/kernel/msm-4.14 into staging/LA.UM.9.x
"LA.UM.9.1.r1-10600-SMxxx0.0"
2021-07-08 18:20:06 +05:30
YueHaibing
96673e1a66 BACKPORT: fq_codel: remove set but not used variables 'prev_ecn_mark' and 'prev_drop_count'
Fixes gcc '-Wunused-but-set-variable' warning:

net/sched/sch_fq_codel.c: In function fq_codel_dequeue:
net/sched/sch_fq_codel.c:288:23: warning: variable prev_ecn_mark set but not used [-Wunused-but-set-variable]
net/sched/sch_fq_codel.c:288:6: warning: variable prev_drop_count set but not used [-Wunused-but-set-variable]

They are not used since commit 77ddaff218fc ("fq_codel: Kill
useless per-flow dropped statistic")

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 018e5b458723d04cbeadbc3f0e06eba85798f427)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
(cherry picked from commit 319ca23b5c5b8a9c3bb6b0fa7e708d6c3056f1c5)

Change-Id: I09426b4d4b41b9302e534e41fdcab109ef55c571
2021-06-27 09:42:28 +05:30
Dave Taht
5c00b60a44 BACKPORT: fq_codel: Kill useless per-flow dropped statistic
It is almost impossible to get anything other than a 0 out of
flow->dropped statistic with a tc class dump, as it resets to 0
on every round.

It also conflates ecn marks with drops.

It would have been useful had it kept a cumulative drop count, but
it doesn't. This patch doesn't change the API, it just stops
tracking a stat and state that is impossible to measure and nobody
uses.

Signed-off-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 77ddaff218fc505f6930a2bf3e4eec2ff74255f5)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
(cherry picked from commit 969a930fdc7a6cf6fc09d05e3cf86b30320f94f5)

Change-Id: Ibac1a0fd6825aa5bf862ec7cf20227de7a939ec9
2021-06-27 09:42:28 +05:30
Dave Taht
8da3900172 BACKPORT: fq_codel: Increase fq_codel count in the bulk dropper
In the field fq_codel is often used with a smaller memory or
packet limit than the default, and when the bulk dropper is hit,
the drop pattern bifircates into one that more slowly increases
the codel drop rate and hits the bulk dropper more than it should.

The scan through the 1024 queues happens more often than it needs to.

This patch increases the codel count in the bulk dropper, but
does not change the drop rate there, relying on the next codel round
to deliver the next packet at the original drop rate
(after that burst of loss), then escalate to a higher signaling rate.

Signed-off-by: Dave Taht <dave.taht@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit ae697f3bf784898a9be1d68ff7fc38819ca5040f)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
(cherry picked from commit 60270a99f60439f2dbc47d111490782b77dc5941)

Change-Id: I47562b843bb86abed0b502cea62368a1195eeb0f
2021-06-27 09:42:28 +05:30
Gustavo A. R. Silva
f7b392fe49 BACKPORT: net: sched: mark expected switch fall-throughs
In preparation to enabling -Wimplicit-fallthrough, mark switch cases
where we are expecting to fall through.

Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f3ae608edb3be2e9a3f668d47aced3553eaf6c14)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
(cherry picked from commit c6394d8e931b5605fa45e43d656d4c922318a58a)

Change-Id: I3cb52a62972cab504626b78201bd158959c18ca4
2021-06-27 09:42:28 +05:30
Jiri Pirko
da5a3083cb BACKPORT: net: sched: store Qdisc pointer in struct block
Prepare for removal of tp->q and store Qdisc pointer in the block
structure.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 69d78ef25c7b0058674145500efb12255738ba8a)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>
(cherry picked from commit fb14036036a8ea8ebb769b13081bc26d011c5996)

Change-Id: I0832defbd21119d71bd6f7d1ccfa791622e3c807
2021-06-27 09:42:28 +05:30
Yejune Deng
79575c4016 BACKPORT: tcp_cubic: use memset and offsetof init
In bictcp_reset(), use memset and offsetof instead of = 0.

Signed-off-by: Yejune Deng <yejune.deng@gmail.com>
Link: https://lore.kernel.org/r/1610597696-128610-1-git-send-email-yejune.deng@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit f4d133d86af7f39a0f5bdaf7a888ec7b84733b5e)
Signed-off-by: Panchajanya1999 <panchajanya@azure-dev.live>

Change-Id: I6c29c4c2d4b7d69b60f8fdabf634e435693ae21b
2021-06-26 13:17:52 +05:30
Tyler Nijmeh
e245ac5993 rmnet_data: Disable useless logging
Signed-off-by: Tyler Nijmeh <tylernij@gmail.com>
Signed-off-by: Forenche <prahul2003@gmail.com>
2021-06-20 03:49:28 +05:30
Li RongQing
375bd3e62f net: sched: Do not emit messages while holding spinlock
move messages emitting out of sch_tree_lock to avoid holding
this lock too long.

Signed-off-by: Li RongQing <lirongqing@baidu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Yaroslav Furman <yaro330@gmail.com>
2021-06-11 23:29:45 +05:30