From patchwork Wed Oct 28 18:45:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lukas Straub X-Patchwork-Id: 1389379 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=web.de header.i=@web.de header.a=rsa-sha256 header.s=dbaedf251592 header.b=IenQ4dtD; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CLyPT0CyJz9sVv for ; Thu, 29 Oct 2020 05:52:45 +1100 (AEDT) Received: from localhost ([::1]:55428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kXqYr-0006m8-55 for incoming@patchwork.ozlabs.org; Wed, 28 Oct 2020 14:52:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53930) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXqSB-0000Nl-2X; Wed, 28 Oct 2020 14:45:48 -0400 Received: from mout.web.de ([212.227.15.3]:52951) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXqS9-0003J5-3e; Wed, 28 Oct 2020 14:45:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1603910738; bh=qNFWTek6fmYyiC+xP39ERwe9G5RcmmLQxbh3EAxvyro=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:In-Reply-To:References; b=IenQ4dtDSWZWnD8zG9PNFzHHvyl9ivENGW/rIVSIhKGnvSXHHZRAt7e6l8rFT1SUW 9RvQnJUk+kEy3NhNeCu0zeTVmnyZoLfIKN8IKsZeTURCuuj90+gHcBt22uuHyRrATX FlOd2Xp0lJDiqTb/Jcln+NFo836CGfV19Y/idMgc= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from luklap ([94.134.180.124]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1N30dV-1kNYXk2fHx-013CLW; Wed, 28 Oct 2020 19:45:37 +0100 Date: Wed, 28 Oct 2020 19:45:36 +0100 From: Lukas Straub To: qemu-devel Subject: [PATCH v9 5/8] io/channel-tls.c: make qio_channel_tls_shutdown thread-safe Message-ID: <22072bf9d36a8e8ce6d9b1c9312c15538d7f7e3c.1603909658.git.lukasstraub2@web.de> In-Reply-To: References: MIME-Version: 1.0 X-Provags-ID: V03:K1:n3Mt/H3g1zAQ9GPZ4k+NAcgqGvcUEZ7zGQwPqQzXRICU3F0HRoB YSfy7EraT5pYsmeuTzll+4aOlQsZl18bZTH61d+XlRPaja4jFlbwBVnG14LY3P6a34lPpig PiuDUmQB8Q10sO9YKKriw4lYl1MtLLDd7b/ggslCD440Cf4PfGbL2ikpiqiYigVtlto3R8S hsbPjdcHq0RrK77NYDc8Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:K6t2iyMazNg=:UXT4Kk7WgFyN4bTFiB4Mdz sF2SvFXFfcj0VRJ4gIPaWkad8ADeePCktRkcAYikoMgj6PW7iZsXW1KWH/yNNa73R4vN5niJp 7kxHUci9YWnNKo5g2XSmuWMLhO1xMthZru5aXQA7/2oJdJj4+2Hsd5lHamT+pPm9o7z7Tr8tC EFoT6Yky+InfBJbqb4CazdclHfY2CG99FmZ2Mm7S0Qw16l7DSm6mJOmuK8Or99nUqR/9ygPqY bvF5CgRhRqV4TfTM1XHQfYBTBRuHxhNdtt6afDmuW4f/YiP8lXKWT5/RNX/nnsMPaN7xaIC4B ks2M8+vgUsTlArXPJfIRlA2t7CbZJJVUw1q+ZKQT2aO+clZ5JT6Vk8YQufuva8u/ngEOvNFnJ WbOBcyL+PC73F0TDo5/+R3grjs/i8+fEplI8KY9Biy6qx9sJZILM4qywTfLUPvNOQD0q8BYak PKqU4RT2kP+FYkvIgcbu2vR10ZX0DGdeJI1K07RabVeX/5KqL3rtK5QjqlKVTAADrkCekhdhv mTogAsrWyay8rm/f6TjXMYNlCrlfHjq1cBaKTRCLMT0Z95H3vr29/Ah8ZmR2V5S/wbJeuMO7W 5KEvFrZRfpxn275/3C3gPLCzkS5T3Jv4Z4cY8CepjXSXTS2QMlS+QjwGlLOjTU2Iv9Jz9wFon Eo3bamquQO0xVDl94LlFf/UoAYAbo7Krr8M0t3nZWAcOHGXtgUV3fhNYzAAY4okGutfAwGwIQ JLBB27bWYxsC1/nl6vr/2Y29W5lDQR6b7XtqiL60IQxIIwkMIKuvYbJonPvOFg4ZoQYYHdEiO /Kgy/hSxZhQ4UH+1/XhNJac8ogGihYsms6mbuDtSuoLUBFv8OcQ/zdgbfd7Bth92fdVvKnrUy EZFFqgGoMw0tZt897+Ww== Received-SPF: pass client-ip=212.227.15.3; envelope-from=lukasstraub2@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/28 14:45:41 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -24 X-Spam_score: -2.5 X-Spam_bar: -- X-Spam_report: (-2.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , "Daniel P. =?utf-8?b?QmVycmFuZ8Op?= " , qemu-block , Juan Quintela , Markus Armbruster , "Dr. David Alan Gilbert" , Max Reitz , Paolo Bonzini , =?utf-8?q?Marc-Andr=C3=A9?= Lureau Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Make qio_channel_tls_shutdown thread-safe by using atomics when accessing tioc->shutdown. Signed-off-by: Lukas Straub Acked-by: Stefan Hajnoczi Reviewed-by: Daniel P. Berrangé --- io/channel-tls.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.20.1 diff --git a/io/channel-tls.c b/io/channel-tls.c index 7ec8ceff2f..10d0bf59aa 100644 --- a/io/channel-tls.c +++ b/io/channel-tls.c @@ -23,6 +23,7 @@ #include "qemu/module.h" #include "io/channel-tls.h" #include "trace.h" +#include "qemu/atomic.h" static ssize_t qio_channel_tls_write_handler(const char *buf, @@ -277,7 +278,8 @@ static ssize_t qio_channel_tls_readv(QIOChannel *ioc, return QIO_CHANNEL_ERR_BLOCK; } } else if (errno == ECONNABORTED && - (tioc->shutdown & QIO_CHANNEL_SHUTDOWN_READ)) { + (qatomic_load_acquire(&tioc->shutdown) & + QIO_CHANNEL_SHUTDOWN_READ)) { return 0; } @@ -361,7 +363,7 @@ static int qio_channel_tls_shutdown(QIOChannel *ioc, { QIOChannelTLS *tioc = QIO_CHANNEL_TLS(ioc); - tioc->shutdown |= how; + qatomic_or(&tioc->shutdown, how); return qio_channel_shutdown(tioc->master, how, errp); }