Re: [PATCH] drm/etnaviv: correct ETNA_MAX_PIPE define

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fr, 2019-11-01 at 11:10 +0100, Christian Gmeiner wrote:
> etnaviv supports the following pipe types:
> 
> ETNA_PIPE_3D      0x00
> ETNA_PIPE_2D      0x01
> ETNA_PIPE_VG      0x02
> 
> The current used value of 4 for ETNA_MAX_PIPES is wrong and
> caueses some troubles in the combination with perf counters.
> 
> Lets have a look at the function etnaviv_pm_query_dom(..):
> If domain->pipe is 3 then we are one element beyond the end
> of the array.
> 
> The easiest way to fix this issue is to provide a correct value
> for ETNA_MAX_PIPES.

No, this is not a correct fix. The ETNA_MAX_PIPES define does not
correspond to the pipe types, it's the number of maximum possible GPU
cores. Any code in the driver needs to deal with less GPU cores being
available than this maximum number. If it doesn't, please fix the code
instead of messing with this define.

Regards,
Lucas

> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Fixes: a8c21a5451d8 ("drm/etnaviv: add initial etnaviv DRM driver")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Christian Gmeiner <christian.gmeiner@xxxxxxxxx>
> ---
>  include/uapi/drm/etnaviv_drm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/uapi/drm/etnaviv_drm.h
> b/include/uapi/drm/etnaviv_drm.h
> index 09d0df8b71c5..5a62228298d1 100644
> --- a/include/uapi/drm/etnaviv_drm.h
> +++ b/include/uapi/drm/etnaviv_drm.h
> @@ -75,7 +75,7 @@ struct drm_etnaviv_timespec {
>  #define ETNAVIV_PARAM_GPU_NUM_VARYINGS              0x1a
>  #define ETNAVIV_PARAM_SOFTPIN_START_ADDR            0x1b
>  
> -#define ETNA_MAX_PIPES 4
> +#define ETNA_MAX_PIPES 3
>  
>  struct drm_etnaviv_param {
>  	__u32 pipe;           /* in */




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux