s390/qeth: make cast type selection for af_iucv skbs robust
authorJulian Wiedmann <jwi@linux.ibm.com>
Thu, 28 Jan 2021 11:25:50 +0000 (12:25 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 29 Jan 2021 04:35:58 +0000 (20:35 -0800)
commita667fee181b2c44cbf162f6a24c3594904aa9da1
treeb793a02137b2b85cbfd1e8c3b917bc44407a8f14
parentc61dff3c1ef77f46e4aa605f71c68089b02b3d78
s390/qeth: make cast type selection for af_iucv skbs robust

As part of the TX queue selection for af_iucv skbs,
qeth_l3_get_cast_type_rcu() ends up calling qeth_get_ether_cast_type().
Which is rather fragile, since such skbs don't have a proper ETH header
and we rely on it being zeroed out in the right places. Add a separate
case for ETH_P_AF_IUCV instead that does the right thing.

When later building the HW header for such skbs, don't hard-code the
cast type but follow the same path as for other protocol types. Here
the cast type should naturally come from the skb's queue mapping.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/s390/net/qeth_l3_main.c