Commit Graph

1073247 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
d852df7a72 Merge 972fa3a7c1 ("mm: kmemleak: alloc gray object for reserved region with direct map") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I691662967a1f3ddd25ca069a496da2eb84718cf8
2022-02-09 14:44:26 +01:00
Greg Kroah-Hartman
df3ee5193c Merge ad1a3e15fc ("kmemleak: fix kmemleak false positive report with HW tag-based kasan enable") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ie02c5bf74404534fd3a9ad9af721ec8781b50f32
2022-02-09 14:44:14 +01:00
Greg Kroah-Hartman
51d71e7fbd Merge c29b5b3d33 ("mm: slab: make slab iterator functions static") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I11b3c35e04850c143fca51deb296927a72a645a6
2022-02-09 14:44:00 +01:00
Greg Kroah-Hartman
6e4ec1bf0e Merge 7302e91f39 ("mm/slab_common: use WARN() if cache still has objects on destroy") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibf6aeaa6786612e2964fbbaa5adf5e4966d868ec
2022-02-09 14:42:58 +01:00
Greg Kroah-Hartman
fb91a0998a Merge a12cf8b32c ("fs/ioctl: remove unnecessary __user annotation") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I92bb3dd9124e2d854d8d265cc464a101b2918aca
2022-02-09 14:41:05 +01:00
Greg Kroah-Hartman
5cffa3dd46 Merge 9a25d05150 ("ocfs2: remove redundant assignment to variable free_space") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I40364e037817d9820508dc2da8f7b9a4c5b0e9b8
2022-02-09 14:39:56 +01:00
Greg Kroah-Hartman
4c35a79a0a Merge 783cc68d61 ("ocfs2: use BUG_ON instead of if condition followed by BUG.") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iddf6bb075742acd4839acafb011d6cdda14dfc30
2022-02-09 12:20:30 +01:00
Greg Kroah-Hartman
0efd6065cb Merge 9eec1d8971 ("squashfs: provide backing_dev_info in order to disable read-ahead") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I26b691172783cff6afad217f4466fbdf594c5e36
2022-02-09 12:20:24 +01:00
Greg Kroah-Hartman
547166824f Merge 7e0af97853 ("fs/ntfs/attrib.c: fix one kernel-doc comment") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9faa0e989a0b8c6c5b000810809eec7b14275858
2022-02-09 12:20:12 +01:00
Greg Kroah-Hartman
5d0893c978 Merge 9a69f2b0e4 ("scripts/spelling.txt: add "oveflow"") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I08b657b40e151fff5edb631033493104135e7381
2022-02-09 08:28:09 +01:00
Alistair Delva
8a78c18a93 Revert "clk: Emit a stern warning with writable debugfs enabled"
This reverts commit 489a71964f.

Rationale does not apply to Android userspace which does not allow
access to debugfs on user builds.

Bug: 218319878
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ia36b04b432a3db330e5a12763a3250869b97f0fe
Signed-off-by: Steve Muckle <smuckle@google.com>
2022-02-07 22:18:02 +00:00
Jason A. Donenfeld
ff07ceec79 UPSTREAM: lib/crypto: blake2s: avoid indirect calls to compression function for Clang CFI
blake2s_compress_generic is weakly aliased by blake2s_compress. The
current harness for function selection uses a function pointer, which is
ordinarily inlined and resolved at compile time. But when Clang's CFI is
enabled, CFI still triggers when making an indirect call via a weak
symbol. This seems like a bug in Clang's CFI, as though it's bucketing
weak symbols and strong symbols differently. It also only seems to
trigger when "full LTO" mode is used, rather than "thin LTO".

[    0.000000][    T0] Kernel panic - not syncing: CFI failure (target: blake2s_compress_generic+0x0/0x1444)
[    0.000000][    T0] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.16.0-mainline-06981-g076c855b846e #1
[    0.000000][    T0] Hardware name: MT6873 (DT)
[    0.000000][    T0] Call trace:
[    0.000000][    T0]  dump_backtrace+0xfc/0x1dc
[    0.000000][    T0]  dump_stack_lvl+0xa8/0x11c
[    0.000000][    T0]  panic+0x194/0x464
[    0.000000][    T0]  __cfi_check_fail+0x54/0x58
[    0.000000][    T0]  __cfi_slowpath_diag+0x354/0x4b0
[    0.000000][    T0]  blake2s_update+0x14c/0x178
[    0.000000][    T0]  _extract_entropy+0xf4/0x29c
[    0.000000][    T0]  crng_initialize_primary+0x24/0x94
[    0.000000][    T0]  rand_initialize+0x2c/0x6c
[    0.000000][    T0]  start_kernel+0x2f8/0x65c
[    0.000000][    T0]  __primary_switched+0xc4/0x7be4
[    0.000000][    T0] Rebooting in 5 seconds..

Nonetheless, the function pointer method isn't so terrific anyway, so
this patch replaces it with a simple boolean, which also gets inlined
away. This successfully works around the Clang bug.

In general, I'm not too keen on all of the indirection involved here; it
clearly does more harm than good. Hopefully the whole thing can get
cleaned up down the road when lib/crypto is overhauled more
comprehensively. But for now, we go with a simple bandaid.

Link: https://lore.kernel.org/all/20220124192849.14755-1-Jason@zx2c4.com/
Bug: 218328931
Fixes: 6048fdcc5f ("lib/crypto: blake2s: include as built-in")
Link: https://github.com/ClangBuiltLinux/linux/issues/1567
Reported-by: Miles Chen <miles.chen@mediatek.com>
Tested-by: Miles Chen <miles.chen@mediatek.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: John Stultz <john.stultz@linaro.org>
Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
(cherry picked from commit d2a02e3c8b)
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I797c6d79b120041aeb98ae68060d8cc4bd165c1a
2022-02-07 10:44:19 -08:00
Yifan Hong
e681fef273 ANDROID: kleaf: build/kleaf -> build/kernel/kleaf
This is part of a migration process from build/
to build/kernel.

Test: builds
Bug: 204425264
Change-Id: Id29f8e476fbb3590196789b2b578865798f24cd3
Signed-off-by: Yifan Hong <elsk@google.com>
2022-02-04 21:58:34 +00:00
Will McVicker
a82e2e9f9a ANDROID: Revert "perf/core: Use static_call to optimize perf_guest_info_callbacks"
This reverts commit 87b940a067. When
booting with the Pixel 6, I hit the below CFI failure. An email ([1])
was sent upstream to address this issue.

  Kernel panic - not syncing: CFI failure (target: __static_call_return0+0x0/0x8)
  CPU: 0 PID: 1625 Comm: batterystats-wo Tainted: G        W  OE     5.16.0-mainline #1$
  Hardware name: Raven EVT 1.1 (DT)$
  Call trace:$
   dump_backtrace+0xf0/0x130$
   show_stack+0x1c/0x2c$
   dump_stack_lvl+0x68/0x98$
   panic+0x168/0x420$
   __cfi_check_fail+0x58/0x5c$
   __cfi_slowpath_diag+0x150/0x1a4$
   perf_misc_flags+0x74/0xa4$
   perf_prepare_sample+0x50/0x44c$
   perf_event_output_forward+0x5c/0xcc$
   __perf_event_overflow+0xc8/0x188$
   perf_swevent_event+0x7c/0x10c$
   perf_tp_event+0x168/0x298$
   perf_trace_run_bpf_submit+0x8c/0xdc$
   perf_trace_sched_switch+0x180/0x1cc$
   __schedule+0x850/0x924$
   schedule+0x98/0xe0$
   binder_wait_for_work+0x158/0x368$
   binder_thread_read+0x278/0x243c$
   binder_ioctl_write_read+0x120/0x45c$
   binder_ioctl+0x1ac/0xc34$
   __arm64_sys_ioctl+0xa8/0x118$
   invoke_syscall+0x64/0x178$
   el0_svc_common+0x8c/0x100$
   do_el0_svc+0x28/0xa0$
   el0_svc+0x24/0x84$
   el0t_64_sync_handler+0x88/0xec$
   el0t_64_sync+0x1b4/0x1b8$

[1] https://lore.kernel.org/all/YfrQzoIWyv9lNljh@google.com/

Bug: 217583980
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I2951676ca4cce5e55461a71a670b35f9af41ba4e
2022-02-03 10:04:29 -08:00
Yifan Hong
54df59a346 ANDROID: build/build-tools -> build/kernel/build-tools.
This is part of the build -> build/kernel transition.

Test: TH
Bug: 204425264
Change-Id: I5bcf6ac00b6388af198e486f191e13f0b60050c9
Signed-off-by: Yifan Hong <elsk@google.com>
2022-02-02 07:21:10 +00:00
Steve Muckle
ccc4bea94d Revert "ANDROID: GKI: enable test_stackinit kernel module"
Reason for revert: need alternative deployment path for test modules

Change-Id: If2d5ca5a5cd41b2b76114e2db29e6e633f6c7ec2
Bug: 181024194
Signed-off-by: Steve Muckle <smuckle@google.com>
2022-02-01 20:33:22 +00:00
Tadeusz Struk
5dead96542 ANDROID: incremental-fs: populate userns before calling vfs_rename
The old and new mount user name spaces need to be populated
before calling vfs_rename().

Bug: 211066171

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: Ieac6975abb4131c8f5bdefe25b5f241c80023e38
2022-02-01 16:47:58 +00:00
Tadeusz Struk
8f40a6318c ANDROID: incremental-fs: remove index and incomplete dir on umount
Cleanup incremental-fs left overs on umount, otherwise incr-fs will
complain as below:

BUG: Dentry {i=47a,n=.incomplete} still in use [unmount of incremental-fs]

This requires vfs_rmdir() of the special index and incomplete dirs.
Also free options.sysfs_name in incfs_mount_fs() instead of in
incfs_free_mount_info() to make it consistent with incfs_remount_fs().

Since set_anon_super() was used in incfs_mount_fs() the incfs_kill_sb()
should use kill_anon_super() instead of generic_shutdown_super()
otherwise it will leak the pseudo dev_t that set_anon_super() allocates.

Bug: 211066171

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I7ea54db63513fc130e1997cbf79121015ee12405
2022-02-01 16:47:39 +00:00
Greg Kroah-Hartman
0d33650c09 Merge a33f5c380c ("Merge tag 'xfs-5.17-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2837db6408d3466ee479e9cd18b027299c9d8ed9
2022-02-01 14:33:23 +01:00
Greg Kroah-Hartman
8aa0abda8b Merge e1a7aa25ff ("Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into android-mainline
Steps on the way to 5.17-rc1

Resolves conflicts in:
	drivers/scsi/ufs/ufshcd.c

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I64ad2fb6ed77ba4678f631f4143b64339b1a5ddd
2022-02-01 14:30:08 +01:00
Greg Kroah-Hartman
1314cf6b01 Merge fb3b0673b7 ("Merge tag 'mailbox-v5.17' of git://git.linaro.org/landing-teams/working/fujitsu/integration") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ideab24121c5f822810b2cc3e5daaa4bea519c8bd
2022-02-01 12:29:52 +01:00
Greg Kroah-Hartman
d58125ae0c Merge 4eb766f64d ("Merge tag 'devicetree-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I31d706c14c828955cc30fdb1ac515e067418b2ea
2022-02-01 12:21:40 +01:00
Greg Kroah-Hartman
68cf9989a1 Revert "ANDROID: Support CONFIG_CMDLINE_EXTEND"
This reverts commit d9a2a3f2c2 which was
not upstream as it is causing merge conflicts with 5.17-rc1.

If this out-of-tree feature is still needed, it must be forward ported
properly again.

Bug: 120440972
Cc: Doug Anderson <dianders@chromium.org>
Cc: Colin Cross <ccross@android.com>
Cc: Amit Pundir <amit.pundir@linaro.org>
Fixes: d9a2a3f2c2 ("ANDROID: of: Support CONFIG_CMDLINE_EXTEND config option")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id34ae0303eb943668418b9aab3f928a7d970ca97
2022-02-01 12:21:05 +01:00
Greg Kroah-Hartman
9c84d144c9 Merge ce990f1de0 ("Merge tag 'for-linus-5.17-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7734f7ad7d56bdd0b0431bd40c1b378300743f88
2022-02-01 12:02:04 +01:00
Greg Kroah-Hartman
46ff0a247f Merge 13eaa5bda0 ("Merge tag 'iommu-updates-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu") into android-mainline
Steps on the way to 5.17-rc1

Resolves conflicts in:
	drivers/iommu/dma-iommu.c

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1f4b257550955dc7a79cb8a6628cd308fe2d8e71
2022-02-01 12:00:10 +01:00
Greg Kroah-Hartman
57a366526b Merge 362f533a2a ("Merge tag 'cxl-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibbb2b52631167e7568c59933c87942699d712454
2022-02-01 11:58:45 +01:00
Greg Kroah-Hartman
bc3b118590 Merge 3acbdbf42e ("Merge tag 'libnvdimm-for-5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm") into android-mainline
Steps on the way to 5.17-rc1

Resolves conflicts in:
	fs/ext4/inode.c

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7f7d4309bbce5cea381efeee8c27a3505e74f0df
2022-02-01 11:57:59 +01:00
Greg Kroah-Hartman
0484cf9136 Merge 8834147f95 ("Merge tag 'fscache-rewrite-20220111' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6904ae6aad6acb8e56092d1e941cd73039ce0a63
2022-01-31 20:13:54 +01:00
Alessio Balsini
6c8323d620 Merge 8975f89748 ("Merge tag 'fuse-update-5.17' of
git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse") into
android-mainline

Steps on the way to 5.17-rc1

Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: Iaa0fdd23d98a0a83e842dca032a14df445f87661
2022-01-31 16:57:58 +00:00
Alessio Balsini
cffa61e7b4 ANDROID: fs/fuse: Use extended init flags for FUSE_PASSTHROUGH
Starting with FUSE 7.36, all the fields for the 32-bit FUSE init flags
have been allocated, so commit 53db28933e ("fuse: extend init flags")
introduces the new 32-bit flags2 field in fuse_init_in and
fuse_init_out. That change also adds the FUSE_INIT_RESERVED flag that
doesn't have any specific purpose yet, is just reserved and should not
be used, and (un)fortunately collides with FUSE_PASSTHROUGH.

This change fixes the conflict by simply setting the FUSE_PASSTHROUGH
value to the next, latest unused fuse2 bit.
Although this is not the best design choice, userspace will know what
FUSE_PASSTHROUGH bit to choose based on the FUSE major and minor version
for FUSE version:
- < 7.36:    FUSE_PASSTHROUGH is the 31st bit of flags;
- otherwise: FUSE_PASSTHROUGH is the 31st bit of flags2.

Test: launch_cvd (both android-mainline and android13-5.10) \
  `logcat FuseDaemon:V \*:S` shows no FUSE passthrough errors
Bug: 215310351
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I85d7582008b8c093b3172b3f41c6cdf09863dd45
2022-01-31 16:57:32 +00:00
Will McVicker
cf74cca8a1 FROMLIST: kbuild: install the modules.order for external modules
Add support to install the modules.order file for external modules
during module_install in order to retain the Makefile ordering
of external modules. This helps reduce the extra steps necessary to
properly order loading of external modules when there are multiple
kernel modules compiled within a given KBUILD_EXTMOD directory.

To handle compiling multiple external modules within the same
INSTALL_MOD_DIR, kbuild will append a suffix to the installed
modules.order file defined like so:

  echo "${KBUILD_EXTMOD}" | md5sum | cut -d " " -f 1

Example:
  KBUILD_EXTMOD=/mnt/a.b/c-d/my_driver results in:
  modules.order.7dd3eb90588c21ac15f23a96c2f6d8ec

The installed module.order.$(extmod_suffix) files can then be appended
to the staging modules.order file which defines the order to load all of
the modules during boot.

Example:
  cd $(MODLIB)
  find extra/. -name modules.order.* -exec cat {} >> modules.order \;

Link: https://lore.kernel.org/all/20220127010009.2617569-1-willmcvicker@google.com/
Bug: 216462633
Bug: 210713925
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I7baa92163f8e6ea3f47d780b728167d86cc2f6e1
2022-01-27 09:03:13 -08:00
Will McVicker
7eebc4f1bc Revert "FROMLIST: kbuild: install the modules.order for external modules"
This reverts commit 77cbbcd16f. This patch
hasn't landed upstream yet, but needs a fix. So reverting it first to
help keep the fixes together in case we need to forward port this
feature.

Bug: 216462633
Change-Id: Ia96084bd24d0ee27b7addc2acbd5277e46cb86f1
Signed-off-by: Will McVicker <willmcvicker@google.com>
2022-01-26 16:27:25 -08:00
Sangmoon Kim
d497887b00 ANDROID: Re-apply vendor hooks for rt_mutex information of blocked tasks
This reverts commit bf2290a48a (Revert "ANDROID: vendor_hooks: set
debugging data when rt_mutex is working")

The original patch has been reverted to resolve merge issues.
This patch adds again the vendor hooks for the original purpose.

Bug: 216016261

Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: I00162d88e2a446e9ece4804def098fcdc63fceb9
2022-01-25 00:21:57 +09:00
Sangmoon Kim
c23da05eac ANDROID: Re-apply vendor hooks for information of blocked tasks
This reverts commit 31c9ccb138 (Revert "ANDROID: vendor_hooks: add
waiting information for blocked tasks")

And also revert portions of 396a501b17 (Revert "ANDROID: rwsem: Add
vendor hook to the rw-semaphore")

The original patch has been reverted to resolve merge issues.
This patch adds again the vendor hooks for the original purpose.

Bug: 216016261

Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: I04ed7b055eee40f7975bd5d74fb73dd080cd76bf
2022-01-25 00:21:46 +09:00
Tadeusz Struk
44efc592e5 ANDROID: incremental-fs: fix GPF in pending_reads_dispatch_ioctl
It is possible that fget returns NULL. This needs to be handled
correctly in ioctl_permit_fill.

Bug: 212821226

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: Iec8be21982afeab6794b78ab1a542671c52acea2
2022-01-21 16:24:30 +00:00
Tadeusz Struk
10a4118387 ANDROID: Incremental-fs: Doc: correct a sysfs path in incfs.rst
Correct a path to incremental-fs sysfs entry in incfs.rst

Bug: 211066171

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: Id3a94888edd9022c517939b4667d9792fc04146a
2022-01-21 15:57:19 +00:00
Tadeusz Struk
6260b8e827 ANDROID: selftests: fix incfs_test
Fix incfs test build error:

incfs_test.c:4441:19: error: argument 2 is null but the corresponding
                      size argument 3 value is 1 [-Werror=nonnull]
 4441 |         TESTEQUAL(read(fd, NULL, 1), -1);
      |                   ^

Bug: 211066171

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I028d02aef9938a9abe6c529756b89d7cb07507f2
2022-01-21 15:51:53 +00:00
Tadeusz Struk
f35524a260 ANDROID: incremental-fs: fix mount_fs issue
Syzbot recently found a number of issues related to incremental-fs
(see bug numbers below). All have to do with the fact that incr-fs
allows mounts of the same source and target multiple times.
The correct behavior for a file system is to allow only one such
mount, and then every subsequent attempt should fail with a -EBUSY
error code. In case of the issues listed below the common pattern
is that the reproducer calls:

mount("./file0", "./file0", "incremental-fs", 0, NULL)

many times and then invokes a file operation like chmod, setxattr,
or open on the ./file0. This causes a recursive call for all the
mounted instances, which eventually causes a stack overflow and
a kernel crash:

BUG: stack guard page was hit at ffffc90000c0fff8
kernel stack overflow (double-fault): 0000 [#1] PREEMPT SMP KASAN

The reason why many mounts with the same source and target are
possible is because the incfs_mount_fs() as it is allocates a new
super_block for every call, regardless of whether a given mount already
exists or not. This happens every time the sget() function is called
with a test param equal to NULL.
The correct behavior for an FS mount implementation is to call
appropriate mount vfs call for it's type, i.e. mount_bdev() for
a block device backed FS, mount_single() for a pseudo file system,
like sysfs that is mounted in a single, well know location, or
mount_nodev() for other special purpose FS like overlayfs.
In case of incremental-fs the open coded mount logic doesn't check
for abusive mount attempts such as overlays.
To fix this issue the logic needs to be changed to pass a proper
test function to sget() call, which then checks if a super_block
for a mount instance has already been allocated and also allows
the VFS to properly verify invalid mount attempts.

Bug: 211066171
Bug: 213140206
Bug: 213215835
Bug: 211914587
Bug: 211213635
Bug: 213137376
Bug: 211161296

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
Change-Id: I66cfc3f1b5aaffb32b0845b2dad3ff26fe952e27
2022-01-20 03:23:16 +00:00
Steve Muckle
bc9ec2e207 ANDROID: GKI: enable test_stackinit kernel module
Bug: 181024194
Change-Id: Ib7f9ea287fea7d27a87cdf549d0c4914317f8e56
Signed-off-by: Steve Muckle <smuckle@google.com>
2022-01-19 22:03:20 +00:00
Greg Kroah-Hartman
0b70181a03 Merge 1fb38c934c ("Merge tag 'fs_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I9f4dd2fd826b19d85ddad7c87b29ea317e796435
2022-01-19 11:20:26 +01:00
Greg Kroah-Hartman
8c21838cda Merge 3d3d673306 ("Merge tag 'fsnotify_for_v5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id258850c877c7b24850f0449444e12fabf4baae8
2022-01-19 11:19:50 +01:00
Greg Kroah-Hartman
3877717bd7 ANDROID: disable PINCTRL_THUNDERBAY from allmodconfig builds
This driver can not build cleanly without warnings just yet, who knows
why it was merged in this way.  Until it is fixed up upstream, just
disable it from the builds as no Android systems use it.

Fixes: 12422af819 ("pinctrl: Add Intel Thunder Bay pinctrl driver")
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7f13e119e386382ff853e8dd5d42e20484581771
2022-01-19 11:17:45 +01:00
Greg Kroah-Hartman
f1d158e581 Merge f079ab01b5 ("Merge tag 'iomap-5.17' of git://git.infradead.org/users/willy/linux") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I911db18b9f0270b3317a4fc6311e6d71c2293237
2022-01-19 08:09:14 +01:00
Greg Kroah-Hartman
2d7abf0f05 Merge d3c8108035 ("Merge tag 'for-5.17/block-2022-01-11' of git://git.kernel.dk/linux-block") into android-mainline
Steps on the way to 5.17-rc1

Resolves merge conflicts in:
	fs/iomap/direct-io.c

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ifa6a219f9c0bee7676881a968a8cced2af88d695
2022-01-19 08:00:33 +01:00
Greg Kroah-Hartman
cd0c00f9e2 Merge 42a7b4ed45 ("Merge tag 'for-5.17/io_uring-2022-01-11' of git://git.kernel.dk/linux-block") into android-mainline
Steps on the way to 5.17-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1b575553c576938e1c3e6012c698ffc2383ae3f1
2022-01-19 07:28:52 +01:00
Calvin Zhang
972fa3a7c1 mm: kmemleak: alloc gray object for reserved region with direct map
Reserved regions with direct mapping may contain references to other
regions.  CMA region with fixed location is reserved without creating
kmemleak_object for it.

So add them as gray kmemleak objects.

Link: https://lkml.kernel.org/r/20211123090641.3654006-1-calvinzhang.cool@gmail.com
Signed-off-by: Calvin Zhang <calvinzhang.cool@gmail.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:25 +02:00
Kuan-Ying Lee
ad1a3e15fc kmemleak: fix kmemleak false positive report with HW tag-based kasan enable
With HW tag-based kasan enable, We will get the warning when we free
object whose address starts with 0xFF.

It is because kmemleak rbtree stores tagged object and this freeing
object's tag does not match with rbtree object.

In the example below, kmemleak rbtree stores the tagged object in the
kmalloc(), and kfree() gets the pointer with 0xFF tag.

Call sequence:
    ptr = kmalloc(size, GFP_KERNEL);
    page = virt_to_page(ptr);
    offset = offset_in_page(ptr);
    kfree(page_address(page) + offset);
    ptr = kmalloc(size, GFP_KERNEL);

A sequence like that may cause the warning as following:

 1) Freeing unknown object:

    In kfree(), we will get free unknown object warning in
    kmemleak_free(). Because object(0xFx) in kmemleak rbtree and
    pointer(0xFF) in kfree() have different tag.

 2) Overlap existing:

    When we allocate that object with the same hw-tag again, we will
    find the overlap in the kmemleak rbtree and kmemleak thread will be
    killed.

	kmemleak: Freeing unknown object at 0xffff000003f88000
	CPU: 5 PID: 177 Comm: cat Not tainted 5.16.0-rc1-dirty #21
	Hardware name: linux,dummy-virt (DT)
	Call trace:
	 dump_backtrace+0x0/0x1ac
	 show_stack+0x1c/0x30
	 dump_stack_lvl+0x68/0x84
	 dump_stack+0x1c/0x38
	 kmemleak_free+0x6c/0x70
	 slab_free_freelist_hook+0x104/0x200
	 kmem_cache_free+0xa8/0x3d4
	 test_version_show+0x270/0x3a0
	 module_attr_show+0x28/0x40
	 sysfs_kf_seq_show+0xb0/0x130
	 kernfs_seq_show+0x30/0x40
	 seq_read_iter+0x1bc/0x4b0
	 seq_read_iter+0x1bc/0x4b0
	 kernfs_fop_read_iter+0x144/0x1c0
	 generic_file_splice_read+0xd0/0x184
	 do_splice_to+0x90/0xe0
	 splice_direct_to_actor+0xb8/0x250
	 do_splice_direct+0x88/0xd4
	 do_sendfile+0x2b0/0x344
	 __arm64_sys_sendfile64+0x164/0x16c
	 invoke_syscall+0x48/0x114
	 el0_svc_common.constprop.0+0x44/0xec
	 do_el0_svc+0x74/0x90
	 el0_svc+0x20/0x80
	 el0t_64_sync_handler+0x1a8/0x1b0
	 el0t_64_sync+0x1ac/0x1b0
	...
	kmemleak: Cannot insert 0xf2ff000003f88000 into the object search tree (overlaps existing)
	CPU: 5 PID: 178 Comm: cat Not tainted 5.16.0-rc1-dirty #21
	Hardware name: linux,dummy-virt (DT)
	Call trace:
	 dump_backtrace+0x0/0x1ac
	 show_stack+0x1c/0x30
	 dump_stack_lvl+0x68/0x84
	 dump_stack+0x1c/0x38
	 create_object.isra.0+0x2d8/0x2fc
	 kmemleak_alloc+0x34/0x40
	 kmem_cache_alloc+0x23c/0x2f0
	 test_version_show+0x1fc/0x3a0
	 module_attr_show+0x28/0x40
	 sysfs_kf_seq_show+0xb0/0x130
	 kernfs_seq_show+0x30/0x40
	 seq_read_iter+0x1bc/0x4b0
	 kernfs_fop_read_iter+0x144/0x1c0
	 generic_file_splice_read+0xd0/0x184
	 do_splice_to+0x90/0xe0
	 splice_direct_to_actor+0xb8/0x250
	 do_splice_direct+0x88/0xd4
	 do_sendfile+0x2b0/0x344
	 __arm64_sys_sendfile64+0x164/0x16c
	 invoke_syscall+0x48/0x114
	 el0_svc_common.constprop.0+0x44/0xec
	 do_el0_svc+0x74/0x90
	 el0_svc+0x20/0x80
	 el0t_64_sync_handler+0x1a8/0x1b0
	 el0t_64_sync+0x1ac/0x1b0
	kmemleak: Kernel memory leak detector disabled
	kmemleak: Object 0xf2ff000003f88000 (size 128):
	kmemleak:   comm "cat", pid 177, jiffies 4294921177
	kmemleak:   min_count = 1
	kmemleak:   count = 0
	kmemleak:   flags = 0x1
	kmemleak:   checksum = 0
	kmemleak:   backtrace:
	     kmem_cache_alloc+0x23c/0x2f0
	     test_version_show+0x1fc/0x3a0
	     module_attr_show+0x28/0x40
	     sysfs_kf_seq_show+0xb0/0x130
	     kernfs_seq_show+0x30/0x40
	     seq_read_iter+0x1bc/0x4b0
	     kernfs_fop_read_iter+0x144/0x1c0
	     generic_file_splice_read+0xd0/0x184
	     do_splice_to+0x90/0xe0
	     splice_direct_to_actor+0xb8/0x250
	     do_splice_direct+0x88/0xd4
	     do_sendfile+0x2b0/0x344
	     __arm64_sys_sendfile64+0x164/0x16c
	     invoke_syscall+0x48/0x114
	     el0_svc_common.constprop.0+0x44/0xec
	     do_el0_svc+0x74/0x90
	kmemleak: Automatic memory scanning thread ended

[akpm@linux-foundation.org: whitespace tweak]

Link: https://lkml.kernel.org/r/20211118054426.4123-1-Kuan-Ying.Lee@mediatek.com
Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Doug Berger <opendmb@gmail.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:25 +02:00
Muchun Song
c29b5b3d33 mm: slab: make slab iterator functions static
There is no external users of slab_start/next/stop(), so make them
static.  And the memory.kmem.slabinfo is deprecated, which outputs
nothing now, so move memcg_slab_show() into mm/memcontrol.c and rename
it to mem_cgroup_slab_show to be consistent with other function names.

Link: https://lkml.kernel.org/r/20211109133359.32881-1-songmuchun@bytedance.com
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:25 +02:00
Marco Elver
7302e91f39 mm/slab_common: use WARN() if cache still has objects on destroy
Calling kmem_cache_destroy() while the cache still has objects allocated
is a kernel bug, and will usually result in the entire cache being
leaked.  While the message in kmem_cache_destroy() resembles a warning,
it is currently not implemented using a real WARN().

This is problematic for infrastructure testing the kernel, all of which
rely on the specific format of WARN()s to pick up on bugs.

Some 13 years ago this used to be a simple WARN_ON() in slub, but commit
d629d81957 ("slub: improve kmem_cache_destroy() error message")
changed it into an open-coded warning to avoid confusion with a bug in
slub itself.

Instead, turn the open-coded warning into a real WARN() with the message
preserved, so that test systems can actually identify these issues, and
we get all the other benefits of using a normal WARN().  The warning
message is extended with "when called from <caller-ip>" to make it even
clearer where the fault lies.

For most configurations this is only a cosmetic change, however, note
that WARN() here will now also respect panic_on_warn.

Link: https://lkml.kernel.org/r/20211102170733.648216-1-elver@google.com
Signed-off-by: Marco Elver <elver@google.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:25 +02:00
Amit Daniel Kachhap
a12cf8b32c fs/ioctl: remove unnecessary __user annotation
__user annotations are used by the checker (e.g sparse) to mark user
pointers.  However here __user is applied to a struct directly, without a
pointer being directly involved.

Although the presence of __user does not cause sparse to emit a warning,
__user should be removed for consistency with other uses of offsetof().

Note: No functional changes intended.

Link: https://lkml.kernel.org/r/20211122101256.7875-1-amit.kachhap@arm.com
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
Cc: Vincenzo Frascino <Vincenzo.Frascino@arm.com>
Cc: Kevin Brodsky <Kevin.Brodsky@arm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:25 +02:00