[lvc-project] [PATCH 4/4] gntdev: Unchecked finction result
Fedor Pchelkin
pchelkin at ispras.ru
Fri Mar 15 16:22:34 MSK 2024
On Thu, 29. Feb 16:31, Andrey Shumilin wrote:
> The dma_coerce_mask_and_coherent function may refuse
> to apply a mask due to incorrectly passed parameters.
> But since this function returns the error -EIO, this
> is an abnormal situation and the error must be written to the log.
>
> Signed-off-by: Andrey Shumilin <shum.sdl at nppct.ru>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
Здесь также следует подправить название патча. Весь процесс подробно описан
в документации [1], [2]. Если есть непонятные места, пожалуйста
спрашивайте.
Строчку с `Found by` следует ставить над своей подписью Signed-off-by, при
этом отделив еще одной пустой строкой. Для примеров смотрите
`git log --grep="Found by Linux Verification Center"`.
Если патч исправляет ошибку в ядре, то обычно его снабжают тегом
`Fixes: <pretty-commit-hash>`, где указывают виновный коммит. Также в
документации всё описано.
> ---
> drivers/xen/gntdev.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
> index 61faea1f0663..8a448dbbca86 100644
> --- a/drivers/xen/gntdev.c
> +++ b/drivers/xen/gntdev.c
> @@ -597,7 +597,8 @@ static int gntdev_open(struct inode *inode, struct file *flip)
> flip->private_data = priv;
> #ifdef CONFIG_XEN_GRANT_DMA_ALLOC
> priv->dma_dev = gntdev_miscdev.this_device;
> - dma_coerce_mask_and_coherent(priv->dma_dev, DMA_BIT_MASK(64));
> + if (dma_coerce_mask_and_coherent(priv->dma_dev, DMA_BIT_MASK(64)) == -EIO)
> + printk(KERN_INFO "The mask was applied unsuccessfully");
Использование printk() напрямую не рекомендуется в новом коде ядра. В этом
файле для вывода отладочной информации везде используется pr_debug().
Поэтому сообщение об ошибке можно вывести, например, с помощью pr_err().
Также остается открытым вопрос, стоит ли при ошибке наложения DMA-маски
возвращаться из gntdev_open() с ошибкой, или достаточно только печати в
лог.
> #endif
> pr_debug("priv %p\n", priv);
>
> --
> 2.30.2
>
[1]: https://docs.kernel.org/process/submitting-patches.html#describe-your-changes
[2]: https://docs.kernel.org/process/submitting-patches.html#the-canonical-patch-format
More information about the lvc-project
mailing list