]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Nov 2017 17:24:23 +0000 (18:24 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Nov 2017 17:24:23 +0000 (18:24 +0100)
added patches:
adv7604-initialize-drive-strength-to-default-when-using-dt.patch
arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch
arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch
crypto-vmx-disable-preemption-to-enable-vsx-in-aes_ctr.c.patch
drm-drm_minor_register-clean-up-debugfs-on-failure.patch
dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
dt-bindings-add-vendor-prefix-for-lego.patch
dt-bindings-clockgen-add-compatible-string-for-ls1012a.patch
ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch
iio-trigger-free-trigger-resource-correctly.patch
input-mpr121-handle-multiple-bits-change-of-status-register.patch
input-mpr121-set-missing-event-capability.patch
iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch
ipsec-do-not-ignore-crypto-err-in-ah4-input.patch
kvm-ppc-book-3s-xics-correct-the-real-mode-icp-rejecting-counter.patch
net-dsa-select-net_switchdev.patch
netfilter-nft_meta-deal-with-packet_loopback-in-netdev-family.patch
pci-mvebu-handle-changes-to-the-bridge-windows-while-enabled.patch
phy-increase-size-of-mii_bus_id_size-and-bus_id.patch
powerpc-corenet-explicitly-disable-the-sdhc-controller-on-kmcoge4.patch
s390-qeth-issue-startlan-as-first-ipa-command.patch
serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch
usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch
video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch
xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch

26 files changed:
queue-4.4/adv7604-initialize-drive-strength-to-default-when-using-dt.patch [new file with mode: 0644]
queue-4.4/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch [new file with mode: 0644]
queue-4.4/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch [new file with mode: 0644]
queue-4.4/crypto-vmx-disable-preemption-to-enable-vsx-in-aes_ctr.c.patch [new file with mode: 0644]
queue-4.4/drm-drm_minor_register-clean-up-debugfs-on-failure.patch [new file with mode: 0644]
queue-4.4/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch [new file with mode: 0644]
queue-4.4/dt-bindings-add-vendor-prefix-for-lego.patch [new file with mode: 0644]
queue-4.4/dt-bindings-clockgen-add-compatible-string-for-ls1012a.patch [new file with mode: 0644]
queue-4.4/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch [new file with mode: 0644]
queue-4.4/iio-trigger-free-trigger-resource-correctly.patch [new file with mode: 0644]
queue-4.4/input-mpr121-handle-multiple-bits-change-of-status-register.patch [new file with mode: 0644]
queue-4.4/input-mpr121-set-missing-event-capability.patch [new file with mode: 0644]
queue-4.4/iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch [new file with mode: 0644]
queue-4.4/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch [new file with mode: 0644]
queue-4.4/kvm-ppc-book-3s-xics-correct-the-real-mode-icp-rejecting-counter.patch [new file with mode: 0644]
queue-4.4/net-dsa-select-net_switchdev.patch [new file with mode: 0644]
queue-4.4/netfilter-nft_meta-deal-with-packet_loopback-in-netdev-family.patch [new file with mode: 0644]
queue-4.4/pci-mvebu-handle-changes-to-the-bridge-windows-while-enabled.patch [new file with mode: 0644]
queue-4.4/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch [new file with mode: 0644]
queue-4.4/powerpc-corenet-explicitly-disable-the-sdhc-controller-on-kmcoge4.patch [new file with mode: 0644]
queue-4.4/s390-qeth-issue-startlan-as-first-ipa-command.patch [new file with mode: 0644]
queue-4.4/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch [new file with mode: 0644]
queue-4.4/series [new file with mode: 0644]
queue-4.4/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch [new file with mode: 0644]
queue-4.4/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch [new file with mode: 0644]
queue-4.4/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch [new file with mode: 0644]

diff --git a/queue-4.4/adv7604-initialize-drive-strength-to-default-when-using-dt.patch b/queue-4.4/adv7604-initialize-drive-strength-to-default-when-using-dt.patch
new file mode 100644 (file)
index 0000000..1348c78
--- /dev/null
@@ -0,0 +1,49 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Lars-Peter Clausen <lars@metafoo.de>
+Date: Tue, 29 Nov 2016 09:23:48 -0200
+Subject: [media] adv7604: Initialize drive strength to default when using DT
+
+From: Lars-Peter Clausen <lars@metafoo.de>
+
+
+[ Upstream commit da8892d410db224d9a24104529794e6e37e0c100 ]
+
+The adv7604 driver platform data contains fields for configuring the drive
+strength of the output pins. When probing the driver through DT these
+fields are not explicitly initialized, which means they are left at 0. This
+is a reserved setting for the drive strength configuration though and can
+cause signal integrity issues.
+
+Whether these signal integrity issues are visible depends on the PCB
+specifics (e.g. the higher the load capacitance for the output the more
+visible the issue). But it has been observed on existing solutions at high
+pixel clock rates.
+
+Initialize the drive strength settings to the power-on-reset value of the
+device when probing through devicetree to avoid this issue.
+
+Fixes: 0e158be0162b ("adv7604: Add DT support")
+
+Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
+Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/media/i2c/adv7604.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/media/i2c/adv7604.c
++++ b/drivers/media/i2c/adv7604.c
+@@ -2856,6 +2856,9 @@ static int adv76xx_parse_dt(struct adv76
+       state->pdata.alt_data_sat = 1;
+       state->pdata.op_format_mode_sel = ADV7604_OP_FORMAT_MODE0;
+       state->pdata.bus_order = ADV7604_BUS_ORDER_RGB;
++      state->pdata.dr_str_data = ADV76XX_DR_STR_MEDIUM_HIGH;
++      state->pdata.dr_str_clk = ADV76XX_DR_STR_MEDIUM_HIGH;
++      state->pdata.dr_str_sync = ADV76XX_DR_STR_MEDIUM_HIGH;
+       return 0;
+ }
diff --git a/queue-4.4/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch b/queue-4.4/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch
new file mode 100644 (file)
index 0000000..514b286
--- /dev/null
@@ -0,0 +1,55 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Patrick Bruenn <p.bruenn@beckhoff.com>
+Date: Wed, 25 Jan 2017 06:25:48 +0100
+Subject: ARM: dts: imx53-qsb-common: fix FEC pinmux config
+
+From: Patrick Bruenn <p.bruenn@beckhoff.com>
+
+
+[ Upstream commit 8b649e426336d7d4800ff9c82858328f4215ba01 ]
+
+The pinmux configuration in device tree was different from manual
+muxing in <u-boot>/board/freescale/mx53loco/mx53loco.c
+All pins were configured as NO_PAD_CTL(1 << 31), which was fine as the
+bootloader already did the correct pinmuxing for us.
+But recently u-boot is migrating to reuse device tree files from the
+kernel tree, so it seems to be better to have the correct pinmuxing in
+our files, too.
+
+Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/boot/dts/imx53-qsb-common.dtsi |   20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/arch/arm/boot/dts/imx53-qsb-common.dtsi
++++ b/arch/arm/boot/dts/imx53-qsb-common.dtsi
+@@ -215,16 +215,16 @@
+               pinctrl_fec: fecgrp {
+                       fsl,pins = <
+-                              MX53_PAD_FEC_MDC__FEC_MDC               0x80000000
+-                              MX53_PAD_FEC_MDIO__FEC_MDIO             0x80000000
+-                              MX53_PAD_FEC_REF_CLK__FEC_TX_CLK        0x80000000
+-                              MX53_PAD_FEC_RX_ER__FEC_RX_ER           0x80000000
+-                              MX53_PAD_FEC_CRS_DV__FEC_RX_DV          0x80000000
+-                              MX53_PAD_FEC_RXD1__FEC_RDATA_1          0x80000000
+-                              MX53_PAD_FEC_RXD0__FEC_RDATA_0          0x80000000
+-                              MX53_PAD_FEC_TX_EN__FEC_TX_EN           0x80000000
+-                              MX53_PAD_FEC_TXD1__FEC_TDATA_1          0x80000000
+-                              MX53_PAD_FEC_TXD0__FEC_TDATA_0          0x80000000
++                              MX53_PAD_FEC_MDC__FEC_MDC               0x4
++                              MX53_PAD_FEC_MDIO__FEC_MDIO             0x1fc
++                              MX53_PAD_FEC_REF_CLK__FEC_TX_CLK        0x180
++                              MX53_PAD_FEC_RX_ER__FEC_RX_ER           0x180
++                              MX53_PAD_FEC_CRS_DV__FEC_RX_DV          0x180
++                              MX53_PAD_FEC_RXD1__FEC_RDATA_1          0x180
++                              MX53_PAD_FEC_RXD0__FEC_RDATA_0          0x180
++                              MX53_PAD_FEC_TX_EN__FEC_TX_EN           0x4
++                              MX53_PAD_FEC_TXD1__FEC_TDATA_1          0x4
++                              MX53_PAD_FEC_TXD0__FEC_TDATA_0          0x4
+                       >;
+               };
diff --git a/queue-4.4/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch b/queue-4.4/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch
new file mode 100644 (file)
index 0000000..87b087b
--- /dev/null
@@ -0,0 +1,30 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Tony Lindgren <tony@atomide.com>
+Date: Fri, 20 Jan 2017 12:13:19 -0800
+Subject: ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6
+
+From: Tony Lindgren <tony@atomide.com>
+
+
+[ Upstream commit 4cd6a59f5c1a9b0cca0da09fbba42b9450ffc899 ]
+
+We have more than four uarts on some SoCs and that can cause
+noise with errors while booting.
+
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/configs/omap2plus_defconfig |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm/configs/omap2plus_defconfig
++++ b/arch/arm/configs/omap2plus_defconfig
+@@ -221,6 +221,7 @@ CONFIG_SERIO=m
+ CONFIG_SERIAL_8250=y
+ CONFIG_SERIAL_8250_CONSOLE=y
+ CONFIG_SERIAL_8250_NR_UARTS=32
++CONFIG_SERIAL_8250_RUNTIME_UARTS=6
+ CONFIG_SERIAL_8250_EXTENDED=y
+ CONFIG_SERIAL_8250_MANY_PORTS=y
+ CONFIG_SERIAL_8250_SHARE_IRQ=y
diff --git a/queue-4.4/crypto-vmx-disable-preemption-to-enable-vsx-in-aes_ctr.c.patch b/queue-4.4/crypto-vmx-disable-preemption-to-enable-vsx-in-aes_ctr.c.patch
new file mode 100644 (file)
index 0000000..74e05da
--- /dev/null
@@ -0,0 +1,68 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Li Zhong <zhong@linux.vnet.ibm.com>
+Date: Fri, 20 Jan 2017 16:35:33 +0800
+Subject: crypto: vmx - disable preemption to enable vsx in aes_ctr.c
+
+From: Li Zhong <zhong@linux.vnet.ibm.com>
+
+
+[ Upstream commit 7dede913fc2ab9c0d3bff3a49e26fa9e858b0c13 ]
+
+Some preemptible check warnings were reported from enable_kernel_vsx(). This
+patch disables preemption in aes_ctr.c before enabling vsx, and they are now
+consistent with other files in the same directory.
+
+Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/crypto/vmx/aes_ctr.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/crypto/vmx/aes_ctr.c
++++ b/drivers/crypto/vmx/aes_ctr.c
+@@ -80,11 +80,13 @@ static int p8_aes_ctr_setkey(struct cryp
+       int ret;
+       struct p8_aes_ctr_ctx *ctx = crypto_tfm_ctx(tfm);
++      preempt_disable();
+       pagefault_disable();
+       enable_kernel_altivec();
+       enable_kernel_vsx();
+       ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
+       pagefault_enable();
++      preempt_enable();
+       ret += crypto_blkcipher_setkey(ctx->fallback, key, keylen);
+       return ret;
+@@ -99,11 +101,13 @@ static void p8_aes_ctr_final(struct p8_a
+       u8 *dst = walk->dst.virt.addr;
+       unsigned int nbytes = walk->nbytes;
++      preempt_disable();
+       pagefault_disable();
+       enable_kernel_altivec();
+       enable_kernel_vsx();
+       aes_p8_encrypt(ctrblk, keystream, &ctx->enc_key);
+       pagefault_enable();
++      preempt_enable();
+       crypto_xor(keystream, src, nbytes);
+       memcpy(dst, keystream, nbytes);
+@@ -132,6 +136,7 @@ static int p8_aes_ctr_crypt(struct blkci
+               blkcipher_walk_init(&walk, dst, src, nbytes);
+               ret = blkcipher_walk_virt_block(desc, &walk, AES_BLOCK_SIZE);
+               while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
++                      preempt_disable();
+                       pagefault_disable();
+                       enable_kernel_altivec();
+                       enable_kernel_vsx();
+@@ -143,6 +148,7 @@ static int p8_aes_ctr_crypt(struct blkci
+                                                   &ctx->enc_key,
+                                                   walk.iv);
+                       pagefault_enable();
++                      preempt_enable();
+                       /* We need to update IV mostly for last bytes/round */
+                       inc = (nbytes & AES_BLOCK_MASK) / AES_BLOCK_SIZE;
diff --git a/queue-4.4/drm-drm_minor_register-clean-up-debugfs-on-failure.patch b/queue-4.4/drm-drm_minor_register-clean-up-debugfs-on-failure.patch
new file mode 100644 (file)
index 0000000..7762afd
--- /dev/null
@@ -0,0 +1,33 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Noralf Trønnes <noralf@tronnes.org>
+Date: Thu, 26 Jan 2017 23:56:04 +0100
+Subject: drm: drm_minor_register(): Clean up debugfs on failure
+
+From: Noralf Trønnes <noralf@tronnes.org>
+
+
+[ Upstream commit a67834f8bfa1e2f48bb27d07b9a552ba7c3af82a ]
+
+Call drm_debugfs_cleanup() in case drm_debugfs_init() fails to
+cover for failure in the drm_driver.debugfs_init callback.
+
+Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: http://patchwork.freedesktop.org/patch/msgid/20170126225621.12314-3-noralf@tronnes.org
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/drm_drv.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/drm_drv.c
++++ b/drivers/gpu/drm/drm_drv.c
+@@ -312,7 +312,7 @@ static int drm_minor_register(struct drm
+       ret = drm_debugfs_init(minor, minor->index, drm_debugfs_root);
+       if (ret) {
+               DRM_ERROR("DRM: Failed to initialize /sys/kernel/debug/dri.\n");
+-              return ret;
++              goto err_debugfs;
+       }
+       ret = device_add(minor->kdev);
diff --git a/queue-4.4/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch b/queue-4.4/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
new file mode 100644 (file)
index 0000000..ca0763d
--- /dev/null
@@ -0,0 +1,34 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: David Lechner <david@lechnology.com>
+Date: Fri, 13 Jan 2017 13:03:40 -0600
+Subject: dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification
+
+From: David Lechner <david@lechnology.com>
+
+
+[ Upstream commit 21078ab174c99885ca83a5c32db0d33b1617745e ]
+
+This adds the board level device tree specification for LEGO MINDSTORMS EV3
+
+Acked-by: Rob Herring <robh@kernel.org>
+Signed-off-by: David Lechner <david@lechnology.com>
+Signed-off-by: Sekhar Nori <nsekhar@ti.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/devicetree/bindings/arm/davinci.txt |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/Documentation/devicetree/bindings/arm/davinci.txt
++++ b/Documentation/devicetree/bindings/arm/davinci.txt
+@@ -9,6 +9,10 @@ EnBW AM1808 based CMC board
+ Required root node properties:
+     - compatible = "enbw,cmc", "ti,da850;
++LEGO MINDSTORMS EV3 (AM1808 based)
++Required root node properties:
++    - compatible = "lego,ev3", "ti,da850";
++
+ Generic DaVinci Boards
+ ----------------------
diff --git a/queue-4.4/dt-bindings-add-vendor-prefix-for-lego.patch b/queue-4.4/dt-bindings-add-vendor-prefix-for-lego.patch
new file mode 100644 (file)
index 0000000..5d25de8
--- /dev/null
@@ -0,0 +1,31 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: David Lechner <david@lechnology.com>
+Date: Fri, 13 Jan 2017 13:03:39 -0600
+Subject: dt-bindings: Add vendor prefix for LEGO
+
+From: David Lechner <david@lechnology.com>
+
+
+[ Upstream commit 7dcc31e2e68a386a29070384b51683ece80982bf ]
+
+Add a vendor prefix for LEGO Systems A/S
+
+Acked-by: Rob Herring <robh@kernel.org>
+Signed-off-by: David Lechner <david@lechnology.com>
+Signed-off-by: Sekhar Nori <nsekhar@ti.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/devicetree/bindings/vendor-prefixes.txt |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
++++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
+@@ -126,6 +126,7 @@ keymile    Keymile GmbH
+ kinetic Kinetic Technologies
+ lacie LaCie
+ lantiq        Lantiq Semiconductor
++lego  LEGO Systems A/S
+ lenovo        Lenovo Group Ltd.
+ lg    LG Corporation
+ linux Linux-specific binding
diff --git a/queue-4.4/dt-bindings-clockgen-add-compatible-string-for-ls1012a.patch b/queue-4.4/dt-bindings-clockgen-add-compatible-string-for-ls1012a.patch
new file mode 100644 (file)
index 0000000..795872a
--- /dev/null
@@ -0,0 +1,30 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Harninder Rai <harninder.rai@nxp.com>
+Date: Wed, 9 Nov 2016 23:40:53 +0530
+Subject: dt-bindings: clockgen: Add compatible string for LS1012A
+
+From: Harninder Rai <harninder.rai@nxp.com>
+
+
+[ Upstream commit 73447f68d7b2bc1df870da88b0e21d2bc1afc025 ]
+
+Signed-off-by: Harninder Rai <harninder.rai@nxp.com>
+Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
+Acked-by: Rob Herring <robh@kernel.org>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/devicetree/bindings/clock/qoriq-clock.txt |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/Documentation/devicetree/bindings/clock/qoriq-clock.txt
++++ b/Documentation/devicetree/bindings/clock/qoriq-clock.txt
+@@ -31,6 +31,7 @@ Required properties:
+       * "fsl,t4240-clockgen"
+       * "fsl,b4420-clockgen"
+       * "fsl,b4860-clockgen"
++      * "fsl,ls1012a-clockgen"
+       * "fsl,ls1021a-clockgen"
+       Chassis-version clock strings include:
+       * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks
diff --git a/queue-4.4/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch b/queue-4.4/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch
new file mode 100644 (file)
index 0000000..eda7b3a
--- /dev/null
@@ -0,0 +1,41 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Feras Daoud <ferasda@mellanox.com>
+Date: Wed, 28 Dec 2016 14:47:28 +0200
+Subject: IB/ipoib: Change list_del to list_del_init in the tx object
+
+From: Feras Daoud <ferasda@mellanox.com>
+
+
+[ Upstream commit 27d41d29c7f093f6f77843624fbb080c1b4a8b9c ]
+
+Since ipoib_cm_tx_start function and ipoib_cm_tx_reap function
+belong to different work queues, they can run in parallel.
+In this case if ipoib_cm_tx_reap calls list_del and release the
+lock, ipoib_cm_tx_start may acquire it and call list_del_init
+on the already deleted object.
+Changing list_del to list_del_init in ipoib_cm_tx_reap fixes the problem.
+
+Fixes: 839fcaba355a ("IPoIB: Connected mode experimental support")
+Signed-off-by: Feras Daoud <ferasda@mellanox.com>
+Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
+Reviewed-by: Alex Vesker <valex@mellanox.com>
+Signed-off-by: Leon Romanovsky <leon@kernel.org>
+Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
+Signed-off-by: Doug Ledford <dledford@redhat.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/infiniband/ulp/ipoib/ipoib_cm.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
++++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+@@ -1373,7 +1373,7 @@ static void ipoib_cm_tx_reap(struct work
+       while (!list_empty(&priv->cm.reap_list)) {
+               p = list_entry(priv->cm.reap_list.next, typeof(*p), list);
+-              list_del(&p->list);
++              list_del_init(&p->list);
+               spin_unlock_irqrestore(&priv->lock, flags);
+               netif_tx_unlock_bh(dev);
+               ipoib_cm_tx_destroy(p);
diff --git a/queue-4.4/iio-trigger-free-trigger-resource-correctly.patch b/queue-4.4/iio-trigger-free-trigger-resource-correctly.patch
new file mode 100644 (file)
index 0000000..866db6c
--- /dev/null
@@ -0,0 +1,99 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Alison Schofield <amsfield22@gmail.com>
+Date: Thu, 19 Jan 2017 19:47:38 -0800
+Subject: iio: trigger: free trigger resource correctly
+
+From: Alison Schofield <amsfield22@gmail.com>
+
+
+[ Upstream commit 10e840dfb0b7fc345082dd9e5fff3c1c02e7690e ]
+
+These stand-alone trigger drivers were using iio_trigger_put()
+where they should have been using iio_trigger_free().  The
+iio_trigger_put() adds a module_put which is bad since they
+never did a module_get.
+
+In the sysfs driver, module_get/put's are used as triggers are
+added & removed. This extra module_put() occurs on an error path
+in the probe routine (probably rare).
+
+In the bfin-timer & interrupt trigger drivers, the module resources
+are not explicitly managed, so it's doing a put on something that
+was never get'd.  It occurs on the probe error path and on the
+remove path (not so rare).
+
+Tested with the sysfs trigger driver.
+The bfin & interrupt drivers were build tested & inspected only.
+
+Signed-off-by: Alison Schofield <amsfield22@gmail.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/iio/trigger/iio-trig-interrupt.c          |    8 ++++----
+ drivers/iio/trigger/iio-trig-sysfs.c              |    2 +-
+ drivers/staging/iio/trigger/iio-trig-bfin-timer.c |    4 ++--
+ 3 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/drivers/iio/trigger/iio-trig-interrupt.c
++++ b/drivers/iio/trigger/iio-trig-interrupt.c
+@@ -58,7 +58,7 @@ static int iio_interrupt_trigger_probe(s
+       trig_info = kzalloc(sizeof(*trig_info), GFP_KERNEL);
+       if (!trig_info) {
+               ret = -ENOMEM;
+-              goto error_put_trigger;
++              goto error_free_trigger;
+       }
+       iio_trigger_set_drvdata(trig, trig_info);
+       trig_info->irq = irq;
+@@ -83,8 +83,8 @@ error_release_irq:
+       free_irq(irq, trig);
+ error_free_trig_info:
+       kfree(trig_info);
+-error_put_trigger:
+-      iio_trigger_put(trig);
++error_free_trigger:
++      iio_trigger_free(trig);
+ error_ret:
+       return ret;
+ }
+@@ -99,7 +99,7 @@ static int iio_interrupt_trigger_remove(
+       iio_trigger_unregister(trig);
+       free_irq(trig_info->irq, trig);
+       kfree(trig_info);
+-      iio_trigger_put(trig);
++      iio_trigger_free(trig);
+       return 0;
+ }
+--- a/drivers/iio/trigger/iio-trig-sysfs.c
++++ b/drivers/iio/trigger/iio-trig-sysfs.c
+@@ -174,7 +174,7 @@ static int iio_sysfs_trigger_probe(int i
+       return 0;
+ out2:
+-      iio_trigger_put(t->trig);
++      iio_trigger_free(t->trig);
+ free_t:
+       kfree(t);
+ out1:
+--- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
++++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
+@@ -259,7 +259,7 @@ out_free_irq:
+ out1:
+       iio_trigger_unregister(st->trig);
+ out:
+-      iio_trigger_put(st->trig);
++      iio_trigger_free(st->trig);
+       return ret;
+ }
+@@ -272,7 +272,7 @@ static int iio_bfin_tmr_trigger_remove(s
+               peripheral_free(st->t->pin);
+       free_irq(st->irq, st);
+       iio_trigger_unregister(st->trig);
+-      iio_trigger_put(st->trig);
++      iio_trigger_free(st->trig);
+       return 0;
+ }
diff --git a/queue-4.4/input-mpr121-handle-multiple-bits-change-of-status-register.patch b/queue-4.4/input-mpr121-handle-multiple-bits-change-of-status-register.patch
new file mode 100644 (file)
index 0000000..4299d02
--- /dev/null
@@ -0,0 +1,68 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Akinobu Mita <akinobu.mita@gmail.com>
+Date: Sun, 15 Jan 2017 14:44:30 -0800
+Subject: Input: mpr121 - handle multiple bits change of status register
+
+From: Akinobu Mita <akinobu.mita@gmail.com>
+
+
+[ Upstream commit 08fea55e37f58371bffc5336a59e55d1f155955a ]
+
+This driver reports input events on their interrupts which are triggered
+by the sensor's status register changes.  But only single bit change is
+reported in the interrupt handler.  So if there are multiple bits are
+changed at almost the same time, other press or release events are ignored.
+
+This fixes it by detecting all changed bits in the status register.
+
+Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/input/keyboard/mpr121_touchkey.c |   23 ++++++++++++++---------
+ 1 file changed, 14 insertions(+), 9 deletions(-)
+
+--- a/drivers/input/keyboard/mpr121_touchkey.c
++++ b/drivers/input/keyboard/mpr121_touchkey.c
+@@ -87,7 +87,8 @@ static irqreturn_t mpr_touchkey_interrup
+       struct mpr121_touchkey *mpr121 = dev_id;
+       struct i2c_client *client = mpr121->client;
+       struct input_dev *input = mpr121->input_dev;
+-      unsigned int key_num, key_val, pressed;
++      unsigned long bit_changed;
++      unsigned int key_num;
+       int reg;
+       reg = i2c_smbus_read_byte_data(client, ELE_TOUCH_STATUS_1_ADDR);
+@@ -105,18 +106,22 @@ static irqreturn_t mpr_touchkey_interrup
+       reg &= TOUCH_STATUS_MASK;
+       /* use old press bit to figure out which bit changed */
+-      key_num = ffs(reg ^ mpr121->statusbits) - 1;
+-      pressed = reg & (1 << key_num);
++      bit_changed = reg ^ mpr121->statusbits;
+       mpr121->statusbits = reg;
++      for_each_set_bit(key_num, &bit_changed, mpr121->keycount) {
++              unsigned int key_val, pressed;
+-      key_val = mpr121->keycodes[key_num];
++              pressed = reg & BIT(key_num);
++              key_val = mpr121->keycodes[key_num];
+-      input_event(input, EV_MSC, MSC_SCAN, key_num);
+-      input_report_key(input, key_val, pressed);
+-      input_sync(input);
++              input_event(input, EV_MSC, MSC_SCAN, key_num);
++              input_report_key(input, key_val, pressed);
++
++              dev_dbg(&client->dev, "key %d %d %s\n", key_num, key_val,
++                      pressed ? "pressed" : "released");
+-      dev_dbg(&client->dev, "key %d %d %s\n", key_num, key_val,
+-              pressed ? "pressed" : "released");
++      }
++      input_sync(input);
+ out:
+       return IRQ_HANDLED;
diff --git a/queue-4.4/input-mpr121-set-missing-event-capability.patch b/queue-4.4/input-mpr121-set-missing-event-capability.patch
new file mode 100644 (file)
index 0000000..413c56a
--- /dev/null
@@ -0,0 +1,34 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Akinobu Mita <akinobu.mita@gmail.com>
+Date: Sun, 15 Jan 2017 14:44:05 -0800
+Subject: Input: mpr121 - set missing event capability
+
+From: Akinobu Mita <akinobu.mita@gmail.com>
+
+
+[ Upstream commit 9723ddc8fe0d76ce41fe0dc16afb241ec7d0a29d ]
+
+This driver reports misc scan input events on the sensor's status
+register changes.  But the event capability for them was not set in the
+device initialization, so these events were ignored.
+
+This change adds the missing event capability.
+
+Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/input/keyboard/mpr121_touchkey.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/input/keyboard/mpr121_touchkey.c
++++ b/drivers/input/keyboard/mpr121_touchkey.c
+@@ -236,6 +236,7 @@ static int mpr_touchkey_probe(struct i2c
+       input_dev->id.bustype = BUS_I2C;
+       input_dev->dev.parent = &client->dev;
+       input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REP);
++      input_set_capability(input_dev, EV_MSC, MSC_SCAN);
+       input_dev->keycode = mpr121->keycodes;
+       input_dev->keycodesize = sizeof(mpr121->keycodes[0]);
diff --git a/queue-4.4/iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch b/queue-4.4/iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch
new file mode 100644 (file)
index 0000000..190b6b7
--- /dev/null
@@ -0,0 +1,48 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Nate Watterson <nwatters@codeaurora.org>
+Date: Tue, 20 Dec 2016 23:11:48 -0500
+Subject: iommu/arm-smmu-v3: Clear prior settings when updating STEs
+
+From: Nate Watterson <nwatters@codeaurora.org>
+
+
+[ Upstream commit 810871c57011eb3e89e6768932757f169d666cd2 ]
+
+To prevent corruption of the stage-1 context pointer field when
+updating STEs, rebuild the entire containing dword instead of
+clearing individual fields.
+
+Signed-off-by: Nate Watterson <nwatters@codeaurora.org>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/iommu/arm-smmu-v3.c |   10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+--- a/drivers/iommu/arm-smmu-v3.c
++++ b/drivers/iommu/arm-smmu-v3.c
+@@ -1033,13 +1033,8 @@ static void arm_smmu_write_strtab_ent(st
+               }
+       }
+-      /* Nuke the existing Config, as we're going to rewrite it */
+-      val &= ~(STRTAB_STE_0_CFG_MASK << STRTAB_STE_0_CFG_SHIFT);
+-
+-      if (ste->valid)
+-              val |= STRTAB_STE_0_V;
+-      else
+-              val &= ~STRTAB_STE_0_V;
++      /* Nuke the existing STE_0 value, as we're going to rewrite it */
++      val = ste->valid ? STRTAB_STE_0_V : 0;
+       if (ste->bypass) {
+               val |= disable_bypass ? STRTAB_STE_0_CFG_ABORT
+@@ -1068,7 +1063,6 @@ static void arm_smmu_write_strtab_ent(st
+               val |= (ste->s1_cfg->cdptr_dma & STRTAB_STE_0_S1CTXPTR_MASK
+                       << STRTAB_STE_0_S1CTXPTR_SHIFT) |
+                       STRTAB_STE_0_CFG_S1_TRANS;
+-
+       }
+       if (ste->s2_cfg) {
diff --git a/queue-4.4/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch b/queue-4.4/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch
new file mode 100644 (file)
index 0000000..8bd81eb
--- /dev/null
@@ -0,0 +1,41 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Gilad Ben-Yossef <gilad@benyossef.com>
+Date: Mon, 16 Jan 2017 13:17:55 +0200
+Subject: IPsec: do not ignore crypto err in ah4 input
+
+From: Gilad Ben-Yossef <gilad@benyossef.com>
+
+
+[ Upstream commit ebd89a2d0675f1325c2be5b7576fd8cb7e8defd0 ]
+
+ah4 input processing uses the asynchronous hash crypto API which
+supplies an error code as part of the operation completion but
+the error code was being ignored.
+
+Treat a crypto API error indication as a verification failure.
+
+While a crypto API reported error would almost certainly result
+in a memcpy of the digest failing anyway and thus the security
+risk seems minor, performing a memory compare on what might be
+uninitialized memory is wrong.
+
+Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
+Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/ipv4/ah4.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/net/ipv4/ah4.c
++++ b/net/ipv4/ah4.c
+@@ -270,6 +270,9 @@ static void ah_input_done(struct crypto_
+       int ihl = ip_hdrlen(skb);
+       int ah_hlen = (ah->hdrlen + 2) << 2;
++      if (err)
++              goto out;
++
+       work_iph = AH_SKB_CB(skb)->tmp;
+       auth_data = ah_tmp_auth(work_iph, ihl);
+       icv = ah_tmp_icv(ahp->ahash, auth_data, ahp->icv_trunc_len);
diff --git a/queue-4.4/kvm-ppc-book-3s-xics-correct-the-real-mode-icp-rejecting-counter.patch b/queue-4.4/kvm-ppc-book-3s-xics-correct-the-real-mode-icp-rejecting-counter.patch
new file mode 100644 (file)
index 0000000..4cbe9c4
--- /dev/null
@@ -0,0 +1,52 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Li Zhong <zhong@linux.vnet.ibm.com>
+Date: Fri, 11 Nov 2016 12:57:33 +0800
+Subject: KVM: PPC: Book 3S: XICS: correct the real mode ICP rejecting counter
+
+From: Li Zhong <zhong@linux.vnet.ibm.com>
+
+
+[ Upstream commit 37451bc95dee0e666927d6ffdda302dbbaaae6fa ]
+
+Some counters are added in Commit 6e0365b78273 ("KVM: PPC: Book3S HV:
+Add ICP real mode counters"), to provide some performance statistics to
+determine whether further optimizing is needed for real mode functions.
+
+The n_reject counter counts how many times ICP rejects an irq because of
+priority in real mode. The redelivery of an lsi that is still asserted
+after eoi doesn't fall into this category, so the increasement there is
+removed.
+
+Also, it needs to be increased in icp_rm_deliver_irq() if it rejects
+another one.
+
+Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/powerpc/kvm/book3s_hv_rm_xics.c |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/arch/powerpc/kvm/book3s_hv_rm_xics.c
++++ b/arch/powerpc/kvm/book3s_hv_rm_xics.c
+@@ -280,6 +280,7 @@ static void icp_rm_deliver_irq(struct kv
+                */
+               if (reject && reject != XICS_IPI) {
+                       arch_spin_unlock(&ics->lock);
++                      icp->n_reject++;
+                       new_irq = reject;
+                       goto again;
+               }
+@@ -611,10 +612,8 @@ int kvmppc_rm_h_eoi(struct kvm_vcpu *vcp
+       state = &ics->irq_state[src];
+       /* Still asserted, resend it */
+-      if (state->asserted) {
+-              icp->n_reject++;
++      if (state->asserted)
+               icp_rm_deliver_irq(xics, icp, irq);
+-      }
+       if (!hlist_empty(&vcpu->kvm->irq_ack_notifier_list)) {
+               icp->rm_action |= XICS_RM_NOTIFY_EOI;
diff --git a/queue-4.4/net-dsa-select-net_switchdev.patch b/queue-4.4/net-dsa-select-net_switchdev.patch
new file mode 100644 (file)
index 0000000..1fd7c47
--- /dev/null
@@ -0,0 +1,44 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
+Date: Mon, 9 Jan 2017 16:49:26 -0500
+Subject: net: dsa: select NET_SWITCHDEV
+
+From: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
+
+
+[ Upstream commit 3a89eaa65db68bf53bf92dedc60084f810e1779a ]
+
+The support for DSA Ethernet switch chips depends on TCP/IP networking,
+thus explicit that HAVE_NET_DSA depends on INET.
+
+DSA uses SWITCHDEV, thus select it instead of depending on it.
+
+Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
+Tested-by: Randy Dunlap <rdunlap@infradead.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/dsa/Kconfig |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/net/dsa/Kconfig
++++ b/net/dsa/Kconfig
+@@ -1,12 +1,13 @@
+ config HAVE_NET_DSA
+       def_bool y
+-      depends on NETDEVICES && !S390
++      depends on INET && NETDEVICES && !S390
+ # Drivers must select NET_DSA and the appropriate tagging format
+ config NET_DSA
+       tristate "Distributed Switch Architecture"
+-      depends on HAVE_NET_DSA && NET_SWITCHDEV
++      depends on HAVE_NET_DSA
++      select NET_SWITCHDEV
+       select PHYLIB
+       ---help---
+         Say Y if you want to enable support for the hardware switches supported
diff --git a/queue-4.4/netfilter-nft_meta-deal-with-packet_loopback-in-netdev-family.patch b/queue-4.4/netfilter-nft_meta-deal-with-packet_loopback-in-netdev-family.patch
new file mode 100644 (file)
index 0000000..895e16d
--- /dev/null
@@ -0,0 +1,75 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Liping Zhang <zlpnobody@gmail.com>
+Date: Sat, 7 Jan 2017 21:33:55 +0800
+Subject: netfilter: nft_meta: deal with PACKET_LOOPBACK in netdev family
+
+From: Liping Zhang <zlpnobody@gmail.com>
+
+
+[ Upstream commit f169fd695b192dd7b23aff8e69d25a1bc881bbfa ]
+
+After adding the following nft rule, then ping 224.0.0.1:
+  # nft add rule netdev t c pkttype host counter
+
+The warning complain message will be printed out again and again:
+  WARNING: CPU: 0 PID: 10182 at net/netfilter/nft_meta.c:163 \
+           nft_meta_get_eval+0x3fe/0x460 [nft_meta]
+  [...]
+  Call Trace:
+  <IRQ>
+  dump_stack+0x85/0xc2
+  __warn+0xcb/0xf0
+  warn_slowpath_null+0x1d/0x20
+  nft_meta_get_eval+0x3fe/0x460 [nft_meta]
+  nft_do_chain+0xff/0x5e0 [nf_tables]
+
+So we should deal with PACKET_LOOPBACK in netdev family too. For ipv4,
+convert it to PACKET_BROADCAST/MULTICAST according to the destination
+address's type; For ipv6, convert it to PACKET_MULTICAST directly.
+
+Signed-off-by: Liping Zhang <zlpnobody@gmail.com>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ net/netfilter/nft_meta.c |   28 +++++++++++++++++++++++++++-
+ 1 file changed, 27 insertions(+), 1 deletion(-)
+
+--- a/net/netfilter/nft_meta.c
++++ b/net/netfilter/nft_meta.c
+@@ -151,8 +151,34 @@ void nft_meta_get_eval(const struct nft_
+                       else
+                               *dest = PACKET_BROADCAST;
+                       break;
++              case NFPROTO_NETDEV:
++                      switch (skb->protocol) {
++                      case htons(ETH_P_IP): {
++                              int noff = skb_network_offset(skb);
++                              struct iphdr *iph, _iph;
++
++                              iph = skb_header_pointer(skb, noff,
++                                                       sizeof(_iph), &_iph);
++                              if (!iph)
++                                      goto err;
++
++                              if (ipv4_is_multicast(iph->daddr))
++                                      *dest = PACKET_MULTICAST;
++                              else
++                                      *dest = PACKET_BROADCAST;
++
++                              break;
++                      }
++                      case htons(ETH_P_IPV6):
++                              *dest = PACKET_MULTICAST;
++                              break;
++                      default:
++                              WARN_ON_ONCE(1);
++                              goto err;
++                      }
++                      break;
+               default:
+-                      WARN_ON(1);
++                      WARN_ON_ONCE(1);
+                       goto err;
+               }
+               break;
diff --git a/queue-4.4/pci-mvebu-handle-changes-to-the-bridge-windows-while-enabled.patch b/queue-4.4/pci-mvebu-handle-changes-to-the-bridge-windows-while-enabled.patch
new file mode 100644 (file)
index 0000000..51d09f9
--- /dev/null
@@ -0,0 +1,184 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+Date: Mon, 12 Dec 2016 11:30:20 -0700
+Subject: PCI: mvebu: Handle changes to the bridge windows while enabled
+
+From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+
+
+[ Upstream commit d9bf28e2650fe3eeefed7e34841aea07d10c6543 ]
+
+The PCI core will write to the bridge window config multiple times while
+they are enabled.  This can lead to mbus failures like this:
+
+ mvebu_mbus: cannot add window '4:e8', conflicts with another window
+ mvebu-pcie mbus:pex@e0000000: Could not create MBus window at [mem 0xe0000000-0xe00fffff]: -22
+
+For me this is happening during a hotplug cycle.  The PCI core is not
+changing the values, just writing them twice while active.
+
+The patch addresses the general case of any change to an active window, but
+not atomically.  The code is slightly refactored so io and mem can share
+more of the window logic.
+
+Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Acked-by: Jason Cooper <jason@lakedaemon.net>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/pci/host/pci-mvebu.c |  101 +++++++++++++++++++++++++------------------
+ 1 file changed, 60 insertions(+), 41 deletions(-)
+
+--- a/drivers/pci/host/pci-mvebu.c
++++ b/drivers/pci/host/pci-mvebu.c
+@@ -131,6 +131,12 @@ struct mvebu_pcie {
+       int nports;
+ };
++struct mvebu_pcie_window {
++      phys_addr_t base;
++      phys_addr_t remap;
++      size_t size;
++};
++
+ /* Structure representing one PCIe interface */
+ struct mvebu_pcie_port {
+       char *name;
+@@ -148,10 +154,8 @@ struct mvebu_pcie_port {
+       struct mvebu_sw_pci_bridge bridge;
+       struct device_node *dn;
+       struct mvebu_pcie *pcie;
+-      phys_addr_t memwin_base;
+-      size_t memwin_size;
+-      phys_addr_t iowin_base;
+-      size_t iowin_size;
++      struct mvebu_pcie_window memwin;
++      struct mvebu_pcie_window iowin;
+       u32 saved_pcie_stat;
+ };
+@@ -377,23 +381,45 @@ static void mvebu_pcie_add_windows(struc
+       }
+ }
++static void mvebu_pcie_set_window(struct mvebu_pcie_port *port,
++                                unsigned int target, unsigned int attribute,
++                                const struct mvebu_pcie_window *desired,
++                                struct mvebu_pcie_window *cur)
++{
++      if (desired->base == cur->base && desired->remap == cur->remap &&
++          desired->size == cur->size)
++              return;
++
++      if (cur->size != 0) {
++              mvebu_pcie_del_windows(port, cur->base, cur->size);
++              cur->size = 0;
++              cur->base = 0;
++
++              /*
++               * If something tries to change the window while it is enabled
++               * the change will not be done atomically. That would be
++               * difficult to do in the general case.
++               */
++      }
++
++      if (desired->size == 0)
++              return;
++
++      mvebu_pcie_add_windows(port, target, attribute, desired->base,
++                             desired->size, desired->remap);
++      *cur = *desired;
++}
++
+ static void mvebu_pcie_handle_iobase_change(struct mvebu_pcie_port *port)
+ {
+-      phys_addr_t iobase;
++      struct mvebu_pcie_window desired = {};
+       /* Are the new iobase/iolimit values invalid? */
+       if (port->bridge.iolimit < port->bridge.iobase ||
+           port->bridge.iolimitupper < port->bridge.iobaseupper ||
+           !(port->bridge.command & PCI_COMMAND_IO)) {
+-
+-              /* If a window was configured, remove it */
+-              if (port->iowin_base) {
+-                      mvebu_pcie_del_windows(port, port->iowin_base,
+-                                             port->iowin_size);
+-                      port->iowin_base = 0;
+-                      port->iowin_size = 0;
+-              }
+-
++              mvebu_pcie_set_window(port, port->io_target, port->io_attr,
++                                    &desired, &port->iowin);
+               return;
+       }
+@@ -410,32 +436,27 @@ static void mvebu_pcie_handle_iobase_cha
+        * specifications. iobase is the bus address, port->iowin_base
+        * is the CPU address.
+        */
+-      iobase = ((port->bridge.iobase & 0xF0) << 8) |
+-              (port->bridge.iobaseupper << 16);
+-      port->iowin_base = port->pcie->io.start + iobase;
+-      port->iowin_size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) |
+-                          (port->bridge.iolimitupper << 16)) -
+-                          iobase) + 1;
+-
+-      mvebu_pcie_add_windows(port, port->io_target, port->io_attr,
+-                             port->iowin_base, port->iowin_size,
+-                             iobase);
++      desired.remap = ((port->bridge.iobase & 0xF0) << 8) |
++                      (port->bridge.iobaseupper << 16);
++      desired.base = port->pcie->io.start + desired.remap;
++      desired.size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) |
++                       (port->bridge.iolimitupper << 16)) -
++                      desired.remap) +
++                     1;
++
++      mvebu_pcie_set_window(port, port->io_target, port->io_attr, &desired,
++                            &port->iowin);
+ }
+ static void mvebu_pcie_handle_membase_change(struct mvebu_pcie_port *port)
+ {
++      struct mvebu_pcie_window desired = {.remap = MVEBU_MBUS_NO_REMAP};
++
+       /* Are the new membase/memlimit values invalid? */
+       if (port->bridge.memlimit < port->bridge.membase ||
+           !(port->bridge.command & PCI_COMMAND_MEMORY)) {
+-
+-              /* If a window was configured, remove it */
+-              if (port->memwin_base) {
+-                      mvebu_pcie_del_windows(port, port->memwin_base,
+-                                             port->memwin_size);
+-                      port->memwin_base = 0;
+-                      port->memwin_size = 0;
+-              }
+-
++              mvebu_pcie_set_window(port, port->mem_target, port->mem_attr,
++                                    &desired, &port->memwin);
+               return;
+       }
+@@ -445,14 +466,12 @@ static void mvebu_pcie_handle_membase_ch
+        * window to setup, according to the PCI-to-PCI bridge
+        * specifications.
+        */
+-      port->memwin_base  = ((port->bridge.membase & 0xFFF0) << 16);
+-      port->memwin_size  =
+-              (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) -
+-              port->memwin_base + 1;
+-
+-      mvebu_pcie_add_windows(port, port->mem_target, port->mem_attr,
+-                             port->memwin_base, port->memwin_size,
+-                             MVEBU_MBUS_NO_REMAP);
++      desired.base = ((port->bridge.membase & 0xFFF0) << 16);
++      desired.size = (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) -
++                     desired.base + 1;
++
++      mvebu_pcie_set_window(port, port->mem_target, port->mem_attr, &desired,
++                            &port->memwin);
+ }
+ /*
diff --git a/queue-4.4/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch b/queue-4.4/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch
new file mode 100644 (file)
index 0000000..e94e34e
--- /dev/null
@@ -0,0 +1,49 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Volodymyr Bendiuga <volodymyr.bendiuga@gmail.com>
+Date: Thu, 19 Jan 2017 17:05:04 +0100
+Subject: phy: increase size of MII_BUS_ID_SIZE and bus_id
+
+From: Volodymyr Bendiuga <volodymyr.bendiuga@gmail.com>
+
+
+[ Upstream commit 4567d686f5c6d955e57a3afa1741944c1e7f4033 ]
+
+Some bus names are pretty long and do not fit into
+17 chars. Increase therefore MII_BUS_ID_SIZE and
+phy_fixup.bus_id to larger number. Now mii_bus.id
+can host larger name.
+
+Signed-off-by: Volodymyr Bendiuga <volodymyr.bendiuga@gmail.com>
+Signed-off-by: Magnus Öberg <magnus.oberg@westermo.se>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/phy.h |    8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+--- a/include/linux/phy.h
++++ b/include/linux/phy.h
+@@ -136,11 +136,7 @@ static inline const char *phy_modes(phy_
+ /* Used when trying to connect to a specific phy (mii bus id:phy device id) */
+ #define PHY_ID_FMT "%s:%02x"
+-/*
+- * Need to be a little smaller than phydev->dev.bus_id to leave room
+- * for the ":%02x"
+- */
+-#define MII_BUS_ID_SIZE       (20 - 3)
++#define MII_BUS_ID_SIZE       61
+ /* Or MII_ADDR_C45 into regnum for read/write on mii_bus to enable the 21 bit
+    IEEE 802.3ae clause 45 addressing mode used by 10GIGE phy chips. */
+@@ -599,7 +595,7 @@ struct phy_driver {
+ /* A Structure for boards to register fixups with the PHY Lib */
+ struct phy_fixup {
+       struct list_head list;
+-      char bus_id[20];
++      char bus_id[MII_BUS_ID_SIZE + 3];
+       u32 phy_uid;
+       u32 phy_uid_mask;
+       int (*run)(struct phy_device *phydev);
diff --git a/queue-4.4/powerpc-corenet-explicitly-disable-the-sdhc-controller-on-kmcoge4.patch b/queue-4.4/powerpc-corenet-explicitly-disable-the-sdhc-controller-on-kmcoge4.patch
new file mode 100644 (file)
index 0000000..fc434d5
--- /dev/null
@@ -0,0 +1,34 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Valentin Longchamp <valentin.longchamp@keymile.com>
+Date: Thu, 15 Dec 2016 14:22:26 +0100
+Subject: powerpc/corenet: explicitly disable the SDHC controller on kmcoge4
+
+From: Valentin Longchamp <valentin.longchamp@keymile.com>
+
+
+[ Upstream commit a674c7d470bb47e82f4eb1fa944eadeac2f6bbaf ]
+
+It is not implemented on the kmcoge4 hardware and if not disabled it
+leads to error messages with the corenet32_smp_defconfig.
+
+Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
+Signed-off-by: Scott Wood <oss@buserror.net>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/powerpc/boot/dts/fsl/kmcoge4.dts |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/arch/powerpc/boot/dts/fsl/kmcoge4.dts
++++ b/arch/powerpc/boot/dts/fsl/kmcoge4.dts
+@@ -83,6 +83,10 @@
+                       };
+               };
++              sdhc@114000 {
++                      status = "disabled";
++              };
++
+               i2c@119000 {
+                       status = "disabled";
+               };
diff --git a/queue-4.4/s390-qeth-issue-startlan-as-first-ipa-command.patch b/queue-4.4/s390-qeth-issue-startlan-as-first-ipa-command.patch
new file mode 100644 (file)
index 0000000..0384928
--- /dev/null
@@ -0,0 +1,145 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Julian Wiedmann <jwi@linux.vnet.ibm.com>
+Date: Thu, 12 Jan 2017 15:48:42 +0100
+Subject: s390/qeth: issue STARTLAN as first IPA command
+
+From: Julian Wiedmann <jwi@linux.vnet.ibm.com>
+
+
+[ Upstream commit 1034051045d125579ab1e8fcd5a724eeb0e70149 ]
+
+STARTLAN needs to be the first IPA command after MPC initialization
+completes.
+So move the qeth_send_startlan() call from the layer disciplines
+into the core path, right after the MPC handshake.
+While at it, replace the magic LAN OFFLINE return code
+with the existing enum.
+
+Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
+Reviewed-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
+Reviewed-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/s390/net/qeth_core.h      |    1 -
+ drivers/s390/net/qeth_core_main.c |   21 +++++++++++++++++----
+ drivers/s390/net/qeth_l2_main.c   |   15 ---------------
+ drivers/s390/net/qeth_l3_main.c   |   15 ---------------
+ 4 files changed, 17 insertions(+), 35 deletions(-)
+
+--- a/drivers/s390/net/qeth_core.h
++++ b/drivers/s390/net/qeth_core.h
+@@ -909,7 +909,6 @@ void qeth_clear_thread_running_bit(struc
+ int qeth_core_hardsetup_card(struct qeth_card *);
+ void qeth_print_status_message(struct qeth_card *);
+ int qeth_init_qdio_queues(struct qeth_card *);
+-int qeth_send_startlan(struct qeth_card *);
+ int qeth_send_ipa_cmd(struct qeth_card *, struct qeth_cmd_buffer *,
+                 int (*reply_cb)
+                 (struct qeth_card *, struct qeth_reply *, unsigned long),
+--- a/drivers/s390/net/qeth_core_main.c
++++ b/drivers/s390/net/qeth_core_main.c
+@@ -2955,7 +2955,7 @@ int qeth_send_ipa_cmd(struct qeth_card *
+ }
+ EXPORT_SYMBOL_GPL(qeth_send_ipa_cmd);
+-int qeth_send_startlan(struct qeth_card *card)
++static int qeth_send_startlan(struct qeth_card *card)
+ {
+       int rc;
+       struct qeth_cmd_buffer *iob;
+@@ -2968,7 +2968,6 @@ int qeth_send_startlan(struct qeth_card
+       rc = qeth_send_ipa_cmd(card, iob, NULL, NULL);
+       return rc;
+ }
+-EXPORT_SYMBOL_GPL(qeth_send_startlan);
+ static int qeth_default_setadapterparms_cb(struct qeth_card *card,
+               struct qeth_reply *reply, unsigned long data)
+@@ -5080,6 +5079,20 @@ retriable:
+               goto out;
+       }
++      rc = qeth_send_startlan(card);
++      if (rc) {
++              QETH_DBF_TEXT_(SETUP, 2, "6err%d", rc);
++              if (rc == IPA_RC_LAN_OFFLINE) {
++                      dev_warn(&card->gdev->dev,
++                              "The LAN is offline\n");
++                      card->lan_online = 0;
++              } else {
++                      rc = -ENODEV;
++                      goto out;
++              }
++      } else
++              card->lan_online = 1;
++
+       card->options.ipa4.supported_funcs = 0;
+       card->options.ipa6.supported_funcs = 0;
+       card->options.adp.supported_funcs = 0;
+@@ -5091,14 +5104,14 @@ retriable:
+       if (qeth_is_supported(card, IPA_SETADAPTERPARMS)) {
+               rc = qeth_query_setadapterparms(card);
+               if (rc < 0) {
+-                      QETH_DBF_TEXT_(SETUP, 2, "6err%d", rc);
++                      QETH_DBF_TEXT_(SETUP, 2, "7err%d", rc);
+                       goto out;
+               }
+       }
+       if (qeth_adp_supported(card, IPA_SETADP_SET_DIAG_ASSIST)) {
+               rc = qeth_query_setdiagass(card);
+               if (rc < 0) {
+-                      QETH_DBF_TEXT_(SETUP, 2, "7err%d", rc);
++                      QETH_DBF_TEXT_(SETUP, 2, "8err%d", rc);
+                       goto out;
+               }
+       }
+--- a/drivers/s390/net/qeth_l2_main.c
++++ b/drivers/s390/net/qeth_l2_main.c
+@@ -1203,21 +1203,6 @@ static int __qeth_l2_set_online(struct c
+       /* softsetup */
+       QETH_DBF_TEXT(SETUP, 2, "softsetp");
+-      rc = qeth_send_startlan(card);
+-      if (rc) {
+-              QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
+-              if (rc == 0xe080) {
+-                      dev_warn(&card->gdev->dev,
+-                              "The LAN is offline\n");
+-                      card->lan_online = 0;
+-                      goto contin;
+-              }
+-              rc = -ENODEV;
+-              goto out_remove;
+-      } else
+-              card->lan_online = 1;
+-
+-contin:
+       if ((card->info.type == QETH_CARD_TYPE_OSD) ||
+           (card->info.type == QETH_CARD_TYPE_OSX)) {
+               if (qeth_l2_start_ipassists(card))
+--- a/drivers/s390/net/qeth_l3_main.c
++++ b/drivers/s390/net/qeth_l3_main.c
+@@ -3298,21 +3298,6 @@ static int __qeth_l3_set_online(struct c
+       /* softsetup */
+       QETH_DBF_TEXT(SETUP, 2, "softsetp");
+-      rc = qeth_send_startlan(card);
+-      if (rc) {
+-              QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
+-              if (rc == 0xe080) {
+-                      dev_warn(&card->gdev->dev,
+-                              "The LAN is offline\n");
+-                      card->lan_online = 0;
+-                      goto contin;
+-              }
+-              rc = -ENODEV;
+-              goto out_remove;
+-      } else
+-              card->lan_online = 1;
+-
+-contin:
+       rc = qeth_l3_setadapter_parms(card);
+       if (rc)
+               QETH_DBF_TEXT_(SETUP, 2, "2err%04x", rc);
diff --git a/queue-4.4/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch b/queue-4.4/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch
new file mode 100644 (file)
index 0000000..f896733
--- /dev/null
@@ -0,0 +1,64 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+Date: Wed, 11 Jan 2017 16:43:32 +0200
+Subject: serial: sh-sci: Fix register offsets for the IRDA serial port
+
+From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+
+
+[ Upstream commit a752ba18af8285e3eeda572f40dddaebff0c3621 ]
+
+Even though most of its registers are 8-bit wide, the IRDA has two
+16-bit registers that make it a 16-bit peripheral and not a 8-bit
+peripheral with addresses shifted by one. Fix the registers offset in
+the driver and the platform data regshift value.
+
+Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/sh/kernel/cpu/sh3/setup-sh770x.c |    1 -
+ drivers/tty/serial/sh-sci.c           |   17 ++++++++---------
+ 2 files changed, 8 insertions(+), 10 deletions(-)
+
+--- a/arch/sh/kernel/cpu/sh3/setup-sh770x.c
++++ b/arch/sh/kernel/cpu/sh3/setup-sh770x.c
+@@ -165,7 +165,6 @@ static struct plat_sci_port scif2_platfo
+       .scscr          = SCSCR_TE | SCSCR_RE,
+       .type           = PORT_IRDA,
+       .ops            = &sh770x_sci_port_ops,
+-      .regshift       = 1,
+ };
+ static struct resource scif2_resources[] = {
+--- a/drivers/tty/serial/sh-sci.c
++++ b/drivers/tty/serial/sh-sci.c
+@@ -163,18 +163,17 @@ static const struct plat_sci_reg sci_reg
+       },
+       /*
+-       * Common definitions for legacy IrDA ports, dependent on
+-       * regshift value.
++       * Common definitions for legacy IrDA ports.
+        */
+       [SCIx_IRDA_REGTYPE] = {
+               [SCSMR]         = { 0x00,  8 },
+-              [SCBRR]         = { 0x01,  8 },
+-              [SCSCR]         = { 0x02,  8 },
+-              [SCxTDR]        = { 0x03,  8 },
+-              [SCxSR]         = { 0x04,  8 },
+-              [SCxRDR]        = { 0x05,  8 },
+-              [SCFCR]         = { 0x06,  8 },
+-              [SCFDR]         = { 0x07, 16 },
++              [SCBRR]         = { 0x02,  8 },
++              [SCSCR]         = { 0x04,  8 },
++              [SCxTDR]        = { 0x06,  8 },
++              [SCxSR]         = { 0x08, 16 },
++              [SCxRDR]        = { 0x0a,  8 },
++              [SCFCR]         = { 0x0c,  8 },
++              [SCFDR]         = { 0x0e, 16 },
+               [SCTFDR]        = sci_reg_invalid,
+               [SCRFDR]        = sci_reg_invalid,
+               [SCSPTR]        = sci_reg_invalid,
diff --git a/queue-4.4/series b/queue-4.4/series
new file mode 100644 (file)
index 0000000..cc0fecd
--- /dev/null
@@ -0,0 +1,25 @@
+adv7604-initialize-drive-strength-to-default-when-using-dt.patch
+video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch
+pci-mvebu-handle-changes-to-the-bridge-windows-while-enabled.patch
+xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch
+arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch
+dt-bindings-clockgen-add-compatible-string-for-ls1012a.patch
+drm-drm_minor_register-clean-up-debugfs-on-failure.patch
+kvm-ppc-book-3s-xics-correct-the-real-mode-icp-rejecting-counter.patch
+iommu-arm-smmu-v3-clear-prior-settings-when-updating-stes.patch
+powerpc-corenet-explicitly-disable-the-sdhc-controller-on-kmcoge4.patch
+arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch
+crypto-vmx-disable-preemption-to-enable-vsx-in-aes_ctr.c.patch
+iio-trigger-free-trigger-resource-correctly.patch
+dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch
+dt-bindings-add-vendor-prefix-for-lego.patch
+phy-increase-size-of-mii_bus_id_size-and-bus_id.patch
+serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch
+usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch
+netfilter-nft_meta-deal-with-packet_loopback-in-netdev-family.patch
+ipsec-do-not-ignore-crypto-err-in-ah4-input.patch
+input-mpr121-handle-multiple-bits-change-of-status-register.patch
+input-mpr121-set-missing-event-capability.patch
+ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch
+s390-qeth-issue-startlan-as-first-ipa-command.patch
+net-dsa-select-net_switchdev.patch
diff --git a/queue-4.4/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch b/queue-4.4/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch
new file mode 100644 (file)
index 0000000..f8c8b24
--- /dev/null
@@ -0,0 +1,74 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: William wu <wulf@rock-chips.com>
+Date: Fri, 13 Jan 2017 11:04:22 +0800
+Subject: usb: hcd: initialize hcd->flags to 0 when rm hcd
+
+From: William wu <wulf@rock-chips.com>
+
+
+[ Upstream commit 76b8db0d480e8045e1a1902fc9ab143b3b9ef115 ]
+
+On some platforms(e.g. rk3399 board), we can call hcd_add/remove
+consecutively without calling usb_put_hcd/usb_create_hcd in between,
+so hcd->flags can be stale.
+
+If the HC dies due to whatever reason then without this patch we get
+the below error on next hcd_add.
+
+[173.296154] xhci-hcd xhci-hcd.2.auto: HC died; cleaning up
+[173.296209] xhci-hcd xhci-hcd.2.auto: xHCI Host Controller
+[173.296762] xhci-hcd xhci-hcd.2.auto: new USB bus registered, assigned bus number 6
+[173.296931] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
+[173.297179] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003
+[173.297203] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[173.297222] usb usb6: Product: xHCI Host Controller
+[173.297240] usb usb6: Manufacturer: Linux 4.4.21 xhci-hcd
+[173.297257] usb usb6: SerialNumber: xhci-hcd.2.auto
+[173.298680] hub 6-0:1.0: USB hub found
+[173.298749] hub 6-0:1.0: 1 port detected
+[173.299382] rockchip-dwc3 usb@fe800000: USB HOST connected
+[173.395418] hub 5-0:1.0: activate --> -19
+[173.603447] irq 228: nobody cared (try booting with the "irqpoll" option)
+[173.603493] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.21 #9
+[173.603513] Hardware name: Google Kevin (DT)
+[173.603531] Call trace:
+[173.603568] [<ffffffc0002087dc>] dump_backtrace+0x0/0x160
+[173.603596] [<ffffffc00020895c>] show_stack+0x20/0x28
+[173.603623] [<ffffffc0004b28a8>] dump_stack+0x90/0xb0
+[173.603650] [<ffffffc00027347c>] __report_bad_irq+0x48/0xe8
+[173.603674] [<ffffffc0002737cc>] note_interrupt+0x1e8/0x28c
+[173.603698] [<ffffffc000270a38>] handle_irq_event_percpu+0x1d4/0x25c
+[173.603722] [<ffffffc000270b0c>] handle_irq_event+0x4c/0x7c
+[173.603748] [<ffffffc00027456c>] handle_fasteoi_irq+0xb4/0x124
+[173.603777] [<ffffffc00026fe3c>] generic_handle_irq+0x30/0x44
+[173.603804] [<ffffffc0002701a8>] __handle_domain_irq+0x90/0xbc
+[173.603827] [<ffffffc0002006f4>] gic_handle_irq+0xcc/0x188
+...
+[173.604500] [<ffffffc000203700>] el1_irq+0x80/0xf8
+[173.604530] [<ffffffc000261388>] cpu_startup_entry+0x38/0x3cc
+[173.604558] [<ffffffc00090f7d8>] rest_init+0x8c/0x94
+[173.604585] [<ffffffc000e009ac>] start_kernel+0x3d0/0x3fc
+[173.604607] [<0000000000b16000>] 0xb16000
+[173.604622] handlers:
+[173.604648] [<ffffffc000642084>] usb_hcd_irq
+[173.604673] Disabling IRQ #228
+
+Signed-off-by: William wu <wulf@rock-chips.com>
+Acked-by: Roger Quadros <rogerq@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/hcd.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -2997,6 +2997,7 @@ void usb_remove_hcd(struct usb_hcd *hcd)
+       }
+       usb_put_invalidate_rhdev(hcd);
++      hcd->flags = 0;
+ }
+ EXPORT_SYMBOL_GPL(usb_remove_hcd);
diff --git a/queue-4.4/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch b/queue-4.4/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch
new file mode 100644 (file)
index 0000000..ecd0f1f
--- /dev/null
@@ -0,0 +1,41 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: "Maciej W. Rozycki" <macro@linux-mips.org>
+Date: Mon, 30 Jan 2017 17:39:48 +0100
+Subject: video: fbdev: pmag-ba-fb: Remove bad `__init' annotation
+
+From: "Maciej W. Rozycki" <macro@linux-mips.org>
+
+
+[ Upstream commit 879e5a0df626f39cbb3c61bb90373e56d67012c4 ]
+
+Fix:
+
+WARNING: drivers/video/fbdev/pmag-ba-fb.o(.text+0x308): Section mismatch in reference from the function pmagbafb_probe() to the function .init.text:pmagbafb_erase_cursor()
+The function pmagbafb_probe()
+references the function __init pmagbafb_erase_cursor().
+This is often because pmagbafb_probe lacks a __init
+annotation or the annotation of pmagbafb_erase_cursor is wrong.
+
+-- a fallout from a missed update from commit 9625b51350cc ("VIDEO:
+PMAG-BA: Fix section mismatch") and then commit 48c68c4f1b54 ("Drivers:
+video: remove __dev* attributes.")
+
+Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
+Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/video/fbdev/pmag-ba-fb.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/video/fbdev/pmag-ba-fb.c
++++ b/drivers/video/fbdev/pmag-ba-fb.c
+@@ -129,7 +129,7 @@ static struct fb_ops pmagbafb_ops = {
+ /*
+  * Turn the hardware cursor off.
+  */
+-static void __init pmagbafb_erase_cursor(struct fb_info *info)
++static void pmagbafb_erase_cursor(struct fb_info *info)
+ {
+       struct pmagbafb_par *par = info->par;
diff --git a/queue-4.4/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch b/queue-4.4/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch
new file mode 100644 (file)
index 0000000..2c11180
--- /dev/null
@@ -0,0 +1,52 @@
+From foo@baz Thu Nov  9 18:22:51 CET 2017
+From: Juergen Gross <jgross@suse.com>
+Date: Tue, 10 Jan 2017 14:32:52 +0100
+Subject: xen/netback: set default upper limit of tx/rx queues to 8
+
+From: Juergen Gross <jgross@suse.com>
+
+
+[ Upstream commit 56dd5af9bc23d0d5d23bb207c477715b4c2216c5 ]
+
+The default for the maximum number of tx/rx queues of one interface is
+the number of cpus of the system today. As each queue pair reserves 512
+grant pages this default consumes a ridiculous number of grants for
+large guests.
+
+Limit the queue number to 8 as default. This value can be modified
+via a module parameter if required.
+
+Signed-off-by: Juergen Gross <jgross@suse.com>
+Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
+Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
+Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/xen-netback/netback.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/xen-netback/netback.c
++++ b/drivers/net/xen-netback/netback.c
+@@ -67,6 +67,7 @@ module_param(rx_drain_timeout_msecs, uin
+ unsigned int rx_stall_timeout_msecs = 60000;
+ module_param(rx_stall_timeout_msecs, uint, 0444);
++#define MAX_QUEUES_DEFAULT 8
+ unsigned int xenvif_max_queues;
+ module_param_named(max_queues, xenvif_max_queues, uint, 0644);
+ MODULE_PARM_DESC(max_queues,
+@@ -2157,11 +2158,12 @@ static int __init netback_init(void)
+       if (!xen_domain())
+               return -ENODEV;
+-      /* Allow as many queues as there are CPUs if user has not
++      /* Allow as many queues as there are CPUs but max. 8 if user has not
+        * specified a value.
+        */
+       if (xenvif_max_queues == 0)
+-              xenvif_max_queues = num_online_cpus();
++              xenvif_max_queues = min_t(unsigned int, MAX_QUEUES_DEFAULT,
++                                        num_online_cpus());
+       if (fatal_skb_slots < XEN_NETBK_LEGACY_SLOTS_MAX) {
+               pr_info("fatal_skb_slots too small (%d), bump it to XEN_NETBK_LEGACY_SLOTS_MAX (%d)\n",