Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3368592pxv; Mon, 28 Jun 2021 03:06:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZcYdo6cJgh+PKEaXoGY4IxcrdTV7ZENo46wCOhubpWhfbXRujJQm0pF6Ia/7H3BccLcvL X-Received: by 2002:a92:de45:: with SMTP id e5mr10904484ilr.157.1624874783705; Mon, 28 Jun 2021 03:06:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624874783; cv=none; d=google.com; s=arc-20160816; b=lR6Bcv0TkGG/3CexvNDTrsQFPFdF6mM49IokEx5/aZ4RGLNx1jEAuk2YJO4+3asg0+ reE9VJ27CIw8xd2samEeuKretLqoUOppIEuf/Nx9dJYTD5BTT12YtztrafDpKETuoeZo 2ULDiEf8O1gImnNz9RMEFiVaZ0hDRCZrVd/3AiU6nEyiTbk5YH/rlqxVBKG2JkPig4np mxfAYYFFuuV45ZvA5V8n0nZEcZ1ZTr4rCEoPwLK/VcSZOguTLhEiovNp7vxckttdqklx kmxIK6GfRZJ32B9LE/MYnZq4SSG4AIoTSe4c1yMMjGR2nAGWAE8z0e0mtPv1TEqBebsC h0Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=35gWIcPUxlwRbE2vzlQVGdYGONwfD9a/jUW2oBvigH8=; b=Zfi3UJx0hvN7/oVr+ljkJAOSysI1nnn2hbE7ufk/5PsNh5MhQcqpt+MCRWc8KahNOX NbYAn99Y2Td0LNoiAJn6t3y/BqituYNWXWUw7OWR5KzVViyHdPjktMkaaPPyl0Db6eUq 7mXi+qdKoh6S1dpF/26GuoOL+cQJz72oSJxjGkAIWK/WkiEWDa46LEOqefBP69USoMZv S7hFqTAj0VOa3It1sLHftKj8CCYmzNPYxmVLKCkLf3Ghk+06jlUzOhLNUkOM7na2DNiW z0Tjps9W9pbdaxzryDVzuk5AckYGkwp/llGvmv899cpMjnDHVfo9qhYgjdpBrPAqjecK yFSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kaspersky.com header.s=mail202102 header.b=ffsfCAnx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=kaspersky.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j1si17011068jaq.89.2021.06.28.03.06.10; Mon, 28 Jun 2021 03:06:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kaspersky.com header.s=mail202102 header.b=ffsfCAnx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=kaspersky.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232773AbhF1KGt (ORCPT + 99 others); Mon, 28 Jun 2021 06:06:49 -0400 Received: from mx13.kaspersky-labs.com ([91.103.66.164]:61277 "EHLO mx13.kaspersky-labs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232632AbhF1KGs (ORCPT ); Mon, 28 Jun 2021 06:06:48 -0400 Received: from relay13.kaspersky-labs.com (unknown [127.0.0.10]) by relay13.kaspersky-labs.com (Postfix) with ESMTP id F04C6520D21; Mon, 28 Jun 2021 13:04:20 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kaspersky.com; s=mail202102; t=1624874661; bh=35gWIcPUxlwRbE2vzlQVGdYGONwfD9a/jUW2oBvigH8=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=ffsfCAnxhShu0tcht+1fibUoGXfNDng++5coLpCw4y5hXvlHdscdDWBYbjXoO55l2 2KYpTBpVtuq/AML1ClTSkTGT7COsbrbFgq4hXyGAGyX1xO3WyZDXJvSG8xDQJiOL9u LtIdihVbbDWzZx8svZF299ilqUQkosDfKGHsEWWKbkKGunvHDignPrcSv7wGv/f7ac ID/5+jHiIrOREpqSUsW1s3YQflsL4/bdGnvd7C8RZkJHY2Sf+a7JLetVrMts1yNZtV dieArg+FGHc9emmtK91EmSBFQp9z9QGq1ES4m4s6XxNbPUXe5huHUWnYx+6iOIoX4h COgSmC1RhtwQA== Received: from mail-hq2.kaspersky.com (unknown [91.103.66.206]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client CN "mail-hq2.kaspersky.com", Issuer "Kaspersky MailRelays CA G3" (verified OK)) by mailhub13.kaspersky-labs.com (Postfix) with ESMTPS id AECCD520D3D; Mon, 28 Jun 2021 13:04:20 +0300 (MSK) Received: from arseniy-pc.avp.ru (10.64.68.129) by hqmailmbx3.avp.ru (10.64.67.243) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2176.14; Mon, 28 Jun 2021 13:04:20 +0300 From: Arseny Krasnov To: Stefan Hajnoczi , Stefano Garzarella , "Michael S. Tsirkin" , Jason Wang , "David S. Miller" , Jakub Kicinski , Arseny Krasnov , Colin Ian King , Norbert Slusarek , Andra Paraschiv CC: , , , , Subject: [RFC PATCH v1 11/16] afvsock: add 'seqpacket_drop()' Date: Mon, 28 Jun 2021 13:04:12 +0300 Message-ID: <20210628100415.571391-1-arseny.krasnov@kaspersky.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210628095959.569772-1-arseny.krasnov@kaspersky.com> References: <20210628095959.569772-1-arseny.krasnov@kaspersky.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.64.68.129] X-ClientProxiedBy: hqmailmbx1.avp.ru (10.64.67.241) To hqmailmbx3.avp.ru (10.64.67.243) X-KSE-ServerInfo: hqmailmbx3.avp.ru, 9 X-KSE-AntiSpam-Interceptor-Info: scan successful X-KSE-AntiSpam-Version: 5.9.20, Database issued on: 06/28/2021 09:47:58 X-KSE-AntiSpam-Status: KAS_STATUS_NOT_DETECTED X-KSE-AntiSpam-Method: none X-KSE-AntiSpam-Rate: 0 X-KSE-AntiSpam-Info: Lua profiles 164664 [Jun 28 2021] X-KSE-AntiSpam-Info: Version: 5.9.20.0 X-KSE-AntiSpam-Info: Envelope from: arseny.krasnov@kaspersky.com X-KSE-AntiSpam-Info: LuaCore: 448 448 71fb1b37213ce9a885768d4012c46ac449c77b17 X-KSE-AntiSpam-Info: {Tracking_from_domain_doesnt_match_to} X-KSE-AntiSpam-Info: 127.0.0.199:7.1.2;kaspersky.com:7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;arseniy-pc.avp.ru:7.1.1 X-KSE-AntiSpam-Info: Rate: 0 X-KSE-AntiSpam-Info: Status: not_detected X-KSE-AntiSpam-Info: Method: none X-KSE-Antiphishing-Info: Clean X-KSE-Antiphishing-ScanningType: Deterministic X-KSE-Antiphishing-Method: None X-KSE-Antiphishing-Bases: 06/28/2021 09:51:00 X-KSE-AttachmentFiltering-Interceptor-Info: no applicable attachment filtering rules found X-KSE-Antivirus-Interceptor-Info: scan successful X-KSE-Antivirus-Info: Clean, bases: 28.06.2021 5:59:00 X-KSE-BulkMessagesFiltering-Scan-Result: InTheLimit X-KSE-AttachmentFiltering-Interceptor-Info: no applicable attachment filtering rules found X-KSE-BulkMessagesFiltering-Scan-Result: InTheLimit X-KLMS-Rule-ID: 52 X-KLMS-Message-Action: clean X-KLMS-AntiSpam-Status: not scanned, disabled by settings X-KLMS-AntiSpam-Interceptor-Info: not scanned X-KLMS-AntiPhishing: Clean, bases: 2021/06/28 08:23:00 X-KLMS-AntiVirus: Kaspersky Security for Linux Mail Server, version 8.0.3.30, bases: 2021/06/28 05:40:00 #16806866 X-KLMS-AntiVirus-Status: Clean, skipped Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add special callback for SEQPACKET socket which is called when we need to drop current in-progress record: part of record was copied successfully, reader wait rest of record, but signal interrupts it and reader leaves it's loop, leaving packets of current record still in queue. So to avoid copy of "orphaned" record, we tell transport to drop every packet until EOR will be found. Signed-off-by: Arseny Krasnov --- include/net/af_vsock.h | 1 + net/vmw_vsock/af_vsock.c | 1 + 2 files changed, 2 insertions(+) diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h index 1747c0b564ef..356878aabbd4 100644 --- a/include/net/af_vsock.h +++ b/include/net/af_vsock.h @@ -141,6 +141,7 @@ struct vsock_transport { int (*seqpacket_enqueue)(struct vsock_sock *vsk, struct msghdr *msg, size_t len); bool (*seqpacket_allow)(u32 remote_cid); + void (*seqpacket_drop)(struct vsock_sock *vsk); /* Notification. */ int (*notify_poll_in)(struct vsock_sock *, size_t, bool *); diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c index ec54e4222cbf..27fa38090e13 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c @@ -2024,6 +2024,7 @@ static int __vsock_seqpacket_recvmsg(struct sock *sk, struct msghdr *msg, intr_err = vsock_connectible_wait_data(sk, &wait, timeout, NULL, 0); if (intr_err <= 0) { err = intr_err; + transport->seqpacket_drop(vsk); break; } -- 2.25.1