2023-07-11 09:40:45

by Su Hui

[permalink] [raw]
Subject: [PATCH] drm/virtio: remove some redundant code

virtio_gpu_get_vbuf always be successful,
so remove the error judgment.

Signed-off-by: Su Hui <[email protected]>
---
drivers/gpu/drm/virtio/virtgpu_vq.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index b1a00c0c25a7..7a2680b3f1a7 100644
--- a/drivers/gpu/drm/virtio/virtgpu_vq.c
+++ b/drivers/gpu/drm/virtio/virtgpu_vq.c
@@ -129,10 +129,6 @@ virtio_gpu_alloc_cursor(struct virtio_gpu_device *vgdev,
vbuf = virtio_gpu_get_vbuf
(vgdev, sizeof(struct virtio_gpu_update_cursor),
0, NULL, NULL);
- if (IS_ERR(vbuf)) {
- *vbuffer_p = NULL;
- return ERR_CAST(vbuf);
- }
*vbuffer_p = vbuf;
return (struct virtio_gpu_update_cursor *)vbuf->buf;
}
--
2.30.2



2023-07-11 11:28:27

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: remove some redundant code

On Tue, Jul 11, 2023 at 05:00:31PM +0800, Su Hui wrote:
> virtio_gpu_get_vbuf always be successful,
> so remove the error judgment.
>

No, just ignore the static checker false positive in this case. The
intent of the code is clear that if it did have an error it should
return an error pointer.

regards,
dan carpenter


2023-07-12 01:44:37

by Su Hui

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: remove some redundant code

On 2023/7/11 19:13, Dan Carpenter wrote:
> On Tue, Jul 11, 2023 at 05:00:31PM +0800, Su Hui wrote:
>> virtio_gpu_get_vbuf always be successful,
>> so remove the error judgment.
>>
> No, just ignore the static checker false positive in this case. The
> intent of the code is clear that if it did have an error it should
> return an error pointer.

Hi, Dan,

Function "virtio_gpu_get_vbuf" call "kmem_cache_zalloc (vgdev->vbufs,
GFP_KERNEL | __GFP_NOFAIL)" to
allocate memory. Adding the " __GFP_NOFAIL”flag make sure it won't fail.
And "virtio_gpu_get_vbuf" never
return an error code, so I think this is not a false positive.

Su Hui

>
> regards,
> dan carpenter
>

2023-07-12 01:55:01

by Su Hui

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: remove some redundant code


On 2023/7/11 17:33, Markus Elfring wrote:
>> virtio_gpu_get_vbuf always be successful,
>> so remove the error judgment.
> How do you think about to improve this change description any more?

Hi,

virtio_gpu_get_vbuf use "__GFP_NOFAIL" flag to allocate memory, this
make sure
it won't fail, and virtio_gpu_get_vbuf never return error code, so
remove the error judgment.

How about this one? Thanks for your advice.

Su Hui

> Regards,
> Markus

2023-07-12 09:21:06

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: remove some redundant code

On Wed, Jul 12, 2023 at 09:18:42AM +0800, Su Hui wrote:
> On 2023/7/11 19:13, Dan Carpenter wrote:
> > On Tue, Jul 11, 2023 at 05:00:31PM +0800, Su Hui wrote:
> > > virtio_gpu_get_vbuf always be successful,
> > > so remove the error judgment.
> > >
> > No, just ignore the static checker false positive in this case. The
> > intent of the code is clear that if it did have an error it should
> > return an error pointer.
>
> Hi, Dan,
>
> Function "virtio_gpu_get_vbuf" call "kmem_cache_zalloc (vgdev->vbufs,
> GFP_KERNEL | __GFP_NOFAIL)" to
> allocate memory. Adding the " __GFP_NOFAIL”flag make sure it won't fail. And
> "virtio_gpu_get_vbuf" never
> return an error code, so I think this is not a false positive.

We all see this and agree.

However the check for if (IS_ERR()) is written deliberately because we
might change the code to return error pointers in the future. Static
checkers are looking for code that does something unintentional but in
this case the code was written that way deliberately.

regards,
dan carpenter


2023-07-12 10:36:36

by Su Hui

[permalink] [raw]
Subject: Re: [PATCH] drm/virtio: remove some redundant code

On 2023/7/12 14:36, Dan Carpenter wrote:

> On Wed, Jul 12, 2023 at 09:18:42AM +0800, Su Hui wrote:
>> On 2023/7/11 19:13, Dan Carpenter wrote:
>>> On Tue, Jul 11, 2023 at 05:00:31PM +0800, Su Hui wrote:
>>>> virtio_gpu_get_vbuf always be successful,
>>>> so remove the error judgment.
>>>>
>>> No, just ignore the static checker false positive in this case. The
>>> intent of the code is clear that if it did have an error it should
>>> return an error pointer.
>> Hi, Dan,
>>
>> Function "virtio_gpu_get_vbuf" call "kmem_cache_zalloc (vgdev->vbufs,
>> GFP_KERNEL | __GFP_NOFAIL)" to
>> allocate memory. Adding the " __GFP_NOFAIL”flag make sure it won't fail. And
>> "virtio_gpu_get_vbuf" never
>> return an error code, so I think this is not a false positive.
> We all see this and agree.
>
> However the check for if (IS_ERR()) is written deliberately because we
> might change the code to return error pointers in the future. Static
> checkers are looking for code that does something unintentional but in
> this case the code was written that way deliberately.
Got it ,  I shouldn't remove it because the check may be useful in the
future.
Thanks for your explanation.

Su Hui

>
> regards,
> dan carpenter
>