From: Greg Kroah-Hartman Date: Thu, 9 Nov 2017 09:48:12 +0000 (+0100) Subject: 3.18-stable patches X-Git-Tag: v3.18.81~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0450997c61c1d252c1e78da45313ff69792d11d6;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.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 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 ipsec-do-not-ignore-crypto-err-in-ah4-input.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 video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch --- diff --git a/queue-3.18/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch b/queue-3.18/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch new file mode 100644 index 00000000000..a666fa33295 --- /dev/null +++ b/queue-3.18/arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch @@ -0,0 +1,55 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Patrick Bruenn +Date: Wed, 25 Jan 2017 06:25:48 +0100 +Subject: ARM: dts: imx53-qsb-common: fix FEC pinmux config + +From: Patrick Bruenn + + +[ Upstream commit 8b649e426336d7d4800ff9c82858328f4215ba01 ] + +The pinmux configuration in device tree was different from manual +muxing in /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 +Signed-off-by: Shawn Guo +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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-3.18/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch b/queue-3.18/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch new file mode 100644 index 00000000000..8d50909bdf5 --- /dev/null +++ b/queue-3.18/arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.patch @@ -0,0 +1,30 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Tony Lindgren +Date: Fri, 20 Jan 2017 12:13:19 -0800 +Subject: ARM: omap2plus_defconfig: Fix probe errors on UARTs 5 and 6 + +From: Tony Lindgren + + +[ 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 +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/configs/omap2plus_defconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/configs/omap2plus_defconfig ++++ b/arch/arm/configs/omap2plus_defconfig +@@ -169,6 +169,7 @@ CONFIG_INPUT_TWL4030_PWRBUTTON=y + 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-3.18/drm-drm_minor_register-clean-up-debugfs-on-failure.patch b/queue-3.18/drm-drm_minor_register-clean-up-debugfs-on-failure.patch new file mode 100644 index 00000000000..b7bd98ae444 --- /dev/null +++ b/queue-3.18/drm-drm_minor_register-clean-up-debugfs-on-failure.patch @@ -0,0 +1,33 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Noralf Trønnes +Date: Thu, 26 Jan 2017 23:56:04 +0100 +Subject: drm: drm_minor_register(): Clean up debugfs on failure + +From: Noralf Trønnes + + +[ 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 +Signed-off-by: Daniel Vetter +Link: http://patchwork.freedesktop.org/patch/msgid/20170126225621.12314-3-noralf@tronnes.org +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -320,7 +320,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-3.18/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch b/queue-3.18/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch new file mode 100644 index 00000000000..281e3c1e274 --- /dev/null +++ b/queue-3.18/dt-bindings-add-lego-mindstorms-ev3-compatible-specification.patch @@ -0,0 +1,34 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: David Lechner +Date: Fri, 13 Jan 2017 13:03:40 -0600 +Subject: dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification + +From: David Lechner + + +[ Upstream commit 21078ab174c99885ca83a5c32db0d33b1617745e ] + +This adds the board level device tree specification for LEGO MINDSTORMS EV3 + +Acked-by: Rob Herring +Signed-off-by: David Lechner +Signed-off-by: Sekhar Nori +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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-3.18/dt-bindings-add-vendor-prefix-for-lego.patch b/queue-3.18/dt-bindings-add-vendor-prefix-for-lego.patch new file mode 100644 index 00000000000..a05e6325f68 --- /dev/null +++ b/queue-3.18/dt-bindings-add-vendor-prefix-for-lego.patch @@ -0,0 +1,31 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: David Lechner +Date: Fri, 13 Jan 2017 13:03:39 -0600 +Subject: dt-bindings: Add vendor prefix for LEGO + +From: David Lechner + + +[ Upstream commit 7dcc31e2e68a386a29070384b51683ece80982bf ] + +Add a vendor prefix for LEGO Systems A/S + +Acked-by: Rob Herring +Signed-off-by: David Lechner +Signed-off-by: Sekhar Nori +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -83,6 +83,7 @@ karo Ka-Ro electronics GmbH + keymile Keymile GmbH + 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-3.18/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch b/queue-3.18/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch new file mode 100644 index 00000000000..6315aaa930e --- /dev/null +++ b/queue-3.18/ib-ipoib-change-list_del-to-list_del_init-in-the-tx-object.patch @@ -0,0 +1,41 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Feras Daoud +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 + + +[ 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 +Signed-off-by: Erez Shitrit +Reviewed-by: Alex Vesker +Signed-off-by: Leon Romanovsky +Reviewed-by: Yuval Shaia +Signed-off-by: Doug Ledford +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -1362,7 +1362,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-3.18/iio-trigger-free-trigger-resource-correctly.patch b/queue-3.18/iio-trigger-free-trigger-resource-correctly.patch new file mode 100644 index 00000000000..8578989a299 --- /dev/null +++ b/queue-3.18/iio-trigger-free-trigger-resource-correctly.patch @@ -0,0 +1,99 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Alison Schofield +Date: Thu, 19 Jan 2017 19:47:38 -0800 +Subject: iio: trigger: free trigger resource correctly + +From: Alison Schofield + + +[ 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 +Signed-off-by: Jonathan Cameron +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -173,7 +173,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 +@@ -258,7 +258,7 @@ out_free_irq: + out1: + iio_trigger_unregister(st->trig); + out: +- iio_trigger_put(st->trig); ++ iio_trigger_free(st->trig); + return ret; + } + +@@ -271,7 +271,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-3.18/input-mpr121-handle-multiple-bits-change-of-status-register.patch b/queue-3.18/input-mpr121-handle-multiple-bits-change-of-status-register.patch new file mode 100644 index 00000000000..f4b17cc8b66 --- /dev/null +++ b/queue-3.18/input-mpr121-handle-multiple-bits-change-of-status-register.patch @@ -0,0 +1,68 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Akinobu Mita +Date: Sun, 15 Jan 2017 14:44:30 -0800 +Subject: Input: mpr121 - handle multiple bits change of status register + +From: Akinobu Mita + + +[ 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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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-3.18/input-mpr121-set-missing-event-capability.patch b/queue-3.18/input-mpr121-set-missing-event-capability.patch new file mode 100644 index 00000000000..abddcbf685c --- /dev/null +++ b/queue-3.18/input-mpr121-set-missing-event-capability.patch @@ -0,0 +1,34 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Akinobu Mita +Date: Sun, 15 Jan 2017 14:44:05 -0800 +Subject: Input: mpr121 - set missing event capability + +From: Akinobu Mita + + +[ 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 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -235,6 +235,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-3.18/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch b/queue-3.18/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch new file mode 100644 index 00000000000..9e092e84349 --- /dev/null +++ b/queue-3.18/ipsec-do-not-ignore-crypto-err-in-ah4-input.patch @@ -0,0 +1,41 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Gilad Ben-Yossef +Date: Mon, 16 Jan 2017 13:17:55 +0200 +Subject: IPsec: do not ignore crypto err in ah4 input + +From: Gilad Ben-Yossef + + +[ 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 +Signed-off-by: Steffen Klassert +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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-3.18/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch b/queue-3.18/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch new file mode 100644 index 00000000000..b18174f3119 --- /dev/null +++ b/queue-3.18/phy-increase-size-of-mii_bus_id_size-and-bus_id.patch @@ -0,0 +1,49 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Volodymyr Bendiuga +Date: Thu, 19 Jan 2017 17:05:04 +0100 +Subject: phy: increase size of MII_BUS_ID_SIZE and bus_id + +From: Volodymyr Bendiuga + + +[ 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 +Signed-off-by: Magnus Öberg +Reviewed-by: Andrew Lunn +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/phy.h | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +--- a/include/linux/phy.h ++++ b/include/linux/phy.h +@@ -135,11 +135,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. */ +@@ -573,7 +569,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-3.18/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch b/queue-3.18/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch new file mode 100644 index 00000000000..6be42e0822b --- /dev/null +++ b/queue-3.18/serial-sh-sci-fix-register-offsets-for-the-irda-serial-port.patch @@ -0,0 +1,64 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Laurent Pinchart +Date: Wed, 11 Jan 2017 16:43:32 +0200 +Subject: serial: sh-sci: Fix register offsets for the IRDA serial port + +From: Laurent Pinchart + + +[ 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 +Reviewed-by: Geert Uytterhoeven +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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 +@@ -171,18 +171,17 @@ static struct plat_sci_reg sci_regmap[SC + }, + + /* +- * 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-3.18/series b/queue-3.18/series new file mode 100644 index 00000000000..7ac5db65280 --- /dev/null +++ b/queue-3.18/series @@ -0,0 +1,15 @@ +video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch +xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch +arm-dts-imx53-qsb-common-fix-fec-pinmux-config.patch +drm-drm_minor_register-clean-up-debugfs-on-failure.patch +arm-omap2plus_defconfig-fix-probe-errors-on-uarts-5-and-6.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 +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 diff --git a/queue-3.18/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch b/queue-3.18/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch new file mode 100644 index 00000000000..f71036f60b7 --- /dev/null +++ b/queue-3.18/usb-hcd-initialize-hcd-flags-to-0-when-rm-hcd.patch @@ -0,0 +1,74 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: William wu +Date: Fri, 13 Jan 2017 11:04:22 +0800 +Subject: usb: hcd: initialize hcd->flags to 0 when rm hcd + +From: William wu + + +[ 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] [] dump_backtrace+0x0/0x160 +[173.603596] [] show_stack+0x20/0x28 +[173.603623] [] dump_stack+0x90/0xb0 +[173.603650] [] __report_bad_irq+0x48/0xe8 +[173.603674] [] note_interrupt+0x1e8/0x28c +[173.603698] [] handle_irq_event_percpu+0x1d4/0x25c +[173.603722] [] handle_irq_event+0x4c/0x7c +[173.603748] [] handle_fasteoi_irq+0xb4/0x124 +[173.603777] [] generic_handle_irq+0x30/0x44 +[173.603804] [] __handle_domain_irq+0x90/0xbc +[173.603827] [] gic_handle_irq+0xcc/0x188 +... +[173.604500] [] el1_irq+0x80/0xf8 +[173.604530] [] cpu_startup_entry+0x38/0x3cc +[173.604558] [] rest_init+0x8c/0x94 +[173.604585] [] start_kernel+0x3d0/0x3fc +[173.604607] [<0000000000b16000>] 0xb16000 +[173.604622] handlers: +[173.604648] [] usb_hcd_irq +[173.604673] Disabling IRQ #228 + +Signed-off-by: William wu +Acked-by: Roger Quadros +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/core/hcd.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/core/hcd.c ++++ b/drivers/usb/core/hcd.c +@@ -2927,6 +2927,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-3.18/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch b/queue-3.18/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch new file mode 100644 index 00000000000..3d1e3402d2b --- /dev/null +++ b/queue-3.18/video-fbdev-pmag-ba-fb-remove-bad-__init-annotation.patch @@ -0,0 +1,41 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: "Maciej W. Rozycki" +Date: Mon, 30 Jan 2017 17:39:48 +0100 +Subject: video: fbdev: pmag-ba-fb: Remove bad `__init' annotation + +From: "Maciej W. Rozycki" + + +[ 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 +Signed-off-by: Bartlomiej Zolnierkiewicz +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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-3.18/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch b/queue-3.18/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch new file mode 100644 index 00000000000..46a6b7c545b --- /dev/null +++ b/queue-3.18/xen-netback-set-default-upper-limit-of-tx-rx-queues-to-8.patch @@ -0,0 +1,52 @@ +From foo@baz Thu Nov 9 10:19:57 CET 2017 +From: Juergen Gross +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 + + +[ 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 +Reviewed-by: Boris Ostrovsky +Signed-off-by: Boris Ostrovsky +Signed-off-by: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + 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, +@@ -2189,11 +2190,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",