.. | .. |
---|
2229 | 2229 | uint64_t eaddr; |
---|
2230 | 2230 | |
---|
2231 | 2231 | /* validate the parameters */ |
---|
2232 | | - if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || |
---|
2233 | | - size == 0 || size & ~PAGE_MASK) |
---|
| 2232 | + if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || size & ~PAGE_MASK) |
---|
| 2233 | + return -EINVAL; |
---|
| 2234 | + if (saddr + size <= saddr || offset + size <= offset) |
---|
2234 | 2235 | return -EINVAL; |
---|
2235 | 2236 | |
---|
2236 | 2237 | /* make sure object fit at this offset */ |
---|
2237 | 2238 | eaddr = saddr + size - 1; |
---|
2238 | | - if (saddr >= eaddr || |
---|
2239 | | - (bo && offset + size > amdgpu_bo_size(bo)) || |
---|
| 2239 | + if ((bo && offset + size > amdgpu_bo_size(bo)) || |
---|
2240 | 2240 | (eaddr >= adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT)) |
---|
2241 | 2241 | return -EINVAL; |
---|
2242 | 2242 | |
---|
.. | .. |
---|
2295 | 2295 | int r; |
---|
2296 | 2296 | |
---|
2297 | 2297 | /* validate the parameters */ |
---|
2298 | | - if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || |
---|
2299 | | - size == 0 || size & ~PAGE_MASK) |
---|
| 2298 | + if (saddr & ~PAGE_MASK || offset & ~PAGE_MASK || size & ~PAGE_MASK) |
---|
| 2299 | + return -EINVAL; |
---|
| 2300 | + if (saddr + size <= saddr || offset + size <= offset) |
---|
2300 | 2301 | return -EINVAL; |
---|
2301 | 2302 | |
---|
2302 | 2303 | /* make sure object fit at this offset */ |
---|
2303 | 2304 | eaddr = saddr + size - 1; |
---|
2304 | | - if (saddr >= eaddr || |
---|
2305 | | - (bo && offset + size > amdgpu_bo_size(bo)) || |
---|
| 2305 | + if ((bo && offset + size > amdgpu_bo_size(bo)) || |
---|
2306 | 2306 | (eaddr >= adev->vm_manager.max_pfn << AMDGPU_GPU_PAGE_SHIFT)) |
---|
2307 | 2307 | return -EINVAL; |
---|
2308 | 2308 | |
---|
.. | .. |
---|
3252 | 3252 | long timeout = msecs_to_jiffies(2000); |
---|
3253 | 3253 | int r; |
---|
3254 | 3254 | |
---|
| 3255 | + /* No valid flags defined yet */ |
---|
| 3256 | + if (args->in.flags) |
---|
| 3257 | + return -EINVAL; |
---|
| 3258 | + |
---|
3255 | 3259 | switch (args->in.op) { |
---|
3256 | 3260 | case AMDGPU_VM_OP_RESERVE_VMID: |
---|
3257 | 3261 | /* We only have requirement to reserve vmid from gfxhub */ |
---|