On Thu, 2012-01-12 at 11:21 -0500, J. Bruce Fields wrote: > On Thu, Jan 12, 2012 at 09:47:22AM +0300, Dan Carpenter wrote: > > Sparse complains because arg_ch->rs_length is declared as network > > endian but we're treating it as CPU endian. > > This looks like it would actually change behavior on a little endian > architecture, so how did this work before? > > >From some quick grepping, I see assignments both of the form > > ...rs_length = ntohl(...) > > and > > ...rs_length = htonl(...) > > but only see one declaration for a field named rs_length. > > So my best guess would be that the code is ugly but working as is, and > needs cleanup by someone who knows how this field was intended to be > used. It looks to me as if rs_handle and rs_offset are being similarly abused. Basically, we need a serious clean up in svc_rdma_marshall.c to separate out those variables that are in XDR-encoded form and those that are not. -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@xxxxxxxxxx www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html