From afc67e39c2a668c5252f7b30bf355752b07611ce Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 30 Jan 2017 14:52:23 +0100 Subject: [PATCH] 4.4-stable patches added patches: ib-umem-release-pid-in-error-and-odp-flow.patch mm-memcg-do-not-retry-precharge-charges.patch pinctrl-broxton-use-correct-padcfglock-offset.patch platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch s5k4ecgx-select-crc32-helper.patch --- ...em-release-pid-in-error-and-odp-flow.patch | 42 +++++++++++++++++ ...memcg-do-not-retry-precharge-charges.patch | 45 +++++++++++++++++++ ...roxton-use-correct-padcfglock-offset.patch | 32 +++++++++++++ ...6-intel_mid_powerbtn-set-irq_oneshot.patch | 34 ++++++++++++++ queue-4.4/s5k4ecgx-select-crc32-helper.patch | 37 +++++++++++++++ queue-4.4/series | 5 +++ 6 files changed, 195 insertions(+) create mode 100644 queue-4.4/ib-umem-release-pid-in-error-and-odp-flow.patch create mode 100644 queue-4.4/mm-memcg-do-not-retry-precharge-charges.patch create mode 100644 queue-4.4/pinctrl-broxton-use-correct-padcfglock-offset.patch create mode 100644 queue-4.4/platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch create mode 100644 queue-4.4/s5k4ecgx-select-crc32-helper.patch diff --git a/queue-4.4/ib-umem-release-pid-in-error-and-odp-flow.patch b/queue-4.4/ib-umem-release-pid-in-error-and-odp-flow.patch new file mode 100644 index 00000000000..6e99f9a83a1 --- /dev/null +++ b/queue-4.4/ib-umem-release-pid-in-error-and-odp-flow.patch @@ -0,0 +1,42 @@ +From 828f6fa65ce7e80f77f5ab12942e44eb3d9d174e Mon Sep 17 00:00:00 2001 +From: Kenneth Lee +Date: Thu, 5 Jan 2017 15:00:05 +0800 +Subject: IB/umem: Release pid in error and ODP flow + +From: Kenneth Lee + +commit 828f6fa65ce7e80f77f5ab12942e44eb3d9d174e upstream. + +1. Release pid before enter odp flow +2. Release pid when fail to allocate memory + +Fixes: 87773dd56d54 ("IB: ib_umem_release() should decrement mm->pinned_vm from ib_umem_get") +Fixes: 8ada2c1c0c1d ("IB/core: Add support for on demand paging regions") +Signed-off-by: Kenneth Lee +Reviewed-by: Haggai Eran +Reviewed-by: Leon Romanovsky +Signed-off-by: Doug Ledford +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/infiniband/core/umem.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/infiniband/core/umem.c ++++ b/drivers/infiniband/core/umem.c +@@ -134,6 +134,7 @@ struct ib_umem *ib_umem_get(struct ib_uc + IB_ACCESS_REMOTE_ATOMIC | IB_ACCESS_MW_BIND)); + + if (access & IB_ACCESS_ON_DEMAND) { ++ put_pid(umem->pid); + ret = ib_umem_odp_get(context, umem); + if (ret) { + kfree(umem); +@@ -149,6 +150,7 @@ struct ib_umem *ib_umem_get(struct ib_uc + + page_list = (struct page **) __get_free_page(GFP_KERNEL); + if (!page_list) { ++ put_pid(umem->pid); + kfree(umem); + return ERR_PTR(-ENOMEM); + } diff --git a/queue-4.4/mm-memcg-do-not-retry-precharge-charges.patch b/queue-4.4/mm-memcg-do-not-retry-precharge-charges.patch new file mode 100644 index 00000000000..deec3962537 --- /dev/null +++ b/queue-4.4/mm-memcg-do-not-retry-precharge-charges.patch @@ -0,0 +1,45 @@ +From 3674534b775354516e5c148ea48f51d4d1909a78 Mon Sep 17 00:00:00 2001 +From: David Rientjes +Date: Tue, 24 Jan 2017 15:18:10 -0800 +Subject: mm, memcg: do not retry precharge charges + +From: David Rientjes + +commit 3674534b775354516e5c148ea48f51d4d1909a78 upstream. + +When memory.move_charge_at_immigrate is enabled and precharges are +depleted during move, mem_cgroup_move_charge_pte_range() will attempt to +increase the size of the precharge. + +Prevent precharges from ever looping by setting __GFP_NORETRY. This was +probably the intention of the GFP_KERNEL & ~__GFP_NORETRY, which is +pointless as written. + +Fixes: 0029e19ebf84 ("mm: memcontrol: remove explicit OOM parameter in charge path") +Link: http://lkml.kernel.org/r/alpine.DEB.2.10.1701130208510.69402@chino.kir.corp.google.com +Signed-off-by: David Rientjes +Acked-by: Michal Hocko +Cc: Johannes Weiner +Cc: Vladimir Davydov +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + mm/memcontrol.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/mm/memcontrol.c ++++ b/mm/memcontrol.c +@@ -4496,9 +4496,9 @@ static int mem_cgroup_do_precharge(unsig + return ret; + } + +- /* Try charges one by one with reclaim */ ++ /* Try charges one by one with reclaim, but do not retry */ + while (count--) { +- ret = try_charge(mc.to, GFP_KERNEL & ~__GFP_NORETRY, 1); ++ ret = try_charge(mc.to, GFP_KERNEL | __GFP_NORETRY, 1); + if (ret) + return ret; + mc.precharge++; diff --git a/queue-4.4/pinctrl-broxton-use-correct-padcfglock-offset.patch b/queue-4.4/pinctrl-broxton-use-correct-padcfglock-offset.patch new file mode 100644 index 00000000000..e6467afee8c --- /dev/null +++ b/queue-4.4/pinctrl-broxton-use-correct-padcfglock-offset.patch @@ -0,0 +1,32 @@ +From ecc8995363ee6231b32dad61c955b371b79cc4cf Mon Sep 17 00:00:00 2001 +From: Mika Westerberg +Date: Tue, 10 Jan 2017 17:31:56 +0300 +Subject: pinctrl: broxton: Use correct PADCFGLOCK offset + +From: Mika Westerberg + +commit ecc8995363ee6231b32dad61c955b371b79cc4cf upstream. + +PADCFGLOCK (and PADCFGLOCK_TX) offset in Broxton actually starts at 0x060 +and not 0x090 as used in the driver. Fix it to use the correct offset. + +Signed-off-by: Mika Westerberg +Reviewed-by: Andy Shevchenko +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pinctrl/intel/pinctrl-broxton.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pinctrl/intel/pinctrl-broxton.c ++++ b/drivers/pinctrl/intel/pinctrl-broxton.c +@@ -19,7 +19,7 @@ + + #define BXT_PAD_OWN 0x020 + #define BXT_HOSTSW_OWN 0x080 +-#define BXT_PADCFGLOCK 0x090 ++#define BXT_PADCFGLOCK 0x060 + #define BXT_GPI_IE 0x110 + + #define BXT_COMMUNITY(s, e) \ diff --git a/queue-4.4/platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch b/queue-4.4/platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch new file mode 100644 index 00000000000..9062cac23a0 --- /dev/null +++ b/queue-4.4/platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch @@ -0,0 +1,34 @@ +From 5a00b6c2438460b870a451f14593fc40d3c7edf6 Mon Sep 17 00:00:00 2001 +From: Andy Shevchenko +Date: Thu, 19 Jan 2017 18:39:40 +0200 +Subject: platform/x86: intel_mid_powerbtn: Set IRQ_ONESHOT + +From: Andy Shevchenko + +commit 5a00b6c2438460b870a451f14593fc40d3c7edf6 upstream. + +The commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") +starts refusing misconfigured interrupt handlers. This makes +intel_mid_powerbtn not working anymore. + +Add a mandatory flag to a threaded IRQ request in the driver. + +Fixes: 1c6c69525b40 ("genirq: Reject bogus threaded irq requests") +Signed-off-by: Andy Shevchenko +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/intel_mid_powerbtn.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/platform/x86/intel_mid_powerbtn.c ++++ b/drivers/platform/x86/intel_mid_powerbtn.c +@@ -77,7 +77,7 @@ static int mfld_pb_probe(struct platform + + input_set_capability(input, EV_KEY, KEY_POWER); + +- error = request_threaded_irq(irq, NULL, mfld_pb_isr, 0, ++ error = request_threaded_irq(irq, NULL, mfld_pb_isr, IRQF_ONESHOT, + DRIVER_NAME, input); + if (error) { + dev_err(&pdev->dev, "Unable to request irq %d for mfld power" diff --git a/queue-4.4/s5k4ecgx-select-crc32-helper.patch b/queue-4.4/s5k4ecgx-select-crc32-helper.patch new file mode 100644 index 00000000000..7e76c6f03b2 --- /dev/null +++ b/queue-4.4/s5k4ecgx-select-crc32-helper.patch @@ -0,0 +1,37 @@ +From c739c0a7c3c2472d7562b8f802cdce44d2597c8b Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Fri, 9 Dec 2016 09:41:29 -0200 +Subject: [media] s5k4ecgx: select CRC32 helper + +From: Arnd Bergmann + +commit c739c0a7c3c2472d7562b8f802cdce44d2597c8b upstream. + +A rare randconfig build failure shows up in this driver when +the CRC32 helper is not there: + +drivers/media/built-in.o: In function `s5k4ecgx_s_power': +s5k4ecgx.c:(.text+0x9eb4): undefined reference to `crc32_le' + +This adds the 'select' that all other users of this function have. + +Fixes: 8b99312b7214 ("[media] Add v4l2 subdev driver for S5K4ECGX sensor") + +Signed-off-by: Arnd Bergmann +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/i2c/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/media/i2c/Kconfig ++++ b/drivers/media/i2c/Kconfig +@@ -607,6 +607,7 @@ config VIDEO_S5K6A3 + config VIDEO_S5K4ECGX + tristate "Samsung S5K4ECGX sensor support" + depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API ++ select CRC32 + ---help--- + This is a V4L2 sensor-level driver for Samsung S5K4ECGX 5M + camera sensor with an embedded SoC image signal processor. diff --git a/queue-4.4/series b/queue-4.4/series index 794d361e67a..12f670ad4ef 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -16,3 +16,8 @@ nfsv4.0-always-send-mode-in-setattr-after-exclusive4.patch sunrpc-cleanup-ida-information-when-removing-sunrpc-module.patch drm-i915-don-t-leak-edid-in-intel_crt_detect_ddc.patch ib-ipoib-move-back-ib-ll-address-into-the-hard-header.patch +ib-umem-release-pid-in-error-and-odp-flow.patch +s5k4ecgx-select-crc32-helper.patch +pinctrl-broxton-use-correct-padcfglock-offset.patch +platform-x86-intel_mid_powerbtn-set-irq_oneshot.patch +mm-memcg-do-not-retry-precharge-charges.patch -- 2.47.3