mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-06 03:45:24 -04:00
Merge android11-5.4.61+ (a564726) into msm-5.4
* refs/heads/tmp-a564726: ANDROID: gki_defconfig: initialize locals with zeroes UPSTREAM: security: allow using Clang's zero initialization for stack variables BACKPORT: net: core: use listified Rx for GRO_NORMAL in napi_gro_receive() UPSTREAM: spi: add power control when set_cs UPSTREAM: nl80211: fix NL80211_ATTR_HE_6GHZ_CAPABILITY usage ANDROID: ABI: Update allowed list for QCOM Change-Id: If9451d95dac1c5414d25aff4bb115bc1a94df07b Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
This commit is contained in:
commit
06f4c52a92
11 changed files with 1220 additions and 1241 deletions
13
Makefile
13
Makefile
|
|
@ -808,11 +808,20 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
|||
endif
|
||||
endif
|
||||
|
||||
# Initialize all stack variables with a pattern, if desired.
|
||||
ifdef CONFIG_INIT_STACK_ALL
|
||||
# Initialize all stack variables with a 0xAA pattern.
|
||||
ifdef CONFIG_INIT_STACK_ALL_PATTERN
|
||||
KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
|
||||
endif
|
||||
|
||||
# Initialize all stack variables with a zero value.
|
||||
ifdef CONFIG_INIT_STACK_ALL_ZERO
|
||||
# Future support for zero initialization is still being debated, see
|
||||
# https://bugs.llvm.org/show_bug.cgi?id=45497. These flags are subject to being
|
||||
# renamed or dropped.
|
||||
KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
|
||||
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
||||
endif
|
||||
|
||||
DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
|
||||
|
||||
ifdef CONFIG_DEBUG_INFO
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1380,6 +1380,12 @@
|
|||
memmove
|
||||
memory_read_from_buffer
|
||||
memparse
|
||||
mempool_alloc
|
||||
mempool_alloc_slab
|
||||
mempool_create
|
||||
mempool_destroy
|
||||
mempool_free
|
||||
mempool_free_slab
|
||||
memremap
|
||||
memset
|
||||
__memset_io
|
||||
|
|
|
|||
|
|
@ -542,7 +542,7 @@ CONFIG_FORTIFY_SOURCE=y
|
|||
CONFIG_STATIC_USERMODEHELPER=y
|
||||
CONFIG_STATIC_USERMODEHELPER_PATH=""
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
CONFIG_INIT_STACK_ALL=y
|
||||
CONFIG_INIT_STACK_ALL_ZERO=y
|
||||
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
||||
CONFIG_CRYPTO_ADIANTUM=y
|
||||
CONFIG_CRYPTO_LZ4=y
|
||||
|
|
|
|||
|
|
@ -468,7 +468,7 @@ CONFIG_FORTIFY_SOURCE=y
|
|||
CONFIG_STATIC_USERMODEHELPER=y
|
||||
CONFIG_STATIC_USERMODEHELPER_PATH=""
|
||||
CONFIG_SECURITY_SELINUX=y
|
||||
CONFIG_INIT_STACK_ALL=y
|
||||
CONFIG_INIT_STACK_ALL_ZERO=y
|
||||
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
|
||||
CONFIG_CRYPTO_ADIANTUM=y
|
||||
CONFIG_CRYPTO_SHA256_SSSE3=y
|
||||
|
|
|
|||
|
|
@ -3111,7 +3111,20 @@ int spi_setup(struct spi_device *spi)
|
|||
if (spi->controller->setup)
|
||||
status = spi->controller->setup(spi);
|
||||
|
||||
spi_set_cs(spi, false);
|
||||
if (spi->controller->auto_runtime_pm && spi->controller->set_cs) {
|
||||
status = pm_runtime_get_sync(spi->controller->dev.parent);
|
||||
if (status < 0) {
|
||||
pm_runtime_put_noidle(spi->controller->dev.parent);
|
||||
dev_err(&spi->controller->dev, "Failed to power device: %d\n",
|
||||
status);
|
||||
return status;
|
||||
}
|
||||
spi_set_cs(spi, false);
|
||||
pm_runtime_mark_last_busy(spi->controller->dev.parent);
|
||||
pm_runtime_put_autosuspend(spi->controller->dev.parent);
|
||||
} else {
|
||||
spi_set_cs(spi, false);
|
||||
}
|
||||
|
||||
if (spi->rt && !spi->controller->rt) {
|
||||
spi->controller->rt = true;
|
||||
|
|
|
|||
12
init/main.c
12
init/main.c
|
|
@ -525,14 +525,16 @@ static void __init report_meminit(void)
|
|||
{
|
||||
const char *stack;
|
||||
|
||||
if (IS_ENABLED(CONFIG_INIT_STACK_ALL))
|
||||
stack = "all";
|
||||
if (IS_ENABLED(CONFIG_INIT_STACK_ALL_PATTERN))
|
||||
stack = "all(pattern)";
|
||||
else if (IS_ENABLED(CONFIG_INIT_STACK_ALL_ZERO))
|
||||
stack = "all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL))
|
||||
stack = "byref_all";
|
||||
stack = "byref_all(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF))
|
||||
stack = "byref";
|
||||
stack = "byref(zero)";
|
||||
else if (IS_ENABLED(CONFIG_GCC_PLUGIN_STRUCTLEAK_USER))
|
||||
stack = "__user";
|
||||
stack = "__user(zero)";
|
||||
else
|
||||
stack = "off";
|
||||
|
||||
|
|
|
|||
|
|
@ -5609,12 +5609,13 @@ static void napi_skb_free_stolen_head(struct sk_buff *skb)
|
|||
kmem_cache_free(skbuff_head_cache, skb);
|
||||
}
|
||||
|
||||
static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
|
||||
static gro_result_t napi_skb_finish(struct napi_struct *napi,
|
||||
struct sk_buff *skb,
|
||||
gro_result_t ret)
|
||||
{
|
||||
switch (ret) {
|
||||
case GRO_NORMAL:
|
||||
if (netif_receive_skb_internal(skb))
|
||||
ret = GRO_DROP;
|
||||
gro_normal_one(napi, skb);
|
||||
break;
|
||||
|
||||
case GRO_DROP:
|
||||
|
|
@ -5646,7 +5647,7 @@ gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
|
|||
|
||||
skb_gro_reset_offset(skb);
|
||||
|
||||
ret = napi_skb_finish(dev_gro_receive(napi, skb), skb);
|
||||
ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb));
|
||||
trace_napi_gro_receive_exit(ret);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -5980,7 +5980,7 @@ static int nl80211_set_station(struct sk_buff *skb, struct genl_info *info)
|
|||
|
||||
if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY])
|
||||
params.he_6ghz_capa =
|
||||
nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]);
|
||||
nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]);
|
||||
|
||||
if (info->attrs[NL80211_ATTR_AIRTIME_WEIGHT])
|
||||
params.airtime_weight =
|
||||
|
|
|
|||
|
|
@ -19,13 +19,16 @@ config GCC_PLUGIN_STRUCTLEAK
|
|||
|
||||
menu "Memory initialization"
|
||||
|
||||
config CC_HAS_AUTO_VAR_INIT
|
||||
config CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
def_bool $(cc-option,-ftrivial-auto-var-init=pattern)
|
||||
|
||||
config CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
def_bool $(cc-option,-ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang)
|
||||
|
||||
choice
|
||||
prompt "Initialize kernel stack variables at function entry"
|
||||
default GCC_PLUGIN_STRUCTLEAK_BYREF_ALL if COMPILE_TEST && GCC_PLUGINS
|
||||
default INIT_STACK_ALL if COMPILE_TEST && CC_HAS_AUTO_VAR_INIT
|
||||
default INIT_STACK_ALL_PATTERN if COMPILE_TEST && CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
default INIT_STACK_NONE
|
||||
help
|
||||
This option enables initialization of stack variables at
|
||||
|
|
@ -88,9 +91,9 @@ choice
|
|||
of uninitialized stack variable exploits and information
|
||||
exposures.
|
||||
|
||||
config INIT_STACK_ALL
|
||||
config INIT_STACK_ALL_PATTERN
|
||||
bool "0xAA-init everything on the stack (strongest)"
|
||||
depends on CC_HAS_AUTO_VAR_INIT
|
||||
depends on CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
help
|
||||
Initializes everything on the stack with a 0xAA
|
||||
pattern. This is intended to eliminate all classes
|
||||
|
|
@ -98,6 +101,24 @@ choice
|
|||
exposures, even variables that were warned to have been
|
||||
left uninitialized.
|
||||
|
||||
Pattern initialization is known to provoke many existing bugs
|
||||
related to uninitialized locals, e.g. pointers receive
|
||||
non-NULL values, buffer sizes and indices are very big.
|
||||
|
||||
config INIT_STACK_ALL_ZERO
|
||||
bool "zero-init everything on the stack (strongest and safest)"
|
||||
depends on CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
help
|
||||
Initializes everything on the stack with a zero
|
||||
value. This is intended to eliminate all classes
|
||||
of uninitialized stack variable exploits and information
|
||||
exposures, even variables that were warned to have been
|
||||
left uninitialized.
|
||||
|
||||
Zero initialization provides safe defaults for strings,
|
||||
pointers, indices and sizes, and is therefore
|
||||
more suitable as a security mitigation measure.
|
||||
|
||||
endchoice
|
||||
|
||||
config GCC_PLUGIN_STRUCTLEAK_VERBOSE
|
||||
|
|
|
|||
Loading…
Reference in a new issue