From a4dbe86b012b293e4b812a2c143fffe052b854e5 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 23 Mar 2017 13:09:04 -0500 Subject: [PATCH 001/152] Fix virtio devices and crda --- ...unting-regression-on-ctrl_dumpfamily.patch | 55 ++++++++++++++++++ kernel.spec | 12 +++- ...x-out-of-bound-access-for-msix_names.patch | 56 +++++++++++++++++++ 3 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch create mode 100644 virtio_pci-fix-out-of-bound-access-for-msix_names.patch diff --git a/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch b/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch new file mode 100644 index 000000000..ab048d1c9 --- /dev/null +++ b/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch @@ -0,0 +1,55 @@ +From: Stanislaw Gruszka +Date: 2017-03-22 15:08:33 +Subject: [PATCH 4.11] genetlink: fix counting regression on ctrl_dumpfamily() + +Commit 2ae0f17df1cd ("genetlink: use idr to track families") replaced + + if (++n < fams_to_skip) + continue; +into: + + if (n++ < fams_to_skip) + continue; + +This subtle change cause that on retry ctrl_dumpfamily() call we omit +one family that failed to do ctrl_fill_info() on previous call, because +cb->args[0] = n number counts also family that failed to do +ctrl_fill_info(). + +Patch fixes the problem and avoid confusion in the future just decrease +n counter when ctrl_fill_info() fail. + +User visible problem caused by this bug is failure to get access to +some genetlink family i.e. nl80211. However problem is reproducible +only if number of registered genetlink families is big enough to +cause second call of ctrl_dumpfamily(). + +Cc: Xose Vazquez Perez +Cc: Larry Finger +Cc: Johannes Berg +Fixes: 2ae0f17df1cd ("genetlink: use idr to track families") +Signed-off-by: Stanislaw Gruszka +--- +Dave, please also target this for 4.10+ -stable. + + net/netlink/genetlink.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c +index fb6e10f..92e0981 100644 +--- a/net/netlink/genetlink.c ++++ b/net/netlink/genetlink.c +@@ -783,8 +783,10 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb) + + if (ctrl_fill_info(rt, NETLINK_CB(cb->skb).portid, + cb->nlh->nlmsg_seq, NLM_F_MULTI, +- skb, CTRL_CMD_NEWFAMILY) < 0) ++ skb, CTRL_CMD_NEWFAMILY) < 0) { ++ n--; + break; ++ } + } + + cb->args[0] = n; +-- +1.7.1 diff --git a/kernel.spec b/kernel.spec index 19aa29c50..0aab63167 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -603,6 +603,12 @@ Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch # grabbed from mailing list Patch667: v3-Revert-tty-serial-pl011-add-ttyAMA-for-matching-pl011-console.patch +# Fix crda rhbz 1422247 +Patch668: genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch + +# Fix virtio devices rhbz 1430297 +Patch669: virtio_pci-fix-out-of-bound-access-for-msix_names.patch + # END OF PATCH DEFINITIONS %endif @@ -2167,6 +2173,10 @@ fi # # %changelog +* Thu Mar 23 2017 Justin M. Forbes 4.11.0-0.rc3.git0.2 +- Fix virtio devices (rhbz 1430297) +- Fix crda (rhbz 1422247) + * Mon Mar 20 2017 Laura Abbott - 4.11.0-0.rc3.git0.1 - Linux v4.11-rc3 - Fix for debuginfo conflicts (rhbz 1431296) diff --git a/virtio_pci-fix-out-of-bound-access-for-msix_names.patch b/virtio_pci-fix-out-of-bound-access-for-msix_names.patch new file mode 100644 index 000000000..d87676674 --- /dev/null +++ b/virtio_pci-fix-out-of-bound-access-for-msix_names.patch @@ -0,0 +1,56 @@ +From: Jason Wang +Date: Thu, 23 Mar 2017 13:07:16 +0800 +Subject: [PATCH] virtio_pci: fix out of bound access for msix_names + +--- + drivers/virtio/virtio_pci_common.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c +index df548a6..5905349 100644 +--- a/drivers/virtio/virtio_pci_common.c ++++ b/drivers/virtio/virtio_pci_common.c +@@ -147,7 +147,7 @@ static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned nvqs, + { + struct virtio_pci_device *vp_dev = to_vp_device(vdev); + const char *name = dev_name(&vp_dev->vdev.dev); +- int i, err = -ENOMEM, allocated_vectors, nvectors; ++ int i, j, err = -ENOMEM, allocated_vectors, nvectors; + unsigned flags = PCI_IRQ_MSIX; + bool shared = false; + u16 msix_vec; +@@ -212,7 +212,7 @@ static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned nvqs, + if (!vp_dev->msix_vector_map) + goto out_disable_config_irq; + +- allocated_vectors = 1; /* vector 0 is the config interrupt */ ++ allocated_vectors = j = 1; /* vector 0 is the config interrupt */ + for (i = 0; i < nvqs; ++i) { + if (!names[i]) { + vqs[i] = NULL; +@@ -236,18 +236,19 @@ static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned nvqs, + continue; + } + +- snprintf(vp_dev->msix_names[i + 1], ++ snprintf(vp_dev->msix_names[j], + sizeof(*vp_dev->msix_names), "%s-%s", + dev_name(&vp_dev->vdev.dev), names[i]); + err = request_irq(pci_irq_vector(vp_dev->pci_dev, msix_vec), + vring_interrupt, IRQF_SHARED, +- vp_dev->msix_names[i + 1], vqs[i]); ++ vp_dev->msix_names[j], vqs[i]); + if (err) { + /* don't free this irq on error */ + vp_dev->msix_vector_map[i] = VIRTIO_MSI_NO_VECTOR; + goto out_remove_vqs; + } + vp_dev->msix_vector_map[i] = msix_vec; ++ j++; + + /* + * Use a different vector for each queue if they are available, +-- +2.7.4 + + From 96d0ae1b8b36d3317ce4c81f3587a17c8ff4f9a1 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 2 May 2017 15:30:19 -0500 Subject: [PATCH 002/152] Remove incorrect UEFI 2.6 Secure Boot patch (rhbz 1447191) --- efi-lockdown.patch | 74 ---------------------------------------------- kernel.spec | 3 ++ 2 files changed, 3 insertions(+), 74 deletions(-) diff --git a/efi-lockdown.patch b/efi-lockdown.patch index d6517d5ed..54a7caa24 100644 --- a/efi-lockdown.patch +++ b/efi-lockdown.patch @@ -44,80 +44,6 @@ index 94d34e0..6049600 100644 -- 2.7.4 -From 0f9281e3b77bf5f767f1993d52b152a1ef317a0a Mon Sep 17 00:00:00 2001 -From: David Howells -Date: Fri, 25 Nov 2016 11:52:05 +0000 -Subject: [PATCH 08/32] efi: Handle secure boot from UEFI-2.6 - -UEFI-2.6 adds a new variable, DeployedMode. If it exists, this must be 1 -if we're to engage lockdown mode. - -Reported-by: James Bottomley -Signed-off-by: David Howells ---- - drivers/firmware/efi/libstub/secureboot.c | 16 +++++++++++++++- - include/linux/efi.h | 4 ++++ - 2 files changed, 19 insertions(+), 1 deletion(-) - -diff --git a/drivers/firmware/efi/libstub/secureboot.c b/drivers/firmware/efi/libstub/secureboot.c -index 6def402..77af519 100644 ---- a/drivers/firmware/efi/libstub/secureboot.c -+++ b/drivers/firmware/efi/libstub/secureboot.c -@@ -20,6 +20,9 @@ static const efi_char16_t const efi_SecureBoot_name[] = { - static const efi_char16_t const efi_SetupMode_name[] = { - 'S', 'e', 't', 'u', 'p', 'M', 'o', 'd', 'e', 0 - }; -+static const efi_char16_t const efi_DeployedMode_name[] = { -+ 'D', 'e', 'p', 'l', 'o', 'y', 'e', 'd', 'M', 'o', 'd', 'e', 0 -+}; - - /* SHIM variables */ - static const efi_guid_t shim_guid = EFI_SHIM_LOCK_GUID; -@@ -38,7 +41,7 @@ static efi_char16_t const shim_MokSBState_name[] = { - enum efi_secureboot_mode efi_get_secureboot(efi_system_table_t *sys_table_arg) - { - u32 attr; -- u8 secboot, setupmode, moksbstate; -+ u8 secboot, setupmode, deployedmode, moksbstate; - unsigned long size; - efi_status_t status; - -@@ -57,6 +60,17 @@ enum efi_secureboot_mode efi_get_secureboot(efi_system_table_t *sys_table_arg) - if (secboot == 0 || setupmode == 1) - return efi_secureboot_mode_disabled; - -+ /* UEFI-2.6 requires DeployedMode to be 1. */ -+ if (sys_table_arg->hdr.revision >= EFI_2_60_SYSTEM_TABLE_REVISION) { -+ size = sizeof(deployedmode); -+ status = get_efi_var(efi_DeployedMode_name, &efi_variable_guid, -+ NULL, &size, &deployedmode); -+ if (status != EFI_SUCCESS) -+ goto out_efi_err; -+ if (deployedmode == 0) -+ return efi_secureboot_mode_disabled; -+ } -+ - /* - * See if a user has put the shim into insecure mode. If so, and if the - * variable doesn't have the runtime attribute set, we might as well -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 6049600..784a276 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -646,6 +646,10 @@ typedef struct { - - #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL) - -+#define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60)) -+#define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50)) -+#define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40)) -+#define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31)) - #define EFI_2_30_SYSTEM_TABLE_REVISION ((2 << 16) | (30)) - #define EFI_2_20_SYSTEM_TABLE_REVISION ((2 << 16) | (20)) - #define EFI_2_10_SYSTEM_TABLE_REVISION ((2 << 16) | (10)) --- -2.7.4 - From f05a90c19a9613d8d50597319ed91f691e25b689 Mon Sep 17 00:00:00 2001 From: David Howells Date: Mon, 21 Nov 2016 23:36:17 +0000 diff --git a/kernel.spec b/kernel.spec index ca8986516..969969fe1 100644 --- a/kernel.spec +++ b/kernel.spec @@ -2188,6 +2188,9 @@ fi # # %changelog +* Tue May 02 2017 Justin M. Forbes +- Remove incorrect UEFI 2.6 Secure Boot patch (rhbz 1447191) + * Mon May 01 2017 Laura Abbott - 4.11.0-1 - Linux v4.11 From f2ae1bd31e1a9eccb8d80a7087aee1c19518ef74 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Tue, 9 May 2017 07:50:11 -0700 Subject: [PATCH 003/152] Bump for updated gcc (rhbz 1448958) --- kernel.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel.spec b/kernel.spec index 969969fe1..1b53b2dc7 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 1 +%global baserelease 2 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -2188,6 +2188,9 @@ fi # # %changelog +* Tue May 09 2017 Laura Abbott - 4.11.0-2 +- Bump for updated gcc (rhbz 1448958) + * Tue May 02 2017 Justin M. Forbes - Remove incorrect UEFI 2.6 Secure Boot patch (rhbz 1447191) From c7cad27274c3c303f5bfc09491e3d1f43f1357d1 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 10 May 2017 13:35:32 -0700 Subject: [PATCH 004/152] Fix EXPORT_SYMBOL for external modules that shall not be named --- kernel.spec | 6 + refcount-change-EXPORT_SYMBOL-markings.patch | 118 +++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 refcount-change-EXPORT_SYMBOL-markings.patch diff --git a/kernel.spec b/kernel.spec index 1b53b2dc7..cd704e982 100644 --- a/kernel.spec +++ b/kernel.spec @@ -624,6 +624,9 @@ Patch667: CVE-2017-7645.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch668: CVE-2017-7477.patch +# Needed for compilation of external modules +Patch669: refcount-change-EXPORT_SYMBOL-markings.patch + # END OF PATCH DEFINITIONS %endif @@ -2188,6 +2191,9 @@ fi # # %changelog +* Tue May 09 2017 Laura Abbott +- Fix EXPORT_SYMBOL for external modules that shall not be named + * Tue May 09 2017 Laura Abbott - 4.11.0-2 - Bump for updated gcc (rhbz 1448958) diff --git a/refcount-change-EXPORT_SYMBOL-markings.patch b/refcount-change-EXPORT_SYMBOL-markings.patch new file mode 100644 index 000000000..dce8d619b --- /dev/null +++ b/refcount-change-EXPORT_SYMBOL-markings.patch @@ -0,0 +1,118 @@ +From 829cf8de29d2e511bf64fdac0b6584067e419017 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Thu, 4 May 2017 15:51:03 -0700 +Subject: [PATCH] refcount: change EXPORT_SYMBOL markings + +Now that kref is using the refcount apis, the _GPL markings are getting +exported to places that it previously wasn't. Now kref.h is GPLv2 +licensed, so any non-GPL code using it better be talking to some +lawyers, but changing api markings isn't considered "nice", so let's fix +this up. + +Signed-off-by: Greg Kroah-Hartman +--- + lib/refcount.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/lib/refcount.c b/lib/refcount.c +index aa09ad3..26dffb7 100644 +--- a/lib/refcount.c ++++ b/lib/refcount.c +@@ -62,13 +62,13 @@ bool refcount_add_not_zero(unsigned int i, refcount_t *r) + + return true; + } +-EXPORT_SYMBOL_GPL(refcount_add_not_zero); ++EXPORT_SYMBOL(refcount_add_not_zero); + + void refcount_add(unsigned int i, refcount_t *r) + { + WARN_ONCE(!refcount_add_not_zero(i, r), "refcount_t: addition on 0; use-after-free.\n"); + } +-EXPORT_SYMBOL_GPL(refcount_add); ++EXPORT_SYMBOL(refcount_add); + + /* + * Similar to atomic_inc_not_zero(), will saturate at UINT_MAX and WARN. +@@ -101,7 +101,7 @@ bool refcount_inc_not_zero(refcount_t *r) + + return true; + } +-EXPORT_SYMBOL_GPL(refcount_inc_not_zero); ++EXPORT_SYMBOL(refcount_inc_not_zero); + + /* + * Similar to atomic_inc(), will saturate at UINT_MAX and WARN. +@@ -113,7 +113,7 @@ void refcount_inc(refcount_t *r) + { + WARN_ONCE(!refcount_inc_not_zero(r), "refcount_t: increment on 0; use-after-free.\n"); + } +-EXPORT_SYMBOL_GPL(refcount_inc); ++EXPORT_SYMBOL(refcount_inc); + + bool refcount_sub_and_test(unsigned int i, refcount_t *r) + { +@@ -138,7 +138,7 @@ bool refcount_sub_and_test(unsigned int i, refcount_t *r) + + return !new; + } +-EXPORT_SYMBOL_GPL(refcount_sub_and_test); ++EXPORT_SYMBOL(refcount_sub_and_test); + + /* + * Similar to atomic_dec_and_test(), it will WARN on underflow and fail to +@@ -152,7 +152,7 @@ bool refcount_dec_and_test(refcount_t *r) + { + return refcount_sub_and_test(1, r); + } +-EXPORT_SYMBOL_GPL(refcount_dec_and_test); ++EXPORT_SYMBOL(refcount_dec_and_test); + + /* + * Similar to atomic_dec(), it will WARN on underflow and fail to decrement +@@ -166,7 +166,7 @@ void refcount_dec(refcount_t *r) + { + WARN_ONCE(refcount_dec_and_test(r), "refcount_t: decrement hit 0; leaking memory.\n"); + } +-EXPORT_SYMBOL_GPL(refcount_dec); ++EXPORT_SYMBOL(refcount_dec); + + /* + * No atomic_t counterpart, it attempts a 1 -> 0 transition and returns the +@@ -183,7 +183,7 @@ bool refcount_dec_if_one(refcount_t *r) + { + return atomic_cmpxchg_release(&r->refs, 1, 0) == 1; + } +-EXPORT_SYMBOL_GPL(refcount_dec_if_one); ++EXPORT_SYMBOL(refcount_dec_if_one); + + /* + * No atomic_t counterpart, it decrements unless the value is 1, in which case +@@ -217,7 +217,7 @@ bool refcount_dec_not_one(refcount_t *r) + + return true; + } +-EXPORT_SYMBOL_GPL(refcount_dec_not_one); ++EXPORT_SYMBOL(refcount_dec_not_one); + + /* + * Similar to atomic_dec_and_mutex_lock(), it will WARN on underflow and fail +@@ -240,7 +240,7 @@ bool refcount_dec_and_mutex_lock(refcount_t *r, struct mutex *lock) + + return true; + } +-EXPORT_SYMBOL_GPL(refcount_dec_and_mutex_lock); ++EXPORT_SYMBOL(refcount_dec_and_mutex_lock); + + /* + * Similar to atomic_dec_and_lock(), it will WARN on underflow and fail to +@@ -263,5 +263,5 @@ bool refcount_dec_and_lock(refcount_t *r, spinlock_t *lock) + + return true; + } +-EXPORT_SYMBOL_GPL(refcount_dec_and_lock); ++EXPORT_SYMBOL(refcount_dec_and_lock); + +-- +2.7.4 + From 08c2a9e70f885b4c21e87be5956f9a7f1520be15 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 15 May 2017 09:54:07 -0700 Subject: [PATCH 005/152] Linux v4.11.1 --- kernel.spec | 10 +- refcount-change-EXPORT_SYMBOL-markings.patch | 118 ------------------- sources | 1 + 3 files changed, 6 insertions(+), 123 deletions(-) delete mode 100644 refcount-change-EXPORT_SYMBOL-markings.patch diff --git a/kernel.spec b/kernel.spec index cd704e982..38a8d4549 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 2 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 0 +%define stable_update 1 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -624,9 +624,6 @@ Patch667: CVE-2017-7645.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch668: CVE-2017-7477.patch -# Needed for compilation of external modules -Patch669: refcount-change-EXPORT_SYMBOL-markings.patch - # END OF PATCH DEFINITIONS %endif @@ -2191,6 +2188,9 @@ fi # # %changelog +* Mon May 15 2017 Laura Abbott - 4.11.1-300 +- Linux v4.11.1 + * Tue May 09 2017 Laura Abbott - Fix EXPORT_SYMBOL for external modules that shall not be named diff --git a/refcount-change-EXPORT_SYMBOL-markings.patch b/refcount-change-EXPORT_SYMBOL-markings.patch deleted file mode 100644 index dce8d619b..000000000 --- a/refcount-change-EXPORT_SYMBOL-markings.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 829cf8de29d2e511bf64fdac0b6584067e419017 Mon Sep 17 00:00:00 2001 -From: Greg Kroah-Hartman -Date: Thu, 4 May 2017 15:51:03 -0700 -Subject: [PATCH] refcount: change EXPORT_SYMBOL markings - -Now that kref is using the refcount apis, the _GPL markings are getting -exported to places that it previously wasn't. Now kref.h is GPLv2 -licensed, so any non-GPL code using it better be talking to some -lawyers, but changing api markings isn't considered "nice", so let's fix -this up. - -Signed-off-by: Greg Kroah-Hartman ---- - lib/refcount.c | 22 +++++++++++----------- - 1 file changed, 11 insertions(+), 11 deletions(-) - -diff --git a/lib/refcount.c b/lib/refcount.c -index aa09ad3..26dffb7 100644 ---- a/lib/refcount.c -+++ b/lib/refcount.c -@@ -62,13 +62,13 @@ bool refcount_add_not_zero(unsigned int i, refcount_t *r) - - return true; - } --EXPORT_SYMBOL_GPL(refcount_add_not_zero); -+EXPORT_SYMBOL(refcount_add_not_zero); - - void refcount_add(unsigned int i, refcount_t *r) - { - WARN_ONCE(!refcount_add_not_zero(i, r), "refcount_t: addition on 0; use-after-free.\n"); - } --EXPORT_SYMBOL_GPL(refcount_add); -+EXPORT_SYMBOL(refcount_add); - - /* - * Similar to atomic_inc_not_zero(), will saturate at UINT_MAX and WARN. -@@ -101,7 +101,7 @@ bool refcount_inc_not_zero(refcount_t *r) - - return true; - } --EXPORT_SYMBOL_GPL(refcount_inc_not_zero); -+EXPORT_SYMBOL(refcount_inc_not_zero); - - /* - * Similar to atomic_inc(), will saturate at UINT_MAX and WARN. -@@ -113,7 +113,7 @@ void refcount_inc(refcount_t *r) - { - WARN_ONCE(!refcount_inc_not_zero(r), "refcount_t: increment on 0; use-after-free.\n"); - } --EXPORT_SYMBOL_GPL(refcount_inc); -+EXPORT_SYMBOL(refcount_inc); - - bool refcount_sub_and_test(unsigned int i, refcount_t *r) - { -@@ -138,7 +138,7 @@ bool refcount_sub_and_test(unsigned int i, refcount_t *r) - - return !new; - } --EXPORT_SYMBOL_GPL(refcount_sub_and_test); -+EXPORT_SYMBOL(refcount_sub_and_test); - - /* - * Similar to atomic_dec_and_test(), it will WARN on underflow and fail to -@@ -152,7 +152,7 @@ bool refcount_dec_and_test(refcount_t *r) - { - return refcount_sub_and_test(1, r); - } --EXPORT_SYMBOL_GPL(refcount_dec_and_test); -+EXPORT_SYMBOL(refcount_dec_and_test); - - /* - * Similar to atomic_dec(), it will WARN on underflow and fail to decrement -@@ -166,7 +166,7 @@ void refcount_dec(refcount_t *r) - { - WARN_ONCE(refcount_dec_and_test(r), "refcount_t: decrement hit 0; leaking memory.\n"); - } --EXPORT_SYMBOL_GPL(refcount_dec); -+EXPORT_SYMBOL(refcount_dec); - - /* - * No atomic_t counterpart, it attempts a 1 -> 0 transition and returns the -@@ -183,7 +183,7 @@ bool refcount_dec_if_one(refcount_t *r) - { - return atomic_cmpxchg_release(&r->refs, 1, 0) == 1; - } --EXPORT_SYMBOL_GPL(refcount_dec_if_one); -+EXPORT_SYMBOL(refcount_dec_if_one); - - /* - * No atomic_t counterpart, it decrements unless the value is 1, in which case -@@ -217,7 +217,7 @@ bool refcount_dec_not_one(refcount_t *r) - - return true; - } --EXPORT_SYMBOL_GPL(refcount_dec_not_one); -+EXPORT_SYMBOL(refcount_dec_not_one); - - /* - * Similar to atomic_dec_and_mutex_lock(), it will WARN on underflow and fail -@@ -240,7 +240,7 @@ bool refcount_dec_and_mutex_lock(refcount_t *r, struct mutex *lock) - - return true; - } --EXPORT_SYMBOL_GPL(refcount_dec_and_mutex_lock); -+EXPORT_SYMBOL(refcount_dec_and_mutex_lock); - - /* - * Similar to atomic_dec_and_lock(), it will WARN on underflow and fail to -@@ -263,5 +263,5 @@ bool refcount_dec_and_lock(refcount_t *r, spinlock_t *lock) - - return true; - } --EXPORT_SYMBOL_GPL(refcount_dec_and_lock); -+EXPORT_SYMBOL(refcount_dec_and_lock); - --- -2.7.4 - diff --git a/sources b/sources index 47d35657c..7b76f79ec 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (perf-man-4.11.tar.gz) = 0b070d2f10a743329de2f532e2d7e19ef385a3e6ef3c700b591ae2697604dbe542b36e31121b3e37517ee8071ab800386fa8663c24a5b36520a18e096c6eefc8 SHA512 (linux-4.11.tar.xz) = 6610eed97ffb7207c71771198c36179b8244ace7222bebb109507720e26c5f17d918079a56d5febdd8605844d67fb2df0ebe910fa2f2f53690daf6e2a8ad09c3 +SHA512 (patch-4.11.1.xz) = e6cc334312655e8992da8834d09561191482961862c9f7ef5db44e3327db9994bf258412294271db8c3badd04c309f6cf12d6608a15fccdeec4039f50756fea8 From 08948206d49eceeb298d0097e9e82a7ec6601610 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 17 May 2017 10:53:47 +0100 Subject: [PATCH 006/152] drop geekbox sled patch --- geekbox-v4-device-tree-support.patch | 138 --------------------------- kernel.spec | 3 - 2 files changed, 141 deletions(-) delete mode 100644 geekbox-v4-device-tree-support.patch diff --git a/geekbox-v4-device-tree-support.patch b/geekbox-v4-device-tree-support.patch deleted file mode 100644 index 54f2bbe7e..000000000 --- a/geekbox-v4-device-tree-support.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 11aa129d33635fb33304b6e9b945e502f5ba707a Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Thu, 17 Mar 2016 15:19:04 +0000 -Subject: [PATCH] geekbox v4 patchset - ---- - Documentation/devicetree/bindings/arm/rockchip.txt | 9 ++++ - arch/arm64/boot/dts/rockchip/Makefile | 1 + - arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi | 2 +- - .../dts/rockchip/rk3368-geekbox-landingship.dts | 57 ++++++++++++++++++++++ - arch/arm64/boot/dts/rockchip/rk3368-r88.dts | 2 +- - 5 files changed, 69 insertions(+), 2 deletions(-) - create mode 100644 arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts - -diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt -index 55f388f..989a039 100644 ---- a/Documentation/devicetree/bindings/arm/rockchip.txt -+++ b/Documentation/devicetree/bindings/arm/rockchip.txt -@@ -99,6 +99,15 @@ Rockchip platforms device tree bindings - Required root node properties: - - compatible = "rockchip,rk1108-evb", "rockchip,rk1108"; - -+- GeekBuying GeekBox: -+ Required root node properties: -+ - compatible = "geekbuying,geekbox", "rockchip,rk3368"; -+ -+- GeekBuying Landingship with GeekBox module: -+ Required root node properties: -+ - compatible = "geekbuying,geekbox-landingship", -+ "geekbuying,geekbox", "rockchip,rk3368"; -+ - - Rockchip RK3368 evb: - Required root node properties: - - compatible = "rockchip,rk3368-evb-act8846", "rockchip,rk3368"; -diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile -index 87669f6..9aec54e 100644 ---- a/arch/arm64/boot/dts/rockchip/Makefile -+++ b/arch/arm64/boot/dts/rockchip/Makefile -@@ -1,6 +1,7 @@ - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb -+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox-landingship.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb - dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb -diff --git a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi -index fff8b19..bd4f2cf 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi -+++ b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi -@@ -49,7 +49,7 @@ - stdout-path = "serial2:115200n8"; - }; - -- memory { -+ memory@0 { - device_type = "memory"; - reg = <0x0 0x0 0x0 0x40000000>; - }; -diff --git a/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts b/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts -new file mode 100644 -index 0000000..a28ace9 ---- /dev/null -+++ b/arch/arm64/boot/dts/rockchip/rk3368-geekbox-landingship.dts -@@ -0,0 +1,57 @@ -+/* -+ * Copyright (c) 2016 Andreas Färber -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+#include "rk3368-geekbox.dts" -+ -+/ { -+ model = "GeekBox on Landingship"; -+ compatible = "geekbuying,geekbox-landingship", -+ "geekbuying,geekbox", "rockchip,rk3368"; -+}; -+ -+&i2c1 { -+ status = "disabled"; -+}; -+ -+&i2c2 { -+ status = "okay"; -+}; -diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts -index eed1ef6..18e2b77 100644 ---- a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts -@@ -52,7 +52,7 @@ - stdout-path = "serial2:115200n8"; - }; - -- memory { -+ memory@0 { - device_type = "memory"; - reg = <0x0 0x0 0x0 0x40000000>; - }; --- -2.7.4 - diff --git a/kernel.spec b/kernel.spec index 38a8d4549..df3f39d41 100644 --- a/kernel.spec +++ b/kernel.spec @@ -509,9 +509,6 @@ Patch002: 0001-iio-Use-event-header-from-kernel-tree.patch # a tempory patch for QCOM hardware enablement. Will be gone by end of 2016/F-26 GA Patch420: qcom-QDF2432-tmp-errata.patch -# http://www.spinics.net/lists/arm-kernel/msg490981.html -Patch421: geekbox-v4-device-tree-support.patch - # http://www.spinics.net/lists/linux-tegra/msg26029.html Patch422: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch From 54ab91b6a43d824faea624e7b0f90aec94c695f5 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 18 May 2017 09:57:40 -0500 Subject: [PATCH 007/152] Fix CVE-2017-9059 (rhbz 1451386 1451996) --- ...-SUNRPC-Refactor-svc_set_num_threads.patch | 156 ++++++++++++++++++ 0002-NFSv4-Fix-callback-server-shutdown.patch | 155 +++++++++++++++++ kernel.spec | 7 + 3 files changed, 318 insertions(+) create mode 100644 0001-SUNRPC-Refactor-svc_set_num_threads.patch create mode 100644 0002-NFSv4-Fix-callback-server-shutdown.patch diff --git a/0001-SUNRPC-Refactor-svc_set_num_threads.patch b/0001-SUNRPC-Refactor-svc_set_num_threads.patch new file mode 100644 index 000000000..d29b5fc4d --- /dev/null +++ b/0001-SUNRPC-Refactor-svc_set_num_threads.patch @@ -0,0 +1,156 @@ +From 9e0d87680d689f1758185851c3da6eafb16e71e1 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Wed, 26 Apr 2017 11:55:26 -0400 +Subject: [PATCH] SUNRPC: Refactor svc_set_num_threads() + +Refactor to separate out the functions of starting and stopping threads +so that they can be used in other helpers. + +Signed-off-by: Trond Myklebust +Tested-and-reviewed-by: Kinglong Mee +Signed-off-by: J. Bruce Fields +--- + net/sunrpc/svc.c | 96 ++++++++++++++++++++++++++++++++++---------------------- + 1 file changed, 58 insertions(+), 38 deletions(-) + +diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c +index a08aeb5..98dc33a 100644 +--- a/net/sunrpc/svc.c ++++ b/net/sunrpc/svc.c +@@ -702,59 +702,32 @@ choose_victim(struct svc_serv *serv, struct svc_pool *pool, unsigned int *state) + return task; + } + +-/* +- * Create or destroy enough new threads to make the number +- * of threads the given number. If `pool' is non-NULL, applies +- * only to threads in that pool, otherwise round-robins between +- * all pools. Caller must ensure that mutual exclusion between this and +- * server startup or shutdown. +- * +- * Destroying threads relies on the service threads filling in +- * rqstp->rq_task, which only the nfs ones do. Assumes the serv +- * has been created using svc_create_pooled(). +- * +- * Based on code that used to be in nfsd_svc() but tweaked +- * to be pool-aware. +- */ +-int +-svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) ++/* create new threads */ ++static int ++svc_start_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) + { + struct svc_rqst *rqstp; + struct task_struct *task; + struct svc_pool *chosen_pool; +- int error = 0; + unsigned int state = serv->sv_nrthreads-1; + int node; + +- if (pool == NULL) { +- /* The -1 assumes caller has done a svc_get() */ +- nrservs -= (serv->sv_nrthreads-1); +- } else { +- spin_lock_bh(&pool->sp_lock); +- nrservs -= pool->sp_nrthreads; +- spin_unlock_bh(&pool->sp_lock); +- } +- +- /* create new threads */ +- while (nrservs > 0) { ++ do { + nrservs--; + chosen_pool = choose_pool(serv, pool, &state); + + node = svc_pool_map_get_node(chosen_pool->sp_id); + rqstp = svc_prepare_thread(serv, chosen_pool, node); +- if (IS_ERR(rqstp)) { +- error = PTR_ERR(rqstp); +- break; +- } ++ if (IS_ERR(rqstp)) ++ return PTR_ERR(rqstp); + + __module_get(serv->sv_ops->svo_module); + task = kthread_create_on_node(serv->sv_ops->svo_function, rqstp, + node, "%s", serv->sv_name); + if (IS_ERR(task)) { +- error = PTR_ERR(task); + module_put(serv->sv_ops->svo_module); + svc_exit_thread(rqstp); +- break; ++ return PTR_ERR(task); + } + + rqstp->rq_task = task; +@@ -763,15 +736,62 @@ svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) + + svc_sock_update_bufs(serv); + wake_up_process(task); +- } ++ } while (nrservs > 0); ++ ++ return 0; ++} ++ ++ ++/* destroy old threads */ ++static int ++svc_signal_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) ++{ ++ struct task_struct *task; ++ unsigned int state = serv->sv_nrthreads-1; ++ + /* destroy old threads */ +- while (nrservs < 0 && +- (task = choose_victim(serv, pool, &state)) != NULL) { ++ do { ++ task = choose_victim(serv, pool, &state); ++ if (task == NULL) ++ break; + send_sig(SIGINT, task, 1); + nrservs++; ++ } while (nrservs < 0); ++ ++ return 0; ++} ++ ++/* ++ * Create or destroy enough new threads to make the number ++ * of threads the given number. If `pool' is non-NULL, applies ++ * only to threads in that pool, otherwise round-robins between ++ * all pools. Caller must ensure that mutual exclusion between this and ++ * server startup or shutdown. ++ * ++ * Destroying threads relies on the service threads filling in ++ * rqstp->rq_task, which only the nfs ones do. Assumes the serv ++ * has been created using svc_create_pooled(). ++ * ++ * Based on code that used to be in nfsd_svc() but tweaked ++ * to be pool-aware. ++ */ ++int ++svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) ++{ ++ if (pool == NULL) { ++ /* The -1 assumes caller has done a svc_get() */ ++ nrservs -= (serv->sv_nrthreads-1); ++ } else { ++ spin_lock_bh(&pool->sp_lock); ++ nrservs -= pool->sp_nrthreads; ++ spin_unlock_bh(&pool->sp_lock); + } + +- return error; ++ if (nrservs > 0) ++ return svc_start_kthreads(serv, pool, nrservs); ++ if (nrservs < 0) ++ return svc_signal_kthreads(serv, pool, nrservs); ++ return 0; + } + EXPORT_SYMBOL_GPL(svc_set_num_threads); + +-- +2.9.4 + diff --git a/0002-NFSv4-Fix-callback-server-shutdown.patch b/0002-NFSv4-Fix-callback-server-shutdown.patch new file mode 100644 index 000000000..e5745bf01 --- /dev/null +++ b/0002-NFSv4-Fix-callback-server-shutdown.patch @@ -0,0 +1,155 @@ +From ed6473ddc704a2005b9900ca08e236ebb2d8540a Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Wed, 26 Apr 2017 11:55:27 -0400 +Subject: [PATCH] NFSv4: Fix callback server shutdown + +We want to use kthread_stop() in order to ensure the threads are +shut down before we tear down the nfs_callback_info in nfs_callback_down. + +Tested-and-reviewed-by: Kinglong Mee +Reported-by: Kinglong Mee +Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using svc_set_num_threads()...") +Signed-off-by: Trond Myklebust +Signed-off-by: J. Bruce Fields +--- + fs/nfs/callback.c | 24 ++++++++++++++++-------- + include/linux/sunrpc/svc.h | 1 + + net/sunrpc/svc.c | 38 ++++++++++++++++++++++++++++++++++++++ + 3 files changed, 55 insertions(+), 8 deletions(-) + +diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c +index c5e27eb..73a1f92 100644 +--- a/fs/nfs/callback.c ++++ b/fs/nfs/callback.c +@@ -76,7 +76,10 @@ nfs4_callback_svc(void *vrqstp) + + set_freezable(); + +- while (!kthread_should_stop()) { ++ while (!kthread_freezable_should_stop(NULL)) { ++ ++ if (signal_pending(current)) ++ flush_signals(current); + /* + * Listen for a request on the socket + */ +@@ -85,6 +88,8 @@ nfs4_callback_svc(void *vrqstp) + continue; + svc_process(rqstp); + } ++ svc_exit_thread(rqstp); ++ module_put_and_exit(0); + return 0; + } + +@@ -103,9 +108,10 @@ nfs41_callback_svc(void *vrqstp) + + set_freezable(); + +- while (!kthread_should_stop()) { +- if (try_to_freeze()) +- continue; ++ while (!kthread_freezable_should_stop(NULL)) { ++ ++ if (signal_pending(current)) ++ flush_signals(current); + + prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE); + spin_lock_bh(&serv->sv_cb_lock); +@@ -121,11 +127,13 @@ nfs41_callback_svc(void *vrqstp) + error); + } else { + spin_unlock_bh(&serv->sv_cb_lock); +- schedule(); ++ if (!kthread_should_stop()) ++ schedule(); + finish_wait(&serv->sv_cb_waitq, &wq); + } +- flush_signals(current); + } ++ svc_exit_thread(rqstp); ++ module_put_and_exit(0); + return 0; + } + +@@ -221,14 +229,14 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv, + static struct svc_serv_ops nfs40_cb_sv_ops = { + .svo_function = nfs4_callback_svc, + .svo_enqueue_xprt = svc_xprt_do_enqueue, +- .svo_setup = svc_set_num_threads, ++ .svo_setup = svc_set_num_threads_sync, + .svo_module = THIS_MODULE, + }; + #if defined(CONFIG_NFS_V4_1) + static struct svc_serv_ops nfs41_cb_sv_ops = { + .svo_function = nfs41_callback_svc, + .svo_enqueue_xprt = svc_xprt_do_enqueue, +- .svo_setup = svc_set_num_threads, ++ .svo_setup = svc_set_num_threads_sync, + .svo_module = THIS_MODULE, + }; + +diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h +index 6ef19cf..9463102 100644 +--- a/include/linux/sunrpc/svc.h ++++ b/include/linux/sunrpc/svc.h +@@ -473,6 +473,7 @@ void svc_pool_map_put(void); + struct svc_serv * svc_create_pooled(struct svc_program *, unsigned int, + struct svc_serv_ops *); + int svc_set_num_threads(struct svc_serv *, struct svc_pool *, int); ++int svc_set_num_threads_sync(struct svc_serv *, struct svc_pool *, int); + int svc_pool_stats_open(struct svc_serv *serv, struct file *file); + void svc_destroy(struct svc_serv *); + void svc_shutdown_net(struct svc_serv *, struct net *); +diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c +index 98dc33a..bc0f5a0 100644 +--- a/net/sunrpc/svc.c ++++ b/net/sunrpc/svc.c +@@ -795,6 +795,44 @@ svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) + } + EXPORT_SYMBOL_GPL(svc_set_num_threads); + ++/* destroy old threads */ ++static int ++svc_stop_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) ++{ ++ struct task_struct *task; ++ unsigned int state = serv->sv_nrthreads-1; ++ ++ /* destroy old threads */ ++ do { ++ task = choose_victim(serv, pool, &state); ++ if (task == NULL) ++ break; ++ kthread_stop(task); ++ nrservs++; ++ } while (nrservs < 0); ++ return 0; ++} ++ ++int ++svc_set_num_threads_sync(struct svc_serv *serv, struct svc_pool *pool, int nrservs) ++{ ++ if (pool == NULL) { ++ /* The -1 assumes caller has done a svc_get() */ ++ nrservs -= (serv->sv_nrthreads-1); ++ } else { ++ spin_lock_bh(&pool->sp_lock); ++ nrservs -= pool->sp_nrthreads; ++ spin_unlock_bh(&pool->sp_lock); ++ } ++ ++ if (nrservs > 0) ++ return svc_start_kthreads(serv, pool, nrservs); ++ if (nrservs < 0) ++ return svc_stop_kthreads(serv, pool, nrservs); ++ return 0; ++} ++EXPORT_SYMBOL_GPL(svc_set_num_threads_sync); ++ + /* + * Called from a server thread as it's exiting. Caller must hold the "service + * mutex" for the service. +-- +2.9.4 + diff --git a/kernel.spec b/kernel.spec index df3f39d41..b1fb5fcc0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -621,6 +621,10 @@ Patch667: CVE-2017-7645.patch # CVE-2017-7477 rhbz 1445207 1445208 Patch668: CVE-2017-7477.patch +#CVE-2017-9059 rhbz 1451386 1451996 +Patch669: 0001-SUNRPC-Refactor-svc_set_num_threads.patch +Patch670: 0002-NFSv4-Fix-callback-server-shutdown.patch + # END OF PATCH DEFINITIONS %endif @@ -2185,6 +2189,9 @@ fi # # %changelog +* Thu May 18 2017 Justin M. Forbes +- Fix CVE-2017-9059 (rhbz 1451386 1451996) + * Mon May 15 2017 Laura Abbott - 4.11.1-300 - Linux v4.11.1 From b6f36d8a11d103064bf4c98d02a77e5cf3f21c5c Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Mon, 22 May 2017 08:53:38 -0500 Subject: [PATCH 008/152] Fix CVE-2017-8890 CVE-2017-9074 CVE-2017-9075 CVE-2017-9076 CVE-2017-9077 --- ...p-do-not-inherit-mc_list-from-parent.patch | 41 ++++ ...errun-when-parsing-v6-header-options.patch | 231 ++++++++++++++++++ ...not-inherit-ipv6_mc_list-from-parent.patch | 64 +++++ ...rit-ipv6_-mc-ac-fl-_list-from-parent.patch | 33 +++ kernel.spec | 16 ++ 5 files changed, 385 insertions(+) create mode 100644 0001-dccp-tcp-do-not-inherit-mc_list-from-parent.patch create mode 100644 0001-ipv6-Prevent-overrun-when-parsing-v6-header-options.patch create mode 100644 0001-ipv6-dccp-do-not-inherit-ipv6_mc_list-from-parent.patch create mode 100644 0001-sctp-do-not-inherit-ipv6_-mc-ac-fl-_list-from-parent.patch diff --git a/0001-dccp-tcp-do-not-inherit-mc_list-from-parent.patch b/0001-dccp-tcp-do-not-inherit-mc_list-from-parent.patch new file mode 100644 index 000000000..677841397 --- /dev/null +++ b/0001-dccp-tcp-do-not-inherit-mc_list-from-parent.patch @@ -0,0 +1,41 @@ +From 657831ffc38e30092a2d5f03d385d710eb88b09a Mon Sep 17 00:00:00 2001 +From: Eric Dumazet +Date: Tue, 9 May 2017 06:29:19 -0700 +Subject: [PATCH] dccp/tcp: do not inherit mc_list from parent + +syzkaller found a way to trigger double frees from ip_mc_drop_socket() + +It turns out that leave a copy of parent mc_list at accept() time, +which is very bad. + +Very similar to commit 8b485ce69876 ("tcp: do not inherit +fastopen_req from parent") + +Initial report from Pray3r, completed by Andrey one. +Thanks a lot to them ! + +Signed-off-by: Eric Dumazet +Reported-by: Pray3r +Reported-by: Andrey Konovalov +Tested-by: Andrey Konovalov +Signed-off-by: David S. Miller +--- + net/ipv4/inet_connection_sock.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c +index 5e313c1..1054d33 100644 +--- a/net/ipv4/inet_connection_sock.c ++++ b/net/ipv4/inet_connection_sock.c +@@ -794,6 +794,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk, + /* listeners have SOCK_RCU_FREE, not the children */ + sock_reset_flag(newsk, SOCK_RCU_FREE); + ++ inet_sk(newsk)->mc_list = NULL; ++ + newsk->sk_mark = inet_rsk(req)->ir_mark; + atomic64_set(&newsk->sk_cookie, + atomic64_read(&inet_rsk(req)->ir_cookie)); +-- +2.9.4 + diff --git a/0001-ipv6-Prevent-overrun-when-parsing-v6-header-options.patch b/0001-ipv6-Prevent-overrun-when-parsing-v6-header-options.patch new file mode 100644 index 000000000..b388a6910 --- /dev/null +++ b/0001-ipv6-Prevent-overrun-when-parsing-v6-header-options.patch @@ -0,0 +1,231 @@ +From 2423496af35d94a87156b063ea5cedffc10a70a1 Mon Sep 17 00:00:00 2001 +From: Craig Gallek +Date: Tue, 16 May 2017 14:36:23 -0400 +Subject: [PATCH] ipv6: Prevent overrun when parsing v6 header options + +The KASAN warning repoted below was discovered with a syzkaller +program. The reproducer is basically: + int s = socket(AF_INET6, SOCK_RAW, NEXTHDR_HOP); + send(s, &one_byte_of_data, 1, MSG_MORE); + send(s, &more_than_mtu_bytes_data, 2000, 0); + +The socket() call sets the nexthdr field of the v6 header to +NEXTHDR_HOP, the first send call primes the payload with a non zero +byte of data, and the second send call triggers the fragmentation path. + +The fragmentation code tries to parse the header options in order +to figure out where to insert the fragment option. Since nexthdr points +to an invalid option, the calculation of the size of the network header +can made to be much larger than the linear section of the skb and data +is read outside of it. + +This fix makes ip6_find_1stfrag return an error if it detects +running out-of-bounds. + +[ 42.361487] ================================================================== +[ 42.364412] BUG: KASAN: slab-out-of-bounds in ip6_fragment+0x11c8/0x3730 +[ 42.365471] Read of size 840 at addr ffff88000969e798 by task ip6_fragment-oo/3789 +[ 42.366469] +[ 42.366696] CPU: 1 PID: 3789 Comm: ip6_fragment-oo Not tainted 4.11.0+ #41 +[ 42.367628] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.1-1ubuntu1 04/01/2014 +[ 42.368824] Call Trace: +[ 42.369183] dump_stack+0xb3/0x10b +[ 42.369664] print_address_description+0x73/0x290 +[ 42.370325] kasan_report+0x252/0x370 +[ 42.370839] ? ip6_fragment+0x11c8/0x3730 +[ 42.371396] check_memory_region+0x13c/0x1a0 +[ 42.371978] memcpy+0x23/0x50 +[ 42.372395] ip6_fragment+0x11c8/0x3730 +[ 42.372920] ? nf_ct_expect_unregister_notifier+0x110/0x110 +[ 42.373681] ? ip6_copy_metadata+0x7f0/0x7f0 +[ 42.374263] ? ip6_forward+0x2e30/0x2e30 +[ 42.374803] ip6_finish_output+0x584/0x990 +[ 42.375350] ip6_output+0x1b7/0x690 +[ 42.375836] ? ip6_finish_output+0x990/0x990 +[ 42.376411] ? ip6_fragment+0x3730/0x3730 +[ 42.376968] ip6_local_out+0x95/0x160 +[ 42.377471] ip6_send_skb+0xa1/0x330 +[ 42.377969] ip6_push_pending_frames+0xb3/0xe0 +[ 42.378589] rawv6_sendmsg+0x2051/0x2db0 +[ 42.379129] ? rawv6_bind+0x8b0/0x8b0 +[ 42.379633] ? _copy_from_user+0x84/0xe0 +[ 42.380193] ? debug_check_no_locks_freed+0x290/0x290 +[ 42.380878] ? ___sys_sendmsg+0x162/0x930 +[ 42.381427] ? rcu_read_lock_sched_held+0xa3/0x120 +[ 42.382074] ? sock_has_perm+0x1f6/0x290 +[ 42.382614] ? ___sys_sendmsg+0x167/0x930 +[ 42.383173] ? lock_downgrade+0x660/0x660 +[ 42.383727] inet_sendmsg+0x123/0x500 +[ 42.384226] ? inet_sendmsg+0x123/0x500 +[ 42.384748] ? inet_recvmsg+0x540/0x540 +[ 42.385263] sock_sendmsg+0xca/0x110 +[ 42.385758] SYSC_sendto+0x217/0x380 +[ 42.386249] ? SYSC_connect+0x310/0x310 +[ 42.386783] ? __might_fault+0x110/0x1d0 +[ 42.387324] ? lock_downgrade+0x660/0x660 +[ 42.387880] ? __fget_light+0xa1/0x1f0 +[ 42.388403] ? __fdget+0x18/0x20 +[ 42.388851] ? sock_common_setsockopt+0x95/0xd0 +[ 42.389472] ? SyS_setsockopt+0x17f/0x260 +[ 42.390021] ? entry_SYSCALL_64_fastpath+0x5/0xbe +[ 42.390650] SyS_sendto+0x40/0x50 +[ 42.391103] entry_SYSCALL_64_fastpath+0x1f/0xbe +[ 42.391731] RIP: 0033:0x7fbbb711e383 +[ 42.392217] RSP: 002b:00007ffff4d34f28 EFLAGS: 00000246 ORIG_RAX: 000000000000002c +[ 42.393235] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fbbb711e383 +[ 42.394195] RDX: 0000000000001000 RSI: 00007ffff4d34f60 RDI: 0000000000000003 +[ 42.395145] RBP: 0000000000000046 R08: 00007ffff4d34f40 R09: 0000000000000018 +[ 42.396056] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000400aad +[ 42.396598] R13: 0000000000000066 R14: 00007ffff4d34ee0 R15: 00007fbbb717af00 +[ 42.397257] +[ 42.397411] Allocated by task 3789: +[ 42.397702] save_stack_trace+0x16/0x20 +[ 42.398005] save_stack+0x46/0xd0 +[ 42.398267] kasan_kmalloc+0xad/0xe0 +[ 42.398548] kasan_slab_alloc+0x12/0x20 +[ 42.398848] __kmalloc_node_track_caller+0xcb/0x380 +[ 42.399224] __kmalloc_reserve.isra.32+0x41/0xe0 +[ 42.399654] __alloc_skb+0xf8/0x580 +[ 42.400003] sock_wmalloc+0xab/0xf0 +[ 42.400346] __ip6_append_data.isra.41+0x2472/0x33d0 +[ 42.400813] ip6_append_data+0x1a8/0x2f0 +[ 42.401122] rawv6_sendmsg+0x11ee/0x2db0 +[ 42.401505] inet_sendmsg+0x123/0x500 +[ 42.401860] sock_sendmsg+0xca/0x110 +[ 42.402209] ___sys_sendmsg+0x7cb/0x930 +[ 42.402582] __sys_sendmsg+0xd9/0x190 +[ 42.402941] SyS_sendmsg+0x2d/0x50 +[ 42.403273] entry_SYSCALL_64_fastpath+0x1f/0xbe +[ 42.403718] +[ 42.403871] Freed by task 1794: +[ 42.404146] save_stack_trace+0x16/0x20 +[ 42.404515] save_stack+0x46/0xd0 +[ 42.404827] kasan_slab_free+0x72/0xc0 +[ 42.405167] kfree+0xe8/0x2b0 +[ 42.405462] skb_free_head+0x74/0xb0 +[ 42.405806] skb_release_data+0x30e/0x3a0 +[ 42.406198] skb_release_all+0x4a/0x60 +[ 42.406563] consume_skb+0x113/0x2e0 +[ 42.406910] skb_free_datagram+0x1a/0xe0 +[ 42.407288] netlink_recvmsg+0x60d/0xe40 +[ 42.407667] sock_recvmsg+0xd7/0x110 +[ 42.408022] ___sys_recvmsg+0x25c/0x580 +[ 42.408395] __sys_recvmsg+0xd6/0x190 +[ 42.408753] SyS_recvmsg+0x2d/0x50 +[ 42.409086] entry_SYSCALL_64_fastpath+0x1f/0xbe +[ 42.409513] +[ 42.409665] The buggy address belongs to the object at ffff88000969e780 +[ 42.409665] which belongs to the cache kmalloc-512 of size 512 +[ 42.410846] The buggy address is located 24 bytes inside of +[ 42.410846] 512-byte region [ffff88000969e780, ffff88000969e980) +[ 42.411941] The buggy address belongs to the page: +[ 42.412405] page:ffffea000025a780 count:1 mapcount:0 mapping: (null) index:0x0 compound_mapcount: 0 +[ 42.413298] flags: 0x100000000008100(slab|head) +[ 42.413729] raw: 0100000000008100 0000000000000000 0000000000000000 00000001800c000c +[ 42.414387] raw: ffffea00002a9500 0000000900000007 ffff88000c401280 0000000000000000 +[ 42.415074] page dumped because: kasan: bad access detected +[ 42.415604] +[ 42.415757] Memory state around the buggy address: +[ 42.416222] ffff88000969e880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +[ 42.416904] ffff88000969e900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +[ 42.417591] >ffff88000969e980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc +[ 42.418273] ^ +[ 42.418588] ffff88000969ea00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb +[ 42.419273] ffff88000969ea80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb +[ 42.419882] ================================================================== + +Reported-by: Andrey Konovalov +Signed-off-by: Craig Gallek +Signed-off-by: David S. Miller +--- + net/ipv6/ip6_offload.c | 2 ++ + net/ipv6/ip6_output.c | 4 ++++ + net/ipv6/output_core.c | 14 ++++++++------ + net/ipv6/udp_offload.c | 2 ++ + 4 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c +index 93e58a5..eab36ab 100644 +--- a/net/ipv6/ip6_offload.c ++++ b/net/ipv6/ip6_offload.c +@@ -117,6 +117,8 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb, + + if (udpfrag) { + unfrag_ip6hlen = ip6_find_1stfragopt(skb, &prevhdr); ++ if (unfrag_ip6hlen < 0) ++ return ERR_PTR(unfrag_ip6hlen); + fptr = (struct frag_hdr *)((u8 *)ipv6h + unfrag_ip6hlen); + fptr->frag_off = htons(offset); + if (skb->next) +diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c +index 58f6288..01deecd 100644 +--- a/net/ipv6/ip6_output.c ++++ b/net/ipv6/ip6_output.c +@@ -598,6 +598,10 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, + u8 *prevhdr, nexthdr = 0; + + hlen = ip6_find_1stfragopt(skb, &prevhdr); ++ if (hlen < 0) { ++ err = hlen; ++ goto fail; ++ } + nexthdr = *prevhdr; + + mtu = ip6_skb_dst_mtu(skb); +diff --git a/net/ipv6/output_core.c b/net/ipv6/output_core.c +index cd42523..e9065b8 100644 +--- a/net/ipv6/output_core.c ++++ b/net/ipv6/output_core.c +@@ -79,14 +79,13 @@ EXPORT_SYMBOL(ipv6_select_ident); + int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr) + { + u16 offset = sizeof(struct ipv6hdr); +- struct ipv6_opt_hdr *exthdr = +- (struct ipv6_opt_hdr *)(ipv6_hdr(skb) + 1); + unsigned int packet_len = skb_tail_pointer(skb) - + skb_network_header(skb); + int found_rhdr = 0; + *nexthdr = &ipv6_hdr(skb)->nexthdr; + +- while (offset + 1 <= packet_len) { ++ while (offset <= packet_len) { ++ struct ipv6_opt_hdr *exthdr; + + switch (**nexthdr) { + +@@ -107,13 +106,16 @@ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr) + return offset; + } + +- offset += ipv6_optlen(exthdr); +- *nexthdr = &exthdr->nexthdr; ++ if (offset + sizeof(struct ipv6_opt_hdr) > packet_len) ++ return -EINVAL; ++ + exthdr = (struct ipv6_opt_hdr *)(skb_network_header(skb) + + offset); ++ offset += ipv6_optlen(exthdr); ++ *nexthdr = &exthdr->nexthdr; + } + +- return offset; ++ return -EINVAL; + } + EXPORT_SYMBOL(ip6_find_1stfragopt); + +diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c +index ac858c4..b348cff 100644 +--- a/net/ipv6/udp_offload.c ++++ b/net/ipv6/udp_offload.c +@@ -91,6 +91,8 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb, + * bytes to insert fragment header. + */ + unfrag_ip6hlen = ip6_find_1stfragopt(skb, &prevhdr); ++ if (unfrag_ip6hlen < 0) ++ return ERR_PTR(unfrag_ip6hlen); + nexthdr = *prevhdr; + *prevhdr = NEXTHDR_FRAGMENT; + unfrag_len = (skb_network_header(skb) - skb_mac_header(skb)) + +-- +2.9.4 + diff --git a/0001-ipv6-dccp-do-not-inherit-ipv6_mc_list-from-parent.patch b/0001-ipv6-dccp-do-not-inherit-ipv6_mc_list-from-parent.patch new file mode 100644 index 000000000..e0492c870 --- /dev/null +++ b/0001-ipv6-dccp-do-not-inherit-ipv6_mc_list-from-parent.patch @@ -0,0 +1,64 @@ +From 83eaddab4378db256d00d295bda6ca997cd13a52 Mon Sep 17 00:00:00 2001 +From: WANG Cong +Date: Tue, 9 May 2017 16:59:54 -0700 +Subject: [PATCH] ipv6/dccp: do not inherit ipv6_mc_list from parent + +Like commit 657831ffc38e ("dccp/tcp: do not inherit mc_list from parent") +we should clear ipv6_mc_list etc. for IPv6 sockets too. + +Cc: Eric Dumazet +Signed-off-by: Cong Wang +Acked-by: Eric Dumazet +Signed-off-by: David S. Miller +--- + net/dccp/ipv6.c | 6 ++++++ + net/ipv6/tcp_ipv6.c | 2 ++ + 2 files changed, 8 insertions(+) + +diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c +index d9b6a4e..b6bbb71 100644 +--- a/net/dccp/ipv6.c ++++ b/net/dccp/ipv6.c +@@ -426,6 +426,9 @@ static struct sock *dccp_v6_request_recv_sock(const struct sock *sk, + newsk->sk_backlog_rcv = dccp_v4_do_rcv; + newnp->pktoptions = NULL; + newnp->opt = NULL; ++ newnp->ipv6_mc_list = NULL; ++ newnp->ipv6_ac_list = NULL; ++ newnp->ipv6_fl_list = NULL; + newnp->mcast_oif = inet6_iif(skb); + newnp->mcast_hops = ipv6_hdr(skb)->hop_limit; + +@@ -490,6 +493,9 @@ static struct sock *dccp_v6_request_recv_sock(const struct sock *sk, + /* Clone RX bits */ + newnp->rxopt.all = np->rxopt.all; + ++ newnp->ipv6_mc_list = NULL; ++ newnp->ipv6_ac_list = NULL; ++ newnp->ipv6_fl_list = NULL; + newnp->pktoptions = NULL; + newnp->opt = NULL; + newnp->mcast_oif = inet6_iif(skb); +diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c +index aeb9497..df5a9ff 100644 +--- a/net/ipv6/tcp_ipv6.c ++++ b/net/ipv6/tcp_ipv6.c +@@ -1062,6 +1062,7 @@ static struct sock *tcp_v6_syn_recv_sock(const struct sock *sk, struct sk_buff * + newtp->af_specific = &tcp_sock_ipv6_mapped_specific; + #endif + ++ newnp->ipv6_mc_list = NULL; + newnp->ipv6_ac_list = NULL; + newnp->ipv6_fl_list = NULL; + newnp->pktoptions = NULL; +@@ -1131,6 +1132,7 @@ static struct sock *tcp_v6_syn_recv_sock(const struct sock *sk, struct sk_buff * + First: no IPv4 options. + */ + newinet->inet_opt = NULL; ++ newnp->ipv6_mc_list = NULL; + newnp->ipv6_ac_list = NULL; + newnp->ipv6_fl_list = NULL; + +-- +2.9.4 + diff --git a/0001-sctp-do-not-inherit-ipv6_-mc-ac-fl-_list-from-parent.patch b/0001-sctp-do-not-inherit-ipv6_-mc-ac-fl-_list-from-parent.patch new file mode 100644 index 000000000..8c4339f64 --- /dev/null +++ b/0001-sctp-do-not-inherit-ipv6_-mc-ac-fl-_list-from-parent.patch @@ -0,0 +1,33 @@ +From fdcee2cbb8438702ea1b328fb6e0ac5e9a40c7f8 Mon Sep 17 00:00:00 2001 +From: Eric Dumazet +Date: Wed, 17 May 2017 07:16:40 -0700 +Subject: [PATCH] sctp: do not inherit ipv6_{mc|ac|fl}_list from parent + +SCTP needs fixes similar to 83eaddab4378 ("ipv6/dccp: do not inherit +ipv6_mc_list from parent"), otherwise bad things can happen. + +Signed-off-by: Eric Dumazet +Reported-by: Andrey Konovalov +Tested-by: Andrey Konovalov +Signed-off-by: David S. Miller +--- + net/sctp/ipv6.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c +index 142b70e..f5b45b8 100644 +--- a/net/sctp/ipv6.c ++++ b/net/sctp/ipv6.c +@@ -677,6 +677,9 @@ static struct sock *sctp_v6_create_accept_sk(struct sock *sk, + newnp = inet6_sk(newsk); + + memcpy(newnp, np, sizeof(struct ipv6_pinfo)); ++ newnp->ipv6_mc_list = NULL; ++ newnp->ipv6_ac_list = NULL; ++ newnp->ipv6_fl_list = NULL; + + rcu_read_lock(); + opt = rcu_dereference(np->opt); +-- +2.9.4 + diff --git a/kernel.spec b/kernel.spec index b1fb5fcc0..4f03926e8 100644 --- a/kernel.spec +++ b/kernel.spec @@ -625,6 +625,18 @@ Patch668: CVE-2017-7477.patch Patch669: 0001-SUNRPC-Refactor-svc_set_num_threads.patch Patch670: 0002-NFSv4-Fix-callback-server-shutdown.patch +#CVE-2017-8890 rhbz 1450972 +Patch671: 0001-dccp-tcp-do-not-inherit-mc_list-from-parent.patch + +#CVE-2017-9074 rhbz 1452679 +Patch672: 0001-ipv6-Prevent-overrun-when-parsing-v6-header-options.patch + +#CVE-2017-9075 rhbz 1452691 +Patch673: 0001-sctp-do-not-inherit-ipv6_-mc-ac-fl-_list-from-parent.patch + +#CVE-2017-9076 CVE-2017-9077 rhbz 1452688 1452744 +Patch674: 0001-ipv6-dccp-do-not-inherit-ipv6_mc_list-from-parent.patch + # END OF PATCH DEFINITIONS %endif @@ -2189,6 +2201,10 @@ fi # # %changelog +* Mon May 22 2017 Justin M. Forbes +- Fix CVE-2017-8890 CVE-2017-9074 CVE-2017-9075 CVE-2017-9076 CVE-2017-9077 + (rhbz 1452688 1450972 1452679 1452691 1452688 1452744) + * Thu May 18 2017 Justin M. Forbes - Fix CVE-2017-9059 (rhbz 1451386 1451996) From 60af1429f5251df518e898375fe9f02a6d36872b Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 22 May 2017 16:44:52 +0100 Subject: [PATCH 009/152] drop arm64 mm numa fix patch The problem is now properly fixed in 4.11+ f073bdc51771 mm: don't dereference struct page fields of invalid pages 6d526ee26ccd arm64: mm: enable CONFIG_HOLES_IN_ZONE for NUMA --- ...e-initialized-for-the-entire-section.patch | 93 ------------------- kernel.spec | 4 - 2 files changed, 97 deletions(-) delete mode 100644 arm64-mm-Fix-memmap-to-be-initialized-for-the-entire-section.patch diff --git a/arm64-mm-Fix-memmap-to-be-initialized-for-the-entire-section.patch b/arm64-mm-Fix-memmap-to-be-initialized-for-the-entire-section.patch deleted file mode 100644 index eaf809d53..000000000 --- a/arm64-mm-Fix-memmap-to-be-initialized-for-the-entire-section.patch +++ /dev/null @@ -1,93 +0,0 @@ -From patchwork Thu Oct 6 09:52:07 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: arm64: mm: Fix memmap to be initialized for the entire section -From: Robert Richter -X-Patchwork-Id: 9364537 -Message-Id: <1475747527-32387-1-git-send-email-rrichter@cavium.com> -To: Catalin Marinas , Will Deacon - -Cc: Mark Rutland , linux-efi@vger.kernel.org, - David Daney , - Ard Biesheuvel , - linux-kernel@vger.kernel.org, Robert Richter , - Hanjun Guo , linux-arm-kernel@lists.infradead.org -Date: Thu, 6 Oct 2016 11:52:07 +0200 - -There is a memory setup problem on ThunderX systems with certain -memory configurations. The symptom is - - kernel BUG at mm/page_alloc.c:1848! - -This happens for some configs with 64k page size enabled. The bug -triggers for page zones with some pages in the zone not assigned to -this particular zone. In my case some pages that are marked as nomap -were not reassigned to the new zone of node 1, so those are still -assigned to node 0. - -The reason for the mis-configuration is a change in pfn_valid() which -reports pages marked nomap as invalid: - - 68709f45385a arm64: only consider memblocks with NOMAP cleared for linear mapping - -This causes pages marked as nomap being no long reassigned to the new -zone in memmap_init_zone() by calling __init_single_pfn(). - -Fixing this by restoring the old behavior of pfn_valid() to use -memblock_is_memory(). Also changing users of pfn_valid() in arm64 code -to use memblock_is_map_memory() where necessary. This only affects -code in ioremap.c. The code in mmu.c still can use the new version of -pfn_valid(). - -Should be marked stable v4.5.. - -Signed-off-by: Robert Richter ---- - arch/arm64/mm/init.c | 2 +- - arch/arm64/mm/ioremap.c | 5 +++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c -index bbb7ee76e319..25b8659c2a9f 100644 ---- a/arch/arm64/mm/init.c -+++ b/arch/arm64/mm/init.c -@@ -147,7 +147,7 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) - #ifdef CONFIG_HAVE_ARCH_PFN_VALID - int pfn_valid(unsigned long pfn) - { -- return memblock_is_map_memory(pfn << PAGE_SHIFT); -+ return memblock_is_memory(pfn << PAGE_SHIFT); - } - EXPORT_SYMBOL(pfn_valid); - #endif -diff --git a/arch/arm64/mm/ioremap.c b/arch/arm64/mm/ioremap.c -index 01e88c8bcab0..c17c220b0c48 100644 ---- a/arch/arm64/mm/ioremap.c -+++ b/arch/arm64/mm/ioremap.c -@@ -21,6 +21,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -55,7 +56,7 @@ static void __iomem *__ioremap_caller(phys_addr_t phys_addr, size_t size, - /* - * Don't allow RAM to be mapped. - */ -- if (WARN_ON(pfn_valid(__phys_to_pfn(phys_addr)))) -+ if (WARN_ON(memblock_is_map_memory(phys_addr))) - return NULL; - - area = get_vm_area_caller(size, VM_IOREMAP, caller); -@@ -96,7 +97,7 @@ EXPORT_SYMBOL(__iounmap); - void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size) - { - /* For normal memory we already have a cacheable mapping. */ -- if (pfn_valid(__phys_to_pfn(phys_addr))) -+ if (memblock_is_map_memory(phys_addr)) - return (void __iomem *)__phys_to_virt(phys_addr); - - return __ioremap_caller(phys_addr, size, __pgprot(PROT_NORMAL), diff --git a/kernel.spec b/kernel.spec index 4f03926e8..4fab9f7d6 100644 --- a/kernel.spec +++ b/kernel.spec @@ -515,10 +515,6 @@ Patch422: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch # Fix OMAP4 (pandaboard) Patch423: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch -# Not particularly happy we don't yet have a proper upstream resolution this is the right direction -# https://www.spinics.net/lists/arm-kernel/msg535191.html -Patch424: arm64-mm-Fix-memmap-to-be-initialized-for-the-entire-section.patch - # http://patchwork.ozlabs.org/patch/587554/ Patch425: ARM-tegra-usb-no-reset.patch From 6cfc6d7a4faf96abb0776fd95e1fec2d32b48947 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 22 May 2017 08:45:49 -0700 Subject: [PATCH 010/152] Linux v4.11.2 --- kernel.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel.spec b/kernel.spec index 4fab9f7d6..47efd02fc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 1 +%define stable_update 2 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -2197,6 +2197,9 @@ fi # # %changelog +* Mon May 22 2017 Laura Abbott - 4.11.2-300 +- Linux v4.11.2 + * Mon May 22 2017 Justin M. Forbes - Fix CVE-2017-8890 CVE-2017-9074 CVE-2017-9075 CVE-2017-9076 CVE-2017-9077 (rhbz 1452688 1450972 1452679 1452691 1452688 1452744) diff --git a/sources b/sources index 7b76f79ec..389b57d00 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (perf-man-4.11.tar.gz) = 0b070d2f10a743329de2f532e2d7e19ef385a3e6ef3c700b591ae2697604dbe542b36e31121b3e37517ee8071ab800386fa8663c24a5b36520a18e096c6eefc8 SHA512 (linux-4.11.tar.xz) = 6610eed97ffb7207c71771198c36179b8244ace7222bebb109507720e26c5f17d918079a56d5febdd8605844d67fb2df0ebe910fa2f2f53690daf6e2a8ad09c3 -SHA512 (patch-4.11.1.xz) = e6cc334312655e8992da8834d09561191482961862c9f7ef5db44e3327db9994bf258412294271db8c3badd04c309f6cf12d6608a15fccdeec4039f50756fea8 +SHA512 (patch-4.11.2.xz) = e090598bb339f04a92febe9c03317b76e51f67c2e3bfebaddb97177b19a2c195332477333be29e9f46483ff937fc85fd63fea1bb4ae18dec0fbe5bc1738afbcb From 51402ab09f4b7895600108414a4de79d25878494 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 24 May 2017 12:53:20 +0100 Subject: [PATCH 011/152] Various ARM updates --- ...ess-add-WL1835-Bluetooth-device-node.patch | 40 +++++++++++ baseconfig/CONFIG_KEYBOARD_QT1070 | 2 +- baseconfig/CONFIG_SENSORS_ADS1015 | 2 +- baseconfig/CONFIG_TI_ADS1015 | 2 +- baseconfig/arm/CONFIG_QCOM_SPMI_IADC | 1 - baseconfig/arm/CONFIG_QCOM_SPMI_VADC | 1 - baseconfig/arm/CONFIG_REGULATOR_QCOM_SPMI | 1 - .../arm/arm64/CONFIG_ARM64_SW_TTBR0_PAN | 2 +- .../arm/arm64/CONFIG_EXTCON_QCOM_SPMI_MISC | 1 + .../arm/{ => arm64}/CONFIG_MFD_SPMI_PMIC | 0 .../{ => arm/arm64}/CONFIG_QCOM_ADSP_PIL | 0 baseconfig/arm/arm64/CONFIG_QCOM_Q6V5_PIL | 2 +- baseconfig/arm/arm64/CONFIG_QCOM_WCNSS_PIL | 2 +- baseconfig/arm/{ => arm64}/CONFIG_REGMAP_SPMI | 0 baseconfig/arm/{ => arm64}/CONFIG_SPMI | 0 .../arm/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM | 1 - baseconfig/arm/armv7/CONFIG_UBIFS_FS | 1 - .../arm/armv7/CONFIG_UBIFS_FS_ADVANCED_COMPR | 1 - baseconfig/arm/armv7/CONFIG_UBIFS_FS_LZO | 1 - baseconfig/arm/armv7/CONFIG_UBIFS_FS_ZLIB | 1 - .../armv7/armv7/CONFIG_EXTCON_QCOM_SPMI_MISC | 1 + baseconfig/arm/armv7/armv7/CONFIG_KXSD9 | 1 + baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C | 1 + baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI | 1 + .../arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC | 1 + baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C | 1 + .../arm/armv7/armv7/CONFIG_QCOM_ADSP_PIL | 1 + .../arm/armv7/armv7/CONFIG_QCOM_Q6V5_PIL | 2 +- .../armv7/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM | 1 + .../arm/armv7/armv7/CONFIG_QCOM_WCNSS_PIL | 2 +- baseconfig/arm/armv7/armv7/CONFIG_REGMAP_SPMI | 1 + baseconfig/arm/armv7/armv7/CONFIG_SPMI | 1 + baseconfig/s390x/CONFIG_CRASH_DUMP | 1 - bcm283x-mmc-bcm2835.patch | 66 +++++++++++++++++++ kernel-aarch64-debug.config | 14 ++-- kernel-aarch64.config | 14 ++-- kernel-armv7hl-debug.config | 24 +++---- kernel-armv7hl-lpae-debug.config | 19 ++---- kernel-armv7hl-lpae.config | 19 ++---- kernel-armv7hl.config | 24 +++---- kernel-i686-PAE.config | 7 +- kernel-i686-PAEdebug.config | 7 +- kernel-i686-debug.config | 7 +- kernel-i686.config | 7 +- kernel-ppc64-debug.config | 7 +- kernel-ppc64.config | 7 +- kernel-ppc64le-debug.config | 7 +- kernel-ppc64le.config | 7 +- kernel-ppc64p7-debug.config | 7 +- kernel-ppc64p7.config | 7 +- kernel-s390x-debug.config | 7 +- kernel-s390x.config | 7 +- kernel-x86_64-debug.config | 7 +- kernel-x86_64.config | 7 +- kernel.spec | 6 ++ 55 files changed, 221 insertions(+), 139 deletions(-) create mode 100644 arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch delete mode 100644 baseconfig/arm/CONFIG_QCOM_SPMI_IADC delete mode 100644 baseconfig/arm/CONFIG_QCOM_SPMI_VADC delete mode 100644 baseconfig/arm/CONFIG_REGULATOR_QCOM_SPMI create mode 100644 baseconfig/arm/arm64/CONFIG_EXTCON_QCOM_SPMI_MISC rename baseconfig/arm/{ => arm64}/CONFIG_MFD_SPMI_PMIC (100%) rename baseconfig/{ => arm/arm64}/CONFIG_QCOM_ADSP_PIL (100%) rename baseconfig/arm/{ => arm64}/CONFIG_REGMAP_SPMI (100%) rename baseconfig/arm/{ => arm64}/CONFIG_SPMI (100%) delete mode 100644 baseconfig/arm/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM delete mode 100644 baseconfig/arm/armv7/CONFIG_UBIFS_FS delete mode 100644 baseconfig/arm/armv7/CONFIG_UBIFS_FS_ADVANCED_COMPR delete mode 100644 baseconfig/arm/armv7/CONFIG_UBIFS_FS_LZO delete mode 100644 baseconfig/arm/armv7/CONFIG_UBIFS_FS_ZLIB create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_EXTCON_QCOM_SPMI_MISC create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_KXSD9 create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_QCOM_ADSP_PIL create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_REGMAP_SPMI create mode 100644 baseconfig/arm/armv7/armv7/CONFIG_SPMI delete mode 100644 baseconfig/s390x/CONFIG_CRASH_DUMP diff --git a/arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch b/arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch new file mode 100644 index 000000000..b4c945697 --- /dev/null +++ b/arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch @@ -0,0 +1,40 @@ +From patchwork Mon May 22 14:51:38 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: arm: dts: boneblack-wireless: add WL1835 Bluetooth device node +From: Ricardo Salveti +X-Patchwork-Id: 9740719 +Message-Id: <1495464701-12046-1-git-send-email-ricardo.salveti@linaro.org> +To: linux-omap@vger.kernel.org +Cc: Mark Rutland , + Ricardo Salveti , devicetree@vger.kernel.org, + Tony Lindgren , Russell King , + linux-kernel@vger.kernel.org, Rob Herring , + =?UTF-8?q?Beno=C3=AEt=20Cousson?= , + robertcnelson@gmail.com, linux-arm-kernel@lists.infradead.org +Date: Mon, 22 May 2017 11:51:38 -0300 + +This adds the serial slave device for the WL1835 Bluetooth interface. + +Signed-off-by: Ricardo Salveti +--- + arch/arm/boot/dts/am335x-boneblack-wireless.dts | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/arch/arm/boot/dts/am335x-boneblack-wireless.dts b/arch/arm/boot/dts/am335x-boneblack-wireless.dts +index 105bd10..83f49f6 100644 +--- a/arch/arm/boot/dts/am335x-boneblack-wireless.dts ++++ b/arch/arm/boot/dts/am335x-boneblack-wireless.dts +@@ -97,6 +97,11 @@ + pinctrl-names = "default"; + pinctrl-0 = <&uart3_pins &bt_pins>; + status = "okay"; ++ ++ bluetooth { ++ compatible = "ti,wl1835-st"; ++ enable-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; ++ }; + }; + + &gpio3 { diff --git a/baseconfig/CONFIG_KEYBOARD_QT1070 b/baseconfig/CONFIG_KEYBOARD_QT1070 index 7deb75f9a..f9f0b0a84 100644 --- a/baseconfig/CONFIG_KEYBOARD_QT1070 +++ b/baseconfig/CONFIG_KEYBOARD_QT1070 @@ -1 +1 @@ -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m diff --git a/baseconfig/CONFIG_SENSORS_ADS1015 b/baseconfig/CONFIG_SENSORS_ADS1015 index 4fc01f323..928b4f25f 100644 --- a/baseconfig/CONFIG_SENSORS_ADS1015 +++ b/baseconfig/CONFIG_SENSORS_ADS1015 @@ -1 +1 @@ -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set diff --git a/baseconfig/CONFIG_TI_ADS1015 b/baseconfig/CONFIG_TI_ADS1015 index 8a8d511c6..f57c3fdc4 100644 --- a/baseconfig/CONFIG_TI_ADS1015 +++ b/baseconfig/CONFIG_TI_ADS1015 @@ -1 +1 @@ -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m diff --git a/baseconfig/arm/CONFIG_QCOM_SPMI_IADC b/baseconfig/arm/CONFIG_QCOM_SPMI_IADC deleted file mode 100644 index 1b31637a0..000000000 --- a/baseconfig/arm/CONFIG_QCOM_SPMI_IADC +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_QCOM_SPMI_IADC is not set diff --git a/baseconfig/arm/CONFIG_QCOM_SPMI_VADC b/baseconfig/arm/CONFIG_QCOM_SPMI_VADC deleted file mode 100644 index 54e057273..000000000 --- a/baseconfig/arm/CONFIG_QCOM_SPMI_VADC +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_QCOM_SPMI_VADC is not set diff --git a/baseconfig/arm/CONFIG_REGULATOR_QCOM_SPMI b/baseconfig/arm/CONFIG_REGULATOR_QCOM_SPMI deleted file mode 100644 index fe224dc89..000000000 --- a/baseconfig/arm/CONFIG_REGULATOR_QCOM_SPMI +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_REGULATOR_QCOM_SPMI is not set diff --git a/baseconfig/arm/arm64/CONFIG_ARM64_SW_TTBR0_PAN b/baseconfig/arm/arm64/CONFIG_ARM64_SW_TTBR0_PAN index 3b878e832..294c8ec50 100644 --- a/baseconfig/arm/arm64/CONFIG_ARM64_SW_TTBR0_PAN +++ b/baseconfig/arm/arm64/CONFIG_ARM64_SW_TTBR0_PAN @@ -1 +1 @@ -# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_SW_TTBR0_PAN=y diff --git a/baseconfig/arm/arm64/CONFIG_EXTCON_QCOM_SPMI_MISC b/baseconfig/arm/arm64/CONFIG_EXTCON_QCOM_SPMI_MISC new file mode 100644 index 000000000..b52487909 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_EXTCON_QCOM_SPMI_MISC @@ -0,0 +1 @@ +CONFIG_EXTCON_QCOM_SPMI_MISC=m diff --git a/baseconfig/arm/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC similarity index 100% rename from baseconfig/arm/CONFIG_MFD_SPMI_PMIC rename to baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC diff --git a/baseconfig/CONFIG_QCOM_ADSP_PIL b/baseconfig/arm/arm64/CONFIG_QCOM_ADSP_PIL similarity index 100% rename from baseconfig/CONFIG_QCOM_ADSP_PIL rename to baseconfig/arm/arm64/CONFIG_QCOM_ADSP_PIL diff --git a/baseconfig/arm/arm64/CONFIG_QCOM_Q6V5_PIL b/baseconfig/arm/arm64/CONFIG_QCOM_Q6V5_PIL index b749a7daa..18d8fb792 100644 --- a/baseconfig/arm/arm64/CONFIG_QCOM_Q6V5_PIL +++ b/baseconfig/arm/arm64/CONFIG_QCOM_Q6V5_PIL @@ -1 +1 @@ -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m diff --git a/baseconfig/arm/arm64/CONFIG_QCOM_WCNSS_PIL b/baseconfig/arm/arm64/CONFIG_QCOM_WCNSS_PIL index bb8c24d61..b13cefb38 100644 --- a/baseconfig/arm/arm64/CONFIG_QCOM_WCNSS_PIL +++ b/baseconfig/arm/arm64/CONFIG_QCOM_WCNSS_PIL @@ -1 +1 @@ -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m diff --git a/baseconfig/arm/CONFIG_REGMAP_SPMI b/baseconfig/arm/arm64/CONFIG_REGMAP_SPMI similarity index 100% rename from baseconfig/arm/CONFIG_REGMAP_SPMI rename to baseconfig/arm/arm64/CONFIG_REGMAP_SPMI diff --git a/baseconfig/arm/CONFIG_SPMI b/baseconfig/arm/arm64/CONFIG_SPMI similarity index 100% rename from baseconfig/arm/CONFIG_SPMI rename to baseconfig/arm/arm64/CONFIG_SPMI diff --git a/baseconfig/arm/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM b/baseconfig/arm/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM deleted file mode 100644 index 69966daab..000000000 --- a/baseconfig/arm/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set diff --git a/baseconfig/arm/armv7/CONFIG_UBIFS_FS b/baseconfig/arm/armv7/CONFIG_UBIFS_FS deleted file mode 100644 index e71980df4..000000000 --- a/baseconfig/arm/armv7/CONFIG_UBIFS_FS +++ /dev/null @@ -1 +0,0 @@ -CONFIG_UBIFS_FS=m diff --git a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ADVANCED_COMPR b/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ADVANCED_COMPR deleted file mode 100644 index f91c8cd6c..000000000 --- a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ADVANCED_COMPR +++ /dev/null @@ -1 +0,0 @@ -CONFIG_UBIFS_FS_ADVANCED_COMPR=y diff --git a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_LZO b/baseconfig/arm/armv7/CONFIG_UBIFS_FS_LZO deleted file mode 100644 index e743a6b32..000000000 --- a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_LZO +++ /dev/null @@ -1 +0,0 @@ -CONFIG_UBIFS_FS_LZO=y diff --git a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ZLIB b/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ZLIB deleted file mode 100644 index 18bffa1f1..000000000 --- a/baseconfig/arm/armv7/CONFIG_UBIFS_FS_ZLIB +++ /dev/null @@ -1 +0,0 @@ -CONFIG_UBIFS_FS_ZLIB=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_EXTCON_QCOM_SPMI_MISC b/baseconfig/arm/armv7/armv7/CONFIG_EXTCON_QCOM_SPMI_MISC new file mode 100644 index 000000000..b52487909 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_EXTCON_QCOM_SPMI_MISC @@ -0,0 +1 @@ +CONFIG_EXTCON_QCOM_SPMI_MISC=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9 b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9 new file mode 100644 index 000000000..090669c9c --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9 @@ -0,0 +1 @@ +CONFIG_KXSD9=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C new file mode 100644 index 000000000..3d2256700 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C @@ -0,0 +1 @@ +CONFIG_KXSD9_I2C=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI new file mode 100644 index 000000000..f4da57bbc --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI @@ -0,0 +1 @@ +CONFIG_KXSD9_SPI=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC new file mode 100644 index 000000000..6360fee39 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC @@ -0,0 +1 @@ +CONFIG_MFD_SPMI_PMIC=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C b/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C new file mode 100644 index 000000000..2e9c7cc45 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C @@ -0,0 +1 @@ +CONFIG_MPU3050_I2C=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_ADSP_PIL b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_ADSP_PIL new file mode 100644 index 000000000..0aa258124 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_ADSP_PIL @@ -0,0 +1 @@ +CONFIG_QCOM_ADSP_PIL=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_Q6V5_PIL b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_Q6V5_PIL index b749a7daa..18d8fb792 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_Q6V5_PIL +++ b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_Q6V5_PIL @@ -1 +1 @@ -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM new file mode 100644 index 000000000..7155372b9 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SPMI_TEMP_ALARM @@ -0,0 +1 @@ +CONFIG_QCOM_SPMI_TEMP_ALARM=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_WCNSS_PIL b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_WCNSS_PIL index bb8c24d61..b13cefb38 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_WCNSS_PIL +++ b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_WCNSS_PIL @@ -1 +1 @@ -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_REGMAP_SPMI b/baseconfig/arm/armv7/armv7/CONFIG_REGMAP_SPMI new file mode 100644 index 000000000..0c319596b --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_REGMAP_SPMI @@ -0,0 +1 @@ +CONFIG_REGMAP_SPMI=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SPMI b/baseconfig/arm/armv7/armv7/CONFIG_SPMI new file mode 100644 index 000000000..b340c89e6 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_SPMI @@ -0,0 +1 @@ +CONFIG_SPMI=m diff --git a/baseconfig/s390x/CONFIG_CRASH_DUMP b/baseconfig/s390x/CONFIG_CRASH_DUMP deleted file mode 100644 index 84bb04c03..000000000 --- a/baseconfig/s390x/CONFIG_CRASH_DUMP +++ /dev/null @@ -1 +0,0 @@ -CONFIG_CRASH_DUMP=y diff --git a/bcm283x-mmc-bcm2835.patch b/bcm283x-mmc-bcm2835.patch index d9591b438..ba9ae3648 100644 --- a/bcm283x-mmc-bcm2835.patch +++ b/bcm283x-mmc-bcm2835.patch @@ -1930,3 +1930,69 @@ index 7d1b0db..1f343a4 100644 if (host->use_sbc) { if (bcm2835_send_command(host, mrq->sbc)) { if (!host->use_busy) +From patchwork Tue May 23 23:42:27 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: mmc: host: fix potential null pointer dereference +From: "Gustavo A. R. Silva" +X-Patchwork-Id: 9744419 +Message-Id: <20170523234227.GA13018@embeddedgus> +To: Ulf Hansson , + Florian Fainelli , + Ray Jui , Scott Branden , + bcm-kernel-feedback-list@broadcom.com, Eric Anholt , + Stefan Wahren +Cc: "Gustavo A. R. Silva" , + linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, + linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org +Date: Tue, 23 May 2017 18:42:27 -0500 + +Null check at line 1165: if (mrq->cmd), implies that mrq->cmd might +be NULL. +Add null checks before dereferencing pointer mrq->cmd in order to avoid +any potential NULL pointer dereference. + +Addresses-Coverity-ID: 1408740 +Signed-off-by: Gustavo A. R. Silva +--- + drivers/mmc/host/bcm2835.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c +index 1f343a4..abba9a2 100644 +--- a/drivers/mmc/host/bcm2835.c ++++ b/drivers/mmc/host/bcm2835.c +@@ -1172,7 +1172,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq) + if (mrq->data && !is_power_of_2(mrq->data->blksz)) { + dev_err(dev, "unsupported block size (%d bytes)\n", + mrq->data->blksz); +- mrq->cmd->error = -EINVAL; ++ ++ if (mrq->cmd) ++ mrq->cmd->error = -EINVAL; ++ + mmc_request_done(mmc, mrq); + return; + } +@@ -1194,7 +1197,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq) + readl(host->ioaddr + SDCMD) & SDCMD_CMD_MASK, + edm); + bcm2835_dumpregs(host); +- mrq->cmd->error = -EILSEQ; ++ ++ if (mrq->cmd) ++ mrq->cmd->error = -EILSEQ; ++ + bcm2835_finish_request(host); + mutex_unlock(&host->mutex); + return; +@@ -1207,7 +1213,7 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq) + if (!host->use_busy) + bcm2835_finish_command(host); + } +- } else if (bcm2835_send_command(host, mrq->cmd)) { ++ } else if (mrq->cmd && bcm2835_send_command(host, mrq->cmd)) { + if (host->data && host->dma_desc) { + /* DMA transfer starts now, PIO starts after irq */ + bcm2835_start_dma(host); diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index b0c8f40a6..57704dcd1 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -253,7 +253,7 @@ CONFIG_ARM64_PAN=y CONFIG_ARM64_PTDUMP_DEBUGFS=y CONFIG_ARM64_PTDUMP=y # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set -# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_SW_TTBR0_PAN=y CONFIG_ARM64_UAO=y CONFIG_ARM64_VA_BITS=48 CONFIG_ARM64_VA_BITS_48=y @@ -1448,7 +1448,7 @@ CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON=m # CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set +CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=m @@ -2512,7 +2512,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -4056,7 +4056,7 @@ CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_L2_PMU=y -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_QFPROM=m CONFIG_QCOM_SMD=m @@ -4069,7 +4069,7 @@ CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_SPMI_VADC=m CONFIG_QCOM_TSENS=m CONFIG_QCOM_WCNSS_CTRL=m -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m CONFIG_QCOM_WDT=m CONFIG_QEDE=m CONFIG_QEDF=m @@ -4594,7 +4594,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5418,7 +5418,7 @@ CONFIG_THUNDER_NIC_VF=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 37bd5d69c..8f4d764b3 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -253,7 +253,7 @@ CONFIG_ARM64_PAN=y CONFIG_ARM64_PTDUMP_DEBUGFS=y # CONFIG_ARM64_PTDUMP is not set # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set -# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_SW_TTBR0_PAN=y CONFIG_ARM64_UAO=y CONFIG_ARM64_VA_BITS=48 CONFIG_ARM64_VA_BITS_48=y @@ -1438,7 +1438,7 @@ CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_INTEL_INT3496=m CONFIG_EXTCON=m # CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set +CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=m @@ -2493,7 +2493,7 @@ CONFIG_KEYBOARD_GPIO_POLLED=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -4034,7 +4034,7 @@ CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_L2_PMU=y -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_QFPROM=m CONFIG_QCOM_SMD=m @@ -4047,7 +4047,7 @@ CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_SPMI_VADC=m CONFIG_QCOM_TSENS=m CONFIG_QCOM_WCNSS_CTRL=m -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m CONFIG_QCOM_WDT=m CONFIG_QEDE=m CONFIG_QEDF=m @@ -4572,7 +4572,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5395,7 +5395,7 @@ CONFIG_THUNDER_NIC_VF=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 0b75171a7..0a9d65bfe 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -1570,7 +1570,7 @@ CONFIG_EXTCON_INTEL_INT3496=m # CONFIG_EXTCON_MAX3355 is not set CONFIG_EXTCON_MAX8997=m CONFIG_EXTCON_PALMAS=m -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set +CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=m @@ -2696,7 +2696,7 @@ CONFIG_KEYBOARD_OMAP4=m # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m CONFIG_KEYBOARD_PXA27x=y -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set CONFIG_KEYBOARD_SAMSUNG=m # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -2738,7 +2738,9 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUSER_HELPERS=y CONFIG_KXCJK1013=m -# CONFIG_KXSD9 is not set +CONFIG_KXSD9_I2C=m +CONFIG_KXSD9=m +CONFIG_KXSD9_SPI=m CONFIG_L2TP_DEBUGFS=m CONFIG_L2TP_ETH=m CONFIG_L2TP_IP=m @@ -3296,7 +3298,7 @@ CONFIG_MPL115=m CONFIG_MPL3115=m CONFIG_MPLS_IPTUNNEL=m CONFIG_MPLS_ROUTING=m -# CONFIG_MPU3050_I2C is not set +CONFIG_MPU3050_I2C=m CONFIG_MQ_IOSCHED_DEADLINE=y # CONFIG_MS5611 is not set # CONFIG_MS5637 is not set @@ -4393,7 +4395,7 @@ CONFIG_QCOM_GSBI=m # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_PM=y -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m CONFIG_QCOM_QFPROM=m CONFIG_QCOM_SMD=m CONFIG_QCOM_SMD_RPM=m @@ -4401,11 +4403,11 @@ CONFIG_QCOM_SMEM=m CONFIG_QCOM_SMP2P=m CONFIG_QCOM_SMSM=m CONFIG_QCOM_SPMI_IADC=m -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set +CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_SPMI_VADC=m CONFIG_QCOM_TSENS=m CONFIG_QCOM_WCNSS_CTRL=m -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m CONFIG_QCOM_WDT=m CONFIG_QEDE=m CONFIG_QEDF=m @@ -4974,7 +4976,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5921,7 +5923,7 @@ CONFIG_TI_ADC081C=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set CONFIG_TI_AM335X_ADC=m @@ -6071,11 +6073,9 @@ CONFIG_TWL6040_CORE=y CONFIG_TYPHOON=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBSAN_ALIGNMENT is not set # CONFIG_UBSAN is not set # CONFIG_UBSAN_SANITIZE_ALL is not set diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index 7bc14358d..2b478fbf5 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -2573,7 +2573,7 @@ CONFIG_KEYBOARD_MATRIX=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -2978,7 +2978,6 @@ CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SM501_GPIO=y CONFIG_MFD_SM501=m # CONFIG_MFD_SMSC is not set -CONFIG_MFD_SPMI_PMIC=m # CONFIG_MFD_STMPE is not set CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_SYSCON=y @@ -4142,15 +4141,11 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_IRQ_COMBINER=y -# CONFIG_QCOM_SPMI_IADC is not set -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set -# CONFIG_QCOM_SPMI_VADC is not set CONFIG_QEDE=m CONFIG_QEDF=m CONFIG_QEDI=m @@ -4248,7 +4243,6 @@ CONFIG_REGMAP_I2C=y CONFIG_REGMAP_IRQ=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_SPMI=m CONFIG_REGMAP=y # CONFIG_REGULATOR_ACT8865 is not set CONFIG_REGULATOR_AD5398=m @@ -4284,7 +4278,6 @@ CONFIG_REGULATOR_PV88060=m # CONFIG_REGULATOR_PV88080 is not set CONFIG_REGULATOR_PV88090=m CONFIG_REGULATOR_PWM=y -# CONFIG_REGULATOR_QCOM_SPMI is not set CONFIG_REGULATOR_RK808=m CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m @@ -4691,7 +4684,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5339,7 +5332,7 @@ CONFIG_SPI_TEGRA114=m # CONFIG_SPI_XILINX is not set CONFIG_SPI=y # CONFIG_SPI_ZYNQMP_GQSPI is not set -CONFIG_SPMI=m +# CONFIG_SPMI is not set # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_LZ4=y @@ -5546,7 +5539,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set CONFIG_TI_AEMIF=m @@ -5680,11 +5673,9 @@ CONFIG_TUN=m CONFIG_TYPHOON=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBSAN_ALIGNMENT is not set # CONFIG_UBSAN is not set # CONFIG_UBSAN_SANITIZE_ALL is not set diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index e5d1605ba..0ed92f8a7 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -2554,7 +2554,7 @@ CONFIG_KEYBOARD_MATRIX=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -2958,7 +2958,6 @@ CONFIG_MFD_SEC_CORE=y CONFIG_MFD_SM501_GPIO=y CONFIG_MFD_SM501=m # CONFIG_MFD_SMSC is not set -CONFIG_MFD_SPMI_PMIC=m # CONFIG_MFD_STMPE is not set CONFIG_MFD_SUN4I_GPADC=m CONFIG_MFD_SYSCON=y @@ -4120,15 +4119,11 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_IRQ_COMBINER=y -# CONFIG_QCOM_SPMI_IADC is not set -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set -# CONFIG_QCOM_SPMI_VADC is not set CONFIG_QEDE=m CONFIG_QEDF=m CONFIG_QEDI=m @@ -4226,7 +4221,6 @@ CONFIG_REGMAP_I2C=y CONFIG_REGMAP_IRQ=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_SPI=y -CONFIG_REGMAP_SPMI=m CONFIG_REGMAP=y # CONFIG_REGULATOR_ACT8865 is not set CONFIG_REGULATOR_AD5398=m @@ -4262,7 +4256,6 @@ CONFIG_REGULATOR_PV88060=m # CONFIG_REGULATOR_PV88080 is not set CONFIG_REGULATOR_PV88090=m CONFIG_REGULATOR_PWM=y -# CONFIG_REGULATOR_QCOM_SPMI is not set CONFIG_REGULATOR_RK808=m CONFIG_REGULATOR_S2MPA01=m CONFIG_REGULATOR_S2MPS11=m @@ -4669,7 +4662,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5316,7 +5309,7 @@ CONFIG_SPI_TEGRA114=m # CONFIG_SPI_XILINX is not set CONFIG_SPI=y # CONFIG_SPI_ZYNQMP_GQSPI is not set -CONFIG_SPMI=m +# CONFIG_SPMI is not set # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_LZ4=y @@ -5523,7 +5516,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set CONFIG_TI_AEMIF=m @@ -5657,11 +5650,9 @@ CONFIG_TUN=m CONFIG_TYPHOON=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBSAN_ALIGNMENT is not set # CONFIG_UBSAN is not set # CONFIG_UBSAN_SANITIZE_ALL is not set diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index 66bd982ac..f67e31550 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -1560,7 +1560,7 @@ CONFIG_EXTCON_INTEL_INT3496=m # CONFIG_EXTCON_MAX3355 is not set CONFIG_EXTCON_MAX8997=m CONFIG_EXTCON_PALMAS=m -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set +CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set CONFIG_EXTCON_USB_GPIO=m @@ -2677,7 +2677,7 @@ CONFIG_KEYBOARD_OMAP4=m # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m CONFIG_KEYBOARD_PXA27x=y -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set CONFIG_KEYBOARD_SAMSUNG=m # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -2719,7 +2719,9 @@ CONFIG_KSM=y CONFIG_KSZ884X_PCI=m CONFIG_KUSER_HELPERS=y CONFIG_KXCJK1013=m -# CONFIG_KXSD9 is not set +CONFIG_KXSD9_I2C=m +CONFIG_KXSD9=m +CONFIG_KXSD9_SPI=m CONFIG_L2TP_DEBUGFS=m CONFIG_L2TP_ETH=m CONFIG_L2TP_IP=m @@ -3275,7 +3277,7 @@ CONFIG_MPL115=m CONFIG_MPL3115=m CONFIG_MPLS_IPTUNNEL=m CONFIG_MPLS_ROUTING=m -# CONFIG_MPU3050_I2C is not set +CONFIG_MPU3050_I2C=m CONFIG_MQ_IOSCHED_DEADLINE=y # CONFIG_MS5611 is not set # CONFIG_MS5637 is not set @@ -4371,7 +4373,7 @@ CONFIG_QCOM_GSBI=m # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_IRQ_COMBINER=y CONFIG_QCOM_PM=y -# CONFIG_QCOM_Q6V5_PIL is not set +CONFIG_QCOM_Q6V5_PIL=m CONFIG_QCOM_QFPROM=m CONFIG_QCOM_SMD=m CONFIG_QCOM_SMD_RPM=m @@ -4379,11 +4381,11 @@ CONFIG_QCOM_SMEM=m CONFIG_QCOM_SMP2P=m CONFIG_QCOM_SMSM=m CONFIG_QCOM_SPMI_IADC=m -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set +CONFIG_QCOM_SPMI_TEMP_ALARM=m CONFIG_QCOM_SPMI_VADC=m CONFIG_QCOM_TSENS=m CONFIG_QCOM_WCNSS_CTRL=m -# CONFIG_QCOM_WCNSS_PIL is not set +CONFIG_QCOM_WCNSS_PIL=m CONFIG_QCOM_WDT=m CONFIG_QEDE=m CONFIG_QEDF=m @@ -4952,7 +4954,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5898,7 +5900,7 @@ CONFIG_TI_ADC081C=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set CONFIG_TI_AM335X_ADC=m @@ -6048,11 +6050,9 @@ CONFIG_TWL6040_CORE=y CONFIG_TYPHOON=m # CONFIG_UACCESS_WITH_MEMCPY is not set CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_ENCRYPTION=y -CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS=m -CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBSAN_ALIGNMENT is not set # CONFIG_UBSAN is not set # CONFIG_UBSAN_SANITIZE_ALL is not set diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index 4a24bc6a4..501c49954 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -2436,7 +2436,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3900,7 +3900,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4359,7 +4358,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5129,7 +5128,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 03e610d3f..884f3dd2d 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -2456,7 +2456,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3921,7 +3921,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4380,7 +4379,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5151,7 +5150,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 2d2ddcf4d..9610b6bc7 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -2456,7 +2456,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3921,7 +3921,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4380,7 +4379,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5151,7 +5150,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-i686.config b/kernel-i686.config index 2b640d3e3..868ef6093 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -2436,7 +2436,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3900,7 +3900,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4359,7 +4358,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5129,7 +5128,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index c59901132..15e4c5076 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -2309,7 +2309,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3743,7 +3743,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4204,7 +4203,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4942,7 +4941,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64.config b/kernel-ppc64.config index af2f8af93..8206e75a9 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -2289,7 +2289,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3720,7 +3720,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4181,7 +4180,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4918,7 +4917,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 47fadbda3..3a5f96ea1 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -2255,7 +2255,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3683,7 +3683,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4144,7 +4143,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4871,7 +4870,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index ebfead87c..3669fe29e 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -2235,7 +2235,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3660,7 +3660,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4121,7 +4120,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4847,7 +4846,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config index 896b8132b..505eda7de 100644 --- a/kernel-ppc64p7-debug.config +++ b/kernel-ppc64p7-debug.config @@ -2254,7 +2254,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3682,7 +3682,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4143,7 +4142,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4870,7 +4869,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config index a3cb93cdc..41ff6a26f 100644 --- a/kernel-ppc64p7.config +++ b/kernel-ppc64p7.config @@ -2234,7 +2234,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3659,7 +3659,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4120,7 +4119,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4846,7 +4845,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index 49c17079c..4478cf2b6 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -2200,7 +2200,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3568,7 +3568,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4042,7 +4041,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4760,7 +4759,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-s390x.config b/kernel-s390x.config index afaecb425..99c01539e 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -2180,7 +2180,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3545,7 +3545,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4019,7 +4018,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -4736,7 +4735,7 @@ CONFIG_THRUSTMASTER_FF=y # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 905bb6af4..e9c850d69 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -2494,7 +2494,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3944,7 +3944,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4405,7 +4404,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5184,7 +5183,7 @@ CONFIG_THUNDERBOLT=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 4c24a5330..d5bd02b52 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -2474,7 +2474,7 @@ CONFIG_KEYBOARD_GPIO=m # CONFIG_KEYBOARD_OMAP4 is not set # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_PMIC8XXX=m -# CONFIG_KEYBOARD_QT1070 is not set +CONFIG_KEYBOARD_QT1070=m # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_SH_KEYSC is not set @@ -3923,7 +3923,6 @@ CONFIG_PWRSEQ_EMMC=m # CONFIG_PWRSEQ_SD8787 is not set CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000 is not set -CONFIG_QCOM_ADSP_PIL=m # CONFIG_QCOM_EMAC is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4384,7 +4383,7 @@ CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_ADM9240=m -CONFIG_SENSORS_ADS1015=m +# CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_ADT7310=m @@ -5162,7 +5161,7 @@ CONFIG_THUNDERBOLT=m # CONFIG_TI_ADC12138 is not set # CONFIG_TI_ADC128S052 is not set # CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set +CONFIG_TI_ADS1015=m # CONFIG_TI_ADS7950 is not set # CONFIG_TI_ADS8688 is not set # CONFIG_TI_CPSW_ALE is not set diff --git a/kernel.spec b/kernel.spec index 47efd02fc..00d90eec2 100644 --- a/kernel.spec +++ b/kernel.spec @@ -515,6 +515,9 @@ Patch422: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch # Fix OMAP4 (pandaboard) Patch423: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch +# BBWireless Bluetooth +Patch424: arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch + # http://patchwork.ozlabs.org/patch/587554/ Patch425: ARM-tegra-usb-no-reset.patch @@ -2197,6 +2200,9 @@ fi # # %changelog +* Wed May 24 2017 Peter Robinson +- Various ARM updates + * Mon May 22 2017 Laura Abbott - 4.11.2-300 - Linux v4.11.2 From 21ab0c2a00e07dbe5699f4a6c14d0eaa26348143 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 25 May 2017 11:18:44 -0700 Subject: [PATCH 012/152] Linux v4.11.3 --- efi-lockdown.patch | 239 +++++++++--------- kernel.spec | 8 +- ...e-BUG-when-CONFIG_RC_CORE-CEC_CAP_RC.patch | 45 ---- sources | 2 +- 4 files changed, 122 insertions(+), 172 deletions(-) delete mode 100644 media-cec-Fix-runtime-BUG-when-CONFIG_RC_CORE-CEC_CAP_RC.patch diff --git a/efi-lockdown.patch b/efi-lockdown.patch index 54a7caa24..7803d6dff 100644 --- a/efi-lockdown.patch +++ b/efi-lockdown.patch @@ -1,4 +1,4 @@ -From df7d76ae50f18d4465e59fdf7f19d3df44906cb5 Mon Sep 17 00:00:00 2001 +From 85255f3885abdd1d2e5dc9f6e51f2fc9db075843 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Mon, 21 Nov 2016 23:55:55 +0000 Subject: [PATCH 07/32] efi: Add EFI_SECURE_BOOT bit @@ -18,10 +18,10 @@ Signed-off-by: David Howells 2 files changed, 2 insertions(+) diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 69780ed..447905e 100644 +index 4bf0c89..396285b 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c -@@ -1182,6 +1182,7 @@ void __init setup_arch(char **cmdline_p) +@@ -1184,6 +1184,7 @@ void __init setup_arch(char **cmdline_p) pr_info("Secure boot disabled\n"); break; case efi_secureboot_mode_enabled: @@ -42,13 +42,13 @@ index 94d34e0..6049600 100644 #ifdef CONFIG_EFI /* -- -2.7.4 +2.7.5 -From f05a90c19a9613d8d50597319ed91f691e25b689 Mon Sep 17 00:00:00 2001 +From 341507e80b888b5b587bdb60f0d95275dbbcad89 Mon Sep 17 00:00:00 2001 From: David Howells Date: Mon, 21 Nov 2016 23:36:17 +0000 -Subject: [PATCH 09/32] Add the ability to lock down access to the running - kernel image +Subject: [PATCH 09/32] Add the ability to lock down access to the running kernel + image Provide a single call to allow kernel code to determine whether the system should be locked down, thereby disallowing various accesses that might @@ -67,10 +67,10 @@ Signed-off-by: David Howells create mode 100644 security/lock_down.c diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index cb09238..3cd3be9 100644 +index 4c26dc3..b820a80 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h -@@ -273,6 +273,15 @@ extern int oops_may_print(void); +@@ -275,6 +275,15 @@ extern int oops_may_print(void); void do_exit(long error_code) __noreturn; void complete_and_exit(struct completion *, long) __noreturn; @@ -87,10 +87,10 @@ index cb09238..3cd3be9 100644 int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res); int __must_check _kstrtol(const char *s, unsigned int base, long *res); diff --git a/include/linux/security.h b/include/linux/security.h -index d3868f2..187b74b 100644 +index 96899fa..5808570 100644 --- a/include/linux/security.h +++ b/include/linux/security.h -@@ -1679,5 +1679,16 @@ static inline void free_secdata(void *secdata) +@@ -1678,5 +1678,16 @@ static inline void free_secdata(void *secdata) { } #endif /* CONFIG_SECURITY */ @@ -191,9 +191,9 @@ index 0000000..5788c60 +} +EXPORT_SYMBOL(kernel_is_locked_down); -- -2.7.4 +2.7.5 -From fb6feb38e297260d050fc477c72683ac51d07ae3 Mon Sep 17 00:00:00 2001 +From dfabd5c5acc95a2de69d44f794e6f1ce894fd3ff Mon Sep 17 00:00:00 2001 From: David Howells Date: Mon, 21 Nov 2016 23:55:55 +0000 Subject: [PATCH 10/32] efi: Lock down the kernel if booted in secure boot mode @@ -211,10 +211,10 @@ Signed-off-by: David Howells 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 874c123..a315974 100644 +index cc98d5a..21f3985 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -1816,6 +1816,18 @@ config EFI_MIXED +@@ -1817,6 +1817,18 @@ config EFI_MIXED If unsure, say N. @@ -234,7 +234,7 @@ index 874c123..a315974 100644 def_bool y prompt "Enable seccomp to safely compute untrusted bytecode" diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 447905e..d44e60e 100644 +index 396285b..85dfa74 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -69,6 +69,7 @@ @@ -245,7 +245,7 @@ index 447905e..d44e60e 100644 #include