Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: fc791b6 ("IB/ipoib: move back IB LL address into the hard header") Cc: <[email protected]> # v4.8+ Signed-off-by: Erez Shitrit <[email protected]> Signed-off-by: Noa Osherovich <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]> Tested-by: Yuval Shaia <[email protected]> Signed-off-by: Doug Ledford <[email protected]>
- Loading branch information