v3d: fix indirect BO allocation for uniforms
We were always ensuring a minimum size of 4 bytes for uniforms for the case where we don't have any, to account for hardware pre-fetching of the uniform stream, however, pre-fetching could also lead to to out of bounds reads when have read the last uniform in the stream, so we probably want to have the extra 4 bytes to prevent the kernel from observing invalid memory accesses when the uniform stream sits right at the end of a page.
This seems to fix MMU exceptions reported with a Linux 5.4 kernel.
Credit goes to Phil Elwell for identifying the problem and narrowing it down to memory accesses in the uniform stream.
Reported-by: Phil Elwell phil@raspberrypi.org Tested-by: Phil Elwell phil@raspberrypi.org