From: Julian Wiedmann Date: Thu, 20 Feb 2020 14:54:56 +0000 (+0100) Subject: s390/qeth: fix off-by-one in RX copybreak check X-Git-Tag: v5.5.8~51 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=227fb1306d0638a7bf1e9a97f033b07cc52def57;p=users%2Fdwmw2%2Flinux.git s390/qeth: fix off-by-one in RX copybreak check commit 54a61fbc020fd2e305680871c453abcf7fc0339b upstream. The RX copybreak is intended as the _max_ value where the frame's data should be copied. So for frame_len == copybreak, don't build an SG skb. Fixes: 4a71df50047f ("qeth: new qeth device driver") Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index 29facb9136715..10edfd6fc9302 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c @@ -5142,7 +5142,7 @@ next_packet: } use_rx_sg = (card->options.cq == QETH_CQ_ENABLED) || - ((skb_len >= card->options.rx_sg_cb) && + (skb_len > card->options.rx_sg_cb && !atomic_read(&card->force_alloc_skb) && !IS_OSN(card));