[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