linux/drivers/infiniband/ulp/ipoib
Erez Shitrit 2b0841766a 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: fc791b6335 ("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>
2017-02-15 09:51:28 -05:00
..
ipoib_cm.c IB/ipoib: Change list_del to list_del_init in the tx object 2017-01-12 14:01:06 -05:00
ipoib_ethtool.c IB/ipoib: Use new device FW version string 2016-06-23 12:08:34 -04:00
ipoib_fs.c IPoIB: Remove unnecessary test for NULL before debugfs_remove() 2014-08-12 21:59:54 -07:00
ipoib_ib.c IB/ipoib: Remove the unnecessary error check 2017-01-24 16:22:24 -05:00
ipoib_main.c IB/IPoIB: Add destination address when re-queue packet 2017-02-15 09:51:28 -05:00
ipoib_multicast.c IB/ipoib: Remove the unnecessary error check 2017-01-24 16:22:24 -05:00
ipoib_netlink.c infiniband: make sure the src net is infiniband when create new link 2014-01-03 20:38:56 -05:00
ipoib_verbs.c IB/ipoib_verbs: Remove deprecated create_singlethread_workqueue 2016-10-07 16:54:32 -04:00
ipoib_vlan.c IB/ipoib: Remove unnecessary returned value check 2017-01-24 16:20:37 -05:00
ipoib.h IB/ipoib: Remove the unnecessary error check 2017-01-24 16:22:24 -05:00
Kconfig
Makefile IB/ipoib: Add rtnl_link_ops support 2012-09-20 16:49:17 -04:00