Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752576AbcLCSk3 (ORCPT ); Sat, 3 Dec 2016 13:40:29 -0500 Received: from p3plsmtps2ded01.prod.phx3.secureserver.net ([208.109.80.58]:40522 "EHLO p3plsmtps2ded01.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751500AbcLCSjq (ORCPT ); Sat, 3 Dec 2016 13:39:46 -0500 x-originating-ip: 72.167.245.219 From: kys@exchange.microsoft.com To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, leann.ogasawara@canonical.com Cc: "K. Y. Srinivasan" Subject: [PATCH V2 03/15] Drivers: hv: vmbus: Prevent sending data on a rescinded channel Date: Sat, 3 Dec 2016 12:34:30 -0800 Message-Id: <1480797282-10126-3-git-send-email-kys@exchange.microsoft.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1480797282-10126-1-git-send-email-kys@exchange.microsoft.com> References: <1480797239-10085-1-git-send-email-kys@exchange.microsoft.com> <1480797282-10126-1-git-send-email-kys@exchange.microsoft.com> Reply-To: kys@microsoft.com X-CMAE-Envelope: MS4wfAoq09qkN7Tbz6qfldGMLXeU8jq6GezBd/NlOOR7+PwuciGyiitaJGNa1zbzN9WL9Q9qkXecT321r4Ayq51Ea0NpvWwhbOQifCaRZT1iJd0a9VvOB03m YOquJHAyJ2I5PAU1btkC/wPJGmJS8K1sA3avPJs1dgo8um6AhHpoDfZ1IHLFsCbRMlJ8xCF2PFmNQd7o7rWM36OsdvNCLSqlb4GKPgxStiOgFik9AgrfWa3O +K7v810ZKuvIflZG/IbXKY/Fff8ceeCF4S11RJJCIsRN4juzUE+MqjgAXIF/KKd9zQdlu2G6Bz61qg3K6qAxKWkCW1aAYx+6I1vCIXOS7QnokbnPpELIKpVG uz+7rziNqMe8EFnjh51lth8bEiAe0qPT9NLJb5NZIL2tDt8CaXnLYnLEolUlH7dF/GJurmbQs+sz9zKpeLNWpdRpbfN5mWowKjQoGhPdi9HKvYOKZAQ= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 793 Lines: 26 From: K. Y. Srinivasan After the channel is rescinded, the host does not read from the rescinded channel. Fail writes to a channel that has already been rescinded. Signed-off-by: K. Y. Srinivasan --- drivers/hv/ring_buffer.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/hv/ring_buffer.c b/drivers/hv/ring_buffer.c index cd49cb1..72f649d 100644 --- a/drivers/hv/ring_buffer.c +++ b/drivers/hv/ring_buffer.c @@ -298,6 +298,9 @@ int hv_ringbuffer_write(struct vmbus_channel *channel, unsigned long flags = 0; struct hv_ring_buffer_info *outring_info = &channel->outbound; + if (channel->rescind) + return -ENODEV; + for (i = 0; i < kv_count; i++) totalbytes_towrite += kv_list[i].iov_len; -- 1.7.4.1