All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree
@ 2020-04-22 11:19 Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update Lee Jones
                   ` (21 more replies)
  0 siblings, 22 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Lee Jones

A recent review of the Sony Xperia Development kernel tree [0] resulted
in the discovery of various patches which have been backported from
Mainline in order to fix an array of issues.  These patches should be
applied to Stable such that everyone can benefit from them.

Note: The review is still on-going (~50%) - more to follow.

[0] https://github.com/sonyxperiadev/kernel

Alexey Brodkin (1):
  devres: Align data[] to ARCH_KMALLOC_MINALIGN

Arun KS (1):
  arm64: Fix size of __early_cpu_boot_status

Austin Kim (1):
  mm/vmalloc.c: move 'area->pages' after if statement

Chris Lew (1):
  soc: qcom: smem: Use le32_to_cpu for comparison

Dedy Lansky (2):
  wil6210: fix temperature debugfs
  wil6210: rate limit wil_rx_refill error

Geert Uytterhoeven (1):
  clk: Fix debugfs_create_*() usage

Hamad Kadmany (1):
  wil6210: increase firmware ready timeout

Hans Verkuil (1):
  drm_dp_mst_topology: fix broken
    drm_dp_sideband_parse_remote_dpcd_read()

Joe Moriarty (1):
  drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem

Lior David (1):
  wil6210: fix length check in __wmi_send

Mohit Aggarwal (1):
  rtc: pm8xxx: Fix issue in RTC write path

Rob Clark (1):
  drm/msm: stop abusing dma_map/unmap for cache

Rob Herring (1):
  of: fix missing kobject init for !SYSFS && OF_DYNAMIC config

Roger Quadros (1):
  usb: dwc3: don't set gadget->is_otg flag

Subhash Jadavani (2):
  scsi: ufs: Fix error handing during hibern8 enter
  scsi: ufs: ufs-qcom: remove broken hci version quirk

Taniya Das (1):
  clk: qcom: rcg: Return failure for RCG update

Timur Tabi (1):
  Revert "gpio: set up initial state from .get_direction()"

Venkat Gopalakrishnan (1):
  scsi: ufs: make sure all interrupts are processed

Will Deacon (1):
  arm64: traps: Don't print stack or raw PC/LR values in backtraces

 arch/arm64/kernel/head.S                     |  2 +-
 arch/arm64/kernel/process.c                  |  8 +--
 arch/arm64/kernel/traps.c                    | 74 +-------------------
 drivers/base/devres.c                        | 10 ++-
 drivers/clk/clk.c                            | 30 ++++----
 drivers/clk/qcom/clk-rcg2.c                  |  2 +-
 drivers/gpio/gpiolib.c                       | 31 ++------
 drivers/gpu/drm/drm_dp_mst_topology.c        |  9 ++-
 drivers/gpu/drm/msm/msm_gem.c                |  4 +-
 drivers/net/wireless/ath/wil6210/debugfs.c   |  7 +-
 drivers/net/wireless/ath/wil6210/interrupt.c | 22 +++++-
 drivers/net/wireless/ath/wil6210/main.c      |  2 +-
 drivers/net/wireless/ath/wil6210/txrx.c      |  4 +-
 drivers/net/wireless/ath/wil6210/wmi.c       |  2 +-
 drivers/of/base.c                            |  3 -
 drivers/rtc/rtc-pm8xxx.c                     | 49 ++++++++++---
 drivers/scsi/ufs/ufs-qcom.c                  |  2 +-
 drivers/scsi/ufs/ufshcd.c                    | 46 ++++++++----
 drivers/soc/qcom/smem.c                      |  2 +-
 drivers/usb/dwc3/gadget.c                    |  1 -
 mm/vmalloc.c                                 |  8 ++-
 21 files changed, 152 insertions(+), 166 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-05-13  9:38   ` Greg KH
  2020-04-22 11:19 ` [PATCH 4.9 02/21] drm/msm: stop abusing dma_map/unmap for cache Lee Jones
                   ` (20 subsequent siblings)
  21 siblings, 1 reply; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Taniya Das, Stephen Boyd, Lee Jones

From: Taniya Das <tdas@codeaurora.org>

[ Upstream commit 21ea4b62e1f3dc258001a68da98c9663a9dbd6c7 ]

In case of update config failure, return -EBUSY, so that consumers could
handle the failure gracefully.

Signed-off-by: Taniya Das <tdas@codeaurora.org>
Link: https://lkml.kernel.org/r/1557339895-21952-2-git-send-email-tdas@codeaurora.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/qcom/clk-rcg2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/qcom/clk-rcg2.c b/drivers/clk/qcom/clk-rcg2.c
index d8601b138dc1e..29abb600d7e15 100644
--- a/drivers/clk/qcom/clk-rcg2.c
+++ b/drivers/clk/qcom/clk-rcg2.c
@@ -107,7 +107,7 @@ static int update_config(struct clk_rcg2 *rcg)
 	}
 
 	WARN(1, "%s: rcg didn't update its configuration.", name);
-	return 0;
+	return -EBUSY;
 }
 
 static int clk_rcg2_set_parent(struct clk_hw *hw, u8 index)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 02/21] drm/msm: stop abusing dma_map/unmap for cache
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 03/21] arm64: Fix size of __early_cpu_boot_status Lee Jones
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable
  Cc: Rob Clark, Stephen Boyd, Stephen Boyd, Jordan Crouse, Sean Paul,
	Lee Jones

From: Rob Clark <robdclark@chromium.org>

[ Upstream commit 0036bc73ccbe7e600a3468bf8e8879b122252274 ]

Recently splats like this started showing up:

   WARNING: CPU: 4 PID: 251 at drivers/iommu/dma-iommu.c:451 __iommu_dma_unmap+0xb8/0xc0
   Modules linked in: ath10k_snoc ath10k_core fuse msm ath mac80211 uvcvideo cfg80211 videobuf2_vmalloc videobuf2_memops vide
   CPU: 4 PID: 251 Comm: kworker/u16:4 Tainted: G        W         5.2.0-rc5-next-20190619+ #2317
   Hardware name: LENOVO 81JL/LNVNB161216, BIOS 9UCN23WW(V1.06) 10/25/2018
   Workqueue: msm msm_gem_free_work [msm]
   pstate: 80c00005 (Nzcv daif +PAN +UAO)
   pc : __iommu_dma_unmap+0xb8/0xc0
   lr : __iommu_dma_unmap+0x54/0xc0
   sp : ffff0000119abce0
   x29: ffff0000119abce0 x28: 0000000000000000
   x27: ffff8001f9946648 x26: ffff8001ec271068
   x25: 0000000000000000 x24: ffff8001ea3580a8
   x23: ffff8001f95ba010 x22: ffff80018e83ba88
   x21: ffff8001e548f000 x20: fffffffffffff000
   x19: 0000000000001000 x18: 00000000c00001fe
   x17: 0000000000000000 x16: 0000000000000000
   x15: ffff000015b70068 x14: 0000000000000005
   x13: 0003142cc1be1768 x12: 0000000000000001
   x11: ffff8001f6de9100 x10: 0000000000000009
   x9 : ffff000015b78000 x8 : 0000000000000000
   x7 : 0000000000000001 x6 : fffffffffffff000
   x5 : 0000000000000fff x4 : ffff00001065dbc8
   x3 : 000000000000000d x2 : 0000000000001000
   x1 : fffffffffffff000 x0 : 0000000000000000
   Call trace:
    __iommu_dma_unmap+0xb8/0xc0
    iommu_dma_unmap_sg+0x98/0xb8
    put_pages+0x5c/0xf0 [msm]
    msm_gem_free_work+0x10c/0x150 [msm]
    process_one_work+0x1e0/0x330
    worker_thread+0x40/0x438
    kthread+0x12c/0x130
    ret_from_fork+0x10/0x18
   ---[ end trace afc0dc5ab81a06bf ]---

Not quite sure what triggered that, but we really shouldn't be abusing
dma_{map,unmap}_sg() for cache maint.

Cc: Stephen Boyd <sboyd@kernel.org>
Tested-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190630124735.27786-1-robdclark@gmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/gpu/drm/msm/msm_gem.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index 795660e29b2ce..a472d4d902dde 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -106,7 +106,7 @@ static struct page **get_pages(struct drm_gem_object *obj)
 		 * because display controller, GPU, etc. are not coherent:
 		 */
 		if (msm_obj->flags & (MSM_BO_WC|MSM_BO_UNCACHED))
-			dma_map_sg(dev->dev, msm_obj->sgt->sgl,
+			dma_sync_sg_for_device(dev->dev, msm_obj->sgt->sgl,
 					msm_obj->sgt->nents, DMA_BIDIRECTIONAL);
 	}
 
@@ -124,7 +124,7 @@ static void put_pages(struct drm_gem_object *obj)
 			 * GPU, etc. are not coherent:
 			 */
 			if (msm_obj->flags & (MSM_BO_WC|MSM_BO_UNCACHED))
-				dma_unmap_sg(obj->dev->dev, msm_obj->sgt->sgl,
+				dma_sync_sg_for_cpu(obj->dev->dev, msm_obj->sgt->sgl,
 					     msm_obj->sgt->nents,
 					     DMA_BIDIRECTIONAL);
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 03/21] arm64: Fix size of __early_cpu_boot_status
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 02/21] drm/msm: stop abusing dma_map/unmap for cache Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN Lee Jones
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Arun KS, Mark Rutland, Will Deacon, Lee Jones

From: Arun KS <arunks@codeaurora.org>

[ Upstream commit 61cf61d81e326163ce1557ceccfca76e11d0e57c ]

__early_cpu_boot_status is of type long. Use quad
assembler directive to allocate proper size.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Arun KS <arunks@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm64/kernel/head.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
index 3b10b93959607..aba534959377b 100644
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -650,7 +650,7 @@ ENTRY(__boot_cpu_mode)
  * with MMU turned off.
  */
 ENTRY(__early_cpu_boot_status)
-	.long 	0
+	.quad 	0
 
 	.popsection
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (2 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 03/21] arm64: Fix size of __early_cpu_boot_status Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 12:17   ` David Laight
  2020-04-22 12:31   ` Greg Kroah-Hartman
  2020-04-22 11:19 ` [PATCH 4.9 05/21] drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read() Lee Jones
                   ` (17 subsequent siblings)
  21 siblings, 2 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable
  Cc: Alexey Brodkin, Alexey Brodkin, Greg Kroah-Hartman,
	Geert Uytterhoeven, David Laight, Peter Zijlstra,
	Thomas Gleixner, Vineet Gupta, Will Deacon, Greg KH, Lee Jones

From: Alexey Brodkin <alexey.brodkin@synopsys.com>

[ Upstream commit a66d972465d15b1d89281258805eb8b47d66bd36 ]

Initially we bumped into problem with 32-bit aligned atomic64_t
on ARC, see [1]. And then during quite lengthly discussion Peter Z.
mentioned ARCH_KMALLOC_MINALIGN which IMHO makes perfect sense.
If allocation is done by plain kmalloc() obtained buffer will be
ARCH_KMALLOC_MINALIGN aligned and then why buffer obtained via
devm_kmalloc() should have any other alignment?

This way we at least get the same behavior for both types of
allocation.

[1] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004009.html
[2] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004036.html

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: David Laight <David.Laight@ACULAB.COM>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Greg KH <greg@kroah.com>
Cc: <stable@vger.kernel.org> # 4.8+
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/base/devres.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/base/devres.c b/drivers/base/devres.c
index 8fc654f0807bf..9763325a9c944 100644
--- a/drivers/base/devres.c
+++ b/drivers/base/devres.c
@@ -24,8 +24,14 @@ struct devres_node {
 
 struct devres {
 	struct devres_node		node;
-	/* -- 3 pointers */
-	unsigned long long		data[];	/* guarantee ull alignment */
+	/*
+	 * Some archs want to perform DMA into kmalloc caches
+	 * and need a guaranteed alignment larger than
+	 * the alignment of a 64-bit integer.
+	 * Thus we use ARCH_KMALLOC_MINALIGN here and get exactly the same
+	 * buffer alignment as if it was allocated by plain kmalloc().
+	 */
+	u8 __aligned(ARCH_KMALLOC_MINALIGN) data[];
 };
 
 struct devres_group {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 05/21] drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (3 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 06/21] drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem Lee Jones
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Hans Verkuil, Lyude Paul, Alex Deucher, Lee Jones

From: Hans Verkuil <hans.verkuil@cisco.com>

[ Upstream commit a4c30a4861c54af78c4eb8b7855524c1a96d9f80 ]

When parsing the reply of a DP_REMOTE_DPCD_READ DPCD command the
result is wrong due to a missing idx increment.

This was never noticed since DP_REMOTE_DPCD_READ is currently not
used, but if you enable it, then it is all wrong.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/e72ddac2-1dc0-100a-d816-9ac98ac009dd@xs4all.nl
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 17aedaaf364c1..93f2033b414a2 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -431,6 +431,7 @@ static bool drm_dp_sideband_parse_remote_dpcd_read(struct drm_dp_sideband_msg_rx
 	if (idx > raw->curlen)
 		goto fail_len;
 	repmsg->u.remote_dpcd_read_ack.num_bytes = raw->msg[idx];
+	idx++;
 	if (idx > raw->curlen)
 		goto fail_len;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 06/21] drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (4 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 05/21] drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read() Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 07/21] clk: Fix debugfs_create_*() usage Lee Jones
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Joe Moriarty, Steven Sistare, Daniel Vetter, Lee Jones

From: Joe Moriarty <joe.moriarty@oracle.com>

[ Upstream commit 22a07038c0eaf4d1315a493ce66dcd255accba19 ]

The Parfait (version 2.1.0) static code analysis tool found the
following NULL pointer derefernce problem.

- drivers/gpu/drm/drm_dp_mst_topology.c
The call to drm_dp_calculate_rad() in function drm_dp_port_setup_pdt()
could result in a NULL pointer being returned to port->mstb due to a
failure to allocate memory for port->mstb.

Signed-off-by: Joe Moriarty <joe.moriarty@oracle.com>
Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180212195144.98323-3-joe.moriarty@oracle.com
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 93f2033b414a2..a38be6dd7cfb1 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1052,10 +1052,12 @@ static bool drm_dp_port_setup_pdt(struct drm_dp_mst_port *port)
 		lct = drm_dp_calculate_rad(port, rad);
 
 		port->mstb = drm_dp_add_mst_branch_device(lct, rad);
-		port->mstb->mgr = port->mgr;
-		port->mstb->port_parent = port;
+		if (port->mstb) {
+			port->mstb->mgr = port->mgr;
+			port->mstb->port_parent = port;
 
-		send_link = true;
+			send_link = true;
+		}
 		break;
 	}
 	return send_link;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 07/21] clk: Fix debugfs_create_*() usage
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (5 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 06/21] drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 08/21] Revert "gpio: set up initial state from .get_direction()" Lee Jones
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Geert Uytterhoeven, Stephen Boyd, Lee Jones

From: Geert Uytterhoeven <geert+renesas@glider.be>

[ Upstream commit 4c8326d5ebb0de3191e98980c80ab644026728d0 ]

When exposing data access through debugfs, the correct
debugfs_create_*() functions must be used, matching the data
types.

Remove all casts from data pointers passed to debugfs_create_*()
functions, as such casts prevent the compiler from flagging bugs.

clk_core.rate and .accuracy are "unsigned long", hence casting
their addresses to "u32 *" exposed the wrong halves on big-endian
64-bit systems. Fix this by using debugfs_create_ulong() instead.

Octal permissions are preferred, as they are easier to read than
symbolic permissions. Hence replace "S_IRUGO" by "0444"
throughout.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
[sboyd@codeaurora.org: Squash the octal change in too]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/clk/clk.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index af4f2ffc4fc50..b901bea814b6d 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -2145,18 +2145,16 @@ static int clk_debug_create_one(struct clk_core *core, struct dentry *pdentry)
 
 	core->dentry = d;
 
-	d = debugfs_create_u32("clk_rate", S_IRUGO, core->dentry,
-			(u32 *)&core->rate);
+	d = debugfs_create_ulong("clk_rate", 0444, core->dentry, &core->rate);
 	if (!d)
 		goto err_out;
 
-	d = debugfs_create_u32("clk_accuracy", S_IRUGO, core->dentry,
-			(u32 *)&core->accuracy);
+	d = debugfs_create_ulong("clk_accuracy", 0444, core->dentry,
+				 &core->accuracy);
 	if (!d)
 		goto err_out;
 
-	d = debugfs_create_u32("clk_phase", S_IRUGO, core->dentry,
-			(u32 *)&core->phase);
+	d = debugfs_create_u32("clk_phase", 0444, core->dentry, &core->phase);
 	if (!d)
 		goto err_out;
 
@@ -2165,18 +2163,18 @@ static int clk_debug_create_one(struct clk_core *core, struct dentry *pdentry)
 	if (!d)
 		goto err_out;
 
-	d = debugfs_create_u32("clk_prepare_count", S_IRUGO, core->dentry,
-			(u32 *)&core->prepare_count);
+	d = debugfs_create_u32("clk_prepare_count", 0444, core->dentry,
+			       &core->prepare_count);
 	if (!d)
 		goto err_out;
 
-	d = debugfs_create_u32("clk_enable_count", S_IRUGO, core->dentry,
-			(u32 *)&core->enable_count);
+	d = debugfs_create_u32("clk_enable_count", 0444, core->dentry,
+			       &core->enable_count);
 	if (!d)
 		goto err_out;
 
-	d = debugfs_create_u32("clk_notifier_count", S_IRUGO, core->dentry,
-			(u32 *)&core->notifier_count);
+	d = debugfs_create_u32("clk_notifier_count", 0444, core->dentry,
+			       &core->notifier_count);
 	if (!d)
 		goto err_out;
 
@@ -2270,22 +2268,22 @@ static int __init clk_debug_init(void)
 	if (!rootdir)
 		return -ENOMEM;
 
-	d = debugfs_create_file("clk_summary", S_IRUGO, rootdir, &all_lists,
+	d = debugfs_create_file("clk_summary", 0444, rootdir, &all_lists,
 				&clk_summary_fops);
 	if (!d)
 		return -ENOMEM;
 
-	d = debugfs_create_file("clk_dump", S_IRUGO, rootdir, &all_lists,
+	d = debugfs_create_file("clk_dump", 0444, rootdir, &all_lists,
 				&clk_dump_fops);
 	if (!d)
 		return -ENOMEM;
 
-	d = debugfs_create_file("clk_orphan_summary", S_IRUGO, rootdir,
+	d = debugfs_create_file("clk_orphan_summary", 0444, rootdir,
 				&orphan_list, &clk_summary_fops);
 	if (!d)
 		return -ENOMEM;
 
-	d = debugfs_create_file("clk_orphan_dump", S_IRUGO, rootdir,
+	d = debugfs_create_file("clk_orphan_dump", 0444, rootdir,
 				&orphan_list, &clk_dump_fops);
 	if (!d)
 		return -ENOMEM;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 08/21] Revert "gpio: set up initial state from .get_direction()"
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (6 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 07/21] clk: Fix debugfs_create_*() usage Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 09/21] arm64: traps: Don't print stack or raw PC/LR values in backtraces Lee Jones
                   ` (13 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Timur Tabi, Stephen Boyd, Linus Walleij, Lee Jones

From: Timur Tabi <timur@codeaurora.org>

[ Upstream commit 1ca2a92b2a99323f666f1b669b7484df4bda05e4 ]

This reverts commit 72d3200061776264941be1b5a9bb8e926b3b30a5.

We cannot blindly query the direction of all GPIOs when the pins are
first registered.  The get_direction callback normally triggers a
read/write to hardware, but we shouldn't be touching the hardware for
an individual GPIO until after it's been properly claimed.

Signed-off-by: Timur Tabi <timur@codeaurora.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/gpio/gpiolib.c | 31 +++++++------------------------
 1 file changed, 7 insertions(+), 24 deletions(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 505dead076196..73d02f6089d56 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1232,31 +1232,14 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data)
 		struct gpio_desc *desc = &gdev->descs[i];
 
 		desc->gdev = gdev;
-		/*
-		 * REVISIT: most hardware initializes GPIOs as inputs
-		 * (often with pullups enabled) so power usage is
-		 * minimized. Linux code should set the gpio direction
-		 * first thing; but until it does, and in case
-		 * chip->get_direction is not set, we may expose the
-		 * wrong direction in sysfs.
-		 */
-
-		if (chip->get_direction) {
-			/*
-			 * If we have .get_direction, set up the initial
-			 * direction flag from the hardware.
-			 */
-			int dir = chip->get_direction(chip, i);
 
-			if (!dir)
-				set_bit(FLAG_IS_OUT, &desc->flags);
-		} else if (!chip->direction_input) {
-			/*
-			 * If the chip lacks the .direction_input callback
-			 * we logically assume all lines are outputs.
-			 */
-			set_bit(FLAG_IS_OUT, &desc->flags);
-		}
+		/* REVISIT: most hardware initializes GPIOs as inputs (often
+		 * with pullups enabled) so power usage is minimized. Linux
+		 * code should set the gpio direction first thing; but until
+		 * it does, and in case chip->get_direction is not set, we may
+		 * expose the wrong direction in sysfs.
+		 */
+		desc->flags = !chip->direction_input ? (1 << FLAG_IS_OUT) : 0;
 	}
 
 #ifdef CONFIG_PINCTRL
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 09/21] arm64: traps: Don't print stack or raw PC/LR values in backtraces
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (7 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 08/21] Revert "gpio: set up initial state from .get_direction()" Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 10/21] scsi: ufs: Fix error handing during hibern8 enter Lee Jones
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Will Deacon, Laura Abbott, Lee Jones

From: Will Deacon <will.deacon@arm.com>

[ Upstream commit a25ffd3a6302a67814280274d8f1aa4ae2ea4b59 ]

Printing raw pointer values in backtraces has potential security
implications and are of questionable value anyway.

This patch follows x86's lead and removes the "Exception stack:" dump
from kernel backtraces, as well as converting PC/LR values to symbols
such as "sysrq_handle_crash+0x20/0x30".

Tested-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 arch/arm64/kernel/process.c |  8 ++--
 arch/arm64/kernel/traps.c   | 74 ++-----------------------------------
 2 files changed, 6 insertions(+), 76 deletions(-)

diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index e917d119490ce..6b073a31eec1c 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -182,11 +182,9 @@ void __show_regs(struct pt_regs *regs)
 	}
 
 	show_regs_print_info(KERN_DEFAULT);
-	print_symbol("PC is at %s\n", instruction_pointer(regs));
-	print_symbol("LR is at %s\n", lr);
-	printk("pc : [<%016llx>] lr : [<%016llx>] pstate: %08llx\n",
-	       regs->pc, lr, regs->pstate);
-	printk("sp : %016llx\n", sp);
+	print_symbol("pc : %s\n", regs->pc);
+	print_symbol("lr : %s\n", lr);
+	printk("sp : %016llx pstate : %08llx\n", sp, regs->pstate);
 
 	i = top_reg;
 
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index 5962badb33462..ac73d8d8cd81d 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -52,55 +52,9 @@ static const char *handler[]= {
 
 int show_unhandled_signals = 0;
 
-/*
- * Dump out the contents of some kernel memory nicely...
- */
-static void dump_mem(const char *lvl, const char *str, unsigned long bottom,
-		     unsigned long top)
-{
-	unsigned long first;
-	mm_segment_t fs;
-	int i;
-
-	/*
-	 * We need to switch to kernel mode so that we can use __get_user
-	 * to safely read from kernel space.
-	 */
-	fs = get_fs();
-	set_fs(KERNEL_DS);
-
-	printk("%s%s(0x%016lx to 0x%016lx)\n", lvl, str, bottom, top);
-
-	for (first = bottom & ~31; first < top; first += 32) {
-		unsigned long p;
-		char str[sizeof(" 12345678") * 8 + 1];
-
-		memset(str, ' ', sizeof(str));
-		str[sizeof(str) - 1] = '\0';
-
-		for (p = first, i = 0; i < (32 / 8)
-					&& p < top; i++, p += 8) {
-			if (p >= bottom && p < top) {
-				unsigned long val;
-
-				if (__get_user(val, (unsigned long *)p) == 0)
-					sprintf(str + i * 17, " %016lx", val);
-				else
-					sprintf(str + i * 17, " ????????????????");
-			}
-		}
-		printk("%s%04lx:%s\n", lvl, first & 0xffff, str);
-	}
-
-	set_fs(fs);
-}
-
 static void dump_backtrace_entry(unsigned long where)
 {
-	/*
-	 * Note that 'where' can have a physical address, but it's not handled.
-	 */
-	print_ip_sym(where);
+	printk(" %pS\n", (void *)where);
 }
 
 static void __dump_instr(const char *lvl, struct pt_regs *regs)
@@ -174,10 +128,8 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
 
 	skip = !!regs;
 	printk("Call trace:\n");
-	while (1) {
+	do {
 		unsigned long where = frame.pc;
-		unsigned long stack;
-		int ret;
 
 		/* skip until specified stack frame */
 		if (!skip) {
@@ -193,25 +145,7 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
 			 */
 			dump_backtrace_entry(regs->pc);
 		}
-		ret = unwind_frame(tsk, &frame);
-		if (ret < 0)
-			break;
-		stack = frame.sp;
-		if (in_exception_text(where)) {
-			/*
-			 * If we switched to the irq_stack before calling this
-			 * exception handler, then the pt_regs will be on the
-			 * task stack. The easiest way to tell is if the large
-			 * pt_regs would overlap with the end of the irq_stack.
-			 */
-			if (stack < irq_stack_ptr &&
-			    (stack + sizeof(struct pt_regs)) > irq_stack_ptr)
-				stack = IRQ_STACK_TO_TASK_STACK(irq_stack_ptr);
-
-			dump_mem("", "Exception stack", stack,
-				 stack + sizeof(struct pt_regs));
-		}
-	}
+	} while (!unwind_frame(tsk, &frame));
 }
 
 void show_stack(struct task_struct *tsk, unsigned long *sp)
@@ -248,8 +182,6 @@ static int __die(const char *str, int err, struct thread_info *thread,
 		 TASK_COMM_LEN, tsk->comm, task_pid_nr(tsk), thread + 1);
 
 	if (!user_mode(regs)) {
-		dump_mem(KERN_EMERG, "Stack: ", regs->sp,
-			 THREAD_SIZE + (unsigned long)task_stack_page(tsk));
 		dump_backtrace(regs, tsk);
 		dump_instr(KERN_EMERG, regs);
 	}
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 10/21] scsi: ufs: Fix error handing during hibern8 enter
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (8 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 09/21] arm64: traps: Don't print stack or raw PC/LR values in backtraces Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 11/21] wil6210: increase firmware ready timeout Lee Jones
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable
  Cc: Subhash Jadavani, Avri Altman, Bean Huo, Can Guo,
	Martin K . Petersen, Lee Jones

From: Subhash Jadavani <subhashj@codeaurora.org>

[ Upstream commit 6d303e4b19d694cdbebf76bcdb51ada664ee953d ]

During clock gating (ufshcd_gate_work()), we first put the link hibern8 by
calling ufshcd_uic_hibern8_enter() and if ufshcd_uic_hibern8_enter()
returns success (0) then we gate all the clocks.  Now let’s zoom in to what
ufshcd_uic_hibern8_enter() does internally: It calls
__ufshcd_uic_hibern8_enter() and if failure is encountered, link recovery
shall put the link back to the highest HS gear and returns success (0) to
ufshcd_uic_hibern8_enter() which is the issue as link is still in active
state due to recovery!  Now ufshcd_uic_hibern8_enter() returns success to
ufshcd_gate_work() and hence it goes ahead with gating the UFS clock while
link is still in active state hence I believe controller would raise UIC
error interrupts. But when we service the interrupt, clocks might have
already been disabled!

This change fixes for this by returning failure from
__ufshcd_uic_hibern8_enter() if recovery succeeds as link is still not in
hibern8, upon receiving the error ufshcd_hibern8_enter() would initiate
retry to put the link state back into hibern8.

Link: https://lore.kernel.org/r/1573798172-20534-8-git-send-email-cang@codeaurora.org
Reviewed-by: Avri Altman <avri.altman@wdc.com>
Reviewed-by: Bean Huo <beanhuo@micron.com>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Can Guo <cang@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/scsi/ufs/ufshcd.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 394df57894e6b..0b268f0151c67 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -2804,15 +2804,24 @@ static int __ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
 	ret = ufshcd_uic_pwr_ctrl(hba, &uic_cmd);
 
 	if (ret) {
+		int err;
+
 		dev_err(hba->dev, "%s: hibern8 enter failed. ret = %d\n",
 			__func__, ret);
 
 		/*
-		 * If link recovery fails then return error so that caller
-		 * don't retry the hibern8 enter again.
+		 * If link recovery fails then return error code returned from
+		 * ufshcd_link_recovery().
+		 * If link recovery succeeds then return -EAGAIN to attempt
+		 * hibern8 enter retry again.
 		 */
-		if (ufshcd_link_recovery(hba))
-			ret = -ENOLINK;
+		err = ufshcd_link_recovery(hba);
+		if (err) {
+			dev_err(hba->dev, "%s: link recovery failed", __func__);
+			ret = err;
+		} else {
+			ret = -EAGAIN;
+		}
 	}
 
 	return ret;
@@ -2824,7 +2833,7 @@ static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba)
 
 	for (retries = UIC_HIBERN8_ENTER_RETRIES; retries > 0; retries--) {
 		ret = __ufshcd_uic_hibern8_enter(hba);
-		if (!ret || ret == -ENOLINK)
+		if (!ret)
 			goto out;
 	}
 out:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 11/21] wil6210: increase firmware ready timeout
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (9 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 10/21] scsi: ufs: Fix error handing during hibern8 enter Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 12/21] wil6210: fix temperature debugfs Lee Jones
                   ` (10 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Hamad Kadmany, Maya Erez, Kalle Valo, Lee Jones

From: Hamad Kadmany <hkadmany@codeaurora.org>

[ Upstream commit 6ccae584014ef7074359eb4151086beef66ecfa9 ]

Firmware ready event may take longer than
current timeout in some scenarios, for example
with multiple RFs connected where each
requires an initial calibration.

Increase the timeout to support these scenarios.

Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/net/wireless/ath/wil6210/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
index f8bce58d48ccd..12b4c6f003726 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -803,7 +803,7 @@ static void wil_bl_crash_info(struct wil6210_priv *wil, bool is_err)
 
 static int wil_wait_for_fw_ready(struct wil6210_priv *wil)
 {
-	ulong to = msecs_to_jiffies(1000);
+	ulong to = msecs_to_jiffies(2000);
 	ulong left = wait_for_completion_timeout(&wil->wmi_ready, to);
 
 	if (0 == left) {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 12/21] wil6210: fix temperature debugfs
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (10 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 11/21] wil6210: increase firmware ready timeout Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 13/21] scsi: ufs: make sure all interrupts are processed Lee Jones
                   ` (9 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Dedy Lansky, Maya Erez, Kalle Valo, Lee Jones

From: Dedy Lansky <dlansky@codeaurora.org>

[ Upstream commit 6d9eb7ebae3d7e951bc0999235ae7028eb4cae4f ]

For negative temperatures, "temp" debugfs is showing wrong values.
Use signed types so proper calculations is done for sub zero
temperatures.

Signed-off-by: Dedy Lansky <dlansky@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/net/wireless/ath/wil6210/debugfs.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c
index 5e4058a4037b4..cbf3958d788a5 100644
--- a/drivers/net/wireless/ath/wil6210/debugfs.c
+++ b/drivers/net/wireless/ath/wil6210/debugfs.c
@@ -1091,7 +1091,7 @@ static const struct file_operations fops_ssid = {
 };
 
 /*---------temp------------*/
-static void print_temp(struct seq_file *s, const char *prefix, u32 t)
+static void print_temp(struct seq_file *s, const char *prefix, s32 t)
 {
 	switch (t) {
 	case 0:
@@ -1099,7 +1099,8 @@ static void print_temp(struct seq_file *s, const char *prefix, u32 t)
 		seq_printf(s, "%s N/A\n", prefix);
 	break;
 	default:
-		seq_printf(s, "%s %d.%03d\n", prefix, t / 1000, t % 1000);
+		seq_printf(s, "%s %s%d.%03d\n", prefix, (t < 0 ? "-" : ""),
+			   abs(t / 1000), abs(t % 1000));
 		break;
 	}
 }
@@ -1107,7 +1108,7 @@ static void print_temp(struct seq_file *s, const char *prefix, u32 t)
 static int wil_temp_debugfs_show(struct seq_file *s, void *data)
 {
 	struct wil6210_priv *wil = s->private;
-	u32 t_m, t_r;
+	s32 t_m, t_r;
 	int rc = wmi_get_temperature(wil, &t_m, &t_r);
 
 	if (rc) {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 13/21] scsi: ufs: make sure all interrupts are processed
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (11 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 12/21] wil6210: fix temperature debugfs Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 14/21] scsi: ufs: ufs-qcom: remove broken hci version quirk Lee Jones
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable
  Cc: Venkat Gopalakrishnan, Asutosh Das, Subhash Jadavani,
	Martin K . Petersen, Lee Jones

From: Venkat Gopalakrishnan <venkatg@codeaurora.org>

[ Upstream commit 7f6ba4f12e6cbfdefbb95cfd8fc67ece6c15d799 ]

As multiple requests are submitted to the ufs host controller in
parallel there could be instances where the command completion interrupt
arrives later for a request that is already processed earlier as the
corresponding doorbell was cleared when handling the previous
interrupt. Read the interrupt status in a loop after processing the
received interrupt to catch such interrupts and handle it.

Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/scsi/ufs/ufshcd.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 0b268f0151c67..84ab53d6d1daf 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -4401,19 +4401,30 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba)
 	u32 intr_status, enabled_intr_status;
 	irqreturn_t retval = IRQ_NONE;
 	struct ufs_hba *hba = __hba;
+	int retries = hba->nutrs;
 
 	spin_lock(hba->host->host_lock);
 	intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
-	enabled_intr_status =
-		intr_status & ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
 
-	if (intr_status)
-		ufshcd_writel(hba, intr_status, REG_INTERRUPT_STATUS);
+	/*
+	 * There could be max of hba->nutrs reqs in flight and in worst case
+	 * if the reqs get finished 1 by 1 after the interrupt status is
+	 * read, make sure we handle them by checking the interrupt status
+	 * again in a loop until we process all of the reqs before returning.
+	 */
+	do {
+		enabled_intr_status =
+			intr_status & ufshcd_readl(hba, REG_INTERRUPT_ENABLE);
+		if (intr_status)
+			ufshcd_writel(hba, intr_status, REG_INTERRUPT_STATUS);
+		if (enabled_intr_status) {
+			ufshcd_sl_intr(hba, enabled_intr_status);
+			retval = IRQ_HANDLED;
+		}
+
+		intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS);
+	} while (intr_status && --retries);
 
-	if (enabled_intr_status) {
-		ufshcd_sl_intr(hba, enabled_intr_status);
-		retval = IRQ_HANDLED;
-	}
 	spin_unlock(hba->host->host_lock);
 	return retval;
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 14/21] scsi: ufs: ufs-qcom: remove broken hci version quirk
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (12 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 13/21] scsi: ufs: make sure all interrupts are processed Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 15/21] wil6210: rate limit wil_rx_refill error Lee Jones
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Subhash Jadavani, Asutosh Das, Martin K . Petersen, Lee Jones

From: Subhash Jadavani <subhashj@codeaurora.org>

[ Upstream commit 69a6fff068567469c0ef1156ae5ac8d3d71701f0 ]

UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION is only applicable for QCOM UFS host
controller version 2.x.y and this has been fixed from version 3.x.y
onwards, hence this change removes this quirk for version 3.x.y onwards.

[mkp: applied by hand]

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/scsi/ufs/ufs-qcom.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index 51d559214db60..1fe193590b8bd 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -1094,7 +1094,7 @@ static void ufs_qcom_advertise_quirks(struct ufs_hba *hba)
 		hba->quirks |= UFSHCD_QUIRK_BROKEN_LCC;
 	}
 
-	if (host->hw_ver.major >= 0x2) {
+	if (host->hw_ver.major == 0x2) {
 		hba->quirks |= UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION;
 
 		if (!ufs_qcom_cap_qunipro(host))
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 15/21] wil6210: rate limit wil_rx_refill error
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (13 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 14/21] scsi: ufs: ufs-qcom: remove broken hci version quirk Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 16/21] rtc: pm8xxx: Fix issue in RTC write path Lee Jones
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Dedy Lansky, Maya Erez, Kalle Valo, Lee Jones

From: Dedy Lansky <dlansky@codeaurora.org>

[ Upstream commit 3d6b72729cc2933906de8d2c602ae05e920b2122 ]

wil_err inside wil_rx_refill can flood the log buffer.
Replace it with wil_err_ratelimited.

Signed-off-by: Dedy Lansky <dlansky@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/net/wireless/ath/wil6210/txrx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c
index 4c38520d4dd2d..72e8fea05e5e1 100644
--- a/drivers/net/wireless/ath/wil6210/txrx.c
+++ b/drivers/net/wireless/ath/wil6210/txrx.c
@@ -546,8 +546,8 @@ static int wil_rx_refill(struct wil6210_priv *wil, int count)
 			v->swtail = next_tail) {
 		rc = wil_vring_alloc_skb(wil, v, v->swtail, headroom);
 		if (unlikely(rc)) {
-			wil_err(wil, "Error %d in wil_rx_refill[%d]\n",
-				rc, v->swtail);
+			wil_err_ratelimited(wil, "Error %d in rx refill[%d]\n",
+					    rc, v->swtail);
 			break;
 		}
 	}
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 16/21] rtc: pm8xxx: Fix issue in RTC write path
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (14 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 15/21] wil6210: rate limit wil_rx_refill error Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 17/21] wil6210: fix length check in __wmi_send Lee Jones
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Mohit Aggarwal, Alexandre Belloni, Lee Jones

From: Mohit Aggarwal <maggarwa@codeaurora.org>

[ Upstream commit 83220bf38b77a830f8e62ab1a0d0408304f9b966 ]

In order to set time in rtc, need to disable
rtc hw before writing into rtc registers.

Also fixes disabling of alarm while setting
rtc time.

Signed-off-by: Mohit Aggarwal <maggarwa@codeaurora.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/rtc/rtc-pm8xxx.c | 49 +++++++++++++++++++++++++++++++---------
 1 file changed, 38 insertions(+), 11 deletions(-)

diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c
index a1b4b0ed1f196..3b619b7b2c530 100644
--- a/drivers/rtc/rtc-pm8xxx.c
+++ b/drivers/rtc/rtc-pm8xxx.c
@@ -74,16 +74,18 @@ struct pm8xxx_rtc {
 /*
  * Steps to write the RTC registers.
  * 1. Disable alarm if enabled.
- * 2. Write 0x00 to LSB.
- * 3. Write Byte[1], Byte[2], Byte[3] then Byte[0].
- * 4. Enable alarm if disabled in step 1.
+ * 2. Disable rtc if enabled.
+ * 3. Write 0x00 to LSB.
+ * 4. Write Byte[1], Byte[2], Byte[3] then Byte[0].
+ * 5. Enable rtc if disabled in step 2.
+ * 6. Enable alarm if disabled in step 1.
  */
 static int pm8xxx_rtc_set_time(struct device *dev, struct rtc_time *tm)
 {
 	int rc, i;
 	unsigned long secs, irq_flags;
-	u8 value[NUM_8_BIT_RTC_REGS], alarm_enabled = 0;
-	unsigned int ctrl_reg;
+	u8 value[NUM_8_BIT_RTC_REGS], alarm_enabled = 0, rtc_disabled = 0;
+	unsigned int ctrl_reg, rtc_ctrl_reg;
 	struct pm8xxx_rtc *rtc_dd = dev_get_drvdata(dev);
 	const struct pm8xxx_rtc_regs *regs = rtc_dd->regs;
 
@@ -92,23 +94,38 @@ static int pm8xxx_rtc_set_time(struct device *dev, struct rtc_time *tm)
 
 	rtc_tm_to_time(tm, &secs);
 
+	dev_dbg(dev, "Seconds value to be written to RTC = %lu\n", secs);
+
 	for (i = 0; i < NUM_8_BIT_RTC_REGS; i++) {
 		value[i] = secs & 0xFF;
 		secs >>= 8;
 	}
 
-	dev_dbg(dev, "Seconds value to be written to RTC = %lu\n", secs);
-
 	spin_lock_irqsave(&rtc_dd->ctrl_reg_lock, irq_flags);
 
-	rc = regmap_read(rtc_dd->regmap, regs->ctrl, &ctrl_reg);
+	rc = regmap_read(rtc_dd->regmap, regs->alarm_ctrl, &ctrl_reg);
 	if (rc)
 		goto rtc_rw_fail;
 
 	if (ctrl_reg & regs->alarm_en) {
 		alarm_enabled = 1;
 		ctrl_reg &= ~regs->alarm_en;
-		rc = regmap_write(rtc_dd->regmap, regs->ctrl, ctrl_reg);
+		rc = regmap_write(rtc_dd->regmap, regs->alarm_ctrl, ctrl_reg);
+		if (rc) {
+			dev_err(dev, "Write to RTC Alarm control register failed\n");
+			goto rtc_rw_fail;
+		}
+	}
+
+	/* Disable RTC H/w before writing on RTC register */
+	rc = regmap_read(rtc_dd->regmap, regs->ctrl, &rtc_ctrl_reg);
+	if (rc)
+		goto rtc_rw_fail;
+
+	if (rtc_ctrl_reg & PM8xxx_RTC_ENABLE) {
+		rtc_disabled = 1;
+		rtc_ctrl_reg &= ~PM8xxx_RTC_ENABLE;
+		rc = regmap_write(rtc_dd->regmap, regs->ctrl, rtc_ctrl_reg);
 		if (rc) {
 			dev_err(dev, "Write to RTC control register failed\n");
 			goto rtc_rw_fail;
@@ -137,11 +154,21 @@ static int pm8xxx_rtc_set_time(struct device *dev, struct rtc_time *tm)
 		goto rtc_rw_fail;
 	}
 
+	/* Enable RTC H/w after writing on RTC register */
+	if (rtc_disabled) {
+		rtc_ctrl_reg |= PM8xxx_RTC_ENABLE;
+		rc = regmap_write(rtc_dd->regmap, regs->ctrl, rtc_ctrl_reg);
+		if (rc) {
+			dev_err(dev, "Write to RTC control register failed\n");
+			goto rtc_rw_fail;
+		}
+	}
+
 	if (alarm_enabled) {
 		ctrl_reg |= regs->alarm_en;
-		rc = regmap_write(rtc_dd->regmap, regs->ctrl, ctrl_reg);
+		rc = regmap_write(rtc_dd->regmap, regs->alarm_ctrl, ctrl_reg);
 		if (rc) {
-			dev_err(dev, "Write to RTC control register failed\n");
+			dev_err(dev, "Write to RTC Alarm control register failed\n");
 			goto rtc_rw_fail;
 		}
 	}
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 17/21] wil6210: fix length check in __wmi_send
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (15 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 16/21] rtc: pm8xxx: Fix issue in RTC write path Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 18/21] soc: qcom: smem: Use le32_to_cpu for comparison Lee Jones
                   ` (4 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Lior David, Maya Erez, Kalle Valo, Lee Jones

From: Lior David <qca_liord@qca.qualcomm.com>

[ Upstream commit 26a6d5274865532502c682ff378ac8ebe2886238 ]

The current length check:
sizeof(cmd) + len > r->entry_size
will allow very large values of len (> U16_MAX - sizeof(cmd))
and can cause a buffer overflow. Fix the check to cover this case.
In addition, ensure the mailbox entry_size is not too small,
since this can also bypass the above check.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/net/wireless/ath/wil6210/interrupt.c | 22 +++++++++++++++++++-
 drivers/net/wireless/ath/wil6210/wmi.c       |  2 +-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/interrupt.c b/drivers/net/wireless/ath/wil6210/interrupt.c
index 64046e0bd0a22..a37533cffc7ca 100644
--- a/drivers/net/wireless/ath/wil6210/interrupt.c
+++ b/drivers/net/wireless/ath/wil6210/interrupt.c
@@ -356,6 +356,25 @@ static void wil_cache_mbox_regs(struct wil6210_priv *wil)
 	wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
 }
 
+static bool wil_validate_mbox_regs(struct wil6210_priv *wil)
+{
+	size_t min_size = sizeof(struct wil6210_mbox_hdr) +
+		sizeof(struct wmi_cmd_hdr);
+
+	if (wil->mbox_ctl.rx.entry_size < min_size) {
+		wil_err(wil, "rx mbox entry too small (%d)\n",
+			wil->mbox_ctl.rx.entry_size);
+		return false;
+	}
+	if (wil->mbox_ctl.tx.entry_size < min_size) {
+		wil_err(wil, "tx mbox entry too small (%d)\n",
+			wil->mbox_ctl.tx.entry_size);
+		return false;
+	}
+
+	return true;
+}
+
 static irqreturn_t wil6210_irq_misc(int irq, void *cookie)
 {
 	struct wil6210_priv *wil = cookie;
@@ -391,7 +410,8 @@ static irqreturn_t wil6210_irq_misc(int irq, void *cookie)
 	if (isr & ISR_MISC_FW_READY) {
 		wil_dbg_irq(wil, "IRQ: FW ready\n");
 		wil_cache_mbox_regs(wil);
-		set_bit(wil_status_mbox_ready, wil->status);
+		if (wil_validate_mbox_regs(wil))
+			set_bit(wil_status_mbox_ready, wil->status);
 		/**
 		 * Actual FW ready indicated by the
 		 * WMI_FW_READY_EVENTID
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c
index 61419d1b45435..3f6ac1ca0e575 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.c
+++ b/drivers/net/wireless/ath/wil6210/wmi.c
@@ -209,7 +209,7 @@ static int __wmi_send(struct wil6210_priv *wil, u16 cmdid, void *buf, u16 len)
 	uint retry;
 	int rc = 0;
 
-	if (sizeof(cmd) + len > r->entry_size) {
+	if (len > r->entry_size - sizeof(cmd)) {
 		wil_err(wil, "WMI size too large: %d bytes, max is %d\n",
 			(int)(sizeof(cmd) + len), r->entry_size);
 		return -ERANGE;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 18/21] soc: qcom: smem: Use le32_to_cpu for comparison
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (16 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 17/21] wil6210: fix length check in __wmi_send Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 19/21] of: fix missing kobject init for !SYSFS && OF_DYNAMIC config Lee Jones
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Chris Lew, Bjorn Andersson, Andy Gross, Lee Jones

From: Chris Lew <clew@codeaurora.org>

[ Upstream commit a216000f0140f415cec96129f777b5234c9d142f ]

Endianness can vary in the system, add le32_to_cpu when comparing
partition sizes from smem.

Signed-off-by: Chris Lew <clew@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/soc/qcom/smem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
index 18ec52f2078aa..89dd50fa404f7 100644
--- a/drivers/soc/qcom/smem.c
+++ b/drivers/soc/qcom/smem.c
@@ -646,7 +646,7 @@ static int qcom_smem_enumerate_partitions(struct qcom_smem *smem,
 			return -EINVAL;
 		}
 
-		if (header->size != entry->size) {
+		if (le32_to_cpu(header->size) != le32_to_cpu(entry->size)) {
 			dev_err(smem->dev,
 				"Partition %d has invalid size\n", i);
 			return -EINVAL;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 19/21] of: fix missing kobject init for !SYSFS && OF_DYNAMIC config
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (17 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 18/21] soc: qcom: smem: Use le32_to_cpu for comparison Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 20/21] mm/vmalloc.c: move 'area->pages' after if statement Lee Jones
                   ` (2 subsequent siblings)
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Rob Herring, Nicolas Pitre, Frank Rowand, Grant Likely, Lee Jones

From: Rob Herring <robh@kernel.org>

[ Upstream commit bd82bbf38cbe27f2c65660da801900d71bcc5cc8 ]

The ref counting is broken for OF_DYNAMIC when sysfs is disabled because
the kobject initialization is skipped. Only the properties
add/remove/update should be skipped for !SYSFS config.

Tested-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Frank Rowand <frowand.list@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/of/base.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index c66cdc4307fd7..af80e3d34eda7 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -170,9 +170,6 @@ int __of_attach_node_sysfs(struct device_node *np)
 	struct property *pp;
 	int rc;
 
-	if (!IS_ENABLED(CONFIG_SYSFS))
-		return 0;
-
 	if (!of_kset)
 		return 0;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 20/21] mm/vmalloc.c: move 'area->pages' after if statement
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (18 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 19/21] of: fix missing kobject init for !SYSFS && OF_DYNAMIC config Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-04-22 11:19 ` [PATCH 4.9 21/21] usb: dwc3: don't set gadget->is_otg flag Lee Jones
  2020-05-13  9:39 ` [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Greg KH
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable
  Cc: Austin Kim, Michal Hocko, Andrew Morton, Uladzislau Rezki,
	Roman Gushchin, Roman Penyaev, Rick Edgecombe, Mike Rapoport,
	Andrey Ryabinin, Linus Torvalds, Lee Jones

From: Austin Kim <austindh.kim@gmail.com>

[ Upstream commit 7ea362427c170061b8822dd41bafaa72b3bcb9ad ]

If !area->pages statement is true where memory allocation fails, area is
freed.

In this case 'area->pages = pages' should not executed.  So move
'area->pages = pages' after if statement.

[akpm@linux-foundation.org: give area->pages the same treatment]
Link: http://lkml.kernel.org/r/20190830035716.GA190684@LGEARND20B15
Signed-off-by: Austin Kim <austindh.kim@gmail.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Roman Penyaev <rpenyaev@suse.de>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 mm/vmalloc.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index dd66f1fb3fcf6..45e8d51d73233 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1624,7 +1624,6 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
 	nr_pages = get_vm_area_size(area) >> PAGE_SHIFT;
 	array_size = (nr_pages * sizeof(struct page *));
 
-	area->nr_pages = nr_pages;
 	/* Please note that the recursion is strictly bounded. */
 	if (array_size > PAGE_SIZE) {
 		pages = __vmalloc_node(array_size, 1, nested_gfp|__GFP_HIGHMEM,
@@ -1632,13 +1631,16 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
 	} else {
 		pages = kmalloc_node(array_size, nested_gfp, node);
 	}
-	area->pages = pages;
-	if (!area->pages) {
+
+	if (!pages) {
 		remove_vm_area(area->addr);
 		kfree(area);
 		return NULL;
 	}
 
+	area->pages = pages;
+	area->nr_pages = nr_pages;
+
 	for (i = 0; i < area->nr_pages; i++) {
 		struct page *page;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 4.9 21/21] usb: dwc3: don't set gadget->is_otg flag
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (19 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 20/21] mm/vmalloc.c: move 'area->pages' after if statement Lee Jones
@ 2020-04-22 11:19 ` Lee Jones
  2020-05-13  9:39 ` [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Greg KH
  21 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-22 11:19 UTC (permalink / raw)
  To: stable; +Cc: Roger Quadros, Felipe Balbi, Lee Jones

From: Roger Quadros <rogerq@ti.com>

[ Upstream commit c09b73cfac2a9317f1104169045c519c6021aa1d ]

This reverts
commit 6a4290cc28be1 ("usb: dwc3: gadget: set the OTG flag in dwc3 gadget driver.")

We don't yet support any of the OTG mechanisms (HNP/SRP/ADP)
and are not setting gadget->otg_caps, so don't set gadget->is_otg
flag.

If we do then we end up publishing a OTG1.0 descriptor in
the gadget descriptor which causes device enumeration to fail
if we are connected to a host with CONFIG_USB_OTG enabled.

Host side log without this patch

[   96.720453] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[   96.901391] usb 1-1: Dual-Role OTG device on non-HNP port
[   96.907552] usb 1-1: set a_alt_hnp_support failed: -32
[   97.060447] usb 1-1: new high-speed USB device number 3 using xhci-hcd
[   97.241378] usb 1-1: Dual-Role OTG device on non-HNP port
[   97.247536] usb 1-1: set a_alt_hnp_support failed: -32
[   97.253606] usb usb1-port1: attempt power cycle
[   97.960449] usb 1-1: new high-speed USB device number 4 using xhci-hcd
[   98.141383] usb 1-1: Dual-Role OTG device on non-HNP port
[   98.147540] usb 1-1: set a_alt_hnp_support failed: -32
[   98.300453] usb 1-1: new high-speed USB device number 5 using xhci-hcd
[   98.481391] usb 1-1: Dual-Role OTG device on non-HNP port
[   98.487545] usb 1-1: set a_alt_hnp_support failed: -32
[   98.493532] usb usb1-port1: unable to enumerate USB device

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
---
 drivers/usb/dwc3/gadget.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 712bd450f8573..bf36eda082d65 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2996,7 +2996,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
 	dwc->gadget.speed		= USB_SPEED_UNKNOWN;
 	dwc->gadget.sg_supported	= true;
 	dwc->gadget.name		= "dwc3-gadget";
-	dwc->gadget.is_otg		= dwc->dr_mode == USB_DR_MODE_OTG;
 
 	/*
 	 * FIXME We might be setting max_speed to <SUPER, however versions
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* RE: [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN
  2020-04-22 11:19 ` [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN Lee Jones
@ 2020-04-22 12:17   ` David Laight
  2020-04-22 12:42     ` Geert Uytterhoeven
  2020-04-22 12:31   ` Greg Kroah-Hartman
  1 sibling, 1 reply; 30+ messages in thread
From: David Laight @ 2020-04-22 12:17 UTC (permalink / raw)
  To: 'Lee Jones', stable
  Cc: Alexey Brodkin, Alexey Brodkin, Greg Kroah-Hartman,
	Geert Uytterhoeven, Peter Zijlstra, Thomas Gleixner,
	Vineet Gupta, Will Deacon, Greg KH

From: Lee Jones <lee.jones@linaro.org>
> Sent: 22 April 2020 12:20
> From: Alexey Brodkin <alexey.brodkin@synopsys.com>
> 
> [ Upstream commit a66d972465d15b1d89281258805eb8b47d66bd36 ]
> 
> Initially we bumped into problem with 32-bit aligned atomic64_t
> on ARC, see [1]. And then during quite lengthly discussion Peter Z.
> mentioned ARCH_KMALLOC_MINALIGN which IMHO makes perfect sense.
> If allocation is done by plain kmalloc() obtained buffer will be
> ARCH_KMALLOC_MINALIGN aligned and then why buffer obtained via
> devm_kmalloc() should have any other alignment?
> 
> This way we at least get the same behavior for both types of
> allocation.

Anyone any idea how much difference it would actually make
to align all architectures to at least 32-bits (or even 64-bits)?

I think the only times it would make a difference would be for
allocations that (for example, 62 bytes on m68k) just
fit in a 64 byte block - so suddenly grow to 128 bytes.
(Or whatever granularity the allocator uses).

I suspect they are rarer than allocations of an arbitrary 2^n
bytes that get a lot of bloat padding if the allocator adds
a header.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN
  2020-04-22 11:19 ` [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN Lee Jones
  2020-04-22 12:17   ` David Laight
@ 2020-04-22 12:31   ` Greg Kroah-Hartman
  2020-04-23 11:58     ` Lee Jones
  1 sibling, 1 reply; 30+ messages in thread
From: Greg Kroah-Hartman @ 2020-04-22 12:31 UTC (permalink / raw)
  To: Lee Jones
  Cc: stable, Alexey Brodkin, Alexey Brodkin, Geert Uytterhoeven,
	David Laight, Peter Zijlstra, Thomas Gleixner, Vineet Gupta,
	Will Deacon

On Wed, Apr 22, 2020 at 12:19:40PM +0100, Lee Jones wrote:
> From: Alexey Brodkin <alexey.brodkin@synopsys.com>
> 
> [ Upstream commit a66d972465d15b1d89281258805eb8b47d66bd36 ]
> 
> Initially we bumped into problem with 32-bit aligned atomic64_t
> on ARC, see [1]. And then during quite lengthly discussion Peter Z.
> mentioned ARCH_KMALLOC_MINALIGN which IMHO makes perfect sense.
> If allocation is done by plain kmalloc() obtained buffer will be
> ARCH_KMALLOC_MINALIGN aligned and then why buffer obtained via
> devm_kmalloc() should have any other alignment?
> 
> This way we at least get the same behavior for both types of
> allocation.
> 
> [1] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004009.html
> [2] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004036.html
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: David Laight <David.Laight@ACULAB.COM>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Vineet Gupta <vgupta@synopsys.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Greg KH <greg@kroah.com>
> Cc: <stable@vger.kernel.org> # 4.8+
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/base/devres.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)


Sony ships this thing?  Wow...  Ok, I'll take it (for the next round),
but supposidly it only affected ARC systems, which I'm pretty sure are
not Sony phones :)

greg k-h

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN
  2020-04-22 12:17   ` David Laight
@ 2020-04-22 12:42     ` Geert Uytterhoeven
  0 siblings, 0 replies; 30+ messages in thread
From: Geert Uytterhoeven @ 2020-04-22 12:42 UTC (permalink / raw)
  To: David Laight
  Cc: Lee Jones, stable, Alexey Brodkin, Alexey Brodkin,
	Greg Kroah-Hartman, Peter Zijlstra, Thomas Gleixner,
	Vineet Gupta, Will Deacon, Greg KH

Hi David,

On Wed, Apr 22, 2020 at 2:17 PM David Laight <David.Laight@aculab.com> wrote:
> From: Lee Jones <lee.jones@linaro.org>
> > Sent: 22 April 2020 12:20
> > From: Alexey Brodkin <alexey.brodkin@synopsys.com>
> >
> > [ Upstream commit a66d972465d15b1d89281258805eb8b47d66bd36 ]
> >
> > Initially we bumped into problem with 32-bit aligned atomic64_t
> > on ARC, see [1]. And then during quite lengthly discussion Peter Z.
> > mentioned ARCH_KMALLOC_MINALIGN which IMHO makes perfect sense.
> > If allocation is done by plain kmalloc() obtained buffer will be
> > ARCH_KMALLOC_MINALIGN aligned and then why buffer obtained via
> > devm_kmalloc() should have any other alignment?
> >
> > This way we at least get the same behavior for both types of
> > allocation.
>
> Anyone any idea how much difference it would actually make
> to align all architectures to at least 32-bits (or even 64-bits)?
>
> I think the only times it would make a difference would be for
> allocations that (for example, 62 bytes on m68k) just
> fit in a 64 byte block - so suddenly grow to 128 bytes.
> (Or whatever granularity the allocator uses).

I believe ARCH_KMALLOC_MINALIGN is already at least 16 _bytes_
on all architectures (up to at last 128, perhaps even 256?).

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN
  2020-04-22 12:31   ` Greg Kroah-Hartman
@ 2020-04-23 11:58     ` Lee Jones
  0 siblings, 0 replies; 30+ messages in thread
From: Lee Jones @ 2020-04-23 11:58 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: stable, Alexey Brodkin, Alexey Brodkin, Geert Uytterhoeven,
	David Laight, Peter Zijlstra, Thomas Gleixner, Vineet Gupta,
	Will Deacon

On Wed, 22 Apr 2020, Greg Kroah-Hartman wrote:

> On Wed, Apr 22, 2020 at 12:19:40PM +0100, Lee Jones wrote:
> > From: Alexey Brodkin <alexey.brodkin@synopsys.com>
> > 
> > [ Upstream commit a66d972465d15b1d89281258805eb8b47d66bd36 ]
> > 
> > Initially we bumped into problem with 32-bit aligned atomic64_t
> > on ARC, see [1]. And then during quite lengthly discussion Peter Z.
> > mentioned ARCH_KMALLOC_MINALIGN which IMHO makes perfect sense.
> > If allocation is done by plain kmalloc() obtained buffer will be
> > ARCH_KMALLOC_MINALIGN aligned and then why buffer obtained via
> > devm_kmalloc() should have any other alignment?
> > 
> > This way we at least get the same behavior for both types of
> > allocation.
> > 
> > [1] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004009.html
> > [2] http://lists.infradead.org/pipermail/linux-snps-arc/2018-July/004036.html
> > 
> > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> > Cc: David Laight <David.Laight@ACULAB.COM>
> > Cc: Peter Zijlstra <peterz@infradead.org>
> > Cc: Thomas Gleixner <tglx@linutronix.de>
> > Cc: Vineet Gupta <vgupta@synopsys.com>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: Greg KH <greg@kroah.com>
> > Cc: <stable@vger.kernel.org> # 4.8+
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Signed-off-by: Lee Jones <lee.jones@linaro.org>
> > ---
> >  drivers/base/devres.c | 10 ++++++++--
> >  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> 
> Sony ships this thing?  Wow...  Ok, I'll take it (for the next round),
> but supposidly it only affected ARC systems, which I'm pretty sure are
> not Sony phones :)

Seemingly:

  https://github.com/sonyxperiadev/kernel/blob/aosp/LA.UM.7.1.r1/drivers/base/devres.c#L28

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update
  2020-04-22 11:19 ` [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update Lee Jones
@ 2020-05-13  9:38   ` Greg KH
  0 siblings, 0 replies; 30+ messages in thread
From: Greg KH @ 2020-05-13  9:38 UTC (permalink / raw)
  To: Lee Jones; +Cc: stable, Taniya Das, Stephen Boyd

On Wed, Apr 22, 2020 at 12:19:37PM +0100, Lee Jones wrote:
> From: Taniya Das <tdas@codeaurora.org>
> 
> [ Upstream commit 21ea4b62e1f3dc258001a68da98c9663a9dbd6c7 ]
> 
> In case of update config failure, return -EBUSY, so that consumers could
> handle the failure gracefully.
> 
> Signed-off-by: Taniya Das <tdas@codeaurora.org>
> Link: https://lkml.kernel.org/r/1557339895-21952-2-git-send-email-tdas@codeaurora.org
> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
> Signed-off-by: Lee Jones <lee.jones@linaro.org>
> ---
>  drivers/clk/qcom/clk-rcg2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Already in 4.9.219

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree
  2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
                   ` (20 preceding siblings ...)
  2020-04-22 11:19 ` [PATCH 4.9 21/21] usb: dwc3: don't set gadget->is_otg flag Lee Jones
@ 2020-05-13  9:39 ` Greg KH
  2020-05-13 13:13   ` Lee Jones
  21 siblings, 1 reply; 30+ messages in thread
From: Greg KH @ 2020-05-13  9:39 UTC (permalink / raw)
  To: Lee Jones; +Cc: stable

On Wed, Apr 22, 2020 at 12:19:36PM +0100, Lee Jones wrote:
> A recent review of the Sony Xperia Development kernel tree [0] resulted
> in the discovery of various patches which have been backported from
> Mainline in order to fix an array of issues.  These patches should be
> applied to Stable such that everyone can benefit from them.
> 
> Note: The review is still on-going (~50%) - more to follow.

I think I already took some of these, but not all, and I can't remember
why.  Can you resend the needed ones please?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree
  2020-05-13  9:39 ` [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Greg KH
@ 2020-05-13 13:13   ` Lee Jones
  2020-05-13 13:16     ` Greg KH
  0 siblings, 1 reply; 30+ messages in thread
From: Lee Jones @ 2020-05-13 13:13 UTC (permalink / raw)
  To: Greg KH; +Cc: stable

On Wed, 13 May 2020, Greg KH wrote:

> On Wed, Apr 22, 2020 at 12:19:36PM +0100, Lee Jones wrote:
> > A recent review of the Sony Xperia Development kernel tree [0] resulted
> > in the discovery of various patches which have been backported from
> > Mainline in order to fix an array of issues.  These patches should be
> > applied to Stable such that everyone can benefit from them.
> > 
> > Note: The review is still on-going (~50%) - more to follow.
> 
> I think I already took some of these, but not all, and I can't remember
> why.  Can you resend the needed ones please?

Yes.  I sent them for the more recent kernels and you(r scripts) added
them to later ones as part of the normal process.  You said to send
them anyway, saying something like "not applying patches is not hard
for [you] to do".

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree
  2020-05-13 13:13   ` Lee Jones
@ 2020-05-13 13:16     ` Greg KH
  0 siblings, 0 replies; 30+ messages in thread
From: Greg KH @ 2020-05-13 13:16 UTC (permalink / raw)
  To: Lee Jones; +Cc: stable

On Wed, May 13, 2020 at 02:13:12PM +0100, Lee Jones wrote:
> On Wed, 13 May 2020, Greg KH wrote:
> 
> > On Wed, Apr 22, 2020 at 12:19:36PM +0100, Lee Jones wrote:
> > > A recent review of the Sony Xperia Development kernel tree [0] resulted
> > > in the discovery of various patches which have been backported from
> > > Mainline in order to fix an array of issues.  These patches should be
> > > applied to Stable such that everyone can benefit from them.
> > > 
> > > Note: The review is still on-going (~50%) - more to follow.
> > 
> > I think I already took some of these, but not all, and I can't remember
> > why.  Can you resend the needed ones please?
> 
> Yes.  I sent them for the more recent kernels and you(r scripts) added
> them to later ones as part of the normal process.  You said to send
> them anyway, saying something like "not applying patches is not hard
> for [you] to do".

Ah, but it did confuse me :)

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2020-05-13 13:16 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-22 11:19 [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 01/21] clk: qcom: rcg: Return failure for RCG update Lee Jones
2020-05-13  9:38   ` Greg KH
2020-04-22 11:19 ` [PATCH 4.9 02/21] drm/msm: stop abusing dma_map/unmap for cache Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 03/21] arm64: Fix size of __early_cpu_boot_status Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 04/21] devres: Align data[] to ARCH_KMALLOC_MINALIGN Lee Jones
2020-04-22 12:17   ` David Laight
2020-04-22 12:42     ` Geert Uytterhoeven
2020-04-22 12:31   ` Greg Kroah-Hartman
2020-04-23 11:58     ` Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 05/21] drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read() Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 06/21] drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 07/21] clk: Fix debugfs_create_*() usage Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 08/21] Revert "gpio: set up initial state from .get_direction()" Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 09/21] arm64: traps: Don't print stack or raw PC/LR values in backtraces Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 10/21] scsi: ufs: Fix error handing during hibern8 enter Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 11/21] wil6210: increase firmware ready timeout Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 12/21] wil6210: fix temperature debugfs Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 13/21] scsi: ufs: make sure all interrupts are processed Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 14/21] scsi: ufs: ufs-qcom: remove broken hci version quirk Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 15/21] wil6210: rate limit wil_rx_refill error Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 16/21] rtc: pm8xxx: Fix issue in RTC write path Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 17/21] wil6210: fix length check in __wmi_send Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 18/21] soc: qcom: smem: Use le32_to_cpu for comparison Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 19/21] of: fix missing kobject init for !SYSFS && OF_DYNAMIC config Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 20/21] mm/vmalloc.c: move 'area->pages' after if statement Lee Jones
2020-04-22 11:19 ` [PATCH 4.9 21/21] usb: dwc3: don't set gadget->is_otg flag Lee Jones
2020-05-13  9:39 ` [PATCH 4.9 00/21] Backported fixes taken from Sony's Vendor tree Greg KH
2020-05-13 13:13   ` Lee Jones
2020-05-13 13:16     ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.