[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