On 09/21/2017 05:02 AM, Hannes Reinecke wrote: > Hi Brian, > > I was looking at the ibmvfc code (trying to hook up libfc), and have > found this definition: > > struct ibmvfc_fcp_rsp_info { > __be16 reserved; > u8 rsp_code; > u8 reserved2[4]; > }__attribute__((packed, aligned (2))); > > in comparison, libfc has this: > > struct fcp_resp_rsp_info { > __u8 _fr_resvd[3]; /* reserved */ > __u8 rsp_code; /* Response Info Code */ > __u8 _fr_resvd2[4]; /* reserved */ > }; > > So both look _nearly_ identical, except the missing byte at the start. > It might be inserted due to some compile alignment magic, but I'd rather > not rely on this. > Could you clarify if the two structures really are different, or if this > is a simple oversight? Looks like a bug to me. We should probably just have ibmvfc use the libfc definition. Tyrel - can you do this conversion and run a bit of regression testing? Looking at the possible values of rsp_code, the most likely place where this might cause us some issues is in TMF handling. I'm a little worried this could result in a potential double completion in error handling in some rare cases.... Tyrel - are you aware of any issues like that, which this might explain? Thanks, Brian -- Brian King Power Linux I/O IBM Linux Technology Center