On Thu, 06/05 06:09, Paolo Bonzini wrote: > Il 05/06/2014 05:50, Fam Zheng ha scritto: > >>> Can you try moving the req allocation and assignments inside > >>> process_request > >>> instead? Then you can fill in req->out directly without the struct > >>> assignment. > >>> > >The owners of req are do_rdwr_cmd and do_flush_cmd, but do_scsi_cmd and > >do_get_id_cmd don't need to allocate. > > They don't need it, but using req there and freeing it in > complete_request_early perhaps could simplify the code. > > After all, the first three arguments of complete_request_early (s, elem, > inhdr) are a duplicate of VirtIOBlockReq and do_flush_cmd is already doing a > free after complete_request_early. >
Yes. Although It's not really "early" complete from do_flush_cmd, it's actually a cb complete. But the point makes sense for me. I'll do it. Fam