Hi David,
> >
> > It is due to local vc_req that is passed to func that requires iotlb
> > lock In vc_req->vq. Even though vc_req->vq is locked vq, GCC does not allow 
> > it,
> as I understand.
> 
> *cough* clang.
> 
> >
> >         vc_req = &data_req;
> >         vc_req->desc_idx = desc_idx;
> >         vc_req->dev = vcrypto->dev;
> >         vc_req->vq = vq;
> 
> The annotations won't handle this wrapping in the vc_req object.
> Just pass a vq object rather than the vc_req (which I don't see little point 
> in having
> in the first place..) and adjust annotations.
> 

Yes I thought about it initially, but then I had thought 
vhost_crypto_process_one_req() is only static and called with locks held.
Anyway, I have come up with one additional patch in series to fix it 
specifically.

Thanks for your suggestion.
Regards,
Gowrishankar
> 
> --
> David Marchand

Reply via email to