]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
IPoIB: Fix ipoib_hard_header() return value
authorDoug Ledford <dledford@redhat.com>
Mon, 1 Apr 2013 21:25:30 +0000 (21:25 +0000)
committerRoland Dreier <roland@purestorage.com>
Wed, 17 Apr 2013 05:57:09 +0000 (22:57 -0700)
commit83bdd3b96cad1b0c5b8e257ed1f4f38eb2cb844b
tree19acb9f581b13d8ca184de5c67341adbcb2c05d6
parent41ef2d5678d83af030125550329b6ae8b74618fa
IPoIB: Fix ipoib_hard_header() return value

If you have a patched up dhcp server (and dhclient), they will use
AF_PACKET/SOCK_DGRAM pair to send dhcp packets over IPoIB.

However, when testing an upstream kernel, this has been broken for a
very long time (I tested 2.6.34, 2.6.38, 3.0, 3.1, 3.8, HEAD).

It turns out that the hard_header routine in ipoib is not following
the API and is returning 0 even when it pushed data onto the skb.
This then causes af_packet.c to overwrite the header just pushed with
data from user space.

Fixing this gets DHCP working on IPoIB.

Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/ulp/ipoib/ipoib_main.c