Dear All,
I'm reading through SoftRoCE implementation and I stumbled across
implementation of rxe_requester in file
drivers/infiniband/sw/rxe/rxe_resp.c function. This function implements
a state machine to represent states of the packet.
The function duplicate_request inside rxe_resp.c may decide to
retransmit the packet (line 1133) by calling rxe_xmit_packet. Then the
else branch falls through to execute the line 1142. There is a following
comment before this line:
Resource not found. Class D error. Drop the request.
If the code is correct, executing line 1142 after 1133 can be a result
of an error. Furthermore, the result of executing line 1142 is that
further the packet memory will be freed in cleanup function. Although a
reference to this memory may still exist, because the packet may still
stay in transmission.
Unfortunately, I do not have enough expertise to give a confident
judgment, but I'm sure that there is one of two cases: either the
comment is incorrect, or the line should not be hit after re-transmission.
--
Regards,
Maksym Planeta