aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_l2_main.c
diff options
context:
space:
mode:
authorJulian Wiedmann <jwi@linux.ibm.com>2019-06-05 13:48:49 +0200
committerDavid S. Miller <davem@davemloft.net>2019-06-05 11:48:57 -0700
commit0cd6783d3c7d40be165d1f3c811cedf0e3dfcdf1 (patch)
tree5ae38c5aec257f6b5430f167e8a5d8b22cad82b4 /drivers/s390/net/qeth_l2_main.c
parents390/qeth: handle limited IPv4 broadcast in L3 TX path (diff)
downloadlinux-dev-0cd6783d3c7d40be165d1f3c811cedf0e3dfcdf1.tar.xz
linux-dev-0cd6783d3c7d40be165d1f3c811cedf0e3dfcdf1.zip
s390/qeth: check dst entry before use
While qeth_l3 uses netif_keep_dst() to hold onto the dst, a skb's dst may still have been obsoleted (via dst_dev_put()) by the time that we end up using it. The dst then points to the loopback interface, which means the neighbour lookup in qeth_l3_get_cast_type() determines a bogus cast type of RTN_BROADCAST. For IQD interfaces this causes us to place such skbs on the wrong HW queue, resulting in TX errors. Fix-up the various call sites to first validate the dst entry with dst_check(), and fall back accordingly. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390/net/qeth_l2_main.c')
0 files changed, 0 insertions, 0 deletions