[PATCH v2 1/8] drm/amdkfd: Correct SMI event read size

Felix Kuehling felix.kuehling at amd.com
Tue Jan 25 16:24:06 UTC 2022


Am 2022-01-20 um 18:13 schrieb Philip Yang:
> sizeof(buf) is 8 bytes because it is defined as unsigned char *buf,
> each SMI event read only copy max 8 bytes to user buffer. Correct this
> by using the buf allocate size.
>
> Signed-off-by: Philip Yang <Philip.Yang at amd.com>

Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>


> ---
>   drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> index 329a4c89f1e6..18ed1b72f0f7 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
> @@ -81,7 +81,8 @@ static ssize_t kfd_smi_ev_read(struct file *filep, char __user *user,
>   	struct kfd_smi_client *client = filep->private_data;
>   	unsigned char *buf;
>   
> -	buf = kmalloc_array(MAX_KFIFO_SIZE, sizeof(*buf), GFP_KERNEL);
> +	size = min_t(size_t, size, MAX_KFIFO_SIZE);
> +	buf = kmalloc(size, GFP_KERNEL);
>   	if (!buf)
>   		return -ENOMEM;
>   
> @@ -95,7 +96,7 @@ static ssize_t kfd_smi_ev_read(struct file *filep, char __user *user,
>   		ret = -EAGAIN;
>   		goto ret_err;
>   	}
> -	to_copy = min3(size, sizeof(buf), to_copy);
> +	to_copy = min(size, to_copy);
>   	ret = kfifo_out(&client->fifo, buf, to_copy);
>   	spin_unlock(&client->lock);
>   	if (ret <= 0) {


More information about the amd-gfx mailing list