From: Weili Qian <qianweili@huawei.com> To avoid overflow after multiplying the data, the variable type is cast to int. Upstream: Yes AR: AR20230722287656 DTS: DTS2025112149705 Feature or Bugfix: Bugfix Signed-off-by: Weili Qian <qianweili@huawei.com> --- drv/hisi_qm_udrv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drv/hisi_qm_udrv.c b/drv/hisi_qm_udrv.c index d4feea5..a47c596 100644 --- a/drv/hisi_qm_udrv.c +++ b/drv/hisi_qm_udrv.c @@ -164,8 +164,9 @@ int hisi_qm_get_usage(handle_t h_qp, __u8 type) { struct hisi_qp *qp = (struct hisi_qp *)h_qp; struct hisi_qm_queue_info *q_info; - __u16 count, usage; + __u16 count; __u32 val; + int usage; if (!qp) return -WD_EINVAL; @@ -187,7 +188,7 @@ int hisi_qm_get_usage(handle_t h_qp, __u8 type) if (count <= (__u16)val) return QM_MAX_DEV_USAGE; - usage = (__u16)val * QM_DEV_USAGE_RATE / count; + usage = (int)((__u16)val) * QM_DEV_USAGE_RATE / count; return usage; } -- 2.33.0