winsys/svga: Limit the maximum DMA hardware buffer size
authorThomas Hellstrom <thellstrom@vmware.com>
Thu, 3 Oct 2019 10:44:42 +0000 (12:44 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Thu, 24 Oct 2019 13:08:43 +0000 (15:08 +0200)
commit91146c07967b1d531a38f724ad91e7a0fc0769ef
tree387eeaa4bcdf580dba0540700c1eb1e12832b6b6
parent00db976905b7fcd615ccee0c13dcbf9dfe29f5ec
winsys/svga: Limit the maximum DMA hardware buffer size

The kernel total GMR/DMA size is limited, but it's definitely possible for the
kernel to allow a larger buffer allocation to succeed, but command
submission using that buffer as a GMR would fail typically causing an
application crash.

So have the winsys limit the size of GMR/DMA buffers. The pipe driver will
then resort to allocating smaller buffers and perform the DMA transfer in
multiple bands, also allowing for the pre-flush mechanism to kick in.

This avoids the related application crashes.

Fixes: e7843273fae ("winsys/svga: Update to vmwgfx kernel module 2.1")
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/winsys/svga/drm/vmw_screen_svga.c