+
+ ret = bedata->rsp[req_id].ret;
You can just return bedata->rsp[req_id].ret;
-boris
+ /* read ret, then set this rsp slot to be reused */
+ smp_mb();
+ WRITE_ONCE(bedata->rsp[req_id].req_id, PVCALLS_INVALID_ID);
+ WRITE_ONCE(map->passive.inflight_req_id, PVCALLS_INVALID_ID);
+ return ret;
+}