2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-20 19:23:57 +08:00
linux-next/drivers/s390/net
Julian Wiedmann 7d969d2e88 s390/qeth: size calculation outbound buffers
Depending on the device type, hard_start_xmit() builds different output
buffer formats. For instance with HiperSockets, on both L2 and L3 we
strip the ETH header from the skb - L3 doesn't need it, and L2 carries
it in the buffer's header element.
For this, we pass data_offset = ETH_HLEN all the way down to
__qeth_fill_buffer(), where skb->data is then adjusted accordingly.
But the initial size calculation still considers the *full* skb length
(including the ETH header). So qeth_get_elements_no() can erroneously
reject a skb as too big, even though it would actually fit into an
output buffer once the ETH header has been trimmed off later.

Fix this by passing an additional offset to qeth_get_elements_no(),
that indicates where in the skb the on-wire data actually begins.
Since the current code uses data_offset=-1 for some special handling
on OSA, we need to clamp data_offset to 0...

On HiperSockets this helps when sending ~MTU-size skbs with weird page
alignment. No change for OSA or AF_IUCV.

Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-03-24 12:39:59 -07:00
..
ctcm_dbug.c s390/s390dbf: use debug_level_enabled() where applicable 2013-10-24 17:16:54 +02:00
ctcm_dbug.h
ctcm_fsms.c s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
ctcm_fsms.h
ctcm_main.c s390/net: use net core MTU range checking 2016-10-20 14:51:10 -04:00
ctcm_main.h s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
ctcm_mpc.c treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
ctcm_mpc.h
ctcm_sysfs.c s390/ctcm, netiucv: migrate variables to handle y2038 problem 2015-01-17 23:54:59 -05:00
fsm.c
fsm.h
Kconfig s390: remove claw driver 2015-02-28 23:38:29 -05:00
lcs.c s390/lcs: remove trailing space at end of dev_err message 2016-10-13 10:59:45 -04:00
lcs.h s390/s390dbf: use debug_level_enabled() where applicable 2013-10-24 17:16:54 +02:00
Makefile s390: remove claw driver 2015-02-28 23:38:29 -05:00
netiucv.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
qeth_core_main.c s390/qeth: size calculation outbound buffers 2017-03-24 12:39:59 -07:00
qeth_core_mpc.c qeth: OSA version of SETBRIDGEPORT command 2015-05-18 12:14:17 -04:00
qeth_core_mpc.h s390/qeth: test RX/TX checksum offload reply 2017-01-12 10:02:43 -05:00
qeth_core_sys.c qeth: omit outbound queue 3 for unicast packets in Priority Queuing on HiperSockets 2016-06-16 22:16:13 -07:00
qeth_core.h s390/qeth: size calculation outbound buffers 2017-03-24 12:39:59 -07:00
qeth_l2_main.c s390/qeth: size calculation outbound buffers 2017-03-24 12:39:59 -07:00
qeth_l2_sys.c qeth: no write permission for readonly sysattr 2015-09-21 16:03:04 -07:00
qeth_l2.h qeth: optimize IP handling in rx_mode callback 2016-06-16 22:16:12 -07:00
qeth_l3_main.c s390/qeth: size calculation outbound buffers 2017-03-24 12:39:59 -07:00
qeth_l3_sys.c s390/qeth: fix retrieval of vipa and proxy-arp addresses 2017-01-12 10:02:43 -05:00
qeth_l3.h qeth: optimize IP handling in rx_mode callback 2016-06-16 22:16:12 -07:00
smsgiucv_app.c
smsgiucv.c s390/iucv: do not use arrays as argument 2015-09-21 16:03:04 -07:00
smsgiucv.h