[PATCH] drm/imagination: Ensure PVR_MIPS_PT_PAGE_COUNT is never zero
Frank Binns
Frank.Binns at imgtec.com
Wed Apr 24 10:51:00 UTC 2024
On Tue, 2024-04-23 at 16:09 +0000, Matt Coster wrote:
> When the host page size was more than 4 times larger than the FW page
> size, this macro evaluated to zero resulting in zero-sized arrays.
>
> Use DIV_ROUND_UP() to ensure the correct behavior.
>
> Reported-by: 20240228012313.5934-1-yaolu at kylinos.cn
> Closes: https://lore.kernel.org/dri-devel/20240228012313.5934-1-yaolu@kylinos.cn
> Fixes: 927f3e0253c1 ("drm/imagination: Implement MIPS firmware processor and MMU support")
> Signed-off-by: Matt Coster <matt.coster at imgtec.com>
Reviewed-by: Frank Binns <frank.binns at imgtec.com>
> ---
> drivers/gpu/drm/imagination/pvr_fw_mips.h | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/imagination/pvr_fw_mips.h b/drivers/gpu/drm/imagination/pvr_fw_mips.h
> index 408dbe63a90c..a0c5c41c8aa2 100644
> --- a/drivers/gpu/drm/imagination/pvr_fw_mips.h
> +++ b/drivers/gpu/drm/imagination/pvr_fw_mips.h
> @@ -7,13 +7,14 @@
> #include "pvr_rogue_mips.h"
>
> #include <asm/page.h>
> +#include <linux/math.h>
> #include <linux/types.h>
>
> /* Forward declaration from pvr_gem.h. */
> struct pvr_gem_object;
>
> -#define PVR_MIPS_PT_PAGE_COUNT ((ROGUE_MIPSFW_MAX_NUM_PAGETABLE_PAGES * ROGUE_MIPSFW_PAGE_SIZE_4K) \
> - >> PAGE_SHIFT)
> +#define PVR_MIPS_PT_PAGE_COUNT DIV_ROUND_UP(ROGUE_MIPSFW_MAX_NUM_PAGETABLE_PAGES * ROGUE_MIPSFW_PAGE_SIZE_4K, PAGE_SIZE)
> +
> /**
> * struct pvr_fw_mips_data - MIPS-specific data
> */
>
> base-commit: e95752752eaf06c860811ac5ddf9badf6c1b43ca
More information about the dri-devel
mailing list