Commit Graph

996460 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
368ecbcb2f Merge 21a6ab2131 ("Merge tag 'modules-for-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux") into android-mainline
Steps on the way to 5.12-rc1

Resolves conflicts in:
	include/linux/module.h

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I44772d65a5d6b1c5f4c33905554092c2cdc5b210
2021-03-06 08:45:21 +01:00
Todd Kjos
51681321c0 ANDROID: fixup restricted hooks after tracepont refactoring
In upstream commit d9a1be1be3 ("tracepoints: Do not punish non
static call users"), tracepoint macros were refactored to optimize
for static_call() cases. Since the Android-specific restricted
vendor hook mechanism leverages tracehooks, this required
equivalent refactoring in include/trace/hooks/vendor_hooks.h

Fixes: d9a1be1be3 ("tracepoints: Do not punish non static call users")
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: I2e01b34606e6ff0e577b76b57c47f601c32f626b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-03-06 08:43:12 +01:00
Greg Kroah-Hartman
48f7c289b1 Merge e6ff6f86bc4d0 ("Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8a9559999065a3e29d0c6b325e9705730ce88576
2021-03-06 08:41:44 +01:00
Greg Kroah-Hartman
666f4ce1b0 Merge 3a36281a17 ("Merge tag 'perf-tools-for-v5.12-2020-02-19' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibf80f8fbd99fca0c97ab8629b4c0dc5a93acb44d
2021-03-06 08:40:52 +01:00
Elena Petrova
9de75d9cb5 ANDROID: GKI: Enable bounds sanitizer
Bounds sanitizer, a part of UndefinedBehaviorSanitizer (UBSan), inserts
run time bounds checks when accessing structs and arrays of constant
size known at compile time (e.g. in `foo[i]` for `char foo[8]`, `i` will
be checked to be not greater than 8).

The change have been tested to not have measurable performance impact.

Bug: 175004266
Signed-off-by: Elena Petrova <lenaptr@google.com>
Change-Id: Ie02ac1b210eeea05ad9bb0bae4b60660648ae776
2021-03-06 00:55:07 +00:00
Greg Kroah-Hartman
aa21ac2d00 Merge 7b7028edf9 ("Merge tag 'memblock-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I306316c78fa6a301b3695e23f03e59a7e413cb60
2021-03-05 10:30:44 +01:00
Greg Kroah-Hartman
79f312ba37 Merge bdb39c9509 ("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.12-rc1

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

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Icf59a16d9e38754cd99a0fc670aff4112108456e
2021-03-05 10:28:32 +01:00
Greg Kroah-Hartman
61f5617bd9 Merge 325b764089 ("Merge tag 'for-5.12/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm") into android-mainline
Steps on the way to 5.12-rc1

Resolves merge conflicts in:
	block/keyslot-manager.c
	drivers/md/dm-flakey.c
	drivers/md/dm-linear.c
	drivers/md/dm-table.c
	include/linux/keyslot-manager.h

Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I0299acc540b73422c3a5d98dc32d4053063f8da1
2021-03-05 10:21:12 +01:00
Eric Biggers
8cca4eca4a ANDROID: gki_defconfig: enable CONFIG_MMC_CRYPTO
This is needed to support eMMC inline encryption hardware.

Bug: 161256007
Change-Id: Ib8a40363a77f787111632348ec3662c6f7550241
Signed-off-by: Eric Biggers <ebiggers@google.com>
(cherry picked from commit 018ad7e673)
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
2021-03-05 08:07:49 +00:00
Eric Biggers
9425feeaf5 ANDROID: mmc: cqhci: set blk_keyslot_manager::features
This is needed due to "ANDROID: block: add hardware-wrapped key
support", which isn't upstream yet.

Bug: 160883801
Change-Id: I053a1de8d8c600f8eaba60cd338e07b778d017b3
(cherry picked from commit 14d98d667c)
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-03-05 07:48:11 +00:00
Greg Kroah-Hartman
d5d6c36459 Merge tag 'block-5.12-2021-02-27' of git://git.kernel.dk/linux-block into android-mainline
Short-cut a 5.12-rc1 merge point.

Bug: 181742070
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7969218b877644b2fd4f9956a8d65123e524969e
2021-03-05 06:44:24 +01:00
Greg Kroah-Hartman
a9b70a2132 Revert "ANDROID: Revert "Merge 582cd91f69 ("Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") into android-mainline""
This reverts commit 47c1260ea8.

Bug: 181742070
Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I672a5db3738116de133a84e4bcecd8c18ff689e8
2021-03-05 06:43:17 +01:00
Eric Biggers
828de9bf79 ANDROID: scsi: ufs: replace fill_prdt with Android vendor hook
Like was done for the other non-upstream methods in
'struct ufs_hba_variant_ops', replace ->fill_prdt() with an Android
vendor hook.  This is considered to be better because it avoids any
conflicts with upstream changes to 'struct ufs_hba_variant_ops'.

Note that as a side effect of this change, fill_prdt is no longer
allowed to sleep.  That's fine for the only known use of this hook.

Bug: 162257402
Bug: 181359082
Change-Id: I8096932525c27b969193d769aff511a0114b35ad
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-03-04 23:20:36 +00:00
Matthias Maennich
ff882f5e56 ANDROID: allmodconfig: drop openssl from ADDITIONAL_HOST_TOOLS
This is now provided through the prebuilt build-tools.

Bug: 179516498
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I23152d35944b1efdb7aab9ef6c55aaad2ae1cbed
2021-03-04 20:48:26 +00:00
Lokesh Gidra
29968bfa0a ANDROID: GKI: Enable CONFIG_USERFAULTFD
Patches for SELinux support and kernel page-fault restriction in
userfaultfd have been backported. See references below.
So from security perspective it should be safe to enable it in Android.

1) https://android-review.googlesource.com/c/kernel/common/+/1576486
2) https://android-review.googlesource.com/c/kernel/common/+/1576704
3) https://android-review.googlesource.com/c/kernel/common/+/1612597
4) https://android-review.googlesource.com/c/kernel/common/+/1574667

Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
Bug: 160737021
Bug: 169683130
Change-Id: Iac5143da76783de57dba229f5761aff9297c17ae
(cherry picked from commit 16f20ce5ae)
2021-03-04 15:50:21 +00:00
Greg Kroah-Hartman
ff9463f365 Merge a99163e9e7 ("Merge tag 'devicetree-for-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iabdeafaf576f0e547a4380a9ecb478e0db7ae4b3
2021-03-03 18:13:53 +01:00
Greg Kroah-Hartman
4cf0c39dc0 Merge 5d26c176d5 ("Merge tag 'thermal-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I54c08034e04eac4b8d245afab8d3d13ff7d38844
2021-03-03 18:12:28 +01:00
Greg Kroah-Hartman
b70c8301f1 Merge 31caf8b2a8 ("Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I68dc8fda66552ee76f33c02a6711d684c2c40e54
2021-03-03 18:10:14 +01:00
Huang Jianan
6c8a1caa03 ANDROID: GKI: enable CONFIG_EROFS_FS=y
CONFIG_EROFS_FS=y is enable in android-5.4-stable branch now, so open
it on mainline to avoid repeated submissions in other branches.

Bug: 180727180
Change-Id: Ifb984d0816c043fca4699226a481b5f8ab7ab6fd
Signed-off-by: Huang Jianan <huangjianan@oppo.com>
2021-03-03 17:07:28 +00:00
Greg Kroah-Hartman
84645f0a33 Merge d1fec2214b ("Merge tag 'selinux-pr-20210215' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux") into android-mainline
Steps on the way to 5.12-rc1

Resolves conflicts in:
        security/selinux/hooks.c
        security/selinux/include/classmap.h

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5aedc69f0f2b3b16351b1f39ed69994ca1ba59a5
2021-03-03 15:35:26 +01:00
Greg Kroah-Hartman
d6518266c8 Merge d99676af54 ("Merge tag 'drm-next-2021-02-19' of git://anongit.freedesktop.org/drm/drm") into android-mainline
Steps on the way to 5.12-rc1

Resolves conflicts in:
        include/drm/drm_prime.h

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ib82bdb08d36b5b21bd685e1c60c295c8a560c8ad
2021-03-03 15:33:39 +01:00
Greg Kroah-Hartman
3bbd4974bd Merge 99ca0edb41 ("Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I159994a2fce809f28732e1867240971937b3df31
2021-03-03 15:31:16 +01:00
Greg Kroah-Hartman
547ee338cd ANDROID: binder: fix up use of MAX_USER_RT_PRIO
Commit e00eb41c0c ("ANDROID: binder: add support for RT prio
inheritance.") added the use of MAX_USER_RT_PRIO to the binder.c code,
but that commit was never sent upstream.

In commit ae18ad281e ("sched: Remove MAX_USER_RT_PRIO"), that define
was taken away, so to fix up the build breakage, move the binder code to
use MAX_RT_PRIO instead of the now-removed MAX_USER_RT_PRIO define.

Hopefully this is correct, who knows, it's binder RT code!  :)

Bug: 34461621
Bug: 37293077
Bug: 120446518
Fixes: e00eb41c0c ("ANDROID: binder: add support for RT prio inheritance.")
Fixes: ae18ad281e ("sched: Remove MAX_USER_RT_PRIO")
Cc: Martijn Coenen <maco@google.com>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Todd Kjos <tkjos@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I66b85e99697fdde462ec2d2ade5c92d5917896a3
2021-03-03 15:29:48 +01:00
Greg Kroah-Hartman
1e5781383b Merge 657bd90c93 ("Merge tag 'sched-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip") into android-mainline
Steps on the way to 5.12-rc1

Resolves conflicts in:
        kernel/sched/cpufreq_schedutil.c

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I06d90f919467f3e7e8970aaedbb872a10eb699ff
2021-03-03 15:29:15 +01:00
Greg Kroah-Hartman
3d0a37173c Merge b5183bc94b ("Merge tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip") into android-mainline
Steps on the way to 5.12-rc1

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: If7a51622397d0ee3c0d91c97e55ccb0e85202c98
2021-03-03 10:43:31 +01:00
Greg Kroah-Hartman
47c1260ea8 ANDROID: Revert "Merge 582cd91f69 ("Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") into android-mainline"
This reverts commit f858d3a02f ("Merge 582cd91f69 ("Merge tag
'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") into
android-mainline") as it is causing boot problems with md devices in the
android build systems.

Reverting this should allow us to continue on with the merges of other
non-block issues, in order to be able to focus on tracking this issue
down at a later time.

Fixes: f858d3a02f ("Merge 582cd91f69 ("Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") into android-mainline")
Bug: 181742070
Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I03cc2f86827f2d18db88fc68a4128747430f40d4
2021-03-03 10:37:27 +01:00
Greg Kroah-Hartman
f858d3a02f Merge 582cd91f69 ("Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") into android-mainline
Steps on the way to 5.12-rc1.

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

Cc: Eric Biggers <ebiggers@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Id09d89b6f3750d7976c293cd8b37843e97c9a777
2021-03-03 10:36:22 +01:00
Subash Abhinov Kasiviswanathan
d22fe1d9e7 ANDROID: GKI: Enable more networking configs
Enable the following netfilter and tc configs-

CONFIG_NETFILTER_XT_TARGET_DSCP=y
CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
CONFIG_NETFILTER_XT_MATCH_DSCP=y
CONFIG_NETFILTER_XT_MATCH_ESP=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NET_SCH_PRIO=y
CONFIG_NET_CLS_FW=y

CONFIG_NETFILTER_XT_TARGET_NOTRACK=y automatically selects
NETFILTER_XT_TARGET_CT in Kconfig so it is not actually removed in
the commit despite it showing up in the diff.

Bug: 181587536
Change-Id: Id1b4e9fbee9dc0a7a6220fb8a9db32fbc5d78a5a
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
2021-03-03 01:00:38 +00:00
Nick Desaulniers
1280e509c9 ANDROID: clang: update to 12.0.3
Bug: 180726982
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I4cca039f9817eabd7bfedc92dbcfe57efec60853
2021-03-02 20:48:36 +00:00
Greg Kroah-Hartman
2ab916a3d3 Merge 2f9f6221b9 ("block: simplify submit_bio_checks a bit") into android-mainline
Bisection steps on the way to 5.12-rc1

There's something broken with the 582cd91f69 ("Merge tag
'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") merge,
so let's take it in smaller chunks for now.

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibc907214f9c24a1f953aeb39ee320e1b2ba670ae
2021-03-02 19:35:47 +01:00
John Stultz
db08426423 ANDROID: Revert "ANDROID: Workaround for cryptobam driver not working with modular clk drivers"
This reverts commit fd6a95ccae.

As it is no longer necessary due to upstream fix in commit
123935a4ca ("dmaengine: qcom: bam_dma: Manage clocks when
controlled_remotely is set").

Fixes: fd6a95ccae ("ANDROID: Workaround for cryptobam driver not working with modular clk drivers")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I562f478434b99bc4902336f905135cd7eb9ea300
2021-03-01 23:20:21 +00:00
John Stultz
5732f23501 ANDROID: db845c_gki.fragment: Remove QCOM_GENI_CONSOLE modules now they are built in
With commit a7961b0635 ("ANDROID: gki_defconfig: Enable QCOM geni console")
the QCOM_GENI options are now built in. Trying to load the modules built in the
db845c_gki.fragment cause boot failure, so remove them from the config fragment.

Fixes: a7961b0635 ("ANDROID: gki_defconfig: Enable QCOM geni console")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I9840d66366bfc489dc8e546277f38936c6c16186
2021-03-01 23:20:18 +00:00
Jaegeuk Kim
f2b125b149 ANDROID: scsi: ufs: replace variants with android vendor hooks
This converts the existing android-specific hooks to official vendor hooks.
Per not-restricted hooks, vendor body should not enter into sleep mode by
mutex or similar.

Bug: 181359082
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Change-Id: Ic66077b3c42e63a5496a1d0c107bad8ae3601f3c
2021-03-01 22:52:14 +00:00
Kevin Hilman
42b8f4b026 ANDROID: GKI: amlogic: enable BCM WLAN as modules
Broadcom FMAC (brcmfmac) drivers are used on several Amlogic-based
designs, including Khadas VIM3/VIM3L.

Bug: 179406580
Change-Id: I9f441facbf6c98d25483634105c915fd52ea87c6
Cc: Dmitry Shmidt <dimitrysh@google.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
2021-03-01 10:36:22 -08:00
Michael Specter
a442985f97 ANDROID: Adding kprobes build configs for Cuttlefish
Bug: 181054145
Change-Id: Ibb1362479469eae9c294f71a483e500db05b04e1
Signed-off-by: Michael Specter <mikespecter@google.com>
2021-03-01 15:29:45 +00:00
Will Deacon
633f976b0a Revert "ANDROID: arm64: Add support for asymmetric AArch32 EL0 configurations"
This reverts commit 8a2a23717d.

Bug: 178507149
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: I281024956da915ead240be37d66268ce862d4031
2021-03-01 11:00:43 +00:00
Will Deacon
b4571cc96c Revert "ANDROID: arm64: Handle AArch32 tasks running on non AArch32 cpu"
This reverts commit cacae105ed.

Bug: 178507149
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: I26369490f2f8b5c4eb47559cd1a8a197cdda1d75
2021-03-01 10:59:03 +00:00
Will Deacon
d7ea8ab496 Revert "ANDROID: arm64: Disallow offlining the last aarch32 cpu"
This reverts commit d4313b326c.

Bug: 178507149
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: I5ea1946c496211536840de9525a71901ad60a348
2021-03-01 10:59:03 +00:00
Will Deacon
edde5dfd5d Revert "ANDROID: arm64: kvm: Hide asym aarch32 systems from KVM"
This reverts commit b674244dc1.

Bug: 178507149
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: Ia0cdd883546c1ffa0f517910d09c6730ff7b2006
2021-03-01 10:59:03 +00:00
Will Deacon
ce862b7aa7 Revert "ANDROID: arm64: Enable KVM for Asym AArch32"
This reverts commit 7ba2f04cb6.

Bug: 178507149
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: I9eaed1d2cc5004c3bfa4d2c8816a0f29fe3aff9e
2021-03-01 10:59:02 +00:00
Greg Kroah-Hartman
a02cebb710 Merge cf9a978f97 ("dcssblk: remove the end of device check in dcssblk_submit_bio") into android-mainline
Bisection steps on the way to 5.12-rc1

There's something broken with the 582cd91f69 ("Merge tag
'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block") merge,
so let's take it in smaller chunks for now.

Change-Id: I9c655a3e714d044eca7a0da5f094605a5d7fdd5e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-02-28 14:39:19 +01:00
Matthew Wilcox (Oracle)
5f7136db82 block: Add bio_max_segs
It's often inconvenient to use BIO_MAX_PAGES due to min() requiring the
sign to be the same.  Introduce bio_max_segs() and change BIO_MAX_PAGES to
be unsigned to make it easier for the users.

Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-02-26 15:49:51 -07:00
Wasb Liu
f50320a984 ANDROID: power_supply: Update power_supply enums
Rename POWER_SUPPLY_CHARGE_TYPE_TAPER to
POWER_SUPPLY_CHARGE_TYPE_TAPER_EXT

Bug: 168244640
Signed-off-by: Wasb Liu <wasbliu@google.com>
Change-Id: I1ebd3daf79902c873212b9ba8de7a5930d648bae
Signed-off-by: Will McVicker <willmcvicker@google.com>
2021-02-26 14:00:07 -08:00
Andrey Konovalov
bcc6abad89 ANDROID: gki_defconfig: enable CONFIG_KASAN_HW_TAGS
Enable in-kernel MTE (Memory Tagging Extension) support via
CONFIG_KASAN_HW_TAGS=y. With this change in-kernel MTE will be
auto-enabled during boot on hardware that supports MTE.

Currently, in-kernel MTE is only supported for slab and page_alloc
allocations. Future changes might include support for vmalloc, stack,
and globals.

By default:

- MTE works in synchronous mode, which means that tag faults are being
  reported at the point of occurence.
- When a tag fault is detected, a report is printed into the kernel log.
  Only the first tag fault gets reported. No panic occurs unless either
  "kasan.fault=panic" or "panic_on_warn" is set via command line.
- A report contains the address and a stack trace of the access.
  There are no alloc/free stack traces for the accessed page or slab
  object (as specified via CONFIG_CMDLINE in this change).

These defaults can be overridden via command line parameters, see
Documentation/dev-tools/kasan.rst for details. In particular, using
the "kasan=off" command line parameter will turn in-kernel MTE off.
Note, that enabling alloc/free stacktraces requires specifying both
"kasan.stacktrace=on" and "stack_depot_disable=off".

On MTE-enabled hardware, a performance impact of ~10% is expected, but
there is no such hardware yet to run benchmarks. A future integration of
in-kernel MTE with init_on_alloc/free might significantly bring down the
perfomance impact.

There is no performance impact when in-kernel MTE is disabled via
command line or when hardware without MTE (pre-ARMv8.5) is in use.
There is still a side-effect of TTBR1 TBI (Top Byte Ignore) getting
enabled with CONFIG_KASAN_HW_TAGS=y.

Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Bug: 172318110
Change-Id: I2f9bb845ae43292c182532e5e42f43e07b4d0d56
2021-02-26 18:38:55 +01:00
Eric Biggers
9169a937f0 FROMLIST: f2fs: support direct I/O with fscrypt using blk-crypto
Wire up f2fs with fscrypt direct I/O support. direct I/O with fscrypt is
only supported through blk-crypto (i.e. CONFIG_BLK_INLINE_ENCRYPTION must
have been enabled, the 'inlinecrypt' mount option must have been specified,
and either hardware inline encryption support must be present or
CONFIG_BLK_INLINE_ENCYRPTION_FALLBACK must have been enabled). Further,
direct I/O on encrypted files is only supported when I/O is aligned
to the filesystem block size (which is *not* necessarily the same as the
block device's block size).

Signed-off-by: Eric Biggers <ebiggers@google.com>
Co-developed-by: Satya Tangirala <satyat@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>
Acked-by: Jaegeuk Kim <jaegeuk@kernel.org>

Bug: 162255927
Link: https://lore.kernel.org/r/20200724184501.1651378-6-satyat@google.com
Change-Id: I2efde5aed559ba59f964d7d2e54f73414062daf8
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-02-26 13:23:01 +01:00
Eric Biggers
328a492ae5 FROMLIST: ext4: support direct I/O with fscrypt using blk-crypto
Wire up ext4 with fscrypt direct I/O support. Direct I/O with fscrypt is
only supported through blk-crypto (i.e. CONFIG_BLK_INLINE_ENCRYPTION must
have been enabled, the 'inlinecrypt' mount option must have been specified,
and either hardware inline encryption support must be present or
CONFIG_BLK_INLINE_ENCYRPTION_FALLBACK must have been enabled). Further,
direct I/O on encrypted files is only supported when I/O is aligned
to the filesystem block size (which is *not* necessarily the same as the
block device's block size).

fscrypt_limit_io_blocks() is called before setting up the iomap to ensure
that the blocks of each bio that iomap will submit will have contiguous
DUNs. Note that fscrypt_limit_io_blocks() is normally a no-op, as normally
the DUNs simply increment along with the logical blocks. But it's needed
to handle an edge case in one of the fscrypt IV generation methods.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Co-developed-by: Satya Tangirala <satyat@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>
Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org>

Bug: 162255927
Link: https://lore.kernel.org/r/20200724184501.1651378-5-satyat@google.com
Change-Id: Ia3d869cefabdff070f4e77c46190351f6cb5d74c
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-02-26 13:23:01 +01:00
Eric Biggers
89d89a9580 FROMLIST: iomap: support direct I/O with fscrypt using blk-crypto
Set bio crypt contexts on bios by calling into fscrypt when required.
No DUN contiguity checks are done - callers are expected to set up the
iomap correctly to ensure that each bio submitted by iomap will not have
blocks with incontiguous DUNs by calling fscrypt_limit_io_blocks()
appropriately.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Co-developed-by: Satya Tangirala <satyat@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>

Bug: 162255927
Link: https://lore.kernel.org/r/20200724184501.1651378-4-satyat@google.com
Change-Id: I34bd73001d53c854b5905799d3a9c31762914763
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-02-26 13:23:01 +01:00
Eric Biggers
1aa65ee10d FROMLIST: direct-io: add support for fscrypt using blk-crypto
Set bio crypt contexts on bios by calling into fscrypt when required,
and explicitly check for DUN continuity when adding pages to the bio.
(While DUN continuity is usually implied by logical block contiguity,
this is not the case when using certain fscrypt IV generation methods
like IV_INO_LBLK_32).

Signed-off-by: Eric Biggers <ebiggers@google.com>
Co-developed-by: Satya Tangirala <satyat@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>
Reviewed-by: Jaegeuk Kim <jaegeuk@kernel.org>

Bug: 162255927
Link: https://lore.kernel.org/r/20200724184501.1651378-3-satyat@google.com
Change-Id: I57ff74185004371c01ec35d806b0749583375c58
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-02-26 13:23:01 +01:00
Satya Tangirala
bebd6aa08f ANDROID: export fscrypt_limit_io_blocks()
The upstream version of the direct I/O on encrypted files patch series
missed exporting this function, which is needed if ext4 is built as a
module.

Bug: 162255927
Fixes: 914bc8e7646a ("FROMLIST: fscrypt: Add functions for direct I/O support")
Change-Id: Ib827b4743423c7446436a47fcf95b255466288a3
Signed-off-by: Satya Tangirala <satyat@google.com>
2021-02-26 13:23:01 +01:00
Eric Biggers
bc2933702d FROMLIST: fscrypt: Add functions for direct I/O support
Introduce fscrypt_dio_supported() to check whether a direct I/O request
is unsupported due to encryption constraints.

Also introduce fscrypt_limit_io_blocks() to limit how many blocks can be
added to a bio being prepared for direct I/O. This is needed for
filesystems that use the iomap direct I/O implementation to avoid DUN
wraparound in the middle of a bio (which is possible with the
IV_INO_LBLK_32 IV generation method). Elsewhere fscrypt_mergeable_bio()
is used for this, but iomap operates on logical ranges directly, so
filesystems using iomap won't have a chance to call fscrypt_mergeable_bio()
on every block added to a bio. So we need this function which limits a
logical range in one go.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Co-developed-by: Satya Tangirala <satyat@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>

Bug: 162255927
Link: https://lore.kernel.org/r/20200724184501.1651378-2-satyat@google.com
Change-Id: I1dbd4f382d510d9b779d5e44a77fadf7040cf077
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-02-26 13:23:01 +01:00