KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
-LINUX_VERSION-5.4 = .125
+LINUX_VERSION-5.4 = .126
LINUX_VERSION-5.10 = .46
-LINUX_KERNEL_HASH-5.4.125 = 17ee750a4aeb1c883d721e730d1f7e2855124585e2f47766864a1359a7ebe33c
+LINUX_KERNEL_HASH-5.4.126 = c7fd7998ab36b574326bbd67bcc2b74e4c58e81581a5f8a7a71af5185f635277
LINUX_KERNEL_HASH-5.10.46 = 569122a39c6b325befb9ac1c07da0c53e6363b3baacd82081d131b06c1dc1415
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
-From 0f95a2f2688ff44dc7080beaa2076741a0bdf510 Mon Sep 17 00:00:00 2001
+From 2b13c54592135b6fab269517ed687fa9f80bf8e5 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Mon, 27 Nov 2017 17:14:54 +0000
Subject: [PATCH] cgroup: Disable cgroup "memory" by default
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
- kernel/cgroup/cgroup.c | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
+ kernel/cgroup/cgroup.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
-@@ -5722,6 +5722,8 @@ int __init cgroup_init_early(void)
+@@ -5721,6 +5721,9 @@ int __init cgroup_init_early(void)
+ return 0;
}
- static u16 cgroup_disable_mask __initdata;
+static u16 cgroup_enable_mask __initdata;
+static int __init cgroup_disable(char *str);
-
++
/**
* cgroup_init - cgroup initialization
-@@ -5761,6 +5763,12 @@ int __init cgroup_init(void)
+ *
+@@ -5759,6 +5762,12 @@ int __init cgroup_init(void)
mutex_unlock(&cgroup_mutex);
-+ /* Apply an implicit disable... */
++ /*
++ * Apply an implicit disable, knowing that an explicit enable will
++ * prevent if from doing anything.
++ */
+ cgroup_disable("memory");
-+
-+ /* ...knowing that an explicit enable will override it. */
-+ cgroup_disable_mask &= ~cgroup_enable_mask;
+
for_each_subsys(ss, ssid) {
if (ss->early_init) {
struct cgroup_subsys_state *css =
-@@ -6180,6 +6188,28 @@ static int __init cgroup_disable(char *s
+@@ -6168,6 +6177,10 @@ static int __init cgroup_disable(char *s
+ strcmp(token, ss->legacy_name))
+ continue;
+
++ /* An explicit cgroup_enable overrides a disable */
++ if (cgroup_enable_mask & (1 << i))
++ continue;
++
+ static_branch_disable(cgroup_subsys_enabled_key[i]);
+ pr_info("Disabling %s control group subsystem\n",
+ ss->name);
+@@ -6177,6 +6190,31 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);
+ continue;
+
+ cgroup_enable_mask |= 1 << i;
++ static_branch_enable(cgroup_subsys_enabled_key[i]);
++ pr_info("Enabling %s control group subsystem\n",
++ ss->name);
+ }
+ }
+ return 1;
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
-@@ -3110,6 +3110,7 @@ static int __spi_validate_bits_per_word(
+@@ -3116,6 +3116,7 @@ static int __spi_validate_bits_per_word(
*/
int spi_setup(struct spi_device *spi)
{
unsigned bad_bits, ugly_bits;
int status;
-@@ -3127,6 +3128,14 @@ int spi_setup(struct spi_device *spi)
+@@ -3133,6 +3134,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL;