[PATCH v3 1/3] drm/i915/gvt: Utility for valid command length check

Zhenyu Wang zhenyuw at linux.intel.com
Mon Jul 29 05:10:22 UTC 2019


On 2019.07.18 09:39:01 +0800, fred gao wrote:
> From: "Gao, Fred" <fred.gao at intel.com>
> 
> Add utility for valid command length check.
> 
> v2: Add F_VAL_CONST flag to identify the value is const
>     although LEN maybe variable. (Zhenyu)
> v3: unused code removal, flag rename/conflict. (Zhenyu)
> v4: redefine F_IP_ADVANCE_CUSTOM and move the check function to
>     next patch. (Zhenyu)
> 
> Signed-off-by: Gao, Fred <fred.gao at intel.com>

Double checked this w/o regression so far. Thanks.

Reviewed-by: Zhenyu Wang <zhenyuw at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/gvt/cmd_parser.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> index b09dc315e2da..42a10b200744 100644
> --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
> +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> @@ -378,17 +378,17 @@ struct cmd_info {
>  	const char *name;
>  	u32 opcode;
>  
> -#define F_LEN_MASK	(1U<<0)
> +#define F_LEN_MASK	3U
>  #define F_LEN_CONST  1U
>  #define F_LEN_VAR    0U
> +/* value is const although LEN maybe variable */
> +#define F_LEN_VAR_FIXED    (1<<1)
>  
>  /*
>   * command has its own ip advance logic
>   * e.g. MI_BATCH_START, MI_BATCH_END
>   */
> -#define F_IP_ADVANCE_CUSTOM (1<<1)
> -
> -#define F_POST_HANDLE	(1<<2)
> +#define F_IP_ADVANCE_CUSTOM (1<<2)
>  	u32 flag;
>  
>  #define R_RCS	BIT(RCS0)
> @@ -418,9 +418,12 @@ struct cmd_info {
>  	 * flag == F_LEN_VAR : length bias bits
>  	 * Note: length is in DWord
>  	 */
> -	u8 len;
> +	u32 len;
>  
>  	parser_cmd_handler handler;
> +
> +	/* valid length in DWord */
> +	u32 valid_len;
>  };
>  
>  struct cmd_entry {
> @@ -1912,7 +1915,7 @@ static const struct cmd_info cmd_info[] = {
>  	{"MI_RS_CONTEXT", OP_MI_RS_CONTEXT, F_LEN_CONST, R_RCS, D_ALL, 0, 1,
>  		NULL},
>  
> -	{"MI_DISPLAY_FLIP", OP_MI_DISPLAY_FLIP, F_LEN_VAR | F_POST_HANDLE,
> +	{"MI_DISPLAY_FLIP", OP_MI_DISPLAY_FLIP, F_LEN_VAR,
>  		R_RCS | R_BCS, D_ALL, 0, 8, cmd_handler_mi_display_flip},
>  
>  	{"MI_SEMAPHORE_MBOX", OP_MI_SEMAPHORE_MBOX, F_LEN_VAR, R_ALL, D_ALL,
> -- 
> 2.17.1
> 
> _______________________________________________
> intel-gvt-dev mailing list
> intel-gvt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gvt-dev/attachments/20190729/e844af10/attachment-0001.sig>


More information about the intel-gvt-dev mailing list