Commit graph android_kernel_sony_sdm845/drivers/gpu
Message SHA1
msm: sde: fix sizeof-array-argument warning in tracepoint
In function parameters, `u32 data[]` decays to `u32 *`, making
the array syntax misleading and triggering
-Wsizeof-array-argument warnings.

Replace the array-style parameter with an explicit pointer type
to match the actual semantics and silence the warning.

Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Sorayukii   commited 2026-05-15 18:05:50 +07:00
58d788a77a
UPSTREAM: ANDROID: tracing: add power/gpu_work_period
From Android 16 CDD:

  [C-0-13] MUST implement the shell command dumpsys gpu --gpuwork to
  display the aggregated GPU work data returned by the
  power/gpu_work_period kernel tracepoint, or display no data if the
  tracepoint is not supported. The AOSP implementation is
  frameworks/native/services/gpuservice/gpuwork/.

Bug: 457797217
Test: cat /sys/kernel/tracing/events/power/gpu_work_period/format
Change-Id: Ia3d695d4297d8e2d6b4ad89e5747e39aec737810
Signed-off-by: Chia-I Wu <olv@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Chia-I Wu   authored and   Sorayukii   commited 2026-05-15 18:04:22 +07:00
9703ac9c78
UPSTREAM: ANDROID: tracing: add power/gpu_frequency
From Android 16 CDD:

  [7.1.4.6/H-1-4] MUST report a GPU Frequency tracepoint as specified by
  the format: power/gpu_frequency.

Bug: 457797217
Test: cat /sys/kernel/tracing/events/power/gpu_frequency/format
Change-Id: Ie8cd95cb8fe8471c2de19c48cdf57c8cf59f2370
Signed-off-by: Chia-I Wu <olv@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Chia-I Wu   authored and   Sorayukii   commited 2026-05-15 18:04:22 +07:00
b24d8263d0
UPSTREAM: gpu/trace: make TRACE_GPU_MEM configurable
Move the source to a better place in Device Drivers -> Graphics support
now that its configurable.

v4:
 - Move source location (Tvrtko)

v3:
 - Patch introduced to replace per-driver config (Lucas)

Change-Id: I50da95e8b65029ddfa525b83a182e7bc54693a13
Signed-off-by: Juston Li <justonli@chromium.org>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250611225145.1739201-1-justonli@chromium.org
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Juston Li   authored and   Sorayukii   commited 2026-05-15 18:04:22 +07:00
26cdf7ce8b
UPSTREAM: gpu/trace: add a gpu total memory usage tracepoint
This change adds the below gpu memory tracepoint:
gpu_mem/gpu_mem_total: track global or proc gpu memory total usages

Per process tracking of total gpu memory usage in the gem layer is not
appropriate and hard to implement with trivial overhead. So for the gfx
device driver layer to track total gpu memory usage both globally and
per process in an easy and uniform way is to integrate the tracepoint in
this patch to the underlying varied implementations of gpu memory
tracking system from vendors.

Putting this tracepoint in the common trace events can not only help
wean the gfx drivers off of debugfs but also greatly help the downstream
Android gpu vendors because debugfs is to be deprecated in the upcoming
Android release. Then the gpu memory tracking of both Android kernel and
the upstream linux kernel can stay closely, which can benefit the whole
kernel eco-system in the long term.

Link: http://lkml.kernel.org/r/20200302235044.59163-1-zzyiwei@google.com

Bug: 154523335
Test: saw this tracepoint on Pixel after gfx driver integration
Change-Id: Ia6f273015c656e7a286041d850e83e49fd063aa4
(cherry picked from commit bbd9d05618a6d608c72640b1d3d651a75913456a)
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Yiwei Zhang <zzyiwei@google.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Yiwei Zhang   authored and   Sorayukii   commited 2026-05-15 18:04:21 +07:00
ee07c6703a
BACKPORT: rcu: Ports some of RCU's taken from k4.14
Commits started from ("rcu: Tighten up __call_rcu() rcu_head alignment check") and ended in ("rcutorture: Invoke call_rcu() from timer handler")

Signed-off-by: Yousef Algadri <yusufgadrie@gmail.com>
Signed-off-by: TsingPeng <tsingpeng@foxmail.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Yousef Algadri   authored and   Sorayukii   commited 2026-05-15 17:49:30 +07:00
4ec5959a95
drm: increase the MAX_DRM_OPEN_COUNT
goldfish-opengl Vulkan driver with virtio-gpu will open one drm fd for
every allocated host visible VkDeviceMemory. 128 across the entire
system is too small for certain application.

Bug: 199949358
Change-Id: Id71cc3201461c5a83fcd1886d45914c286bca241
Signed-off-by: Kaiyi Li <kaiyili@google.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Kaiyi Li   authored and   Sorayukii   commited 2026-05-15 17:48:20 +07:00
3c140c29a3
msm: kgsl: enlarge the preemption counters buffer
The buffer is also used for KMD postamble after commit 27c8851a,
so make it as big as what it would have been (PAGE_SIZE) if we
had the priviledged scratch buffer to prevent override or overflow.

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Chenyang Zhong   authored and   Sorayukii   commited 2026-05-15 17:48:18 +07:00
4c74203b85
msm: kgsl: change the buffer name back to counters
Because we reverted the priviledged buffer commit 76518d9

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Change-Id: I84c65af9beaefe777e34c765bccf9df5cf20cf77
Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Chenyang Zhong   authored and   Sorayukii   commited 2026-05-15 17:48:18 +07:00
2b984f46a0
Revert "msm: kgsl: Mark the scratch buffer as privileged"
This reverts commit 76518d99f8.

Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Sorayukii   commited 2026-05-15 17:48:18 +07:00
d8cbd060f2
Revert "msm: kgsl: Keep postamble packets in a privileged buffer"
This reverts commit 47672094a5.

Signed-off-by: Sorayukii <sorayukii69@gmail.com>

Sorayukii   commited 2026-05-15 17:48:18 +07:00
f40d1ce68e
drivers/gpu/drm: Import Sony Panel drivers
*52.1.A.3.74

Signed-off-by: Sorayukii <sorayukii69@gmail.com>

exer   authored and   Sorayukii   commited 2026-05-15 17:48:09 +07:00
cfee59e031
BACKPORT: disp: msm: dsi: add null pointer check in dsi_display_dev_remove
This change add display null pointer check in dsi_display_dev_remove.

Change-Id: Ib31756c3b22256d19cbcb508f60de4550e3834e1
Signed-off-by: Jinfeng Gu <quic_gjinfeng@quicinc.com>

Jinfeng Gu   authored and   Michael Bestas   commited 2025-03-13 02:03:34 +00:00
83239467fc
drm/vgem: Close use-after-free race in vgem_gem_create
commit 4b848f20eda5974020f043ca14bacf7a7e634fc8 upstream.

There's two references floating around here (for the object reference,
not the handle_count reference, that's a different thing):

- The temporary reference held by vgem_gem_create, acquired by
  creating the object and released by calling
  drm_gem_object_put_unlocked.

- The reference held by the object handle, created by
  drm_gem_handle_create. This one generally outlives the function,
  except if a 2nd thread races with a GEM_CLOSE ioctl call.

So usually everything is correct, except in that race case, where the
access to gem_object->size could be looking at freed data already.
Which again isn't a real problem (userspace shot its feet off already
with the race, we could return garbage), but maybe someone can exploit
this as an information leak.

Cc: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Hillf Danton <hdanton@sina.com>
Reported-by: syzbot+0dc4444774d419e916c8@syzkaller.appspotmail.com
Cc: stable@vger.kernel.org
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Eric Anholt <eric@anholt.net>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Rob Clark <robdclark@chromium.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Change-Id: Ie60eb85499e5fe3cd27118c03829faf9ab67d7bc
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200202132133.1891846-1-daniel.vetter@ffwll.ch
[OP: backport to 4.19: adjusted DRM_DEBUG() -> DRM_DEBUG_DRIVER()]
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mkbestas: backport to 4.9]
Signed-off-by: Michael Bestas <mkbestas@lineageos.org>

Daniel Vetter   authored and   Michael Bestas   commited 2025-02-14 15:30:54 +02:00
a2f3c53b4c
Merge tag 'LA.UM.8.3.c25-09700-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9 into android13-4.9-sdm845
"LA.UM.8.3.c25-09700-sdm845.0"

* tag 'LA.UM.8.3.c25-09700-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9:
  securemsm-kernel: Fixed multiple listener registration on same fd
  msm: kgsl: Fix error handling during drawctxt switch
  msm: kgsl: Update the protect register list
  msm: kgsl: Do not release dma and anon buffers if unmap fails
  soc: qcom: smem: Add boundary checks for partitions
  msm: kgsl: Do not free sharedmem if it cannot be unmapped

 Conflicts:
	drivers/gpu/msm/kgsl_mmu.c

Change-Id: I62a1cc70492f769d35a9e91e140b1cb987269224

Michael Bestas   commited 2024-10-10 16:46:34 +03:00
2cb72020b2
msm: kgsl: Fix error handling during drawctxt switch
Currently, separate submissions are made for page table
switch and context switch to the ring buffer. However, if the
page table switch succeeds but the context switch fails,
it can lead to use of wrong page table for drawctxt.
To address this issue, rollback the pagetable to current pagetable.

Also,correctly put the refcount of adreno context during error
cleanup.

Change-Id: I1bb4ee3ebb0ce6ea32f0b6799cfb7fa89c0d09c7
Signed-off-by: Rakesh Naidu Bhaviripudi <quic_rakeshb@quicinc.com>

Rakesh Naidu Bhaviripudi   authored and   SIVA MULLATI   commited 2024-07-15 17:29:56 +05:30
a8985ca6d3
msm: kgsl: Update the protect register list
Update the protect register list as per the latest recommendation. Since
we are now relying on last-span-unbound feature, following are changed.

1. Last-span-unbound feature covers GMU_AO block, we have to replace
A6XX_GMU_ALWAYS_ON_COUNTER_L with A6XX_CP_ALWAYS_ON_COUNTER_LO
while accessing from GPU.

2. GMU power perf counters are unused and we are out of register address
protection spans to make them available for on older targets.

3. Remove PWR counter group safely for a6xx targets and setup the
counters internally.

4. IFPC counters are moved to part of target specific code and enabled
with ADRENO feature flag.

Change-Id: Ifcff462b669bbf9da8e4d53c87affdc8a9fcb740
Signed-off-by: Rakesh Naidu Bhaviripudi <quic_rakeshb@quicinc.com>

Rakesh Naidu Bhaviripudi   authored and   Harshitha Sai Neelati   commited 2024-04-22 15:51:54 +05:30
3434400aa9
msm: kgsl: Do not release dma and anon buffers if unmap fails
If iommu unmap fails and leaves dma or anon buffers still mapped in the
iommu, do not free them.

Change-Id: Ice0e1a59c1ac0ee7a9d62d8899966b84fa63d5ca
Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com>

Lynus Vaz   authored and   Harshitha Sai Neelati   commited 2024-04-22 15:49:04 +05:30
727b020d14
Merge tag 'LA.UM.10.3.c25-02100-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9 into android13-4.9-sdm845
"LA.UM.10.3.c25-02100-sdm845.0"

* tag 'LA.UM.10.3.c25-02100-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9:
  soc: qcom: smem: Add boundary checks for partitions
  msm: kgsl: Update the protect register list
  msm: kgsl: Do not release dma and anon buffers if unmap fails
  msm: kgsl: Do not free sharedmem if it cannot be unmapped
  msm: ADSPRPC: Restrict untrusted applications from attaching to GuestOS
  msm: kgsl: Use dma_buf_get() to get dma_buf structure
  pinctrl: qcom: Using readl_relaxed/writel_relaxed APIs
  msm: adsprpc: Handle UAF in fastrpc internal munmap
  iommu: Fix missing return check of arm_lpae_init_pte
  bus: mhi: misc: Add check for dev_rp if it is iommu range or not
  net: ipc_router: Add bounds check on tx path
  msm: kgsl: Remove 'fd' dependency to get dma_buf handle
  msm: kgsl: Keep postamble packets in a privileged buffer
  msm: kgsl: Make sure that pool pages don't have any extra references
  msm: kgsl: Prevent wrap around during user address mapping

 Conflicts:
	drivers/char/adsprpc.c
	drivers/gpu/msm/kgsl.c
	drivers/gpu/msm/kgsl_iommu.c
	drivers/gpu/msm/kgsl_mmu.c
	drivers/pinctrl/qcom/pinctrl-msm.c

Change-Id: I431924199616b135e180fd3a6421bb5037bcf164

Michael Bestas   commited 2024-04-20 00:36:50 +03:00
262ef91bdf
msm: kgsl: Update the protect register list
Update the protect register list as per the latest recommendation. Since
we are now relying on last-span-unbound feature, following are changed.

1. Last-span-unbound feature covers GMU_AO block, we have to replace
A6XX_GMU_ALWAYS_ON_COUNTER_L with A6XX_CP_ALWAYS_ON_COUNTER_LO
while accessing from GPU.

2. GMU power perf counters are unused and we are out of register address
protection spans to make them available for on older targets.

3. Remove PWR counter group safely for a6xx targets and setup the
counters internally.

4. IFPC counters are moved to part of target specific code and enabled
with ADRENO feature flag.

Change-Id: Ifcff462b669bbf9da8e4d53c87affdc8a9fcb740
Signed-off-by: Rakesh Naidu Bhaviripudi <quic_rakeshb@quicinc.com>

Rakesh Naidu Bhaviripudi   commited 2024-02-22 11:59:05 +05:30
a7b9424f01
msm: kgsl: Do not release dma and anon buffers if unmap fails
If iommu unmap fails and leaves dma or anon buffers still mapped in the
iommu, do not free them.

Change-Id: Ice0e1a59c1ac0ee7a9d62d8899966b84fa63d5ca
Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com>

Lynus Vaz   authored and   Gayathri Veeragandam   commited 2024-02-01 14:57:31 +05:30
326e137e38
msm: kgsl: Do not free sharedmem if it cannot be unmapped
If sharedmem cannot be unmapped from the mmu, it can still be accessed
by the GPU. Therefore it is not safe to free the backing memory. In the
case that unmap fails, do not free it or return it to the system.

Change-Id: Iad3e86d043f129a4d71cf862865d9033d4a315e3
Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com>
Signed-off-by: Kaushal Sanadhya <quic_ksanadhy@quicinc.com>

Kaushal Sanadhya   authored and   Harshitha Sai Neelati   commited 2023-12-29 18:29:23 +05:30
e2584fa02c
msm: kgsl: Do not free sharedmem if it cannot be unmapped
If sharedmem cannot be unmapped from the mmu, it can still be accessed
by the GPU. Therefore it is not safe to free the backing memory. In the
case that unmap fails, do not free it or return it to the system.

Change-Id: Iad3e86d043f129a4d71cf862865d9033d4a315e3
Signed-off-by: Lynus Vaz <quic_lvaz@quicinc.com>
Signed-off-by: Kaushal Sanadhya <quic_ksanadhy@quicinc.com>

Kaushal Sanadhya   authored and   Rakesh Naidu Bhaviripudi   commited 2023-12-22 12:56:00 +05:30
6514991083
msm: kgsl: Prevent wrap around during user address mapping
When setting svm region during the gpuobj import ioctl call for a usermem
address, there is a possibility of a very large input size causing the
region's 64-bit end address to wrap around. This can cause the region
to incorrectly be considered valid, ultimately allowing a use after free
scenario. To prevent this, detect the occurrence of a wrap and reject the
import.

Change-Id: I4a88f56c58b830d4342e47dc1d1f6290c78ab6b4
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>

Mohammed Mirza Mandayappurath Manzoor   authored and   Michael Bestas   commited 2023-12-12 01:48:34 +02:00
58c8b3aebd
msm: kgsl: Use dma_buf_get() to get dma_buf structure
Currently we don't ensure if vma->vm_file is associated with dma_buf. This
can cause issues later when private_data from a non dma_buf file is used as
dma_buf structure. Hence get the fd that is associated with vma->vm_file
and use dma_buf_get() to get pointer to dma_buf structure. dma_buf_get()
ensures that the file from the input fd is associated with dma_buf.

Change-Id: Ib78aef8b16bedca5ca86d3a132278ff9f07dce73
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>

Puranam V G Tejaswi   authored and   Rakesh Naidu Bhaviripudi   commited 2023-11-28 10:34:02 +05:30
2dc9656767
msm: kgsl: Remove 'fd' dependency to get dma_buf handle
Get the dma_buf handle directly from 'vm_file' after
doing necessary checks on the file.

Change-Id: Id5eec16588d64e4e28483b32bb52d4d3d9b86b99
Signed-off-by: ravnar <quic_ravnar@quicinc.com>
Signed-off-by: Sanjay Yadav <quic_sanjyada@quicinc.com>
Signed-off-by: Abhishek Barman <quic_abarman@quicinc.com>
Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>
Signed-off-by: NISARG SHETH <quic_nsheth@quicinc.com>

NISARG SHETH   commited 2023-11-21 11:11:54 +05:30
b3ce2cd74c
msm: kgsl: Keep postamble packets in a privileged buffer
Postamble packets are executed in privileged mode by gpu. So we should keep
them in a privileged scratch buffer to block userspace access. For
targets with APRIV feature support, we can mark the preemption scratch
buffer as privileged too to avoid similar issues in future.

Change-Id: Ifda360dda251083f38dfde80ce1b5dc83daae902
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Signed-off-by: Kaushal Sanadhya <quic_ksanadhy@quicinc.com>
Signed-off-by: NISARG SHETH <quic_nsheth@quicinc.com>

NISARG SHETH   commited 2023-11-21 11:10:39 +05:30
47672094a5
msm: kgsl: Make sure that pool pages don't have any extra references
Before putting a page back in the pool be sure that it doesn't have
any additional references that would be a signal that somebody else
is looking at the page and that it would be a bad idea to keep it
around and run the risk of accidentally handing it to a different
process.

Change-Id: Ic0dedbad0cf2ffb34b76ad23e393c5a911114b82
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com>
Signed-off-by: NISARG SHETH <quic_nsheth@quicinc.com>

NISARG SHETH   commited 2023-11-21 11:10:04 +05:30
37db312f1e
msm: kgsl: Prevent wrap around during user address mapping
When setting svm region during the gpuobj import ioctl call for a usermem
address, there is a possibility of a very large input size causing the
region's 64-bit end address to wrap around. This can cause the region
to incorrectly be considered valid, ultimately allowing a use after free
scenario. To prevent this, detect the occurrence of a wrap and reject the
import.

Change-Id: I4a88f56c58b830d4342e47dc1d1f6290c78ab6b4
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>
Signed-off-by: NISARG SHETH <quic_nsheth@quicinc.com>

NISARG SHETH   commited 2023-11-21 11:09:34 +05:30
5b2b4b2def
msm: kgsl: Prevent wrap around during user address mapping
When setting svm region during the gpuobj import ioctl call for a usermem
address, there is a possibility of a very large input size causing the
region's 64-bit end address to wrap around. This can cause the region
to incorrectly be considered valid, ultimately allowing a use after free
scenario. To prevent this, detect the occurrence of a wrap and reject the
import.

Change-Id: I4a88f56c58b830d4342e47dc1d1f6290c78ab6b4
Signed-off-by: Mohammed Mirza Mandayappurath Manzoor <quic_mmandaya@quicinc.com>

Mohammed Mirza Mandayappurath Manzoor   authored and   NISARG SHETH   commited 2023-09-21 16:38:01 +05:30
09ff75496d
Merge tag 'LA.UM.8.3.c25-08000-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9 into android13-4.9-sdm845
"LA.UM.8.3.c25-08000-sdm845.0"

* tag 'LA.UM.8.3.c25-08000-sdm845.0' of https://git.codelinaro.org/clo/la/kernel/msm-4.9:
  msm: kgsl: Keep postamble packets in a privileged buffer
  msm: kgsl: Make sure that pool pages don't have any extra references
  msm: kgsl: Use dma_buf_get() to get dma_buf structure
  net: ipc_router: Add bounds check on tx path

 Conflicts:
	drivers/gpu/msm/kgsl.c

Change-Id: Icf8c4ad9804ab5636b8a10b85e7cfc641f82b6d2

Michael Bestas   commited 2023-05-11 14:21:34 +03:00
ec69a60d18
msm: kgsl: Make sure that pool pages don't have any extra references
Before putting a page back in the pool be sure that it doesn't have
any additional references that would be a signal that somebody else
is looking at the page and that it would be a bad idea to keep it
around and run the risk of accidentally handing it to a different
process.

Change-Id: Ic0dedbad0cf2ffb34b76ad23e393c5a911114b82
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Kamal Agrawal <quic_kamaagra@quicinc.com>

Kamal Agrawal   authored and   Michael Bestas   commited 2023-05-02 20:36:07 +03:00
c2afd98c87
msm: kgsl: Use dma_buf_get() to get dma_buf structure
Currently we don't ensure if vma->vm_file is associated with dma_buf. This
can cause issues later when private_data from a non dma_buf file is used as
dma_buf structure. Hence get the fd that is associated with vma->vm_file
and use dma_buf_get() to get pointer to dma_buf structure. dma_buf_get()
ensures that the file from the input fd is associated with dma_buf.

Change-Id: Ib78aef8b16bedca5ca86d3a132278ff9f07dce73
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>

Puranam V G Tejaswi   authored and   Michael Bestas   commited 2023-05-02 20:36:07 +03:00
be9da5eeca
msm: kgsl: Keep postamble packets in a privileged buffer
Postamble packets are executed in privileged mode by gpu. So we should keep
them in a privileged scratch buffer to block userspace access. For
targets with APRIV feature support, we can mark the preemption scratch
buffer as privileged too to avoid similar issues in future.

Change-Id: Ifda360dda251083f38dfde80ce1b5dc83daae902
Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Signed-off-by: Kaushal Sanadhya <quic_ksanadhy@quicinc.com>

Akhil P Oommen   authored and   Gerrit - the friendly Code Review server   commited 2023-04-18 23:22:17 -07:00
62ab4b820f
Merge "msm: kgsl: Make sure that pool pages don't have any extra references"
Linux Build Service Account   authored and   Gerrit - the friendly Code Review server   commited 2023-03-05 20:57:10 -08:00
5b4853e8ef
msm: kgsl: Make sure that pool pages don't have any extra references
Before putting a page back in the pool be sure that it doesn't have
any additional references that would be a signal that somebody else
is looking at the page and that it would be a bad idea to keep it
around and run the risk of accidentally handing it to a different
process.

Change-Id: Ic0dedbad0cf2ffb34b76ad23e393c5a911114b82
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Harshitha Sai Neelati <quic_hsaineel@quicinc.com>

Harshitha Sai Neelati   authored and   Rajesh Kemisetti   commited 2023-03-05 20:20:35 +05:30
b9b8bc658c
msm: kgsl: Use dma_buf_get() to get dma_buf structure
Currently we don't ensure if vma->vm_file is associated with dma_buf. This
can cause issues later when private_data from a non dma_buf file is used as
dma_buf structure. Hence get the fd that is associated with vma->vm_file
and use dma_buf_get() to get pointer to dma_buf structure. dma_buf_get()
ensures that the file from the input fd is associated with dma_buf.

Change-Id: Ib78aef8b16bedca5ca86d3a132278ff9f07dce73
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>

Puranam V G Tejaswi   authored and   Rajesh Kemisetti   commited 2023-03-05 08:43:08 +05:30
ae0923eb75
Merge branch 'android-4.9-q' of https://android.googlesource.com/kernel/common into lineage-20
-----

Merge list:

f9b8314c64 UPSTREAM: ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
1b1e3a2a7b UPSTREAM: netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function.
7e6dfb2786 Merge 4.9.337 into android-4.9-q
87a72e8176 Linux 4.9.337
56836c32a4 ext4: initialize quota before expanding inode in setproject ioctl
9c4ef4429f ext4: avoid BUG_ON when creating xattrs
0735746664 ext4: fix error code return to user-space in ext4_get_branch()
67f6d5a404 ext4: init quota for 'old.inode' in 'ext4_rename'
e76ede9d2c ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
dd5639d36a ext4: fix undefined behavior in bit shift for ext4_check_flag_values
08cd26a911 ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
ee8d31836c drm/vmwgfx: Validate the box size for the snooped cursor
080569aa3c drm/connector: send hotplug uevent on connector cleanup
73adc289cd device_cgroup: Roll back to original exceptions after copy failure
c6db0c32f3 parisc: led: Fix potential null-ptr-deref in start_task()
fbac2c5be9 iommu/amd: Fix ivrs_acpihid cmdline parsing code
be61cadc7c crypto: n2 - add missing hash statesize
5e411983bb PCI/sysfs: Fix double free in error path
0f4dfff7dc cifs: fix confusing debug message
0588b12c41 media: dvb-core: Fix double free in dvb_register_device()
7854d3b926 ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
61d589b402 tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line
67a4e294c4 dm cache: set needs_check flag after aborting metadata
034cbc8d3b dm cache: Fix UAF in destroy()
7ee059d06a dm thin: Fix UAF in run_timer_softirq()
b35a22760a dm thin: Use last transaction's pmd->root when commit failed
6e237cacda dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
4be6501204 ARM: ux500: do not directly dereference __iomem
2d308bd0ba ktest.pl minconfig: Unset configs instead of just removing them
fca7a1c33c media: stv0288: use explicitly signed char
32d5af247d mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
732cd66ec1 md: fix a crash in mempool_free
cad0d17fb2 pnode: terminate at peers of source
b026af92b2 ALSA: line6: fix stack overflow in line6_midi_transmit
0407e79278 ALSA: line6: correct midi status byte when receiving data from podxt
ff939afec5 hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount
e28690c030 HID: plantronics: Additional PIDs for double volume key presses quirk
f413135b33 powerpc/rtas: avoid scheduling in rtas_os_term()
48e2ba6887 gcov: add support for checksum field
c8b577fe8d iio: adc: ad_sigma_delta: do not use internal iio_dev lock
0cf939d003 reiserfs: Add missing calls to reiserfs_security_free()
f21b8ddd23 HID: wacom: Ensure bootloader PID is usable in hidraw mode
525f1c8ada ASoC: rt5670: Remove unbalanced pm_runtime_put()
593f0c94dc ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume()
b606ae0e81 ASoC: wm8994: Fix potential deadlock
5f6d57871b ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in mt8173_rt5650_rt5514_dev_probe()
44d3eac26a orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
b2c92b2a38 drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
1cca6ac0a7 drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
081538ae58 clk: st: Fix memory leak in st_of_quadfs_setup()
146bd005eb media: si470x: Fix use-after-free in si470x_int_in_callback()
623cdf261f mmc: f-sdh30: Add quirks for broken timeout clock capability
654870789c blk-mq: fix possible memleak when register 'hctx' failed
733bc9e226 media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
afccb6ac63 media: dvb-frontends: fix leak of memory fw
e387a25552 ppp: associate skb with a device at tx
98f53e5919 mrp: introduce active flags to prevent UAF when applicant uninit
d684ceb773 md/raid1: stop mdx_raid1 thread when raid1 array run failed
a7c2d8c067 drm/sti: Use drm_mode_copy()
7b4da3fcd5 s390/lcs: Fix return type of lcs_start_xmit()
f13d870fce s390/netiucv: Fix return type of netiucv_tx()
636a7013b8 s390/ctcm: Fix return type of ctc{mp,}m_tx()
64ca196959 igb: Do not free q_vector unless new one was allocated
1db036d13e wifi: brcmfmac: Fix potential shift-out-of-bounds in brcmf_fw_alloc_request()
d467bbca62 hamradio: baycom_epp: Fix return type of baycom_send_packet()
a447479ea2 net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
3fa7cbdbe3 ipmi: fix memleak when unload ipmi driver
c9ba3fbf6a wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
932f0a5e82 wifi: ath9k: verify the expected usb_endpoints are present
8c40f2dbae hfs: fix OOB Read in __hfs_brec_find
e93f995a59 acct: fix potential integer overflow in encode_comp_t()
6b0ea3df56 nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
38e251d356 ACPICA: Fix error code path in acpi_ds_call_control_method()
f8d4d0bac6 fs: jfs: fix shift-out-of-bounds in dbDiscardAG
78eba2778a udf: Avoid double brelse() in udf_rename()
d3b486946a fs: jfs: fix shift-out-of-bounds in dbAllocAG
0f1a48994b binfmt_misc: fix shift-out-of-bounds in check_special_flags
c8c1eec578 net: stream: purge sk_error_queue in sk_stream_kill_queues()
a4da73a1d2 myri10ge: Fix an error handling path in myri10ge_probe()
4d5d13eac3 net_sched: reject TCF_EM_SIMPLE case for complex ematch module
ff3743d00f skbuff: Account for tail adjustment during pull operations
4f592e712e openvswitch: Fix flow lookup to use unmasked key
a04707f459 r6040: Fix kmemleak in probe and remove
9da4a0411f nfc: pn533: Clear nfc_target before being used
7f1cda9c19 mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
fc24113bc3 mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
291b787995 mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
707bcca961 nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
4761ab97d4 rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
81a61f3396 selftests/powerpc: Fix resource leaks
1bd37681eb powerpc/hv-gpci: Fix hv_gpci event list
225c852340 powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe()
4a62ab0985 powerpc/perf: callchain validate kernel stack pointer bounds
be9caf2c93 powerpc/52xx: Fix a resource leak in an error handling path
aaf59a444b macintosh/macio-adb: check the return value of ioremap()
3a866ff6fc macintosh: fix possible memory leak in macio_add_one_device()
c939832305 iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
4be1a8d894 rtc: snvs: Allow a time difference on clock register read
4e0b6364d0 include/uapi/linux/swab: Fix potentially missing __always_inline
7f43b9a984 HSI: omap_ssi_core: Fix error handling in ssi_init()
29a5727780 power: supply: fix residue sysfs file in error handle route of __power_supply_register()
107eb675d3 HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
8a502dfab2 HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
8a62bc1c9a fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
4383832879 fbdev: vermilion: decrease reference count in error path
5bf10c3be0 fbdev: via: Fix error in via_core_init()
0a71d0472c fbdev: pm2fb: fix missing pci_disable_device()
c0cdb87177 fbdev: ssd1307fb: Drop optional dependency
0b8a070a7c usb: storage: Add check for kcalloc
4a7bb1d93a i2c: ismt: Fix an out-of-bounds bug in ismt_access()
e831fdd60e vme: Fix error not catched in fake_init()
cf7d89e809 staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
9c03db0ec8 staging: rtl8192u: Fix use after free in ieee80211_rx()
9e6fe3e856 i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
5d2146889f chardev: fix error handling in cdev_device_add()
891f606ae0 mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
531ac7b911 drivers: mcb: fix resource leak in mcb_probe()
82e6843266 cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
96fba6fb95 cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
f99d5f1bd8 misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os
2bbb222a54 misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
5ea80d3dc0 serial: sunsab: Fix error handling in sunsab_init()
90ff030ca1 serial: pch: Fix PCI device refcount leak in pch_request_dma()
1c5f0d3f48 serial: amba-pl011: avoid SBSA UART accessing DMACR register
5cc4eea715 staging: vme_user: Fix possible UAF in tsi148_dma_list_add
92a0e9094b usb: fotg210-udc: Fix ages old endianness issues
35a27f38b4 uio: uio_dmem_genirq: Fix deadlock between irq config and handling
9977cb7af5 uio: uio_dmem_genirq: Fix missing unlock in irq configuration
a896a0145c vfio: platform: Do not pass return buffer to ACPI _RST method
affe3cea6b drivers: dio: fix possible memory leak in dio_init()
2aecfec735 IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
88f4ea623f hwrng: geode - Fix PCI device refcount leak
f1c97f72ff hwrng: amd - Fix PCI device refcount leak
84e4794a77 crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
36ffa81608 orangefs: Fix sysfs not cleanup when dev init failed
f9d8b8ba0f scsi: snic: Fix possible UAF in snic_tgt_create()
d581303d6f scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
020b660237 scsi: ipr: Fix WARNING in ipr_init()
16b2077382 scsi: fcoe: Fix possible name leak when device_register() fails
07e97ce1a2 scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
e744faa744 scsi: hpsa: Fix error handling in hpsa_add_sas_host()
27353e2fae stmmac: fix potential division by 0
54c7317bde Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
0913307bb5 Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
5c366b96b1 Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
f9c7eb2991 Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
c7276ee693 Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
d4460c8217 ntb_netdev: Use dev_kfree_skb_any() in interrupt context
d90f63e5f5 net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
84af17d56f hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
82b04c27e5 net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
cce993d043 net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
6537d363e4 net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
460577583a net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
e8316584b0 net/tunnel: wait until all sk_user_data reader finish before releasing the sock
41798a063f net: farsync: Fix kmemleak when rmmods farsync
0d30b9f10f ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
15770edc01 drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
cdf10b514f net: defxx: Fix missing err handling in dfx_init()
1afe89a96d net: vmw_vsock: vmci: Check memcpy_from_msg()
fe70ceaf38 blktrace: Fix output non-blktrace event when blk_classic option enabled
56758e923d wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
5a55f0336c wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
d308c4a035 media: coda: Add check for kmalloc
5688d33aa2 media: coda: Add check for dcoda_iram_alloc
52a736cc71 media: c8sectpfe: Add of_node_put() when breaking out of loop
b839998387 mmc: mmci: fix return value check of mmc_add_host()
fc85606bdf mmc: wbsd: fix return value check of mmc_add_host()
076bcd2c93 mmc: via-sdmmc: fix return value check of mmc_add_host()
41ed46bdbd mmc: vub300: fix return value check of mmc_add_host()
34ae492f8d mmc: toshsd: fix return value check of mmc_add_host()
d7ad7278be mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
5f35c038c9 mmc: mxcmmc: fix return value check of mmc_add_host()
a4c765f5d8 mmc: moxart: fix return value check of mmc_add_host()
b149509862 SUNRPC: Fix missing release socket in rpc_sockname()
06ec592389 ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
6204de885d media: saa7164: fix missing pci_disable_device()
68c4ab962d regulator: core: fix module refcount leak in set_supply()
3b5357f363 bonding: uninitialized variable in bond_miimon_inspect()
485029c835 ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
6611feef35 drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
6f28c7f67a drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
c0e07daf2d ALSA: asihpi: fix missing pci_disable_device()
5cc6b7acf5 NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
6f384464b9 NFSv4.2: Fix a memory stomp in decode_attr_security_label
2b6a8a1a32 media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
7fb8cc3eb6 pinctrl: pinconf-generic: add missing of_node_put()
075e24fd1d media: imon: fix a race condition in send_packet()
cb3f35f448 mtd: maps: pxa2xx-flash: fix memory leak in probe
20201c3a0a clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
30f79752f5 ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT
b2eb9ec56e HID: hid-sensor-custom: set fixed size for custom attributes
93e707953d media: platform: exynos4-is: Fix error handling in fimc_md_init()
83d4b1ae98 media: solo6x10: fix possible memory leak in solo_sysfs_init()
6590d09b54 Input: elants_i2c - properly handle the reset GPIO when power is off
4d10bd7416 mtd: lpddr2_nvm: Fix possible null-ptr-deref
a4505bb429 wifi: ath10k: Fix return value in ath10k_pci_init()
eaba2df235 ima: Fix misuse of dereference of pointer in template_desc_init_fields()
0e88505ac0 regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
3ec75e0ea9 ASoC: pxa: fix null-pointer dereference in filter()
a75f45afa9 mtd: Fix device name leak when register device failed in add_mtd_device()
8c0ee15d9a media: vivid: fix compose size exceed boundary
dc8da40430 media: i2c: ad5820: Fix error path
5e8751a977 wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
134ae5eba4 wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs()
6e4540e097 rapidio: devices: fix missing put_device in mport_cdev_open
8399318b13 hfs: Fix OOB Write in hfs_asc2mac
c25ad86eab eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
2a6c75adf8 rapidio: fix possible UAF when kfifo_alloc() fails
9498f673e9 fs: sysv: Fix sysv_nblocks() returns wrong value
1fa95583dc MIPS: BCM63xx: Add check for NULL for clk in clk_enable
9278bdbb56 x86/xen: Fix memory leak in xen_init_lock_cpu()
7df153f905 uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
133462d35d ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
0a71344f99 rapidio: rio: fix possible name leak in rio_register_mport()
3b4676f274 rapidio: fix possible name leaks when rio_add_device() fails
bf0c25cb3d lib/notifier-error-inject: fix error when writing -errno to debugfs file
111e540304 libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
690a864cf0 irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
ea77b4b761 PNP: fix name memory leak in pnp_alloc_dev()
c5b088a6bb MIPS: vpe-cmp: fix possible memory leak while module exiting
170e9913c2 MIPS: vpe-mt: fix possible memory leak while module exiting
0000281f01 ocfs2: fix memory leak in ocfs2_stack_glue_init()
b1c63d8af4 timerqueue: Use rb_entry_safe() in timerqueue_getnext()
d3715b025b perf: Fix possible memleak in pmu_dev_alloc()
f8c501139a fs: don't audit the capability check in simple_xattr_list()
a34346994f PM: hibernate: Fix mistake in kerneldoc comment
0e395fe385 alpha: fix syscall entry in !AUDUT_SYSCALL case
eea8631ca7 cpuidle: dt: Return the correct numbers of parsed idle states
1579bed161 pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
3fd56ad4dc ARM: mmp: fix timer_read delay
6b130bdbcc ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
0dcbcfd917 ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
24a645ab64 ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
97309af736 ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
f095946a94 ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
d90167d023 ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
23d41ad9e7 soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
0a0130024e arm: dts: spear600: Fix clcd interrupt
a1e186b798 drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
5fc7f7176a net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
49d5867819 Bluetooth: L2CAP: Fix u8 overflow
d4e43b24ce USB: serial: cp210x: add Kamstrup RF sniffer PIDs
4972e3528b usb: gadget: uvc: Prevent buffer overflow in setup handler
9391da5e02 udf: Fix extending file within last block
1f9eae3175 udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size
c8b6fa4511 udf: Fix preallocation discarding at indirect extent boundary
a58ae14b9a udf: Drop unused arguments of udf_delete_aext()
4a1c33851c udf: Discard preallocation before extending file with a hole
041030f25a ASoC: ops: Correct bounds check for second channel on SX controls
0d3ee591dc can: sja1000: fix size of OCR_MODE_MASK define
5628898784 ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
4726b66b88 block: unhash blkdev part inode when the part is deleted
275c626c13 mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
588be4a04b mm/khugepaged: fix GUP-fast interaction by sending IPI

-----

Change-Id: Ibc615b850bbc96ce90f434376a485506eaa3894c
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>

Alexander Martinz   commited 2023-01-19 15:42:12 +01:00
6fe87b7dca
This is the 4.9.337 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmO5Un4ACgkQONu9yGCS
 aT4tjQ/+OkrmqBUWwmj+AzH/qKqB6LGqHKmSXNMI1zVvHO9ZR366702YrDnjdfYY
 YtcI2AYuBHjpbSoXUBrSkGAeAE0upXtkk6qG0SaZb5kxihU2TRQ80i6P0WeB+2Ng
 RYzKib1W6TV7QptMqf7e+LYmMkmhBDXEITGM9RuWJ0ilb1O+4UnA1pt3JvRMMCCl
 8yAwon/S+zWFBYGVe8Pg8tf/ZxV7hvYMn+UToHU+E3ffd3JQUkJBW21l9UJRtoZl
 X9yjr4JFXNh3W/ph8PRnq3b1d9SPHB/gOGkegOFzEla0lgx0w8IbJN3eKvEb4R7S
 1TakEMAAn7MRpWtI5OlyhxismaorisrHd9+zKe21WTZYkOU2sljgkRRqq1fsGwD5
 XrqYShUX0N19M8W2X3yPod7XDPooF/r8RGESG/WRvgfjTyxSXnA5GRDT93eCXIsJ
 7wFOqSBZLUn6GJ0W5t4+lLZWSgoUXVbSVxGi3EdYn4lU2dxSWmo9rMX1j0C2y8IV
 SmbsyG1l4Um6dJKTK/XWuxR6EKOvKfk/K5WALKjE1xho25gFlHRnpvtcOQ6246cC
 PbC9ZjkrM8uojMElLTy3ZQwwVz01OPl6vKYPWFkdTy5IpwgnVbztdzwJ9uzz91oh
 75gKoI9tVArkQF54GDCC5AU2fnJOijleWq8iMcpXGBNSCIavan0=
 =+wRq
 -----END PGP SIGNATURE-----

Merge 4.9.337 into android-4.9-q

Changes in 4.9.337
	mm/khugepaged: fix GUP-fast interaction by sending IPI
	mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
	block: unhash blkdev part inode when the part is deleted
	ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
	can: sja1000: fix size of OCR_MODE_MASK define
	ASoC: ops: Correct bounds check for second channel on SX controls
	udf: Discard preallocation before extending file with a hole
	udf: Drop unused arguments of udf_delete_aext()
	udf: Fix preallocation discarding at indirect extent boundary
	udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size
	udf: Fix extending file within last block
	usb: gadget: uvc: Prevent buffer overflow in setup handler
	USB: serial: cp210x: add Kamstrup RF sniffer PIDs
	Bluetooth: L2CAP: Fix u8 overflow
	net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
	drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
	arm: dts: spear600: Fix clcd interrupt
	soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
	ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
	ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
	ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
	ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
	ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
	ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
	ARM: mmp: fix timer_read delay
	pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
	cpuidle: dt: Return the correct numbers of parsed idle states
	alpha: fix syscall entry in !AUDUT_SYSCALL case
	PM: hibernate: Fix mistake in kerneldoc comment
	fs: don't audit the capability check in simple_xattr_list()
	perf: Fix possible memleak in pmu_dev_alloc()
	timerqueue: Use rb_entry_safe() in timerqueue_getnext()
	ocfs2: fix memory leak in ocfs2_stack_glue_init()
	MIPS: vpe-mt: fix possible memory leak while module exiting
	MIPS: vpe-cmp: fix possible memory leak while module exiting
	PNP: fix name memory leak in pnp_alloc_dev()
	irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
	libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
	lib/notifier-error-inject: fix error when writing -errno to debugfs file
	rapidio: fix possible name leaks when rio_add_device() fails
	rapidio: rio: fix possible name leak in rio_register_mport()
	ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
	uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
	x86/xen: Fix memory leak in xen_init_lock_cpu()
	MIPS: BCM63xx: Add check for NULL for clk in clk_enable
	fs: sysv: Fix sysv_nblocks() returns wrong value
	rapidio: fix possible UAF when kfifo_alloc() fails
	eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
	hfs: Fix OOB Write in hfs_asc2mac
	rapidio: devices: fix missing put_device in mport_cdev_open
	wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs()
	wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
	media: i2c: ad5820: Fix error path
	media: vivid: fix compose size exceed boundary
	mtd: Fix device name leak when register device failed in add_mtd_device()
	ASoC: pxa: fix null-pointer dereference in filter()
	regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
	ima: Fix misuse of dereference of pointer in template_desc_init_fields()
	wifi: ath10k: Fix return value in ath10k_pci_init()
	mtd: lpddr2_nvm: Fix possible null-ptr-deref
	Input: elants_i2c - properly handle the reset GPIO when power is off
	media: solo6x10: fix possible memory leak in solo_sysfs_init()
	media: platform: exynos4-is: Fix error handling in fimc_md_init()
	HID: hid-sensor-custom: set fixed size for custom attributes
	ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT
	clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
	mtd: maps: pxa2xx-flash: fix memory leak in probe
	media: imon: fix a race condition in send_packet()
	pinctrl: pinconf-generic: add missing of_node_put()
	media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
	NFSv4.2: Fix a memory stomp in decode_attr_security_label
	NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
	ALSA: asihpi: fix missing pci_disable_device()
	drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
	drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
	ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
	bonding: uninitialized variable in bond_miimon_inspect()
	regulator: core: fix module refcount leak in set_supply()
	media: saa7164: fix missing pci_disable_device()
	ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
	SUNRPC: Fix missing release socket in rpc_sockname()
	mmc: moxart: fix return value check of mmc_add_host()
	mmc: mxcmmc: fix return value check of mmc_add_host()
	mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
	mmc: toshsd: fix return value check of mmc_add_host()
	mmc: vub300: fix return value check of mmc_add_host()
	mmc: via-sdmmc: fix return value check of mmc_add_host()
	mmc: wbsd: fix return value check of mmc_add_host()
	mmc: mmci: fix return value check of mmc_add_host()
	media: c8sectpfe: Add of_node_put() when breaking out of loop
	media: coda: Add check for dcoda_iram_alloc
	media: coda: Add check for kmalloc
	wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
	wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
	blktrace: Fix output non-blktrace event when blk_classic option enabled
	net: vmw_vsock: vmci: Check memcpy_from_msg()
	net: defxx: Fix missing err handling in dfx_init()
	drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
	ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
	net: farsync: Fix kmemleak when rmmods farsync
	net/tunnel: wait until all sk_user_data reader finish before releasing the sock
	net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
	net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
	net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
	net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
	hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
	net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
	ntb_netdev: Use dev_kfree_skb_any() in interrupt context
	Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
	Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
	Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
	Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
	Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
	stmmac: fix potential division by 0
	scsi: hpsa: Fix error handling in hpsa_add_sas_host()
	scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
	scsi: fcoe: Fix possible name leak when device_register() fails
	scsi: ipr: Fix WARNING in ipr_init()
	scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
	scsi: snic: Fix possible UAF in snic_tgt_create()
	orangefs: Fix sysfs not cleanup when dev init failed
	crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
	hwrng: amd - Fix PCI device refcount leak
	hwrng: geode - Fix PCI device refcount leak
	IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
	drivers: dio: fix possible memory leak in dio_init()
	vfio: platform: Do not pass return buffer to ACPI _RST method
	uio: uio_dmem_genirq: Fix missing unlock in irq configuration
	uio: uio_dmem_genirq: Fix deadlock between irq config and handling
	usb: fotg210-udc: Fix ages old endianness issues
	staging: vme_user: Fix possible UAF in tsi148_dma_list_add
	serial: amba-pl011: avoid SBSA UART accessing DMACR register
	serial: pch: Fix PCI device refcount leak in pch_request_dma()
	serial: sunsab: Fix error handling in sunsab_init()
	misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
	misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os
	cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
	cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
	drivers: mcb: fix resource leak in mcb_probe()
	mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
	chardev: fix error handling in cdev_device_add()
	i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
	staging: rtl8192u: Fix use after free in ieee80211_rx()
	staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
	vme: Fix error not catched in fake_init()
	i2c: ismt: Fix an out-of-bounds bug in ismt_access()
	usb: storage: Add check for kcalloc
	fbdev: ssd1307fb: Drop optional dependency
	fbdev: pm2fb: fix missing pci_disable_device()
	fbdev: via: Fix error in via_core_init()
	fbdev: vermilion: decrease reference count in error path
	fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
	HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
	HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
	power: supply: fix residue sysfs file in error handle route of __power_supply_register()
	HSI: omap_ssi_core: Fix error handling in ssi_init()
	include/uapi/linux/swab: Fix potentially missing __always_inline
	rtc: snvs: Allow a time difference on clock register read
	iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
	macintosh: fix possible memory leak in macio_add_one_device()
	macintosh/macio-adb: check the return value of ioremap()
	powerpc/52xx: Fix a resource leak in an error handling path
	powerpc/perf: callchain validate kernel stack pointer bounds
	powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe()
	powerpc/hv-gpci: Fix hv_gpci event list
	selftests/powerpc: Fix resource leaks
	rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
	nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
	mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
	mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
	mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
	nfc: pn533: Clear nfc_target before being used
	r6040: Fix kmemleak in probe and remove
	openvswitch: Fix flow lookup to use unmasked key
	skbuff: Account for tail adjustment during pull operations
	net_sched: reject TCF_EM_SIMPLE case for complex ematch module
	myri10ge: Fix an error handling path in myri10ge_probe()
	net: stream: purge sk_error_queue in sk_stream_kill_queues()
	binfmt_misc: fix shift-out-of-bounds in check_special_flags
	fs: jfs: fix shift-out-of-bounds in dbAllocAG
	udf: Avoid double brelse() in udf_rename()
	fs: jfs: fix shift-out-of-bounds in dbDiscardAG
	ACPICA: Fix error code path in acpi_ds_call_control_method()
	nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
	acct: fix potential integer overflow in encode_comp_t()
	hfs: fix OOB Read in __hfs_brec_find
	wifi: ath9k: verify the expected usb_endpoints are present
	wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
	ipmi: fix memleak when unload ipmi driver
	net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
	hamradio: baycom_epp: Fix return type of baycom_send_packet()
	wifi: brcmfmac: Fix potential shift-out-of-bounds in brcmf_fw_alloc_request()
	igb: Do not free q_vector unless new one was allocated
	s390/ctcm: Fix return type of ctc{mp,}m_tx()
	s390/netiucv: Fix return type of netiucv_tx()
	s390/lcs: Fix return type of lcs_start_xmit()
	drm/sti: Use drm_mode_copy()
	md/raid1: stop mdx_raid1 thread when raid1 array run failed
	mrp: introduce active flags to prevent UAF when applicant uninit
	ppp: associate skb with a device at tx
	media: dvb-frontends: fix leak of memory fw
	media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
	blk-mq: fix possible memleak when register 'hctx' failed
	mmc: f-sdh30: Add quirks for broken timeout clock capability
	media: si470x: Fix use-after-free in si470x_int_in_callback()
	clk: st: Fix memory leak in st_of_quadfs_setup()
	drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
	drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
	orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
	ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in mt8173_rt5650_rt5514_dev_probe()
	ASoC: wm8994: Fix potential deadlock
	ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume()
	ASoC: rt5670: Remove unbalanced pm_runtime_put()
	HID: wacom: Ensure bootloader PID is usable in hidraw mode
	reiserfs: Add missing calls to reiserfs_security_free()
	iio: adc: ad_sigma_delta: do not use internal iio_dev lock
	gcov: add support for checksum field
	powerpc/rtas: avoid scheduling in rtas_os_term()
	HID: plantronics: Additional PIDs for double volume key presses quirk
	hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount
	ALSA: line6: correct midi status byte when receiving data from podxt
	ALSA: line6: fix stack overflow in line6_midi_transmit
	pnode: terminate at peers of source
	md: fix a crash in mempool_free
	mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
	media: stv0288: use explicitly signed char
	ktest.pl minconfig: Unset configs instead of just removing them
	ARM: ux500: do not directly dereference __iomem
	dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
	dm thin: Use last transaction's pmd->root when commit failed
	dm thin: Fix UAF in run_timer_softirq()
	dm cache: Fix UAF in destroy()
	dm cache: set needs_check flag after aborting metadata
	tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line
	ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
	media: dvb-core: Fix double free in dvb_register_device()
	cifs: fix confusing debug message
	PCI/sysfs: Fix double free in error path
	crypto: n2 - add missing hash statesize
	iommu/amd: Fix ivrs_acpihid cmdline parsing code
	parisc: led: Fix potential null-ptr-deref in start_task()
	device_cgroup: Roll back to original exceptions after copy failure
	drm/connector: send hotplug uevent on connector cleanup
	drm/vmwgfx: Validate the box size for the snooped cursor
	ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
	ext4: fix undefined behavior in bit shift for ext4_check_flag_values
	ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
	ext4: init quota for 'old.inode' in 'ext4_rename'
	ext4: fix error code return to user-space in ext4_get_branch()
	ext4: avoid BUG_ON when creating xattrs
	ext4: initialize quota before expanding inode in setproject ioctl
	Linux 4.9.337

Change-Id: I923e3fef499ae1688b25c70a1a805b55a9f4f027
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>

Greg Kroah-Hartman   commited 2023-01-07 13:07:00 +01:00
7e6dfb2786
drm/vmwgfx: Validate the box size for the snooped cursor
commit 4cf949c7fafe21e085a4ee386bb2dade9067316e upstream.

Invalid userspace dma surface copies could potentially overflow
the memcpy from the surface to the snooped image leading to crashes.
To fix it the dimensions of the copybox have to be validated
against the expected size of the snooped cursor.

Signed-off-by: Zack Rusin <zackr@vmware.com>
Fixes: 2ac863719e ("vmwgfx: Snoop DMA transfers with non-covering sizes")
Cc: <stable@vger.kernel.org> # v3.2+
Reviewed-by: Michael Banack <banackm@vmware.com>
Reviewed-by: Martin Krastev <krastevm@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221026031936.1004280-1-zack@kde.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Zack Rusin   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:37 +01:00
ee8d31836c
drm/connector: send hotplug uevent on connector cleanup
commit 6fdc2d490ea1369d17afd7e6eb66fecc5b7209bc upstream.

A typical DP-MST unplug removes a KMS connector. However care must
be taken to properly synchronize with user-space. The expected
sequence of events is the following:

1. The kernel notices that the DP-MST port is gone.
2. The kernel marks the connector as disconnected, then sends a
   uevent to make user-space re-scan the connector list.
3. User-space notices the connector goes from connected to disconnected,
   disables it.
4. Kernel handles the IOCTL disabling the connector. On success,
   the very last reference to the struct drm_connector is dropped and
   drm_connector_cleanup() is called.
5. The connector is removed from the list, and a uevent is sent to tell
   user-space that the connector disappeared.

The very last step was missing. As a result, user-space thought the
connector still existed and could try to disable it again. Since the
kernel no longer knows about the connector, that would end up with
EINVAL and confused user-space.

Fix this by sending a hotplug uevent from drm_connector_cleanup().

Signed-off-by: Simon Ser <contact@emersion.fr>
Cc: stable@vger.kernel.org
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Jonas Ådahl <jadahl@redhat.com>
Tested-by: Jonas Ådahl <jadahl@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221017153150.60675-2-contact@emersion.fr
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Simon Ser   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:37 +01:00
080569aa3c
drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
[ Upstream commit 0ad811cc08a937d875cbad0149c1bab17f84ba05 ]

With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),
indirect call targets are validated against the expected function
pointer prototype to make sure the call target is valid to help mitigate
ROP attacks. If they are not identical, there is a failure at run time,
which manifests as either a kernel panic or thread getting killed. A
proposed warning in clang aims to catch these at compile time, which
reveals:

  drivers/gpu/drm/sti/sti_hda.c:637:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]
          .mode_valid = sti_hda_connector_mode_valid,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/sti/sti_dvo.c:376:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]
          .mode_valid = sti_dvo_connector_mode_valid,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  drivers/gpu/drm/sti/sti_hdmi.c:1035:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]
          .mode_valid = sti_hdmi_connector_mode_valid,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

->mode_valid() in 'struct drm_connector_helper_funcs' expects a return
type of 'enum drm_mode_status', not 'int'. Adjust the return type of
sti_{dvo,hda,hdmi}_connector_mode_valid() to match the prototype's to
resolve the warning and CFI failure.

Link: https://github.com/ClangBuiltLinux/linux/issues/1750
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20221102155623.3042869-1-nathan@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>

Nathan Chancellor   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:33 +01:00
b2c92b2a38
drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
[ Upstream commit 96d845a67b7e406cfed7880a724c8ca6121e022e ]

With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),
indirect call targets are validated against the expected function
pointer prototype to make sure the call target is valid to help mitigate
ROP attacks. If they are not identical, there is a failure at run time,
which manifests as either a kernel panic or thread getting killed. A
proposed warning in clang aims to catch these at compile time, which
reveals:

  drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c:74:16: error: incompatible function pointer types initializing 'enum drm_mode_status (*)(struct drm_connector *, struct drm_display_mode *)' with an expression of type 'int (struct drm_connector *, struct drm_display_mode *)' [-Werror,-Wincompatible-function-pointer-types-strict]
          .mode_valid = fsl_dcu_drm_connector_mode_valid,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1 error generated.

->mode_valid() in 'struct drm_connector_helper_funcs' expects a return
type of 'enum drm_mode_status', not 'int'. Adjust the return type of
fsl_dcu_drm_connector_mode_valid() to match the prototype's to resolve
the warning and CFI failure.

Link: https://github.com/ClangBuiltLinux/linux/issues/1750
Reported-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20221102154215.78059-1-nathan@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>

Nathan Chancellor   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:33 +01:00
1cca6ac0a7
drm/sti: Use drm_mode_copy()
[ Upstream commit 442cf8e22ba25a77cb9092d78733fdbac9844e50 ]

struct drm_display_mode embeds a list head, so overwriting
the full struct with another one will corrupt the list
(if the destination mode is on a list). Use drm_mode_copy()
instead which explicitly preserves the list head of
the destination mode.

Even if we know the destination mode is not on any list
using drm_mode_copy() seems decent as it sets a good
example. Bad examples of not using it might eventually
get copied into code where preserving the list head
actually matters.

Obviously one case not covered here is when the mode
itself is embedded in a larger structure and the whole
structure is copied. But if we are careful when copying
into modes embedded in structures I think we can be a
little more reassured that bogus list heads haven't been
propagated in.

@is_mode_copy@
@@
drm_mode_copy(...)
{
...
}

@depends on !is_mode_copy@
struct drm_display_mode *mode;
expression E, S;
@@
(
- *mode = E
+ drm_mode_copy(mode, &E)
|
- memcpy(mode, E, S)
+ drm_mode_copy(mode, E)
)

@depends on !is_mode_copy@
struct drm_display_mode mode;
expression E;
@@
(
- mode = E
+ drm_mode_copy(&mode, &E)
|
- memcpy(&mode, E, S)
+ drm_mode_copy(&mode, E)
)

@@
struct drm_display_mode *mode;
@@
- &*mode
+ mode

Cc: Alain Volmat <alain.volmat@foss.st.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221107192545.9896-8-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Sasha Levin <sashal@kernel.org>

Ville Syrjälä   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:32 +01:00
a7c2d8c067
drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
[ Upstream commit ca54639c7752edf1304d92ff4d0c049d4efc9ba0 ]

As comment of pci_get_class() says, it returns a pci_device with its
refcount increased and decreased the refcount for the input parameter
@from if it is not NULL.

If we break the loop in amdgpu_atrm_get_bios() with 'pdev' not NULL, we
need to call pci_dev_put() to decrease the refcount. Add the missing
pci_dev_put() to avoid refcount leak.

Fixes: d38ceaf99e ("drm/amdgpu: add core driver (v4)")
Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>

Xiongfeng Wang   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:18 +01:00
6611feef35
drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
[ Upstream commit 725a521a18734f65de05b8d353b5bd0d3ca4c37a ]

As comment of pci_get_class() says, it returns a pci_device with its
refcount increased and decreased the refcount for the input parameter
@from if it is not NULL.

If we break the loop in radeon_atrm_get_bios() with 'pdev' not NULL, we
need to call pci_dev_put() to decrease the refcount. Add the missing
pci_dev_put() to avoid refcount leak.

Fixes: d8ade3526b ("drm/radeon: handle non-VGA class pci devices with ATRM")
Fixes: c61e277587 ("drm/radeon: split ATRM support out from the ATPX handler (v3)")
Signed-off-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>

Xiongfeng Wang   authored and   Greg Kroah-Hartman   commited 2023-01-07 12:07:18 +01:00
6f28c7f67a
Merge remote-tracking branch 'common/android-4.9-q' into android13-4.9-sdm845
* common/android-4.9-q:
  Linux 4.9.335
  v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails
  proc: proc_skip_spaces() shouldn't think it is working on C strings
  proc: avoid integer type confusion in get_proc_long
  x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
  Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM
  x86/pm: Add enumeration check before spec MSRs save/restore setup
  x86/tsx: Add a feature bit for TSX control MSR support
  Revert "fbdev: fb_pm2fb: Avoid potential divide by zero error"
  tcp/udp: Fix memory leak in ipv6_renew_options().
  iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
  pinctrl: single: Fix potential division by zero
  ASoC: ops: Fix bounds check for _sx controls
  arm64: errata: Fix KVM Spectre-v2 mitigation selection for Cortex-A57/A72
  arm64: Fix panic() when Spectre-v2 causes Spectre-BHB to re-allocate KVM vectors
  nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
  tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
  btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
  hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
  hwmon: (coretemp) Check for null before removing sysfs attrs
  net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed
  packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE
  net: hsr: Fix potential use-after-free
  net/9p: Fix a potential socket leak in p9_socket_open
  net: net_netdev: Fix error handling in ntb_netdev_init_module()
  net: phy: fix null-ptr-deref while probe() failed
  qlcnic: fix sleep-in-atomic-context bugs caused by msleep
  can: cc770: cc770_isa_probe(): add missing free_cc770dev()
  can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev()
  net/mlx5: Fix uninitialized variable bug in outlen_write()
  hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
  hwmon: (i5500_temp) fix missing pci_disable_device()
  iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw
  iio: health: afe4403: Fix oob read in afe4403_read_raw
  drm/amdgpu: always register an MMU notifier for userptr
  net: usb: qmi_wwan: add Telit 0x103a composition
  tcp: configurable source port perturb table size
  platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()
  xen/platform-pci: add missing free_irq() in error path
  serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()
  nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty
  nios2: add FORCE for vmlinuz.gz
  kconfig: display recursive dependency resolution hint just once
  iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
  iio: light: apds9960: fix wrong register for gesture gain
  s390/crashdump: fix TOD programmable field size
  net: thunderx: Fix the ACPI memory leak
  nfc: st-nci: fix memory leaks in EVT_TRANSACTION
  nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
  NFC: nci: fix memory leak in nci_rx_data_packet()
  xfrm: Fix ignored return value in xfrm6_init()
  net/qla3xxx: fix potential memleak in ql3xxx_send()
  net/mlx4: Check retval of mlx4_bitmap_init
  ARM: mxs: fix memory leak in mxs_machine_init()
  9p/fd: fix issue of list_del corruption in p9_fd_cancel()
  net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
  nfc/nci: fix race with opening and closing
  ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
  bus: sunxi-rsb: Support atomic transfers
  af_key: Fix send_acquire race with pfkey_register
  MIPS: pic32: treat port as signed integer
  wifi: mac80211: Fix ack frame idr leak when mesh has no route
  audit: fix undefined behavior in bit shift for AUDIT_BIT
  wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support
  Linux 4.9.334
  ntfs: check overflow when iterating ATTR_RECORDs
  ntfs: fix out-of-bounds read in ntfs_attr_find()
  ntfs: fix use-after-free in ntfs_attr_find()
  mm: fs: initialize fsdata passed to write_begin/write_end interface
  9p/trans_fd: always use O_NONBLOCK read/write
  gfs2: Switch from strlcpy to strscpy
  gfs2: Check sb_bsize_shift after reading superblock
  9p: trans_fd/p9_conn_cancel: drop client lock earlier
  kcm: avoid potential race in kcm_tx_work
  tcp: cdg: allow tcp_cdg_release() to be called multiple times
  serial: 8250: Flush DMA Rx on RLSI
  nilfs2: fix use-after-free bug of ns_writer on remount
  misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram()
  mmc: core: properly select voltage range without power cycle
  serial: 8250_lpss: Configure DMA also w/o DMA filter
  serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs
  dm ioctl: fix misbehavior if list_versions races with module loading
  iio: pressure: ms5611: changed hardcoded SPI speed to value limited
  iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init()
  iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger()
  usb: chipidea: fix deadlock in ci_otg_del_timer
  usb: add NO_LPM quirk for Realforce 87U Keyboard
  USB: serial: option: add Fibocom FM160 0x0111 composition
  USB: serial: option: add u-blox LARA-L6 modem
  USB: serial: option: add u-blox LARA-R6 00B modem
  USB: serial: option: remove old LARA-R6 PID
  USB: serial: option: add Sierra Wireless EM9191
  ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open()
  ring_buffer: Do not deactivate non-existant pages
  ftrace: Optimize the allocation for mcount entries
  ftrace: Fix the possible incorrect kernel message
  cifs: Fix wrong return value checking when GETFLAGS
  net/x25: Fix skb leak in x25_lapb_receive_frame()
  xen/pcpu: fix possible memory leak in register_pcpu()
  net: caif: fix double disconnect client in chnl_net_open()
  mISDN: fix misuse of put_device() in mISDN_register_device()
  mISDN: fix possible memory leak in mISDN_dsp_element_register()
  pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map
  parport_pc: Avoid FIFO port location truncation
  ASoC: soc-utils: Remove __exit for snd_soc_util_exit()
  tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send
  serial: 8250: omap: Flush PM QOS work on remove
  serial: 8250_omap: remove wait loop from Errata i202 workaround
  ASoC: core: Fix use-after-free in snd_soc_exit()
  Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
  drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
  x86/cpu: Restore AMD's DE_CFG MSR after resume
  dmaengine: at_hdmac: Check return code of dma_async_device_register
  dmaengine: at_hdmac: Fix impossible condition
  dmaengine: at_hdmac: Don't allow CPU to reorder channel enable
  dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors
  dmaengine: at_hdmac: Don't start transactions at tx_submit level
  dmaengine: at_hdmac: Fix at_lli struct definition
  cert host tools: Stop complaining about deprecated OpenSSL functions
  udf: Fix a slab-out-of-bounds write bug in udf_find_entry()
  btrfs: selftests: fix wrong error check in btrfs_free_dummy_root()
  platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi
  nilfs2: fix deadlock in nilfs_count_free_blocks()
  ALSA: usb-audio: Add quirk entry for M-Audio Micro
  ALSA: hda: fix potential memleak in 'add_widget_node'
  net: macvlan: fix memory leaks of macvlan_common_newlink
  net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open()
  ethernet: s2io: disable napi when start nic failed in s2io_card_up()
  net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
  drivers: net: xgene: disable napi when register irq failed in xgene_enet_open()
  dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove()
  tipc: fix the msg->req tlv len check in tipc_nl_compat_name_table_dump_header
  ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network
  hamradio: fix issue of dev reference count leakage in bpq_device_event()
  net: lapbether: fix issue of dev reference count leakage in lapbeth_device_event()
  capabilities: fix undefined behavior in bit shift for CAP_TO_MASK
  net: fman: Unregister ethernet device on removal
  bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer
  net: gso: fix panic on frag_list with mixed head alloc types
  HID: hyperv: fix possible memory leak in mousevsc_probe()
  Linux 4.9.333
  wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker()
  KVM: x86: emulator: update the emulation mode after CR0 write
  KVM: x86: emulator: introduce emulator_recalc_and_set_mode
  KVM: x86: emulator: em_sysexit should update ctxt->mode
  KVM: x86: Mask off reserved bits in CPUID.80000008H
  ext4: fix warning in 'ext4_da_release_space'
  parisc: Export iosapic_serial_irq() symbol for serial port driver
  parisc: Make 8250_gsc driver dependend on CONFIG_PARISC
  ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices
  btrfs: fix type of parameter generation in btrfs_get_dentry
  Bluetooth: L2CAP: Fix attempting to access uninitialized memory
  i2c: xiic: Add platform module alias
  media: dvb-frontends/drxk: initialize err to 0
  media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE
  net: mdio: fix undefined behavior in bit shift for __mdiobus_register
  Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del()
  Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu
  btrfs: fix ulist leaks in error paths of qgroup self tests
  isdn: mISDN: netjet: fix wrong check of device registration
  mISDN: fix possible memory leak in mISDN_register_device()
  rose: Fix NULL pointer dereference in rose_send_frame()
  ipvs: use explicitly signed chars
  net: sched: Fix use after free in red_enqueue()
  ata: pata_legacy: fix pdc20230_set_piomode()
  net: fec: fix improper use of NETDEV_TX_BUSY
  nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send()
  nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send()
  nfs4: Fix kmemleak when allocate slot failed
  NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot
  NFSv4.1: Handle RECLAIM_COMPLETE trunking errors

Change-Id: Ie30850b718c1347e040c5ef46ee50f1b81fe4fc6

Michael Bestas   commited 2022-12-20 19:52:09 +02:00
4f33fe186c
This is the 4.9.335 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmORuVMACgkQONu9yGCS
 aT4lKhAArNoekBjMWJEGdc7l8kdDhTr2kd1KLRxU1B+TJgCiR/a42vug8Wmuj/ey
 y1fvr/bUfQGrKcbt0EoxorzItHHkZSV8ty6MdcqaHB2HbIpkMmoXnnQ/fYOg+xGv
 hH7AeW9YQeyQJ+ER9yondAwZIzSCqd1a10zuyJ4h8BWs09pWvBi3JjyHoRusaqlF
 noF5vsDYoQHErF3OJzifM3m/Q4bpLYt+T/rsti9ttctzDyTK3m2fzicqTBqpkPQc
 1WcZYfsmaeDHKj/9LFuknELY81tho6//A07DFxiv4b5MaJ3XCFWVbcx9BOo8IQt5
 O1XyE8f3g20bP77mTC/3ZNgVyAZqTs+MeEbZBEY/bbV8m4gUJol1p04aoibVKgpw
 SFDWOlF+W00zhMQMjB/g2W3h9BSWZVix9oVe41iuUq779Zpr24mdpHgF/CXkHI4w
 awzV4e5QWPt7QO+W//ieX7DKAlbRIVgCQQHsBBXuDe49b9iqfC6zed/7WgLg1/EQ
 p5sDRiYQxoMcHXGAeVhpnD4/4Bdx06zibysmFEMdlhWlYjW+YmTRYJF74DiVctQy
 /BD+QwDCrzpob5KIoiRWFjDKY0xsORaIEpSLQzr2KVZKUiIfNOAo0zx/dRLng+mH
 8/7LGZ/MLExAUKulowdMPAzWxEpx9Vxz1fHfcrBjm9Pob+JkI0M=
 =ox0x
 -----END PGP SIGNATURE-----

Merge 4.9.335 into android-4.9-q

Changes in 4.9.335
	wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support
	audit: fix undefined behavior in bit shift for AUDIT_BIT
	wifi: mac80211: Fix ack frame idr leak when mesh has no route
	MIPS: pic32: treat port as signed integer
	af_key: Fix send_acquire race with pfkey_register
	bus: sunxi-rsb: Support atomic transfers
	ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl
	nfc/nci: fix race with opening and closing
	net: pch_gbe: fix potential memleak in pch_gbe_tx_queue()
	9p/fd: fix issue of list_del corruption in p9_fd_cancel()
	ARM: mxs: fix memory leak in mxs_machine_init()
	net/mlx4: Check retval of mlx4_bitmap_init
	net/qla3xxx: fix potential memleak in ql3xxx_send()
	xfrm: Fix ignored return value in xfrm6_init()
	NFC: nci: fix memory leak in nci_rx_data_packet()
	nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION
	nfc: st-nci: fix memory leaks in EVT_TRANSACTION
	net: thunderx: Fix the ACPI memory leak
	s390/crashdump: fix TOD programmable field size
	iio: light: apds9960: fix wrong register for gesture gain
	iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails
	kconfig: display recursive dependency resolution hint just once
	nios2: add FORCE for vmlinuz.gz
	nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty
	serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios()
	xen/platform-pci: add missing free_irq() in error path
	platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr()
	tcp: configurable source port perturb table size
	net: usb: qmi_wwan: add Telit 0x103a composition
	drm/amdgpu: always register an MMU notifier for userptr
	iio: health: afe4403: Fix oob read in afe4403_read_raw
	iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw
	hwmon: (i5500_temp) fix missing pci_disable_device()
	hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails
	net/mlx5: Fix uninitialized variable bug in outlen_write()
	can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev()
	can: cc770: cc770_isa_probe(): add missing free_cc770dev()
	qlcnic: fix sleep-in-atomic-context bugs caused by msleep
	net: phy: fix null-ptr-deref while probe() failed
	net: net_netdev: Fix error handling in ntb_netdev_init_module()
	net/9p: Fix a potential socket leak in p9_socket_open
	net: hsr: Fix potential use-after-free
	packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE
	net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed
	hwmon: (coretemp) Check for null before removing sysfs attrs
	hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new()
	btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit()
	tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
	nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
	arm64: Fix panic() when Spectre-v2 causes Spectre-BHB to re-allocate KVM vectors
	arm64: errata: Fix KVM Spectre-v2 mitigation selection for Cortex-A57/A72
	ASoC: ops: Fix bounds check for _sx controls
	pinctrl: single: Fix potential division by zero
	iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init()
	tcp/udp: Fix memory leak in ipv6_renew_options().
	Revert "fbdev: fb_pm2fb: Avoid potential divide by zero error"
	x86/tsx: Add a feature bit for TSX control MSR support
	x86/pm: Add enumeration check before spec MSRs save/restore setup
	Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM
	x86/ioremap: Fix page aligned size calculation in __ioremap_caller()
	proc: avoid integer type confusion in get_proc_long
	proc: proc_skip_spaces() shouldn't think it is working on C strings
	v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails
	Linux 4.9.335

Change-Id: I5a99e366191f445d4de1039f5e82812b37787842
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>

Greg Kroah-Hartman   commited 2022-12-08 10:48:04 +00:00
3193623ef6
drm/amdgpu: always register an MMU notifier for userptr
commit b39df63b16b64a3af42695acb9bc567aad144776 upstream.

Since switching to HMM we always need that because we no longer grab
references to the pages.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
CC: stable@vger.kernel.org
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Christian König   authored and   Greg Kroah-Hartman   commited 2022-12-08 11:15:40 +01:00
6f2c804647
drm/msm: add idle state sysfs node
Add a sysfs mechanism to track the idle state of display subsystem.
This allows user space to poll on the idle state node to detect when
display goes idle for longer than the time set.

Bug: 69915886
Change-Id: I21e3c7b0830a9695db9f65526c111ce5153d1764
Signed-off-by: Adrian Salido <salidoa@google.com>
Signed-off-by: Robb Glasser <rglasser@google.com>

Adrian Salido   authored and   Michael Bestas   commited 2022-11-30 02:30:07 +02:00
b99b7ea34a