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=-9.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 3ABB7C433E1 for ; Tue, 14 Jul 2020 20:30:49 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 0D705206F4 for ; Tue, 14 Jul 2020 20:30:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=basnieuwenhuizen-nl.20150623.gappssmtp.com header.i=@basnieuwenhuizen-nl.20150623.gappssmtp.com header.b="XhxoefbD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D705206F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=basnieuwenhuizen.nl Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 13DA96E8D5; Tue, 14 Jul 2020 20:30:48 +0000 (UTC) Received: from mail-il1-x143.google.com (mail-il1-x143.google.com [IPv6:2607:f8b0:4864:20::143]) by gabe.freedesktop.org (Postfix) with ESMTPS id 011F46E8D2 for ; Tue, 14 Jul 2020 20:30:45 +0000 (UTC) Received: by mail-il1-x143.google.com with SMTP id p15so7734568ilh.13 for ; Tue, 14 Jul 2020 13:30:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=basnieuwenhuizen-nl.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Py0yfcg14XVLbuxGvHXzKjSiOX2DdgM+ZlmzhdZ7bPA=; b=XhxoefbDdYmLdNl5C6jZogp5doEXman5PGxX+QSVnfOZzgch9E8B9Lhl3/BorZXtfS GYHvfvoZGD9iz2OkBsPBXUg86si0n9LGjcD+JNTJZ7WVmmpdosZu3wN+1NEoWBsSNiI+ Ppj84g3Oar4JvqFzpe6OxFGcNvMRLIFhnXbve6e7yiNmIKmdcDAOEMlgYNst/3AXY+Z9 9F8awlVEgNZymT36L3b9EjESyJDjcjkcahqRohMkT8Z1lvRRSOu1iYIfux8rxdWnDyIQ cSyRJW7l3vNHDMLiwHdrCsvL8DfpptfALWs9HtV/2yoyTLILBSSImwsTtyYCJTg5c9iU yv/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Py0yfcg14XVLbuxGvHXzKjSiOX2DdgM+ZlmzhdZ7bPA=; b=Y5dfWyvO5IazVvx2U0IijIkymkzxnZgg9gfaioYHYc5YifWN/UNofbaI3dj3Si3h0B ySw8UrkhRQR0wFDOKKiNLymQY+NMprVF3WPGYWdUZGPAjf4+ILOtcnWThi7Bo24DL62X ENnkwZuWfpUu05/rkwGDq7Ee/XwBWXES//t5H6cNJOMZUUlSiQD7gOTzkeOktTwH9oel 1RB5rapFjxuAIlPqi1FY73VB1ub4mmc1ikWBYhunCEUpdeIuVxPMbc/yJ4pozUI2IoB4 y0Z3BGW6I5aCca8cfpku/B3eaDZ6QSgMb3McCVTaERLEXUG1/9MYv3G2IPQx4XBVglXO 0hXQ== X-Gm-Message-State: AOAM531d0pMZXLFgdM6FaCLQ4S4ij+vftZ8x7OOhNcsLyAg/HrN7hSud SkBDGrN7EZbfJRCIWJ0T6s/MBJ9jGXbgG8IxBmyAr2d+Tvg= X-Google-Smtp-Source: ABdhPJxXTWqvxDo4wuwIl8vuNq0pmjyfeWZr0TrL5Sy1YloD/js7YL3uus6tD7dYtXo7GyhCJSfI2dK0VFoAJ33NPms= X-Received: by 2002:a92:d181:: with SMTP id z1mr6492408ilz.41.1594758645295; Tue, 14 Jul 2020 13:30:45 -0700 (PDT) MIME-Version: 1.0 References: <20200714200646.14041-1-chris@chris-wilson.co.uk> <20200714200646.14041-3-chris@chris-wilson.co.uk> In-Reply-To: <20200714200646.14041-3-chris@chris-wilson.co.uk> From: Bas Nieuwenhuizen Date: Tue, 14 Jul 2020 22:29:59 +0200 Message-ID: Subject: Re: [PATCH 3/3] dma-buf/selftests: Add locking selftests for sw_sync To: Chris Wilson X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, ML dri-devel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QXdzb21lLCB0aGFua3MgZm9yIGFkZGluZyB0aGUgdGVzdHMhCgpHb3QgdG8gc2F5IEknbSBub3Qg dGhhdCBmYW1pbGlhciB3aXRoIHRoZSBzZWxmLXRlc3QgZnJhbWV3b3JrIGlkaW9tcywKYnV0IGZy b20gbXkgcGVyc3BlY3RpdmUgcGF0Y2hlcyAyIGFuZCAzIGFyZQoKUmV2aWV3ZWQtYnk6IEJhcyBO aWV1d2VuaHVpemVuIDxiYXNAYmFzbmlldXdlbmh1aXplbi5ubD4KCmFzIHdlbGwuCgpPbiBUdWUs IEp1bCAxNCwgMjAyMCBhdCAxMDowNiBQTSBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4gd3JvdGU6Cj4KPiBXaGlsZSBzd19zeW5jIGlzIHB1cmVseSBhIGRlYnVnIGZhY2ls aXR5IGZvciB1c2Vyc3BhY2UgdG8gY3JlYXRlIGZlbmNlcwo+IGFuZCB0aW1lbGluZXMgaXQgY2Fu IGNvbnRyb2wsIG5ldmVydGhlbGVzcyBpdCBoYXMgc29tZSB0cmlja3kgbG9ja2luZwo+IHNlbWFu dGljcyBvZiBpdHMgb3duLiBJbiBwYXJ0aWN1bGFyLCBCYXMgTmlldXdlbmh1aXplIHJlcG9ydGVk IHRoYXQgd2UKPiBoYWQgcmVpbnRyb2R1Y2VkIGEgZGVhZGxvY2sgaWYgYSBzaWduYWwgY2FsbGJh Y2sgYXR0ZW1wdGVkIHRvIGRlc3Ryb3kKPiB0aGUgZmVuY2UuIFNvIGxldCdzIGFkZCBhIGZldyB0 cml2aWFsIHNlbGZ0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBvbmNlCj4gZml4ZWQgYWdhaW4sIGl0 IHN0YXlzIGZpeGVkLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Cj4gQ2M6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNAYmFzbmlldXdlbmh1 aXplbi5ubD4KPiAtLS0KPiAgZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlICAgICB8ICAgMyArLQo+ ICBkcml2ZXJzL2RtYS1idWYvc2VsZnRlc3RzLmggIHwgICAxICsKPiAgZHJpdmVycy9kbWEtYnVm L3N0LXN3X3N5bmMuYyB8IDI3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ICBkcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jICAgIHwgIDM5ICsrKysrCj4gIGRyaXZlcnMvZG1h LWJ1Zi9zeW5jX2RlYnVnLmggfCAgIDggKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDMyOSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2RtYS1i dWYvc3Qtc3dfc3luYy5jCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxl IGIvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCj4gaW5kZXggOTk1ZTA1ZjYwOWZmLi45YmU0ZDQ2 MTE2MDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCj4gKysrIGIvZHJp dmVycy9kbWEtYnVmL01ha2VmaWxlCj4gQEAgLTEwLDYgKzEwLDcgQEAgb2JqLSQoQ09ORklHX1VE TUFCVUYpICAgICAgICAgKz0gdWRtYWJ1Zi5vCj4gIGRtYWJ1Zl9zZWxmdGVzdHMteSA6PSBcCj4g ICAgICAgICBzZWxmdGVzdC5vIFwKPiAgICAgICAgIHN0LWRtYS1mZW5jZS5vIFwKPiAtICAgICAg IHN0LWRtYS1mZW5jZS1jaGFpbi5vCj4gKyAgICAgICBzdC1kbWEtZmVuY2UtY2hhaW4ubyBcCj4g KyAgICAgICBzdC1zd19zeW5jLm8KPgo+ICBvYmotJChDT05GSUdfRE1BQlVGX1NFTEZURVNUUykg Kz0gZG1hYnVmX3NlbGZ0ZXN0cy5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9zZWxm dGVzdHMuaCBiL2RyaXZlcnMvZG1hLWJ1Zi9zZWxmdGVzdHMuaAo+IGluZGV4IGJjOGNlYTY3YmYx ZS4uMjMyNDk5YTI0ODcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9zZWxmdGVzdHMu aAo+ICsrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9zZWxmdGVzdHMuaAo+IEBAIC0xMiwzICsxMiw0IEBA Cj4gIHNlbGZ0ZXN0KHNhbml0eWNoZWNrLCBfX3Nhbml0eWNoZWNrX18pIC8qIGtlZXAgZmlyc3Qg KGlndCBzZWxmY2hlY2spICovCj4gIHNlbGZ0ZXN0KGRtYV9mZW5jZSwgZG1hX2ZlbmNlKQo+ICBz ZWxmdGVzdChkbWFfZmVuY2VfY2hhaW4sIGRtYV9mZW5jZV9jaGFpbikKPiArc2VsZnRlc3Qoc3df c3luYywgc3dfc3luYykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N0LXN3X3N5bmMu YyBiL2RyaXZlcnMvZG1hLWJ1Zi9zdC1zd19zeW5jLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwMDAwMC4uM2EyMWU3NzE3ZGY3Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RyaXZlcnMvZG1hLWJ1Zi9zdC1zd19zeW5jLmMKPiBAQCAtMCwwICsxLDI3OSBAQAo+ICsvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAy MDIwIEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2RlbGF5 Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9kbWEtZmVuY2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2tl cm5lbC5oPgo+ICsjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgo+ICsjaW5jbHVkZSA8bGludXgv c2NoZWQvc2lnbmFsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9zcGlubG9jay5oPgo+ICsKPiArI2luY2x1ZGUgInN5bmNfZGVidWcuaCIKPiArI2luY2x1 ZGUgInNlbGZ0ZXN0LmgiCj4gKwo+ICtzdGF0aWMgaW50IHNhbml0eWNoZWNrKHZvaWQgKmFyZykK PiArewo+ICsgICAgICAgc3RydWN0IHN5bmNfdGltZWxpbmUgKnRsOwo+ICsgICAgICAgc3RydWN0 IGRtYV9mZW5jZSAqZjsKPiArICAgICAgIGludCBlcnIgPSAtRU5PTUVNOwo+ICsKPiArICAgICAg IC8qIFF1aWNrIGNoZWNrIHdlIGNhbiBjcmVhdGUgdGhlIHRpbWVsaW5lIGFuZCBzeW5jcHQgKi8K PiArCj4gKyAgICAgICB0bCA9IHN0X3N5bmNfdGltZWxpbmVfY3JlYXRlKCJtb2NrIik7Cj4gKyAg ICAgICBpZiAoIXRsKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAg ICAgICBmID0gc3Rfc3luY19wdF9jcmVhdGUodGwsIDEpOwo+ICsgICAgICAgaWYgKCFmKQo+ICsg ICAgICAgICAgICAgICBnb3RvIG91dDsKPiArCj4gKyAgICAgICBkbWFfZmVuY2Vfc2lnbmFsKGYp Owo+ICsgICAgICAgZG1hX2ZlbmNlX3B1dChmKTsKPiArCj4gKyAgICAgICBlcnIgPSAwOwo+ICtv dXQ6Cj4gKyAgICAgICBzdF9zeW5jX3RpbWVsaW5lX3B1dCh0bCk7Cj4gKyAgICAgICByZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIGludCBzaWduYWwodm9pZCAqYXJnKQo+ICt7Cj4gKyAgICAg ICBzdHJ1Y3Qgc3luY190aW1lbGluZSAqdGw7Cj4gKyAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpm Owo+ICsgICAgICAgaW50IGVyciA9IC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgLyogQ2hlY2sgdGhh dCB0aGUgc3luY3B0IGZlbmNlIGlzIHNpZ25hbGVkIHdoZW4gdGhlIHRpbWVsaW5lIGFkdmFuY2Vz ICovCj4gKwo+ICsgICAgICAgdGwgPSBzdF9zeW5jX3RpbWVsaW5lX2NyZWF0ZSgibW9jayIpOwo+ ICsgICAgICAgaWYgKCF0bCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKwo+ ICsgICAgICAgZiA9IHN0X3N5bmNfcHRfY3JlYXRlKHRsLCAxKTsKPiArICAgICAgIGlmICghZikg ewo+ICsgICAgICAgICAgICAgICBlcnIgPSAtRU5PTUVNOwo+ICsgICAgICAgICAgICAgICBnb3Rv IG91dDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBpZiAoZG1hX2ZlbmNlX2lzX3NpZ25hbGVk KGYpKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2Vycigic3luY3B0OiVsbGQgc2lnbmFsZWQgdG9v IGVhcmx5XG4iLCBmLT5zZXFubyk7Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X2ZlbmNlOwo+ ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN0X3N5bmNfdGltZWxpbmVfc2lnbmFsKHRsLCAxKTsK PiArCj4gKyAgICAgICBpZiAoIWRtYV9mZW5jZV9pc19zaWduYWxlZChmKSkgewo+ICsgICAgICAg ICAgICAgICBwcl9lcnIoInN5bmNwdDolbGxkIG5vdCBzaWduYWxlZCBhZnRlciBpbmNyZW1lbnRc biIsIGYtPnNlcW5vKTsKPiArICAgICAgICAgICAgICAgZ290byBvdXRfZmVuY2U7Cj4gKyAgICAg ICB9Cj4gKwo+ICsgICAgICAgZXJyID0gMDsKPiArb3V0X2ZlbmNlOgo+ICsgICAgICAgZG1hX2Zl bmNlX3NpZ25hbChmKTsKPiArICAgICAgIGRtYV9mZW5jZV9wdXQoZik7Cj4gK291dDoKPiArICAg ICAgIHN0X3N5bmNfdGltZWxpbmVfcHV0KHRsKTsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdHJ1Y3QgY2JfZGVzdHJveSB7Cj4gKyAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlX2NiIGNi Owo+ICsgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZjsKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lk IGNiX2Rlc3Ryb3koc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIHN0cnVjdCBkbWFfZmVuY2VfY2Ig Kl9jYikKPiArewo+ICsgICAgICAgc3RydWN0IGNiX2Rlc3Ryb3kgKmNiID0gY29udGFpbmVyX29m KF9jYiwgdHlwZW9mKCpjYiksIGNiKTsKPiArCj4gKyAgICAgICBwcl9pbmZvKCJzeW5jcHQ6JWxs eCBkZXN0cm95aW5nIHN5bmNwdDolbGx4XG4iLAo+ICsgICAgICAgICAgICAgICBmZW5jZS0+c2Vx bm8sIGNiLT5mLT5zZXFubyk7Cj4gKyAgICAgICBkbWFfZmVuY2VfcHV0KGNiLT5mKTsKPiArICAg ICAgIGNiLT5mID0gTlVMTDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjYl9hdXRvZGVzdHJveSh2 b2lkICphcmcpCj4gK3sKPiArICAgICAgIHN0cnVjdCBzeW5jX3RpbWVsaW5lICp0bDsKPiArICAg ICAgIHN0cnVjdCBjYl9kZXN0cm95IGNiOwo+ICsgICAgICAgaW50IGVyciA9IC1FSU5WQUw7Cj4g Kwo+ICsgICAgICAgLyogQ2hlY2sgdGhhdCB3ZSBjYW4gZHJvcCB0aGUgZmluYWwgc3luY3B0IHJl ZmVyZW5jZSBmcm9tIGEgY2FsbGJhY2sgKi8KPiArCj4gKyAgICAgICB0bCA9IHN0X3N5bmNfdGlt ZWxpbmVfY3JlYXRlKCJtb2NrIik7Cj4gKyAgICAgICBpZiAoIXRsKQo+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAgICBjYi5mID0gc3Rfc3luY19wdF9jcmVhdGUo dGwsIDEpOwo+ICsgICAgICAgaWYgKCFjYi5mKSB7Cj4gKyAgICAgICAgICAgICAgIGVyciA9IC1F Tk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAgICAgfQo+ICsKPiArICAg ICAgIGlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGNiLmYsICZjYi5jYiwgY2JfZGVzdHJveSkp IHsKPiArICAgICAgICAgICAgICAgcHJfZXJyKCJzeW5jcHQ6JWxsZCBzaWduYWxlZCBiZWZvcmUg aW5jcmVtZW50XG4iLCBjYi5mLT5zZXFubyk7Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN0X3N5bmNfdGltZWxpbmVfc2lnbmFsKHRsLCAxKTsK PiArICAgICAgIGlmIChjYi5mKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2Vycigic3luY3B0OiVs bGQgY2FsbGJhY2sgbm90IHJ1blxuIiwgY2IuZi0+c2Vxbm8pOwo+ICsgICAgICAgICAgICAgICBk bWFfZmVuY2VfcHV0KGNiLmYpOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICBlcnIgPSAwOwo+ICtvdXQ6Cj4gKyAgICAgICBzdF9zeW5jX3RpbWVs aW5lX3B1dCh0bCk7Cj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBj Yl9kZXN0cm95XzEyKHZvaWQgKmFyZykKPiArewo+ICsgICAgICAgc3RydWN0IHN5bmNfdGltZWxp bmUgKnRsOwo+ICsgICAgICAgc3RydWN0IGNiX2Rlc3Ryb3kgY2I7Cj4gKyAgICAgICBzdHJ1Y3Qg ZG1hX2ZlbmNlICpmOwo+ICsgICAgICAgaW50IGVyciA9IC1FSU5WQUw7Cj4gKwo+ICsgICAgICAg LyogQ2hlY2sgdGhhdCB3ZSBjYW4gZHJvcCBzb21lIG90aGVyIHN5bmNwdCByZWZlcmVuY2UgZnJv bSBhIGNhbGxiYWNrICovCj4gKwo+ICsgICAgICAgdGwgPSBzdF9zeW5jX3RpbWVsaW5lX2NyZWF0 ZSgibW9jayIpOwo+ICsgICAgICAgaWYgKCF0bCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIC1F Tk9NRU07Cj4gKwo+ICsgICAgICAgZiA9IHN0X3N5bmNfcHRfY3JlYXRlKHRsLCAxKTsKPiArICAg ICAgIGlmICghZikgewo+ICsgICAgICAgICAgICAgICBlcnIgPSAtRU5PTUVNOwo+ICsgICAgICAg ICAgICAgICBnb3RvIG91dDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBjYi5mID0gc3Rfc3lu Y19wdF9jcmVhdGUodGwsIDIpOwo+ICsgICAgICAgaWYgKCFmKSB7Cj4gKyAgICAgICAgICAgICAg IGVyciA9IC1FTk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAgICAgfQo+ ICsKPiArICAgICAgIGlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGYsICZjYi5jYiwgY2JfZGVz dHJveSkpIHsKPiArICAgICAgICAgICAgICAgcHJfZXJyKCJzeW5jcHQ6JWxsZCBzaWduYWxlZCBi ZWZvcmUgaW5jcmVtZW50XG4iLCBmLT5zZXFubyk7Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0 Owo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHN0X3N5bmNfdGltZWxpbmVfc2lnbmFsKHRsLCAx KTsKPiArICAgICAgIGlmIChjYi5mKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2Vycigic3luY3B0 OiVsbGQgY2FsbGJhY2sgbm90IHJ1blxuIiwgZi0+c2Vxbm8pOwo+ICsgICAgICAgICAgICAgICBk bWFfZmVuY2VfcHV0KGNiLmYpOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9mZW5jZTsKPiAr ICAgICAgIH0KPiArCj4gKyAgICAgICBlcnIgPSAwOwo+ICtvdXRfZmVuY2U6Cj4gKyAgICAgICBk bWFfZmVuY2VfcHV0KGYpOwo+ICtvdXQ6Cj4gKyAgICAgICBzdF9zeW5jX3RpbWVsaW5lX3B1dCh0 bCk7Cj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjYl9kZXN0cm95 XzIxKHZvaWQgKmFyZykKPiArewo+ICsgICAgICAgc3RydWN0IHN5bmNfdGltZWxpbmUgKnRsOwo+ ICsgICAgICAgc3RydWN0IGNiX2Rlc3Ryb3kgY2I7Cj4gKyAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNl ICpmOwo+ICsgICAgICAgaW50IGVyciA9IC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgLyogQ2hlY2sg dGhhdCB3ZSBjYW4gZHJvcCBhbiBlYXJsaWVyIHN5bmNwdCByZWZlcmVuY2UgZnJvbSBhIGNhbGxi YWNrICovCj4gKwo+ICsgICAgICAgdGwgPSBzdF9zeW5jX3RpbWVsaW5lX2NyZWF0ZSgibW9jayIp Owo+ICsgICAgICAgaWYgKCF0bCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4g Kwo+ICsgICAgICAgY2IuZiA9IHN0X3N5bmNfcHRfY3JlYXRlKHRsLCAxKTsKPiArICAgICAgIGlm ICghZikgewo+ICsgICAgICAgICAgICAgICBlcnIgPSAtRU5PTUVNOwo+ICsgICAgICAgICAgICAg ICBnb3RvIG91dDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBmID0gc3Rfc3luY19wdF9jcmVh dGUodGwsIDIpOwo+ICsgICAgICAgaWYgKCFmKSB7Cj4gKyAgICAgICAgICAgICAgIGVyciA9IC1F Tk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAgICAgfQo+ICsKPiArICAg ICAgIGlmIChkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGYsICZjYi5jYiwgY2JfZGVzdHJveSkpIHsK PiArICAgICAgICAgICAgICAgcHJfZXJyKCJzeW5jcHQ6JWxsZCBzaWduYWxlZCBiZWZvcmUgaW5j cmVtZW50XG4iLCBmLT5zZXFubyk7Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICsgICAg ICAgfQo+ICsKPiArICAgICAgIHN0X3N5bmNfdGltZWxpbmVfc2lnbmFsKHRsLCAyKTsKPiArICAg ICAgIGlmIChjYi5mKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2Vycigic3luY3B0OiVsbGQgY2Fs bGJhY2sgbm90IHJ1blxuIiwgZi0+c2Vxbm8pOwo+ICsgICAgICAgICAgICAgICBkbWFfZmVuY2Vf cHV0KGNiLmYpOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF9mZW5jZTsKPiArICAgICAgIH0K PiArCj4gKyAgICAgICBlcnIgPSAwOwo+ICtvdXRfZmVuY2U6Cj4gKyAgICAgICBkbWFfZmVuY2Vf cHV0KGYpOwo+ICtvdXQ6Cj4gKyAgICAgICBzdF9zeW5jX3RpbWVsaW5lX3B1dCh0bCk7Cj4gKyAg ICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBjYl9kZXN0cm95XzIyKHZvaWQg KmFyZykKPiArewo+ICsgICAgICAgc3RydWN0IHN5bmNfdGltZWxpbmUgKnRsOwo+ICsgICAgICAg c3RydWN0IGNiX2Rlc3Ryb3kgY2I7Cj4gKyAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmOwo+ICsg ICAgICAgaW50IGVyciA9IC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgLyogQ2hlY2sgdGhhdCB3ZSBj YW4gZHJvcCB0aGUgbGF0ZXIgc3luY3B0IHJlZmVyZW5jZSBmcm9tIGEgY2FsbGJhY2sgKi8KPiAr Cj4gKyAgICAgICB0bCA9IHN0X3N5bmNfdGltZWxpbmVfY3JlYXRlKCJtb2NrIik7Cj4gKyAgICAg ICBpZiAoIXRsKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAg ICBmID0gc3Rfc3luY19wdF9jcmVhdGUodGwsIDEpOwo+ICsgICAgICAgaWYgKCFmKSB7Cj4gKyAg ICAgICAgICAgICAgIGVyciA9IC1FTk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ ICsgICAgICAgfQo+ICsKPiArICAgICAgIGNiLmYgPSBzdF9zeW5jX3B0X2NyZWF0ZSh0bCwgMik7 Cj4gKyAgICAgICBpZiAoIWYpIHsKPiArICAgICAgICAgICAgICAgZXJyID0gLUVOT01FTTsKPiAr ICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgaWYgKGRt YV9mZW5jZV9hZGRfY2FsbGJhY2soZiwgJmNiLmNiLCBjYl9kZXN0cm95KSkgewo+ICsgICAgICAg ICAgICAgICBwcl9lcnIoInN5bmNwdDolbGxkIHNpZ25hbGVkIGJlZm9yZSBpbmNyZW1lbnRcbiIs IGYtPnNlcW5vKTsKPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICB9Cj4gKwo+ ICsgICAgICAgc3Rfc3luY190aW1lbGluZV9zaWduYWwodGwsIDIpOwo+ICsgICAgICAgaWYgKGNi LmYpIHsKPiArICAgICAgICAgICAgICAgcHJfZXJyKCJzeW5jcHQ6JWxsZCBjYWxsYmFjayBub3Qg cnVuXG4iLCBmLT5zZXFubyk7Cj4gKyAgICAgICAgICAgICAgIGRtYV9mZW5jZV9wdXQoY2IuZik7 Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X2ZlbmNlOwo+ICsgICAgICAgfQo+ICsKPiArICAg ICAgIGVyciA9IDA7Cj4gK291dF9mZW5jZToKPiArICAgICAgIGRtYV9mZW5jZV9wdXQoZik7Cj4g K291dDoKPiArICAgICAgIHN0X3N5bmNfdGltZWxpbmVfcHV0KHRsKTsKPiArICAgICAgIHJldHVy biAwOwo+ICt9Cj4gKwo+ICtpbnQgc3dfc3luYyh2b2lkKQo+ICt7Cj4gKyAgICAgICBzdGF0aWMg Y29uc3Qgc3RydWN0IHN1YnRlc3QgdGVzdHNbXSA9IHsKPiArICAgICAgICAgICAgICAgU1VCVEVT VChzYW5pdHljaGVjayksCj4gKyAgICAgICAgICAgICAgIFNVQlRFU1Qoc2lnbmFsKSwKPiArICAg ICAgICAgICAgICAgU1VCVEVTVChjYl9hdXRvZGVzdHJveSksCj4gKyAgICAgICAgICAgICAgIFNV QlRFU1QoY2JfZGVzdHJveV8xMiksCj4gKyAgICAgICAgICAgICAgIFNVQlRFU1QoY2JfZGVzdHJv eV8yMSksCj4gKyAgICAgICAgICAgICAgIFNVQlRFU1QoY2JfZGVzdHJveV8yMiksCj4gKyAgICAg ICB9Owo+ICsKPiArICAgICAgIHJldHVybiBzdWJ0ZXN0cyh0ZXN0cywgTlVMTCk7Cj4gK30KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9z d19zeW5jLmMKPiBpbmRleCAxMTZkYWQ2Yzc5MDUuLjdjMjI5ZjRhNmI1NiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jCj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL3N3X3N5 bmMuYwo+IEBAIC00MjYsMyArNDI2LDQyIEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg c3dfc3luY19kZWJ1Z2ZzX2ZvcHMgPSB7Cj4gICAgICAgICAudW5sb2NrZWRfaW9jdGwgPSBzd19z eW5jX2lvY3RsLAo+ICAgICAgICAgLmNvbXBhdF9pb2N0bCAgID0gY29tcGF0X3B0cl9pb2N0bCwK PiAgfTsKPiArCj4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19ETUFCVUZfU0VMRlRFU1RTKQo+ICtz dHJ1Y3Qgc3luY190aW1lbGluZSAqc3Rfc3luY190aW1lbGluZV9jcmVhdGUoY29uc3QgY2hhciAq bmFtZSkKPiArewo+ICsgICAgICAgcmV0dXJuIHN5bmNfdGltZWxpbmVfY3JlYXRlKG5hbWUpOwo+ ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKHN0X3N5bmNfdGltZWxpbmVfY3JlYXRlKTsKPiArCj4g K3ZvaWQgc3Rfc3luY190aW1lbGluZV9nZXQoc3RydWN0IHN5bmNfdGltZWxpbmUgKnRsKQo+ICt7 Cj4gKyAgICAgICBzeW5jX3RpbWVsaW5lX2dldCh0bCk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9H UEwoc3Rfc3luY190aW1lbGluZV9nZXQpOwo+ICsKPiArdm9pZCBzdF9zeW5jX3RpbWVsaW5lX3B1 dChzdHJ1Y3Qgc3luY190aW1lbGluZSAqdGwpCj4gK3sKPiArICAgICAgIHN5bmNfdGltZWxpbmVf cHV0KHRsKTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChzdF9zeW5jX3RpbWVsaW5lX3B1dCk7 Cj4gKwo+ICt2b2lkIHN0X3N5bmNfdGltZWxpbmVfc2lnbmFsKHN0cnVjdCBzeW5jX3RpbWVsaW5l ICp0bCwgdW5zaWduZWQgaW50IGluYykKPiArewo+ICsgICAgICAgc3luY190aW1lbGluZV9zaWdu YWwodGwsIGluYyk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoc3Rfc3luY190aW1lbGluZV9z aWduYWwpOwo+ICsKPiArc3RydWN0IGRtYV9mZW5jZSAqCj4gK3N0X3N5bmNfcHRfY3JlYXRlKHN0 cnVjdCBzeW5jX3RpbWVsaW5lICp0bCwgdW5zaWduZWQgaW50IHNlcW5vKQo+ICt7Cj4gKyAgICAg ICBzdHJ1Y3Qgc3luY19wdCAqcHQ7Cj4gKwo+ICsgICAgICAgcHQgPSBzeW5jX3B0X2NyZWF0ZSh0 bCwgc2Vxbm8pOwo+ICsgICAgICAgaWYgKCFwdCkKPiArICAgICAgICAgICAgICAgcmV0dXJuIE5V TEw7Cj4gKwo+ICsgICAgICAgcmV0dXJuICZwdC0+YmFzZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9M X0dQTChzdF9zeW5jX3B0X2NyZWF0ZSk7Cj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS1idWYvc3luY19kZWJ1Zy5oIGIvZHJpdmVycy9kbWEtYnVmL3N5bmNfZGVidWcuaAo+IGlu ZGV4IGZkMDczZmMzMjMyOS4uN2M5NmQ5YTJjMDJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZG1h LWJ1Zi9zeW5jX2RlYnVnLmgKPiArKysgYi9kcml2ZXJzL2RtYS1idWYvc3luY19kZWJ1Zy5oCj4g QEAgLTcxLDQgKzcxLDEyIEBAIHZvaWQgc3luY190aW1lbGluZV9kZWJ1Z19yZW1vdmUoc3RydWN0 IHN5bmNfdGltZWxpbmUgKm9iaik7Cj4gIHZvaWQgc3luY19maWxlX2RlYnVnX2FkZChzdHJ1Y3Qg c3luY19maWxlICpmZW5jZSk7Cj4gIHZvaWQgc3luY19maWxlX2RlYnVnX3JlbW92ZShzdHJ1Y3Qg c3luY19maWxlICpmZW5jZSk7Cj4KPiArc3RydWN0IHN5bmNfdGltZWxpbmUgKnN0X3N5bmNfdGlt ZWxpbmVfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUpOwo+ICt2b2lkIHN0X3N5bmNfdGltZWxpbmVf Z2V0KHN0cnVjdCBzeW5jX3RpbWVsaW5lICp0bCk7Cj4gK3ZvaWQgc3Rfc3luY190aW1lbGluZV9w dXQoc3RydWN0IHN5bmNfdGltZWxpbmUgKnRsKTsKPiArdm9pZCBzdF9zeW5jX3RpbWVsaW5lX3Np Z25hbChzdHJ1Y3Qgc3luY190aW1lbGluZSAqdGwsIHVuc2lnbmVkIGludCBpbmMpOwo+ICsKPiAr c3RydWN0IGRtYV9mZW5jZSAqCj4gK3N0X3N5bmNfcHRfY3JlYXRlKHN0cnVjdCBzeW5jX3RpbWVs aW5lICp0bCwgdW5zaWduZWQgaW50IHNlcW5vKTsKPiArCj4gICNlbmRpZiAvKiBfTElOVVhfU1lO Q19IICovCj4gLS0KPiAyLjIwLjEKPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcmktZGV2ZWwK