RDMA/cxgb4: "cookie" can stay in host endianness
authorPaul Bolle <pebolle@tiscali.nl>
Tue, 5 Feb 2013 20:51:30 +0000 (20:51 +0000)
committerRoland Dreier <roland@purestorage.com>
Thu, 14 Feb 2013 23:55:05 +0000 (15:55 -0800)
commit710a31102be46ffc2f087119dca19c894dc237eb
treec8c61415270bd3a186d13ee3b0274fe4c8b32663
parentef5d6355ed4bcf574e8473c3ce667cbf6c66a0ee
RDMA/cxgb4: "cookie" can stay in host endianness

Work requests are passed between the host and the firmware with a
"cookie".  This cookie is swapped to big-endian when passed to the
firmware and back to host endianness on return.  This swapping seems
to be implemented incorrectly.  Moreover, the byte swapping triggers
GCC warnings on 32 bit:

    drivers/infiniband/hw/cxgb4/cm.c: In function ‘passive_ofld_conn_reply’:
    drivers/infiniband/hw/cxgb4/cm.c:2803:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    drivers/infiniband/hw/cxgb4/cm.c: In function ‘send_fw_pass_open_req’:
    drivers/infiniband/hw/cxgb4/cm.c:2941:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    [...]

But byte swapping isn't needed as the firmware doesn't actually touch
the cookie.  Dropping byte swapping makes the warnings go away too.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/cxgb4/cm.c