Skip to content

Commit ed14d22

Browse files
Dawei Lizackr
authored andcommitted
drm/vmwgfx: Fix race issue calling pin_user_pages
pin_user_pages() is unsafe without protection of mmap_lock, fix it by calling pin_user_pages_fast(). Fixes: 7a7a933 ("drm/vmwgfx: Introduce VMware mks-guest-stats") Signed-off-by: Dawei Li <[email protected]> Reviewed-by: Martin Krastev <[email protected]> Signed-off-by: Zack Rusin <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/TYWP286MB23193621CB443E1E1959A00BCA3E9@TYWP286MB2319.JPNP286.PROD.OUTLOOK.COM
1 parent a6a00d7 commit ed14d22

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/gpu/drm/vmwgfx/vmwgfx_msg.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,21 +1085,21 @@ int vmw_mksstat_add_ioctl(struct drm_device *dev, void *data,
10851085
reset_ppn_array(pdesc->strsPPNs, ARRAY_SIZE(pdesc->strsPPNs));
10861086

10871087
/* Pin mksGuestStat user pages and store those in the instance descriptor */
1088-
nr_pinned_stat = pin_user_pages(arg->stat, num_pages_stat, FOLL_LONGTERM, pages_stat, NULL);
1088+
nr_pinned_stat = pin_user_pages_fast(arg->stat, num_pages_stat, FOLL_LONGTERM, pages_stat);
10891089
if (num_pages_stat != nr_pinned_stat)
10901090
goto err_pin_stat;
10911091

10921092
for (i = 0; i < num_pages_stat; ++i)
10931093
pdesc->statPPNs[i] = page_to_pfn(pages_stat[i]);
10941094

1095-
nr_pinned_info = pin_user_pages(arg->info, num_pages_info, FOLL_LONGTERM, pages_info, NULL);
1095+
nr_pinned_info = pin_user_pages_fast(arg->info, num_pages_info, FOLL_LONGTERM, pages_info);
10961096
if (num_pages_info != nr_pinned_info)
10971097
goto err_pin_info;
10981098

10991099
for (i = 0; i < num_pages_info; ++i)
11001100
pdesc->infoPPNs[i] = page_to_pfn(pages_info[i]);
11011101

1102-
nr_pinned_strs = pin_user_pages(arg->strs, num_pages_strs, FOLL_LONGTERM, pages_strs, NULL);
1102+
nr_pinned_strs = pin_user_pages_fast(arg->strs, num_pages_strs, FOLL_LONGTERM, pages_strs);
11031103
if (num_pages_strs != nr_pinned_strs)
11041104
goto err_pin_strs;
11051105

0 commit comments

Comments
 (0)