On Thu, Aug 20, 2026, 3:17 AM Stefan Hajnoczi <[email protected]> wrote:

> On Sat, Aug 15, 2026 at 01:48:21AM +0800, Zhang Chen wrote:
> > diff --git a/hw/virtio/iothread-vq-mapping.c
> b/hw/virtio/iothread-vq-mapping.c
> > index 55ce62986c..1859d39630 100644
> > --- a/hw/virtio/iothread-vq-mapping.c
> > +++ b/hw/virtio/iothread-vq-mapping.c
> > @@ -77,6 +77,7 @@ bool iothread_vq_mapping_apply(
> >          IOThreadVirtQueueMappingList *list,
> >          AioContext **vq_aio_context,
> >          uint16_t num_queues,
> > +        char *holder,
>
> const char * is clearer. It indicates that this function doesn't modify
> or free its argument (making ownership clear).
>


OK , will fix in next version.

Thanks
Chen



>
> >          Error **errp)
> >  {
> >      IOThreadVirtQueueMappingList *node;
> > @@ -93,10 +94,13 @@ bool iothread_vq_mapping_apply(
> >
> >      for (node = list; node; node = node->next) {
> >          IOThread *iothread = iothread_by_id(node->value->iothread);
> > -        AioContext *ctx = iothread_get_aio_context(iothread);
> > +        const IOThreadHolder io_holder = {
> > +            .type = IO_THREAD_HOLDER_KIND_QOM_OBJECT,
> > +            .u.qom_object.qom_path = holder,
> > +        };
> >
> > -        /* Released in virtio_blk_vq_aio_context_cleanup() */
> > -        object_ref(OBJECT(iothread));
> > +        AioContext *ctx = iothread_ref_and_get_aio_context(iothread,
> > +                                                           &io_holder);
> >
> >          if (node->value->vqs) {
> >              uint16List *vq;
> > @@ -120,13 +124,19 @@ bool iothread_vq_mapping_apply(
> >      return true;
> >  }
> >
> > -void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list)
> > +void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list,
> > +                                 char *holder)
>
> const char *
>

Reply via email to