--- /dev/null
+From 79435ac78d160e4c245544d457850a56f805ac0d Mon Sep 17 00:00:00 2001
+From: Vineet Gupta <vgupta@synopsys.com>
+Date: Fri, 8 Dec 2017 08:26:58 -0800
+Subject: ARC: uaccess: dont use "l" gcc inline asm constraint modifier
+
+From: Vineet Gupta <vgupta@synopsys.com>
+
+commit 79435ac78d160e4c245544d457850a56f805ac0d upstream.
+
+This used to setup the LP_COUNT register automatically, but now has been
+removed.
+
+There was an earlier fix 3c7c7a2fc8811 which fixed instance in delay.h but
+somehow missed this one as gcc change had not made its way into
+production toolchains and was not pedantic as it is now !
+
+Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arc/include/asm/uaccess.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/arch/arc/include/asm/uaccess.h
++++ b/arch/arc/include/asm/uaccess.h
+@@ -673,6 +673,7 @@ __arc_strncpy_from_user(char *dst, const
+ return 0;
+
+ __asm__ __volatile__(
++ " mov lp_count, %5 \n"
+ " lp 3f \n"
+ "1: ldb.ab %3, [%2, 1] \n"
+ " breq.d %3, 0, 3f \n"
+@@ -689,8 +690,8 @@ __arc_strncpy_from_user(char *dst, const
+ " .word 1b, 4b \n"
+ " .previous \n"
+ : "+r"(res), "+r"(dst), "+r"(src), "=r"(val)
+- : "g"(-EFAULT), "l"(count)
+- : "memory");
++ : "g"(-EFAULT), "r"(count)
++ : "lp_count", "lp_start", "lp_end", "memory");
+
+ return res;
+ }
--- /dev/null
+From 10d900303f1c3a821eb0bef4e7b7ece16768fba4 Mon Sep 17 00:00:00 2001
+From: Aaron Ma <aaron.ma@canonical.com>
+Date: Sat, 25 Nov 2017 16:48:41 -0800
+Subject: Input: elantech - add new icbody type 15
+
+From: Aaron Ma <aaron.ma@canonical.com>
+
+commit 10d900303f1c3a821eb0bef4e7b7ece16768fba4 upstream.
+
+The touchpad of Lenovo Thinkpad L480 reports it's version as 15.
+
+Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/elantech.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/input/mouse/elantech.c
++++ b/drivers/input/mouse/elantech.c
+@@ -1609,7 +1609,7 @@ static int elantech_set_properties(struc
+ case 5:
+ etd->hw_version = 3;
+ break;
+- case 6 ... 14:
++ case 6 ... 15:
+ etd->hw_version = 4;
+ break;
+ default:
--- /dev/null
+From 563b5cbe334e9503ab2b234e279d500fc4f76018 Mon Sep 17 00:00:00 2001
+From: Robin Murphy <robin.murphy@arm.com>
+Date: Tue, 2 Jan 2018 12:33:14 +0000
+Subject: iommu/arm-smmu-v3: Cope with duplicated Stream IDs
+
+From: Robin Murphy <robin.murphy@arm.com>
+
+commit 563b5cbe334e9503ab2b234e279d500fc4f76018 upstream.
+
+For PCI devices behind an aliasing PCIe-to-PCI/X bridge, the bridge
+alias to DevFn 0.0 on the subordinate bus may match the original RID of
+the device, resulting in the same SID being present in the device's
+fwspec twice. This causes trouble later in arm_smmu_write_strtab_ent()
+when we wind up visiting the STE a second time and find it already live.
+
+Avoid the issue by giving arm_smmu_install_ste_for_dev() the cleverness
+to skip over duplicates. It seems mildly counterintuitive compared to
+preventing the duplicates from existing in the first place, but since
+the DT and ACPI probe paths build their fwspecs differently, this is
+actually the cleanest and most self-contained way to deal with it.
+
+Fixes: 8f78515425da ("iommu/arm-smmu: Implement of_xlate() for SMMUv3")
+Reported-by: Tomasz Nowicki <tomasz.nowicki@caviumnetworks.com>
+Tested-by: Tomasz Nowicki <Tomasz.Nowicki@cavium.com>
+Tested-by: Jayachandran C. <jnair@caviumnetworks.com>
+Signed-off-by: Robin Murphy <robin.murphy@arm.com>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iommu/arm-smmu-v3.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/iommu/arm-smmu-v3.c
++++ b/drivers/iommu/arm-smmu-v3.c
+@@ -1582,7 +1582,7 @@ static __le64 *arm_smmu_get_step_for_sid
+
+ static int arm_smmu_install_ste_for_dev(struct iommu_fwspec *fwspec)
+ {
+- int i;
++ int i, j;
+ struct arm_smmu_master_data *master = fwspec->iommu_priv;
+ struct arm_smmu_device *smmu = master->smmu;
+
+@@ -1590,6 +1590,13 @@ static int arm_smmu_install_ste_for_dev(
+ u32 sid = fwspec->ids[i];
+ __le64 *step = arm_smmu_get_step_for_sid(smmu, sid);
+
++ /* Bridged PCI devices may end up with duplicated IDs */
++ for (j = 0; j < i; j++)
++ if (fwspec->ids[j] == sid)
++ break;
++ if (j < i)
++ continue;
++
+ arm_smmu_write_strtab_ent(smmu, sid, step, &master->ste);
+ }
+
--- /dev/null
+From 57d72e159b60456c8bb281736c02ddd3164037aa Mon Sep 17 00:00:00 2001
+From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
+Date: Thu, 14 Dec 2017 11:03:01 +0000
+Subject: iommu/arm-smmu-v3: Don't free page table ops twice
+
+From: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
+
+commit 57d72e159b60456c8bb281736c02ddd3164037aa upstream.
+
+Kasan reports a double free when finalise_stage_fn fails: the io_pgtable
+ops are freed by arm_smmu_domain_finalise and then again by
+arm_smmu_domain_free. Prevent this by leaving pgtbl_ops empty on failure.
+
+Fixes: 48ec83bcbcf5 ("iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices")
+Reviewed-by: Robin Murphy <robin.murphy@arm.com>
+Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iommu/arm-smmu-v3.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/drivers/iommu/arm-smmu-v3.c
++++ b/drivers/iommu/arm-smmu-v3.c
+@@ -1547,13 +1547,15 @@ static int arm_smmu_domain_finalise(stru
+ domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
+ domain->geometry.aperture_end = (1UL << ias) - 1;
+ domain->geometry.force_aperture = true;
+- smmu_domain->pgtbl_ops = pgtbl_ops;
+
+ ret = finalise_stage_fn(smmu_domain, &pgtbl_cfg);
+- if (ret < 0)
++ if (ret < 0) {
+ free_io_pgtable_ops(pgtbl_ops);
++ return ret;
++ }
+
+- return ret;
++ smmu_domain->pgtbl_ops = pgtbl_ops;
++ return 0;
+ }
+
+ static __le64 *arm_smmu_get_step_for_sid(struct arm_smmu_device *smmu, u32 sid)
kernel-signal.c-protect-the-traced-signal_unkillable-tasks-from-sigkill.patch
kernel-signal.c-protect-the-signal_unkillable-tasks-from-sig_kernel_only-signals.patch
kernel-signal.c-remove-the-no-longer-needed-signal_unkillable-check-in-complete_signal.patch
+iommu-arm-smmu-v3-don-t-free-page-table-ops-twice.patch
+iommu-arm-smmu-v3-cope-with-duplicated-stream-ids.patch
+arc-uaccess-dont-use-l-gcc-inline-asm-constraint-modifier.patch
+input-elantech-add-new-icbody-type-15.patch