Skip to content
/ linux Public

Commit bbfaa57

Browse files
kanxiaoSasha Levin
authored andcommitted
drm: Account property blob allocations to memcg
[ Upstream commit 26b4309 ] DRM_IOCTL_MODE_CREATEPROPBLOB allows userspace to allocate arbitrary-sized property blobs backed by kernel memory. Currently, the blob data allocation is not accounted to the allocating process's memory cgroup, allowing unprivileged users to trigger unbounded kernel memory consumption and potentially cause system-wide OOM. Mark the property blob data allocation with GFP_KERNEL_ACCOUNT so that the memory is properly charged to the caller's memcg. This ensures existing cgroup memory limits apply and prevents uncontrolled kernel memory growth without introducing additional policy or per-file limits. Signed-off-by: Xiao Kan <814091656@qq.com> Signed-off-by: Xiao Kan <xiao.kan@samsung.com> Link: https://patch.msgid.link/tencent_D12AA2DEDE6F359E1AF59405242FB7A5FD05@qq.com Signed-off-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent e97de3e commit bbfaa57

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/gpu/drm/drm_property.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ drm_property_create_blob(struct drm_device *dev, size_t length,
561561
if (!length || length > INT_MAX - sizeof(struct drm_property_blob))
562562
return ERR_PTR(-EINVAL);
563563

564-
blob = kvzalloc(sizeof(struct drm_property_blob)+length, GFP_KERNEL);
564+
blob = kvzalloc(sizeof(struct drm_property_blob) + length, GFP_KERNEL_ACCOUNT);
565565
if (!blob)
566566
return ERR_PTR(-ENOMEM);
567567

0 commit comments

Comments
 (0)