From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615454816; cv=none; d=zohomail.com; s=zohoarc; b=X0RSvWWGXrrYSzTsbHyrzOi/XfoJYm1sJhQYPXwCKaCgjCE/yG3YgdnQZaq2MS1IQz7amOWDhYXuzqX0amX1YDHJHzw9nvs3uQ2MAQDZ94/HbcYpWlC+Ht6NalaydoGiJcZo4GO+4lzFfHIG1GhUYWsd1WN3leAw31XY4KhLCiI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615454816; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fE2XhPMXxb9owm5fUQuZRfsQOnkzPKyhol7+md8V6X0=; b=GIZ0VVItebzsso7clFX24XEspimSFeVVQnZ5wb1NKzgQYuvQ3MKJxVQIDUpTjMU24YMRR4RH+KHjhA2Q1TNmANoZXLHPo0yAx5rtZiJ6Yz0D1eVJ6teVA2GZPM3WIVcmvsk2iRoEFNHdcxDZSp7bRYV7wqHUViTMhL/qjhmjDDA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615454816929519.6260697566279; Thu, 11 Mar 2021 01:26:56 -0800 (PST) Received: from localhost ([::1]:33092 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHan-00082p-1Y for importer@patchew.org; Thu, 11 Mar 2021 04:26:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnm-0001JL-9d for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:54 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:56316) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnk-0000fF-28 for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:54 -0500 Received: by mail-wm1-x32d.google.com with SMTP id o26so406930wmc.5 for ; Wed, 10 Mar 2021 19:15:51 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fE2XhPMXxb9owm5fUQuZRfsQOnkzPKyhol7+md8V6X0=; b=MQiIZOaVfWuBI/mFzZROYYpRI9/RbGT/0+KgoP6dCB6v5njjPzcnlxN/tHR6bVq3s4 5UzPINKapp5KSNYPM2Yz5ElFpnBA4YHKDGjCGffuvfcCjFm4kFP7ZQ+mL/frdcwv1wTI ktrcJhPVitoZsKhyxuq4InSg05c8ZnLUFLJbCjGRttIM5ucCi0SOfsw+RjYvSV4o9SBX iAk8B4m9Hi+jceStvrBNGSLkq/3txiwsHgagC+J/CaPIfj49SZBPfhXU5x7T/vsCYndn r3WqirnfdsSDhO3DFxC9l/xVOWAU2Yrx/m+BhpHVRuV9PN7OxDXwT1oPKGPReQXGPnbN nXbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fE2XhPMXxb9owm5fUQuZRfsQOnkzPKyhol7+md8V6X0=; b=jXjR5QNH4igwmaCsy+g1OciQw4ngdPCy78Sk2Q2MyiL48PnNV7HHe0r+iHZVgAS/6C sYUAtUg+htgJa8E/x3bXufBV0xQfJArnUnnmHZgAyNZn5ap0+6wPWlSNO/0XWvEOhlG8 nLkqvkHNO+1f0AWiCXaVlWMf80dzzt4YScWgPNu5kfVCUyek7nbYdh+jmsd43QdbP6Za IcerHTcue5EZZwbMpDYl73OlDFeLxAr1rKimXmFNqlq7rC5oxKEi5dmNb0hsbdLKCqYO KmCs0I6pj5ZnUXwaWGa2VEsHdCyRtIqEdilVQ/29lUMV1+r4wwWEbCT5l4Vkj7z730Ks S+QA== X-Gm-Message-State: AOAM530qU9NbvctG2U75JNfXm6/8xWZ6oTDrUOAB13Jna72ILjHNptTb 7wqyCmrKQ3mWxPVcSyISAIdBpLrXkQ0= X-Google-Smtp-Source: ABdhPJw5xDgfOVoLwDM2kOJYLeMh4PIbjbtO712t4gM/QfZCFRbxBh4nEesuepBG4bwtN3tluDNq4Q== X-Received: by 2002:a05:600c:198d:: with SMTP id t13mr6170017wmq.73.1615432550530; Wed, 10 Mar 2021 19:15:50 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 1/9] tpm: Changed a qemu_mutex_lock to QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:30 +0200 Message-Id: <20210311031538.5325-2-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:43 -0500 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: Mahmoud Mandour , Stefan Berger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Removed a qemu_mutex_lock() and its respective qemu_mutex_unlock() and used QEMU_LOCK_GUARD instead. This simplifies the code by eliminiating gotos and removing the qemu_mutex_unlock() calls. Signed-off-by: Mahmoud Mandour Reviewed-by: Marc-Andr=C3=A9 Lureau --- backends/tpm/tpm_emulator.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c index a012adc193..a3c041e402 100644 --- a/backends/tpm/tpm_emulator.c +++ b/backends/tpm/tpm_emulator.c @@ -126,7 +126,7 @@ static int tpm_emulator_ctrlcmd(TPMEmulator *tpm, unsig= ned long cmd, void *msg, uint8_t *buf =3D NULL; int ret =3D -1; =20 - qemu_mutex_lock(&tpm->mutex); + QEMU_LOCK_GUARD(&tpm->mutex); =20 buf =3D g_alloca(n); memcpy(buf, &cmd_no, sizeof(cmd_no)); @@ -134,20 +134,18 @@ static int tpm_emulator_ctrlcmd(TPMEmulator *tpm, uns= igned long cmd, void *msg, =20 n =3D qemu_chr_fe_write_all(dev, buf, n); if (n <=3D 0) { - goto end; + return ret; } =20 if (msg_len_out !=3D 0) { n =3D qemu_chr_fe_read_all(dev, msg, msg_len_out); if (n <=3D 0) { - goto end; + return ret; } } =20 ret =3D 0; =20 -end: - qemu_mutex_unlock(&tpm->mutex); return ret; } =20 --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615454819; cv=none; d=zohomail.com; s=zohoarc; b=GXN3UlwUKrUa8hQgUv099Vz8fTSn6cg8kUw51X30UoxuTSA3/sxVqs+d9pA14ZH5YMdJtwD9ZIYl6CZGPQju3gy9YBM1MxQoo2K4UDpTC+euMJZFjZFDwqsP1UEUTgRvppd2NwN4tBr1R1GBjNX72XMmiQZ0ibE+ZYMvjCrZgn8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615454819; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=dXcKVQyGGZNut+nzOHUWn5swypLW9nww9IuGeZxhzJI=; b=KvmATOtBTFh9AjmOj8nB71obyzztx7wrg/fSEAdSr8Qxp9sy+hPIkAph8S9le3RPny4Zh/iA8uNpBWHGGJoPuEjWEpoIyr0z8HXfF+l8+IoysD0dZCtJupAiKwJHt/bi3Xib78dVMixl5Tqw3YAbL5xIavsICwNLGVh7HlegxOg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615454819803634.5658472185669; Thu, 11 Mar 2021 01:26:59 -0800 (PST) Received: from localhost ([::1]:33638 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHas-0008Gt-L1 for importer@patchew.org; Thu, 11 Mar 2021 04:26:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBno-0001LO-El; Wed, 10 Mar 2021 22:15:56 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:42780) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnm-0000gF-Cd; Wed, 10 Mar 2021 22:15:56 -0500 Received: by mail-wm1-x32e.google.com with SMTP id b2-20020a7bc2420000b029010be1081172so11916436wmj.1; Wed, 10 Mar 2021 19:15:53 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dXcKVQyGGZNut+nzOHUWn5swypLW9nww9IuGeZxhzJI=; b=nITUMZGgzxB9HUbOO9+dyrnyXGQZfYsmmkfwECrpfs+gQdyPX/qyu9AWMGkWd/teQK xZPqepcmjMkCRRgBos/F8dLbnKS+VXyLIC03MByPGe+bRe0aVVnNVwqsTH8UKnAHtN49 7sSfWbYHwdBooZK1+gYPOMqUSwCVItC4BklIqXnVIoYB+SpENz7rxNM6UE/COi9npKM/ HT2vYCGDa/U0SAESJJc+DCpphrNuOsZgv9rF3g8xuE/doFMppDAC8vM/+ssXNuXyyvFW xDTzZ+ZTlPmnk2F9+AMTgLsPx5xnEMBqVyneSg58cHu9lij3FpB5btqCMJOwM0TDAC8f lkcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dXcKVQyGGZNut+nzOHUWn5swypLW9nww9IuGeZxhzJI=; b=VcEA6pyjqzfOuhogHGTEKTwYpJTwX8znFCiponL8bKzNwgBalMHKB6eni42LMou6bq nb2kzLFlZEgZ/ARrK5QFhS3pvLx849vpXFGPft1bzwfefUUSucY/zms3UCtj405oIYiO oz0NlDjIQB3qZhOOc00KDobauhHMZUv4FgyC1NBrmQ2d+60BXHXlqfOtk3cDfHa8HN8f qu5wn53P4OT9iTVdm3SQMeYgXffIGIoXZ/aHAdFmuSBrgk3be9loqh3m9/ly+hjVwfwl BZkjjUzYAaZxdD9vDpv8mooDsO95iLTF6IBoI7IZByUmJZ91ZX/M8NAmeMd45viFqlLy 6npw== X-Gm-Message-State: AOAM533qXBZldYTIKWoAVmZNjp7BkeIZn4ddFcNo/ivik36q1WXm9CRh 9EYXzJwhAK9nwNyHqnhdTOtuAe5uNauK00m95FQ= X-Google-Smtp-Source: ABdhPJzfB4fpET3tg/Ya7DUh1hqKudfFluxcFhErqZAPV2dKPZLqxVVWjpxindtbisa4QCR1j6M5Tg== X-Received: by 2002:a1c:9d85:: with SMTP id g127mr6001514wme.161.1615432551868; Wed, 10 Mar 2021 19:15:51 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 2/9] block: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:31 +0200 Message-Id: <20210311031538.5325-3-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:49 -0500 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 , Mahmoud Mandour , "open list:CURL" , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Replaced various qemu_mutex_lock/qemu_mutex_unlock calls with lock guard macros (QEMU_LOCK_GUARD() and WITH_QEMU_LOCK_GUARD). This slightly simplifies the code by eliminating calls to qemu_mutex_unlock and eliminates goto paths. Signed-off-by: Mahmoud Mandour Acked-by: Eric Blake Reviewed-by: Vladimir Sementsov-Ogievskiy --- block/curl.c | 13 ++-- block/nbd.c | 188 ++++++++++++++++++++++++--------------------------- 2 files changed, 95 insertions(+), 106 deletions(-) diff --git a/block/curl.c b/block/curl.c index 4ff895df8f..56a217951a 100644 --- a/block/curl.c +++ b/block/curl.c @@ -832,12 +832,12 @@ static void curl_setup_preadv(BlockDriverState *bs, C= URLAIOCB *acb) uint64_t start =3D acb->offset; uint64_t end; =20 - qemu_mutex_lock(&s->mutex); + QEMU_LOCK_GUARD(&s->mutex); =20 // In case we have the requested data already (e.g. read-ahead), // we can just call the callback and be done. if (curl_find_buf(s, start, acb->bytes, acb)) { - goto out; + return; } =20 // No cache found, so let's start a new request @@ -852,7 +852,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CUR= LAIOCB *acb) if (curl_init_state(s, state) < 0) { curl_clean_state(state); acb->ret =3D -EIO; - goto out; + return; } =20 acb->start =3D 0; @@ -867,7 +867,7 @@ static void curl_setup_preadv(BlockDriverState *bs, CUR= LAIOCB *acb) if (state->buf_len && state->orig_buf =3D=3D NULL) { curl_clean_state(state); acb->ret =3D -ENOMEM; - goto out; + return; } state->acb[0] =3D acb; =20 @@ -880,14 +880,11 @@ static void curl_setup_preadv(BlockDriverState *bs, C= URLAIOCB *acb) acb->ret =3D -EIO; =20 curl_clean_state(state); - goto out; + return; } =20 /* Tell curl it needs to kick things off */ curl_multi_socket_action(s->multi, CURL_SOCKET_TIMEOUT, 0, &running); - -out: - qemu_mutex_unlock(&s->mutex); } =20 static int coroutine_fn curl_co_preadv(BlockDriverState *bs, diff --git a/block/nbd.c b/block/nbd.c index c26dc5a54f..28ba7aad61 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -407,27 +407,25 @@ static void *connect_thread_func(void *opaque) thr->sioc =3D NULL; } =20 - qemu_mutex_lock(&thr->mutex); - - switch (thr->state) { - case CONNECT_THREAD_RUNNING: - thr->state =3D ret < 0 ? CONNECT_THREAD_FAIL : CONNECT_THREAD_SUCC= ESS; - if (thr->bh_ctx) { - aio_bh_schedule_oneshot(thr->bh_ctx, thr->bh_func, thr->bh_opa= que); - - /* play safe, don't reuse bh_ctx on further connection attempt= s */ - thr->bh_ctx =3D NULL; + WITH_QEMU_LOCK_GUARD(&thr->mutex) { + switch (thr->state) { + case CONNECT_THREAD_RUNNING: + thr->state =3D ret < 0 ? CONNECT_THREAD_FAIL : CONNECT_THREAD_= SUCCESS; + if (thr->bh_ctx) { + aio_bh_schedule_oneshot(thr->bh_ctx, thr->bh_func, thr->bh= _opaque); + + /* play safe, don't reuse bh_ctx on further connection att= empts */ + thr->bh_ctx =3D NULL; + } + break; + case CONNECT_THREAD_RUNNING_DETACHED: + do_free =3D true; + break; + default: + abort(); } - break; - case CONNECT_THREAD_RUNNING_DETACHED: - do_free =3D true; - break; - default: - abort(); } =20 - qemu_mutex_unlock(&thr->mutex); - if (do_free) { nbd_free_connect_thread(thr); } @@ -443,36 +441,33 @@ nbd_co_establish_connection(BlockDriverState *bs, Err= or **errp) BDRVNBDState *s =3D bs->opaque; NBDConnectThread *thr =3D s->connect_thread; =20 - qemu_mutex_lock(&thr->mutex); - - switch (thr->state) { - case CONNECT_THREAD_FAIL: - case CONNECT_THREAD_NONE: - error_free(thr->err); - thr->err =3D NULL; - thr->state =3D CONNECT_THREAD_RUNNING; - qemu_thread_create(&thread, "nbd-connect", - connect_thread_func, thr, QEMU_THREAD_DETACHED); - break; - case CONNECT_THREAD_SUCCESS: - /* Previous attempt finally succeeded in background */ - thr->state =3D CONNECT_THREAD_NONE; - s->sioc =3D thr->sioc; - thr->sioc =3D NULL; - yank_register_function(BLOCKDEV_YANK_INSTANCE(bs->node_name), - nbd_yank, bs); - qemu_mutex_unlock(&thr->mutex); - return 0; - case CONNECT_THREAD_RUNNING: - /* Already running, will wait */ - break; - default: - abort(); - } - - thr->bh_ctx =3D qemu_get_current_aio_context(); + WITH_QEMU_LOCK_GUARD(&thr->mutex) { + switch (thr->state) { + case CONNECT_THREAD_FAIL: + case CONNECT_THREAD_NONE: + error_free(thr->err); + thr->err =3D NULL; + thr->state =3D CONNECT_THREAD_RUNNING; + qemu_thread_create(&thread, "nbd-connect", + connect_thread_func, thr, QEMU_THREAD_DETAC= HED); + break; + case CONNECT_THREAD_SUCCESS: + /* Previous attempt finally succeeded in background */ + thr->state =3D CONNECT_THREAD_NONE; + s->sioc =3D thr->sioc; + thr->sioc =3D NULL; + yank_register_function(BLOCKDEV_YANK_INSTANCE(bs->node_name), + nbd_yank, bs); + return 0; + case CONNECT_THREAD_RUNNING: + /* Already running, will wait */ + break; + default: + abort(); + } =20 - qemu_mutex_unlock(&thr->mutex); + thr->bh_ctx =3D qemu_get_current_aio_context(); + } =20 =20 /* @@ -486,46 +481,45 @@ nbd_co_establish_connection(BlockDriverState *bs, Err= or **errp) s->wait_connect =3D true; qemu_coroutine_yield(); =20 - qemu_mutex_lock(&thr->mutex); =20 - switch (thr->state) { - case CONNECT_THREAD_SUCCESS: - case CONNECT_THREAD_FAIL: - thr->state =3D CONNECT_THREAD_NONE; - error_propagate(errp, thr->err); - thr->err =3D NULL; - s->sioc =3D thr->sioc; - thr->sioc =3D NULL; - if (s->sioc) { - yank_register_function(BLOCKDEV_YANK_INSTANCE(bs->node_name), - nbd_yank, bs); - } - ret =3D (s->sioc ? 0 : -1); - break; - case CONNECT_THREAD_RUNNING: - case CONNECT_THREAD_RUNNING_DETACHED: - /* - * Obviously, drained section wants to start. Report the attempt as - * failed. Still connect thread is executing in background, and its - * result may be used for next connection attempt. - */ - ret =3D -1; - error_setg(errp, "Connection attempt cancelled by other operation"= ); - break; + WITH_QEMU_LOCK_GUARD(&thr->mutex) { + switch (thr->state) { + case CONNECT_THREAD_SUCCESS: + case CONNECT_THREAD_FAIL: + thr->state =3D CONNECT_THREAD_NONE; + error_propagate(errp, thr->err); + thr->err =3D NULL; + s->sioc =3D thr->sioc; + thr->sioc =3D NULL; + if (s->sioc) { + yank_register_function(BLOCKDEV_YANK_INSTANCE(bs->node_nam= e), + nbd_yank, bs); + } + ret =3D (s->sioc ? 0 : -1); + break; + case CONNECT_THREAD_RUNNING: + case CONNECT_THREAD_RUNNING_DETACHED: + /* + * Obviously, drained section wants to start. Report the attem= pt as + * failed. Still connect thread is executing in background, an= d its + * result may be used for next connection attempt. + */ + ret =3D -1; + error_setg(errp, "Connection attempt cancelled by other operat= ion"); + break; =20 - case CONNECT_THREAD_NONE: - /* - * Impossible. We've seen this thread running. So it should be - * running or at least give some results. - */ - abort(); + case CONNECT_THREAD_NONE: + /* + * Impossible. We've seen this thread running. So it should be + * running or at least give some results. + */ + abort(); =20 - default: - abort(); + default: + abort(); + } } =20 - qemu_mutex_unlock(&thr->mutex); - return ret; } =20 @@ -546,25 +540,23 @@ static void nbd_co_establish_connection_cancel(BlockD= riverState *bs, bool wake =3D false; bool do_free =3D false; =20 - qemu_mutex_lock(&thr->mutex); - - if (thr->state =3D=3D CONNECT_THREAD_RUNNING) { - /* We can cancel only in running state, when bh is not yet schedul= ed */ - thr->bh_ctx =3D NULL; - if (s->wait_connect) { - s->wait_connect =3D false; - wake =3D true; - } - if (detach) { - thr->state =3D CONNECT_THREAD_RUNNING_DETACHED; - s->connect_thread =3D NULL; + WITH_QEMU_LOCK_GUARD(&thr->mutex) { + if (thr->state =3D=3D CONNECT_THREAD_RUNNING) { + /* We can cancel only in running state, when bh is not yet sch= eduled */ + thr->bh_ctx =3D NULL; + if (s->wait_connect) { + s->wait_connect =3D false; + wake =3D true; + } + if (detach) { + thr->state =3D CONNECT_THREAD_RUNNING_DETACHED; + s->connect_thread =3D NULL; + } + } else if (detach) { + do_free =3D true; } - } else if (detach) { - do_free =3D true; } =20 - qemu_mutex_unlock(&thr->mutex); - if (do_free) { nbd_free_connect_thread(thr); s->connect_thread =3D NULL; --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615454956; cv=none; d=zohomail.com; s=zohoarc; b=d5Iv7x+acAJYp1kGc2JtI0cDTeG/ikHiKS0S3cbLUVSBmoz3nEz0HkilfXYJdfdP4BfAbRPFDmAUSEdZfUFteN29latdDTF5ruRHsYFG74Od+Ps5Yuu4Z7/JIhMZurV3Y1rJ6M/AMSsUxzanHHyu7X98CO5MtI5vXY8h4s+Pg0M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615454956; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9OkLTf4CKiZWR10cK4aZAq5cEfHZTpDd8uL6zLXXLlU=; b=hETbH9LQFpuKEwpAAlrH+atVjfJMPmJIKvkZTpSL3EuHcAwj9sRVdEoVXsXBru3PmPY63/5jDuXhQZhMADD/QyY1g1y785ZAluFeMTH2W+LYCVJaUHZkvWuhSsK2lLYuljja4e1B5fQlpyIbOCF2xAun0Q07VY23fhJQDB06Hoc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615454956813212.1817328185192; Thu, 11 Mar 2021 01:29:16 -0800 (PST) Received: from localhost ([::1]:42088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHd5-0003I2-PM for importer@patchew.org; Thu, 11 Mar 2021 04:29:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnp-0001Mh-Gp for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:57 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:36241) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnm-0000gO-MB for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:57 -0500 Received: by mail-wr1-x429.google.com with SMTP id y16so180946wrw.3 for ; Wed, 10 Mar 2021 19:15:54 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9OkLTf4CKiZWR10cK4aZAq5cEfHZTpDd8uL6zLXXLlU=; b=qDznDRarfurg9MAanimfm6GqDSWZvc0CLRpqo//qBHeC3uI8ISboAzNvtDShOjYDwR YsOSAWXWGXPHDGh8fqufn2jo7VNTDEoBXo7lMaSY4xJp4meS+pI3V90cEkVEg99gB383 zV6rZ/px5W7DRpyEGlgGWyKC9JFbvayyiiFJBaq4SL3AxTNtSByE0epr4FhfYSeU89wF oSKHFYmOg7S6qHmnEmgGKQhAKAj1DaQPtCQCs+wKqBY2DQfX18694s0MIneutm6iLSJm fOh9AL/gxOnBg112Pv65h0tfkWtuysVKQmGkkQQdW9NzPOqoP/vw0jA474Lmp7KCb9gV 5rgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9OkLTf4CKiZWR10cK4aZAq5cEfHZTpDd8uL6zLXXLlU=; b=Ty3C0rB1bNkRf1GfoBkPPKRdaf/Ax6IZ0h440yJWMUFZ513OgoyXxg/AzkyBvyEMKW WuFw9swAeFRtOiSxSO3C3qAfPGj/wN5S/jc8V5kdhLfo0Jqxm4kudcWVK1b1JBlJjzc+ 4JhPX+eBBKdxbo8I8k8fVuzs3ZLmrBoCVWYSiWKmEQeFBZIIzW6zqfpE43HcO4TMhOm6 jT01rLOViypZaVUjD4pOOgEaylTaf9pgb3a6LKEvmWSbf8btk9GfM/xDIfQ6Q+pmkPpQ 8Q2SOUvjJK1ZftBTAvN/zRXuE2FfevdLEoOIzbWCT4n6PMFKpgY+S+swp2zihdyADyRz cpTw== X-Gm-Message-State: AOAM531eg/O34oFp2LsSFTtg5XkL7sF5+cj7fhQUL4UnyELjGPD1WgL4 vW5AElLsINKs2NxY4GnrErFIxcEjElHUrPL7iiE= X-Google-Smtp-Source: ABdhPJylLvdD5K3XFIHCVF2MfTAPAUC/giOIHNUr+BebrXJ88SfiHNBsY+D5vwFTZqiJnvHV77n7lA== X-Received: by 2002:a5d:4e85:: with SMTP id e5mr6543296wru.218.1615432552969; Wed, 10 Mar 2021 19:15:52 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 3/9] char: Replaced a qemu_mutex_lock with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:32 +0200 Message-Id: <20210311031538.5325-4-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=ma.mandourr@gmail.com; helo=mail-wr1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:51 -0500 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: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Mahmoud Mandour , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Removed a pair of qemu_mutex_lock and its respective qemu_mutex_unlock and used a QEMU_LOCK_GUARD instead. This improves readability by removing the call to qemu_mutex_unlock. Signed-off-by: Mahmoud Mandour Reviewed-by: Marc-Andr=C3=A9 Lureau --- chardev/char.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/chardev/char.c b/chardev/char.c index 97cafd6849..2b0bc1325c 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -115,7 +115,7 @@ static int qemu_chr_write_buffer(Chardev *s, int res =3D 0; *offset =3D 0; =20 - qemu_mutex_lock(&s->chr_write_lock); + QEMU_LOCK_GUARD(&s->chr_write_lock); while (*offset < len) { retry: res =3D cc->chr_write(s, buf + *offset, len - *offset); @@ -153,7 +153,6 @@ static int qemu_chr_write_buffer(Chardev *s, */ qemu_chr_write_log(s, buf, len); } - qemu_mutex_unlock(&s->chr_write_lock); =20 return res; } --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615455094; cv=none; d=zohomail.com; s=zohoarc; b=Nlznsy837ox05+ItQ6+OQQ45WpxCI7fdOg5dUzGArJh/PmHeL3SIZR4uyIQ3FtcG9Adn/I4s15Rp2hOIQOaq0vJwM6AUmV9f0+s1KjhXlDdORY2k83TFbckpOMTxl2od+cVX32KaioEuGrmiwwYGeANvAh+kV+KD+pXQvPKuYJc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615455094; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4hPYLRC98/V0CrldtlN5ml4tC4ItQ/Hc4HiTL1mRUx0=; b=Rsj5lKA8hfgdQUxLylYbBkoIRlXYsRFlXv4nz1fTYTWjr7DFTkGjefS06hFA8pdsiT0BXk8W5L2R7yUEptjXYk8xGDz485odu+NnqvITh056P52Vi+sY/6RMEBlkKI5UFICaTb9SE2J3r3wbDPAVERsBD+ya/DeGt8lTFiMYQm0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615455094613411.45267341261535; Thu, 11 Mar 2021 01:31:34 -0800 (PST) Received: from localhost ([::1]:48726 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHfJ-00064B-J5 for importer@patchew.org; Thu, 11 Mar 2021 04:31:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56798) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnr-0001OT-0i for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:59 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:54797) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnp-0000i5-1t for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:58 -0500 Received: by mail-wm1-x334.google.com with SMTP id g8so406330wmd.4 for ; Wed, 10 Mar 2021 19:15:56 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4hPYLRC98/V0CrldtlN5ml4tC4ItQ/Hc4HiTL1mRUx0=; b=DqWVV3WzUaufIlIBPpHRDb+UOnahPrnSYQz2fGYLcQ7naDprcL/fcTgxbO/OZHmu2N IxSwUxolXfSy4++1bNR1SLBZGl97vR4xAKsjWmrSeSx8X1cFMZeuQ4qUU3w8E4MJuzW2 bhq0q5FIHQZvRmBSLcyPk3y+CK/KDjn71P/syYUM5QT7LXGL42EOFuezR/hlrf5/DZVI vGKJ+lzRqkq4TQKWUEYU8ci0gJbtAjzoCKMuByYzEftkAg06brJmBxP2T0MbTq72L5ew 9vz7Qyip6F6f7eDCfXpEoExE6P5RcSfgVIwCpzgs6ZxQTvyntbf7dJRrULAkAcZj0WDr BYZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4hPYLRC98/V0CrldtlN5ml4tC4ItQ/Hc4HiTL1mRUx0=; b=GGymZb9TuiR6QResfFRuPrDXxn/NuESzEu3W4cDNVvTa0GxHD1wbOy/M/eMbZ5Vu/E ebeI1X2Ph5TAwiGgGRC5QXZUlnQp2E5LWeri/q7ozisvS2yi0o7Ig2JdiIdpyE20ytrr MGuQPaLMO9nghuOOxZu4pJ+Og6xxYSkmC3GUVvZ+mvYZywujDrisQaTthmf9+dCUyMBr q6HpWG8Lx5j4yIFNNspRGg8WMVT22TYMC3CZ88N8dsyHwTdjdir72rGGcmBeXMVfbQK0 5ROEH6Cw7kRzWTjpDTYAZ3gN15iWaJhJgaeUJv3O1utRSySOoBb9CYYBD0aMlXNkdUB8 7roQ== X-Gm-Message-State: AOAM532xvS/qsLeufDvUUvD0DCegP3wPybXpcszGmvPZ99Ja71veiNPJ yGHFJkiwf6uDmiE6TJx8oILgHBoScPVDxl4rwkQ= X-Google-Smtp-Source: ABdhPJxKgk07ohn5Al6DHslhm1V8A60Ybe5DJbhwem5UsI1PYTnIbW17FRuzyNzdboFLAWbsgLpXQA== X-Received: by 2002:a1c:3c8b:: with SMTP id j133mr6047926wma.164.1615432554064; Wed, 10 Mar 2021 19:15:54 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 4/9] util: Replaced qemu_mutex_lock with QEMU_LOCK_GUARDs Date: Thu, 11 Mar 2021 05:15:33 +0200 Message-Id: <20210311031538.5325-5-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:52 -0500 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: Mahmoud Mandour , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Removed various qemu_mutex_lock calls and their respective qemu_mutex_unlock calls and used QEMU_LOCK_GUARD. This simplifies the code by eliminating various goto paths and removes qemu_mutex_unlock calls. Signed-off-by: Mahmoud Mandour --- util/filemonitor-inotify.c | 24 ++++++++---------------- util/vfio-helpers.c | 23 ++++++++++------------- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/util/filemonitor-inotify.c b/util/filemonitor-inotify.c index 2c45f7f176..0e1a196088 100644 --- a/util/filemonitor-inotify.c +++ b/util/filemonitor-inotify.c @@ -59,10 +59,9 @@ static void qemu_file_monitor_watch(void *arg) int used =3D 0; int len; =20 - qemu_mutex_lock(&mon->lock); + QEMU_LOCK_GUARD(&mon->lock); =20 if (mon->fd =3D=3D -1) { - qemu_mutex_unlock(&mon->lock); return; } =20 @@ -72,11 +71,11 @@ static void qemu_file_monitor_watch(void *arg) if (errno !=3D EAGAIN) { error_report("Failure monitoring inotify FD '%s'," "disabling events", strerror(errno)); - goto cleanup; + return; } =20 /* no more events right now */ - goto cleanup; + return; } =20 /* Loop over all events in the buffer */ @@ -142,9 +141,6 @@ static void qemu_file_monitor_watch(void *arg) } } } - - cleanup: - qemu_mutex_unlock(&mon->lock); } =20 =20 @@ -250,7 +246,8 @@ qemu_file_monitor_add_watch(QFileMonitor *mon, QFileMonitorWatch watch; int64_t ret =3D -1; =20 - qemu_mutex_lock(&mon->lock); + QEMU_LOCK_GUARD(&mon->lock); + dir =3D g_hash_table_lookup(mon->dirs, dirpath); if (!dir) { int rv =3D inotify_add_watch(mon->fd, dirpath, @@ -259,7 +256,7 @@ qemu_file_monitor_add_watch(QFileMonitor *mon, =20 if (rv < 0) { error_setg_errno(errp, errno, "Unable to watch '%s'", dirpath); - goto cleanup; + return ret; } =20 trace_qemu_file_monitor_enable_watch(mon, dirpath, rv); @@ -290,8 +287,6 @@ qemu_file_monitor_add_watch(QFileMonitor *mon, =20 ret =3D watch.id; =20 - cleanup: - qemu_mutex_unlock(&mon->lock); return ret; } =20 @@ -303,13 +298,13 @@ void qemu_file_monitor_remove_watch(QFileMonitor *mon, QFileMonitorDir *dir; gsize i; =20 - qemu_mutex_lock(&mon->lock); + QEMU_LOCK_GUARD(&mon->lock); =20 trace_qemu_file_monitor_remove_watch(mon, dirpath, id); =20 dir =3D g_hash_table_lookup(mon->dirs, dirpath); if (!dir) { - goto cleanup; + return; } =20 for (i =3D 0; i < dir->watches->len; i++) { @@ -333,7 +328,4 @@ void qemu_file_monitor_remove_watch(QFileMonitor *mon, qemu_set_fd_handler(mon->fd, NULL, NULL, NULL); } } - - cleanup: - qemu_mutex_unlock(&mon->lock); } diff --git a/util/vfio-helpers.c b/util/vfio-helpers.c index 97dfa3fd57..dc05755ef1 100644 --- a/util/vfio-helpers.c +++ b/util/vfio-helpers.c @@ -748,41 +748,41 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, s= ize_t size, assert(QEMU_PTR_IS_ALIGNED(host, qemu_real_host_page_size)); assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size)); trace_qemu_vfio_dma_map(s, host, size, temporary, iova); - qemu_mutex_lock(&s->lock); + QEMU_LOCK_GUARD(&s->lock); mapping =3D qemu_vfio_find_mapping(s, host, &index); if (mapping) { iova0 =3D mapping->iova + ((uint8_t *)host - (uint8_t *)mapping->h= ost); } else { if (s->high_water_mark - s->low_water_mark + 1 < size) { ret =3D -ENOMEM; - goto out; + return ret; } if (!temporary) { if (qemu_vfio_find_fixed_iova(s, size, &iova0)) { ret =3D -ENOMEM; - goto out; + return ret; } =20 mapping =3D qemu_vfio_add_mapping(s, host, size, index + 1, io= va0); if (!mapping) { ret =3D -ENOMEM; - goto out; + return ret; } assert(qemu_vfio_verify_mappings(s)); ret =3D qemu_vfio_do_mapping(s, host, size, iova0); if (ret) { qemu_vfio_undo_mapping(s, mapping, NULL); - goto out; + return ret; } qemu_vfio_dump_mappings(s); } else { if (qemu_vfio_find_temp_iova(s, size, &iova0)) { ret =3D -ENOMEM; - goto out; + return ret; } ret =3D qemu_vfio_do_mapping(s, host, size, iova0); if (ret) { - goto out; + return ret; } } } @@ -790,8 +790,7 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, siz= e_t size, if (iova) { *iova =3D iova0; } -out: - qemu_mutex_unlock(&s->lock); + return ret; } =20 @@ -826,14 +825,12 @@ void qemu_vfio_dma_unmap(QEMUVFIOState *s, void *host) } =20 trace_qemu_vfio_dma_unmap(s, host); - qemu_mutex_lock(&s->lock); + QEMU_LOCK_GUARD(&s->lock); m =3D qemu_vfio_find_mapping(s, host, &index); if (!m) { - goto out; + return; } qemu_vfio_undo_mapping(s, m, NULL); -out: - qemu_mutex_unlock(&s->lock); } =20 static void qemu_vfio_reset(QEMUVFIOState *s) --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615454924; cv=none; d=zohomail.com; s=zohoarc; b=ZuNtIpC264EVIF8hGHu2vZkcYsTM45tIrTzeLSqg+dASA8ng0WHg1D2oFlfcQD1qUbqd6pxYC28na0s1D90rsjrEiechuQccVGUJqfaiAjAGqM2axaxpI8uMx1AHtqnPmTUMLdD1d9jxC4kDGbjQZYsdim6OsYlGv2woBYIyHfM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615454924; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UF2uIEk2a+ZLtiqF+PRF7HpxKroPVBJ9bM3hn+fhcM0=; b=PK/a8zd003h62bajQ8fuWhSwWOXuDBHSP2irRPx4/yrzQjuzHPRwwQD04Hvw/QoXDI4nz3STlrM3wUdaP77hGl1e5HguexuGHL442WHWF366a3id3ZK1KFUrbUd/spidZ1GexBHLUQmeF1E+vC71xXP0wxWSc7beRsIpXzd3hjI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615454924270294.5143182037058; Thu, 11 Mar 2021 01:28:44 -0800 (PST) Received: from localhost ([::1]:40872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHcZ-0002mn-91 for importer@patchew.org; Thu, 11 Mar 2021 04:28:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnq-0001OC-Sk for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:58 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:53802) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBno-0000i3-V7 for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:58 -0500 Received: by mail-wm1-x32f.google.com with SMTP id g20so406514wmk.3 for ; Wed, 10 Mar 2021 19:15:56 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UF2uIEk2a+ZLtiqF+PRF7HpxKroPVBJ9bM3hn+fhcM0=; b=p7r8dUNkzKckPl+pLRABtoFa1fJbcoI/OZjUiydMahx/Z2ZbFuX+0b1z5GGi9+ADur m0wfbB5GghB96y9fHussnLVzTpe+97yhaxuaZyb74b6O0dCVp+Pt4rsgW+dPS8FA7Wjg ncm6bmwX6XWq2e+lnoILOpzaPQXjp3nDkwyIzM6eQiSSxOOI5//XDStbmGqPuepqivyv uDvkazWvMtaluVTo8Mi3XzvQb5VKkLhlc4FDDfWXeJHrdBabXE5GnBql5zz12lOHdfMF 1B5jzu+OPAY7IXo/Nn9hnD12npKmAceUvheXMeXHJH00SIjc/VEsmg+QECON2v6UobZj pzFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UF2uIEk2a+ZLtiqF+PRF7HpxKroPVBJ9bM3hn+fhcM0=; b=Ot7H326fm97vNQ2WphSpY/LmuaBLJuJ65kq2TNKqr2BKIA6vCqdFujscAMAoqMrCjE UpkviehI737VAYw3KAmJl8keJgJpD4sz29d3dMdYTlvbq6YctcyA5yiuJChlt58FyM1x 9EEHYGuE+H/NeDkJwu6L9lmqyGEQuNlBMbCURRINMV+X/6kxSTMIUhSQyAFWbJeeZWzU wq68w7IupVRmHbqIyemgzp+NsP87nYwnSXN2sfBvb4lejQpvkdpKN1o2p7HQDdOp/dwx +0U5P7dW8xxCovnzowtl5CvPfRV6sBxinuYLFtRwH/jdLvXs6jX2oawMHF/BxHqFCjJ7 5jMQ== X-Gm-Message-State: AOAM531RZGA5vpSCjoly05kLUVONfTupCKjSIbHSy52nh0jwNZe9sK5/ aQrj4STGfShH0xTS80/nOJIsOfWcpb8TrLPi8xQ= X-Google-Smtp-Source: ABdhPJzkMbMUsyT4HZ2GJfhA/mkSxRJne8Pg2hcHgamvknhMnPlMaW/4QY6emjnYWr1gKt2fhEswhg== X-Received: by 2002:a1c:a916:: with SMTP id s22mr6247078wme.82.1615432555262; Wed, 10 Mar 2021 19:15:55 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 5/9] monitor: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:34 +0200 Message-Id: <20210311031538.5325-6-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:53 -0500 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: Mahmoud Mandour , Markus Armbruster , "Dr. David Alan Gilbert" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Removed various qemu_mutex_lock and their respective qemu_mutex_unlock calls and used lock guard macros (QEMU_LOCK_GUARD and WITH_QEMU_LOCK_GUARD). This simplifies the code by eliminating qemu_mutex_unlock calls. Signed-off-by: Mahmoud Mandour Reviewed-by: Dr. David Alan Gilbert --- monitor/monitor.c | 8 ++------ monitor/qmp.c | 51 ++++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 33 deletions(-) diff --git a/monitor/monitor.c b/monitor/monitor.c index e94f532cf5..640496e562 100644 --- a/monitor/monitor.c +++ b/monitor/monitor.c @@ -349,7 +349,7 @@ monitor_qapi_event_queue_no_reenter(QAPIEvent event, QD= ict *qdict) evconf =3D &monitor_qapi_event_conf[event]; trace_monitor_protocol_event_queue(event, qdict, evconf->rate); =20 - qemu_mutex_lock(&monitor_lock); + QEMU_LOCK_GUARD(&monitor_lock); =20 if (!evconf->rate) { /* Unthrottled event */ @@ -391,8 +391,6 @@ monitor_qapi_event_queue_no_reenter(QAPIEvent event, QD= ict *qdict) timer_mod_ns(evstate->timer, now + evconf->rate); } } - - qemu_mutex_unlock(&monitor_lock); } =20 void qapi_event_emit(QAPIEvent event, QDict *qdict) @@ -447,7 +445,7 @@ static void monitor_qapi_event_handler(void *opaque) MonitorQAPIEventConf *evconf =3D &monitor_qapi_event_conf[evstate->eve= nt]; =20 trace_monitor_protocol_event_handler(evstate->event, evstate->qdict); - qemu_mutex_lock(&monitor_lock); + QEMU_LOCK_GUARD(&monitor_lock); =20 if (evstate->qdict) { int64_t now =3D qemu_clock_get_ns(monitor_get_event_clock()); @@ -462,8 +460,6 @@ static void monitor_qapi_event_handler(void *opaque) timer_free(evstate->timer); g_free(evstate); } - - qemu_mutex_unlock(&monitor_lock); } =20 static unsigned int qapi_event_throttle_hash(const void *key) diff --git a/monitor/qmp.c b/monitor/qmp.c index 2326bd7f9b..2b0308f933 100644 --- a/monitor/qmp.c +++ b/monitor/qmp.c @@ -76,7 +76,7 @@ static void monitor_qmp_cleanup_req_queue_locked(MonitorQ= MP *mon) =20 static void monitor_qmp_cleanup_queue_and_resume(MonitorQMP *mon) { - qemu_mutex_lock(&mon->qmp_queue_lock); + QEMU_LOCK_GUARD(&mon->qmp_queue_lock); =20 /* * Same condition as in monitor_qmp_dispatcher_co(), but before @@ -103,7 +103,6 @@ static void monitor_qmp_cleanup_queue_and_resume(Monito= rQMP *mon) monitor_resume(&mon->common); } =20 - qemu_mutex_unlock(&mon->qmp_queue_lock); } =20 void qmp_send_response(MonitorQMP *mon, const QDict *rsp) @@ -179,7 +178,7 @@ static QMPRequest *monitor_qmp_requests_pop_any_with_lo= ck(void) Monitor *mon; MonitorQMP *qmp_mon; =20 - qemu_mutex_lock(&monitor_lock); + QEMU_LOCK_GUARD(&monitor_lock); =20 QTAILQ_FOREACH(mon, &mon_list, entry) { if (!monitor_is_qmp(mon)) { @@ -205,8 +204,6 @@ static QMPRequest *monitor_qmp_requests_pop_any_with_lo= ck(void) QTAILQ_INSERT_TAIL(&mon_list, mon, entry); } =20 - qemu_mutex_unlock(&monitor_lock); - return req_obj; } =20 @@ -376,30 +373,30 @@ static void handle_qmp_command(void *opaque, QObject = *req, Error *err) req_obj->err =3D err; =20 /* Protect qmp_requests and fetching its length. */ - qemu_mutex_lock(&mon->qmp_queue_lock); + WITH_QEMU_LOCK_GUARD(&mon->qmp_queue_lock) { =20 - /* - * Suspend the monitor when we can't queue more requests after - * this one. Dequeuing in monitor_qmp_dispatcher_co() or - * monitor_qmp_cleanup_queue_and_resume() will resume it. - * Note that when OOB is disabled, we queue at most one command, - * for backward compatibility. - */ - if (!qmp_oob_enabled(mon) || - mon->qmp_requests->length =3D=3D QMP_REQ_QUEUE_LEN_MAX - 1) { - monitor_suspend(&mon->common); - } + /* + * Suspend the monitor when we can't queue more requests after + * this one. Dequeuing in monitor_qmp_dispatcher_co() or + * monitor_qmp_cleanup_queue_and_resume() will resume it. + * Note that when OOB is disabled, we queue at most one command, + * for backward compatibility. + */ + if (!qmp_oob_enabled(mon) || + mon->qmp_requests->length =3D=3D QMP_REQ_QUEUE_LEN_MAX - 1) { + monitor_suspend(&mon->common); + } =20 - /* - * Put the request to the end of queue so that requests will be - * handled in time order. Ownership for req_obj, req, - * etc. will be delivered to the handler side. - */ - trace_monitor_qmp_in_band_enqueue(req_obj, mon, - mon->qmp_requests->length); - assert(mon->qmp_requests->length < QMP_REQ_QUEUE_LEN_MAX); - g_queue_push_tail(mon->qmp_requests, req_obj); - qemu_mutex_unlock(&mon->qmp_queue_lock); + /* + * Put the request to the end of queue so that requests will be + * handled in time order. Ownership for req_obj, req, + * etc. will be delivered to the handler side. + */ + trace_monitor_qmp_in_band_enqueue(req_obj, mon, + mon->qmp_requests->length); + assert(mon->qmp_requests->length < QMP_REQ_QUEUE_LEN_MAX); + g_queue_push_tail(mon->qmp_requests, req_obj); + } =20 /* Kick the dispatcher routine */ if (!qatomic_xchg(&qmp_dispatcher_co_busy, true)) { --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615455108; cv=none; d=zohomail.com; s=zohoarc; b=lcXf4OQ4GK0cFwxNFFBf37v785Mnur+a+qdk2zSlPYfwmMbBIK2HKUuxBYcM2LOheu8u4O3DT2w3jZAy8qMNZ5m6LMsu70onZfU1Dhu1yksPBRsyZRGfYmvR5gCWDpo6X/U24BDyerHDhROFS7ucmwhOGWAa+7V/BKgN2qvOOKU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615455108; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GUQOQZlP87K1Umn6k57INBvTpMzcL3buE5B+mmdtO9Q=; b=hdl9nVseCNu8x0nnvFSi3FzoaEDcIWFLN+f+M3wpBB1rsk2lt00mjFSvKidVmViuqwyJVmz+GWmeWyOvIGcpOC/u1QumD90+TWVd+ikveIm0JtmCTqtdhgK2SyRD7bW6A6//ch2io7+ATP/nooslk0B3Vnr7dIsXMG9DbmVBBMo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615455108985702.4501973922258; Thu, 11 Mar 2021 01:31:48 -0800 (PST) Received: from localhost ([::1]:49890 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHfX-0006Wc-Bn for importer@patchew.org; Thu, 11 Mar 2021 04:31:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56808) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnr-0001PZ-Tr for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:59 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:38231) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnq-0000iS-5H for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:15:59 -0500 Received: by mail-wr1-x429.google.com with SMTP id d15so173447wrv.5 for ; Wed, 10 Mar 2021 19:15:57 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GUQOQZlP87K1Umn6k57INBvTpMzcL3buE5B+mmdtO9Q=; b=qnnorcA1HncUOUYdZJpiRMS4dcjf6RRTimVl6eTvQsxvgDM04hi/sFZqDe9MaXFbUB jPT+8hRlH7h3ejsPR/xcuC+G+YQHooc8pjB0URBGIF1xOGCR6OFsua4pqLdPAm9E7XKo cxgjoUUvOo0WC1GbBTx/uoLN26/RdV7Ha91Mec9+eBuSVkym4oubDjq/7jeXE7Jhz1Xe hyFq6M7lkS9VETvvy4227y5a2EYeE0bGmeqej4XtI4yXDxk25gSeiJUNyJA4M8WGEdEy 9sEDQn8mG+fTnHOSDTdW/IZKXD10JOOBzyJ8jdSYizHyqdLmwIpz3FELXwFl/S841zNy KSew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GUQOQZlP87K1Umn6k57INBvTpMzcL3buE5B+mmdtO9Q=; b=fCW3jkgif5/pVaz3foSo0+0moRNsYBrMf+jQpOORq2+IdBLnDBdIqN3TSE8SfDanQF F7r1qV3fDedPhdmHJUgp32yJMuBizJPz16hDjHJNttJjeGPKGo/1g6kJah5Oa6wbOGZH +TPw00APPfe6DYr6uw5JjLeZq93ebro2YDM7lhRc2lyI/pPti0X83F5Ueb2Zlrvn66Mo MmJqI2Ni7P79SfAZa13ingJp0bdz/yytr4HTeD2W71zCJgcxOnmpcbkN4SBJeX97beQM ilKlhc62xkQhjsjECs104K78MZYUQyPXXCj3usDuSQGpNj2Y3WxspiqWNliMcjkI8dHs 1F+g== X-Gm-Message-State: AOAM531J2MPC4DrT3ysPIDIUSQt02sUO41R8rV7777sLcbsreExLeg1T uxOQ/2pLDOiM7Vnddih88tqBWEB0A+A7SMU42bA= X-Google-Smtp-Source: ABdhPJw02TdJcauGe7gAXgJT1Z8mfk9jNMR0SmUtJyPOHQp3ox0URjWyb10kegogG4czGHVTUtlj0Q== X-Received: by 2002:adf:9043:: with SMTP id h61mr6347681wrh.216.1615432556502; Wed, 10 Mar 2021 19:15:56 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 6/9] migration: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:35 +0200 Message-Id: <20210311031538.5325-7-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=ma.mandourr@gmail.com; helo=mail-wr1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:25:17 -0500 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: Mahmoud Mandour , "Dr. David Alan Gilbert" , Juan Quintela Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Replaced various qemu_mutex_lock calls and their respective qemu_mutex_unlock calls with QEMU_LOCK_GUARD macro. This simplifies the code by eliminating the respective qemu_mutex_unlock calls. Signed-off-by: Mahmoud Mandour Reviewed-by: Dr. David Alan Gilbert --- migration/migration.c | 6 ++---- migration/ram.c | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/migration/migration.c b/migration/migration.c index a5ddf43559..36768391b6 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -323,7 +323,7 @@ static int migrate_send_rp_message(MigrationIncomingSta= te *mis, int ret =3D 0; =20 trace_migrate_send_rp_message((int)message_type, len); - qemu_mutex_lock(&mis->rp_mutex); + QEMU_LOCK_GUARD(&mis->rp_mutex); =20 /* * It's possible that the file handle got lost due to network @@ -331,7 +331,7 @@ static int migrate_send_rp_message(MigrationIncomingSta= te *mis, */ if (!mis->to_src_file) { ret =3D -EIO; - goto error; + return ret; } =20 qemu_put_be16(mis->to_src_file, (unsigned int)message_type); @@ -342,8 +342,6 @@ static int migrate_send_rp_message(MigrationIncomingSta= te *mis, /* It's possible that qemu file got error during sending */ ret =3D qemu_file_get_error(mis->to_src_file); =20 -error: - qemu_mutex_unlock(&mis->rp_mutex); return ret; } =20 diff --git a/migration/ram.c b/migration/ram.c index 72143da0ac..52537f14ac 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -819,7 +819,7 @@ static inline bool migration_bitmap_clear_dirty(RAMStat= e *rs, { bool ret; =20 - qemu_mutex_lock(&rs->bitmap_mutex); + QEMU_LOCK_GUARD(&rs->bitmap_mutex); =20 /* * Clear dirty bitmap if needed. This _must_ be called before we @@ -852,7 +852,6 @@ static inline bool migration_bitmap_clear_dirty(RAMStat= e *rs, if (ret) { rs->migration_dirty_pages--; } - qemu_mutex_unlock(&rs->bitmap_mutex); =20 return ret; } @@ -3275,7 +3274,7 @@ static void decompress_data_with_multi_threads(QEMUFi= le *f, int idx, thread_count; =20 thread_count =3D migrate_decompress_threads(); - qemu_mutex_lock(&decomp_done_lock); + QEMU_LOCK_GUARD(&decomp_done_lock); while (true) { for (idx =3D 0; idx < thread_count; idx++) { if (decomp_param[idx].done) { @@ -3295,7 +3294,6 @@ static void decompress_data_with_multi_threads(QEMUFi= le *f, qemu_cond_wait(&decomp_done_cond, &decomp_done_lock); } } - qemu_mutex_unlock(&decomp_done_lock); } =20 /* --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615455197; cv=none; d=zohomail.com; s=zohoarc; b=TYsxVgoHW6Wn/RA0asoLg0Wtanea5SScCIlTvWW7ueUKOXL2i4354nTqQgTpPmtgr2EYYkXE+8I4UYS3LP8HX6bfjJTEr/sUl7wDqxydYZQtYQmbLyRsz66kk4Y1bFS3+LumDljnzga2B6kF6uKRk/y+EwOVAvfB4nKdEH7W5+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615455197; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zX70OthGxIYe1y3qnfX85F6yKaVEwpmYazrdXdQQtp0=; b=RVt20c/DhFbWfZiX8mggLO/CDQsJMpcfG6j6sUEmAdUNdVrqYANoenNJp2LeHOozkUp9hE82ycxFU6Mu9Sog9QeAcKqluvU5oRa+6FL12hFAxp41RRgb/GlJlJmdTNBaxYpZidNBinDNsqcE+coe04R5EgXmjjaS+O5GapKmrWY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615455197952271.90981914637234; Thu, 11 Mar 2021 01:33:17 -0800 (PST) Received: from localhost ([::1]:53532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHgy-00082K-Sd for importer@patchew.org; Thu, 11 Mar 2021 04:33:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56828) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBnx-0001QU-2i for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:08 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:54799) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnr-0000in-6F for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:04 -0500 Received: by mail-wm1-x336.google.com with SMTP id g8so406361wmd.4 for ; Wed, 10 Mar 2021 19:15:58 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zX70OthGxIYe1y3qnfX85F6yKaVEwpmYazrdXdQQtp0=; b=ubFgcdZQLGlwqX9RQiPp7Ws5+h6kj5hGZK0+hOXZCo87O8F/09LG9g8v8RRZYMC/88 5WLK0hG2JH7vszrcU8yuH5DJckqP70JJlXPZjgYUv46Ko4Pvsu+PJRH1klmmXeDHn/KG wSlcsPgjaCLIoFx4ToQND8+cEnsXQaizCY6s5UefD6pwrDLgfNmwPqywjy2UNdjcBfyi 30PcHHFScPmPHPlt/Q+8tKDCU+TdOLFZoyEoXoxnX+L+0/apRvq/XkHU3FsRgUrWVB2U l4iHzVE9UmYuRk4prUuoAeuunZXw3sWsBnVDIsQnX5Rwb3vpeNDF9dYL6noVp1ugKzBE dTHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zX70OthGxIYe1y3qnfX85F6yKaVEwpmYazrdXdQQtp0=; b=gi3CGKVy5bqBZ0Wr53nQCGEHmaASWCd7NzpS68dCd2pPwOKwsHj8lZA7NXyzlzjJjO M50jvcNy/3HZaafBzj69NYA1rai5yqVxnsL8rR6fwU/fwQcPtYRyTuHnwQ3MmN6Agcsq U5vhjy1MLtWWOxKKYtjtehh/ULXH/kTVc7n6ml7s4F7qcyROSbIGt4GUVNmfLCQNkUXO FAAW5MInHoT1tND77dalMhoyQXO7GlwF9yqHnUmZt1HHEPHZWTridD/H1tMxan1n01Vv ZWQMY5TwYHuQu/pD5S9WJ3uL7Q/jfevL1xDZyPYs7wb7M8xlZdN2EZOFsmp+J0I+vcii gRAw== X-Gm-Message-State: AOAM530vbzuXJHph326D3mvb8pXA/SHUIloIk0SUd7rLjXVuZmdVfgl+ RD5gfVCpIv5MbYSfuJGvfJ+Lp6aph0batKTzsR0= X-Google-Smtp-Source: ABdhPJws40Y9qCORX9Wz0U3b9jyW66y8t6Rhr7/2JxnyS1eP+VG8OJ1AFGnZuvMdNDdTnsbJNh4RXA== X-Received: by 2002:a1c:a791:: with SMTP id q139mr5968056wme.20.1615432557640; Wed, 10 Mar 2021 19:15:57 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 7/9] virtio-iommu: Replaced qemu_mutex_lock calls with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:36 +0200 Message-Id: <20210311031538.5325-8-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x336.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:24:56 -0500 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: Eric Auger , Mahmoud Mandour , "Michael S. Tsirkin" Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" In various places, qemu_mutex_lock calls and their respective calls to qemu_mutex_unlock are replaced with QEMU_LOCK_GUARD macros. This simplifies the code by removing the calls to qemu_mutex_unlock and eliminates goto paths. Signed-off-by: Mahmoud Mandour --- hw/virtio/virtio-iommu.c | 78 +++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 42 deletions(-) diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c index c2883a2f6c..46a4cc0801 100644 --- a/hw/virtio/virtio-iommu.c +++ b/hw/virtio/virtio-iommu.c @@ -604,37 +604,36 @@ static void virtio_iommu_handle_command(VirtIODevice = *vdev, VirtQueue *vq) tail.status =3D VIRTIO_IOMMU_S_DEVERR; goto out; } - qemu_mutex_lock(&s->mutex); - switch (head.type) { - case VIRTIO_IOMMU_T_ATTACH: - tail.status =3D virtio_iommu_handle_attach(s, iov, iov_cnt); - break; - case VIRTIO_IOMMU_T_DETACH: - tail.status =3D virtio_iommu_handle_detach(s, iov, iov_cnt); - break; - case VIRTIO_IOMMU_T_MAP: - tail.status =3D virtio_iommu_handle_map(s, iov, iov_cnt); - break; - case VIRTIO_IOMMU_T_UNMAP: - tail.status =3D virtio_iommu_handle_unmap(s, iov, iov_cnt); - break; - case VIRTIO_IOMMU_T_PROBE: - { - struct virtio_iommu_req_tail *ptail; + WITH_QEMU_LOCK_GUARD(&s->mutex) { + switch (head.type) { + case VIRTIO_IOMMU_T_ATTACH: + tail.status =3D virtio_iommu_handle_attach(s, iov, iov_cnt= ); + break; + case VIRTIO_IOMMU_T_DETACH: + tail.status =3D virtio_iommu_handle_detach(s, iov, iov_cnt= ); + break; + case VIRTIO_IOMMU_T_MAP: + tail.status =3D virtio_iommu_handle_map(s, iov, iov_cnt); + break; + case VIRTIO_IOMMU_T_UNMAP: + tail.status =3D virtio_iommu_handle_unmap(s, iov, iov_cnt); + break; + case VIRTIO_IOMMU_T_PROBE: + { + struct virtio_iommu_req_tail *ptail; =20 - output_size =3D s->config.probe_size + sizeof(tail); - buf =3D g_malloc0(output_size); + output_size =3D s->config.probe_size + sizeof(tail); + buf =3D g_malloc0(output_size); =20 - ptail =3D (struct virtio_iommu_req_tail *) - (buf + s->config.probe_size); - ptail->status =3D virtio_iommu_handle_probe(s, iov, iov_cnt, b= uf); - break; - } - default: - tail.status =3D VIRTIO_IOMMU_S_UNSUPP; + ptail =3D (struct virtio_iommu_req_tail *) + (buf + s->config.probe_size); + ptail->status =3D virtio_iommu_handle_probe(s, iov, iov_cn= t, buf); + break; + } + default: + tail.status =3D VIRTIO_IOMMU_S_UNSUPP; + } } - qemu_mutex_unlock(&s->mutex); - out: sz =3D iov_from_buf(elem->in_sg, elem->in_num, 0, buf ? buf : &tail, output_size); @@ -721,7 +720,7 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemory= Region *mr, hwaddr addr, sid =3D virtio_iommu_get_bdf(sdev); =20 trace_virtio_iommu_translate(mr->parent_obj.name, sid, addr, flag); - qemu_mutex_lock(&s->mutex); + QEMU_LOCK_GUARD(&s->mutex); =20 ep =3D g_tree_lookup(s->endpoints, GUINT_TO_POINTER(sid)); if (!ep) { @@ -733,7 +732,7 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemory= Region *mr, hwaddr addr, } else { entry.perm =3D flag; } - goto unlock; + return entry; } =20 for (i =3D 0; i < s->nb_reserved_regions; i++) { @@ -751,7 +750,7 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemory= Region *mr, hwaddr addr, sid, addr); break; } - goto unlock; + return entry; } } =20 @@ -766,7 +765,7 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemory= Region *mr, hwaddr addr, } else { entry.perm =3D flag; } - goto unlock; + return entry; } =20 found =3D g_tree_lookup_extended(ep->domain->mappings, (gpointer)(&int= erval), @@ -778,7 +777,7 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemory= Region *mr, hwaddr addr, virtio_iommu_report_fault(s, VIRTIO_IOMMU_FAULT_R_MAPPING, VIRTIO_IOMMU_FAULT_F_ADDRESS, sid, addr); - goto unlock; + return entry; } =20 read_fault =3D (flag & IOMMU_RO) && @@ -795,14 +794,12 @@ static IOMMUTLBEntry virtio_iommu_translate(IOMMUMemo= ryRegion *mr, hwaddr addr, virtio_iommu_report_fault(s, VIRTIO_IOMMU_FAULT_R_MAPPING, flags | VIRTIO_IOMMU_FAULT_F_ADDRESS, sid, addr); - goto unlock; + return entry; } entry.translated_addr =3D addr - mapping_key->low + mapping_value->phy= s_addr; entry.perm =3D flag; trace_virtio_iommu_translate_out(addr, entry.translated_addr, sid); =20 -unlock: - qemu_mutex_unlock(&s->mutex); return entry; } =20 @@ -871,21 +868,18 @@ static void virtio_iommu_replay(IOMMUMemoryRegion *mr= , IOMMUNotifier *n) =20 sid =3D virtio_iommu_get_bdf(sdev); =20 - qemu_mutex_lock(&s->mutex); + QEMU_LOCK_GUARD(&s->mutex); =20 if (!s->endpoints) { - goto unlock; + return; } =20 ep =3D g_tree_lookup(s->endpoints, GUINT_TO_POINTER(sid)); if (!ep || !ep->domain) { - goto unlock; + return; } =20 g_tree_foreach(ep->domain->mappings, virtio_iommu_remap, mr); - -unlock: - qemu_mutex_unlock(&s->mutex); } =20 static int virtio_iommu_notify_flag_changed(IOMMUMemoryRegion *iommu_mr, --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615455210; cv=none; d=zohomail.com; s=zohoarc; b=QP+FijXi2mSxXpFsKWIlrvY2Nn+U5GKQwEErBPt0uNtL4CVaf0CMtfNFAqDdVhKD33hXwKljJseCZVNZTxcHIx4zG3+s8vTu99OOJLvEPNwUxs5OmXpUCf7Cc+nxuBv1jjJ8rNQrdhH2scviTjWdmVbXQMPYU9cpBj42ZK/pkjo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615455210; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zh7uFjOqTsCIlaUk87E6M8wvUW9uAxQ0gtkrGdbYKiY=; b=jME5QEcfseSOrRArRHSAINzORaGoaIsmEFXmaWRV7X8pQquK5tVcwwMk7bqwRu0zGaNh5/nvt+Od/OwuwTQzoVSQdtDHedG+wPhmdq/pztgcoIhmon1fh494dGQGU3P0GGE3/1Jwc1+mpE/oo7Tj5kEtLcJGOP2nZGotnOrndu8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 161545521010248.89071416330819; Thu, 11 Mar 2021 01:33:30 -0800 (PST) Received: from localhost ([::1]:54292 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHhB-0008LC-2B for importer@patchew.org; Thu, 11 Mar 2021 04:33:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56864) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBo0-0001Qy-Hi for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:09 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:35407) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBns-0000kH-8R for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:08 -0500 Received: by mail-wm1-x331.google.com with SMTP id c76-20020a1c9a4f0000b029010c94499aedso12299019wme.0 for ; Wed, 10 Mar 2021 19:15:59 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zh7uFjOqTsCIlaUk87E6M8wvUW9uAxQ0gtkrGdbYKiY=; b=GLQnjWoWNz7sWG+sgHcQFj+nj3u9ImsIGPk9Syukrsvs14i798Nhyqx4XEYW9llaJL 34T2nmz1Hx74aubYsf0BvA4+aMOq4BI8hhOh4z6klaFAJsKPwgtz1P9zhlUmF2sGcF+S dCXT+pZEXmIs9yNW1h2P0lgFI995EGHQkuoGdJpCLyxCLyz81juQFvLIxFuc8BvZCKwQ saos56jV2v3hc1hC+3Te8SvcIDdfErLhZcDnYU4FbR33DBtMZBrmnrdETb7aHsnFzSzN utsh2higpcY4Hzirhaprp1BcxEXs2SpG3B0CNMLpjmNc+s/hJ7+jz6JYWexOYMhvm4nJ 8ADw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zh7uFjOqTsCIlaUk87E6M8wvUW9uAxQ0gtkrGdbYKiY=; b=HNeLXZ1TaBWAk7zbO9vHauICr/6gwsK0bfMxLSbc28nEGNOOL+MblgTI8H6DLBXadx AFdvKHv6ppFJqTD6BpDkDnxEoYGv6v/bu8h1Jdoiv/B5Z6XXYcx/4h5JbXbLidDwxqwZ qZVWouhk9BV2sfpGlpPseUdMWu3DGj43Naki+Pmo+GFA80cBchTvIKcIpAqZlXngb170 g/KLK3zFMOf7/qGDdhAyBfVPsBemTp4xOcu3KfinGBYRwAZX4naS+9Eqdy1q0sRE/UJB qYp9Hla/ESs5nJFMpN8BG00i6DUcY6iF8JeSpTKDG6ImZiO09S93iSR7sCDBlQjp5z57 S1Ww== X-Gm-Message-State: AOAM531UoAa6j7s8iP2QhSbWJQ4ytvjCheg0D9H0uZ+61xA5viIIn6PI 6vgOc+EdAFy940Xw0T6UPliQ5PGNVbLYVPF+q4Q= X-Google-Smtp-Source: ABdhPJxqL5vuZBrxHM/jWvEoNpCgjmb2HTFuQcvNC0VbnuH6wf3S+84zo1gSlKDU03trCOrmbqxTyQ== X-Received: by 2002:a05:600c:4a18:: with SMTP id c24mr5779319wmp.173.1615432558689; Wed, 10 Mar 2021 19:15:58 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 8/9] hw/9pfs/9p-synth: Replaced qemu_mutex_lock with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:37 +0200 Message-Id: <20210311031538.5325-9-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:25:06 -0500 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: Mahmoud Mandour , Christian Schoenebeck , Greg Kurz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Replaced a call to qemu_mutex_lock and its respective call to qemu_mutex_unlock and used QEMU_LOCK_GUARD macro in their place. This simplifies the code by removing the call required to unlock and also eliminates goto paths. Signed-off-by: Mahmoud Mandour Acked-by: Greg Kurz Reviewed-by: Christian Schoenebeck --- hw/9pfs/9p-synth.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/9pfs/9p-synth.c b/hw/9pfs/9p-synth.c index 7eb210ffa8..473ef914b0 100644 --- a/hw/9pfs/9p-synth.c +++ b/hw/9pfs/9p-synth.c @@ -79,11 +79,11 @@ int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mo= de, if (!parent) { parent =3D &synth_root; } - qemu_mutex_lock(&synth_mutex); + QEMU_LOCK_GUARD(&synth_mutex); QLIST_FOREACH(tmp, &parent->child, sibling) { if (!strcmp(tmp->name, name)) { ret =3D EEXIST; - goto err_out; + return ret; } } /* Add the name */ @@ -94,8 +94,6 @@ int qemu_v9fs_synth_mkdir(V9fsSynthNode *parent, int mode, node->attr, node->attr->inode); *result =3D node; ret =3D 0; -err_out: - qemu_mutex_unlock(&synth_mutex); return ret; } =20 @@ -116,11 +114,11 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, i= nt mode, parent =3D &synth_root; } =20 - qemu_mutex_lock(&synth_mutex); + QEMU_LOCK_GUARD(&synth_mutex); QLIST_FOREACH(tmp, &parent->child, sibling) { if (!strcmp(tmp->name, name)) { ret =3D EEXIST; - goto err_out; + return ret; } } /* Add file type and remove write bits */ @@ -136,8 +134,6 @@ int qemu_v9fs_synth_add_file(V9fsSynthNode *parent, int= mode, pstrcpy(node->name, sizeof(node->name), name); QLIST_INSERT_HEAD_RCU(&parent->child, node, sibling); ret =3D 0; -err_out: - qemu_mutex_unlock(&synth_mutex); return ret; } =20 --=20 2.25.1 From nobody Sun May 19 13:34:32 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1615454927; cv=none; d=zohomail.com; s=zohoarc; b=jUwydce4rZoKM+9yQl+TdfSpwghYNK1F8Did0Xuc4/7aGKHvYtCJrAA5NsT45F4KPwjmB7LUldEVXXj8akLNwgL3Gw+9iaE/3nd6PSAy786mQlOdup8vcuWkBDSZQJ1XCtLCa41HZoHXdKLf9AzSJQpyG1Ed9pnqSvpPzIaNyA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615454927; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rt7Yoj3Wqvxxfhd2fdBXz/8HCzsyO5MYxMXGF410eTI=; b=PdtViLHo9kh40O3F0MfLh4ZIK0rudtpqtsLfe4DI+pY0Rzs8RPMD4B79CxGzkH/s9vtW0lGKvmr+Yr3w0q5oQgXziGgtAN4buIQsGNnbz0i7/3iNjLzxw4iaRi1RtW1lMvT1DmlTpJoFk1jqGZzDOVcYZe86jVn0smjeO27q9a0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615454927216611.5580628244968; Thu, 11 Mar 2021 01:28:47 -0800 (PST) Received: from localhost ([::1]:41000 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKHcc-0002pt-5f for importer@patchew.org; Thu, 11 Mar 2021 04:28:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56896) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKBo2-0001SO-K7 for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:10 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:45952) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lKBnw-0000kR-Rf for qemu-devel@nongnu.org; Wed, 10 Mar 2021 22:16:10 -0500 Received: by mail-wm1-x333.google.com with SMTP id r10-20020a05600c35cab029010c946c95easo11905898wmq.4 for ; Wed, 10 Mar 2021 19:16:00 -0800 (PST) Received: from localhost.localdomain ([197.61.47.225]) by smtp.googlemail.com with ESMTPSA id o188sm1450416wme.7.2021.03.10.19.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 19:15:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rt7Yoj3Wqvxxfhd2fdBXz/8HCzsyO5MYxMXGF410eTI=; b=AMBjqtFPmUKv7qdJjGztV+Dhf7Sy0EbsQA13UCRvr/XqLY2HIrEYgaoUkOylnmBUvf Bs7JYtGXMTu0Zczb6zGkvxs6WPj6VqYUpZyP2jQHGMCfwdcT9vo4lxTQwth4l79tboJH r+TfqLnhkdwZBB7njk4ddTbuHKWcHH4hl14PitQuoh9+UeetW6W2aU/NkDHhal03Fnbl jzQXbZy6ELirMa6XYoI13cJ9ph7B6gkqSKJgIV8HM0JltawBN1IJhJOVbueuMK3h2Guo sLno8lvquBrs0L9tdnRxRfehU6fKanIlzuQBXBGk2E58xly/brecuJcYp26W1L22y6MD 3GHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rt7Yoj3Wqvxxfhd2fdBXz/8HCzsyO5MYxMXGF410eTI=; b=N7Y7ABGp3OZclXy+J6acUermaPidrRrmgMd9IAV+Az0PR0J8nI3Ql/D4sY9ZiXllMA EPNfP/ybvJdVbYd89XKaBH6iC68BbG0p8wqrXz0xSGpxtk+fX0cTQF9JED6hWbDS2wir fRmsP8kduxmg7rR6XHIy3Fampr1Zm5T4wpZTGMPKbHVetBOLTtjO0Fy30XQv2hplptzx kx/bkg/T2/j3jyFLFyF+b7GJKrFegfS6OY9VAvT28OWVYLlAjkluRNqLbdjaJk3P9Ikx rvJA3Wd8qEX122CZ3AmWT7rlhKJxyLyWr7Jhc4jju3+tHol1WWLdgfb3Hqm6goAso+ht uGdA== X-Gm-Message-State: AOAM5317s4GkI9EepdWvgyvdNaqih36hA6ijPf38WIJMVTOYIb4XEl/M mtsM3w/8Co+Cp5PxDUn4l8p9ISRkrj9loTB83TY= X-Google-Smtp-Source: ABdhPJz3AYUnICiSdcNSOreCpjFwc1zEBRngTkbby+k/5qVu9sNXixyW8i7BEe8uczQZ3h3klF5pkQ== X-Received: by 2002:a1c:e4d4:: with SMTP id b203mr5787965wmh.105.1615432559640; Wed, 10 Mar 2021 19:15:59 -0800 (PST) From: Mahmoud Mandour To: qemu-devel@nongnu.org Subject: [PATCH 9/9] hw/hyperv/vmbus: replaced qemu_mutex_lock with QEMU_LOCK_GUARD Date: Thu, 11 Mar 2021 05:15:38 +0200 Message-Id: <20210311031538.5325-10-ma.mandourr@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210311031538.5325-1-ma.mandourr@gmail.com> References: <20210311031538.5325-1-ma.mandourr@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=ma.mandourr@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 11 Mar 2021 04:25:10 -0500 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: Mahmoud Mandour Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) Content-Type: text/plain; charset="utf-8" Replaced some calls to qemu_mutex_lock and their respective qemu_mutex_unlock calls with QEMU_LOCK_GUARD macro. This simplifies the code by removing the calls to qemu_mutex_unlock and eliminates goto paths. Signed-off-by: Mahmoud Mandour --- hw/hyperv/vmbus.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/hw/hyperv/vmbus.c b/hw/hyperv/vmbus.c index 984caf898d..7c966ae399 100644 --- a/hw/hyperv/vmbus.c +++ b/hw/hyperv/vmbus.c @@ -1616,11 +1616,11 @@ static int enqueue_incoming_message(VMBus *vmbus, int ret =3D 0; uint8_t idx, prev_size; =20 - qemu_mutex_lock(&vmbus->rx_queue_lock); + QEMU_LOCK_GUARD(&vmbus->rx_queue_lock); =20 if (vmbus->rx_queue_size =3D=3D HV_MSG_QUEUE_LEN) { ret =3D -ENOBUFS; - goto out; + return ret; } =20 prev_size =3D vmbus->rx_queue_size; @@ -1632,8 +1632,7 @@ static int enqueue_incoming_message(VMBus *vmbus, if (!prev_size) { vmbus_resched(vmbus); } -out: - qemu_mutex_unlock(&vmbus->rx_queue_lock); + return ret; } =20 @@ -2189,10 +2188,10 @@ static void process_message(VMBus *vmbus) void *msgdata; uint32_t msglen; =20 - qemu_mutex_lock(&vmbus->rx_queue_lock); + QEMU_LOCK_GUARD(&vmbus->rx_queue_lock); =20 if (!vmbus->rx_queue_size) { - goto unlock; + return; } =20 hv_msg =3D &vmbus->rx_queue[vmbus->rx_queue_head]; @@ -2241,8 +2240,6 @@ out: vmbus->rx_queue_head %=3D HV_MSG_QUEUE_LEN; =20 vmbus_resched(vmbus); -unlock: - qemu_mutex_unlock(&vmbus->rx_queue_lock); } =20 static const struct { --=20 2.25.1