From: Greg Kroah-Hartman Date: Tue, 7 Jan 2020 16:47:16 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.14.163~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ef247677e738f005f370aadaffb752c9e0324e3;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch bluetooth-delete-a-stray-unlock.patch bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch fs-cifs-fix-atime-update-check-vs-mtime.patch media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch media-usb-fix-memory-leak-in-af9005_identify_state.patch phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch regulator-ab8500-remove-ab8505-usb-regulator.patch regulator-axp20x-fix-axp20x_set_ramp_delay.patch regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch spi-uniphier-fix-fifo-threshold.patch tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch watchdog-tqmx86_wdt-fix-build-error.patch --- diff --git a/queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch b/queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch new file mode 100644 index 00000000000..9f1caa93c24 --- /dev/null +++ b/queue-5.4/arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch @@ -0,0 +1,31 @@ +From 1c6d575574ec87dbccf7af20ef9dc0df02614069 Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Mon, 9 Sep 2019 19:01:23 +0400 +Subject: arm64: dts: meson-gxl-s905x-khadas-vim: fix uart_A bluetooth node + +From: Christian Hewitt + +commit 1c6d575574ec87dbccf7af20ef9dc0df02614069 upstream. + +Fixes: dd5297cc8b8b ("arm64: dts: meson-gxl-s905x-khadas-vim enable Bluetooth") +Signed-off-by: Christian Hewitt +Reviewed-by: Kevin Hilman +Signed-off-by: Kevin Hilman +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts +@@ -192,6 +192,9 @@ + bluetooth { + compatible = "brcm,bcm43438-bt"; + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; ++ max-speed = <2000000>; ++ clocks = <&wifi32k>; ++ clock-names = "lpo"; + }; + }; + diff --git a/queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch b/queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch new file mode 100644 index 00000000000..efbb387b4ec --- /dev/null +++ b/queue-5.4/arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch @@ -0,0 +1,31 @@ +From 388a2772979b625042524d8b91280616ab4ff5ee Mon Sep 17 00:00:00 2001 +From: Christian Hewitt +Date: Mon, 9 Sep 2019 19:01:24 +0400 +Subject: arm64: dts: meson-gxm-khadas-vim2: fix uart_A bluetooth node + +From: Christian Hewitt + +commit 388a2772979b625042524d8b91280616ab4ff5ee upstream. + +Fixes: 33344e2111a3 ("arm64: dts: meson-gxm-khadas-vim2: fix Bluetooth support") +Signed-off-by: Christian Hewitt +Reviewed-by: Kevin Hilman +Signed-off-by: Kevin Hilman +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts +@@ -409,6 +409,9 @@ + bluetooth { + compatible = "brcm,bcm43438-bt"; + shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>; ++ max-speed = <2000000>; ++ clocks = <&wifi32k>; ++ clock-names = "lpo"; + }; + }; + diff --git a/queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch b/queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch new file mode 100644 index 00000000000..26bba77fc41 --- /dev/null +++ b/queue-5.4/arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch @@ -0,0 +1,142 @@ +From 72c9b5f6f75fbc6c47e0a2d02bc3838a2a47c90a Mon Sep 17 00:00:00 2001 +From: Anand Moon +Date: Mon, 2 Sep 2019 05:49:35 +0000 +Subject: arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed warning + +From: Anand Moon + +commit 72c9b5f6f75fbc6c47e0a2d02bc3838a2a47c90a upstream. + +usb_otg bus needs to get initialize from the u-boot to be configured +to used as power source to SBC or usb otg port will get configured +as host device. Right now this support is missing in the u-boot and +phy driver so to avoid power failed warning, we would disable this +feature until proper fix is found. + +[ 2.716048] phy phy-c0000000.phy.0: USB ID detect failed! +[ 2.720186] phy phy-c0000000.phy.0: phy poweron failed --> -22 +[ 2.726001] ------------[ cut here ]------------ +[ 2.730583] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8 +[ 2.738983] Modules linked in: +[ 2.742005] CPU: 0 PID: 12 Comm: kworker/0:1 Not tainted 5.2.9-1-ARCH #1 +[ 2.748643] Hardware name: Hardkernel ODROID-C2 (DT) +[ 2.753566] Workqueue: events deferred_probe_work_func +[ 2.758649] pstate: 60000005 (nZCv daif -PAN -UAO) +[ 2.763394] pc : _regulator_put+0x3c/0xe8 +[ 2.767361] lr : _regulator_put+0x3c/0xe8 +[ 2.771326] sp : ffff000011aa3a50 +[ 2.774604] x29: ffff000011aa3a50 x28: ffff80007ed1b600 +[ 2.779865] x27: ffff80007f7036a8 x26: ffff80007f7036a8 +[ 2.785126] x25: 0000000000000000 x24: ffff000011a44458 +[ 2.790387] x23: ffff000011344218 x22: 0000000000000009 +[ 2.795649] x21: ffff000011aa3b68 x20: ffff80007ed1b500 +[ 2.800910] x19: ffff80007ed1b500 x18: 0000000000000010 +[ 2.806171] x17: 000000005be5943c x16: 00000000f1c73b29 +[ 2.811432] x15: ffffffffffffffff x14: ffff0000117396c8 +[ 2.816694] x13: ffff000091aa37a7 x12: ffff000011aa37af +[ 2.821955] x11: ffff000011763000 x10: ffff000011aa3730 +[ 2.827216] x9 : 00000000ffffffd0 x8 : ffff000010871760 +[ 2.832477] x7 : 00000000000000d0 x6 : ffff0000119d151b +[ 2.837739] x5 : 000000000000000f x4 : 0000000000000000 +[ 2.843000] x3 : 0000000000000000 x2 : 38104b2678c20100 +[ 2.848261] x1 : 0000000000000000 x0 : 0000000000000024 +[ 2.853523] Call trace: +[ 2.855940] _regulator_put+0x3c/0xe8 +[ 2.859562] regulator_put+0x34/0x48 +[ 2.863098] regulator_bulk_free+0x40/0x58 +[ 2.867153] devm_regulator_bulk_release+0x24/0x30 +[ 2.871896] release_nodes+0x1f0/0x2e0 +[ 2.875604] devres_release_all+0x64/0xa4 +[ 2.879571] really_probe+0x1c8/0x3e0 +[ 2.883194] driver_probe_device+0xe4/0x138 +[ 2.887334] __device_attach_driver+0x90/0x110 +[ 2.891733] bus_for_each_drv+0x8c/0xd8 +[ 2.895527] __device_attach+0xdc/0x160 +[ 2.899322] device_initial_probe+0x24/0x30 +[ 2.903463] bus_probe_device+0x9c/0xa8 +[ 2.907258] deferred_probe_work_func+0xa0/0xf0 +[ 2.911745] process_one_work+0x1b4/0x408 +[ 2.915711] worker_thread+0x54/0x4b8 +[ 2.919334] kthread+0x12c/0x130 +[ 2.922526] ret_from_fork+0x10/0x1c +[ 2.926060] ---[ end trace 51a68f4c0035d6c0 ]--- +[ 2.930691] ------------[ cut here ]------------ +[ 2.935242] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8 +[ 2.943653] Modules linked in: +[ 2.946675] CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: G W 5.2.9-1-ARCH #1 +[ 2.954694] Hardware name: Hardkernel ODROID-C2 (DT) +[ 2.959613] Workqueue: events deferred_probe_work_func +[ 2.964700] pstate: 60000005 (nZCv daif -PAN -UAO) +[ 2.969445] pc : _regulator_put+0x3c/0xe8 +[ 2.973412] lr : _regulator_put+0x3c/0xe8 +[ 2.977377] sp : ffff000011aa3a50 +[ 2.980655] x29: ffff000011aa3a50 x28: ffff80007ed1b600 +[ 2.985916] x27: ffff80007f7036a8 x26: ffff80007f7036a8 +[ 2.991177] x25: 0000000000000000 x24: ffff000011a44458 +[ 2.996439] x23: ffff000011344218 x22: 0000000000000009 +[ 3.001700] x21: ffff000011aa3b68 x20: ffff80007ed1bd00 +[ 3.006961] x19: ffff80007ed1bd00 x18: 0000000000000010 +[ 3.012222] x17: 000000005be5943c x16: 00000000f1c73b29 +[ 3.017484] x15: ffffffffffffffff x14: ffff0000117396c8 +[ 3.022745] x13: ffff000091aa37a7 x12: ffff000011aa37af +[ 3.028006] x11: ffff000011763000 x10: ffff000011aa3730 +[ 3.033267] x9 : 00000000ffffffd0 x8 : ffff000010871760 +[ 3.038528] x7 : 00000000000000fd x6 : ffff0000119d151b +[ 3.043790] x5 : 000000000000000f x4 : 0000000000000000 +[ 3.049051] x3 : 0000000000000000 x2 : 38104b2678c20100 +[ 3.054312] x1 : 0000000000000000 x0 : 0000000000000024 +[ 3.059574] Call trace: +[ 3.061991] _regulator_put+0x3c/0xe8 +[ 3.065613] regulator_put+0x34/0x48 +[ 3.069149] regulator_bulk_free+0x40/0x58 +[ 3.073203] devm_regulator_bulk_release+0x24/0x30 +[ 3.077947] release_nodes+0x1f0/0x2e0 +[ 3.081655] devres_release_all+0x64/0xa4 +[ 3.085622] really_probe+0x1c8/0x3e0 +[ 3.089245] driver_probe_device+0xe4/0x138 +[ 3.093385] __device_attach_driver+0x90/0x110 +[ 3.097784] bus_for_each_drv+0x8c/0xd8 +[ 3.101578] __device_attach+0xdc/0x160 +[ 3.105373] device_initial_probe+0x24/0x30 +[ 3.109514] bus_probe_device+0x9c/0xa8 +[ 3.113309] deferred_probe_work_func+0xa0/0xf0 +[ 3.117796] process_one_work+0x1b4/0x408 +[ 3.121762] worker_thread+0x54/0x4b8 +[ 3.125384] kthread+0x12c/0x130 +[ 3.128575] ret_from_fork+0x10/0x1c +[ 3.132110] ---[ end trace 51a68f4c0035d6c1 ]--- +[ 3.136753] dwc2: probe of c9000000.usb failed with error -22 + +Fixes: 5a0803bd5ae2 ("ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes") +Cc: Martin Blumenstingl +Cc: Jerome Brunet +Cc: Neil Armstrong +Acked-by: Martin Blumenstingl +Signed-off-by: Anand Moon +Signed-off-by: Kevin Hilman +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts ++++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +@@ -296,7 +296,7 @@ + }; + + &usb0_phy { +- status = "okay"; ++ status = "disabled"; + phy-supply = <&usb_otg_pwr>; + }; + +@@ -306,7 +306,7 @@ + }; + + &usb0 { +- status = "okay"; ++ status = "disabled"; + }; + + &usb1 { diff --git a/queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch b/queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch new file mode 100644 index 00000000000..30e9a885f63 --- /dev/null +++ b/queue-5.4/bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch @@ -0,0 +1,41 @@ +From 3d44a6fd0775e6215e836423e27f8eedf8c871ea Mon Sep 17 00:00:00 2001 +From: Oliver Neukum +Date: Thu, 14 Nov 2019 16:01:18 +0100 +Subject: Bluetooth: btusb: fix PM leak in error case of setup + +From: Oliver Neukum + +commit 3d44a6fd0775e6215e836423e27f8eedf8c871ea upstream. + +If setup() fails a reference for runtime PM has already +been taken. Proper use of the error handling in btusb_open()is needed. +You cannot just return. + +Fixes: ace31982585a3 ("Bluetooth: btusb: Add setup callback for chip init on USB") +Signed-off-by: Oliver Neukum +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/bluetooth/btusb.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/bluetooth/btusb.c ++++ b/drivers/bluetooth/btusb.c +@@ -1200,7 +1200,7 @@ static int btusb_open(struct hci_dev *hd + if (data->setup_on_usb) { + err = data->setup_on_usb(hdev); + if (err < 0) +- return err; ++ goto setup_fail; + } + + data->intf->needs_remote_wakeup = 1; +@@ -1239,6 +1239,7 @@ done: + + failed: + clear_bit(BTUSB_INTR_RUNNING, &data->flags); ++setup_fail: + usb_autopm_put_interface(data->intf); + return err; + } diff --git a/queue-5.4/bluetooth-delete-a-stray-unlock.patch b/queue-5.4/bluetooth-delete-a-stray-unlock.patch new file mode 100644 index 00000000000..20354b1a5c7 --- /dev/null +++ b/queue-5.4/bluetooth-delete-a-stray-unlock.patch @@ -0,0 +1,36 @@ +From df66499a1fab340c167250a5743931dc50d5f0fa Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Tue, 19 Nov 2019 09:17:05 +0300 +Subject: Bluetooth: delete a stray unlock + +From: Dan Carpenter + +commit df66499a1fab340c167250a5743931dc50d5f0fa upstream. + +We used to take a lock in amp_physical_cfm() but then we moved it to +the caller function. Unfortunately the unlock on this error path was +overlooked so it leads to a double unlock. + +Fixes: a514b17fab51 ("Bluetooth: Refactor locking in amp_physical_cfm") +Signed-off-by: Dan Carpenter +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/l2cap_core.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/net/bluetooth/l2cap_core.c ++++ b/net/bluetooth/l2cap_core.c +@@ -4936,10 +4936,8 @@ void __l2cap_physical_cfm(struct l2cap_c + BT_DBG("chan %p, result %d, local_amp_id %d, remote_amp_id %d", + chan, result, local_amp_id, remote_amp_id); + +- if (chan->state == BT_DISCONN || chan->state == BT_CLOSED) { +- l2cap_chan_unlock(chan); ++ if (chan->state == BT_DISCONN || chan->state == BT_CLOSED) + return; +- } + + if (chan->state != BT_CONNECTED) { + l2cap_do_create(chan, result, local_amp_id, remote_amp_id); diff --git a/queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch b/queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch new file mode 100644 index 00000000000..2fc3791edf0 --- /dev/null +++ b/queue-5.4/bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch @@ -0,0 +1,36 @@ +From d088337c38a5cd8f0230fbf2d514ff7672f9d0d3 Mon Sep 17 00:00:00 2001 +From: Navid Emamdoost +Date: Thu, 21 Nov 2019 14:20:36 -0600 +Subject: Bluetooth: Fix memory leak in hci_connect_le_scan + +From: Navid Emamdoost + +commit d088337c38a5cd8f0230fbf2d514ff7672f9d0d3 upstream. + +In the implementation of hci_connect_le_scan() when conn is added via +hci_conn_add(), if hci_explicit_conn_params_set() fails the allocated +memory for conn is leaked. Use hci_conn_del() to release it. + +Fixes: f75113a26008 ("Bluetooth: add hci_connect_le_scan") +Signed-off-by: Navid Emamdoost +Signed-off-by: Marcel Holtmann +Signed-off-by: Greg Kroah-Hartman + +--- + net/bluetooth/hci_conn.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/net/bluetooth/hci_conn.c ++++ b/net/bluetooth/hci_conn.c +@@ -1176,8 +1176,10 @@ struct hci_conn *hci_connect_le_scan(str + if (!conn) + return ERR_PTR(-ENOMEM); + +- if (hci_explicit_conn_params_set(hdev, dst, dst_type) < 0) ++ if (hci_explicit_conn_params_set(hdev, dst, dst_type) < 0) { ++ hci_conn_del(conn); + return ERR_PTR(-EBUSY); ++ } + + conn->state = BT_CONNECT; + set_bit(HCI_CONN_SCANNING, &conn->flags); diff --git a/queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch b/queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch new file mode 100644 index 00000000000..6801ac995fd --- /dev/null +++ b/queue-5.4/cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch @@ -0,0 +1,57 @@ +From df3df923b31d298c3d3653a0380202b9f2df9864 Mon Sep 17 00:00:00 2001 +From: "Paulo Alcantara (SUSE)" +Date: Fri, 22 Nov 2019 12:30:52 -0300 +Subject: cifs: Fix lookup of root ses in DFS referral cache + +From: Paulo Alcantara (SUSE) + +commit df3df923b31d298c3d3653a0380202b9f2df9864 upstream. + +We don't care about module aliasing validation in +cifs_compose_mount_options(..., is_smb3) when finding the root SMB +session of an DFS namespace in order to refresh DFS referral cache. + +The following issue has been observed when mounting with '-t smb3' and +then specifying 'vers=2.0': + +... +Nov 08 15:27:08 tw kernel: address conversion returned 0 for FS0.WIN.LOCAL +Nov 08 15:27:08 tw kernel: [kworke] ==> dns_query((null),FS0.WIN.LOCAL,13,(null)) +Nov 08 15:27:08 tw kernel: [kworke] call request_key(,FS0.WIN.LOCAL,) +Nov 08 15:27:08 tw kernel: [kworke] ==> dns_resolver_cmp(FS0.WIN.LOCAL,FS0.WIN.LOCAL) +Nov 08 15:27:08 tw kernel: [kworke] <== dns_resolver_cmp() = 1 +Nov 08 15:27:08 tw kernel: [kworke] <== dns_query() = 13 +Nov 08 15:27:08 tw kernel: fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip: resolved: FS0.WIN.LOCAL to 192.168.30.26 +===> Nov 08 15:27:08 tw kernel: CIFS VFS: vers=2.0 not permitted when mounting with smb3 +Nov 08 15:27:08 tw kernel: fs/cifs/dfs_cache.c: CIFS VFS: leaving refresh_tcon (xid = 26) rc = -22 +... + +Fixes: 5072010ccf05 ("cifs: Fix DFS cache refresher for DFS links") +Signed-off-by: Paulo Alcantara (SUSE) +Reviewed-by: Aurelien Aptel +Signed-off-by: Steve French +Signed-off-by: Greg Kroah-Hartman + +--- + fs/cifs/dfs_cache.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/fs/cifs/dfs_cache.c ++++ b/fs/cifs/dfs_cache.c +@@ -1317,7 +1317,6 @@ static struct cifs_ses *find_root_ses(st + int rc; + struct dfs_info3_param ref = {0}; + char *mdata = NULL, *devname = NULL; +- bool is_smb3 = tcon->ses->server->vals->header_preamble_size == 0; + struct TCP_Server_Info *server; + struct cifs_ses *ses; + struct smb_vol vol; +@@ -1344,7 +1343,7 @@ static struct cifs_ses *find_root_ses(st + goto out; + } + +- rc = cifs_setup_volume_info(&vol, mdata, devname, is_smb3); ++ rc = cifs_setup_volume_info(&vol, mdata, devname, false); + kfree(devname); + + if (rc) { diff --git a/queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch b/queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch new file mode 100644 index 00000000000..8fcbdb31bbf --- /dev/null +++ b/queue-5.4/dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch @@ -0,0 +1,35 @@ +From 830dbce7c76ea529decac7d23b808c1e7da3d891 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Wed, 16 Oct 2019 16:56:50 +0200 +Subject: dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example + +From: Geert Uytterhoeven + +commit 830dbce7c76ea529decac7d23b808c1e7da3d891 upstream. + +The documented compatible value for R-Car H3 is +"renesas,r8a7795-rcar-usb2-clock-sel", not +"renesas,r8a77950-rcar-usb2-clock-sel". + +Fixes: 311accb64570db45 ("clk: renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY") +Signed-off-by: Geert Uytterhoeven +Reviewed-by: Yoshihiro Shimoda +Acked-by: Rob Herring +Link: https://lore.kernel.org/r/20191016145650.30003-1-geert+renesas@glider.be +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt ++++ b/Documentation/devicetree/bindings/clock/renesas,rcar-usb2-clock-sel.txt +@@ -46,7 +46,7 @@ Required properties: + Example (R-Car H3): + + usb2_clksel: clock-controller@e6590630 { +- compatible = "renesas,r8a77950-rcar-usb2-clock-sel", ++ compatible = "renesas,r8a7795-rcar-usb2-clock-sel", + "renesas,rcar-gen3-usb2-clock-sel"; + reg = <0 0xe6590630 0 0x02>; + clocks = <&cpg CPG_MOD 703>, <&usb_extal>, <&usb_xtal>; diff --git a/queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch b/queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch new file mode 100644 index 00000000000..98ddc637962 --- /dev/null +++ b/queue-5.4/fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch @@ -0,0 +1,38 @@ +From 6b2daec19094a90435abe67d16fb43b1a5527254 Mon Sep 17 00:00:00 2001 +From: Al Viro +Date: Sun, 21 Apr 2019 18:53:50 -0400 +Subject: fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP + +From: Al Viro + +commit 6b2daec19094a90435abe67d16fb43b1a5527254 upstream. + +Unlike FICLONE, all of those take a pointer argument; they do need +compat_ptr() applied to arg. + +Fixes: d79bdd52d8be ("vfs: wire up compat ioctl for CLONE/CLONE_RANGE") +Fixes: 54dbc1517237 ("vfs: hoist the btrfs deduplication ioctl to the vfs") +Fixes: ceac204e1da9 ("fs: make fiemap work from compat_ioctl") +Signed-off-by: Al Viro +Signed-off-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + fs/compat_ioctl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/fs/compat_ioctl.c ++++ b/fs/compat_ioctl.c +@@ -1032,10 +1032,11 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned i + #endif + + case FICLONE: ++ goto do_ioctl; + case FICLONERANGE: + case FIDEDUPERANGE: + case FS_IOC_FIEMAP: +- goto do_ioctl; ++ goto found_handler; + + case FIBMAP: + case FIGETBSZ: diff --git a/queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch b/queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch new file mode 100644 index 00000000000..0fb0805d2e8 --- /dev/null +++ b/queue-5.4/fs-cifs-fix-atime-update-check-vs-mtime.patch @@ -0,0 +1,35 @@ +From 69738cfdfa7032f45d9e7462d24490e61cf163dd Mon Sep 17 00:00:00 2001 +From: Deepa Dinamani +Date: Fri, 29 Nov 2019 21:30:25 -0800 +Subject: fs: cifs: Fix atime update check vs mtime + +From: Deepa Dinamani + +commit 69738cfdfa7032f45d9e7462d24490e61cf163dd upstream. + +According to the comment in the code and commit log, some apps +expect atime >= mtime; but the introduced code results in +atime==mtime. Fix the comparison to guard against atime +Cc: stfrench@microsoft.com +Cc: linux-cifs@vger.kernel.org +Signed-off-by: Steve French +Signed-off-by: Greg Kroah-Hartman + +--- + fs/cifs/inode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/cifs/inode.c ++++ b/fs/cifs/inode.c +@@ -163,7 +163,7 @@ cifs_fattr_to_inode(struct inode *inode, + + spin_lock(&inode->i_lock); + /* we do not want atime to be less than mtime, it broke some apps */ +- if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime)) ++ if (timespec64_compare(&fattr->cf_atime, &fattr->cf_mtime) < 0) + inode->i_atime = fattr->cf_mtime; + else + inode->i_atime = fattr->cf_atime; diff --git a/queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch b/queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch new file mode 100644 index 00000000000..0aac1229268 --- /dev/null +++ b/queue-5.4/media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch @@ -0,0 +1,37 @@ +From 74a96b51a36de4d86660fbc56b05d86668162d6b Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Fri, 25 Oct 2019 15:33:39 +0200 +Subject: media: flexcop-usb: ensure -EIO is returned on error condition + +From: Colin Ian King + +commit 74a96b51a36de4d86660fbc56b05d86668162d6b upstream. + +An earlier commit hard coded a return 0 to function flexcop_usb_i2c_req +even though the an -EIO was intended to be returned in the case where +ret != buflen. Fix this by replacing the return 0 with the return of +ret to return the error return code. + +Addresses-Coverity: ("Unused value") + +Fixes: b430eaba0be5 ("[media] flexcop-usb: don't use stack for DMA") +Signed-off-by: Colin Ian King +Signed-off-by: Sean Young +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/usb/b2c2/flexcop-usb.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/usb/b2c2/flexcop-usb.c ++++ b/drivers/media/usb/b2c2/flexcop-usb.c +@@ -295,7 +295,7 @@ static int flexcop_usb_i2c_req(struct fl + + mutex_unlock(&fc_usb->data_mutex); + +- return 0; ++ return ret; + } + + /* actual bus specific access functions, diff --git a/queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch b/queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch new file mode 100644 index 00000000000..fb66249176e --- /dev/null +++ b/queue-5.4/media-usb-fix-memory-leak-in-af9005_identify_state.patch @@ -0,0 +1,37 @@ +From 2289adbfa559050d2a38bcd9caac1c18b800e928 Mon Sep 17 00:00:00 2001 +From: Navid Emamdoost +Date: Wed, 9 Oct 2019 12:01:47 -0300 +Subject: media: usb: fix memory leak in af9005_identify_state + +From: Navid Emamdoost + +commit 2289adbfa559050d2a38bcd9caac1c18b800e928 upstream. + +In af9005_identify_state when returning -EIO the allocated buffer should +be released. Replace the "return -EIO" with assignment into ret and move +deb_info() under a check. + +Fixes: af4e067e1dcf ("V4L/DVB (5625): Add support for the AF9005 demodulator from Afatech") +Signed-off-by: Navid Emamdoost +Signed-off-by: Hans Verkuil +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/usb/dvb-usb/af9005.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/media/usb/dvb-usb/af9005.c ++++ b/drivers/media/usb/dvb-usb/af9005.c +@@ -976,8 +976,9 @@ static int af9005_identify_state(struct + else if (reply == 0x02) + *cold = 0; + else +- return -EIO; +- deb_info("Identify state cold = %d\n", *cold); ++ ret = -EIO; ++ if (!ret) ++ deb_info("Identify state cold = %d\n", *cold); + + err: + kfree(buf); diff --git a/queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch b/queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch new file mode 100644 index 00000000000..0c1285d8b18 --- /dev/null +++ b/queue-5.4/phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch @@ -0,0 +1,39 @@ +From b049e03ca57f238e74a79e44ffc85904db465e72 Mon Sep 17 00:00:00 2001 +From: Geert Uytterhoeven +Date: Tue, 1 Oct 2019 20:11:09 +0200 +Subject: phy: renesas: rcar-gen3-usb2: Use platform_get_irq_optional() for optional irq + +From: Geert Uytterhoeven + +commit b049e03ca57f238e74a79e44ffc85904db465e72 upstream. + +As platform_get_irq() now prints an error when the interrupt does not +exist, a scary warning may be printed for an optional interrupt: + + phy_rcar_gen3_usb2 ee0a0200.usb-phy: IRQ index 0 not found + +Fix this by calling platform_get_irq_optional() instead. + +Fixes: 7723f4c5ecdb8d83 ("driver core: platform: Add an error message to platform_get_irq*()") +Reviewed-by: Stephen Boyd +Reviewed-by: Yoshihiro Shimoda +Tested-by: Yoshihiro Shimoda +Signed-off-by: Geert Uytterhoeven +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/phy/renesas/phy-rcar-gen3-usb2.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/phy/renesas/phy-rcar-gen3-usb2.c ++++ b/drivers/phy/renesas/phy-rcar-gen3-usb2.c +@@ -615,7 +615,7 @@ static int rcar_gen3_phy_usb2_probe(stru + return PTR_ERR(channel->base); + + /* call request_irq for OTG */ +- irq = platform_get_irq(pdev, 0); ++ irq = platform_get_irq_optional(pdev, 0); + if (irq >= 0) { + INIT_WORK(&channel->work, rcar_gen3_phy_usb2_work); + irq = devm_request_irq(dev, irq, rcar_gen3_phy_usb2_irq, diff --git a/queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch b/queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch new file mode 100644 index 00000000000..a207825212b --- /dev/null +++ b/queue-5.4/powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch @@ -0,0 +1,61 @@ +From 91a063c956084fb21cf2523bce6892514e3f1799 Mon Sep 17 00:00:00 2001 +From: Michael Ellerman +Date: Sat, 21 Dec 2019 14:16:54 +1100 +Subject: powerpc/mm: Mark get_slice_psize() & slice_addr_is_low() as notrace + +From: Michael Ellerman + +commit 91a063c956084fb21cf2523bce6892514e3f1799 upstream. + +These slice routines are called from the SLB miss handler, which can +lead to warnings from the IRQ code, because we have not reconciled the +IRQ state properly: + + WARNING: CPU: 72 PID: 30150 at arch/powerpc/kernel/irq.c:258 arch_local_irq_restore.part.0+0xcc/0x100 + Modules linked in: + CPU: 72 PID: 30150 Comm: ftracetest Not tainted 5.5.0-rc2-gcc9x-g7e0165b2f1a9 #1 + NIP: c00000000001d83c LR: c00000000029ab90 CTR: c00000000026cf90 + REGS: c0000007eee3b960 TRAP: 0700 Not tainted (5.5.0-rc2-gcc9x-g7e0165b2f1a9) + MSR: 8000000000021033 CR: 22242844 XER: 20000000 + CFAR: c00000000001d780 IRQMASK: 0 + ... + NIP arch_local_irq_restore.part.0+0xcc/0x100 + LR trace_graph_entry+0x270/0x340 + Call Trace: + trace_graph_entry+0x254/0x340 (unreliable) + function_graph_enter+0xe4/0x1a0 + prepare_ftrace_return+0xa0/0x130 + ftrace_graph_caller+0x44/0x94 # (get_slice_psize()) + slb_allocate_user+0x7c/0x100 + do_slb_fault+0xf8/0x300 + instruction_access_slb_common+0x140/0x180 + +Fixes: 48e7b7695745 ("powerpc/64s/hash: Convert SLB miss handlers to C") +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20191221121337.4894-1-mpe@ellerman.id.au +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/mm/slice.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/powerpc/mm/slice.c ++++ b/arch/powerpc/mm/slice.c +@@ -50,7 +50,7 @@ static void slice_print_mask(const char + + #endif + +-static inline bool slice_addr_is_low(unsigned long addr) ++static inline notrace bool slice_addr_is_low(unsigned long addr) + { + u64 tmp = (u64)addr; + +@@ -659,7 +659,7 @@ unsigned long arch_get_unmapped_area_top + mm_ctx_user_psize(¤t->mm->context), 1); + } + +-unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr) ++unsigned int notrace get_slice_psize(struct mm_struct *mm, unsigned long addr) + { + unsigned char *psizes; + int index, mask_index; diff --git a/queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch b/queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch new file mode 100644 index 00000000000..bae4513003e --- /dev/null +++ b/queue-5.4/regulator-ab8500-remove-ab8505-usb-regulator.patch @@ -0,0 +1,75 @@ +From 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c Mon Sep 17 00:00:00 2001 +From: Stephan Gerhold +Date: Wed, 6 Nov 2019 18:31:24 +0100 +Subject: regulator: ab8500: Remove AB8505 USB regulator + +From: Stephan Gerhold + +commit 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c upstream. + +The USB regulator was removed for AB8500 in +commit 41a06aa738ad ("regulator: ab8500: Remove USB regulator"). +It was then added for AB8505 in +commit 547f384f33db ("regulator: ab8500: add support for ab8505"). + +However, there was never an entry added for it in +ab8505_regulator_match. This causes all regulators after it +to be initialized with the wrong device tree data, eventually +leading to an out-of-bounds array read. + +Given that it is not used anywhere in the kernel, it seems +likely that similar arguments against supporting it exist for +AB8505 (it is controlled by hardware). + +Therefore, simply remove it like for AB8500 instead of adding +an entry in ab8505_regulator_match. + +Fixes: 547f384f33db ("regulator: ab8500: add support for ab8505") +Cc: Linus Walleij +Signed-off-by: Stephan Gerhold +Reviewed-by: Linus Walleij +Link: https://lore.kernel.org/r/20191106173125.14496-1-stephan@gerhold.net +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/regulator/ab8500.c | 17 ----------------- + include/linux/regulator/ab8500.h | 1 - + 2 files changed, 18 deletions(-) + +--- a/drivers/regulator/ab8500.c ++++ b/drivers/regulator/ab8500.c +@@ -953,23 +953,6 @@ static struct ab8500_regulator_info + .update_val_idle = 0x82, + .update_val_normal = 0x02, + }, +- [AB8505_LDO_USB] = { +- .desc = { +- .name = "LDO-USB", +- .ops = &ab8500_regulator_mode_ops, +- .type = REGULATOR_VOLTAGE, +- .id = AB8505_LDO_USB, +- .owner = THIS_MODULE, +- .n_voltages = 1, +- .volt_table = fixed_3300000_voltage, +- }, +- .update_bank = 0x03, +- .update_reg = 0x82, +- .update_mask = 0x03, +- .update_val = 0x01, +- .update_val_idle = 0x03, +- .update_val_normal = 0x01, +- }, + [AB8505_LDO_AUDIO] = { + .desc = { + .name = "LDO-AUDIO", +--- a/include/linux/regulator/ab8500.h ++++ b/include/linux/regulator/ab8500.h +@@ -37,7 +37,6 @@ enum ab8505_regulator_id { + AB8505_LDO_AUX6, + AB8505_LDO_INTCORE, + AB8505_LDO_ADC, +- AB8505_LDO_USB, + AB8505_LDO_AUDIO, + AB8505_LDO_ANAMIC1, + AB8505_LDO_ANAMIC2, diff --git a/queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch b/queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch new file mode 100644 index 00000000000..82d630a101a --- /dev/null +++ b/queue-5.4/regulator-axp20x-fix-axp20x_set_ramp_delay.patch @@ -0,0 +1,41 @@ +From 71dd2fe5dec171b34b71603a81bb46c24c498fde Mon Sep 17 00:00:00 2001 +From: Axel Lin +Date: Sat, 21 Dec 2019 16:10:49 +0800 +Subject: regulator: axp20x: Fix axp20x_set_ramp_delay + +From: Axel Lin + +commit 71dd2fe5dec171b34b71603a81bb46c24c498fde upstream. + +Current code set incorrect bits when set ramp_delay for AXP20X_DCDC2, +fix it. + +Fixes: d29f54df8b16 ("regulator: axp20x: add support for set_ramp_delay for AXP209") +Signed-off-by: Axel Lin +Link: https://lore.kernel.org/r/20191221081049.32490-1-axel.lin@ingics.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/regulator/axp20x-regulator.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/drivers/regulator/axp20x-regulator.c ++++ b/drivers/regulator/axp20x-regulator.c +@@ -413,10 +413,13 @@ static int axp20x_set_ramp_delay(struct + int i; + + for (i = 0; i < rate_count; i++) { +- if (ramp <= slew_rates[i]) +- cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i); +- else ++ if (ramp > slew_rates[i]) + break; ++ ++ if (id == AXP20X_DCDC2) ++ cfg = AXP20X_DCDC2_LDO3_V_RAMP_DCDC2_RATE(i); ++ else ++ cfg = AXP20X_DCDC2_LDO3_V_RAMP_LDO3_RATE(i); + } + + if (cfg == 0xff) { diff --git a/queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch b/queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch new file mode 100644 index 00000000000..01e7f65daad --- /dev/null +++ b/queue-5.4/regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch @@ -0,0 +1,39 @@ +From f40ddaa059fdfb472e3aeb733c6220d8e0633a47 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai +Date: Wed, 18 Dec 2019 12:47:20 +0800 +Subject: regulator: axp20x: Fix AXP22x ELDO2 regulator enable bitmask + +From: Chen-Yu Tsai + +commit f40ddaa059fdfb472e3aeb733c6220d8e0633a47 upstream. + +A copy-paste error was introduced when bitmasks were converted to +macros, incorrectly setting the enable bitmask for ELDO2 to the one +for ELDO1 for the AXP22x units. + +Fix it by using the correct macro. + +On affected boards, ELDO1 and/or ELDO2 are used to power the camera, +which is currently unsupported. + +Fixes: db4a555f7c4c ("regulator: axp20x: use defines for masks") +Signed-off-by: Chen-Yu Tsai +Link: https://lore.kernel.org/r/20191218044720.21990-1-wens@kernel.org +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/regulator/axp20x-regulator.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/regulator/axp20x-regulator.c ++++ b/drivers/regulator/axp20x-regulator.c +@@ -608,7 +608,7 @@ static const struct regulator_desc axp22 + AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK), + AXP_DESC(AXP22X, ELDO2, "eldo2", "eldoin", 700, 3300, 100, + AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK, +- AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO1_MASK), ++ AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK), + AXP_DESC(AXP22X, ELDO3, "eldo3", "eldoin", 700, 3300, 100, + AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK, + AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK), diff --git a/queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch b/queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch new file mode 100644 index 00000000000..1c89f2a744b --- /dev/null +++ b/queue-5.4/regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch @@ -0,0 +1,35 @@ +From 6f1ff76154b8b36033efcbf6453a71a3d28f52cd Mon Sep 17 00:00:00 2001 +From: Axel Lin +Date: Wed, 1 Jan 2020 10:24:06 +0800 +Subject: regulator: bd70528: Remove .set_ramp_delay for bd70528_ldo_ops + +From: Axel Lin + +commit 6f1ff76154b8b36033efcbf6453a71a3d28f52cd upstream. + +The .set_ramp_delay should be for bd70528_buck_ops only. +Setting .set_ramp_delay for for bd70528_ldo_ops causes problem because +BD70528_MASK_BUCK_RAMP (0x10) overlaps with BD70528_MASK_LDO_VOLT (0x1f). +So setting ramp_delay for LDOs may change the voltage output, fix it. + +Fixes: 99ea37bd1e7d ("regulator: bd70528: Support ROHM BD70528 regulator block") +Signed-off-by: Axel Lin +Acked-by: Matti Vaittinen +Link: https://lore.kernel.org/r/20200101022406.15176-1-axel.lin@ingics.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/regulator/bd70528-regulator.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/drivers/regulator/bd70528-regulator.c ++++ b/drivers/regulator/bd70528-regulator.c +@@ -101,7 +101,6 @@ static const struct regulator_ops bd7052 + .set_voltage_sel = regulator_set_voltage_sel_regmap, + .get_voltage_sel = regulator_get_voltage_sel_regmap, + .set_voltage_time_sel = regulator_set_voltage_time_sel, +- .set_ramp_delay = bd70528_set_ramp_delay, + }; + + static const struct regulator_ops bd70528_led_ops = { diff --git a/queue-5.4/series b/queue-5.4/series index e0fe7a5e966..d64f03e8e68 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -151,3 +151,24 @@ xfs-don-t-check-for-ag-deadlock-for-realtime-files-in-bunmapi.patch platform-x86-pmc_atom-add-siemens-connect-x300-to-critclk_systems-dmi-table.patch netfilter-nf_queue-enqueue-skbs-with-null-dst.patch net-sysctl-fix-compiler-warning-when-only-cbpf-is-present.patch +watchdog-tqmx86_wdt-fix-build-error.patch +regulator-axp20x-fix-axp20x_set_ramp_delay.patch +regulator-bd70528-remove-.set_ramp_delay-for-bd70528_ldo_ops.patch +spi-uniphier-fix-fifo-threshold.patch +regulator-axp20x-fix-axp22x-eldo2-regulator-enable-bitmask.patch +powerpc-mm-mark-get_slice_psize-slice_addr_is_low-as-notrace.patch +bluetooth-btusb-fix-pm-leak-in-error-case-of-setup.patch +bluetooth-delete-a-stray-unlock.patch +bluetooth-fix-memory-leak-in-hci_connect_le_scan.patch +arm64-dts-meson-gxl-s905x-khadas-vim-fix-uart_a-bluetooth-node.patch +arm64-dts-meson-gxm-khadas-vim2-fix-uart_a-bluetooth-node.patch +media-flexcop-usb-ensure-eio-is-returned-on-error-condition.patch +regulator-ab8500-remove-ab8505-usb-regulator.patch +media-usb-fix-memory-leak-in-af9005_identify_state.patch +dt-bindings-clock-renesas-rcar-usb2-clock-sel-fix-typo-in-example.patch +arm64-dts-meson-odroid-c2-disable-usb_otg-bus-to-avoid-power-failed-warning.patch +phy-renesas-rcar-gen3-usb2-use-platform_get_irq_optional-for-optional-irq.patch +tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch +cifs-fix-lookup-of-root-ses-in-dfs-referral-cache.patch +fs-cifs-fix-atime-update-check-vs-mtime.patch +fix-compat-handling-of-ficlonerange-fideduperange-and-fs_ioc_fiemap.patch diff --git a/queue-5.4/spi-uniphier-fix-fifo-threshold.patch b/queue-5.4/spi-uniphier-fix-fifo-threshold.patch new file mode 100644 index 00000000000..659ab09ea75 --- /dev/null +++ b/queue-5.4/spi-uniphier-fix-fifo-threshold.patch @@ -0,0 +1,96 @@ +From 9cd34efbd3012171c102910ce17ee632a3cccb44 Mon Sep 17 00:00:00 2001 +From: Kunihiko Hayashi +Date: Tue, 24 Dec 2019 09:58:23 +0900 +Subject: spi: uniphier: Fix FIFO threshold + +From: Kunihiko Hayashi + +commit 9cd34efbd3012171c102910ce17ee632a3cccb44 upstream. + +Rx threshold means the value to inform the receiver when the number of words +in Rx FIFO is equal to or more than the value. Similarly, Tx threshold means +the value to inform the sender when the number of words in Tx FIFO is equal +to or less than the value. The controller triggers the driver to start +the transfer. + +In case of Rx, the driver wants to detect that the specified number of words +N are in Rx FIFO, so the value of Rx threshold should be N. In case of Tx, +the driver wants to detect that the same number of spaces as Rx are in +Tx FIFO, so the value of Tx threshold should be (FIFO size - N). + +For example, in order for the driver to receive at least 3 words from +Rx FIFO, set 3 to Rx threshold. + +-+-+-+-+-+-+-+-+ + | | | | | |*|*|*| + +-+-+-+-+-+-+-+-+ + +In order for the driver to send at least 3 words to Tx FIFO, because +it needs at least 3 spaces, set 8(FIFO size) - 3 = 5 to Tx threshold. + +-+-+-+-+-+-+-+-+ + |*|*|*|*|*| | | | + +-+-+-+-+-+-+-+-+ + +This adds new function uniphier_spi_set_fifo_threshold() to set +threshold value to the register. + +And more, FIFO counts by 'words', so this renames 'fill_bytes' with +'fill_words', and fixes the calculation using bytes_per_words. + +Fixes: 37ffab817098 ("spi: uniphier: introduce polling mode") +Cc: Keiji Hayashibara +Signed-off-by: Kunihiko Hayashi +Link: https://lore.kernel.org/r/1577149107-30670-2-git-send-email-hayashi.kunihiko@socionext.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/spi/spi-uniphier.c | 31 +++++++++++++++++++------------ + 1 file changed, 19 insertions(+), 12 deletions(-) + +--- a/drivers/spi/spi-uniphier.c ++++ b/drivers/spi/spi-uniphier.c +@@ -290,25 +290,32 @@ static void uniphier_spi_recv(struct uni + } + } + +-static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv) ++static void uniphier_spi_set_fifo_threshold(struct uniphier_spi_priv *priv, ++ unsigned int threshold) + { +- unsigned int fifo_threshold, fill_bytes; + u32 val; + +- fifo_threshold = DIV_ROUND_UP(priv->rx_bytes, +- bytes_per_word(priv->bits_per_word)); +- fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH); +- +- fill_bytes = fifo_threshold - (priv->rx_bytes - priv->tx_bytes); +- +- /* set fifo threshold */ + val = readl(priv->base + SSI_FC); + val &= ~(SSI_FC_TXFTH_MASK | SSI_FC_RXFTH_MASK); +- val |= FIELD_PREP(SSI_FC_TXFTH_MASK, fifo_threshold); +- val |= FIELD_PREP(SSI_FC_RXFTH_MASK, fifo_threshold); ++ val |= FIELD_PREP(SSI_FC_TXFTH_MASK, SSI_FIFO_DEPTH - threshold); ++ val |= FIELD_PREP(SSI_FC_RXFTH_MASK, threshold); + writel(val, priv->base + SSI_FC); ++} ++ ++static void uniphier_spi_fill_tx_fifo(struct uniphier_spi_priv *priv) ++{ ++ unsigned int fifo_threshold, fill_words; ++ unsigned int bpw = bytes_per_word(priv->bits_per_word); ++ ++ fifo_threshold = DIV_ROUND_UP(priv->rx_bytes, bpw); ++ fifo_threshold = min(fifo_threshold, SSI_FIFO_DEPTH); ++ ++ uniphier_spi_set_fifo_threshold(priv, fifo_threshold); ++ ++ fill_words = fifo_threshold - ++ DIV_ROUND_UP(priv->rx_bytes - priv->tx_bytes, bpw); + +- while (fill_bytes--) ++ while (fill_words--) + uniphier_spi_send(priv); + } + diff --git a/queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch b/queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch new file mode 100644 index 00000000000..16975d9515d --- /dev/null +++ b/queue-5.4/tty-serial-msm_serial-fix-lockup-for-sysrq-and-oops.patch @@ -0,0 +1,68 @@ +From 0e4f7f920a5c6bfe5e851e989f27b35a0cc7fb7e Mon Sep 17 00:00:00 2001 +From: Leo Yan +Date: Wed, 27 Nov 2019 22:15:43 +0800 +Subject: tty: serial: msm_serial: Fix lockup for sysrq and oops + +From: Leo Yan + +commit 0e4f7f920a5c6bfe5e851e989f27b35a0cc7fb7e upstream. + +As the commit 677fe555cbfb ("serial: imx: Fix recursive locking bug") +has mentioned the uart driver might cause recursive locking between +normal printing and the kernel debugging facilities (e.g. sysrq and +oops). In the commit it gave out suggestion for fixing recursive +locking issue: "The solution is to avoid locking in the sysrq case +and trylock in the oops_in_progress case." + +This patch follows the suggestion (also used the exactly same code with +other serial drivers, e.g. amba-pl011.c) to fix the recursive locking +issue, this can avoid stuck caused by deadlock and print out log for +sysrq and oops. + +Fixes: 04896a77a97b ("msm_serial: serial driver for MSM7K onboard serial peripheral.") +Signed-off-by: Leo Yan +Reviewed-by: Jeffrey Hugo +Link: https://lore.kernel.org/r/20191127141544.4277-2-leo.yan@linaro.org +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/tty/serial/msm_serial.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +--- a/drivers/tty/serial/msm_serial.c ++++ b/drivers/tty/serial/msm_serial.c +@@ -1580,6 +1580,7 @@ static void __msm_console_write(struct u + int num_newlines = 0; + bool replaced = false; + void __iomem *tf; ++ int locked = 1; + + if (is_uartdm) + tf = port->membase + UARTDM_TF; +@@ -1592,7 +1593,13 @@ static void __msm_console_write(struct u + num_newlines++; + count += num_newlines; + +- spin_lock(&port->lock); ++ if (port->sysrq) ++ locked = 0; ++ else if (oops_in_progress) ++ locked = spin_trylock(&port->lock); ++ else ++ spin_lock(&port->lock); ++ + if (is_uartdm) + msm_reset_dm_count(port, count); + +@@ -1628,7 +1635,9 @@ static void __msm_console_write(struct u + iowrite32_rep(tf, buf, 1); + i += num_chars; + } +- spin_unlock(&port->lock); ++ ++ if (locked) ++ spin_unlock(&port->lock); + } + + static void msm_console_write(struct console *co, const char *s, diff --git a/queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch b/queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch new file mode 100644 index 00000000000..76f5b84f3ea --- /dev/null +++ b/queue-5.4/watchdog-tqmx86_wdt-fix-build-error.patch @@ -0,0 +1,40 @@ +From 9a6c274ac1c4346f5384f2290caeb42dc674c471 Mon Sep 17 00:00:00 2001 +From: YueHaibing +Date: Fri, 6 Dec 2019 20:42:59 +0800 +Subject: watchdog: tqmx86_wdt: Fix build error + +From: YueHaibing + +commit 9a6c274ac1c4346f5384f2290caeb42dc674c471 upstream. + +If TQMX86_WDT is y and WATCHDOG_CORE is m, building fails: + +drivers/watchdog/tqmx86_wdt.o: In function `tqmx86_wdt_probe': +tqmx86_wdt.c:(.text+0x46e): undefined reference to `watchdog_init_timeout' +tqmx86_wdt.c:(.text+0x4e0): undefined reference to `devm_watchdog_register_device' + +Select WATCHDOG_CORE to fix this. + +Reported-by: Hulk Robot +Fixes: e3c21e088f89 ("watchdog: tqmx86: Add watchdog driver for the IO controller") +Signed-off-by: YueHaibing +Reviewed-by: Guenter Roeck +Link: https://lore.kernel.org/r/20191206124259.25880-1-yuehaibing@huawei.com +Signed-off-by: Guenter Roeck +Signed-off-by: Wim Van Sebroeck +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/watchdog/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/watchdog/Kconfig ++++ b/drivers/watchdog/Kconfig +@@ -1444,6 +1444,7 @@ config SMSC37B787_WDT + config TQMX86_WDT + tristate "TQ-Systems TQMX86 Watchdog Timer" + depends on X86 ++ select WATCHDOG_CORE + help + This is the driver for the hardware watchdog timer in the TQMX86 IO + controller found on some of their ComExpress Modules.