From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754075AbdEQWA0 (ORCPT ); Wed, 17 May 2017 18:00:26 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:35593 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753375AbdEQWAY (ORCPT ); Wed, 17 May 2017 18:00:24 -0400 Date: Wed, 17 May 2017 15:00:15 -0700 From: Stephen Hemminger To: mikelley@exchange.microsoft.com Cc: mikelley@microsoft.com, 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, marcelo.cerri@canonical.com, sthemmin@microsoft.com, kys@microsoft.com Subject: Re: [PATCH 1/1] Drivers: hv: vmbus: Close timing hole that can corrupt per-cpu page Extend the disabling of preemption to include the hypercall so that another thread can't get the CPU and corrupt the per-cpu page used for hypercall arguments. Message-ID: <20170517150015.70e97abb@xeon-e3> In-Reply-To: <1495057255-10660-1-git-send-email-mikelley@exchange.microsoft.com> References: <1495057255-10660-1-git-send-email-mikelley@exchange.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v4HM0Tt0022247 On Wed, 17 May 2017 14:40:55 -0700 mikelley@exchange.microsoft.com wrote: > From: Michael Kelley > > Signed-off-by: Michael Kelley > --- > drivers/hv/hv.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c > index 12e7bae..47ed538 100644 > --- a/drivers/hv/hv.c > +++ b/drivers/hv/hv.c > @@ -82,9 +82,14 @@ int hv_post_message(union hv_connection_id connection_id, > aligned_msg->message_type = message_type; > aligned_msg->payload_size = payload_size; > memcpy((void *)aligned_msg->payload, payload, payload_size); > - put_cpu_ptr(hv_cpu); > > status = hv_do_hypercall(HVCALL_POST_MESSAGE, aligned_msg, NULL); > + > + /* Preemption must remain disabled until after the hypercall > + * so some other thread can't get scheduled onto this cpu and > + * corrupt the per-cpu post_msg_page > + */ > + put_cpu_ptr(hv_cpu); > > return status & 0xFFFF; > } Since Subject line becomes the git log description, it is best practice to keep it short. On git commit man page: Though not required, it’s a good idea to begin the commit message with a single short (less than 50 character) line summarizing the change, followed by a blank line and then a more thorough description. If you need to provide more description put it in the message body.