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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22158C433EF for ; Thu, 18 Nov 2021 18:50:07 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 E1AA761AFD for ; Thu, 18 Nov 2021 18:50:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E1AA761AFD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PyAaiy4dRKI+t/f2ejC3bJipG6x53rRU97J3vpmLm/0=; b=OU9C7asV23elDA Q2FLTLCrSHIOYYc8R8VSLr8lv5/8wQwTnI+IyRNmF9P3VWg+15mSgwUlgeu2iQClgBSe3/5+D/Sk2 5rt+hv4zIeDDVVAYRZP8lECKFXOpT57dnUSVh7aaaXxgfwdOfi1mFLOb6CXmJX3OmNKP7VlSAtrM8 q2kTN3uyRRr6WhaHkpgPmgNqVDIcIog/ojSj6ADY3Jqo7LiNEujoOvcGj2mT4K17c74wzp1JjbgTw eu36YhfmuWHm+iEaVi3Qs9ACMToB6xvEhaFEqqeRJsdF3X9kY+DjcWSDFGZcEX5Xkrbqn0QHCL9Dc UteGldNaD3EdbVFL6ZrQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnmSS-008dQL-Mt; Thu, 18 Nov 2021 18:48:28 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mnmR4-008cwG-KW for linux-arm-kernel@lists.infradead.org; Thu, 18 Nov 2021 18:47:04 +0000 Received: by mail-wm1-x334.google.com with SMTP id g191-20020a1c9dc8000000b0032fbf912885so5568472wme.4 for ; Thu, 18 Nov 2021 10:47:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WiAvd7aj2aH/vAg+yhCdjHnmYC+nkAXagIoObHJiQv8=; b=M1ZUn5T7KFEZkTDBtCm/vAX6Yol8u9RSG3g940sZtr/aSEdJSO7qY3Ow0txJSnqqz3 ufF1gfQm477ArATrlNF3uEYwsfDT1oEi9k5gwKjzz/FrbwIZ2AcVNAgRGKqu3v4/so8x 59GmduwgDq/mV5AwXPZUINwfB7W2uydqcm6/7ql46hUFlPz+3ckOqSVrwY4W1JFz3F0u AYwVHwep3WgPYDu+/C5EtcKzPNRjPF0UkaIhuVxy95yF/dUKJS9bgARDd8L29FeAWkFh FxQX69PbTZW8GoMf1tm2mREulsKoQtCbBWn7Ha6MqlvOmk2ZoaaxAezKKHC7tBUb2spS JDBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WiAvd7aj2aH/vAg+yhCdjHnmYC+nkAXagIoObHJiQv8=; b=NhqHKBDFTiJBAP5+VU3oxmbb40bL2Z/QAqcD7XHdLM78of1a33xnDasm8gGIyXpbyZ qK1kq/MwyWB0my9LcNg9SWsL/EsB23uG96WFTv4NCVZI8wPL/NejZoCFpFNb8k02cZm0 a5WVDRscHzjTEBs5Zx/4cR3IrkwGnNAXqpuad75xxHFZr+v9COh0Lpa40XYlWhLlyhQ7 7kyr37PLPOefpDYVRsWF0a+ogc6k1PN81fFstJWB+vrB9eXZHAgnne5GlgU5Ow2jGWoA 0D08zVCfeGdPruE+NUnHQ/LAFNzheD6eW/xoxpH/gN38u2aRLFk09bMq1Dm9Dk7EJfnV 6soQ== X-Gm-Message-State: AOAM533A1LJv/bFZ7CWWVI+XVvnU6xWlHlXWjEM/nq5mvSiqg4HiCJhW D2xcikTtkptfAnky+7SxzwG/+g== X-Google-Smtp-Source: ABdhPJyoOeBfLMmm5zXegCQd2cYXFTf5fHVLMYDF0hXHgyZbSYPhJBDdRKu6lmzxCWLgM6m+dLwxqQ== X-Received: by 2002:a1c:790d:: with SMTP id l13mr12912116wme.101.1637261220654; Thu, 18 Nov 2021 10:47:00 -0800 (PST) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id j40sm639481wms.16.2021.11.18.10.46.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Nov 2021 10:46:55 -0800 (PST) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 743DD1FF9E; Thu, 18 Nov 2021 18:46:50 +0000 (GMT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: kvm@vger.kernel.org Cc: idan.horowitz@gmail.com, qemu-arm@nongnu.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@arm.com, maz@kernel.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [kvm-unit-tests PATCH v8 07/10] arm/locking-tests: add comprehensive locking test Date: Thu, 18 Nov 2021 18:46:47 +0000 Message-Id: <20211118184650.661575-8-alex.bennee@linaro.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211118184650.661575-1-alex.bennee@linaro.org> References: <20211118184650.661575-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211118_104702_721788_8644CA28 X-CRM114-Status: GOOD ( 34.03 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org VGhpcyB0ZXN0IGhhcyBiZWVuIHdyaXR0ZW4gbWFpbmx5IHRvIHN0cmVzcyBtdWx0aS10aHJlYWRl ZCBUQ0cgYmVoYXZpb3VyCmJ1dCB3aWxsIGRlbW9uc3RyYXRlIGZhaWx1cmUgYnkgZGVmYXVsdCBv biByZWFsIGhhcmR3YXJlLiBUaGUgdGVzdCB0YWtlcwp0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6 CgogIC0gImxvY2siIHVzZSBHQ0MncyBsb2NraW5nIHNlbWFudGljcwogIC0gImF0b21pYyIgdXNl IEdDQydzIF9fYXRvbWljIHByaW1pdGl2ZXMKICAtICJ3ZmVsb2NrIiB1c2UgV2FpdEZvckV2ZW50 IHNsZWVwCiAgLSAiZXhjbCIgdXNlIGxvYWQvc3RvcmUgZXhjbHVzaXZlIHNlbWFudGljcwoKQWxz byB0d28gbW9yZSBvcHRpb25zIGFsbG93IHRoZSB0ZXN0IHRvIGJlIHR3ZWFrZWQKCiAgLSAibm9z aHVmZmxlIiBkaXNhYmxlcyB0aGUgbWVtb3J5IHNodWZmbGluZwogIC0gImNvdW50PSVsZCIgc2V0 IHlvdXIgb3duIHBlci1DUFUgaW5jcmVtZW50IGNvdW50CgpTaWduZWQtb2ZmLWJ5OiBBbGV4IEJl bm7DqWUgPGFsZXguYmVubmVlQGxpbmFyby5vcmc+CgotLS0KdjIKICAtIERvbid0IHVzZSB0aHVt YiBzdHlsZSBzdHJleGVxIHN0dWZmCiAgLSBBZGQgYXRvbWljIGFuZCB3ZmVsb2NrIHRlc3RzCiAg LSBBZGQgY291bnQvbm9zaHVmZmxlIHRlc3QgY29udHJvbHMKICAtIE1vdmUgYmFycmllciB0ZXN0 cyB0byBzZXBhcmF0ZSB0ZXN0IGZpbGUKdjQKICAtIGZpeCB1cCB1bml0ZXN0cy5jZmcgdG8gdXNl IGNvcnJlY3QgdGVzdCBuYW1lCiAgLSBtb3ZlIGludG8gImxvY2tpbmciIGdyb3VwLCByZW1vdmUg YmFycmllciB0ZXN0cwogIC0gdXNlIGEgdGFibGUgdG8gYWRkIHRlc3RzLCBtYXJrIHdoaWNoIGFy ZSBleHBlY3RlZCB0byB3b3JrCiAgLSBjb3JyZWN0bHkgcmVwb3J0IFhGQUlMCnY1CiAgLSBtYXgg b3V0IGF0IC1zbXAgNCBpbiB1bml0dGVzdC5jZmcKdjcKICAtIG1ha2UgdGVzdCBjb250cm9sIGZs YWdzIGJvb2xzCiAgLSBkZWZhdWx0IHRoZSBjb3VudCB0byAxMDAwMDAgKHNvIGl0IGRvZXNuJ3Qg dGltZW91dCkKdjgKICAtIHJtIHNwaW5sb2NrIHRlc3QKICAtIGZpeCBjaGVja3BhdGNoIGVycm9y cwogIC0gZml4IHJlcG9ydCB1c2FnZQotLS0KIGFybS9NYWtlZmlsZS5jb21tb24gfCAgIDIgKy0K IGFybS9sb2NraW5nLXRlc3QuYyAgfCAzMjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGFybS9zcGlubG9jay10ZXN0LmMgfCAgODcgLS0tLS0tLS0tLS0tCiBh cm0vbXR0Y2d0ZXN0cy5jZmcgIHwgIDI5ICsrKysKIDQgZmlsZXMgY2hhbmdlZCwgMzUyIGluc2Vy dGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFybS9sb2NraW5n LXRlc3QuYwogZGVsZXRlIG1vZGUgMTAwNjQ0IGFybS9zcGlubG9jay10ZXN0LmMKCmRpZmYgLS1n aXQgYS9hcm0vTWFrZWZpbGUuY29tbW9uIGIvYXJtL01ha2VmaWxlLmNvbW1vbgppbmRleCBlM2Yw NGYyLi5mOTA1OTcxIDEwMDY0NAotLS0gYS9hcm0vTWFrZWZpbGUuY29tbW9uCisrKyBiL2FybS9N YWtlZmlsZS5jb21tb24KQEAgLTUsNyArNSw2IEBACiAjCiAKIHRlc3RzLWNvbW1vbiAgPSAkKFRF U1RfRElSKS9zZWxmdGVzdC5mbGF0Ci10ZXN0cy1jb21tb24gKz0gJChURVNUX0RJUikvc3Bpbmxv Y2stdGVzdC5mbGF0CiB0ZXN0cy1jb21tb24gKz0gJChURVNUX0RJUikvcGNpLXRlc3QuZmxhdAog dGVzdHMtY29tbW9uICs9ICQoVEVTVF9ESVIpL3BtdS5mbGF0CiB0ZXN0cy1jb21tb24gKz0gJChU RVNUX0RJUikvZ2ljLmZsYXQKQEAgLTEzLDYgKzEyLDcgQEAgdGVzdHMtY29tbW9uICs9ICQoVEVT VF9ESVIpL3BzY2kuZmxhdAogdGVzdHMtY29tbW9uICs9ICQoVEVTVF9ESVIpL3NpZXZlLmZsYXQK IHRlc3RzLWNvbW1vbiArPSAkKFRFU1RfRElSKS9wbDAzMS5mbGF0CiB0ZXN0cy1jb21tb24gKz0g JChURVNUX0RJUikvdGxiZmx1c2gtY29kZS5mbGF0Cit0ZXN0cy1jb21tb24gKz0gJChURVNUX0RJ UikvbG9ja2luZy10ZXN0LmZsYXQKIAogdGVzdHMtYWxsID0gJCh0ZXN0cy1jb21tb24pICQodGVz dHMpCiBhbGw6IGRpcmVjdG9yaWVzICQodGVzdHMtYWxsKQpkaWZmIC0tZ2l0IGEvYXJtL2xvY2tp bmctdGVzdC5jIGIvYXJtL2xvY2tpbmctdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmVhYjk0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9hcm0vbG9ja2luZy10ZXN0LmMK QEAgLTAsMCArMSwzMjIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9y LWxhdGVyCisvKgorICogTG9ja2luZyBUZXN0CisgKgorICogVGhpcyB0ZXN0IGFsbG93cyB1cyB0 byBzdHJlc3MgdGhlIHZhcmlvdXMgYXRvbWljIHByaW1pdGl2ZXMgb2YgYSBWTQorICogZ3Vlc3Qu IEEgbnVtYmVyIG9mIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSB0aGF0IHVzZSB2YXJpb3VzIHBhdHRl cm5zCisgKiB0byBpbXBsZW1lbnQgYSBsb2NrLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBM aW5hcm8KKyAqIEF1dGhvcjogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5lZUBsaW5hcm8ub3JnPgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpYmNmbGF0Lmg+CisjaW5j bHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9jcHVtYXNrLmg+CisjaW5jbHVkZSA8YXNt L2JhcnJpZXIuaD4KKyNpbmNsdWRlIDxhc20vbW11Lmg+CisKKyNpbmNsdWRlIDxwcm5nLmg+CisK KyNkZWZpbmUgTUFYX0NQVVMgOAorCisvKiBUZXN0IGRlZmluaXRpb24gc3RydWN0dXJlCisgKgor ICogQSBzaW1wbGUgc3RydWN0dXJlIHRoYXQgZGVzY3JpYmVzIHRoZSB0ZXN0IG5hbWUsIGV4cGVj dGVkIHBhc3MgYW5kCisgKiBpbmNyZW1lbnQgZnVuY3Rpb24uCisgKi8KKworLyogRnVuY3Rpb24g cG9pbnRlcnMgZm9yIHRlc3QgKi8KK3R5cGVkZWYgdm9pZCAoKmluY19mbikoaW50IGNwdSk7CisK K3R5cGVkZWYgc3RydWN0IHsKKwljb25zdCBjaGFyICp0ZXN0X25hbWU7CisJYm9vbCAgc2hvdWxk X3Bhc3M7CisJaW5jX2ZuIG1haW5fZm47Cit9IHRlc3RfZGVzY3JfdDsKKworLyogSG93IG1hbnkg aW5jcmVtZW50cyB0byBkbyAqLworc3RhdGljIGludCBpbmNyZW1lbnRfY291bnQgPSAxMDAwMDAw Oworc3RhdGljIGJvb2wgZG9fc2h1ZmZsZSA9IHRydWU7CisKKy8qIFNoYXJlZCB2YWx1ZSBhbGwg dGhlIHRlc3RzIGF0dGVtcHQgdG8gc2FmZWx5IGluY3JlbWVudCB1c2luZworICogdmFyaW91cyBm b3JtcyBvZiBhdG9taWMgbG9ja2luZyBhbmQgZXhjbHVzaXZlIGJlaGF2aW91ci4KKyAqLworc3Rh dGljIHVuc2lnbmVkIGludCBzaGFyZWRfdmFsdWU7CisKKy8qIFBBR0VfU0laRSAqIHVpbnQzMl90 IG1lYW5zIHdlIHNwYW4gc2V2ZXJhbCBwYWdlcyAqLworX19hdHRyaWJ1dGVfXygoYWxpZ25lZChQ QUdFX1NJWkUpKSkgc3RhdGljIHVpbnQzMl90IG1lbW9yeV9hcnJheVtQQUdFX1NJWkVdOworCisv KiBXZSB1c2UgdGhlIGFsaWdubWVudCBvZiB0aGUgZm9sbG93aW5nIHRvIGVuc3VyZSBhY2Nlc3Nl cyB0byBsb2NraW5nCisgKiBhbmQgc3luY2hyb25pc2F0aW9uIHByaW1hdGl2ZXMgZG9uJ3QgaW50 ZXJmZXJlIHdpdGggdGhlIHBhZ2Ugb2YgdGhlCisgKiBzaGFyZWQgdmFsdWUKKyAqLworX19hdHRy aWJ1dGVfXygoYWxpZ25lZChQQUdFX1NJWkUpKSkgc3RhdGljIHVuc2lnbmVkIGludCBwZXJfY3B1 X3ZhbHVlW01BWF9DUFVTXTsKK19fYXR0cmlidXRlX18oKGFsaWduZWQoUEFHRV9TSVpFKSkpIHN0 YXRpYyBjcHVtYXNrX3Qgc21wX3Rlc3RfY29tcGxldGU7CitfX2F0dHJpYnV0ZV9fKChhbGlnbmVk KFBBR0VfU0laRSkpKSBzdHJ1Y3QgaXNhYWNfY3R4IHBybmdfY29udGV4dFtNQVhfQ1BVU107CisK Ky8qIFNvbWUgb2YgdGhlIGFwcHJvYWNoZXMgdXNlIGEgZ2xvYmFsIGxvY2sgdG8gcHJldmVudCBj b250ZW50aW9uLiAqLworc3RhdGljIGludCBnbG9iYWxfbG9jazsKKworLyogSW4gYW55IFNNUCBz ZXR0aW5nIHRoaXMgKnNob3VsZCogZmFpbCBkdWUgdG8gY29yZXMgc3RlcHBpbmcgb24KKyAqIGVh Y2ggb3RoZXIgdXBkYXRpbmcgdGhlIHNoYXJlZCB2YXJpYWJsZQorICovCitzdGF0aWMgdm9pZCBp bmNyZW1lbnRfc2hhcmVkKGludCBjcHUpCit7CisJKHZvaWQpY3B1OworCisJc2hhcmVkX3ZhbHVl Kys7Cit9CisKKy8qIEdDQyBfX3N5bmMgcHJpbWl0aXZlcyBhcmUgZGVwcmVjYXRlZCBpbiBmYXZv dXIgb2YgX19hdG9taWMgKi8KK3N0YXRpYyB2b2lkIGluY3JlbWVudF9zaGFyZWRfd2l0aF9sb2Nr KGludCBjcHUpCit7CisJKHZvaWQpY3B1OworCisJd2hpbGUgKF9fc3luY19sb2NrX3Rlc3RfYW5k X3NldCgmZ2xvYmFsX2xvY2ssIDEpKTsKKworCXNoYXJlZF92YWx1ZSsrOworCisJX19zeW5jX2xv Y2tfcmVsZWFzZSgmZ2xvYmFsX2xvY2spOworfQorCisvKgorICogSW4gcHJhY3RpY2UgZXZlbiBf X0FUT01JQ19SRUxBWEVEIHVzZXMgQVJNJ3MgbGR4ci9zdGV4IGV4Y2x1c2l2ZQorICogc2VtYW50 aWNzCisgKi8KK3N0YXRpYyB2b2lkIGluY3JlbWVudF9zaGFyZWRfd2l0aF9hdG9taWMoaW50IGNw dSkKK3sKKwkodm9pZCljcHU7CisKKwlfX2F0b21pY19hZGRfZmV0Y2goJnNoYXJlZF92YWx1ZSwg MSwgX19BVE9NSUNfU0VRX0NTVCk7Cit9CisKKworLyoKKyAqIExvYWQvc3RvcmUgZXhjbHVzaXZl IHdpdGggV0ZFICh3YWl0LWZvci1ldmVudCkKKyAqCisgKiBTZWUgQVJNdjggQVJNIGV4YW1wbGVz OgorICogICBVc2Ugb2YgV2FpdCBGb3IgRXZlbnQgKFdGRSkgYW5kIFNlbmQgRXZlbnQgKFNFVikg d2l0aCBsb2NrcworICovCisKK3N0YXRpYyB2b2lkIGluY3JlbWVudF9zaGFyZWRfd2l0aF93ZmVs b2NrKGludCBjcHUpCit7CisJKHZvaWQpY3B1OworCisjaWYgZGVmaW5lZChfX2FhcmNoNjRfXykK Kwlhc20gdm9sYXRpbGUoCisJIgltb3YgICAgIHcxLCAjMVxuIgorCSIgICAgICAgc2V2bFxuIgor CSIgICAgICAgcHJmbSBQU1RMMUtFRVAsIFslW2xvY2tdXVxuIgorCSIxOiAgICAgd2ZlXG4iCisJ IglsZGF4cgl3MCwgWyVbbG9ja11dXG4iCisJIgljYm56ICAgIHcwLCAxYlxuIgorCSIJc3R4ciAg ICB3MCwgdzEsIFslW2xvY2tdXVxuIgorCSIJY2Juegl3MCwgMWJcbiIKKwkvKiBsb2NrIGhlbGQg Ki8KKwkiCWxkcgl3MCwgWyVbc3B0cl1dXG4iCisJIglhZGQJdzAsIHcwLCAjMHgxXG4iCisJIglz dHIJdzAsIFslW3NwdHJdXVxuIgorCS8qIG5vdyByZWxlYXNlICovCisJIglzdGxyCXd6ciwgWyVb bG9ja11dXG4iCisJOiAvKiBvdXQgKi8KKwk6IFtsb2NrXSAiciIgKCZnbG9iYWxfbG9jayksIFtz cHRyXSAiciIgKCZzaGFyZWRfdmFsdWUpIC8qIGluICovCisJOiAidzAiLCAidzEiLCAiY2MiKTsK KyNlbHNlCisJYXNtIHZvbGF0aWxlKAorCSIJbW92ICAgICByMSwgIzFcbiIKKwkiMToJbGRyZXgJ cjAsIFslW2xvY2tdXVxuIgorCSIJY21wICAgICByMCwgIzBcbiIKKwkiCXdmZW5lXG4iCisJIglz dHJleGVxIHIwLCByMSwgWyVbbG9ja11dXG4iCisJIgljbXBlcQlyMCwgIzBcbiIKKwkiCWJuZQkx YlxuIgorCSIJZG1iXG4iCisJLyogbG9jayBoZWxkICovCisJIglsZHIJcjAsIFslW3NwdHJdXVxu IgorCSIJYWRkCXIwLCByMCwgIzB4MVxuIgorCSIJc3RyCXIwLCBbJVtzcHRyXV1cbiIKKwkvKiBu b3cgcmVsZWFzZSAqLworCSIJbW92CXIwLCAjMFxuIgorCSIJZG1iXG4iCisJIglzdHIJcjAsIFsl W2xvY2tdXVxuIgorCSIJZHNiXG4iCisJIglzZXZcbiIKKwk6IC8qIG91dCAqLworCTogW2xvY2td ICJyIiAoJmdsb2JhbF9sb2NrKSwgW3NwdHJdICJyIiAoJnNoYXJlZF92YWx1ZSkgLyogaW4gKi8K Kwk6ICJyMCIsICJyMSIsICJjYyIpOworI2VuZGlmCit9CisKKworLyoKKyAqIEhhbmQtd3JpdHRl biB2ZXJzaW9uIG9mIHRoZSBsb2FkL3N0b3JlIGV4Y2x1c2l2ZQorICovCitzdGF0aWMgdm9pZCBp bmNyZW1lbnRfc2hhcmVkX3dpdGhfZXhjbChpbnQgY3B1KQoreworCSh2b2lkKWNwdTsKKworI2lm IGRlZmluZWQoX19hYXJjaDY0X18pCisJYXNtIHZvbGF0aWxlKAorCSIxOglsZHhyCXcwLCBbJVtz cHRyXV1cbiIKKwkiCWFkZCAgICAgdzAsIHcwLCAjMHgxXG4iCisJIglzdHhyCXcxLCB3MCwgWyVb c3B0cl1dXG4iCisJIgljYm56CXcxLCAxYlxuIgorCTogLyogb3V0ICovCisJOiBbc3B0cl0gInIi ICgmc2hhcmVkX3ZhbHVlKSAvKiBpbiAqLworCTogIncwIiwgIncxIiwgImNjIik7CisjZWxzZQor CWFzbSB2b2xhdGlsZSgKKwkiMToJbGRyZXgJcjAsIFslW3NwdHJdXVxuIgorCSIJYWRkICAgICBy MCwgcjAsICMweDFcbiIKKwkiCXN0cmV4CXIxLCByMCwgWyVbc3B0cl1dXG4iCisJIgljbXAJcjEs ICMwXG4iCisJIglibmUJMWJcbiIKKwk6IC8qIG91dCAqLworCTogW3NwdHJdICJyIiAoJnNoYXJl ZF92YWx1ZSkgLyogaW4gKi8KKwk6ICJyMCIsICJyMSIsICJjYyIpOworI2VuZGlmCit9CisKKy8q IFRlc3QgYXJyYXkgKi8KK3N0YXRpYyB0ZXN0X2Rlc2NyX3QgdGVzdHNbXSA9IHsKKwl7ICJub25l IiwgZmFsc2UsIGluY3JlbWVudF9zaGFyZWQgfSwKKwl7ICJsb2NrIiwgdHJ1ZSwgaW5jcmVtZW50 X3NoYXJlZF93aXRoX2xvY2sgfSwKKwl7ICJhdG9taWMiLCB0cnVlLCBpbmNyZW1lbnRfc2hhcmVk X3dpdGhfYXRvbWljIH0sCisJeyAid2ZlbG9jayIsIHRydWUsIGluY3JlbWVudF9zaGFyZWRfd2l0 aF93ZmVsb2NrIH0sCisJeyAiZXhjbCIsIHRydWUsIGluY3JlbWVudF9zaGFyZWRfd2l0aF9leGNs IH0KK307CisKKy8qIFRoZSBpZGVhIG9mIHRoaXMgaXMganVzdCB0byBnZW5lcmF0ZSBzb21lIHJh bmRvbSBsb2FkL3N0b3JlCisgKiBhY3Rpdml0eSB3aGljaCBtYXkgb3IgbWF5IG5vdCByYWNlIHdp dGggYW4gdW4tYmFycmllZCBpbmNyZW1lbnRlZAorICogb2YgdGhlIHNoYXJlZCBjb3VudGVyCisg Ki8KK3N0YXRpYyB2b2lkIHNodWZmbGVfbWVtb3J5KGludCBjcHUpCit7CisJaW50IGk7CisJdWlu dDMyX3QgbHNwYXQgPSBpc2FhY19uZXh0X3VpbnQzMigmcHJuZ19jb250ZXh0W2NwdV0pOworCXVp bnQzMl90IHNlcSA9IGlzYWFjX25leHRfdWludDMyKCZwcm5nX2NvbnRleHRbY3B1XSk7CisJaW50 IGNvdW50ID0gc2VxICYgMHgxZjsKKwl1aW50MzJfdCB2YWwgPSAwOworCisJc2VxID4+PSA1Owor CisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJaW50IGluZGV4ID0gc2VxICYgflBB R0VfTUFTSzsKKworCQlpZiAobHNwYXQgJiAxKQorCQkJdmFsIF49IG1lbW9yeV9hcnJheVtpbmRl eF07CisJCWVsc2UKKwkJCW1lbW9yeV9hcnJheVtpbmRleF0gPSB2YWw7CisKKwkJc2VxID4+PSBQ QUdFX1NISUZUOworCQlzZXEgXj0gbHNwYXQ7CisJCWxzcGF0ID4+PSAxOworCX0KKworfQorCitz dGF0aWMgaW5jX2ZuIGluY3JlbWVudF9mdW5jdGlvbjsKKworc3RhdGljIHZvaWQgZG9faW5jcmVt ZW50KHZvaWQpCit7CisJaW50IGk7CisJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwor CXByaW50ZigiQ1BVJWQ6IG9ubGluZSBhbmQgKytpbmdcbiIsIGNwdSk7CisKKwlmb3IgKGkgPSAw OyBpIDwgaW5jcmVtZW50X2NvdW50OyBpKyspIHsKKwkJcGVyX2NwdV92YWx1ZVtjcHVdKys7CisJ CWluY3JlbWVudF9mdW5jdGlvbihjcHUpOworCisJCWlmIChkb19zaHVmZmxlKQorCQkJc2h1ZmZs ZV9tZW1vcnkoY3B1KTsKKwl9CisKKwlwcmludGYoIkNQVSVkOiBEb25lLCAlZCBpbmNzXG4iLCBj cHUsIHBlcl9jcHVfdmFsdWVbY3B1XSk7CisKKwljcHVtYXNrX3NldF9jcHUoY3B1LCAmc21wX3Rl c3RfY29tcGxldGUpOworCWlmIChjcHUgIT0gMCkKKwkJaGFsdCgpOworfQorCitzdGF0aWMgdm9p ZCBzZXR1cF9hbmRfcnVuX3Rlc3QodGVzdF9kZXNjcl90ICp0ZXN0KQoreworCXVuc2lnbmVkIGlu dCBpLCBzdW0gPSAwOworCWludCBjcHUsIGNwdV9jbnQgPSAwOworCisJaW5jcmVtZW50X2Z1bmN0 aW9uID0gdGVzdC0+bWFpbl9mbjsKKworCS8qIGZpbGwgb3VyIHJhbmRvbSBwYWdlICovCisJZm9y IChpID0gMDsgaSA8IFBBR0VfU0laRTsgaSsrKQorCQltZW1vcnlfYXJyYXlbaV0gPSBpc2FhY19u ZXh0X3VpbnQzMigmcHJuZ19jb250ZXh0WzBdKTsKKworCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNw dSkgeworCQl1aW50MzJfdCBzZWVkMiA9IGlzYWFjX25leHRfdWludDMyKCZwcm5nX2NvbnRleHRb MF0pOworCisJCWNwdV9jbnQrKzsKKwkJaWYgKGNwdSA9PSAwKQorCQkJY29udGludWU7CisKKwkJ aXNhYWNfaW5pdCgmcHJuZ19jb250ZXh0W2NwdV0sICh1bnNpZ25lZCBjaGFyICopICZzZWVkMiwg c2l6ZW9mKHNlZWQyKSk7CisJCXNtcF9ib290X3NlY29uZGFyeShjcHUsIGRvX2luY3JlbWVudCk7 CisJfQorCisJZG9faW5jcmVtZW50KCk7CisKKwl3aGlsZSAoIWNwdW1hc2tfZnVsbCgmc21wX3Rl c3RfY29tcGxldGUpKQorCQljcHVfcmVsYXgoKTsKKworCS8qIEFsbCBDUFVzIGRvbmUsIGRvIHdl IGFkZCB1cCAqLworCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgeworCQlzdW0gKz0gcGVyX2Nw dV92YWx1ZVtjcHVdOworCX0KKworCWlmICh0ZXN0LT5zaG91bGRfcGFzcykKKwkJcmVwb3J0KHN1 bSA9PSBzaGFyZWRfdmFsdWUsICJ0b3RhbCBpbmNzICVkIiwgc2hhcmVkX3ZhbHVlKTsKKwllbHNl CisJCXJlcG9ydF94ZmFpbCh0cnVlLCBzdW0gPT0gc2hhcmVkX3ZhbHVlLCAidG90YWwgaW5jcyAl ZCIsIHNoYXJlZF92YWx1ZSk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK K3sKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzZWVkW10gPSAibXlzZWVkIjsKKwl0ZXN0 X2Rlc2NyX3QgKnRlc3QgPSAmdGVzdHNbMF07CisJaW50IGk7CisJdW5zaWduZWQgaW50IGo7CisK Kwlpc2FhY19pbml0KCZwcm5nX2NvbnRleHRbMF0sICZzZWVkWzBdLCBzaXplb2Yoc2VlZCkpOwor CisJZm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykgeworCQljaGFyICphcmcgPSBhcmd2W2ldOwor CisJCS8qIENoZWNrIGZvciB0ZXN0IG5hbWUgKi8KKwkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJ WkUodGVzdHMpOyBqKyspIHsKKwkJCWlmIChzdHJjbXAoYXJnLCB0ZXN0c1tqXS50ZXN0X25hbWUp ID09IDApCisJCQkJdGVzdCA9ICZ0ZXN0c1tqXTsKKwkJfQorCisJCS8qIFRlc3QgbW9kaWZpZXJz ICovCisJCWlmIChzdHJjbXAoYXJnLCAibm9zaHVmZmxlIikgPT0gMCkgeworCQkJZG9fc2h1ZmZs ZSA9IGZhbHNlOworCQkJcmVwb3J0X3ByZWZpeF9wdXNoKCJub3NodWZmbGUiKTsKKwkJfSBlbHNl IGlmIChzdHJzdHIoYXJnLCAiY291bnQ9IikgIT0gTlVMTCkgeworCQkJY2hhciAqcCA9IHN0cnN0 cihhcmcsICI9Iik7CisKKwkJCWluY3JlbWVudF9jb3VudCA9IGF0b2wocCsxKTsKKwkJfSBlbHNl IHsKKwkJCWlzYWFjX3Jlc2VlZCgmcHJuZ19jb250ZXh0WzBdLCAodW5zaWduZWQgY2hhciAqKSBh cmcsIHN0cmxlbihhcmcpKTsKKwkJfQorCX0KKworCWlmICh0ZXN0KQorCQlzZXR1cF9hbmRfcnVu X3Rlc3QodGVzdCk7CisJZWxzZQorCQlyZXBvcnQoZmFsc2UsICJVbmtub3duIHRlc3QiKTsKKwor CXJldHVybiByZXBvcnRfc3VtbWFyeSgpOworfQpkaWZmIC0tZ2l0IGEvYXJtL3NwaW5sb2NrLXRl c3QuYyBiL2FybS9zcGlubG9jay10ZXN0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDczYWVhNzYuLjAwMDAwMDAKLS0tIGEvYXJtL3NwaW5sb2NrLXRlc3QuYworKysgL2Rldi9udWxs CkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBTcGlubG9jayB0ZXN0Ci0gKgotICogVGhpcyBjb2Rl IGlzIGJhc2VkIG9uIGNvZGUgZnJvbSB0aGUgdGNnX2JhcmVtZXRhbF90ZXN0cy4KLSAqCi0gKiBD b3B5cmlnaHQgKEMpIDIwMTUgVmlydHVhbCBPcGVuIFN5c3RlbXMgU0FTCi0gKgotICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbi4KLSAqLwotCi0jaW5jbHVkZSA8bGliY2ZsYXQuaD4KLSNpbmNsdWRlIDxhc20vc21w Lmg+Ci0jaW5jbHVkZSA8YXNtL2JhcnJpZXIuaD4KLQotI2RlZmluZSBMT09QX1NJWkUgMTAwMDAw MDAKLQotc3RydWN0IGxvY2tfb3BzIHsKLQl2b2lkICgqbG9jaykoaW50ICp2KTsKLQl2b2lkICgq dW5sb2NrKShpbnQgKnYpOwotfTsKLXN0YXRpYyBzdHJ1Y3QgbG9ja19vcHMgbG9ja19vcHM7Ci0K LXN0YXRpYyB2b2lkIGdjY19idWlsdGluX2xvY2soaW50ICpsb2NrX3ZhcikKLXsKLQl3aGlsZSAo X19zeW5jX2xvY2tfdGVzdF9hbmRfc2V0KGxvY2tfdmFyLCAxKSk7Ci19Ci1zdGF0aWMgdm9pZCBn Y2NfYnVpbHRpbl91bmxvY2soaW50ICpsb2NrX3ZhcikKLXsKLQlfX3N5bmNfbG9ja19yZWxlYXNl KGxvY2tfdmFyKTsKLX0KLXN0YXRpYyB2b2lkIG5vbmVfbG9jayhpbnQgKmxvY2tfdmFyKQotewot CXdoaWxlICgqKHZvbGF0aWxlIGludCAqKWxvY2tfdmFyICE9IDApOwotCSoodm9sYXRpbGUgaW50 ICopbG9ja192YXIgPSAxOwotfQotc3RhdGljIHZvaWQgbm9uZV91bmxvY2soaW50ICpsb2NrX3Zh cikKLXsKLQkqKHZvbGF0aWxlIGludCAqKWxvY2tfdmFyID0gMDsKLX0KLQotc3RhdGljIGludCBn bG9iYWxfYSwgZ2xvYmFsX2I7Ci1zdGF0aWMgaW50IGdsb2JhbF9sb2NrOwotCi1zdGF0aWMgdm9p ZCB0ZXN0X3NwaW5sb2NrKHZvaWQgKmRhdGEgX191bnVzZWQpCi17Ci0JaW50IGksIGVycm9ycyA9 IDA7Ci0JaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQotCXByaW50ZigiQ1BVJWQgb25s aW5lXG4iLCBjcHUpOwotCi0JZm9yIChpID0gMDsgaSA8IExPT1BfU0laRTsgaSsrKSB7Ci0KLQkJ bG9ja19vcHMubG9jaygmZ2xvYmFsX2xvY2spOwotCi0JCWlmIChnbG9iYWxfYSA9PSAoY3B1ICsg MSkgJSAyKSB7Ci0JCQlnbG9iYWxfYSA9IDE7Ci0JCQlnbG9iYWxfYiA9IDA7Ci0JCX0gZWxzZSB7 Ci0JCQlnbG9iYWxfYSA9IDA7Ci0JCQlnbG9iYWxfYiA9IDE7Ci0JCX0KLQotCQlpZiAoZ2xvYmFs X2EgPT0gZ2xvYmFsX2IpCi0JCQllcnJvcnMrKzsKLQotCQlsb2NrX29wcy51bmxvY2soJmdsb2Jh bF9sb2NrKTsKLQl9Ci0JcmVwb3J0KGVycm9ycyA9PSAwLCAiQ1BVJWQ6IERvbmUgLSBFcnJvcnM6 ICVkIiwgY3B1LCBlcnJvcnMpOwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp Ci17Ci0JcmVwb3J0X3ByZWZpeF9wdXNoKCJzcGlubG9jayIpOwotCWlmIChhcmdjID4gMSAmJiBz dHJjbXAoYXJndlsxXSwgImJhZCIpICE9IDApIHsKLQkJbG9ja19vcHMubG9jayA9IGdjY19idWls dGluX2xvY2s7Ci0JCWxvY2tfb3BzLnVubG9jayA9IGdjY19idWlsdGluX3VubG9jazsKLQl9IGVs c2UgewotCQlsb2NrX29wcy5sb2NrID0gbm9uZV9sb2NrOwotCQlsb2NrX29wcy51bmxvY2sgPSBu b25lX3VubG9jazsKLQl9Ci0KLQlvbl9jcHVzKHRlc3Rfc3BpbmxvY2ssIE5VTEwpOwotCi0JcmV0 dXJuIHJlcG9ydF9zdW1tYXJ5KCk7Ci19CmRpZmYgLS1naXQgYS9hcm0vbXR0Y2d0ZXN0cy5jZmcg Yi9hcm0vbXR0Y2d0ZXN0cy5jZmcKaW5kZXggZDNmZjEwMi4uNDZmY2I1NyAxMDA2NDQKLS0tIGEv YXJtL210dGNndGVzdHMuY2ZnCisrKyBiL2FybS9tdHRjZ3Rlc3RzLmNmZwpAQCAtMjgsMyArMjgs MzIgQEAgZmlsZSA9IHRsYmZsdXNoLWNvZGUuZmxhdAogc21wID0gJCgoJE1BWF9TTVA+ND80OiRN QVhfU01QKSkKIGV4dHJhX3BhcmFtcyA9IC1hcHBlbmQgJ3BhZ2Ugc2VsZicKIAorIyBMb2NraW5n IHRlc3RzCitbbG9ja2luZzo6bm9uZV0KK2ZpbGUgPSBsb2NraW5nLXRlc3QuZmxhdAorc21wID0g JCgoJE1BWF9TTVA+ND80OiRNQVhfU01QKSkKK2dyb3VwcyA9IGxvY2tpbmcKKworW2xvY2tpbmc6 OmxvY2tdCitmaWxlID0gbG9ja2luZy10ZXN0LmZsYXQKK3NtcCA9ICQoKCRNQVhfU01QPjQ/NDok TUFYX1NNUCkpCitleHRyYV9wYXJhbXMgPSAtYXBwZW5kICdsb2NrJworZ3JvdXBzID0gbG9ja2lu ZworCitbbG9ja2luZzo6YXRvbWljXQorZmlsZSA9IGxvY2tpbmctdGVzdC5mbGF0CitzbXAgPSAk KCgkTUFYX1NNUD40PzQ6JE1BWF9TTVApKQorZXh0cmFfcGFyYW1zID0gLWFwcGVuZCAnYXRvbWlj JworZ3JvdXBzID0gbG9ja2luZworCitbbG9ja2luZzo6d2ZlbG9ja10KK2ZpbGUgPSBsb2NraW5n LXRlc3QuZmxhdAorc21wID0gJCgoJE1BWF9TTVA+ND80OiRNQVhfU01QKSkKK2V4dHJhX3BhcmFt cyA9IC1hcHBlbmQgJ3dmZWxvY2snCitncm91cHMgPSBsb2NraW5nCisKK1tsb2NraW5nOjpleGNs XQorZmlsZSA9IGxvY2tpbmctdGVzdC5mbGF0CitzbXAgPSAkKCgkTUFYX1NNUD40PzQ6JE1BWF9T TVApKQorZXh0cmFfcGFyYW1zID0gLWFwcGVuZCAnZXhjbCcKK2dyb3VwcyA9IGxvY2tpbmcKLS0g CjIuMzAuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK