diff options
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bo.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 4e7ee5f4155c..af20fba3a1a4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c | |||
| @@ -198,7 +198,12 @@ nouveau_bo_new(struct drm_device *dev, int size, int align, | |||
| 198 | size_t acc_size; | 198 | size_t acc_size; |
| 199 | int ret; | 199 | int ret; |
| 200 | int type = ttm_bo_type_device; | 200 | int type = ttm_bo_type_device; |
| 201 | int max_size = INT_MAX & ~((1 << drm->client.base.vm->vmm->lpg_shift) - 1); | 201 | int lpg_shift = 12; |
| 202 | int max_size; | ||
| 203 | |||
| 204 | if (drm->client.base.vm) | ||
| 205 | lpg_shift = drm->client.base.vm->vmm->lpg_shift; | ||
| 206 | max_size = INT_MAX & ~((1 << lpg_shift) - 1); | ||
| 202 | 207 | ||
| 203 | if (size <= 0 || size > max_size) { | 208 | if (size <= 0 || size > max_size) { |
| 204 | nv_warn(drm, "skipped size %x\n", (u32)size); | 209 | nv_warn(drm, "skipped size %x\n", (u32)size); |
