IPoIB: Fix kernel unaligned access on ia64
authorJack Morgenstein <jackm@mellanox.co.il>
Mon, 29 May 2006 16:14:05 +0000 (19:14 +0300)
committerRoland Dreier <rolandd@cisco.com>
Sun, 18 Jun 2006 03:37:35 +0000 (20:37 -0700)
commit37c22a77212c13201497378cc8becc5c95d0f3f5
tree5a38388266a09c9892e5d8e336d7287ae763e7c0
parent31c02e215700c2b704d9441f629ae87bb9aeb561
IPoIB: Fix kernel unaligned access on ia64

Fix misaligned access faults on ia64: never cast a misaligned
neighbour->ha + 4 pointer to union ib_gid type; pass a void * pointer
instead.  The memcpy was being optimized to use full word accesses
because the compiler thought that union ib_gid is always aligned.

The cast in IPOIB_GID_ARG is safe, since it is fixed to access each
byte separately.

Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il>
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c