diff options
author | Erez Shitrit <erezsh@mellanox.com> | 2017-02-01 19:10:05 +0200 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-02-15 09:51:28 -0500 |
commit | 2b0841766a898aba84630fb723989a77a9d3b4e6 (patch) | |
tree | 7e0d03f6b923886ebcee28915e9a65706fee32ec /Documentation/ABI/testing/sysfs-driver-hid-prodikeys | |
parent | 592e8b3226a2b6d116589908d96c45fa13302ad7 (diff) | |
download | blackbird-obmc-linux-2b0841766a898aba84630fb723989a77a9d3b4e6.tar.gz blackbird-obmc-linux-2b0841766a898aba84630fb723989a77a9d3b4e6.zip |
IB/IPoIB: Add destination address when re-queue packet
When sending packet to destination that was not resolved yet
via path query, the driver keeps the skb and tries to re-send it
again when the path is resolved.
But when re-sending via dev_queue_xmit the kernel doesn't call
to dev_hard_header, so IPoIB needs to keep 20 bytes in the skb
and to put the destination address inside them.
In that way the dev_start_xmit will have the correct destination,
and the driver won't take the destination from the skb->data, while
nothing exists there, which causes to packet be be dropped.
The test flow is:
1. Run the SM on remote node,
2. Restart the driver.
4. Ping some destination,
3. Observe that first ICMP request will be dropped.
Fixes: fc791b633515 ("IB/ipoib: move back IB LL address into the hard header")
Cc: <stable@vger.kernel.org> # v4.8+
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Signed-off-by: Noa Osherovich <noaos@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Tested-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'Documentation/ABI/testing/sysfs-driver-hid-prodikeys')
0 files changed, 0 insertions, 0 deletions