From nobody Mon Feb 9 09:09:31 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1586526990; cv=none; d=zohomail.com; s=zohoarc; b=eEqXdBGUnT+qQ6sPM5+MvtwbgYwyIDMX3qqxuvuFhfgkNJF9cYl89rD7fQodILIQcgZv6yFXzJw6+Q3FHhqD09c35ZUvEVt/yJnHqvNyyw8iVqRhdopJQ+D29iBEYAnoWNoOvty41nf2v7FQhFMNgSiJiHOuENz8Hkq3f3i5HP0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586526990; h=Content-Type: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=yW69Nm3Xh76yt4ew7IyU4peSXyIirpi5m/sOh4ThWGg=; b=G+N38cbqaaxXekx8Bpv66XIhPOSEFPmA3+5H5ffRiGfV6bHOvrOUrzzNhmqJdYPHgSLuNp1UWCqjDXxEgDc+KyvPSy5vbfEMM8ZA3j1KD57X4EdRlS6vbySlaqQ126rKe/5XxT7ePhcFNreztITOuWsaFMvui1u191U3fQxfgdM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1586526990864820.3146501509093; Fri, 10 Apr 2020 06:56:30 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-367-GCtS5CNpPautvAnyMswr7Q-1; Fri, 10 Apr 2020 09:56:26 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 11C0510509B9; Fri, 10 Apr 2020 13:56:21 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D8E00B19D8; Fri, 10 Apr 2020 13:56:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7455518034E9; Fri, 10 Apr 2020 13:56:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 03ADtuZe023075 for ; Fri, 10 Apr 2020 09:55:56 -0400 Received: by smtp.corp.redhat.com (Postfix) id 5E21712750F; Fri, 10 Apr 2020 13:55:56 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 59E84127510 for ; Fri, 10 Apr 2020 13:55:54 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 058C6101A55A for ; Fri, 10 Apr 2020 13:55:54 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-230-tdT_X72wM6y3C6C8SCrJew-1; Fri, 10 Apr 2020 09:55:51 -0400 Received: by mail-wm1-f67.google.com with SMTP id h2so2561388wmb.4 for ; Fri, 10 Apr 2020 06:55:51 -0700 (PDT) Received: from localhost.localdomain (public-gprs377075.centertel.pl. [37.47.104.52]) by smtp.gmail.com with ESMTPSA id c11sm3066319wrt.24.2020.04.10.06.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Apr 2020 06:55:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1586526989; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=yW69Nm3Xh76yt4ew7IyU4peSXyIirpi5m/sOh4ThWGg=; b=H0cN8AXlN2A/Z0i8oQ8LEJ4oQBQ0er5piu3ce7SHolxd0WTUlHrfcX3G3OtqiPTMpvAA5L xYAUHj7vQY/n9Oo80bdHqKHVE57ttJN0K2ngLgM+08jG5X9i97QeD3FSh6AYnOTelZ/Yoq SFz13yRra6zU4XddVG0SI3guf6oqvgw= X-MC-Unique: GCtS5CNpPautvAnyMswr7Q-1 X-MC-Unique: tdT_X72wM6y3C6C8SCrJew-1 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=mJeBMwICVMvopD2YrFMZQjleU0VuIdjcFysnz4vlMIk=; b=siOO05ihgPV0kvGoOZEgEO0TdNztRGSkotY7YCQ4LmAhBc5PxTwbBhZLZBPpmdEcDh 71NMbv12kQUMW3mewWt/zMWlS0Loz9ATXybuPPh7kUf8utnurOgmHnkSNxHlaI5C/zBt BXulbRgG0exztyV9gcDuAWNGtdatK7wFdwfZSeHOfL2aGGRyZZWY0ooFnaQiXiVDYzV0 jAWEdqpT+4K9xYeeBWPxDiSP7jSy17oDibZcxS5mJAz36UTDefpwAnVSemlYVj7E9Ye4 a4cfkR212cF7ObPMZH474WXgIEBxj4zZ4GZ9Iv+cZP2vQL7EgewqZm1L3vkNCYtK9BNk IujQ== X-Gm-Message-State: AGi0PuaTcl7LfSAfyZXANiFpDYT7H7sXM/W4Z6nebBl3KuvuulQM8ItY YU9/qJ4KSjt2Y0Ls3a8LfcZVGfdcxR8= X-Google-Smtp-Source: APiQypJvWK7FI4xY0dUPR3Oiwt656zzYo2aKE69DEZFezCdt7Rok0swpB7Q9j4+fzjZg61xh/b2A8A== X-Received: by 2002:a7b:ce0b:: with SMTP id m11mr5380942wmc.67.1586526948784; Fri, 10 Apr 2020 06:55:48 -0700 (PDT) From: Rafael Fonseca To: libvir-list@redhat.com Subject: [PATCH 16/43] nwfilter: nwfilter_dhcpsnoop: convert virMutex to GMutex Date: Fri, 10 Apr 2020 15:54:43 +0200 Message-Id: <20200410135510.2148319-17-r4f4rfs@gmail.com> In-Reply-To: <20200410135510.2148319-1-r4f4rfs@gmail.com> References: <20200410135510.2148319-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 03ADtuZe023075 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/conf/virnwfilterobj.c | 15 ++++------ src/nwfilter/nwfilter_dhcpsnoop.c | 48 +++++++++++++------------------ 2 files changed, 25 insertions(+), 38 deletions(-) diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index c9e224061d..e4b90dcdb7 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -34,7 +34,7 @@ VIR_LOG_INIT("conf.virnwfilterobj"); =20 struct _virNWFilterObj { - virMutex lock; + GRecMutex lock; =20 bool wantRemoved; =20 @@ -56,12 +56,7 @@ virNWFilterObjNew(void) if (VIR_ALLOC(obj) < 0) return NULL; =20 - if (virMutexInitRecursive(&obj->lock) < 0) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", _("cannot initialize mutex")); - VIR_FREE(obj); - return NULL; - } + g_rec_mutex_init(&obj->lock); =20 virNWFilterObjLock(obj); return obj; @@ -98,7 +93,7 @@ virNWFilterObjFree(virNWFilterObjPtr obj) virNWFilterDefFree(obj->def); virNWFilterDefFree(obj->newDef); =20 - virMutexDestroy(&obj->lock); + g_rec_mutex_clear(&obj->lock); =20 VIR_FREE(obj); } @@ -554,12 +549,12 @@ virNWFilterObjListLoadAllConfigs(virNWFilterObjListPt= r nwfilters, void virNWFilterObjLock(virNWFilterObjPtr obj) { - virMutexLock(&obj->lock); + g_rec_mutex_lock(&obj->lock); } =20 =20 void virNWFilterObjUnlock(virNWFilterObjPtr obj) { - virMutexUnlock(&obj->lock); + g_rec_mutex_unlock(&obj->lock); } diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcp= snoop.c index 953d8936a4..191d85b2a4 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -80,26 +80,26 @@ struct virNWFilterSnoopState { /* thread management */ virHashTablePtr snoopReqs; virHashTablePtr ifnameToKey; - virMutex snoopLock; /* protects SnoopReqs and IfNameToKey= */ + GRecMutex snoopLock; /* protects SnoopReqs and IfNameToKey= */ virHashTablePtr active; - virMutex activeLock; /* protects Active */ + GMutex activeLock; /* protects Active */ }; =20 # define virNWFilterSnoopLock() \ do { \ - virMutexLock(&virNWFilterSnoopState.snoopLock); \ + g_rec_mutex_lock(&virNWFilterSnoopState.snoopLock); \ } while (0) # define virNWFilterSnoopUnlock() \ do { \ - virMutexUnlock(&virNWFilterSnoopState.snoopLock); \ + g_rec_mutex_unlock(&virNWFilterSnoopState.snoopLock); \ } while (0) # define virNWFilterSnoopActiveLock() \ do { \ - virMutexLock(&virNWFilterSnoopState.activeLock); \ + g_mutex_lock(&virNWFilterSnoopState.activeLock); \ } while (0) # define virNWFilterSnoopActiveUnlock() \ do { \ - virMutexUnlock(&virNWFilterSnoopState.activeLock); \ + g_mutex_unlock(&virNWFilterSnoopState.activeLock); \ } while (0) =20 # define VIR_IFKEY_LEN ((VIR_UUID_STRING_BUFLEN) + (VIR_MAC_STRING_BUFLE= N)) @@ -136,7 +136,7 @@ struct _virNWFilterSnoopReq { virErrorPtr threadError; =20 virNWFilterSnoopThreadStatus threadStatus; - virCond threadStatusCond; + GCond threadStatusCond; =20 int jobCompletionStatus; /* the number of submitted jobs in the worker's queue */ @@ -152,7 +152,7 @@ struct _virNWFilterSnoopReq { * - threadStatus * (for refctr, see above) */ - virMutex lock; + GRecMutex lock; }; =20 /* @@ -567,20 +567,17 @@ virNWFilterSnoopReqNew(const char *ifkey) =20 req->threadStatus =3D THREAD_STATUS_NONE; =20 - if (virStrcpyStatic(req->ifkey, ifkey) < 0|| - virMutexInitRecursive(&req->lock) < 0) + if (virStrcpyStatic(req->ifkey, ifkey) < 0) goto err_free_req; =20 - if (virCondInit(&req->threadStatusCond) < 0) - goto err_destroy_mutex; + g_rec_mutex_init(&req->lock); + + g_cond_init(&req->threadStatusCond); =20 virNWFilterSnoopReqGet(req); =20 return req; =20 - err_destroy_mutex: - virMutexDestroy(&req->lock); - err_free_req: VIR_FREE(req); =20 @@ -610,8 +607,8 @@ virNWFilterSnoopReqFree(virNWFilterSnoopReqPtr req) /* free all req data */ virNWFilterBindingDefFree(req->binding); =20 - virMutexDestroy(&req->lock); - virCondDestroy(&req->threadStatusCond); + g_rec_mutex_clear(&req->lock); + g_cond_clear(&req->threadStatusCond); virFreeError(req->threadError); =20 VIR_FREE(req); @@ -623,7 +620,7 @@ virNWFilterSnoopReqFree(virNWFilterSnoopReqPtr req) static void virNWFilterSnoopReqLock(virNWFilterSnoopReqPtr req) { - virMutexLock(&req->lock); + g_rec_mutex_lock(&req->lock); } =20 /* @@ -632,7 +629,7 @@ virNWFilterSnoopReqLock(virNWFilterSnoopReqPtr req) static void virNWFilterSnoopReqUnlock(virNWFilterSnoopReqPtr req) { - virMutexUnlock(&req->lock); + g_rec_mutex_unlock(&req->lock); } =20 /* @@ -1381,7 +1378,7 @@ virNWFilterDHCPSnoopThread(void *req0) req->threadStatus =3D THREAD_STATUS_OK; } =20 - virCondSignal(&req->threadStatusCond); + g_cond_signal(&req->threadStatusCond); =20 virNWFilterSnoopReqUnlock(req); =20 @@ -1667,11 +1664,7 @@ virNWFilterDHCPSnoopReq(virNWFilterTechDriverPtr tec= hdriver, } =20 /* sync with thread */ - if (virCondWait(&req->threadStatusCond, &req->lock) < 0) { - virReportSystemError(errno, "%s", - _("unable to wait on dhcp snoop thread")); - goto exit_snoop_cancel; - } + g_cond_wait(&req->threadStatusCond, (GMutex *)&req->lock); =20 if (req->threadStatus !=3D THREAD_STATUS_OK) { virErrorRestore(&req->threadError); @@ -2039,9 +2032,8 @@ virNWFilterDHCPSnoopInit(void) =20 VIR_DEBUG("Initializing DHCP snooping"); =20 - if (virMutexInitRecursive(&virNWFilterSnoopState.snoopLock) < 0 || - virMutexInit(&virNWFilterSnoopState.activeLock) < 0) - return -1; + g_rec_mutex_init(&virNWFilterSnoopState.snoopLock); + g_mutex_init(&virNWFilterSnoopState.activeLock); =20 virNWFilterSnoopState.ifnameToKey =3D virHashCreate(0, NULL); virNWFilterSnoopState.active =3D virHashCreate(0, NULL); --=20 2.25.2