[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_int
From: |
Alex Williamson |
Subject: |
Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt() |
Date: |
Thu, 13 Aug 2020 10:59:11 -0600 |
On Thu, 13 Aug 2020 15:37:08 +0800
Chen Qun <kuhn.chenqun@huawei.com> wrote:
> Clang static code analyzer show warning:
> hw/vfio/platform.c:239:9: warning: Value stored to 'ret' is never read
> ret = event_notifier_test_and_clear(intp->interrupt);
> ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> Reported-by: Euler Robot <euler.robot@huawei.com>
> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com>
> ---
> Cc: Alex Williamson <alex.williamson@redhat.com>
> Cc: Eric Auger <eric.auger@redhat.com>
> ---
> hw/vfio/platform.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> index ac2cefc9b1..869ed2c39d 100644
> --- a/hw/vfio/platform.c
> +++ b/hw/vfio/platform.c
> @@ -236,7 +236,7 @@ static void vfio_intp_interrupt(VFIOINTp *intp)
> trace_vfio_intp_interrupt_set_pending(intp->pin);
> QSIMPLEQ_INSERT_TAIL(&vdev->pending_intp_queue,
> intp, pqnext);
> - ret = event_notifier_test_and_clear(intp->interrupt);
> + event_notifier_test_and_clear(intp->interrupt);
> return;
> }
Testing that an event is pending in our notifier is generally a
prerequisite to doing anything in the interrupt handler, I don't
understand why we're just consuming it and ignoring the return value.
The above is in the delayed handling branch of the function, but the
normal non-delayed path would only go on to error_report() if the
notifier is not pending and then inject an interrupt anyway. This all
seems rather suspicious and it's a unique pattern among the vfio
callers of this function. Is there a more fundamental bug that this
function should perform this test once and return without doing
anything if it's called spuriously, ie. without a notifier pending?
Thanks,
Alex
- [PATCH 00/11] trivial patchs for static code analyzer fixes, Chen Qun, 2020/08/13
- [PATCH 03/11] target/arm/translate-a64:Remove dead assignment in handle_scalar_simd_shli(), Chen Qun, 2020/08/13
- [PATCH 04/11] target/arm/translate-a64:Remove redundant statement in disas_simd_two_reg_misc_fp16(), Chen Qun, 2020/08/13
- [PATCH 02/11] hw/arm/omap1:Remove redundant statement in omap_clkdsp_read(), Chen Qun, 2020/08/13
- [PATCH 05/11] hw/virtio/vhost-user:Remove dead assignment in scrub_shadow_regions(), Chen Qun, 2020/08/13
- [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Chen Qun, 2020/08/13
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Auger Eric, 2020/08/13
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(),
Alex Williamson <=
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Auger Eric, 2020/08/13
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Alex Williamson, 2020/08/13
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Auger Eric, 2020/08/13
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Stefan Hajnoczi, 2020/08/18
- Re: [PATCH 07/11] vfio/platform: Remove dead assignment in vfio_intp_interrupt(), Auger Eric, 2020/08/18
[PATCH 06/11] hw/net/virtio-net:Remove redundant statement in virtio_net_rsc_tcp_ctrl_check(), Chen Qun, 2020/08/13
[PATCH 08/11] tcg/optimize: Remove redundant statement in tcg_optimize(), Chen Qun, 2020/08/13