Commit graph

891,408 commits

Author SHA1 Message Date
Todd Kjos
1fe8a2bb64 BACKPORT: binder: use euid from cred instead of using task
Save the 'struct cred' associated with a binder process
at initial open to avoid potential race conditions
when converting to an euid.

Set a transaction's sender_euid from the 'struct cred'
saved at binder_open() instead of looking up the euid
from the binder proc's 'struct task'. This ensures
the euid is associated with the security context that
of the task that opened binder.

Cc: stable@vger.kernel.org # 4.4+
Fixes: 457b9a6f09 ("Staging: android: add binder driver")
Signed-off-by: Todd Kjos <tkjos@google.com>
Suggested-by: Stephen Smalley <stephen.smalley.work@gmail.com>
Suggested-by: Jann Horn <jannh@google.com>
Acked-by: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Bug: 200688826
(cherry picked from commit 29bc22ac5e5bc63275e850f0c8fc549e3d0e306b)
[ refactored to avoid changing KMI: struct binder_proc ]
Change-Id: Icaf996a7f5543b7d6943dff3cbe89bfc3614044c
2021-11-19 16:25:34 -08:00
Alistair Delva
a080050156 ANDROID: setlocalversion: make KMI_GENERATION optional
GKI required the KMI_GENERATION to be added to the kernel version
string, but this only makes sense for GKI kernels, for non-GKI kernels
we don't need it. Leave all the other stuff we added, though, as it
seems useful.

Bug: 205897686
Change-Id: I2e7b3cb7ed5529f1e5e7c9d79a1f7ce4a1b6ee1f
Signed-off-by: Alistair Delva <adelva@google.com>
2021-11-17 22:45:14 +00:00
Alistair Delva
e785a25f52 Revert "ANDROID: GKI: Enable CHACHA20POLY1305 and XCBC"
This reverts commit 051373292b.

Reason for revert: tests will be dropped from gsi

Change-Id: I435df6e02114a3e66591f2f6d2d2136d7893842a
Signed-off-by: Alistair Delva <adelva@google.com>
2021-11-15 22:20:27 +00:00
Greg Kroah-Hartman
bfb2ce3eb1 ANDROID: GKI: rework the ANDROID_KABI_USE() macro to not use __UNIQUE()
The __UNIQUE_ID() macro causes problems as it turns out to not be
deterministic across different compiler runs as it relies on the
__COUNTER__ macro which could have been used on other .h files previous
to this .h file being included.

This shows up specifically when building with "LTO=thin" vs. "LTO=full"
as different build paths seem to be triggered.

As the structure name isn't really needed at all here, we were just
including it for older compilers that could not handle anonymous
structures in a union, just drop the whole thing which resolves the abi
naming issue.

Bug: 210255585
Reported-by: Giuliano Procida <gprocida@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6b9449fa9d26ffc5d66b2f0f3b41e2d5f3003f68
2021-11-09 18:38:36 +01:00
Connor O'Brien
937e6e41cc UPSTREAM: security: selinux: allow per-file labeling for bpffs
Add support for genfscon per-file labeling of bpffs files. This allows
for separate permissions for different pinned bpf objects, which may
be completely unrelated to each other.

Signed-off-by: Connor O'Brien <connoro@google.com>
Signed-off-by: Steven Moreland <smoreland@google.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry picked from commit 4ca54d3d3022ce27170b50e4bdecc3a42f05dbdc)
[which is v5.6-rc1-10-g4ca54d3d3022 and thus already included in 5.10]
Bug: 200440527
Change-Id: I8234b9047f29981b8140bd81bb2ff070b3b0b843
(cherry picked from commit d52ac987ad2ae16ff313d7fb6185bc412cb221a4)
2021-11-04 19:18:42 +00:00
evitayan
051373292b ANDROID: GKI: Enable CHACHA20POLY1305 and XCBC
To be able to use ChaCha20Poly1305 and AES-XCBC in IPsec

Bug: 161717358
Bug: 204402327
Change-Id: Ifeeb3d1f3458d46491ba6cd363656bf4737b5cd3
Signed-off-by: Yan Yan <evitayan@google.com>
Signed-off-by: evitayan <evitayan@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from commit 2d7ae7b614213b28b6cd6230104e1f5f723e81df)
2021-11-02 06:57:52 +00:00
Lee Jones
55cb12f0f8 ANDROID: Incremental fs: Fix dentry get/put imbalance on vfs_mkdir() failure
Syz{bot,kaller} reports[0]:

  BUG: Dentry ffff888119d8a000{i=0,n=.index}  still in use (1) [unmount of ramfs ramfs]
  ------------[ cut here ]------------
  WARNING: CPU: 0 PID: 367 at fs/dcache.c:1616 umount_check+0x18d/0x1d0 fs/dcache.c:1607
  Modules linked in:
  CPU: 0 PID: 367 Comm: syz-executor388 Not tainted 5.10.75-syzkaller-01082-g234d53d2bb60 #0
  Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
  RIP: 0010:umount_check+0x18d/0x1d0 fs/dcache.c:1607
  Code: 8b 0b 49 81 c6 f8 03 00 00 48 c7 c7 00 40 2e 85 4c 89 e6 48 8b 55 d0 4c 89 e1 45 89 f8 31 c0 41 56 e8 ae d9 9e ff 48 83 c4 08 <0f> 0b e9 f1 fe ff ff 89 d9 80 e1 07 80 c1 03 38 c1 0f 8c c9 fe ff
  RSP: 0018:ffffc9000096f770 EFLAGS: 00010292
  RAX: 0000000000000055 RBX: ffffffff866af200 RCX: 1ad6b89836e5b500
  RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000000000
  RBP: ffffc9000096f7a0 R08: ffffffff81545368 R09: 0000000000000003
  R10: fffff5200012de41 R11: 0000000000000004 R12: ffff888119d8a000
  R13: dffffc0000000000 R14: ffff88811d7373f8 R15: 0000000000000001
  FS:  0000000000000000(0000) GS:ffff8881f7000000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 00007f01b7bddb68 CR3: 000000010c4f0000 CR4: 00000000003506b0
  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
  Call Trace:
   d_walk+0x309/0x540 fs/dcache.c:1326
   do_one_tree fs/dcache.c:1623 [inline]
   shrink_dcache_for_umount+0x8e/0x1b0 fs/dcache.c:1639
   generic_shutdown_super+0x66/0x2c0 fs/super.c:447
   kill_anon_super fs/super.c:1108 [inline]
   kill_litter_super+0x75/0xa0 fs/super.c:1117
   ramfs_kill_sb+0x44/0x50 fs/ramfs/inode.c:270
   deactivate_locked_super+0xb0/0x100 fs/super.c:335
   deactivate_super+0xa5/0xd0 fs/super.c:366
   cleanup_mnt+0x45f/0x510 fs/namespace.c:1118
   __cleanup_mnt+0x19/0x20 fs/namespace.c:1125
   task_work_run+0x147/0x1b0 kernel/task_work.c:154
   exit_task_work include/linux/task_work.h:30 [inline]
   do_exit+0x70e/0x23a0 kernel/exit.c:813
   do_group_exit+0x16a/0x2d0 kernel/exit.c:910
   get_signal+0x133e/0x1f80 kernel/signal.c:2790
   arch_do_signal+0x8d/0x620 arch/x86/kernel/signal.c:805
   exit_to_user_mode_loop kernel/entry/common.c:161 [inline]
   exit_to_user_mode_prepare+0xaa/0xe0 kernel/entry/common.c:191
   syscall_exit_to_user_mode+0x24/0x40 kernel/entry/common.c:266
   do_syscall_64+0x3d/0x70 arch/x86/entry/common.c:56
   entry_SYSCALL_64_after_hwframe+0x44/0xa9
  RIP: 0033:0x7f01b7b884f9
  Code: Unable to access opcode bytes at RIP 0x7f01b7b884cf.
  RSP: 002b:00007f01b7b19308 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
  RAX: fffffffffffffe00 RBX: 00007f01b7c103f8 RCX: 00007f

Which was due to a missing dput() before returning from a vfs_mkdir() failure.

Bug: 203827798
Link: [0] https://syzkaller.appspot.com/bug?extid=81b5ca9b2848f4dad8fa
Reported-by: syzbot+81b5ca9b2848f4dad8fa@syzkaller.appspotmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Change-Id: Iaef9aa0aecc964645aaca5fe8d79388ae28527bd
2021-10-28 08:46:17 +00:00
Jaegeuk Kim
59d8264680 ANDROID: f2fs: fix potential deadlock by android ftrace
sb_internal#2 --> &s->s_dquot.dqio_sem --> fs_reclaim

  Possible unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(fs_reclaim);
                                lock(&s->s_dquot.dqio_sem);
                                lock(fs_reclaim);
   lock(sb_internal#2);

 *** DEADLOCK ***

 3 locks held by kswapd0/133:
  #0: ffffffda597c93a8 (fs_reclaim){+.+.}-{0:0}, at: __fs_reclaim_acquire+0x4/0x50
  #1: ffffffda597bc890 (shrinker_rwsem){++++}-{3:3}, at: shrink_slab+0xa0/0x19c
  #2: ffffff80d5fb90e0 (&type->s_umount_key#50){.+.+}-{3:3}, at: super_cache_scan+0x40/0x1dc

stack backtrace:
 CPU: 7 PID: 133 Comm: kswapd0 Tainted: G        W  O      5.10.43-android12-9-g4665ec64f3df #1
 Hardware name: MT6879(ENG) (DT)
 Call trace:
  dump_backtrace.cfi_jt+0x0/0x8
  show_stack+0x1c/0x2c
  dump_stack_lvl+0xd8/0x16c
  print_circular_bug+0x2d4/0x2d8
  check_noncircular+0x190/0x1a4
  validate_chain+0xc54/0x2d34
  __lock_acquire+0x7e4/0xed4
  lock_acquire+0x114/0x394
  f2fs_evict_inode+0x1a0/0x8b8
  evict+0xd4/0x2f8
  iput+0x1c0/0x258
  dentry_unlink_inode+0x16c/0x1dc
  __dentry_kill+0x128/0x280
  shrink_dentry_list+0x6c/0x420
  prune_dcache_sb+0x5c/0x90
  super_cache_scan+0x13c/0x1dc
  do_shrink_slab+0x1e0/0x388
  shrink_slab+0xf4/0x19c
  shrink_node_memcgs+0x80/0x25c
  shrink_node+0x324/0x710
  balance_pgdat+0x3a8/0x6a8
  kswapd+0x484/0x594
  kthread+0x15c/0x1ac
  ret_from_fork+0x10/0x30

Bug: 201025620
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: Idaa303eb7c681a56ad5d4e1f6dddbda71f7fece4
2021-10-27 21:27:48 +00:00
Nobutaka Matsuo
dc8c919ca6 ANDROID: GKI: Update FCNT KMI symbol list
No new symbols added that are not already in the .xml file.

Bug: 204143632
Signed-off-by: Nobutaka Matsuo <matsuo.nobu@fcnt.com>
Change-Id: I7358e77923e6668ad20988ef76dec30db4d051c0
2021-10-26 06:44:58 +00:00
liunan1
e3f12f4239 ANDROID: GKI : Update symbols to symbol list
Update symbols to symbol list by oem modules

Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed,
0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed,
0 Changed, 0 Added variable

1 Added function:

  [A] 'function u8 sdio_writeb_readb(sdio_func*, u8, unsigned int, int*)'

Bug: 203724894

Signed-off-by: liunan1 <liunan1@oppo.com>
Change-Id: I09539934e8cb3dcd25cb550c98b0b3dc86ee6789
2021-10-25 10:14:13 +00:00
Jason A. Donenfeld
47c8de47e1 BACKPORT: crypto: arch - conditionalize crypto api in arch glue for lib code
For glue code that's used by Zinc, the actual Crypto API functions might
not necessarily exist, and don't need to exist either. Before this
patch, there are valid build configurations that lead to a unbuildable
kernel. This fixes it to conditionalize those symbols on the existence
of the proper config entry.

(backport required changing CONFIG_CRYPTO_SKCIPHER to
CONFIG_CRYPTO_BLKCIPHER in a few places)

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 8394bfec51e0e565556101bcc4e2fe7551104cd8)
Bug: 152722841
[adelva: Removed all algos except blake2s]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Change-Id: Iedddadcd70a85587daadf1a8511b82fbdd574018
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-10-23 19:32:27 -07:00
Jason A. Donenfeld
514e31d6a1 BACKPORT: crypto: arch/lib - limit simd usage to 4k chunks
The initial Zinc patchset, after some mailing list discussion, contained
code to ensure that kernel_fpu_enable would not be kept on for more than
a 4k chunk, since it disables preemption. The choice of 4k isn't totally
scientific, but it's not a bad guess either, and it's what's used in
both the x86 poly1305, blake2s, and nhpoly1305 code already (in the form
of PAGE_SIZE, which this commit corrects to be explicitly 4k for the
former two).

Ard did some back of the envelope calculations and found that
at 5 cycles/byte (overestimate) on a 1ghz processor (pretty slow), 4k
means we have a maximum preemption disabling of 20us, which Sebastian
confirmed was probably a good limit.

Unfortunately the chunking appears to have been left out of the final
patchset that added the glue code. So, this commit adds it back in.

Fixes: 84e03fa39fbe ("crypto: x86/chacha - expose SIMD ChaCha routine as library function")
Fixes: b3aad5bad26a ("crypto: arm64/chacha - expose arm64 ChaCha routine as library function")
Fixes: a44a3430d71b ("crypto: arm/chacha - expose ARM ChaCha routine as library function")
Fixes: d7d7b8535662 ("crypto: x86/poly1305 - wire up faster implementations for kernel")
Fixes: f569ca164751 ("crypto: arm64/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: a6b803b3ddc7 ("crypto: arm/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
Fixes: ed0356eda153 ("crypto: blake2s - x86_64 SIMD implementation")
Cc: Eric Biggers <ebiggers@google.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 706024a52c614b478b63f7728d202532ce6591a9)
Bug: 152722841
[adelva: Removed all algos except blake2s]
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ief6d06e473929c17c2fcf751e53b9f59ba614158
2021-10-23 19:32:26 -07:00
Eric Biggers
568c0c89d9 UPSTREAM: crypto: arm/blake2s - fix for big endian
The new ARM BLAKE2s code doesn't work correctly (fails the self-tests)
in big endian kernel builds because it doesn't swap the endianness of
the message words when loading them.  Fix this.

Fixes: 5172d322d34c ("crypto: arm/blake2s - add ARM scalar optimized BLAKE2s")
Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit d2f2516a3882c0c6463e33c9b112b39bd483f821)
Bug: 178411248
Change-Id: Iff419963407eeb0435b9550ef126db4bf137a8a1
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
ce6e69838c ANDROID: gki_defconfig: enable BLAKE2b support
Bug: 178411248
Change-Id: Iec497954d29adcf7193da9ca4b27d61eac7615d9
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
40501f7350 BACKPORT: crypto: arm/blake2b - add NEON-accelerated BLAKE2b
Add a NEON-accelerated implementation of BLAKE2b.

On Cortex-A7 (which these days is the most common ARM processor that
doesn't have the ARMv8 Crypto Extensions), this is over twice as fast as
SHA-256, and slightly faster than SHA-1.  It is also almost three times
as fast as the generic implementation of BLAKE2b:

	Algorithm            Cycles per byte (on 4096-byte messages)
	===================  =======================================
	blake2b-256-neon     14.0
	sha1-neon            16.3
	blake2s-256-arm      18.8
	sha1-asm             20.8
	blake2s-256-generic  26.0
	sha256-neon	     28.9
	sha256-asm	     32.0
	blake2b-256-generic  38.9

This implementation isn't directly based on any other implementation,
but it borrows some ideas from previous NEON code I've written as well
as from chacha-neon-core.S.  At least on Cortex-A7, it is faster than
the other NEON implementations of BLAKE2b I'm aware of (the
implementation in the BLAKE2 official repository using intrinsics, and
Andrew Moon's implementation which can be found in SUPERCOP).  It does
only one block at a time, so it performs well on short messages too.

NEON-accelerated BLAKE2b is useful because there is interest in using
BLAKE2b-256 for dm-verity on low-end Android devices (specifically,
devices that lack the ARMv8 Crypto Extensions) to replace SHA-1.  On
these devices, the performance cost of upgrading to SHA-256 may be
unacceptable, whereas BLAKE2b-256 would actually improve performance.

Although BLAKE2b is intended for 64-bit platforms (unlike BLAKE2s which
is intended for 32-bit platforms), on 32-bit ARM processors with NEON,
BLAKE2b is actually faster than BLAKE2s.  This is because NEON supports
64-bit operations, and because BLAKE2s's block size is too small for
NEON to be helpful for it.  The best I've been able to do with BLAKE2s
on Cortex-A7 is 18.8 cpb with an optimized scalar implementation.

(I didn't try BLAKE2sp and BLAKE3, which in theory would be faster, but
they're more complex as they require running multiple hashes at once.
Note that BLAKE2b already uses all the NEON bandwidth on the Cortex-A7,
so I expect that any speedup from BLAKE2sp or BLAKE3 would come only
from the smaller number of rounds, not from the extra parallelism.)

For now this BLAKE2b implementation is only wired up to the shash API,
since there is no library API for BLAKE2b yet.  However, I've tried to
keep things consistent with BLAKE2s, e.g. by defining
blake2b_compress_arch() which is analogous to blake2s_compress_arch()
and could be exported for use by the library API later if needed.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 1862eb007367f9e4cfd52d0406742de337b28ebf)
(removed unnecessary return statement in blake2b_neon_mod_exit(),
 which was breaking the build because in pre-5.6 kernels
 crypto_unregister_shashes() returned 'int' rather than 'void')
Bug: 178411248
Change-Id: I01557f0a63db0eb21778d0cc7b582ad89898d44a
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
477000061d BACKPORT: crypto: blake2b - update file comment
The file comment for blake2b_generic.c makes it sound like it's the
reference implementation of BLAKE2b with only minor changes.  But it's
actually been changed a lot.  Update the comment to make this clearer.

Reviewed-by: David Sterba <dsterba@suse.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 0cdc438e6e13436b0190910ef7da49ce4f5a44f4)

Conflicts:
	crypto/blake2b_generic.c

(trivial conflict due to upstream commit 9332a9e73918,
"crypto: Replace HTTP links with HTTPS ones")

Bug: 178411248
Change-Id: I8b58cd0e2892a873866ead52fa4dba3edabdeeb3
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
c5816192fd BACKPORT: crypto: blake2b - sync with blake2s implementation
Sync the BLAKE2b code with the BLAKE2s code as much as possible:

- Move a lot of code into new headers <crypto/blake2b.h> and
  <crypto/internal/blake2b.h>, and adjust it to be like the
  corresponding BLAKE2s code, i.e. like <crypto/blake2s.h> and
  <crypto/internal/blake2s.h>.

- Rename constants, e.g. BLAKE2B_*_DIGEST_SIZE => BLAKE2B_*_HASH_SIZE.

- Use a macro BLAKE2B_ALG() to define the shash_alg structs.

- Export blake2b_compress_generic() for use as a fallback.

This makes it much easier to add optimized implementations of BLAKE2b,
as optimized implementations can use the helper functions
crypto_blake2b_{setkey,init,update,final}() and
blake2b_compress_generic().  The ARM implementation will use these.

But this change is also helpful because it eliminates unnecessary
differences between the BLAKE2b and BLAKE2s code, so that the same
improvements can easily be made to both.  (The two algorithms are
basically identical, except for the word size and constants.)  It also
makes it straightforward to add a library API for BLAKE2b in the future
if/when it's needed.

This change does make the BLAKE2b code slightly more complicated than it
needs to be, as it doesn't actually provide a library API yet.  For
example, __blake2b_update() doesn't really need to exist yet; it could
just be inlined into crypto_blake2b_update().  But I believe this is
outweighed by the benefits of keeping the code in sync.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 28dcca4cc0c01e2467549a36b1b0eacfdb01236c)

Conflicts:
	crypto/blake2b_generic.c

(conflict due to this branch not having commit 674f368a952c,
"crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN")

Bug: 178411248
Change-Id: I755c64fefe1209b54d1417d91e8a4c207382a620
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
be7d8de428 UPSTREAM: crypto: arm/blake2s - add ARM scalar optimized BLAKE2s
Add an ARM scalar optimized implementation of BLAKE2s.

NEON isn't very useful for BLAKE2s because the BLAKE2s block size is too
small for NEON to help.  Each NEON instruction would depend on the
previous one, resulting in poor performance.

With scalar instructions, on the other hand, we can take advantage of
ARM's "free" rotations (like I did in chacha-scalar-core.S) to get an
implementation get runs much faster than the C implementation.

Performance results on Cortex-A7 in cycles per byte using the shash API:

	4096-byte messages:
		blake2s-256-arm:     18.8
		blake2s-256-generic: 26.0

	500-byte messages:
		blake2s-256-arm:     20.3
		blake2s-256-generic: 27.9

	100-byte messages:
		blake2s-256-arm:     29.7
		blake2s-256-generic: 39.2

	32-byte messages:
		blake2s-256-arm:     50.6
		blake2s-256-generic: 66.2

Except on very short messages, this is still slower than the NEON
implementation of BLAKE2b which I've written; that is 14.0, 16.4, 25.8,
and 76.1 cpb on 4096, 500, 100, and 32-byte messages, respectively.
However, optimized BLAKE2s is useful for cases where BLAKE2s is used
instead of BLAKE2b, such as WireGuard.

This new implementation is added in the form of a new module
blake2s-arm.ko, which is analogous to blake2s-x86_64.ko in that it
provides blake2s_compress_arch() for use by the library API as well as
optionally register the algorithms with the shash API.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 5172d322d34c30fb926b29aeb5a064e1fd8a5e13)
Bug: 152722841
Bug: 178411248
Change-Id: I0ba7a0ea53518d512ccbe54a56970d6bbe2a32e0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
d63d7c1ee0 UPSTREAM: crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h>
Address the following checkpatch warning:

	WARNING: Use #include <linux/bug.h> instead of <asm/bug.h>

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit bbda6e0f1303953c855ee3669655a81b69fbe899)
Bug: 152722841
Bug: 178411248
Change-Id: Ib12103873c97387ba59ff897c44a18e4f1e6da3d
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
b8de6b8e2c UPSTREAM: crypto: blake2s - adjust include guard naming
Use the full path in the include guards for the BLAKE2s headers to avoid
ambiguity and to match the convention for most files in include/crypto/.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 8786841bc2020f7f2513a6c74e64912f07b9c0dc)
Bug: 152722841
Bug: 178411248
Change-Id: Iea57edbe14c9083ce3d7a77b2c3bd63cd6650e56
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
609d9425fa UPSTREAM: crypto: blake2s - add comment for blake2s_state fields
The first three fields of 'struct blake2s_state' are used in assembly
code, which isn't immediately obvious, so add a comment to this effect.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 7d87131fadd53a0401b5c078dd64e58c3ea6994c)
Bug: 152722841
Bug: 178411248
Change-Id: Iab85ddd350a2db917b247ba8f6e224eba905b747
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
32ac79b096 UPSTREAM: crypto: blake2s - optimize blake2s initialization
If no key was provided, then don't waste time initializing the block
buffer, as its initial contents won't be used.

Also, make crypto_blake2s_init() and blake2s() call a single internal
function __blake2s_init() which treats the key as optional, rather than
conditionally calling blake2s_init() or blake2s_init_key().  This
reduces the compiled code size, as previously both blake2s_init() and
blake2s_init_key() were being inlined into these two callers, except
when the key size passed to blake2s() was a compile-time constant.

These optimizations aren't that significant for BLAKE2s.  However, the
equivalent optimizations will be more significant for BLAKE2b, as
everything is twice as big in BLAKE2b.  And it's good to keep things
consistent rather than making optimizations for BLAKE2b but not BLAKE2s.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 42ad8cf821f0d8564c393e9ad7d00a1a271d18ae)
Bug: 152722841
Bug: 178411248
Change-Id: Id057e0c8a5f0e432f227dc3deaa8997a7cbc0577
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
74c75891bd BACKPORT: crypto: blake2s - share the "shash" API boilerplate code
Add helper functions for shash implementations of BLAKE2s to
include/crypto/internal/blake2s.h, taking advantage of
__blake2s_update() and __blake2s_final() that were added by the previous
patch to share more code between the library and shash implementations.

crypto_blake2s_setkey() and crypto_blake2s_init() are usable as
shash_alg::setkey and shash_alg::init directly, while
crypto_blake2s_update() and crypto_blake2s_final() take an extra
'blake2s_compress_t' function pointer parameter.  This allows the
implementation of the compression function to be overridden, which is
the only part that optimized implementations really care about.

The new functions are inline functions (similar to those in sha1_base.h,
sha256_base.h, and sm3_base.h) because this avoids needing to add a new
module blake2s_helpers.ko, they aren't *too* long, and this avoids
indirect calls which are expensive these days.  Note that they can't go
in blake2s_generic.ko, as that would require selecting CRYPTO_BLAKE2S
from CRYPTO_BLAKE2S_X86, which would cause a recursive dependency.

Finally, use these new helper functions in the x86 implementation of
BLAKE2s.  (This part should be a separate patch, but unfortunately the
x86 implementation used the exact same function names like
"crypto_blake2s_update()", so it had to be updated at the same time.)

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 8c4a93a1270ddffc7660ae43fa8030ecfe9c06d9)

Conflicts:
	arch/x86/crypto/blake2s-glue.c
	crypto/blake2s_generic.c

(conflict due to this branch not having commit 674f368a952c,
"crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN")

Bug: 152722841
Bug: 178411248
Change-Id: I9d23b1897cee81fb1704b6eea14d3dc9b1c80fe0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
8a14e1d839 UPSTREAM: crypto: blake2s - move update and final logic to internal/blake2s.h
Move most of blake2s_update() and blake2s_final() into new inline
functions __blake2s_update() and __blake2s_final() in
include/crypto/internal/blake2s.h so that this logic can be shared by
the shash helper functions.  This will avoid duplicating this logic
between the library and shash implementations.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 057edc9c8bb2d5ff5b058b521792c392428a0714)
Bug: 152722841
Bug: 178411248
Change-Id: Idedf8147914839d5280e5d8eec9013264fbb45f9
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
4c7a6f464d UPSTREAM: crypto: blake2s - remove unneeded includes
It doesn't make sense for the generic implementation of BLAKE2s to
include <crypto/internal/simd.h> and <linux/jump_label.h>, as these are
things that would only be useful in an architecture-specific
implementation.  Remove these unnecessary includes.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit df412e7efda1e2c5b5fcb06701bba77434cbd1e8)
Bug: 152722841
Bug: 178411248
Change-Id: I8bccb9506d235c2b184b9899ee375fdc12d6b10f
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:26 -07:00
Eric Biggers
7537c64845 UPSTREAM: crypto: x86/blake2s - define shash_alg structs using macros
The shash_alg structs for the four variants of BLAKE2s are identical
except for the algorithm name, driver name, and digest size.  So, avoid
code duplication by using a macro to define these structs.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 1aa90f4cf034ed4f016a02330820ac0551a6c13c)
Bug: 152722841
Bug: 178411248
Change-Id: Ibba710056182a609defca0a53133387153f0f63d
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
Eric Biggers
b54930b350 UPSTREAM: crypto: blake2s - define shash_alg structs using macros
The shash_alg structs for the four variants of BLAKE2s are identical
except for the algorithm name, driver name, and digest size.  So, avoid
code duplication by using a macro to define these structs.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 0d396058f92ae7e5ac62839fed54bc2bba630ab5)
Bug: 152722841
Bug: 178411248
Change-Id: I32b3a6c035b18f063ad0e03c43171091ca1490a8
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
Herbert Xu
05e10b45ed UPSTREAM: crypto: lib/blake2s - Move selftest prototype into header file
This patch fixes a missing prototype warning on blake2s_selftest.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit ce0d5d63e897cc7c3a8fd043c7942fc6a78ec6f4)
Bug: 152722841
Change-Id: Ieb19048d60f6c9dc36cefda8b09b3d5c95e9118e
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
Arnd Bergmann
29ab2a5781 UPSTREAM: crypto: blake2b - Fix clang optimization for ARMv7-M
When building for ARMv7-M, clang-9 or higher tries to unroll some loops,
which ends up confusing the register allocator to the point of generating
rather bad code and using more than the warning limit for stack frames:

warning: stack frame size of 1200 bytes in function 'blake2b_compress' [-Wframe-larger-than=]

Forcing it to not unroll the final loop avoids this problem.

Fixes: 91d689337fe8 ("crypto: blake2b - add blake2b generic implementation")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 0c0408e86dbe8f44d4b27bf42130e8ac905361d6)
Bug: 178411248
Change-Id: I71ee6df844bdbace9f06342a61322c7494533564
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
27c00daf70 UPSTREAM: crypto: blake2b - rename tfm context and _setkey callback
The TFM context can be renamed to a more appropriate name and the local
varaibles as well, using 'tctx' which seems to be more common than
'mctx'.

The _setkey callback was the last one without the blake2b_ prefix,
rename that too.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit c433a1a8572eceb7c45dd85d93fec6946b71bb72)
Bug: 178411248
Change-Id: I8b7dfa5779ee6f76bb7e21572d29df1310705485
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
196f7b5134 UPSTREAM: crypto: blake2b - merge _update to api callback
Now that there's only one call to blake2b_update, we can merge it to the
callback and simplify. The empty input check is split and the rest of
code un-indented.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 0b4b5f10ac1ffb7f51db1832d189c33955c0d4c1)
Bug: 178411248
Change-Id: Ic260edcee45116ac1a9f03f2792fe577a2c629c6
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
a623362717 UPSTREAM: crypto: blake2b - open code set last block helper
The helper is trival and called once, inlining makes things simpler.
There's a comment to tie it back to the idea behind the code.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit a2e4bdce0f6e69c6cf9e460c4fe158bcc0db351f)
Bug: 178411248
Change-Id: Iba1276dfcdb29240206f66bf98902d0e587a590f
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
00e77739a2 UPSTREAM: crypto: blake2b - delete unused structs or members
All the code for param block has been inlined, last_node and outlen from
the state are not used or have become redundant due to other code.
Remove it.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit d063d6327e7de18e16e4742579a0ff759c3889fb)
Bug: 178411248
Change-Id: Ia7090fe3162495abae29b86f37e53ebf02414fe2
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
f03f8096dc UPSTREAM: crypto: blake2b - simplify key init
The keyed init writes the key bytes to the input buffer and does an
update. We can do that in two ways: fill the buffer and update
immediatelly. This is what current blake2b_init_key does. Any other
following _update or _final will continue from the updated state.

The other way is to write the key and set the number of bytes to process
at the next _update or _final, lazy evaluation. Which leads to the the
simplified code in this patch.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit e87e484d60b0da8302b45f27fe32af1cea02c8d2)
Bug: 178411248
Change-Id: I90652bb41d252af9503d5976ce32b93e2610debf
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
fdb0b24608 UPSTREAM: crypto: blake2b - merge blake2 init to api callback
The call chain from blake2b_init can be simplified because the param
block is effectively zeros, besides the key.

- blake2b_init0 zeroes state and sets IV
- blake2b_init sets up param block with defaults (key and some 1s)
- init with key, write it to the input buffer and recalculate state

So the compact way is to zero out the state and initialize index 0 of
the state directly with the non-zero values and the key.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit e374969565472824eba4669dea4a23ad2edb414f)
Bug: 178411248
Change-Id: I797e941bf90262f6cf334c100a91e5b90dc00a2c
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
75973ecd9d UPSTREAM: crypto: blake2b - merge _final implementation to callback
blake2b_final is called only once, merge it to the crypto API callback
and simplify. This avoids the temporary buffer and swaps the bytes of
internal buffer.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 086db43b5a2281f7ce7d8a67a171b91e1e8fe0ec)
Bug: 178411248
Change-Id: I7c5e2d9d931d463ada7573e66268f7b93a2d40a4
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
fbbe069bbb BACKPORT: crypto: testmgr - add test vectors for blake2b
Test vectors for blake2b with various digest sizes. As the algorithm is
the same up to the digest calculation, the key and input data length is
distributed in a way that tests all combinanions of the two over the
digest sizes.

Based on the suggestion from Eric, the following input sizes are tested
[0, 1, 7, 15, 64, 247, 256], where blake2b blocksize is 128, so the
padded and the non-padded input buffers are tested.

          blake2b-160  blake2b-256  blake2b-384  blake2b-512
         ---------------------------------------------------
len=0   | klen=0       klen=1       klen=32      klen=64
len=1   | klen=32      klen=64      klen=0       klen=1
len=7   | klen=64      klen=0       klen=1       klen=32
len=15  | klen=1       klen=32      klen=64      klen=0
len=64  | klen=0       klen=1       klen=32      klen=64
len=247 | klen=32      klen=64      klen=0       klen=1
len=256 | klen=64      klen=0       klen=1       klen=32

Where key:

- klen=0: empty key
- klen=1: 1 byte value 0x42, 'B'
- klen=32: first 32 bytes of the default key, sequence 00..1f
- klen=64: default key, sequence 00..3f

The unkeyed vectors are ordered before keyed, as this is required by
testmgr.

CC: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit a1afe27492a408d45421a1812064235691303fa1)

Conflicts:
	crypto/testmgr.c
	crypto/testmgr.h

(resolved conflicts due to blake2s having been backported already)

Bug: 178411248
Change-Id: I5d6e1c16b7be981f4912264cd67dc1dad20b6bec
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
David Sterba
9cd856934e BACKPORT: crypto: blake2b - add blake2b generic implementation
The patch brings support of several BLAKE2 variants (2b with various
digest lengths).  The keyed digest is supported, using tfm->setkey call.
The in-tree user will be btrfs (for checksumming), we're going to use
the BLAKE2b-256 variant.

The code is reference implementation taken from the official sources and
modified in terms of kernel coding style (whitespace, comments, uintXX_t
-> uXX types, removed unused prototypes and #ifdefs, removed testing
code, changed secure_zero_memory -> memzero_explicit, used own helpers
for unaligned reads/writes and rotations).

Further changes removed sanity checks of key length or output size,
these values are verified in the crypto API callbacks or hardcoded in
shash_alg and not exposed to users.

Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

(cherry picked from commit 91d689337fe8b7703608a2ec39aae700b99f3933)

Conflicts:
	crypto/Kconfig
	crypto/Makefile

(trivial conflicts due to blake2s having been backported already)

Bug: 178411248
Change-Id: Ic4c2314b146434a5842facf56e58d3602bacc7d5
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-10-23 19:32:25 -07:00
Jason A. Donenfeld
3e82f8af26 UPSTREAM: crypto: blake2s - x86_64 SIMD implementation
These implementations from Samuel Neves support AVX and AVX-512VL.
Originally this used AVX-512F, but Skylake thermal throttling made
AVX-512VL more attractive and possible to do with negligable difference.

Bug: 152722841
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
Co-developed-by: Samuel Neves <sneves@dei.uc.pt>
[ardb: move to arch/x86/crypto, wire into lib/crypto framework]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I25f5770976a2681e24a1e762360c2a9900e9a62c
2021-10-23 19:32:25 -07:00
Ard Biesheuvel
22bff7a3f6 UPSTREAM: crypto: blake2s - implement generic shash driver
Wire up our newly added Blake2s implementation via the shash API.

Bug: 152722841
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I115c2963e90a1a1d2734865d8a2c2e6df5008537
2021-10-23 19:32:24 -07:00
Ard Biesheuvel
43ec9b95a3 UPSTREAM: crypto: testmgr - add test cases for Blake2s
As suggested by Eric for the Blake2b implementation contributed by
David, introduce a set of test vectors for Blake2s covering different
digest and key sizes.

          blake2s-128  blake2s-160  blake2s-224  blake2s-256
         ---------------------------------------------------
len=0   | klen=0       klen=1       klen=16      klen=32
len=1   | klen=16      klen=32      klen=0       klen=1
len=7   | klen=32      klen=0       klen=1       klen=16
len=15  | klen=1       klen=16      klen=32      klen=0
len=64  | klen=0       klen=1       klen=16      klen=32
len=247 | klen=16      klen=32      klen=0       klen=1
len=256 | klen=32      klen=0       klen=1       klen=16

Bug: 152722841
Cc: David Sterba <dsterba@suse.com>
Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I3476494a9cd5a37a1c539704fa23cf3bb61b444c
2021-10-23 19:32:24 -07:00
Jason A. Donenfeld
192edcb3df UPSTREAM: crypto: blake2s - generic C library implementation and selftest
The C implementation was originally based on Samuel Neves' public
domain reference implementation but has since been heavily modified
for the kernel. We're able to do compile-time optimizations by moving
some scaffolding around the final function into the header file.

Information: https://blake2.net/

Bug: 152722841
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Samuel Neves <sneves@dei.uc.pt>
Co-developed-by: Samuel Neves <sneves@dei.uc.pt>
[ardb: - move from lib/zinc to lib/crypto
       - remove simd handling
       - rewrote selftest for better coverage
       - use fixed digest length for blake2s_hmac() and rename to
         blake2s256_hmac() ]
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I009a9fb70d34dcff777e7d21882a59819e2bd137
2021-10-23 19:32:24 -07:00
Ard Biesheuvel
078cebb3f5 UPSTREAM: crypto: lib - tidy up lib/crypto Kconfig and Makefile
In preparation of introducing a set of crypto library interfaces, tidy
up the Makefile and split off the Kconfig symbols into a separate file.

Bug: 152722841
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 746b2e024c67aa605ac12d135cd7085a49cf9dc4)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Idc1e996e91db5909dd8f1d2d52c1727c2de2b1f6
2021-10-23 19:32:24 -07:00
Shuosheng Huang
160ab93103 ANDROID: ion heap: init ion heaps in subsys_initcall
Some built-in modules will failed to use ion heap to allocate memory
if the ion heap drivers are too late to be initialized.
To fix this issue, move initialization of ion heap drivers in subsys_initcall()
which is more earlier to be called.

Bug: 203487618
Signed-off-by: Shuosheng Huang <huangshuosheng@allwinnertech.com>
Change-Id: If120225fd6c3b665053857cc9345db4521e76cf8
(cherry picked from commit eb4a5a5dbd5bcc33db06d4515653b7f67a2e927e)
2021-10-22 01:50:31 +00:00
Miklos Szeredi
3dbc1d366e UPSTREAM: ovl: simplify file splice
commit 82a763e61e2b601309d696d4fa514c77d64ee1be upstream.

generic_file_splice_read() and iter_file_splice_write() will call back into
f_op->iter_read() and f_op->iter_write() respectively.  These already do
the real file lookup and cred override.  So the code in ovl_splice_read()
and ovl_splice_write() is redundant.

In addition the ovl_file_accessed() call in ovl_splice_write() is
incorrect, though probably harmless.

Fix by calling generic_file_splice_read() and iter_file_splice_write()
directly.

Bug: 203035944
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
[reported to resolve issues with 1a980b8cbf00 ("ovl: add splice file read write helper")]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: I1b3c7610b27faad8eefa91dead167ceaeb4ff0d8
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-10-20 10:35:34 +02:00
Greg Kroah-Hartman
5b84549191 Merge tag 'android11-5.4.147_r00' android11-5.4
This is the merge of the upstream LTS release of 5.4.147 into the
android11-5.4 branch.

It contains the following commits:

5e10f36746 Merge 5.4.147 into android11-5.4-lts
48a24510c3 Linux 5.4.147
1f8ee02449 Revert "time: Handle negative seconds correctly in timespec64_to_ns()"
dc15f641c6 Revert "posix-cpu-timers: Force next expiration recalc after itimer reset"
541e757944 Revert "block: nbd: add sanity check for first_minor"
5f3ecbf4d5 Revert "Bluetooth: Move shutdown callback before flushing tx and rx queue"
d756462d85 Merge 5.4.146 into android11-5.4-lts
245f15a48c Linux 5.4.146
b40facee46 clk: kirkwood: Fix a clocking boot regression
8810c51077 backlight: pwm_bl: Improve bootloader/kernel device handover
5de2ee621b fbmem: don't allow too huge resolutions
4a95b04afa IMA: remove the dependency on CRYPTO_MD5
c69935f0b0 IMA: remove -Wmissing-prototypes warning
85b0726d5b fuse: flush extending writes
8a98ced6e1 fuse: truncate pagecache on atomic_o_trunc
06dad664d4 KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter
1735cec1e8 KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted
20fff3ef33 KVM: s390: index kvm->arch.idle_mask by vcpu_idx
0323ab5b25 x86/resctrl: Fix a maybe-uninitialized build warning treated as error
51f4575ca1 perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op
03c3e977ee tty: Fix data race between tiocsti() and flush_to_ldisc()
7a25a0a94c time: Handle negative seconds correctly in timespec64_to_ns()
ae968e270f bpf: Fix pointer arithmetic mask tightening under state pruning
a0a4778fea bpf: verifier: Allocate idmap scratch in verifier env
f5893af270 bpf: Fix leakage due to insufficient speculative store bypass mitigation
e80c3533c3 bpf: Introduce BPF nospec instruction for mitigating Spectre v4
1c9424a765 ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
b3fe6d1921 octeontx2-af: Fix loop in free and unmap counter
8216d7157b net: qualcomm: fix QCA7000 checksum handling
4648917e49 net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed
e46e23c289 ipv4: make exception cache less predictible
f73cbdd1b8 ipv6: make exception cache less predictible
aa167dcde4 brcmfmac: pcie: fix oops on failure to resume and reprobe
5debec63a2 bcma: Fix memory leak for internally-handled cores
574e563649 ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
d946e685d6 ASoC: wcd9335: Disable irq on slave ports in the remove function
f3ec07f832 ASoC: wcd9335: Fix a memory leak in the error handling path of the probe function
a6088f4ed3 ASoC: wcd9335: Fix a double irq free in the remove function
7bfa680f3b tty: serial: fsl_lpuart: fix the wrong mapbase value
0f1375fa69 usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA config is available
06203abb72 usb: ehci-orion: Handle errors of clk_prepare_enable() in probe
a0a9ecca2d i2c: mt65xx: fix IRQ check
b444064a0e CIFS: Fix a potencially linear read overflow
e37eeaf950 bpf: Fix possible out of bound write in narrow load handling
fb8e695e9c mmc: moxart: Fix issue with uninitialized dma_slave_config
48b1f117e8 mmc: dw_mmc: Fix issue with uninitialized dma_slave_config
57314d8414 ASoC: Intel: Skylake: Fix module resource and format selection
92397571c2 ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs
b58cf18e38 rsi: fix an error code in rsi_probe()
d82fe3dd0b rsi: fix error code in rsi_load_9116_firmware()
4be8deab6f i2c: s3c2410: fix IRQ check
da3e5f3204 i2c: iop3xx: fix deferred probing
2da3272ae0 Bluetooth: add timeout sanity check to hci_inquiry
70d71611eb mm/swap: consider max pages in iomap_swapfile_add_extent
8f5e26053c usb: gadget: mv_u3d: request_irq() after initializing UDC
eb3c6a2501 nfsd4: Fix forced-expiry locking
81e69d3fdd lockd: Fix invalid lockowner cast after vfs_test_lock
e1c02e2e6a mac80211: Fix insufficient headroom issue for AMSDU
606668e24a usb: phy: tahvo: add IRQ check
ecf18ac8ff usb: host: ohci-tmio: add IRQ check
abbcd61d09 Bluetooth: Move shutdown callback before flushing tx and rx queue
93ec1fd04f usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse
30d9607bcd usb: phy: twl6030: add IRQ checks
e1473ac285 usb: phy: fsl-usb: add IRQ check
9535f55d0c usb: gadget: udc: at91: add IRQ check
05e5b16b79 drm/msm/dsi: Fix some reference counted resource leaks
5ccb04c6e1 Bluetooth: fix repeated calls to sco_sock_kill
c2451d5439 counter: 104-quad-8: Return error when invalid mode during ceiling_write
a1194b805c arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7
1b6fcd1037 drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs
156eaacba3 PM: EM: Increase energy calculation precision
5537dc810b Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
c0faa638f0 debugfs: Return error during {full/open}_proxy_open() on rmmod
f44714b4eb soc: qcom: smsm: Fix missed interrupts if state changes while masked
e7997fe3e9 PCI: PM: Enable PME if it can be signaled from D3cold
9e570f3d47 PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
f865b316cc media: venus: venc: Fix potential null pointer dereference on pointer fmt
d2ea2f0725 media: em28xx-input: fix refcount bug in em28xx_usb_disconnect
ebf570042b leds: trigger: audio: Add an activate callback to ensure the initial brightness is set
0a01dc7766 leds: lt3593: Put fwnode in any case during ->probe()
e39c73563a i2c: highlander: add IRQ check
fba783ddd9 net: cipso: fix warnings in netlbl_cipsov4_add_std
9fdac650c4 cgroup/cpuset: Fix a partition bug with hotplug
ffde058199 net/mlx5e: Prohibit inner indir TIRs in IPoIB
87f817c560 ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties
e55d7cbe1f ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties
4b0bbc412b ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties
f7058060c0 ARM: dts: meson8: Use a higher default GPU clock frequency
37ed461b52 tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
9521362753 drm/amdgpu/acp: Make PM domain really work
252fad3d02 netns: protect netns ID lookups with RCU
bd1cd32caa 6lowpan: iphc: Fix an off-by-one check of array index
c4895cf45f Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
a96eb96ce4 media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats
7163014d7d media: go7007: remove redundant initialization
8101492879 media: dvb-usb: Fix error handling in dvb_usb_i2c_init
fa8aaa7690 media: dvb-usb: fix uninit-value in vp702x_read_mac_addr
88933f9c93 media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init
f81c89614e soc: qcom: rpmhpd: Use corner in power_off
5b3987f583 arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties
6c106c7320 ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi
004778bf39 bpf: Fix potential memleak and UAF in the verifier.
fa4802c54e bpf: Fix a typo of reuseport map in bpf.h.
9a193caf9d media: cxd2880-spi: Fix an error handling path
34106f5260 soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally
b928930530 media: TDA1997x: enable EDID support
43282ca83a drm/panfrost: Fix missing clk_disable_unprepare() on error in panfrost_clk_init()
fc9cf22290 EDAC/i10nm: Fix NVDIMM detection
32d8a3684b spi: spi-zynq-qspi: use wait_for_completion_timeout to make zynq_qspi_exec_mem_op not interruptible
4206dbc985 spi: sprd: Fix the wrong WDG_LOAD_VAL
1f70517eac regulator: vctrl: Avoid lockdep warning in enable/disable ops
d255d6a645 regulator: vctrl: Use locked regulator_get_voltage in probe path
013177ccc4 certs: Trigger creation of RSA module signing key if it's not an RSA key
cc74533a47 crypto: qat - use proper type for vf_mask
b3fa499d72 block: nbd: add sanity check for first_minor
c60a31db39 clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel
6b10d3d3a9 lib/mpi: use kcalloc in mpi_resize
57c8e2ea47 genirq/timings: Fix error return code in irq_timings_test_irqs()
2d00b22c8b spi: spi-pic32: Fix issue with uninitialized dma_slave_config
b29593d069 spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
449884aeb3 sched: Fix UCLAMP_FLAG_IDLE setting
67da2d9c9e m68k: emu: Fix invalid free in nfeth_cleanup()
c68ba4a708 s390/debug: fix debug area life cycle
7a67a00ea8 s390/kasan: fix large PMD pages address alignment check
98296eb3de udf_get_extendedattr() had no boundary checks.
ae4240d1f4 fcntl: fix potential deadlock for &fasync_struct.fa_lock
a6273c8c2a crypto: qat - do not export adf_iov_putmsg()
7dfa7bb69e crypto: qat - fix naming for init/shutdown VF to PF notifications
843b4e713a crypto: qat - fix reuse of completion variable
4a98826455 crypto: qat - handle both source of interrupt in VF ISR
c2b3f81125 crypto: qat - do not ignore errors from enable_vf2pf_comms()
1c189ccef0 libata: fix ata_host_start()
e55b627d6e s390/cio: add dev_busid sysfs entry for each subchannel
0423517520 power: supply: max17042_battery: fix typo in MAx17042_TOFF
eb45ae88bf nvmet: pass back cntlid on successful completion
6cb5d6ae68 nvme-rdma: don't update queue count when failing to set io queues
3073ec7f06 nvme-tcp: don't update queue count when failing to set io queues
93cf19b4d9 bcache: add proper error unwinding in bcache_device_init
e55f20798f isofs: joliet: Fix iocharset=utf8 mount option
0f5cd92e5e udf: Fix iocharset=utf8 mount option
86987cf0fb udf: Check LVID earlier
cc608af36e hrtimer: Ensure timerfd notification for HIGHRES=n
a845787830 hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns()
c322a963d5 posix-cpu-timers: Force next expiration recalc after itimer reset
28996dbb8a rcu/tree: Handle VM stoppage in stall detection
b7c560ae51 sched/deadline: Fix missing clock update in migrate_task_rq_dl()
40db13e3ef crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop()
ebf0f71ae3 power: supply: axp288_fuel_gauge: Report register-address on readb / writeb errors
bba2b82d1b sched/deadline: Fix reset_on_fork reporting of DL tasks
53a6ef40c6 crypto: mxs-dcp - Check for DMA mapping errors
344a38789a regmap: fix the offset of register error log
a5e42516a6 locking/mutex: Fix HANDOFF condition
f019fa5605 Merge branch 'android11-5.4' into 'android11-5.4-lts'
80833b7bc2 ANDROID: GKI: db845c: Update symbols list and ABI for lts v5.4.144
9ccfa71ab0 Merge 5.4.145 into android11-5.4-lts
a0f68fb55e Linux 5.4.145
d83f0b39e7 PCI: Call Max Payload Size-related fixup quirks early
0c8277e334 x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
d31a4c35b9 xhci: fix unsafe memory usage in xhci tracing
e00d39ca92 usb: mtu3: fix the wrong HS mult value
c3ffd35014 usb: mtu3: use @mult for HS isoc or intr
00b6325590 usb: host: xhci-rcar: Don't reload firmware after the completion
7a74ae301c ALSA: usb-audio: Add registration quirk for JBL Quantum 800
c1ea74f642 Revert "btrfs: compression: don't try to compress if we don't have enough pages"
f05c74e104 x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating
b1ca1665e6 Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM"
cf1222b877 mm/page_alloc: speed up the iteration of max_order
17d409c83e net: ll_temac: Remove left-over debug message
ccadb91437 powerpc/boot: Delete unneeded .globl _zimage_start
295501c77c ipv4/icmp: l3mdev: Perform icmp error route lookup on source device routing table (v2)
6dec8e17b8 USB: serial: mos7720: improve OOM-handling in read_mos_reg()
d84708451d igmp: Add ip_mc_list lock in ip_check_mc_rcu
cd8ad6ed9a media: stkwebcam: fix memory leak in stk_camera_probe
9febc9153f ARC: wireup clone3 syscall
417b11d325 ALSA: pcm: fix divide error in snd_pcm_lib_ioctl
cf28619cd9 ALSA: hda/realtek: Workaround for conflicting SSID on ASUS ROG Strix G17
a8146f1490 ARM: 8918/2: only build return_address() if needed
ebad44b643 cryptoloop: add a deprecation warning
d12526ddf5 perf/x86/amd/power: Assign pmu.module
be1f76fcee perf/x86/amd/ibs: Work around erratum #1197
861118d64e perf/x86/intel/pt: Fix mask of num_address_ranges
40d23de514 qede: Fix memset corruption
468623f696 net: macb: Add a NULL check on desc_ptp
50f73f31ae qed: Fix the VF msix vectors flow
92abb09f7a reset: reset-zynqmp: Fixed the argument data type
b820c4c651 gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V formats
48051387fa xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG
56c77c1b52 kthread: Fix PF_KTHREAD vs to_kthread() race
af3cf928b9 ubifs: report correct st_size for encrypted symlinks
aa4e216156 f2fs: report correct st_size for encrypted symlinks
52d8e5b0ab ext4: report correct st_size for encrypted symlinks
228a4203d8 fscrypt: add fscrypt_symlink_getattr() for computing st_size
9b3849ba66 ext4: fix race writing to an inline_data file while its xattrs are changing
8ac6727e49 Revert "once: Fix panic when module unload"
2e0ca55ea4 Merge 5.4.144 into android11-5.4-lts
c6bf0ed9d1 Linux 5.4.144
0634c0f919 audit: move put_tree() to avoid trim_trees refcount underflow and UAF
cab0003311 net: don't unconditionally copy_from_user a struct ifreq for socket ioctls
6752b3b062 Revert "parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat"
67871ada3a Revert "floppy: reintroduce O_NDELAY fix"
d7f7eca72e btrfs: fix NULL pointer dereference when deleting device by invalid id
e644da7ace arm64: dts: qcom: msm8994-angler: Fix gpio-reserved-ranges 85-88
4f76285f6d KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs
620681d720 net: dsa: mt7530: fix VLAN traffic leaks again
38adbf21f3 bpf: Fix cast to pointer from integer of different size warning
812ee47ad7 bpf: Track contents of read-only maps as scalars
f441801520 vt_kdsetmode: extend console locking
8a19e00450 btrfs: fix race between marking inode needs to be logged and log syncing
f3a1ac258e net/rds: dma_map_sg is entitled to merge entries
ad6a2bc758 drm/nouveau/disp: power down unused DP links during init
689179c462 drm: Copy drm_wait_vblank to user before returning
18ceb99f84 qed: Fix null-pointer dereference in qed_rdma_create_qp()
f1a0db49ab qed: qed ll2 race condition fixes
73ba9e4ece vringh: Use wiov->used to check for read/write desc order
ee52acae6f virtio_pci: Support surprise removal of virtio pci device
be9b79e841 virtio: Improve vq->broken access to avoid any compiler optimization
0d4ba693db opp: remove WARN when no valid OPPs remain
baf56a1d81 perf/x86/intel/uncore: Fix integer overflow on 23 bit left shift of a u32
0ad96094ab usb: gadget: u_audio: fix race condition on endpoint stop
c5c2b4ca50 drm/i915: Fix syncmap memory leak
2f3cefa6ab net: hns3: fix get wrong pfc_en when query PFC configuration
6f0c0b35e2 net: hns3: fix duplicate node in VLAN list
951805c23d net: hns3: clear hardware resource when loading driver
08162f6564 rtnetlink: Return correct error on changing device netns
f58e42d192 net: marvell: fix MVNETA_TX_IN_PRGRS bit number
45454400a6 xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()'
53b480e68c ip_gre: add validation for csum_start
bb8ca7e2e6 RDMA/efa: Free IRQ vectors on error flow
e29565b451 e1000e: Fix the max snoop/no-snoop latency for 10M
8a21e84334 IB/hfi1: Fix possible null-pointer dereference in _extend_sdma_tx_descs()
944a50f56f RDMA/bnxt_re: Add missing spin lock initialization
28b1895410 scsi: core: Fix hang of freezing queue between blocking and running device
628c582854 usb: dwc3: gadget: Stop EP0 transfers during pullup disable
d9da281c8f usb: dwc3: gadget: Fix dwc3_calc_trbs_left()
21880abf19 USB: serial: option: add new VID/PID to support Fibocom FG150
2e098e91ee Revert "USB: serial: ch341: fix character loss at high transfer rates"
16b281a70a can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX and TX error counters
765437d1f0 mm, oom: make the calculation of oom badness more accurate
1cccf5c030 mmc: sdhci-msm: Update the software timeout value for sdhc
aec1e470d9 ovl: fix uninitialized pointer read in ovl_lookup_real_one()
57bd5b59f1 once: Fix panic when module unload
5892f910f4 netfilter: conntrack: collect all entries in one cycle
7c95c89b69 ARC: Fix CONFIG_STACKDEPOT
a6b049aeef net: qrtr: fix another OOB Read in qrtr_endpoint_post
feaf47115a Merge branch 'android11-5.4' into 'android11-5.4-lts'
4a23ba6f12 Merge branch 'android11-5.4' into 'android11-5.4-lts'
406300927b Revert "virtio: Protect vqs list access"
874997f95f Merge 5.4.143 into android11-5.4-lts
2d724dbd16 Revert "net: igmp: fix data-race in igmp_ifc_timer_expire()"
50637be299 Revert "net: igmp: increase size of mr_ifc_count"
f5f155f4d6 Revert "PCI/MSI: Protect msi_desc::masked for multi-MSI"
5395faca89 Merge 5.4.142 into android11-5.4-lts
48266f7c1b Merge branch 'android11-5.4' into 'android11-5.4-lts'
fd80923202 Linux 5.4.143
4bf1941581 netfilter: nft_exthdr: fix endianness of tcp option cast
e4fd994f02 fs: warn about impending deprecation of mandatory locks
41c7f46c89 mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim
1a3aa81444 mm, memcg: avoid stale protection values when cgroup is above protection
9c1c449dcc ASoC: intel: atom: Fix breakage for PCM buffer address setup
846ba58a7c PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI
548b75f490 btrfs: prevent rename2 from exchanging a subvol with a directory from different parents
0fc6a9c202 ipack: tpci200: fix memory leak in the tpci200_register
280d66b317 ipack: tpci200: fix many double free issues in tpci200_pci_probe
cb7aa51031 slimbus: ngd: reset dma setup during runtime pm
abce32d0f7 slimbus: messaging: check for valid transaction id
0786d315f5 slimbus: messaging: start transaction ids from 1 instead of zero
20c2f141b1 tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event name
8fbfebe188 ALSA: hda - fix the 'Capture Switch' value change notifications
85e60614d1 mmc: dw_mmc: Fix hang on data CRC error
4f6c9caf7b ovl: add splice file read write helper
85813f1f9e iavf: Fix ping is lost after untrusted VF had tried to change MAC
a498115dcd i40e: Fix ATR queue selection
1b8a8fba78 ovs: clear skb->tstamp in forwarding path
84dbbf5482 net: mdio-mux: Handle -EPROBE_DEFER correctly
453486e79e net: mdio-mux: Don't ignore memory allocation errors
6b70c67849 net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32
da92ce3645 virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO
9aeadce8e3 virtio-net: support XDP when not more queues
3ed7cf8386 vrf: Reset skb conntrack connection on VRF rcv
447b160289 bnxt_en: Add missing DMA memory barriers
c9566df334 ptp_pch: Restore dependency on PCI
a73b9aa142 net: 6pack: fix slab-out-of-bounds in decode_data
2bc7571343 bnxt: disable napi before canceling DIM
a9fb0f1559 bnxt: don't lock the tx queue from napi poll
1fe038030c bpf: Clear zext_dst of dead insns
73a45f75a0 vhost: Fix the calculation in vhost_overflow()
b9a59636c4 virtio: Protect vqs list access
b264e37b35 dccp: add do-while-0 stubs for dccp_pr_debug macros
9112ebc299 cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
cb9a9d5fe6 iommu: Check if group is NULL before remove device
911a8141ef Bluetooth: hidp: use correct wait queue when removing ctrl_wait
5b14c1f16e drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X
f92dc3a89d net: usb: lan78xx: don't modify phy_device state concurrently
be70436799 ARM: dts: nomadik: Fix up interrupt controller node names
69aa1a1a56 scsi: core: Fix capacity set to zero after offlinining device
935de7ec7a scsi: core: Avoid printing an error if target_alloc() returns -ENXIO
7a721a1e18 scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach()
9900e06ae6 scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry()
e37cf26bd5 dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available
12d1322d93 ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218
11145efd29 dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe()
9c97a05392 dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers
fc566b5a21 USB: core: Avoid WARNings for 0-length descriptor requests
1bd505c814 media: drivers/media/usb: fix memory leak in zr364xx_probe
705660a6d9 media: zr364xx: fix memory leaks in probe()
79dff2a3f4 media: zr364xx: propagate errors from zr364xx_start_readpipe()
7305d6d407 mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards
23f77ad13f ath9k: Postpone key cache entry deletion for TXQ frames reference it
c6feaf806d ath: Modify ath_key_delete() to not need full key entry
b7d593705e ath: Export ath_hw_keysetmac()
add283e251 ath9k: Clear key cache explicitly on disabling hardware
0c049ce432 ath: Use safer key clearing with key cache entries
172b91bbbb x86/fpu: Make init_fpstate correct with optimized XSAVE
81d152c8da ext4: fix EXT4_MAX_LOGICAL_BLOCK macro
62d24bac60 Merge branch 'android11-5.4' into 'android11-5.4-lts'
c15b830f7c Linux 5.4.142
a17f2f2c89 KVM: nSVM: always intercept VMLOAD/VMSAVE when nested (CVE-2021-3656)
7c1c96ffb6 KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl (CVE-2021-3653)
456fd88922 iommu/vt-d: Fix agaw for a supported 48 bit guest address width
5b5f855a79 vmlinux.lds.h: Handle clang's module.{c,d}tor sections
e9b2b2b29c ceph: take snap_empty_lock atomically with snaprealm refcount change
95ff775df6 ceph: clean up locking annotation for ceph_get_snap_realm and __lookup_snap_realm
1d8c232afb ceph: add some lockdep assertions around snaprealm handling
a6ff0f3f9f KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation
ec25d05e18 PCI/MSI: Protect msi_desc::masked for multi-MSI
48d2439c6f PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown()
386ead1d35 PCI/MSI: Correct misleading comments
76d81dec16 PCI/MSI: Do not set invalid bits in MSI mask
6b4bcbf133 PCI/MSI: Enforce MSI[X] entry updates to be visible
4495a41fbc PCI/MSI: Enforce that MSI-X table entry is masked for update
1866c8f6d4 PCI/MSI: Mask all unused MSI-X entries
3b4220c2bf PCI/MSI: Enable and mask MSI-X early
0c8dea3fd5 genirq/timings: Prevent potential array overflow in __irq_timings_store()
4dfe809271 genirq/msi: Ensure deactivation on teardown
e3e54a9300 x86/resctrl: Fix default monitoring groups reporting
a6b594ad74 x86/ioapic: Force affinity setup before startup
db5e266694 x86/msi: Force affinity setup before startup
eda32c2188 genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP
06b3477436 x86/tools: Fix objdump version check again
74451dd8bf powerpc/kprobes: Fix kprobe Oops happens in booke
b74145d858 nbd: Aovid double completion of a request
ad9550114d vsock/virtio: avoid potential deadlock when vsock device remove
b9cd73cce5 xen/events: Fix race in set_evtchn_to_irq
4d3c5c319b net: igmp: increase size of mr_ifc_count
721ff564cc tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B packets
2ce8a68a31 net: linkwatch: fix failure to restore device state across suspend/resume
33597972a2 net: bridge: fix memleak in br_add_if()
f6eee53beb net: dsa: sja1105: fix broken backpressure in .port_fdb_dump
1e6a570d37 net: dsa: lantiq: fix broken backpressure in .port_fdb_dump
564f6bbd0e net: dsa: lan9303: fix broken backpressure in .port_fdb_dump
a9243455e8 net: igmp: fix data-race in igmp_ifc_timer_expire()
ed957c77b3 net: Fix memory leak in ieee802154_raw_deliver
13a381b8bc net: dsa: microchip: Fix ksz_read64()
991117eeee drm/meson: fix colour distortion from HDR set during vendor u-boot
e114f15de8 net/mlx5: Fix return value from tracer initialization
f99aa76bb8 psample: Add a fwd declaration for skbuff
9dc8e396c1 iavf: Set RSS LUT and key in reset handle path
23436edae3 net: sched: act_mirred: Reset ct info when mirror/redirect skb
9636fbfe7b ppp: Fix generating ifname when empty IFLA_IFNAME is specified
1c31ee907f net: phy: micrel: Fix link detection on ksz87xx switch"
dfeb64f6e2 platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables
699db2bb96 platform/x86: pcengines-apuv2: revert wiring up simswitch GPIO as LED
af7f1539cf net: dsa: mt7530: add the missing RxUnicast MIB counter
d353a61860 ASoC: cs42l42: Fix LRCLK frame start edge
b036452082 netfilter: nf_conntrack_bridge: Fix memory leak when error
cd36a36ea4 ASoC: cs42l42: Remove duplicate control for WNF filter frequency
eb789cc917 ASoC: cs42l42: Fix inversion of ADC Notch Switch control
6a33813363 ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J
55e86f07b8 ASoC: cs42l42: Correct definition of ADC Volume control
22d2e3c6a1 ieee802154: hwsim: fix GPF in hwsim_new_edge_nl
5bac8c2a30 ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi
ddcf807fbb libnvdimm/region: Fix label activation vs errors
bc97fde4c6 ACPI: NFIT: Fix support for virtual SPA ranges
a753e3f334 ceph: reduce contention in ceph_check_delayed_caps()
aa04486c41 i2c: dev: zero out array used for i2c reads from userspace
c18b28e5ad ASoC: intel: atom: Fix reference to PCM buffer address
aab3fa5446 ASoC: xilinx: Fix reference to PCM buffer address
60e2854acf iio: adc: Fix incorrect exit of for-loop
bcac522592 iio: humidity: hdc100x: Add margin to the conversion time
da7cb80905 iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels
7116e6b9d8 Merge 5.4.141 into android11-5.4-lts
b704883aa8 Linux 5.4.141
983d6a6b7e btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
ea13f678a3 btrfs: export and rename qgroup_reserve_meta
41a9b8f36d btrfs: qgroup: don't commit transaction when we already hold the handle
38b8485b72 net: xilinx_emaclite: Do not print real IOMEM pointer
654c19a7e8 btrfs: fix lockdep splat when enabling and disabling qgroups
c55442cdfd btrfs: qgroup: remove ASYNC_COMMIT mechanism in favor of reserve retry-after-EDQUOT
fdaf6a322f btrfs: transaction: Cleanup unused TRANS_STATE_BLOCKED
36af2de520 btrfs: qgroup: try to flush qgroup space when we get -EDQUOT
5c79287c2b btrfs: qgroup: allow to unreserve range without releasing other ranges
b7a722fd75 btrfs: make btrfs_qgroup_reserve_data take btrfs_inode
dfadea4061 btrfs: make qgroup_free_reserved_data take btrfs_inode
812f39ed5b ovl: prevent private clone if bind mount is not allowed
eeb4742501 ppp: Fix generating ppp unit id when ifname is not specified
3460f3959d ALSA: hda: Add quirk for ASUS Flow x13
81d1a3f976 USB:ehci:fix Kunpeng920 ehci hardware problem
d28adaabbb KVM: X86: MMU: Use the correct inherited permissions to get shadow page
5f4ab7e25f usb: dwc3: gadget: Avoid runtime resume if disabling pullup
1782c4af6b usb: dwc3: gadget: Disable gadget IRQ during pullup disable
54b7022f28 usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable
e36245a68e usb: dwc3: gadget: Prevent EP queuing while stopping transfers
823f692508 usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup
25a0625fa9 usb: dwc3: gadget: Allow runtime suspend if UDC unbinded
5f081a928d usb: dwc3: Stop active transfers before halting the controller
396f29ea0c tracing: Reject string operand in the histogram expression
28276c280f media: v4l2-mem2mem: always consider OUTPUT queue during poll
236aca7092 tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag
5b774238e8 KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB
c33130b10f Merge 5.4.140 into android11-5.4-lts
ac1d54ea63 Merge branch 'android11-5.4' into 'android11-5.4-lts'
a998faa9c4 Linux 5.4.140
3c197fdd07 arm64: fix compat syscall return truncation
72fcaf6952 net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and ql_adapter_reset
742e85fa9e alpha: Send stop IPI to send to online CPUs
26946d2139 virt_wifi: fix error on connect
17d7c9c940 reiserfs: check directory items on read from disk
bcad6ece2a reiserfs: add check for root_inode in reiserfs_fill_super
e30a88f1f5 libata: fix ata_pio_sector for CONFIG_HIGHMEM
a2671d96a3 bpf, selftests: Adjust few selftest result_unpriv outcomes
4892b4f324 perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest
d6cf5342fa soc: ixp4xx/qmgr: fix invalid __iomem access
a5bf7ef13e spi: meson-spicc: fix memory leak in meson_spicc_remove
27991c78d6 soc: ixp4xx: fix printing resources
07fd256d53 arm64: vdso: Avoid ISB after reading from cntvct_el0
90e498ef3f KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds
2e1a80b934 KVM: Do not leak memory for duplicate debugfs directories
43486cd739 KVM: x86: accept userspace interrupt only if no event is injected
1b7b9713a5 md/raid10: properly indicate failure when ending a failed write request
790cb68d35 pcmcia: i82092: fix a null pointer dereference bug
42ac2c6348 timers: Move clearing of base::timer_running under base:: Lock
8211bb20da serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts.
f73dcb5d63 serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver
607460d386 MIPS: Malta: Do not byte-swap accesses to the CBUS UART
3eb686d01c serial: 8250: Mask out floating 16/32-bit bus bits
3b73a69962 serial: 8250_mtk: fix uart corruption issue when rx power off
afdef443a8 serial: tegra: Only print FIFO error message when an error occurs
097a183f9c ext4: fix potential htree corruption when growing large_dir directories
ac23a17381 pipe: increase minimum default pipe size to 2 pages
f3cae04bd4 media: rtl28xxu: fix zero-length control request
e2f6d5b038 staging: rtl8712: get rid of flush_scheduled_work
8f241df0e6 staging: rtl8723bs: Fix a resource leak in sd_int_dpc
bbdd4a5162 tpm_ftpm_tee: Free and unregister TEE shared memory during kexec
3c712f14d8 optee: Fix memory leak when failing to register shm pages
0572199b78 tee: add tee_shm_alloc_kernel_buf()
b247bf412c optee: Clear stale cache entries during initialization
7da261e6bb tracing / histogram: Give calculation hist_fields a size
ba22053f5d scripts/tracing: fix the bug that can't parse raw_trace_func
8d1191f924 clk: fix leak on devm_clk_bulk_get_all() unwind
ed5c9a49e6 usb: otg-fsm: Fix hrtimer list corruption
449a705fba usb: gadget: f_hid: idle uses the highest byte for duration
02f336cee5 usb: gadget: f_hid: fixed NULL pointer dereference
f780a9580c usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers
134e27da54 usb: cdns3: Fixed incorrect gadget state
df1c6eec4e ALSA: usb-audio: Add registration quirk for JBL Quantum 600
639b45456e ALSA: hda/realtek: add mic quirk for Acer SF314-42
d09639528b firmware_loader: fix use-after-free in firmware_fallback_sysfs
1deb6b9030 firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback
0ee687e672 USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2
01b2c35b05 USB: serial: ch341: fix character loss at high transfer rates
9ed43cfaa7 USB: serial: option: add Telit FD980 composition 0x1056
518e81874c USB: usbtmc: Fix RCU stall warning
ff29fe26ab Bluetooth: defer cleanup of resources in hci_unregister_dev()
580c10a40c blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit()
ed169b054b net: vxge: fix use-after-free in vxge_device_unregister
c5549876a9 net: fec: fix use-after-free in fec_drv_remove
3fed6dee16 net: pegasus: fix uninit-value in get_interrupt_interval
75cef4fc07 bnx2x: fix an error code in bnx2x_nic_load()
437ee90d7b mips: Fix non-POSIX regexp
b1fa6747b9 net: ipv6: fix returned variable type in ip6_skb_dst_mtu
3e63b566d9 nfp: update ethtool reporting of pauseframe control
d333503de1 sctp: move the active_key update after sh_keys is added
de30346dd3 gpio: tqmx86: really make IRQ optional
9d440b5c1d net: natsemi: Fix missing pci_disable_device() in probe and remove
6934040698 net: phy: micrel: Fix detection of ksz87xx switch
2b8ab7aec0 net: dsa: sja1105: invalidate dynamic FDB entries learned concurrently with statically added ones
71b0a935db net: dsa: sja1105: overwrite dynamic FDB entries with static ones in .port_fdb_add
88b7781609 net, gro: Set inner transport header offset in tcp/udp GRO hook
ba3abe3f82 dmaengine: imx-dma: configure the generic DMA type to make it work
ee2f81330a media: videobuf2-core: dequeue if start_streaming fails
3377f2f8c6 scsi: sr: Return correct event when media event code is 3
f588d4b7be spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation
b58e3d59a5 spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay
2c1065d40a omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator
299e3968c0 ARM: dts: am437x-l4: fix typo in can@0 node
9cbe7e21dd clk: stm32f4: fix post divisor setup for I2S/SAI PLLs
3f9eed4462 ALSA: usb-audio: fix incorrect clock source setting
16db40fc4a arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode
7c08460773 ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins
1b1f1aa225 ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init
aecff98c3e ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz
c39907335b ARM: dts: imx6qdl-sr-som: Increase the PHY reset duration to 10ms
61b71c5f51 ARM: imx: add missing clk_disable_unprepare()
d88d6bba3b ARM: imx: add missing iounmap()
6c629cd023 arm64: dts: ls1028a: fix node name for the sysclk
4a830a37d3 ALSA: seq: Fix racy deletion of subscriber
0658a45335 Revert "ACPICA: Fix memory leak caused by _CID repair function"
ea224455dd Merge 5.4.139 into android11-5.4-lts
8ab681fd3f ANDROID: GKI: fix up android/abi_gki_aarch64.xml merge
1d03502d2e Merge branch 'android11-5.4' into 'android11-5.4-lts'
e350cd02e2 Linux 5.4.139
03ff8a4f9d spi: mediatek: Fix fifo transfer
a0f66ddf05 bpf, selftests: Adjust few selftest outcomes wrt unreachable code
d3796e8f6b bpf, selftests: Add a verifier test for assigning 32bit reg states to 64bit ones
8dec99abcd bpf: Test_verifier, add alu32 bounds tracking tests
fd568de580 bpf: Fix leakage under speculation on mispredicted branches
d2f790327f bpf: Do not mark insn as seen under speculative path verification
283d742988 bpf: Inherit expanded/patched seen count from old aux data
a0a9546aae Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout"
76f5314d78 firmware: arm_scmi: Add delayed response status check
1b38f70bbc firmware: arm_scmi: Ensure drivers provide a probe function
44f522298c Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled"
38f54217b4 ACPI: fix NULL pointer dereference
0ea2f55bab nvme: fix nvme_setup_command metadata trace event
b508b652d4 net: Fix zero-copy head len calculation.
bf692e7ef6 qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union()
6bc48348ec r8152: Fix potential PM refcount imbalance
a57c75ff07 ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits
e2cccb839a spi: stm32h7: fix full duplex irq handler handling
b72f2d9e91 regulator: rt5033: Fix n_voltages settings for BUCK and LDO
86f2a3e9aa btrfs: fix lost inode on log replay after mix of fsync, rename and inode eviction
b7f0fa2192 btrfs: fix race causing unnecessary inode logging during link and rename
cb006da62a btrfs: do not commit logs and transactions during link and rename operations
174c27d0f9 btrfs: delete duplicated words + other fixes in comments
ae7ff75631 Merge 5.4.138 into android11-5.4-lts
7b90d57b09 Linux 5.4.138
7eef18c047 can: j1939: j1939_session_deactivate(): clarify lifetime of session object
18b536de3b i40e: Add additional info to PHY type error
d21eb93110 Revert "perf map: Fix dso->nsinfo refcounting"
16447b2f5c powerpc/pseries: Fix regression while building external modules
265883d1d8 PCI: mvebu: Setup BAR0 in order to fix MSI
21734a31c9 can: hi311x: fix a signedness bug in hi3110_cmd()
f4fa45b0f9 sis900: Fix missing pci_disable_device() in probe and remove
dff00ce448 tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
e0310bbeaa sctp: fix return value check in __sctp_rcv_asconf_lookup
408614108a net/mlx5e: Fix nullptr in mlx5e_hairpin_get_mdev()
ac49832306 net/mlx5: Fix flow table chaining
527feae56f net: llc: fix skb_over_panic
ede4c93860 mlx4: Fix missing error code in mlx4_load_one()
acb97d4b2d net: Set true network header for ECN decapsulation
851946a681 tipc: fix sleeping in tipc accept routine
194b71d28b i40e: Fix log TC creation failure when max num of queues is exceeded
834af62212 i40e: Fix queue-to-TC mapping on Tx
74aea4b715 i40e: Fix firmware LLDP agent related warning
b2ab34e862 i40e: Fix logic of disabling queues
519582e44e netfilter: nft_nat: allow to specify layer 4 protocol NAT only
3a7a4cee7b netfilter: conntrack: adjust stop timestamp to real expiry value
1c04378340 cfg80211: Fix possible memory leak in function cfg80211_bss_update
6cf2abea10 nfc: nfcsim: fix use after free during module unload
6b313d0ffa NIU: fix incorrect error return, missed in previous revert
c4663c1627 HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT
e9e2ce00ae can: esd_usb2: fix memory leak
43726620b2 can: ems_usb: fix memory leak
8198673892 can: usb_8dev: fix memory leak
a051dbd17b can: mcba_usb_start(): add missing urb->transfer_dma initialization
793581441b can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF
c621638d0e can: j1939: j1939_xtp_rx_dat_one(): fix rxtimer value between consecutive TP.DT to 750ms
a24d87b429 ocfs2: issue zeroout to EOF blocks
eaaa4284e2 ocfs2: fix zero out valid data
9bd1092148 KVM: add missing compat KVM_CLEAR_DIRTY_LOG
7a94dfe5e2 x86/kvm: fix vcpu-id indexed array sizes
2dc291582c Revert "ACPI: resources: Add checks for ACPI IRQ override"
a8eec69797 btrfs: mark compressed range uptodate only if all bio succeed
57429c1ec7 btrfs: fix rw device counting in __btrfs_free_extra_devids
61f2cbc792 x86/asm: Ensure asm/proto.h can be included stand-alone
99372c38a9 net_sched: check error pointer in tcf_dump_walker()
758a7acf8b Merge 5.4.137 into android11-5.4-lts
911bc13b3a Merge branch 'android11-5.4' into 'android11-5.4-lts'
5b1de8e15f Linux 5.4.137
ebb1b38be0 ipv6: ip6_finish_output2: set sk into newly allocated nskb
6c04123962 ARM: dts: versatile: Fix up interrupt controller node names
befa900533 iomap: remove the length variable in iomap_seek_hole
83fb41b2f6 iomap: remove the length variable in iomap_seek_data
302e1acd4c cifs: fix the out of range assignment to bit fields in parse_server_interfaces
02a470e3c6 firmware: arm_scmi: Fix range check for the maximum number of pending messages
289dd58431 firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow
e3acb292f0 hfs: add lock nesting notation to hfs_find_init
af1178296d hfs: fix high memory mapping in hfs_bnode_read
89136a47e2 hfs: add missing clean-up in hfs_fill_super
ded37d0344 ipv6: allocate enough headroom in ip6_finish_output2()
f65b7f377c sctp: move 198 addresses from unusable to private scope
c8d32973ee net: annotate data race around sk_ll_usec
c23b9a5610 net/802/garp: fix memleak in garp_request_join()
88c4cae3ed net/802/mrp: fix memleak in mrp_request_join()
eef99860c6 cgroup1: fix leaked context root causing sporadic NULL deref in LTP
7f0365b4da workqueue: fix UAF in pwq_unbound_release_workfn()
85abe0d47f af_unix: fix garbage collect vs MSG_PEEK
af45f3527a KVM: x86: determine if an exception has an error code only when injecting it.
828cab3c8c tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include
525c5513b6 selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c
fab7e04ebb ANDROID: Update android/abi_gki_aarch64.xml
c1b1b25ee2 ANDROID: Update android/abi_gki_aarch64_goldfish
ccc19b14a1 Merge 5.4.136 into android11-5.4-lts
253dccefb5 Linux 5.4.136
587f86b7a2 xhci: add xhci_get_virt_ep() helper
f9d0c35556 perf inject: Close inject.output on exit
a9c103fa91 PCI: Mark AMD Navi14 GPU ATS as broken
11561d2f7b btrfs: compression: don't try to compress if we don't have enough pages
4980301e1c iio: accel: bma180: Fix BMA25x bandwidth register values
d04f2582c4 iio: accel: bma180: Use explicit member assignment
4e0afa8895 net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear
2a4865d154 net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz
7d8c06b8d2 drm: Return -ENOTTY for non-drm ioctls
b5d7bebd96 nds32: fix up stack guard gap
ba378b7960 rbd: always kick acquire on "acquired" and "released" notifications
13066d6628 rbd: don't hold lock_rwsem while running_list is being drained
b12ead825f hugetlbfs: fix mount mode command line processing
60dbbd76f1 userfaultfd: do not untag user pointers
540eee8cbb selftest: use mmap instead of posix_memalign to allocate memory
e706ac3fc8 ixgbe: Fix packet corruption due to missing DMA sync
e617fa62f6 media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf()
77713fb336 btrfs: check for missing device in btrfs_trim_fs
f899f24d34 tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop.
59a9f75fb2 tracing/histogram: Rename "cpu" to "common_cpu"
379d8da335 firmware/efi: Tell memblock about EFI iomem reservations
281a94362b usb: dwc2: gadget: Fix sending zero length packet in DDMA mode.
167079fbfa USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
811c4cdf29 USB: serial: cp210x: fix comments for GE CS1000
f54ee7e16d USB: serial: option: add support for u-blox LARA-R6 family
e28d28eb9b usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop()
863d071dbc usb: max-3421: Prevent corruption of freed memory
e4077a90e6 USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS
da6f6769ee usb: hub: Fix link power management max exit latency (MEL) calculations
fea6b53e63 usb: hub: Disable USB 3 device initiated lpm if exit latency is too high
962ce043ef KVM: PPC: Book3S HV Nested: Sanitise H_ENTER_NESTED TM state
2b9ffddd70 KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow
c968f563cc xhci: Fix lost USB 2 remote wake
a660ecde5c ALSA: hdmi: Expose all pins on MSI MS-7C94 board
f73696354d ALSA: sb: Fix potential ABBA deadlock in CSP driver
7aa2dfbc6b ALSA: usb-audio: Add registration quirk for JBL Quantum headsets
46d62c3fe2 ALSA: usb-audio: Add missing proc text entry for BESPOKEN type
f1754f96ab s390/boot: fix use of expolines in the DMA code
8eb521d192 s390/ftrace: fix ftrace_update_ftrace_func implementation
268132b070 Revert "MIPS: add PMD table accounting into MIPS'pmd_alloc_one"
f323809e31 proc: Avoid mixing integer types in mem_rw()
b71a75209f drm/panel: raspberrypi-touchscreen: Prevent double-free
2e6ab87f8e net: sched: cls_api: Fix the the wrong parameter
b60461696a sctp: update active_key for asoc when old key is being replaced
9fa89c2cae nvme: set the PRACT bit when using Write Zeroes with T10 PI
c50141b3d7 r8169: Avoid duplicate sysfs entry creation error
f726817d6b afs: Fix tracepoint string placement with built-in AFS
b22c9e433b Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem"
69a49e7b5b nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING
8302513614 ipv6: fix another slab-out-of-bounds in fib6_nh_flush_exceptions
a88414fb11 net/sched: act_skbmod: Skip non-Ethernet packets
c278b954cc net: hns3: fix rx VLAN offload state inconsistent issue
006ed6f4d0 net/tcp_fastopen: fix data races around tfo_active_disable_stamp
3942ba2356 net: hisilicon: rename CACHE_LINE_MASK to avoid redefinition
f11f12decd bnxt_en: Check abort error state in bnxt_half_open_nic()
16ce6cb786 bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task()
c993e7aadc bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe()
6ee8e6be30 bnxt_en: Improve bnxt_ulp_stop()/bnxt_ulp_start() call sequence.
35637acc98 spi: cadence: Correct initialisation of runtime PM again
2f2150bf41 scsi: target: Fix protect handling in WRITE SAME(32)
a6cb717f85 scsi: iscsi: Fix iface sysfs attr detection
25df44e90f netrom: Decrease sock refcount when sock timers expire
8d7924ce85 net: sched: fix memory leak in tcindex_partial_destroy_work
f38527f189 KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak
b85dadd434 KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash
b3224bd318 net: decnet: Fix sleeping inside in af_decnet
bd2b3b13aa efi/tpm: Differentiate missing and invalid final event log table.
9413c0abb5 net: fix uninit-value in caif_seqpkt_sendmsg
6d56299ff9 bpftool: Check malloc return value in mount_bpffs_for_pin
edec100986 bpf, sockmap, tcp: sk_prot needs inuse_idx set for proc stats
58259e8b6e s390/bpf: Perform r1 range checking before accessing jit->seen_reg[r1]
cc876a5618 liquidio: Fix unintentional sign extension issue on left shift of u16
42fe8f433b ASoC: rt5631: Fix regcache sync errors on resume
d99aaf0736 spi: mediatek: fix fifo rx mode
08cdda8d89 regulator: hi6421: Fix getting wrong drvdata
b25be6bf64 regulator: hi6421: Use correct variable type for regmap api val argument
a1ade24ccc spi: stm32: fixes pm_runtime calls in probe/remove
40e203ce74 spi: stm32: Use dma_request_chan() instead dma_request_slave_channel()
24b78097a8 spi: imx: add a check for speed_hz before calculating the clock
52cff6123a perf data: Close all files in close_dir()
0f63857d10 perf probe-file: Delete namelist in del_events() on the error path
8b92ea243b perf lzma: Close lzma stream on exit
51351c6d5a perf script: Fix memory 'threads' and 'cpus' leaks on exit
d2bfc3eda9 perf dso: Fix memory leak in dso__new_map()
05804a7d22 perf test event_update: Fix memory leak of evlist
d257f3abdc perf test session_topology: Delete session->evlist
89d1762a4a perf env: Fix sibling_dies memory leak
fd335143be perf probe: Fix dso->nsinfo refcounting
6513dee46f perf map: Fix dso->nsinfo refcounting
ff9fc81fa8 nvme-pci: do not call nvme_dev_remove_admin from nvme_remove
d029df83c6 cxgb4: fix IRQ free race during driver unload
ae9b644344 pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped
a37ca2a076 selftests: icmp_redirect: IPv6 PMTU info should be cleared after redirect
05364a2794 selftests: icmp_redirect: remove from checking for IPv6 route get
7f4848229e ipv6: fix 'disable_policy' for fwd packets
c67fb96f54 gve: Fix an error handling path in 'gve_probe()'
e33da4eeaa igb: Fix position of assignment to *ring
7dd8977736 igb: Check if num of q_vectors is smaller than max before array access
d3d7cceee8 iavf: Fix an error handling path in 'iavf_probe()'
7a13a8a8a5 e1000e: Fix an error handling path in 'e1000_probe()'
9fc381db75 fm10k: Fix an error handling path in 'fm10k_probe()'
5d6a04927b igb: Fix an error handling path in 'igb_probe()'
cddd53237d igc: Fix an error handling path in 'igc_probe()'
47f69d8828 igc: Prefer to use the pci_release_mem_regions method
83b2d55a51 ixgbe: Fix an error handling path in 'ixgbe_probe()'
ba4fbb68fc igc: change default return of igc_read_phy_reg()
88e0720133 igb: Fix use-after-free error during reset
a9508e0edf igc: Fix use-after-free error during reset
f40a4f7a60 Merge 5.4.135 into android11-5.4-lts
0a0beb1f91 Linux 5.4.135
d2f7b384a7 udp: annotate data races around unix_sk(sk)->gso_size
c72374978b perf test bpf: Free obj_buf
17bc942c0b bpftool: Properly close va_list 'ap' by va_end() on error
84ed834094 ipv6: tcp: drop silly ICMPv6 packet too big messages
315033cab3 tcp: annotate data races around tp->mtu_info
41f45e91c9 dma-buf/sync_file: Don't leak fences on merge failure
04b0671683 net: fddi: fix UAF in fza_probe
8aa13a8696 net: validate lwtstate->data before returning from skb_tunnel_info()
8cff7b28ab net: send SYNACK packet with accepted fwmark
b7e5563f2a net: ti: fix UAF in tlan_remove_one
2b70ca9284 net: qcom/emac: fix UAF in emac_remove
463c0addb4 net: moxa: fix UAF in moxart_mac_probe
7ac4a6a74e net: ip_tunnel: fix mtu calculation for ETHER tunnel devices
d5dc50ca1f net: bcmgenet: Ensure all TX/RX queues DMAs are disabled
7ecd40801e net: bridge: sync fdb to new unicast-filtering ports
813d45499f net/sched: act_ct: fix err check for nf_conntrack_confirm
2497307356 netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo
c6f4a71153 net: ipv6: fix return value of ip6_skb_dst_mtu
9872273b67 net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz
6148ddff2d net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz
d73c180e6a dm writecache: return the exact table values that were set
8a85afc662 mm: slab: fix kmem_cache_create failed when sysfs node not destroyed
f53729b828 usb: cdns3: Enable TDL_CHK only for OUT ep
52b01a8086 f2fs: Show casefolding support only when supported
91d8460167 arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file
f696cc7f1b firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible string
e2b28026b8 arm64: dts: armada-3720-turris-mox: add firmware node
f7d1fa65e7 cifs: prevent NULL deref in cifs_compose_mount_options()
06d8a7eb58 s390: introduce proper type handling call_on_stack() macro
2a47e0719a sched/fair: Fix CFS bandwidth hrtimer expiry type
5b7d065868 scsi: qedf: Add check to synchronize abort and flush
0fe70c15f9 scsi: libfc: Fix array index out of bound exception
d7b647d055 scsi: libsas: Add LUN number check in .slave_alloc callback
863c4bc883 scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8
712e9ed613 rtc: max77686: Do not enforce (incorrect) interrupt trigger type
199d8ea4c7 kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
484193b635 thermal/core: Correct function name thermal_zone_device_unregister()
556cf02830 arm64: dts: imx8mq: assign PCIe clocks
9d3eb68a53 arm64: dts: ls208xa: remove bus-num from dspi node
e054b361ca firmware: tegra: bpmp: Fix Tegra234-only builds
94d0095770 soc/tegra: fuse: Fix Tegra234-only builds
270a2e9faf ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15
4bc66215bc ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings
856c753237 ARM: dts: rockchip: fix supply properties in io-domains nodes
c5bb9cc2ce arm64: dts: juno: Update SCPI nodes as per the YAML schema
f572a91393 ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings
95e795474c ARM: dts: stm32: fix RCC node name on stm32f429 MCU
a898aa9f88 ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards
5c17edaaea ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios
3446233096 ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios
e79e29a4e1 kbuild: sink stdout from cmd for silent build
f817d46775 rtc: mxc_v2: add missing MODULE_DEVICE_TABLE
0a22b51782 ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info
e20e85639e ARM: dts: imx6: phyFLEX: Fix UART hardware flow control
a5b19d33ae ARM: dts: Hurricane 2: Fix NAND nodes names
f83535a47f ARM: dts: BCM63xx: Fix NAND nodes names
cb05b84ad7 ARM: NSP: dts: fix NAND nodes names
14e3bad3b5 ARM: Cygnus: dts: fix NAND nodes names
587a757afe ARM: brcmstb: dts: fix NAND nodes names
a9c32c7aee reset: ti-syscon: fix to_ti_syscon_reset_data macro
b400afa427 arm64: dts: rockchip: Fix power-controller node names for rk3328
dfb4e8ed07 arm64: dts: rockchip: Fix power-controller node names for px30
789070f178 ARM: dts: rockchip: Fix power-controller node names for rk3288
6aaffe6ce8 ARM: dts: rockchip: Fix power-controller node names for rk3188
439115ee56 ARM: dts: rockchip: Fix power-controller node names for rk3066a
3b4c347283 ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x
c9d29d62da ARM: dts: rockchip: Fix the timer clocks order
d105e15de6 arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi
cfe3d29e5c ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288
79573c6441 ARM: dts: gemini: add device_type on pci
7037876393 ARM: dts: gemini: rename mdio to the right name
2a9f50cc6e Merge branch 'android11-5.4' into 'android11-5.4-lts'

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1dfe5c5858c0c1f38ccb32e253ff7ff7f509eced
2021-10-20 10:32:16 +02:00
Mincheol Jeong
0dedfe3f54
ANDROID: ABI: update allowed list for galaxy
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function int regulatory_set_wiphy_regd_sync_rtnl(wiphy*, ieee80211_regdomain*)'

Bug: 203121344
Signed-off-by: Mincheol Jeong <mc0115.jeong@samsung.corp-partner.google.com>
Change-Id: I5f5c4d14eebbfb5393bce35484ece9c863850ff1
2021-10-19 08:53:45 +09:00
Srinivasarao P
008930a84e ANDROID: ABI: Update allowed list for QCOM
Leaf changes summary: 1 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function void __sdhci_set_timeout(sdhci_host*, mmc_command*)'

Bug: 203221370
Change-Id: I8ccdd4ceb851675f65a9428f62f563c8905631d0
Signed-off-by: Srinivasarao P <quic_spathi@quicinc.com>
2021-10-17 10:06:56 +05:30
Isaac Chen
05cd3c592d ANDROID: distribute Module.symvers
Module.symvers contains the exported symbols with additional metadata,
which can be used to build kernel modules that use/need them.

Bug: 202914651
Signed-off-by: Isaac Chen <ycchen@google.com>
Change-Id: Ife00f368723f08bfdbe56cb1737ee328e2749d00
2021-10-14 13:14:46 +08:00
Mark Tomlinson
6eea8a6d1d UPSTREAM: usb: max-3421: Prevent corruption of freed memory
commit b5fdf5c6e6bee35837e160c00ac89327bdad031b upstream.

The MAX-3421 USB driver remembers the state of the USB toggles for a
device/endpoint. To save SPI writes, this was only done when a new
device/endpoint was being used. Unfortunately, if the old device was
removed, this would cause writes to freed memory.

To fix this, a simpler scheme is used. The toggles are read from
hardware when a URB is completed, and the toggles are always written to
hardware when any URB transaction is started. This will cause a few more
SPI transactions, but no causes kernel panics.

Fixes: 2d53139f31 ("Add support for using a MAX3421E chip as a host driver.")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Link: https://lore.kernel.org/r/20210625031456.8632-1-mark.tomlinson@alliedtelesis.co.nz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 202859772
Change-Id: Ic4ffd248449a240947b4e2f036360c5783a387e8
2021-10-12 12:22:25 -07:00