Re: [PATCH] drm/imagination: Ensure PVR_MIPS_PT_PAGE_COUNT is never zero

2024-04-24 Thread Frank Binns
On Tue, 2024-04-23 at 16:09 +, 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-ya...@kylinos.cn
> Closes: 
> https://lore.kernel.org/dri-devel/20240228012313.5934-1-ya...@kylinos.cn
> Fixes: 927f3e0253c1 ("drm/imagination: Implement MIPS firmware processor and 
> MMU support")
> Signed-off-by: Matt Coster 

Reviewed-by: Frank Binns 

> ---
>  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 
> +#include 
>  #include 
>  
>  /* 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


[PATCH] drm/imagination: Ensure PVR_MIPS_PT_PAGE_COUNT is never zero

2024-04-23 Thread Matt Coster
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-ya...@kylinos.cn
Closes: https://lore.kernel.org/dri-devel/20240228012313.5934-1-ya...@kylinos.cn
Fixes: 927f3e0253c1 ("drm/imagination: Implement MIPS firmware processor and 
MMU support")
Signed-off-by: Matt Coster 
---
 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 
+#include 
 #include 
 
 /* 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
-- 
2.44.0



OpenPGP_signature.asc
Description: OpenPGP digital signature