--- /dev/null
+From aac4619d028e2c444ac1217fc2d05b0322079dff Mon Sep 17 00:00:00 2001
+From: Keerthy <j-keerthy@ti.com>
+Date: Tue, 24 Oct 2017 14:14:08 +0530
+Subject: ARM: dts: DRA76-EVM: Set powerhold property for tps65917
+
+From: Keerthy <j-keerthy@ti.com>
+
+commit aac4619d028e2c444ac1217fc2d05b0322079dff upstream.
+
+Set powerhold property for tps65917
+
+Signed-off-by: Keerthy <j-keerthy@ti.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/dra76-evm.dts | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm/boot/dts/dra76-evm.dts
++++ b/arch/arm/boot/dts/dra76-evm.dts
+@@ -148,6 +148,7 @@
+ compatible = "ti,tps65917";
+ reg = <0x58>;
+ ti,system-power-controller;
++ ti,palmas-override-powerhold;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
--- /dev/null
+From 5811375325420052fcadd944792a416a43072b7f Mon Sep 17 00:00:00 2001
+From: Liu Bo <bo.li.liu@oracle.com>
+Date: Wed, 31 Jan 2018 17:09:13 -0700
+Subject: Btrfs: fix unexpected cow in run_delalloc_nocow
+
+From: Liu Bo <bo.li.liu@oracle.com>
+
+commit 5811375325420052fcadd944792a416a43072b7f upstream.
+
+Fstests generic/475 provides a way to fail metadata reads while
+checking if checksum exists for the inode inside run_delalloc_nocow(),
+and csum_exist_in_range() interprets error (-EIO) as inode having
+checksum and makes its caller enter the cow path.
+
+In case of free space inode, this ends up with a warning in
+cow_file_range().
+
+The same problem applies to btrfs_cross_ref_exist() since it may also
+read metadata in between.
+
+With this, run_delalloc_nocow() bails out when errors occur at the two
+places.
+
+cc: <stable@vger.kernel.org> v2.6.28+
+Fixes: 17d217fe970d ("Btrfs: fix nodatasum handling in balancing code")
+Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/btrfs/inode.c | 37 ++++++++++++++++++++++++++++++++-----
+ 1 file changed, 32 insertions(+), 5 deletions(-)
+
+--- a/fs/btrfs/inode.c
++++ b/fs/btrfs/inode.c
+@@ -1257,6 +1257,8 @@ static noinline int csum_exist_in_range(
+ list_del(&sums->list);
+ kfree(sums);
+ }
++ if (ret < 0)
++ return ret;
+ return 1;
+ }
+
+@@ -1389,10 +1391,23 @@ next_slot:
+ goto out_check;
+ if (btrfs_extent_readonly(fs_info, disk_bytenr))
+ goto out_check;
+- if (btrfs_cross_ref_exist(root, ino,
+- found_key.offset -
+- extent_offset, disk_bytenr))
++ ret = btrfs_cross_ref_exist(root, ino,
++ found_key.offset -
++ extent_offset, disk_bytenr);
++ if (ret) {
++ /*
++ * ret could be -EIO if the above fails to read
++ * metadata.
++ */
++ if (ret < 0) {
++ if (cow_start != (u64)-1)
++ cur_offset = cow_start;
++ goto error;
++ }
++
++ WARN_ON_ONCE(nolock);
+ goto out_check;
++ }
+ disk_bytenr += extent_offset;
+ disk_bytenr += cur_offset - found_key.offset;
+ num_bytes = min(end + 1, extent_end) - cur_offset;
+@@ -1410,10 +1425,22 @@ next_slot:
+ * this ensure that csum for a given extent are
+ * either valid or do not exist.
+ */
+- if (csum_exist_in_range(fs_info, disk_bytenr,
+- num_bytes)) {
++ ret = csum_exist_in_range(fs_info, disk_bytenr,
++ num_bytes);
++ if (ret) {
+ if (!nolock)
+ btrfs_end_write_no_snapshotting(root);
++
++ /*
++ * ret could be -EIO if the above fails to read
++ * metadata.
++ */
++ if (ret < 0) {
++ if (cow_start != (u64)-1)
++ cur_offset = cow_start;
++ goto error;
++ }
++ WARN_ON_ONCE(nolock);
+ goto out_check;
+ }
+ if (!btrfs_inc_nocow_writers(fs_info, disk_bytenr)) {
--- /dev/null
+From bd5c4facf59648581d2f1692dad7b107bf429954 Mon Sep 17 00:00:00 2001
+From: Mikulas Patocka <mpatocka@redhat.com>
+Date: Wed, 21 Mar 2018 12:49:29 -0400
+Subject: Fix slab name "biovec-(1<<(21-12))"
+
+From: Mikulas Patocka <mpatocka@redhat.com>
+
+commit bd5c4facf59648581d2f1692dad7b107bf429954 upstream.
+
+I'm getting a slab named "biovec-(1<<(21-12))". It is caused by unintended
+expansion of the macro BIO_MAX_PAGES. This patch renames it to biovec-max.
+
+Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
+Cc: stable@vger.kernel.org # v4.14+
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ block/bio.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/block/bio.c
++++ b/block/bio.c
+@@ -43,9 +43,9 @@
+ * break badly! cannot be bigger than what you can fit into an
+ * unsigned short
+ */
+-#define BV(x) { .nr_vecs = x, .name = "biovec-"__stringify(x) }
++#define BV(x, n) { .nr_vecs = x, .name = "biovec-"#n }
+ static struct biovec_slab bvec_slabs[BVEC_POOL_NR] __read_mostly = {
+- BV(1), BV(4), BV(16), BV(64), BV(128), BV(BIO_MAX_PAGES),
++ BV(1, 1), BV(4, 4), BV(16, 16), BV(64, 64), BV(128, 128), BV(BIO_MAX_PAGES, max),
+ };
+ #undef BV
+
--- /dev/null
+From 567b9b549cfa1cbc202762ae97b5385c29ade1e3 Mon Sep 17 00:00:00 2001
+From: Masaki Ota <masaki.ota@jp.alps.com>
+Date: Mon, 29 Jan 2018 14:36:54 -0800
+Subject: Input: ALPS - fix TrackStick detection on Thinkpad L570 and Latitude 7370
+
+From: Masaki Ota <masaki.ota@jp.alps.com>
+
+commit 567b9b549cfa1cbc202762ae97b5385c29ade1e3 upstream.
+
+The primary interface for the touchpad device in Thinkpad L570 is SMBus,
+so ALPS overlooked PS2 interface Firmware setting of TrackStick, and
+shipped with TrackStick otp bit is disabled.
+
+The address 0xD7 contains device number information, so we can identify
+the device by checking this value, but to access it we need to enable
+Command mode, and then re-enable the device. Devices shipped in Thinkpad
+L570 report either 0x0C or 0x1D as device numbers, if we see them we assume
+that the devices are DualPoints.
+
+The same issue exists on Dell Latitude 7370.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196929
+Fixes: 646580f793 ("Input: ALPS - fix multi-touch decoding on SS4 plus touchpads")
+Signed-off-by: Masaki Ota <masaki.ota@jp.alps.com>
+Tested-by: Aaron Ma <aaron.ma@canonical.com>
+Tested-by: Jonathan Liu <net147@gmail.com>
+Tested-by: Jaak Ristioja <jaak@ristioja.ee>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/alps.c | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+--- a/drivers/input/mouse/alps.c
++++ b/drivers/input/mouse/alps.c
+@@ -2544,13 +2544,31 @@ static int alps_update_btn_info_ss4_v2(u
+ }
+
+ static int alps_update_dual_info_ss4_v2(unsigned char otp[][4],
+- struct alps_data *priv)
++ struct alps_data *priv,
++ struct psmouse *psmouse)
+ {
+ bool is_dual = false;
++ int reg_val = 0;
++ struct ps2dev *ps2dev = &psmouse->ps2dev;
+
+- if (IS_SS4PLUS_DEV(priv->dev_id))
++ if (IS_SS4PLUS_DEV(priv->dev_id)) {
+ is_dual = (otp[0][0] >> 4) & 0x01;
+
++ if (!is_dual) {
++ /* For support TrackStick of Thinkpad L/E series */
++ if (alps_exit_command_mode(psmouse) == 0 &&
++ alps_enter_command_mode(psmouse) == 0) {
++ reg_val = alps_command_mode_read_reg(psmouse,
++ 0xD7);
++ }
++ alps_exit_command_mode(psmouse);
++ ps2_command(ps2dev, NULL, PSMOUSE_CMD_ENABLE);
++
++ if (reg_val == 0x0C || reg_val == 0x1D)
++ is_dual = true;
++ }
++ }
++
+ if (is_dual)
+ priv->flags |= ALPS_DUALPOINT |
+ ALPS_DUALPOINT_WITH_PRESSURE;
+@@ -2573,7 +2591,7 @@ static int alps_set_defaults_ss4_v2(stru
+
+ alps_update_btn_info_ss4_v2(otp, priv);
+
+- alps_update_dual_info_ss4_v2(otp, priv);
++ alps_update_dual_info_ss4_v2(otp, priv, psmouse);
+
+ return 0;
+ }
--- /dev/null
+From b56af54ac78c54a519d82813836f305d7f76ef27 Mon Sep 17 00:00:00 2001
+From: Dennis Wassenberg <dennis.wassenberg@secunet.com>
+Date: Thu, 8 Mar 2018 15:32:09 -0800
+Subject: Input: i8042 - add Lenovo ThinkPad L460 to i8042 reset list
+
+From: Dennis Wassenberg <dennis.wassenberg@secunet.com>
+
+commit b56af54ac78c54a519d82813836f305d7f76ef27 upstream.
+
+Reset i8042 before probing because of insufficient BIOS initialisation of
+the i8042 serial controller. This makes Synaptics touchpad detection
+possible. Without resetting the Synaptics touchpad is not detected because
+there are always NACK messages from AUX port.
+
+Signed-off-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -621,6 +621,13 @@ static const struct dmi_system_id __init
+ },
+ },
+ {
++ /* Lenovo ThinkPad L460 */
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L460"),
++ },
++ },
++ {
+ /* Clevo P650RS, 650RP6, Sager NP8152-S, and others */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
--- /dev/null
+From 04bb1719c4de94700056241d4c0fe3c1413f5aff Mon Sep 17 00:00:00 2001
+From: Ondrej Zary <linux@rainbow-software.org>
+Date: Tue, 3 Apr 2018 10:24:34 -0700
+Subject: Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
+
+From: Ondrej Zary <linux@rainbow-software.org>
+
+commit 04bb1719c4de94700056241d4c0fe3c1413f5aff upstream.
+
+The touch sensor buttons on Sony VAIO VGN-CS series laptops (e.g.
+VGN-CS31S) are a separate PS/2 device. As the MUX is disabled for all
+VAIO machines by the nomux blacklist, the data from touch sensor
+buttons and touchpad are combined. The protocol used by the buttons is
+probably similar to the touchpad protocol (both are Synaptics) so both
+devices get enabled. The controller combines the data, creating a mess
+which results in random button clicks, touchpad stopping working and
+lost sync error messages:
+psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 4
+psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
+psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
+psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
+psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
+psmouse serio1: issuing reconnect request
+
+Add a new i8042_dmi_forcemux_table whitelist with VGN-CS.
+With MUX enabled, touch sensor buttons are detected as separate device
+(and left disabled as there's currently no driver), fixing all touchpad
+problems.
+
+Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -530,6 +530,20 @@ static const struct dmi_system_id __init
+ { }
+ };
+
++static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
++ {
++ /*
++ * Sony Vaio VGN-CS series require MUX or the touch sensor
++ * buttons will disturb touchpad operation
++ */
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
++ },
++ },
++ { }
++};
++
+ /*
+ * On some Asus laptops, just running self tests cause problems.
+ */
+@@ -1170,6 +1184,9 @@ static int __init i8042_platform_init(vo
+ if (dmi_check_system(i8042_dmi_nomux_table))
+ i8042_nomux = true;
+
++ if (dmi_check_system(i8042_dmi_forcemux_table))
++ i8042_nomux = false;
++
+ if (dmi_check_system(i8042_dmi_notimeout_table))
+ i8042_notimeout = true;
+
--- /dev/null
+From d61d263c8d82db7c4404a29ebc29674b1c0c05c9 Mon Sep 17 00:00:00 2001
+From: Matthias Brugger <matthias.bgg@gmail.com>
+Date: Thu, 15 Mar 2018 17:54:20 +0100
+Subject: net: hns: Fix ethtool private flags
+
+From: Matthias Brugger <matthias.bgg@gmail.com>
+
+commit d61d263c8d82db7c4404a29ebc29674b1c0c05c9 upstream.
+
+The driver implementation returns support for private flags, while
+no private flags are present. When asked for the number of private
+flags it returns the number of statistic flag names.
+
+Fix this by returning EOPNOTSUPP for not implemented ethtool flags.
+
+Signed-off-by: Matthias Brugger <mbrugger@suse.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c | 2 +-
+ drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c | 2 +-
+ drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c | 2 +-
+ drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 4 +++-
+ 4 files changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c
++++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_gmac.c
+@@ -666,7 +666,7 @@ static void hns_gmac_get_strings(u32 str
+
+ static int hns_gmac_get_sset_count(int stringset)
+ {
+- if (stringset == ETH_SS_STATS || stringset == ETH_SS_PRIV_FLAGS)
++ if (stringset == ETH_SS_STATS)
+ return ARRAY_SIZE(g_gmac_stats_string);
+
+ return 0;
+--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
++++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_ppe.c
+@@ -422,7 +422,7 @@ void hns_ppe_update_stats(struct hns_ppe
+
+ int hns_ppe_get_sset_count(int stringset)
+ {
+- if (stringset == ETH_SS_STATS || stringset == ETH_SS_PRIV_FLAGS)
++ if (stringset == ETH_SS_STATS)
+ return ETH_PPE_STATIC_NUM;
+ return 0;
+ }
+--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
++++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_rcb.c
+@@ -876,7 +876,7 @@ void hns_rcb_get_stats(struct hnae_queue
+ */
+ int hns_rcb_get_ring_sset_count(int stringset)
+ {
+- if (stringset == ETH_SS_STATS || stringset == ETH_SS_PRIV_FLAGS)
++ if (stringset == ETH_SS_STATS)
+ return HNS_RING_STATIC_REG_NUM;
+
+ return 0;
+--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
++++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+@@ -993,8 +993,10 @@ int hns_get_sset_count(struct net_device
+ cnt--;
+
+ return cnt;
+- } else {
++ } else if (stringset == ETH_SS_STATS) {
+ return (HNS_NET_STATS_CNT + ops->get_sset_count(h, stringset));
++ } else {
++ return -EOPNOTSUPP;
+ }
+ }
+
--- /dev/null
+From 9de9a449482677a75f1edd2049268a7efc40fc96 Mon Sep 17 00:00:00 2001
+From: Gaku Inami <gaku.inami.xh@renesas.com>
+Date: Tue, 13 Feb 2018 11:06:40 +0900
+Subject: Revert "base: arch_topology: fix section mismatch build warnings"
+
+From: Gaku Inami <gaku.inami.xh@renesas.com>
+
+commit 9de9a449482677a75f1edd2049268a7efc40fc96 upstream.
+
+This reverts commit 452562abb5b7 ("base: arch_topology: fix section
+mismatch build warnings"). It causes the notifier call hangs in some
+use-cases.
+
+In some cases with using maxcpus, some of cpus are booted first and
+then the remaining cpus are booted. As an example, some users who want
+to realize fast boot up often use the following procedure.
+
+ 1) Define all CPUs on device tree (CA57x4 + CA53x4)
+ 2) Add "maxcpus=4" in bootargs
+ 3) Kernel boot up with CA57x4
+ 4) After kernel boot up, CA53x4 is booted from user
+
+When kernel init was finished, CPUFREQ_POLICY_NOTIFIER was not still
+unregisterd. This means that "__init init_cpu_capacity_callback()"
+will be called after kernel init sequence. To avoid this problem,
+it needs to remove __init{,data} annotations by reverting this commit.
+
+Also, this commit was needed to fix kernel compile issue below.
+However, this issue was also fixed by another patch: commit 82d8ba717ccb
+("arch_topology: Fix section miss match warning due to
+free_raw_capacity()") in v4.15 as well.
+Whereas commit 452562abb5b7 added all the missing __init annotations,
+commit 82d8ba717ccb removed it from free_raw_capacity().
+
+WARNING: vmlinux.o(.text+0x548f24): Section mismatch in reference
+from the function init_cpu_capacity_callback() to the variable
+.init.text:$x
+The function init_cpu_capacity_callback() references
+the variable __init $x.
+This is often because init_cpu_capacity_callback lacks a __init
+annotation or the annotation of $x is wrong.
+
+Fixes: 82d8ba717ccb ("arch_topology: Fix section miss match warning due to free_raw_capacity()")
+Cc: stable <stable@vger.kernel.org>
+Signed-off-by: Gaku Inami <gaku.inami.xh@renesas.com>
+Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
+Tested-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
+Acked-by: Sudeep Holla <sudeep.holla@arm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/base/arch_topology.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/drivers/base/arch_topology.c
++++ b/drivers/base/arch_topology.c
+@@ -166,11 +166,11 @@ bool __init topology_parse_cpu_capacity(
+ }
+
+ #ifdef CONFIG_CPU_FREQ
+-static cpumask_var_t cpus_to_visit __initdata;
+-static void __init parsing_done_workfn(struct work_struct *work);
+-static __initdata DECLARE_WORK(parsing_done_work, parsing_done_workfn);
++static cpumask_var_t cpus_to_visit;
++static void parsing_done_workfn(struct work_struct *work);
++static DECLARE_WORK(parsing_done_work, parsing_done_workfn);
+
+-static int __init
++static int
+ init_cpu_capacity_callback(struct notifier_block *nb,
+ unsigned long val,
+ void *data)
+@@ -206,7 +206,7 @@ init_cpu_capacity_callback(struct notifi
+ return 0;
+ }
+
+-static struct notifier_block init_cpu_capacity_notifier __initdata = {
++static struct notifier_block init_cpu_capacity_notifier = {
+ .notifier_call = init_cpu_capacity_callback,
+ };
+
+@@ -232,7 +232,7 @@ static int __init register_cpufreq_notif
+ }
+ core_initcall(register_cpufreq_notifier);
+
+-static void __init parsing_done_workfn(struct work_struct *work)
++static void parsing_done_workfn(struct work_struct *work)
+ {
+ cpufreq_unregister_notifier(&init_cpu_capacity_notifier,
+ CPUFREQ_POLICY_NOTIFIER);
crypto-ccp-return-an-actual-key-size-from-rsa-max_size-callback.patch
crypto-arm-arm64-fix-random-regeneration-of-s_shipped.patch
crypto-x86-cast5-avx-fix-ecb-encryption-when-long-sg-follows-short-one.patch
+btrfs-fix-unexpected-cow-in-run_delalloc_nocow.patch
+staging-comedi-ni_mio_common-ack-ai-fifo-error-interrupts.patch
+revert-base-arch_topology-fix-section-mismatch-build-warnings.patch
+input-alps-fix-trackstick-detection-on-thinkpad-l570-and-latitude-7370.patch
+input-i8042-add-lenovo-thinkpad-l460-to-i8042-reset-list.patch
+input-i8042-enable-mux-on-sony-vaio-vgn-cs-series-to-fix-touchpad.patch
+vt-change-sgr-21-to-follow-the-standards.patch
+arm-dts-dra76-evm-set-powerhold-property-for-tps65917.patch
+net-hns-fix-ethtool-private-flags.patch
+fix-slab-name-biovec-1-21-12.patch
--- /dev/null
+From e1d9fc04c41840a4688ef6ce90b6dcca157ea4d7 Mon Sep 17 00:00:00 2001
+From: Frank Mori Hess <fmh6jj@gmail.com>
+Date: Thu, 15 Mar 2018 10:25:44 +0000
+Subject: staging: comedi: ni_mio_common: ack ai fifo error interrupts.
+
+From: Frank Mori Hess <fmh6jj@gmail.com>
+
+commit e1d9fc04c41840a4688ef6ce90b6dcca157ea4d7 upstream.
+
+Ack ai fifo error interrupts in interrupt handler to clear interrupt
+after fifo overflow. It should prevent lock-ups after the ai fifo
+overflows.
+
+Cc: <stable@vger.kernel.org> # v4.2+
+Signed-off-by: Frank Mori Hess <fmh6jj@gmail.com>
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/comedi/drivers/ni_mio_common.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/staging/comedi/drivers/ni_mio_common.c
++++ b/drivers/staging/comedi/drivers/ni_mio_common.c
+@@ -1284,6 +1284,8 @@ static void ack_a_interrupt(struct comed
+ ack |= NISTC_INTA_ACK_AI_START;
+ if (a_status & NISTC_AI_STATUS1_STOP)
+ ack |= NISTC_INTA_ACK_AI_STOP;
++ if (a_status & NISTC_AI_STATUS1_OVER)
++ ack |= NISTC_INTA_ACK_AI_ERR;
+ if (ack)
+ ni_stc_writew(dev, ack, NISTC_INTA_ACK_REG);
+ }
--- /dev/null
+From 65d9982d7e523a1a8e7c9af012da0d166f72fc56 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@chromium.org>
+Date: Mon, 29 Jan 2018 17:08:21 -0500
+Subject: vt: change SGR 21 to follow the standards
+
+From: Mike Frysinger <vapier@chromium.org>
+
+commit 65d9982d7e523a1a8e7c9af012da0d166f72fc56 upstream.
+
+ECMA-48 [1] (aka ISO 6429) has defined SGR 21 as "doubly underlined"
+since at least March 1984. The Linux kernel has treated it as SGR 22
+"normal intensity" since it was added in Linux-0.96b in June 1992.
+Before that, it was simply ignored. Other terminal emulators have
+either ignored it, or treat it as double underline now. xterm for
+example added support in its 304 release (May 2014) [2] where it was
+previously ignoring it.
+
+Changing this behavior shouldn't be an issue:
+- It isn't a named capability in ncurses's terminfo database, so no
+ script is using libtinfo/libcurses to look this up, or using tput
+ to query & output the right sequence.
+- Any script assuming SGR 21 will reset intensity in all terminals
+ already do not work correctly on non-Linux VTs (including running
+ under screen/tmux/etc...).
+- If someone has written a script that only runs in the Linux VT, and
+ they're using SGR 21 (instead of SGR 22), the output should still
+ be readable.
+
+imo it's important to change this as the Linux VT's non-conformance
+is sometimes used as an argument for other terminal emulators to not
+implement SGR 21 at all, or do so incorrectly.
+
+[1]: https://www.ecma-international.org/publications/standards/Ecma-048.htm
+[2]: https://github.com/ThomasDickey/xterm-snapshots/commit/2fd29cb98d214cb536bcafbee00bc73b3f1eeb9d
+
+Signed-off-by: Mike Frysinger <vapier@chromium.org>
+Cc: stable <stable@vger.kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/tty/vt/vt.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/tty/vt/vt.c
++++ b/drivers/tty/vt/vt.c
+@@ -1352,6 +1352,11 @@ static void csi_m(struct vc_data *vc)
+ case 3:
+ vc->vc_italic = 1;
+ break;
++ case 21:
++ /*
++ * No console drivers support double underline, so
++ * convert it to a single underline.
++ */
+ case 4:
+ vc->vc_underline = 1;
+ break;
+@@ -1387,7 +1392,6 @@ static void csi_m(struct vc_data *vc)
+ vc->vc_disp_ctrl = 1;
+ vc->vc_toggle_meta = 1;
+ break;
+- case 21:
+ case 22:
+ vc->vc_intensity = 1;
+ break;