[PATCH v2 0/7] Cleanup and fix @errp dereference

Zhao Liu posted 7 patches 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240223085653.1255438-1-zhao1.liu@linux.intel.com
Maintainers: Jonathan Cameron <jonathan.cameron@huawei.com>, Fan Ni <fan.ni@samsung.com>, Laurent Vivier <laurent@vivier.eu>, "Michael S. Tsirkin" <mst@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Alistair Francis <alistair@alistair23.me>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Peter Maydell <peter.maydell@linaro.org>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Alex Williamson <alex.williamson@redhat.com>, "Cédric Le Goater" <clg@redhat.com>
hw/cxl/cxl-host.c            | 1 +
hw/display/macfb.c           | 1 +
hw/intc/ioapic_common.c      | 4 ++++
hw/mem/cxl_type3.c           | 1 +
hw/misc/xlnx-versal-trng.c   | 3 +--
hw/pci-bridge/cxl_upstream.c | 1 +
hw/vfio/iommufd.c            | 1 +
7 files changed, 10 insertions(+), 2 deletions(-)
[PATCH v2 0/7] Cleanup and fix @errp dereference
Posted by Zhao Liu 2 months ago
From: Zhao Liu <zhao1.liu@intel.com>

Hi all,

This is my v2 series to clean and fix @errp dereference.

Introduction
============

The patches 1-6 fix the cases that deference @errp without
ERRP_GUARD(), and they are based on my previsous v1 [1].

The patch 7 is merged in this series from another single patch [2].

Based on v1, v2 mainly add more description about problematic codes to
make review easier (with Markus' suggestion) and avoid dereferencing
@errp in patch 3's special case.


Future Work
===========

Additionally, I realized that my journey to fix @errp with ERRP_GUARD()
is still not over, because @errp's second restriction said:

* Without ERRP_GUARD(), use of the @errp parameter is restricted:
...
* - It should not be passed to error_prepend() or
*   error_append_hint(), because that doesn't work with &error_fatal.
* ERRP_GUARD() lifts these restrictions.

With this restrication, there're still many places need to add missing
ERRP_GUARD().

[1]: https://lore.kernel.org/qemu-devel/20240221094317.994454-1-zhao1.liu@linux.intel.com/
[2]: https://lore.kernel.org/qemu-devel/20240221073948.768828-1-zhao1.liu@linux.intel.com/

Thanks and Best Regards,
Zhao

---
Zhao Liu (7):
  hw/cxl/cxl-host: Fix missing ERRP_GUARD() in
    cxl_fixed_memory_window_config()
  hw/display/macfb: Fix missing ERRP_GUARD() in macfb_nubus_realize()
  hw/mem/cxl_type3: Fix missing ERRP_GUARD() in ct3_realize()
  hw/misc/xlnx-versal-trng: Check returned bool in
    trng_prop_fault_event_set()
  hw/pci-bridge/cxl_upstream: Fix missing ERRP_GUARD() in
    cxl_usp_realize()
  hw/vfio/iommufd: Fix missing ERRP_GUARD() in iommufd_cdev_getfd()
  hw/intc: Check @errp to handle the error of
    IOAPICCommonClass.realize()

 hw/cxl/cxl-host.c            | 1 +
 hw/display/macfb.c           | 1 +
 hw/intc/ioapic_common.c      | 4 ++++
 hw/mem/cxl_type3.c           | 1 +
 hw/misc/xlnx-versal-trng.c   | 3 +--
 hw/pci-bridge/cxl_upstream.c | 1 +
 hw/vfio/iommufd.c            | 1 +
 7 files changed, 10 insertions(+), 2 deletions(-)

-- 
2.34.1
Re: [PATCH v2 0/7] Cleanup and fix @errp dereference
Posted by Zhao Liu 1 month, 2 weeks ago
Hi Michael & Philippe,

Could this series catch the last train of next releases? ;-)

Thanks,
Zhao

On Fri, Feb 23, 2024 at 04:56:46PM +0800, Zhao Liu wrote:
> Date: Fri, 23 Feb 2024 16:56:46 +0800
> From: Zhao Liu <zhao1.liu@linux.intel.com>
> Subject: [PATCH v2 0/7] Cleanup and fix @errp dereference
> X-Mailer: git-send-email 2.34.1
> 
> From: Zhao Liu <zhao1.liu@intel.com>
> 
> Hi all,
> 
> This is my v2 series to clean and fix @errp dereference.
> 
> Introduction
> ============
> 
> The patches 1-6 fix the cases that deference @errp without
> ERRP_GUARD(), and they are based on my previsous v1 [1].
> 
> The patch 7 is merged in this series from another single patch [2].
> 
> Based on v1, v2 mainly add more description about problematic codes to
> make review easier (with Markus' suggestion) and avoid dereferencing
> @errp in patch 3's special case.
> 
> 
> Future Work
> ===========
> 
> Additionally, I realized that my journey to fix @errp with ERRP_GUARD()
> is still not over, because @errp's second restriction said:
> 
> * Without ERRP_GUARD(), use of the @errp parameter is restricted:
> ...
> * - It should not be passed to error_prepend() or
> *   error_append_hint(), because that doesn't work with &error_fatal.
> * ERRP_GUARD() lifts these restrictions.
> 
> With this restrication, there're still many places need to add missing
> ERRP_GUARD().
> 
> [1]: https://lore.kernel.org/qemu-devel/20240221094317.994454-1-zhao1.liu@linux.intel.com/
> [2]: https://lore.kernel.org/qemu-devel/20240221073948.768828-1-zhao1.liu@linux.intel.com/
> 
> Thanks and Best Regards,
> Zhao
> 
> ---
> Zhao Liu (7):
>   hw/cxl/cxl-host: Fix missing ERRP_GUARD() in
>     cxl_fixed_memory_window_config()
>   hw/display/macfb: Fix missing ERRP_GUARD() in macfb_nubus_realize()
>   hw/mem/cxl_type3: Fix missing ERRP_GUARD() in ct3_realize()
>   hw/misc/xlnx-versal-trng: Check returned bool in
>     trng_prop_fault_event_set()
>   hw/pci-bridge/cxl_upstream: Fix missing ERRP_GUARD() in
>     cxl_usp_realize()
>   hw/vfio/iommufd: Fix missing ERRP_GUARD() in iommufd_cdev_getfd()
>   hw/intc: Check @errp to handle the error of
>     IOAPICCommonClass.realize()
> 
>  hw/cxl/cxl-host.c            | 1 +
>  hw/display/macfb.c           | 1 +
>  hw/intc/ioapic_common.c      | 4 ++++
>  hw/mem/cxl_type3.c           | 1 +
>  hw/misc/xlnx-versal-trng.c   | 3 +--
>  hw/pci-bridge/cxl_upstream.c | 1 +
>  hw/vfio/iommufd.c            | 1 +
>  7 files changed, 10 insertions(+), 2 deletions(-)
> 
> -- 
> 2.34.1
> 
>
Re: [PATCH v2 0/7] Cleanup and fix @errp dereference
Posted by Michael S. Tsirkin 1 month, 2 weeks ago
On Mon, Mar 11, 2024 at 11:51:11AM +0800, Zhao Liu wrote:
> Hi Michael & Philippe,
> 
> Could this series catch the last train of next releases? ;-)
> 
> Thanks,
> Zhao

yes it will be in subject to last minute testing.