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