Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2347075imm; Mon, 28 May 2018 06:29:07 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqmBROBEMmrb+6f0KjLULDFa+GqzZnhkiO4zt8gmrtm3/38JkdsorYvv3tIr56X3ey4LYdQ X-Received: by 2002:a62:211c:: with SMTP id h28-v6mr13214738pfh.249.1527514147170; Mon, 28 May 2018 06:29:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527514147; cv=none; d=google.com; s=arc-20160816; b=w6wyNXhla3z5yTfHaLVZG1SNS7VO3WgyJ6Sqb0fK8wIkTTDQa0uNrH7qV8d+JodYDb 6p+5MDWnfIhLsm5iwN4v20wj+LsxfBmcoWWnCBU0kSwG/lWAdZDsk30fblicwyfAu4qI ndkUUBWHHS6uXBFUZDVYQNAfoPyfrRqUkURJkVw0kFpb8kJpg23X6Ors3lUeXFuE8DZM xfdbBXZUsZFH+ogj/b5hqks9yLiau4whETscWxBH6ukR4C9+wZqcGRb6THsk1WEPuAS2 WQvMpy0FpqrMT+kXhoNhJyTo5e9ZlBvWOY3vxwn2mOnNK4WYxdaAHJsSgDYAjuiIceb2 YXmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=z3YeSZkUJttygyKgWI8vIIC3V/TqWdpJnEuUx9+6kO8=; b=lej3cbFYNYJfSPhOo/CZDziwKt1BMAyQrlR1vgA6wshiZFJbfWPhCUWLCykzYOhGEf aCLEs8GnsAH9KwFzzYim0hhVqsDBhQ+q+920S9L9Iz3aSrYrs9qgjbAV9oBza9g4N9oQ zh3IzHA8D7JybxBn31kpwZ2v7terqYW7OPr2uU7zSo6RiPYcAOTv1SrjC8a0oQYlOti4 afBUjhQi9kI6oPWV4qzlAagrEqv31Y3T8JJ+AePq7wJt7qXvezim1OkdWa4bhSNWuovo e1XOYBZfR+3+K3vCLtCfkq8HkPKbzkpIHiGPCX4dWcQa6XW4bm8fUPAL5P4b3LZUyGYB +k9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QF1bQXLP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q14-v6si19210794pgc.620.2018.05.28.06.28.52; Mon, 28 May 2018 06:29:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=QF1bQXLP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1163271AbeE1Krj (ORCPT + 99 others); Mon, 28 May 2018 06:47:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:37634 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1163256AbeE1Krd (ORCPT ); Mon, 28 May 2018 06:47:33 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A44A820883; Mon, 28 May 2018 10:47:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1527504453; bh=d6bkGj3g76yx/iAlziEF6KQDLJ07XYSzI3h/ID7p9Eo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QF1bQXLPvrA4o0j1En3RzUleL4+c4z4qW7EB/UhMOSzqvnGGbeWgaPgzLHMTdjz+o qsyeLNxkZp8r7hMHFWxyTD4/YgpbKfvHfPbLNNC7G9IWjTPKVCx1Khq2cSLiUM3c5O nB4IoZ0Rh+o/xLyPM5RM4kRXk3fehc0ASAPHVhhg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jesper Dangaard Brouer , John Fastabend , "David S. Miller" , Sasha Levin Subject: [PATCH 4.14 111/496] virtio_net: fix XDP code path in receive_small() Date: Mon, 28 May 2018 11:58:16 +0200 Message-Id: <20180528100324.578570962@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180528100319.498712256@linuxfoundation.org> References: <20180528100319.498712256@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jesper Dangaard Brouer [ Upstream commit 95dbe9e7b3720efa5cf83d21f44f6d953f7cf4a2 ] When configuring virtio_net to use the code path 'receive_small()', in-order to get correct XDP_REDIRECT support, I discovered TCP packets would get silently dropped when loading an XDP program action XDP_PASS. The bug seems to be that receive_small() when XDP is loaded check that hdr->hdr.flags is zero, which seems wrong as hdr.flags contains the flags VIRTIO_NET_HDR_F_* : #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */ #define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */ TCP got dropped as it had the VIRTIO_NET_HDR_F_DATA_VALID flag set. The flags that are relevant here are the VIRTIO_NET_HDR_GSO_* flags stored in hdr->hdr.gso_type. Thus, the fix is just check that none of the gso_type flags have been set. Fixes: bb91accf2733 ("virtio-net: XDP support for small buffers") Signed-off-by: Jesper Dangaard Brouer Acked-by: John Fastabend Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/net/virtio_net.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -513,7 +513,7 @@ static struct sk_buff *receive_small(str void *orig_data; u32 act; - if (unlikely(hdr->hdr.gso_type || hdr->hdr.flags)) + if (unlikely(hdr->hdr.gso_type)) goto err_xdp; if (unlikely(xdp_headroom < virtnet_get_headroom(vi))) {