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
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>
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
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
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
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>
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>
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>
This is now provided through the prebuilt build-tools.
Bug: 179516498
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I23152d35944b1efdb7aab9ef6c55aaad2ae1cbed
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>
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
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
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
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
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
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
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>
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
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
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
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
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>
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>
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>
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
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>
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>
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>
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>
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>
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>