From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE82BC10DCE for ; Thu, 12 Mar 2020 07:23:50 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C80F9206F7 for ; Thu, 12 Mar 2020 07:23:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="F34APze5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C80F9206F7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jCIBa-0007Gw-Gc; Thu, 12 Mar 2020 07:23:18 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jCIBZ-0007Gr-V9 for xen-devel@lists.xenproject.org; Thu, 12 Mar 2020 07:23:18 +0000 X-Inumbo-ID: 57aa00ee-6432-11ea-b34e-bc764e2007e4 Received: from us-smtp-1.mimecast.com (unknown [207.211.31.81]) by us1-rack-iad1.inumbo.com (Halon) with ESMTP id 57aa00ee-6432-11ea-b34e-bc764e2007e4; Thu, 12 Mar 2020 07:23:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583997796; h=from:from: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; bh=/E8vVaoVhY2Wg/52ttoswbyBRSnCcZJrMygi5WSQw1w=; b=F34APze502zfjPSJsJxlpAByYhQYwFpu50oJl+fM0xoTpV0CWlTsIl5qx3RxzLDUosnWdZ nmYdNPRY4WMXR66I/ZnRHQHIgb9+hnSpd0HWmH/KRYmi30Jmogv8uoAaAqV7q5RdJRQU9u uEQgaA+NDJrU4AdQjvxrncLDlVQ3Et0= 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-161-_emMESS8ND6FvGKl12tXNw-1; Thu, 12 Mar 2020 03:23:15 -0400 X-MC-Unique: _emMESS8ND6FvGKl12tXNw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F0934801E66; Thu, 12 Mar 2020 07:23:12 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-34.ams2.redhat.com [10.36.116.34]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 34ECE92D30; Thu, 12 Mar 2020 07:23:07 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B64EC11386A6; Thu, 12 Mar 2020 08:23:05 +0100 (CET) From: Markus Armbruster To: Vladimir Sementsov-Ogievskiy References: <20200306051536.27803-1-vsementsov@virtuozzo.com> <20200306051536.27803-3-vsementsov@virtuozzo.com> <87lfo997hs.fsf@dusky.pond.sub.org> <87a74ngriw.fsf@dusky.pond.sub.org> <71ada30b-c72b-6251-cc38-877ddd4156a8@virtuozzo.com> <87h7yvx8ce.fsf@dusky.pond.sub.org> Date: Thu, 12 Mar 2020 08:23:05 +0100 In-Reply-To: (Vladimir Sementsov-Ogievskiy's message of "Wed, 11 Mar 2020 17:46:10 +0300") Message-ID: <87blp2rq92.fsf@dusky.pond.sub.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: Re: [Xen-devel] [PATCH v8 02/10] scripts: add coccinelle script to use auto propagated errp X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Stefano Stabellini , qemu-block@nongnu.org, Paul Durrant , qemu-devel@nongnu.org, Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Christian Schoenebeck , Markus Armbruster , Michael Roth , Greg Kurz , Gerd Hoffmann , Stefan Hajnoczi , Anthony Perard , xen-devel@lists.xenproject.org, Max Reitz , Laszlo Ersek , Stefan Berger Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VmxhZGltaXIgU2VtZW50c292LU9naWV2c2tpeSA8dnNlbWVudHNvdkB2aXJ0dW96em8uY29tPiB3 cml0ZXM6Cgo+IDExLjAzLjIwMjAgMTc6NDEsIE1hcmt1cyBBcm1icnVzdGVyIHdyb3RlOgo+PiBW bGFkaW1pciBTZW1lbnRzb3YtT2dpZXZza2l5IDx2c2VtZW50c292QHZpcnR1b3p6by5jb20+IHdy aXRlczoKPj4KPj4+IDExLjAzLjIwMjAgMTI6MzgsIE1hcmt1cyBBcm1icnVzdGVyIHdyb3RlOgo+ Pj4+IFZsYWRpbWlyIFNlbWVudHNvdi1PZ2lldnNraXkgPHZzZW1lbnRzb3ZAdmlydHVvenpvLmNv bT4gd3JpdGVzOgo+Pj4+Cj4+Pj4+IDA5LjAzLjIwMjAgMTI6NTYsIE1hcmt1cyBBcm1icnVzdGVy IHdyb3RlOgo+Pj4+Pj4gU3VnZ2VzdAo+Pj4+Pj4KPj4+Pj4+ICAgICAgICBzY3JpcHRzOiBDb2Nj aW5lbGxlIHNjcmlwdCB0byB1c2UgYXV0by1wcm9wYWdhdGVkIGVycnAKPj4+Pj4+Cj4+Pj4+PiBv cgo+Pj4+Pj4KPj4+Pj4+ICAgICAgICBzY3JpcHRzOiBDb2NjaW5lbGxlIHNjcmlwdCB0byB1c2Ug RVJSUF9BVVRPX1BST1BBR0FURSgpCj4+Pj4+Pgo+Pj4+Pj4gVmxhZGltaXIgU2VtZW50c292LU9n aWV2c2tpeSA8dnNlbWVudHNvdkB2aXJ0dW96em8uY29tPiB3cml0ZXM6Cj4+Pj4gWy4uLl0KPj4+ Pj4+PiArLy8gTm90ZSwgdGhhdCB3ZSB1cGRhdGUgZXZlcnl0aGluZyByZWxhdGVkIHRvIG1hdGNo ZWQgYnkgcnVsZTEgZnVuY3Rpb24gbmFtZQo+Pj4+Pj4+ICsvLyBhbmQgbG9jYWxfZXJyIG5hbWUu IFdlIG1heSBtYXRjaCBzb21ldGhpbmcgbm90IHJlbGF0ZWQgdG8gdGhlIHBhdHRlcm4KPj4+Pj4+ PiArLy8gbWF0Y2hlZCBieSBydWxlMS4gRm9yIGV4YW1wbGUsIGxvY2FsX2VyciBtYXkgYmUgZGVm aW5lZCB3aXRoIHRoZSBzYW1lIG5hbWUKPj4+Pj4+PiArLy8gaW4gZGlmZmVyZW50IGJsb2NrcyBp bnNpZGUgb25lIGZ1bmN0aW9uLCBhbmQgaW4gb25lIGJsb2NrIGZvbGxvdyB0aGUKPj4+Pj4+PiAr Ly8gcHJvcGFnYXRpb24gcGF0dGVybiBhbmQgaW4gb3RoZXIgYmxvY2sgZG9lc24ndC4gT3Igd2Ug bWF5IGhhdmUgc2V2ZXJhbAo+Pj4+Pj4+ICsvLyBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1l IChmb3IgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25zKS4KPj4+Pj4+Cj4+Pj4+PiBDb250ZXh0OiBy dWxlMSBtYXRjaGVzIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYWxsIHRocmVlIG9mCj4+Pj4+Pgo+Pj4+ Pj4gKiBhbiBFcnJvciAqKmVycnAgcGFyYW1ldGVyCj4+Pj4+Pgo+Pj4+Pj4gKiBhbiBFcnJvciAq bG9jYWxfZXJyID0gTlVMTCB2YXJpYWJsZSBkZWNsYXJhdGlvbgo+Pj4+Pj4KPj4+Pj4+ICogYW4g ZXJyb3JfcHJvcGFnYXRlKGVycnAsIGxvY2FsX2Vycikgb3IgZXJyb3JfcHJvcGFnYXRlX3ByZXBl bmQoZXJycCwKPj4+Pj4+ICAgICAgbG9jYWxfZXJyLCAuLi4pIGV4cHJlc3Npb24sIHdoZXJlIEBl cnJwIGlzIHRoZSBwYXJhbWV0ZXIgYW5kCj4+Pj4+PiAgICAgIEBsb2NhbF9lcnIgaXMgdGhlIHZh cmlhYmxlLgo+Pj4+Pj4KPj4+Pj4+IElmIEkgdW5kZXJzdGFuZCB5b3UgY29ycmVjdGx5LCB5b3Un cmUgcG9pbnRpbmcgb3V0IHR3byBwb3RlbnRpYWwgaXNzdWVzOgo+Pj4+Pj4KPj4+Pj4+IDEuIFRo aXMgcnVsZSBjYW4gbWF0Y2ggZnVuY3Rpb25zIHJ1bGUxIGRvZXMgbm90IG1hdGNoIGlmIHRoZXJl IGlzCj4+Pj4+PiBhbm90aGVyIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgbmFtZSB0aGF0IHJ1bGUx IGRvZXMgbWF0Y2guCj4+Pj4+Pgo+Pj4+Pj4gMi4gVGhpcyBydWxlIG1hdGNoZXMgaW4gdGhlIGVu dGlyZSBmdW5jdGlvbiBtYXRjaGVkIGJ5IHJ1bGUxLCBldmVuIHdoZW4KPj4+Pj4+IHBhcnRzIG9m IHRoYXQgZnVuY3Rpb24gdXNlIGEgZGlmZmVyZW50IEBlcnJwIG9yIEBsb2NhbF9lcnIuCj4+Pj4+ Pgo+Pj4+Pj4gSSBmaWd1cmUgdGhlc2UgYXBwbHkgdG8gYWxsIHJ1bGVzIHdpdGggaWRlbnRpZmll ciBydWxlMS5mbiwgbm90IGp1c3QKPj4+Pj4+IHRoaXMgb25lLiAgQ29ycmVjdD8KPj4+Pj4+Cj4+ Pj4+PiBSZWdhcmRpbmcgMS4gIFRoZXJlIG11c3QgYmUgYSBiZXR0ZXIgd2F5IHRvIGNoYWluIHJ1 bGVzIHRvZ2V0aGVyLCBidXQgSQo+Pj4+Pj4gZG9uJ3Qga25vdyBpdC4KPj4+Pj4KPj4+Pj4gSG1t LCB3aGF0IGFib3V0IHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4+Pj4+Cj4+Pj4+IEBydWxlMSBkaXNh YmxlIG9wdGlvbmFsX3F1YWxpZmllciBleGlzdHNACj4+Pj4+IGlkZW50aWZpZXIgZm4sIGxvY2Fs X2VycjsKPj4+Pj4gc3ltYm9sIGVycnA7Cj4+Pj4+IEBACj4+Pj4+Cj4+Pj4+ICAgIGZuKC4uLiwg RXJyb3IgKioKPj4+Pj4gLSBlcnJwCj4+Pj4+ICsgX19fZXJycF9jb2NjaW5lbGxlX3VwZGF0aW5n X19fCj4+Pj4+ICAgICAgICwgLi4uKQo+Pj4+PiAgICB7Cj4+Pj4+ICAgICAgICAuLi4KPj4+Pj4g ICAgICAgIEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOwo+Pj4+PiAgICAgICAgLi4uCj4+Pj4+ICgK Pj4+Pj4gICAgICAgZXJyb3JfcHJvcGFnYXRlX3ByZXBlbmQoZXJycCwgbG9jYWxfZXJyLCAuLi4p Owo+Pj4+PiB8Cj4+Pj4+ICAgICAgIGVycm9yX3Byb3BhZ2F0ZShlcnJwLCBsb2NhbF9lcnIpOwo+ Pj4+PiApCj4+Pj4+ICAgICAgICAuLi4KPj4+Pj4gICAgfQo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBbLi5d Cj4+Pj4+Cj4+Pj4+IG1hdGNoIHN5bWJvbCBfX19lcnJwX2NvY2NpbmVsbGVfdXBkYXRpbmdfX18g aW4gZm9sbG93aW5nIHJ1bGVzIGluIGZ1bmN0aW9uIGhlYWRlcgo+Pj4+Pgo+Pj4+PiBbLi5dCj4+ Pj4+Cj4+Pj4+Cj4+Pj4+IEAgZGlzYWJsZSBvcHRpb25hbF9xdWFsaWZpZXJACj4+Pj4+IGlkZW50 aWZpZXIgZm4sIGxvY2FsX2VycjsKPj4+Pj4gc3ltYm9sIGVycnA7Cj4+Pj4+IEBACj4+Pj4+Cj4+ Pj4+ICAgIGZuKC4uLiwgRXJyb3IgKioKPj4+Pj4gLSBfX19lcnJwX2NvY2NpbmVsbGVfdXBkYXRp bmdfX18KPj4+Pj4gKyBlcnJwCj4+Pj4+ICAgICAgICwgLi4uKQo+Pj4+PiAgICB7Cj4+Pj4+ICAg ICAgICAuLi4KPj4+Pj4gICAgfQo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtIGhhY2t5LCBidXQgc2VlbXMg bm90IG1vcmUgaGFja3kgdGhhbiBweXRob24gZGV0ZWN0aW9uLCBhbmQgc2hvdWxkIHdvcmsgYmV0 dGVyCj4+Pj4KPj4+PiBBcyBzaW1wbGUsIGZvcmNlZnVsIGFuZCB1bnN1YnRsZSBhcyBhIHNsZWRn ZWhhbW1lci4gIEkgbGlrZSBpdCA6KQo+Pj4+Cj4+Pgo+Pj4KPj4+IEhtbSwgbm90IHNvIHNpbXBs ZS4KPj4+Cj4+PiBJdCBsZWFkcyB0byByZWluZGVudGluZyBvZiBmdW5jdGlvbiBoZWFkZXIsIHdo aWNoIGlzIGJhZC4KPj4KPj4gQmVjYXVzZSBfX19lcnJwX2NvY2NpbmVsbGVfdXBkYXRpbmdfX18g aXMgbG9uZ2VyIHRoYW4gZXJycCwgSSBndWVzcy4KPj4gVHJ5IF9fX18/Cj4KPiBJJ20gYWZyYWlk IG5vdC4gSXQncyBiZWNhdXNlIGl0IGp1c3QgYWRkcyBcbiwgd2hlbiBJIGRvCj4KPiAuLi4sCj4K PiAtIGVycnAKPiArIF9fX2VycnBfY29jY2luZWxsZV91cGRhdGluZ19fXwo+ICwuLi4KCkkgd2Fz IHRoaW5raW5nIG9mIHNvbWV0aGluZyBsaWtlIHRoZSBhcHBlbmRlZCBwYXRjaCwgd2hpY2ggaW4g bXkKKHN1cGVyZmljaWFsISkgdGVzdGluZyBsZWF2ZXMgYWxvbmUgbmV3bGluZXMgdW5sZXNzIGxp bmVzIGFyZSBsb25nLCBidXQKaGFuZ3MgZm9yIGJsb2NrLmMuICBPaCB3ZWxsLgoKCmRpZmYgLS1n aXQgYS9zY3JpcHRzL2NvY2NpbmVsbGUvYXV0by1wcm9wYWdhdGVkLWVycnAuY29jY2kgYi9zY3Jp cHRzL2NvY2NpbmVsbGUvYXV0by1wcm9wYWdhdGVkLWVycnAuY29jY2kKaW5kZXggYmZmMjc0YmQ2 ZC4uNDkyYTRkYjgyNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9jb2NjaW5lbGxlL2F1dG8tcHJvcGFn YXRlZC1lcnJwLmNvY2NpCisrKyBiL3NjcmlwdHMvY29jY2luZWxsZS9hdXRvLXByb3BhZ2F0ZWQt ZXJycC5jb2NjaQpAQCAtMzUsMTIgKzM1LDEyIEBACiAvLyBlcnJvcl9wcm9wYWdhdGVfcHJlcGVu ZCgpLgogQCBkZXBlbmRzIG9uICEoZmlsZSBpbiAidXRpbC9lcnJvci5jIikgZGlzYWJsZSBvcHRp b25hbF9xdWFsaWZpZXJACiBpZGVudGlmaWVyIGZuOwotaWRlbnRpZmllciBfZXJycCAhPSBlcnJw OworaWRlbnRpZmllciBfZXJycDsKIEBACiAKICBmbiguLi4sCiAtICAgRXJyb3IgKipfZXJycAot KyAgIEVycm9yICoqZXJycAorKyAgIEVycm9yICoqX19fXwogICAgICwuLi4pCiAgewogKApAQCAt NDgsNyArNDgsNyBAQCBpZGVudGlmaWVyIF9lcnJwICE9IGVycnA7CiAmCiAgICAgIDwuLi4KIC0g ICAgX2VycnAKLSsgICAgZXJycAorKyAgICBfX19fCiAgICAgIC4uLj4KICkKICB9CkBAIC02Mywy NiArNjMsMjYgQEAgaWRlbnRpZmllciBfZXJycCAhPSBlcnJwOwogLy8gYWxsIHBvc3NpYmxlIGNv bnRyb2wgZmxvd3MgKG90aGVyd2lzZSwgaXQgd2lsbCBub3QgbWF0Y2ggc3RhbmRhcmQgcGF0dGVy bgogLy8gd2hlbiBlcnJvcl9wcm9wYWdhdGUoKSBjYWxsIGlzIGluIGlmIGJyYW5jaCkuCiBAIGRp c2FibGUgb3B0aW9uYWxfcXVhbGlmaWVyIGV4aXN0c0AKLWlkZW50aWZpZXIgZm4sIGxvY2FsX2Vy ciwgZXJycDsKK2lkZW50aWZpZXIgZm4sIGxvY2FsX2VycjsKIEBACiAKLSBmbiguLi4sIEVycm9y ICoqZXJycCwgLi4uKQorIGZuKC4uLiwgRXJyb3IgKipfX19fLCAuLi4pCiAgewogKyAgIEVSUlBf QVVUT19QUk9QQUdBVEUoKTsKICAgICAuLi4gIHdoZW4gIT0gRVJSUF9BVVRPX1BST1BBR0FURSgp OwogKAotICAgIGVycm9yX2FwcGVuZF9oaW50KGVycnAsIC4uLik7CisgICAgZXJyb3JfYXBwZW5k X2hpbnQoX19fXywgLi4uKTsKIHwKLSAgICBlcnJvcl9wcmVwZW5kKGVycnAsIC4uLik7CisgICAg ZXJyb3JfcHJlcGVuZChfX19fLCAuLi4pOwogfAotICAgIGVycm9yX3ZwcmVwZW5kKGVycnAsIC4u Lik7CisgICAgZXJyb3JfdnByZXBlbmQoX19fXywgLi4uKTsKIHwKICAgICBFcnJvciAqbG9jYWxf ZXJyID0gTlVMTDsKICAgICAuLi4KICgKLSAgICBlcnJvcl9wcm9wYWdhdGVfcHJlcGVuZChlcnJw LCBsb2NhbF9lcnIsIC4uLik7CisgICAgZXJyb3JfcHJvcGFnYXRlX3ByZXBlbmQoX19fXywgbG9j YWxfZXJyLCAuLi4pOwogfAotICAgIGVycm9yX3Byb3BhZ2F0ZShlcnJwLCBsb2NhbF9lcnIpOwor ICAgIGVycm9yX3Byb3BhZ2F0ZShfX19fLCBsb2NhbF9lcnIpOwogKQogKQogICAgIC4uLiB3aGVu IGFueQpAQCAtOTIsMTggKzkyLDE3IEBAIGlkZW50aWZpZXIgZm4sIGxvY2FsX2VyciwgZXJycDsK IC8vIE1hdGNoIHNjZW5hcmlvcyB3aXRoIHByb3BhZ2F0aW9uIG9mIGxvY2FsIGVycm9yIHRvIGVy cnAuCiBAcnVsZTEgZGlzYWJsZSBvcHRpb25hbF9xdWFsaWZpZXIgZXhpc3RzQAogaWRlbnRpZmll ciBmbiwgbG9jYWxfZXJyOwotc3ltYm9sIGVycnA7CiBAQAogCi0gZm4oLi4uLCBFcnJvciAqKmVy cnAsIC4uLikKKyBmbiguLi4sIEVycm9yICoqX19fXywgLi4uKQogIHsKICAgICAgLi4uCiAgICAg IEVycm9yICpsb2NhbF9lcnIgPSBOVUxMOwogICAgICAuLi4KICgKLSAgICBlcnJvcl9wcm9wYWdh dGVfcHJlcGVuZChlcnJwLCBsb2NhbF9lcnIsIC4uLik7CisgICAgZXJyb3JfcHJvcGFnYXRlX3By ZXBlbmQoX19fXywgbG9jYWxfZXJyLCAuLi4pOwogfAotICAgIGVycm9yX3Byb3BhZ2F0ZShlcnJw LCBsb2NhbF9lcnIpOworICAgIGVycm9yX3Byb3BhZ2F0ZShfX19fLCBsb2NhbF9lcnIpOwogKQog ICAgICAuLi4KICB9CkBAIC0xMTgsNyArMTE3LDYgQEAgc3ltYm9sIGVycnA7CiAvLyB3aXRob3V0 IGVycm9yX3Byb3BhZ2F0ZSgpIGNhbGwpLCBjb2NjaW5lbGxlIGZhaWxzIHRvIG1hdGNoIHRoaXMg Im91dDogfSIuCiBAQAogaWRlbnRpZmllciBydWxlMS5mbiwgcnVsZTEubG9jYWxfZXJyLCBvdXQ7 Ci1zeW1ib2wgZXJycDsKIEBACiAKICBmbiguLi4pCkBAIC0xMjgsNyArMTI2LDcgQEAgc3ltYm9s IGVycnA7CiArICAgIHJldHVybjsKICAgICAgLi4uPgogLSBvdXQ6Ci0tICAgIGVycm9yX3Byb3Bh Z2F0ZShlcnJwLCBsb2NhbF9lcnIpOworLSAgICBlcnJvcl9wcm9wYWdhdGUoX19fXywgbG9jYWxf ZXJyKTsKICB9CiAKIC8vIENvbnZlcnQgbW9zdCBvZiBsb2NhbF9lcnIgcmVsYXRlZCBzdGFmZi4K QEAgLTE1OSw3ICsxNTcsNiBAQCBzeW1ib2wgZXJycDsKIEAgZXhpc3RzQAogaWRlbnRpZmllciBy dWxlMS5mbiwgcnVsZTEubG9jYWxfZXJyOwogZXhwcmVzc2lvbiBsaXN0IGFyZ3M7Ci1zeW1ib2wg ZXJycDsKIEBACiAKICBmbiguLi4pCkBAIC0xNzIsMzAgKzE2OSwzMCBAQCBzeW1ib2wgZXJycDsK IC8vIENvbnZlcnQgZXJyb3IgY2xlYXJpbmcgZnVuY3Rpb25zCiAoCiAtICAgIGVycm9yX2ZyZWUo bG9jYWxfZXJyKTsKLSsgICAgZXJyb3JfZnJlZV9lcnJwKGVycnApOworKyAgICBlcnJvcl9mcmVl X2VycnAoX19fXyk7CiB8CiAtICAgIGVycm9yX3JlcG9ydF9lcnIobG9jYWxfZXJyKTsKLSsgICAg ZXJyb3JfcmVwb3J0X2VycnAoZXJycCk7CisrICAgIGVycm9yX3JlcG9ydF9lcnJwKF9fX18pOwog fAogLSAgICBlcnJvcl9yZXBvcnRmX2Vycihsb2NhbF9lcnIsIGFyZ3MpOwotKyAgICBlcnJvcl9y ZXBvcnRmX2VycnAoZXJycCwgYXJncyk7CisrICAgIGVycm9yX3JlcG9ydGZfZXJycChfX19fLCBh cmdzKTsKIHwKIC0gICAgd2Fybl9yZXBvcnRfZXJyKGxvY2FsX2Vycik7Ci0rICAgIHdhcm5fcmVw b3J0X2VycnAoZXJycCk7CisrICAgIHdhcm5fcmVwb3J0X2VycnAoX19fXyk7CiB8CiAtICAgIHdh cm5fcmVwb3J0Zl9lcnIobG9jYWxfZXJyLCBhcmdzKTsKLSsgICAgd2Fybl9yZXBvcnRmX2VycnAo ZXJycCwgYXJncyk7CisrICAgIHdhcm5fcmVwb3J0Zl9lcnJwKF9fX18sIGFyZ3MpOwogKQogPy0g ICAgbG9jYWxfZXJyID0gTlVMTDsKIAogfAotLSAgICBlcnJvcl9wcm9wYWdhdGVfcHJlcGVuZChl cnJwLCBsb2NhbF9lcnIsIGFyZ3MpOwotKyAgICBlcnJvcl9wcmVwZW5kKGVycnAsIGFyZ3MpOwor LSAgICBlcnJvcl9wcm9wYWdhdGVfcHJlcGVuZChfX19fLCBsb2NhbF9lcnIsIGFyZ3MpOworKyAg ICBlcnJvcl9wcmVwZW5kKF9fX18sIGFyZ3MpOwogfAotLSAgICBlcnJvcl9wcm9wYWdhdGUoZXJy cCwgbG9jYWxfZXJyKTsKKy0gICAgZXJyb3JfcHJvcGFnYXRlKF9fX18sIGxvY2FsX2Vycik7CiB8 CiAtICAgICZsb2NhbF9lcnIKLSsgICAgZXJycAorKyAgICBfX19fCiApCiAgICAgIC4uLj4KICB9 CkBAIC0yMDUsMjcgKzIwMiw0MyBAQCBzeW1ib2wgZXJycDsKIC8vIGNvbmZsaWN0cyB3aXRoIG90 aGVyIHN1YnN0aXR1dGlvbnMgaW4gaXQgKGF0IGxlYXN0IHdpdGggIi0gbG9jYWxfZXJyID0gTlVM TCIpLgogQEAKIGlkZW50aWZpZXIgcnVsZTEuZm4sIHJ1bGUxLmxvY2FsX2VycjsKLXN5bWJvbCBl cnJwOwogQEAKIAogIGZuKC4uLikKICB7CiAgICAgIDwuLi4KIC0gICAgbG9jYWxfZXJyCi0rICAg ICplcnJwCisrICAgICpfX19fCiAgICAgIC4uLj4KICB9CiAKIC8vIEFsd2F5cyB1c2UgdGhlIHNh bWUgcGF0dGVyIGZvciBjaGVja2luZyBlcnJvcgogQEAKIGlkZW50aWZpZXIgcnVsZTEuZm47Ci1z eW1ib2wgZXJycDsKIEBACiAKICBmbiguLi4pCiAgewogICAgICA8Li4uCi0tICAgICplcnJwICE9 IE5VTEwKLSsgICAgKmVycnAKKy0gICAgKl9fX18gIT0gTlVMTAorKyAgICAqX19fXwogICAgICAu Li4+CiAgfQorCitAQAoraWRlbnRpZmllciBmbjsKK3N5bWJvbCBlcnJwOworQEAKKworIGZuKC4u LiwKKy0gICBFcnJvciAqKl9fX18KKysgICBFcnJvciAqKmVycnAKKyAgICAsLi4uKQorIHsKKyAu Li4KKyB9CisKK0BACitAQAorLV9fX18KKytlcnJwCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFu L2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72417C10DCE for ; Thu, 12 Mar 2020 07:23:59 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 551AC206F7 for ; Thu, 12 Mar 2020 07:23:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="F34APze5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 551AC206F7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:36994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCICE-0000mi-GF for qemu-devel@archiver.kernel.org; Thu, 12 Mar 2020 03:23:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37374) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCIBb-0000Gs-1W for qemu-devel@nongnu.org; Thu, 12 Mar 2020 03:23:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCIBZ-0006qC-IA for qemu-devel@nongnu.org; Thu, 12 Mar 2020 03:23:18 -0400 Received: from us-smtp-1.mimecast.com ([207.211.31.81]:36008 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCIBZ-0006py-EE for qemu-devel@nongnu.org; Thu, 12 Mar 2020 03:23:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583997796; h=from:from: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; bh=/E8vVaoVhY2Wg/52ttoswbyBRSnCcZJrMygi5WSQw1w=; b=F34APze502zfjPSJsJxlpAByYhQYwFpu50oJl+fM0xoTpV0CWlTsIl5qx3RxzLDUosnWdZ nmYdNPRY4WMXR66I/ZnRHQHIgb9+hnSpd0HWmH/KRYmi30Jmogv8uoAaAqV7q5RdJRQU9u uEQgaA+NDJrU4AdQjvxrncLDlVQ3Et0= 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-161-_emMESS8ND6FvGKl12tXNw-1; Thu, 12 Mar 2020 03:23:15 -0400 X-MC-Unique: _emMESS8ND6FvGKl12tXNw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F0934801E66; Thu, 12 Mar 2020 07:23:12 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-34.ams2.redhat.com [10.36.116.34]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 34ECE92D30; Thu, 12 Mar 2020 07:23:07 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id B64EC11386A6; Thu, 12 Mar 2020 08:23:05 +0100 (CET) From: Markus Armbruster To: Vladimir Sementsov-Ogievskiy Subject: Re: [PATCH v8 02/10] scripts: add coccinelle script to use auto propagated errp References: <20200306051536.27803-1-vsementsov@virtuozzo.com> <20200306051536.27803-3-vsementsov@virtuozzo.com> <87lfo997hs.fsf@dusky.pond.sub.org> <87a74ngriw.fsf@dusky.pond.sub.org> <71ada30b-c72b-6251-cc38-877ddd4156a8@virtuozzo.com> <87h7yvx8ce.fsf@dusky.pond.sub.org> Date: Thu, 12 Mar 2020 08:23:05 +0100 In-Reply-To: (Vladimir Sementsov-Ogievskiy's message of "Wed, 11 Mar 2020 17:46:10 +0300") Message-ID: <87blp2rq92.fsf@dusky.pond.sub.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 207.211.31.81 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 , Stefano Stabellini , qemu-block@nongnu.org, Paul Durrant , qemu-devel@nongnu.org, Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= , Christian Schoenebeck , Markus Armbruster , Michael Roth , Greg Kurz , Gerd Hoffmann , Stefan Hajnoczi , Anthony Perard , xen-devel@lists.xenproject.org, Max Reitz , Laszlo Ersek , Stefan Berger Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Vladimir Sementsov-Ogievskiy writes: > 11.03.2020 17:41, Markus Armbruster wrote: >> Vladimir Sementsov-Ogievskiy writes: >> >>> 11.03.2020 12:38, Markus Armbruster wrote: >>>> Vladimir Sementsov-Ogievskiy writes: >>>> >>>>> 09.03.2020 12:56, Markus Armbruster wrote: >>>>>> Suggest >>>>>> >>>>>> scripts: Coccinelle script to use auto-propagated errp >>>>>> >>>>>> or >>>>>> >>>>>> scripts: Coccinelle script to use ERRP_AUTO_PROPAGATE() >>>>>> >>>>>> Vladimir Sementsov-Ogievskiy writes: >>>> [...] >>>>>>> +// Note, that we update everything related to matched by rule1 fun= ction name >>>>>>> +// and local_err name. We may match something not related to the p= attern >>>>>>> +// matched by rule1. For example, local_err may be defined with th= e same name >>>>>>> +// in different blocks inside one function, and in one block follo= w the >>>>>>> +// propagation pattern and in other block doesn't. Or we may have = several >>>>>>> +// functions with the same name (for different configurations). >>>>>> >>>>>> Context: rule1 matches functions that have all three of >>>>>> >>>>>> * an Error **errp parameter >>>>>> >>>>>> * an Error *local_err =3D NULL variable declaration >>>>>> >>>>>> * an error_propagate(errp, local_err) or error_propagate_prepend(err= p, >>>>>> local_err, ...) expression, where @errp is the parameter and >>>>>> @local_err is the variable. >>>>>> >>>>>> If I understand you correctly, you're pointing out two potential iss= ues: >>>>>> >>>>>> 1. This rule can match functions rule1 does not match if there is >>>>>> another function with the same name that rule1 does match. >>>>>> >>>>>> 2. This rule matches in the entire function matched by rule1, even w= hen >>>>>> parts of that function use a different @errp or @local_err. >>>>>> >>>>>> I figure these apply to all rules with identifier rule1.fn, not just >>>>>> this one. Correct? >>>>>> >>>>>> Regarding 1. There must be a better way to chain rules together, bu= t I >>>>>> don't know it. >>>>> >>>>> Hmm, what about something like this: >>>>> >>>>> @rule1 disable optional_qualifier exists@ >>>>> identifier fn, local_err; >>>>> symbol errp; >>>>> @@ >>>>> >>>>> fn(..., Error ** >>>>> - errp >>>>> + ___errp_coccinelle_updating___ >>>>> , ...) >>>>> { >>>>> ... >>>>> Error *local_err =3D NULL; >>>>> ... >>>>> ( >>>>> error_propagate_prepend(errp, local_err, ...); >>>>> | >>>>> error_propagate(errp, local_err); >>>>> ) >>>>> ... >>>>> } >>>>> >>>>> >>>>> [..] >>>>> >>>>> match symbol ___errp_coccinelle_updating___ in following rules in fun= ction header >>>>> >>>>> [..] >>>>> >>>>> >>>>> @ disable optional_qualifier@ >>>>> identifier fn, local_err; >>>>> symbol errp; >>>>> @@ >>>>> >>>>> fn(..., Error ** >>>>> - ___errp_coccinelle_updating___ >>>>> + errp >>>>> , ...) >>>>> { >>>>> ... >>>>> } >>>>> >>>>> >>>>> - hacky, but seems not more hacky than python detection, and should w= ork better >>>> >>>> As simple, forceful and unsubtle as a sledgehammer. I like it :) >>>> >>> >>> >>> Hmm, not so simple. >>> >>> It leads to reindenting of function header, which is bad. >> >> Because ___errp_coccinelle_updating___ is longer than errp, I guess. >> Try ____? > > I'm afraid not. It's because it just adds \n, when I do > > ..., > > - errp > + ___errp_coccinelle_updating___ > ,... I was thinking of something like the appended patch, which in my (superficial!) testing leaves alone newlines unless lines are long, but hangs for block.c. Oh well. diff --git a/scripts/coccinelle/auto-propagated-errp.cocci b/scripts/coccin= elle/auto-propagated-errp.cocci index bff274bd6d..492a4db826 100644 --- a/scripts/coccinelle/auto-propagated-errp.cocci +++ b/scripts/coccinelle/auto-propagated-errp.cocci @@ -35,12 +35,12 @@ // error_propagate_prepend(). @ depends on !(file in "util/error.c") disable optional_qualifier@ identifier fn; -identifier _errp !=3D errp; +identifier _errp; @@ =20 fn(..., - Error **_errp -+ Error **errp ++ Error **____ ,...) { ( @@ -48,7 +48,7 @@ identifier _errp !=3D errp; & <... - _errp -+ errp ++ ____ ...> ) } @@ -63,26 +63,26 @@ identifier _errp !=3D errp; // all possible control flows (otherwise, it will not match standard patte= rn // when error_propagate() call is in if branch). @ disable optional_qualifier exists@ -identifier fn, local_err, errp; +identifier fn, local_err; @@ =20 - fn(..., Error **errp, ...) + fn(..., Error **____, ...) { + ERRP_AUTO_PROPAGATE(); ... when !=3D ERRP_AUTO_PROPAGATE(); ( - error_append_hint(errp, ...); + error_append_hint(____, ...); | - error_prepend(errp, ...); + error_prepend(____, ...); | - error_vprepend(errp, ...); + error_vprepend(____, ...); | Error *local_err =3D NULL; ... ( - error_propagate_prepend(errp, local_err, ...); + error_propagate_prepend(____, local_err, ...); | - error_propagate(errp, local_err); + error_propagate(____, local_err); ) ) ... when any @@ -92,18 +92,17 @@ identifier fn, local_err, errp; // Match scenarios with propagation of local error to errp. @rule1 disable optional_qualifier exists@ identifier fn, local_err; -symbol errp; @@ =20 - fn(..., Error **errp, ...) + fn(..., Error **____, ...) { ... Error *local_err =3D NULL; ... ( - error_propagate_prepend(errp, local_err, ...); + error_propagate_prepend(____, local_err, ...); | - error_propagate(errp, local_err); + error_propagate(____, local_err); ) ... } @@ -118,7 +117,6 @@ symbol errp; // without error_propagate() call), coccinelle fails to match this "out: }= ". @@ identifier rule1.fn, rule1.local_err, out; -symbol errp; @@ =20 fn(...) @@ -128,7 +126,7 @@ symbol errp; + return; ...> - out: -- error_propagate(errp, local_err); +- error_propagate(____, local_err); } =20 // Convert most of local_err related staff. @@ -159,7 +157,6 @@ symbol errp; @ exists@ identifier rule1.fn, rule1.local_err; expression list args; -symbol errp; @@ =20 fn(...) @@ -172,30 +169,30 @@ symbol errp; // Convert error clearing functions ( - error_free(local_err); -+ error_free_errp(errp); ++ error_free_errp(____); | - error_report_err(local_err); -+ error_report_errp(errp); ++ error_report_errp(____); | - error_reportf_err(local_err, args); -+ error_reportf_errp(errp, args); ++ error_reportf_errp(____, args); | - warn_report_err(local_err); -+ warn_report_errp(errp); ++ warn_report_errp(____); | - warn_reportf_err(local_err, args); -+ warn_reportf_errp(errp, args); ++ warn_reportf_errp(____, args); ) ?- local_err =3D NULL; =20 | -- error_propagate_prepend(errp, local_err, args); -+ error_prepend(errp, args); +- error_propagate_prepend(____, local_err, args); ++ error_prepend(____, args); | -- error_propagate(errp, local_err); +- error_propagate(____, local_err); | - &local_err -+ errp ++ ____ ) ...> } @@ -205,27 +202,43 @@ symbol errp; // conflicts with other substitutions in it (at least with "- local_err = =3D NULL"). @@ identifier rule1.fn, rule1.local_err; -symbol errp; @@ =20 fn(...) { <... - local_err -+ *errp ++ *____ ...> } =20 // Always use the same patter for checking error @@ identifier rule1.fn; -symbol errp; @@ =20 fn(...) { <... -- *errp !=3D NULL -+ *errp +- *____ !=3D NULL ++ *____ ...> } + +@@ +identifier fn; +symbol errp; +@@ + + fn(..., +- Error **____ ++ Error **errp + ,...) + { + ... + } + +@@ +@@ +-____ ++errp