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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 45112CD6E56 for ; Sun, 31 May 2026 20:19:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6615610E537; Sun, 31 May 2026 20:19:27 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.b="FiNPCmx7"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2B5A10E536 for ; Sun, 31 May 2026 20:19:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=iNbA1Zb5nGY3JWFWoXXUB78sDJAYUz80700LYxUSUNY=; b=FiNPCmx74oW0HQxBTsAbMlQyVH 00Yz6QRgmmbaIkncTTRR/cYoFypaqI+bznlKwLYqvZHfjPvg13u/DlHp6YEwb7aYE+V391bYhHFM8 IRGApqll+KeABw4EjQJWz/HpWMwm3tbB2feenz9HABefugbQrEY5YPo+OWDdm/C/CwCqcE1USeG5e rmlKYsMeP7v77bEp6aJleshVaLu72jINqc1qzy9wF+DbRfXx1mRT94KUi1el8c4vs8SnBpfAjVdvI gO1oFbnvKvu1OqFIzV9ZaYWPpct/rmydgejiE938RvASwrUCLpB36HvjMLgidY6DY5y3PR+4YbHox IeylGEaQ==; Received: from [189.7.87.67] (helo=[10.0.0.1]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1wTmd1-00Agcp-JC; Sun, 31 May 2026 22:19:23 +0200 From: =?utf-8?q?Ma=C3=ADra_Canal?= Date: Sun, 31 May 2026 17:18:57 -0300 Subject: [PATCH v2 3/4] drm/v3d: Serialize jobs across queues when a perfmon is attached MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260531-v3d-perfmon-lifetime-v2-3-60ed4485a203@igalia.com> References: <20260531-v3d-perfmon-lifetime-v2-0-60ed4485a203@igalia.com> In-Reply-To: <20260531-v3d-perfmon-lifetime-v2-0-60ed4485a203@igalia.com> To: Melissa Wen , Iago Toral , Tvrtko Ursulin , David Airlie , Simona Vetter Cc: kernel-dev@igalia.com, dri-devel@lists.freedesktop.org, =?utf-8?q?Ma=C3=ADra_Canal?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=7934; i=mcanal@igalia.com; h=from:subject:message-id; bh=GidoTRx1+ESYxZhx/IOL4hNdmEn+xBEHZ0PGigMusJM=; b=owEBbQGS/pANAwAKAT/zDop2iPqqAcsmYgBqHJe9Py8Ro0jHf1os1qLr9luLxscMSXrlr5gqo hnmfbYVRIOJATMEAAEKAB0WIQT45F19ARZ3Bymmd9E/8w6Kdoj6qgUCahyXvQAKCRA/8w6Kdoj6 qmAxCAC+sEiBJ/tF7un6Q74lfrUyU5Tx/xlLgLJ1ok6herKkTiiiaxDlBvx9+dIu8YmczeakF22 EEpKhSeEXykRswRMxa6Em1LeU0hxewb5z1Ep69BpLHbRMEj6Tg7iDtq502rPcsOI0PZfZQtWd+x WruJ0z0MshatsVEKn1jGA8mynLAu2fLnVoXGTFj+DL+9dzaxPG5GagAJQW+J0sElV8yp2IHcHU3 r+2nrSqcq7Zea/adoEiyXaidoaynL9f5r5WLxkNm699n5NSVWmiYPaYArl15Oc5Gd1xMUvfMNy5 AsqDSByykzvtCA75G7XX7jt/arWyyB2GLHMPL3Fd5TQ6lfuO X-Developer-Key: i=mcanal@igalia.com; a=openpgp; fpr=F8E45D7D0116770729A677D13FF30E8A7688FAAA 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QSBub24tZ2xvYmFsIHBlcmZtb24gaXMgbWVhbnQgdG8gY291bnQgZXZlbnRzIGdlbmVyYXRlZCBi eSBhIHNwZWNpZmljCnN1Ym1pc3Npb24sIGJ1dCB0aGUgc2NoZWR1bGVyIGNhbiBydW4gam9icyBm cm9tIGRpZmZlcmVudCBxdWV1ZXMKY29uY3VycmVudGx5IG9uIHRoZSBzYW1lIFYzRCBjb3JlLiBX aXRob3V0IGV4cGxpY2l0IHNlcmlhbGl6YXRpb24sIGFuCnVucmVsYXRlZCBqb2IgcnVubmluZyBp biBwYXJhbGxlbCB3aXRoIGEgcGVyZm1vbi1jYXJyeWluZyBqb2IgcG9sbHV0ZXMKdGhlIGNvdW50 ZXJzIGFuZCBnZW5lcmF0ZXMgdW51c2FibGUgcmVzdWx0cy4KClRvIGFkZHJlc3Mgc3VjaCBpc3N1 ZSwgd2UgbXVzdCBlbmZvcmNlIGNyb3NzLXF1ZXVlIHNlcmlhbGl6YXRpb24gd2hlbiB3ZQpkZXRl Y3QgYSBwZXJmbW9uLWNhcnJ5aW5nIHN1Ym1pc3Npb24uIEl0J3MgcG9zc2libGUgdG8gaW1wbGVt ZW50CnNlcmlhbGl6YXRpb24gYnkgZW5mb3JjaW5nIHR3byBydWxlczoKCiAgMS4gQSBqb2IgdGhh dCBjYXJyaWVzIGEgbm9uLWdsb2JhbCBwZXJmbW9uIG11c3Qgd2FpdCBmb3IgZXZlcnkgam9iCiAg ICBjdXJyZW50bHkgaW4tZmxpZ2h0IGFjcm9zcyBhbGwgSFcgcXVldWVzIHRvIGZpbmlzaC4KCiAg Mi4gV2hpbGUgYSBwZXJmbW9uLWNhcnJ5aW5nIGpvYiBpcyBzdGlsbCBpbi1mbGlnaHQsIGFsbCBz dWJzZXF1ZW50bHkKICAgIHN1Ym1pdHRlZCBqb2JzIG11c3Qgd2FpdCBmb3IgaXQuCgpOb3RlIHRo YXQgc2VyaWFsaXphdGlvbiBpcyBub3QgbmVlZGVkIGluIHRoZSBnbG9iYWwgcGVyZm1vbiBjYXNl LCBhcyB0aGUKZ2xvYmFsIHBlcmZtb24gdHJhY2tzIGFjdGl2aXR5IGZyb20gYWxsIGpvYnMsIHNv IGNvbmN1cnJlbmN5IGlzIGRlc2lyYWJsZS4KClRoZXJlZm9yZSwgY2hlY2sgaWYgc2VyaWFsaXph dGlvbiBpcyBuZWVkZWQgZHVyaW5nIGpvYiBzdWJtaXNzaW9uIGFuZCBpZgpzbywgYXR0YWNoIGZl bmNlIGRlcGVuZGVuY2VzIHRvIGVuZm9yY2UgY3Jvc3MtcXVldWUgc2VyaWFsaXphdGlvbi4KClNp Z25lZC1vZmYtYnk6IE1hw61yYSBDYW5hbCA8bWNhbmFsQGlnYWxpYS5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL3YzZC92M2RfZHJ2LmggICAgIHwgMzUgKysrKysrKysrKysrKysrKysrLS0tLQog ZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMgICAgIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2Ry bS92M2QvdjNkX3BlcmZtb24uYyB8ICA2ICsrKysKIGRyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3N1 Ym1pdC5jICB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92M2Qv djNkX2Rydi5oCmluZGV4IDUxNDg2YWY2OGNmNC4uY2RmNDkyNmQ1MWYyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3Yz ZF9kcnYuaApAQCAtNzQsMTEgKzc0LDEzIEBAIHN0cnVjdCB2M2RfcXVldWVfc3RhdGUgewogCXNw aW5sb2NrX3QgcXVldWVfbG9jazsKIH07CiAKLS8qIFBlcmZvcm1hbmNlIG1vbml0b3Igb2JqZWN0 LiBUaGUgcGVyZm9ybSBsaWZldGltZSBpcyBjb250cm9sbGVkIGJ5IHVzZXJzcGFjZQotICogdXNp bmcgcGVyZm1vbiByZWxhdGVkIGlvY3Rscy4gQSBwZXJmbW9uIGNhbiBiZSBhdHRhY2hlZCB0byBh IHN1Ym1pdF9jbAotICogcmVxdWVzdCwgYW5kIHdoZW4gdGhpcyBpcyB0aGUgY2FzZSwgSFcgcGVy ZiBjb3VudGVycyB3aWxsIGJlIGFjdGl2YXRlZCBqdXN0Ci0gKiBiZWZvcmUgdGhlIHN1Ym1pdF9j bCBpcyBzdWJtaXR0ZWQgdG8gdGhlIEdQVSBhbmQgZGlzYWJsZWQgd2hlbiB0aGUgam9iIGlzCi0g KiBkb25lLiBUaGlzIHdheSwgb25seSBldmVudHMgcmVsYXRlZCB0byBhIHNwZWNpZmljIGpvYiB3 aWxsIGJlIGNvdW50ZWQuCisvKiBQZXJmb3JtYW5jZSBtb25pdG9yIG9iamVjdAorICoKKyAqIFRo ZSBwZXJmb3JtYW5jZSBtb25pdG9yIChwZXJmbW9uKSBsaWZldGltZSBpcyBjb250cm9sbGVkIGJ5 IHVzZXJzcGFjZSB1c2luZworICogcGVyZm1vbiByZWxhdGVkIGlvY3Rscy4gQSBwZXJmbW9uIGNh biBiZSBhdHRhY2hlZCB0byBhIENMIG9yIENTRCBzdWJtaXNzaW9uCisgKiByZXF1ZXN0LCBhbmQg d2hlbiBpdCBpcywgSFcgcGVyZm9ybWFuY2UgY291bnRlcnMgd2lsbCBiZSBhY3RpdmF0ZWQganVz dAorICogYmVmb3JlIHRoZSBqb2IgaXMgc3VibWl0dGVkIHRvIHRoZSBHUFUgYW5kIGRpc2FibGVk IHdoZW4gdGhlIGpvYiBpcyBkb25lLgorICogVGhpcyB3YXksIG9ubHkgZXZlbnRzIHJlbGF0ZWQg dG8gYSBzcGVjaWZpYyBzdWJtaXNzaW9uIHdpbGwgYmUgY291bnRlZC4KICAqLwogc3RydWN0IHYz ZF9wZXJmbW9uIHsKIAkvKiBUcmFja3MgdGhlIG51bWJlciBvZiB1c2VycyBvZiB0aGUgcGVyZm1v biwgd2hlbiB0aGlzIGNvdW50ZXIgcmVhY2hlcwpAQCAtMTY3LDEzICsxNjksMzEgQEAgc3RydWN0 IHYzZF9kZXYgewogCiAJc3RydWN0IHYzZF9xdWV1ZV9zdGF0ZSBxdWV1ZVtWM0RfTUFYX1FVRVVF U107CiAKLQkvKiBUcmFja3MgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3Igc3RhdGUuICovCisJLyoK KwkgKiBUcmFja3MgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3Igc3RhdGUgYW5kIGNvbnNpc3RlbmN5 LgorCSAqCisJICogV2hlbiBhIG5vbi1nbG9iYWwgcGVyZm1vbiBpcyBhdHRhY2hlZCB0byBhIGpv YiwgdGhlIHNjaGVkdWxlciBtdXN0CisJICogbm90IHJ1biBhbnkgb3RoZXIgam9iIG9uIHRoZSBI VyBjb25jdXJyZW50bHkgKG90aGVyd2lzZSwgdGhlCisJICogY291bnRlcnMgd291bGQgYmUgcG9s bHV0ZWQgYnkgdW5yZWxhdGVkIHdvcmspLgorCSAqLwogCXN0cnVjdCB7CiAJCS8qIFByb3RlY3Rz IEBhY3RpdmUuICovCiAJCXNwaW5sb2NrX3QgbG9jazsKIAogCQkvKiBQZXJmbW9uIGN1cnJlbnRs eSBwcm9ncmFtbWVkIGluIEhXIChvciBOVUxMIGlmIG5vbmUpLiAqLwogCQlzdHJ1Y3QgdjNkX3Bl cmZtb24gKmFjdGl2ZTsKKworCQkvKiBGaW5pc2hlZCBmZW5jZSBvZiB0aGUgbW9zdCByZWNlbnRs eSBzdWJtaXR0ZWQgam9iIHRoYXQKKwkJICogb3BlbmVkIGEgc2VyaWFsaXphdGlvbiB3aW5kb3cg KGkuZS4gYSBqb2Igd2l0aCBhIG5vbi1nbG9iYWwKKwkJICogcGVyZm1vbiBhdHRhY2hlZCkuCisJ CSAqLworCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKworCQkvKiBGaW5pc2hlZCBmZW5jZSBv ZiB0aGUgbW9zdCByZWNlbnRseSBzdWJtaXR0ZWQgam9iIG9uIGVhY2ggSFcKKwkJICogcXVldWUu IFVzZWQgc28gdGhhdCBhIG5ldyBwZXJmbW9uLWNhcnJ5aW5nIGpvYiBjYW4gZGVwZW5kIG9uCisJ CSAqIGV2ZXJ5IGpvYiBjdXJyZW50bHkgaW4tZmxpZ2h0IGFjcm9zcyBhbGwgcXVldWVzLgorCQkg Ki8KKwkJc3RydWN0IGRtYV9mZW5jZSAqbGFzdF9od19mZW5jZVtWM0RfTUFYX1FVRVVFU107CiAJ fSBwZXJmbW9uX3N0YXRlOwogCiAJLyogUHJvdGVjdHMgYm9fc3RhdHMgKi8KQEAgLTMxOSw2ICsz MzksOSBAQCBzdHJ1Y3QgdjNkX2pvYiB7CiAKIAlzdHJ1Y3QgdjNkX2RldiAqdjNkOwogCisJLyog VGhlIHF1ZXVlIHRoYXQgdGhlIGpvYiB3YXMgc3VibWl0dGVkIG9uLiAqLworCWVudW0gdjNkX3F1 ZXVlIHF1ZXVlOworCiAJLyogVGhpcyBpcyB0aGUgYXJyYXkgb2YgQk9zIHRoYXQgd2VyZSBsb29r ZWQgdXAgYXQgdGhlIHN0YXJ0CiAJICogb2Ygc3VibWlzc2lvbi4KIAkgKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rf Z2VtLmMKaW5kZXggOTQ4N2FiN2FjZDAzLi4wYjQxNTQ4NmY1YjQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dl bS5jCkBAIC0zNjMsOCArMzYzLDExIEBAIHYzZF9nZW1fZGVzdHJveShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWZvciAocSA9IDA7IHEgPCBWM0RfTUFYX1FVRVVFUzsgcSsrKSB7CiAJCVdBUk5f T04odjNkLT5xdWV1ZVtxXS5hY3RpdmVfam9iKTsKIAkJdjNkX3N0YXRzX3B1dCh2M2QtPnF1ZXVl W3FdLnN0YXRzKTsKKwkJZG1hX2ZlbmNlX3B1dCh2M2QtPnBlcmZtb25fc3RhdGUubGFzdF9od19m ZW5jZVtxXSk7CiAJfQogCisJZG1hX2ZlbmNlX3B1dCh2M2QtPnBlcmZtb25fc3RhdGUuZmVuY2Up OworCiAJZHJtX21tX3Rha2Vkb3duKCZ2M2QtPm1tKTsKIAogCWRtYV9mcmVlX2NvaGVyZW50KHYz ZC0+ZHJtLmRldiwgNDA5NiAqIDEwMjQsICh2b2lkICopdjNkLT5wdCwKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX3BlcmZtb24uYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNk X3BlcmZtb24uYwppbmRleCAzYWQwZjAyMjc1M2MuLjA3ZGFiN2ZiMzA2MCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfcGVyZm1vbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 M2QvdjNkX3BlcmZtb24uYwpAQCAtMjc1LDYgKzI3NSwxMiBAQCB2b2lkIHYzZF9wZXJmbW9uX3N0 YXJ0KHN0cnVjdCB2M2RfZGV2ICp2M2QsIHN0cnVjdCB2M2RfcGVyZm1vbiAqcGVyZm1vbikKIAlp ZiAoIXBlcmZtb24gfHwgdjNkLT5nbG9iYWxfcGVyZm1vbikKIAkJcmV0dXJuOwogCisJLyogQ3Jv c3MtcXVldWUgc2VyaWFsaXphdGlvbiBzaG91bGQgaGF2ZSBkcmFpbmVkIGFueSBwcmV2aW91cyBw ZXJmbW9uCisJICogam9iIGJlZm9yZSB0aGlzIG9uZSBydW5zLgorCSAqLworCWlmIChXQVJOX09O X09OQ0UodjNkLT5wZXJmbW9uX3N0YXRlLmFjdGl2ZSkpCisJCXJldHVybjsKKwogCWlmICghcG1f cnVudGltZV9nZXRfaWZfYWN0aXZlKHYzZC0+ZHJtLmRldikpCiAJCXJldHVybjsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc3VibWl0LmMgYi9kcml2ZXJzL2dwdS9kcm0v djNkL3YzZF9zdWJtaXQuYwppbmRleCA0YzUyNmFhZmM0ZTAuLjQ2ZmM4OGJhY2M5NSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc3VibWl0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3YzZC92M2Rfc3VibWl0LmMKQEAgLTIzNCw2ICsyMzQsNyBAQCB2M2Rfc3VibWl0X2FkZF9q b2Ioc3RydWN0IHYzZF9zdWJtaXQgKnN1Ym1pdCwgdm9pZCAqKmNvbnRhaW5lciwgc2l6ZV90IHNp emUsCiAJam9iLT52M2QgPSB2M2Q7CiAJam9iLT5mcmVlID0gZnJlZTsKIAlqb2ItPmZpbGVfcHJp diA9IHYzZF9wcml2OworCWpvYi0+cXVldWUgPSBxdWV1ZTsKIAogCXJldCA9IGRybV9zY2hlZF9q b2JfaW5pdCgmam9iLT5iYXNlLCAmdjNkX3ByaXYtPnNjaGVkX2VudGl0eVtxdWV1ZV0sCiAJCQkJ IDEsIHYzZF9wcml2LCBzdWJtaXQtPmZpbGVfcHJpdi0+Y2xpZW50X2lkKTsKQEAgLTI5Myw2ICsy OTQsNjIgQEAgdjNkX2F0dGFjaF9wZXJmbW9uX3RvX2pvYnMoc3RydWN0IHYzZF9zdWJtaXQgKnN1 Ym1pdCwgdTMyIHBlcmZtb25faWQpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBQcmVwYXJlIGZl bmNlcyB0byBlbmZvcmNlIGpvYiBzZXJpYWxpemF0aW9uIHdoZW4gYSBwZXJmbW9uIGlzIGFjdGl2 ZS4gQSBqb2IKKyAqIHRoYXQgY2FycmllcyBhIG5vbi1nbG9iYWwgcGVyZm1vbiBtdXN0IHdhaXQg Zm9yIGV2ZXJ5IGpvYiBjdXJyZW50bHkgaW4tZmxpZ2h0CisgKiBhY3Jvc3MgYWxsIEhXIHF1ZXVl cyB0byBmaW5pc2gsIG90aGVyd2lzZSBjb25jdXJyZW50IHVucmVsYXRlZCB3b3JrIG9uIHRoZQor ICogc2FtZSBjb3JlIHdvdWxkIHBvbGx1dGUgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBTeW1t ZXRyaWNhbGx5LCB3aGlsZSBzdWNoIGEKKyAqIGpvYiBpcyBzdGlsbCBpbi1mbGlnaHQsIGFsbCBz dWJzZXF1ZW50bHkgc3VibWl0dGVkIGpvYnMgbXVzdCB3YWl0IGZvciBpdC4KKyAqCisgKiBXZSBk b24ndCBzZXJpYWxpemUgdGhlIGpvYnMgd2hlbiB1c2luZyBhIGdsb2JhbCBwZXJmbW9uIGFzIGl0 J3MgZXhwZWN0ZWQgdG8KKyAqIHRyYWNrIGNvbmN1cnJlbnQgYWN0aXZpdHkgZnJvbSBhbGwgam9i cy4KKyAqLworc3RhdGljIGludAordjNkX3NlcmlhbGl6ZV9mb3JfcGVyZm1vbihzdHJ1Y3QgdjNk X2pvYiAqam9iKQoreworCXN0cnVjdCB2M2RfZGV2ICp2M2QgPSBqb2ItPnYzZDsKKwlib29sIGlz X2dsb2JhbF9wZXJmbW9uOworCWludCByZXQ7CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZ2M2Qt PnNjaGVkX2xvY2spOworCisJc2NvcGVkX2d1YXJkKHNwaW5sb2NrX2lycXNhdmUsICZ2M2QtPnBl cmZtb25fc3RhdGUubG9jaykKKwkJaXNfZ2xvYmFsX3BlcmZtb24gPSAhIXYzZC0+Z2xvYmFsX3Bl cmZtb247CisKKwlpZiAoaXNfZ2xvYmFsX3BlcmZtb24pCisJCWdvdG8gcHVibGlzaDsKKworCWlm IChqb2ItPnBlcmZtb24pIHsKKwkJZm9yIChlbnVtIHYzZF9xdWV1ZSBxID0gMDsgcSA8IFYzRF9N QVhfUVVFVUVTOyBxKyspIHsKKwkJCXN0cnVjdCBkbWFfZmVuY2UgKmYgPSB2M2QtPnBlcmZtb25f c3RhdGUubGFzdF9od19mZW5jZVtxXTsKKworCQkJaWYgKCFmIHx8IGRtYV9mZW5jZV9pc19zaWdu YWxlZChmKSkKKwkJCQljb250aW51ZTsKKworCQkJcmV0ID0gZHJtX3NjaGVkX2pvYl9hZGRfZGVw ZW5kZW5jeSgmam9iLT5iYXNlLCBkbWFfZmVuY2VfZ2V0KGYpKTsKKwkJCWlmIChyZXQpCisJCQkJ cmV0dXJuIHJldDsKKwkJfQorCX0gZWxzZSBpZiAodjNkLT5wZXJmbW9uX3N0YXRlLmZlbmNlICYm CisJCSAgICFkbWFfZmVuY2VfaXNfc2lnbmFsZWQodjNkLT5wZXJmbW9uX3N0YXRlLmZlbmNlKSkg eworCQlyZXQgPSBkcm1fc2NoZWRfam9iX2FkZF9kZXBlbmRlbmN5KCZqb2ItPmJhc2UsCisJCQkJ CQkgICBkbWFfZmVuY2VfZ2V0KHYzZC0+cGVyZm1vbl9zdGF0ZS5mZW5jZSkpOworCQlpZiAocmV0 KQorCQkJcmV0dXJuIHJldDsKKwl9CisKK3B1Ymxpc2g6CisJZG1hX2ZlbmNlX3B1dCh2M2QtPnBl cmZtb25fc3RhdGUubGFzdF9od19mZW5jZVtqb2ItPnF1ZXVlXSk7CisJdjNkLT5wZXJmbW9uX3N0 YXRlLmxhc3RfaHdfZmVuY2Vbam9iLT5xdWV1ZV0gPSBkbWFfZmVuY2VfZ2V0KGpvYi0+ZG9uZV9m ZW5jZSk7CisKKwlpZiAoam9iLT5wZXJmbW9uICYmICFpc19nbG9iYWxfcGVyZm1vbikgeworCQlk bWFfZmVuY2VfcHV0KHYzZC0+cGVyZm1vbl9zdGF0ZS5mZW5jZSk7CisJCXYzZC0+cGVyZm1vbl9z dGF0ZS5mZW5jZSA9IGRtYV9mZW5jZV9nZXQoam9iLT5kb25lX2ZlbmNlKTsKKwl9CisKKwlyZXR1 cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIHYzZF9zdWJtaXRfYXR0YWNoX29iamVjdF9mZW5jZXMo c3RydWN0IHYzZF9zdWJtaXQgKnN1Ym1pdCkKIHsKQEAgLTMzNyw2ICszOTQsMTIgQEAgdjNkX3N1 Ym1pdF9qb2JzKHN0cnVjdCB2M2Rfc3VibWl0ICpzdWJtaXQpCiAJCQlnb3RvIGVycjsKIAl9CiAK Kwlmb3IgKGludCBpID0gMDsgaSA8IHN1Ym1pdC0+am9iX2NvdW50OyBpKyspIHsKKwkJcmV0ID0g djNkX3NlcmlhbGl6ZV9mb3JfcGVyZm1vbihzdWJtaXQtPmpvYnNbaV0pOworCQlpZiAocmV0KQor CQkJZ290byBlcnI7CisJfQorCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBzdWJtaXQtPmpvYl9jb3Vu dDsgaSsrKQogCQlkcm1fc2NoZWRfZW50aXR5X3B1c2hfam9iKCZzdWJtaXQtPmpvYnNbaV0tPmJh c2UpOwogCgotLSAKMi41NC4wCgo=