Skip to content

Commit bd5f8b9

Browse files
committed
staging: vc04_services: vc-sm-cma: Take spinlock for idr lookup
Whilst the particular buffer object won't get destroyed whilst being looked up, the idr structure itself could be modified by another thread. Take the spinlock for the lookup. Signed-off-by: Dave Stevenson <[email protected]>
1 parent 973fe60 commit bd5f8b9

File tree

1 file changed

+7
-1
lines changed
  • drivers/staging/vc04_services/vc-sm-cma

1 file changed

+7
-1
lines changed

drivers/staging/vc04_services/vc-sm-cma/vc_sm.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,13 @@ static int get_kernel_id(struct vc_sm_buffer *buffer)
138138

139139
static struct vc_sm_buffer *lookup_kernel_id(int handle)
140140
{
141-
return idr_find(&sm_state->kernelid_map, handle);
141+
struct vc_sm_buffer *buffer;
142+
143+
spin_lock(&sm_state->kernelid_map_lock);
144+
buffer = idr_find(&sm_state->kernelid_map, handle);
145+
spin_unlock(&sm_state->kernelid_map_lock);
146+
147+
return buffer;
142148
}
143149

144150
static void free_kernel_id(int handle)

0 commit comments

Comments
 (0)