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 3211EF01829 for ; Fri, 6 Mar 2026 11:30:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9DE6910ECF5; Fri, 6 Mar 2026 11:30:55 +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="Gr0BNvL6"; dkim-atps=neutral Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by gabe.freedesktop.org (Postfix) with ESMTPS id B234210ECF5 for ; Fri, 6 Mar 2026 11:30:53 +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=viGISnbWbyFrS4ifb0+pyqlN1qjqmNQGuJPA7PCXups=; b=Gr0BNvL6/oosA40d5QGOjAwEeu R9+6R3Rc/UyY7d9QoOy/ciF6ur3AsEcXSBsuxj32JVDYVFS9jzP7tqyIYtvVT1dleuvIsrrUujPZm KysrfF3Dy6YjxY+vfJkXaquJ12CiAh3dOqJDxbQz4waYXEPBIM90YynffmQfEDK/rQHl4xlhUF5Bz 6K0CGHg6mWqrl5D6j5dExAdX0ksrl6GmbHCGlOUZTlB6XpB7wY3Rz6ctF0yFMA6kP/GVOuUSjqTl8 kI9J/EhDKPAVHMmslVV2CSM0Lq0WjUkdmh52rl5nkvbvJeHS6SqZqzu1WmC8MX2kmQ03ZFMg8QCpr hTRCj+uw==; Received: from [189.7.87.203] (helo=[192.168.0.16]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vyTOL-00A0JZ-79; Fri, 06 Mar 2026 12:30:49 +0100 From: =?utf-8?q?Ma=C3=ADra_Canal?= Date: Fri, 06 Mar 2026 08:30:35 -0300 Subject: [PATCH v3 3/6] drm/v3d: Refcount v3d_stats MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260306-v3d-reset-locking-improv-v3-3-49864fe00692@igalia.com> References: <20260306-v3d-reset-locking-improv-v3-0-49864fe00692@igalia.com> In-Reply-To: <20260306-v3d-reset-locking-improv-v3-0-49864fe00692@igalia.com> To: Melissa Wen , Tvrtko Ursulin , Maxime Ripard Cc: kernel-dev@igalia.com, dri-devel@lists.freedesktop.org, =?utf-8?q?Ma=C3=ADra_Canal?= , Iago Toral Quiroga X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10188; i=mcanal@igalia.com; h=from:subject:message-id; bh=r52aWWpniBEvsAx+0zz2RA7uSH4lTBi+Rcxes09OQrg=; b=owEBbQGS/pANAwAKAT/zDop2iPqqAcsmYgBpqrre8qb8GzbPZKcxdsGCJZB5suwDDXkj+ZzCL TAZHe1rkGyJATMEAAEKAB0WIQT45F19ARZ3Bymmd9E/8w6Kdoj6qgUCaaq63gAKCRA/8w6Kdoj6 qqpDCADXldBuR9M0cm0tbN2K6OXSNsUm0IOZP/2m/AbBeFNniMhoCbKDugx1O0dvmBQX6BmLVoD 0bP3g+OTW49xUDCyPuQv7Qyec8bhBzudCJ6IqE/O5OHH7g0hA/buC6xvkqubCAXNoZTNy01V4Nn x6oo9kB2BwOj0g9UAE52TKFmrGvJdFpFlW0zAopQ+A/4ri2cDndnu+D7Rzya9ps+Dgdr4pVcnoH 3PtSDnnsl24chYjGgyGgZBPw+a1TMlZbW4tdpb2mfUulmQJEh2v58rfA8FiQIKccZY3uEJehP40 iplkYePjBcCRNvldFoO7Ttce3cVphUl7zhrHCP+jR+tr9pPf 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" RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlnYWxpYS5jb20+CgpDb252ZXJ0 IGB2M2Rfc3RhdHNgIGZyb20gZW1iZWRkZWQgc3RydWN0cyB0byBoZWFwLWFsbG9jYXRlZCwgcmVm Y291bnRlZApvYmplY3RzLiBUaGlzIGRlY291cGxlcyB0aGUgc3RhdHMgbGlmZXRpbWUgZnJvbSB0 aGUgY29udGFpbmluZwpzdHJ1Y3R1cmVzICh0aGlzIGlzLCBgdjNkX3F1ZXVlX3N0YXRlYCBhbmQg YHYzZF9maWxlX3ByaXZgKSwgYWxsb3dpbmcKam9icyB0byBzYWZlbHkgaG9sZCB0aGVpciBvd24g cmVmZXJlbmNlcyB0byBzdGF0cyBvYmplY3RzIGV2ZW4gYWZ0ZXIgdGhlCmZpbGUgZGVzY3JpcHRv ciBpcyBjbG9zZWQuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaWdhbGlhLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBNYcOtcmEgQ2FuYWwgPG1jYW5hbEBpZ2Fs aWEuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYcOtcmEgQ2FuYWwgPG1jYW5hbEBpZ2FsaWEuY29tPgpS ZXZpZXdlZC1ieTogSWFnbyBUb3JhbCBRdWlyb2dhIDxpdG9yYWxAaWdhbGlhLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuYyAgIHwgMTkgKysrKysrKysrKysrKystLS0tLQog ZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZHJ2LmggICB8IDE5ICsrKysrKysrKysrKysrKysrLS0K IGRyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jICAgfCA0MiArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyB8 IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS92M2QvdjNk X3N5c2ZzLmMgfCAgMiArLQogNSBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAyNyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCmluZGV4IDYwODZjMDQ2MjlhZGJlODYxMWIx ZjcyOTc4NzlmZWFjZWM0NTRiNDMuLjBmNWUyOWY1N2ZhNTliZmEyODkwZGU1MWI5Y2E3OGNkYTMz ZDFlZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5jCkBAIC0xNDAsMTUgKzE0MCwxOCBAQCB2M2Rfb3Bl bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJdjNkX3By aXYtPnYzZCA9IHYzZDsKIAogCWZvciAoaSA9IDA7IGkgPCBWM0RfTUFYX1FVRVVFUzsgaSsrKSB7 CisJCXYzZF9wcml2LT5zdGF0c1tpXSA9IHYzZF9zdGF0c19hbGxvYygpOworCQlpZiAoIXYzZF9w cml2LT5zdGF0c1tpXSkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyX3N0YXRzOwor CQl9CisKIAkJc2NoZWQgPSAmdjNkLT5xdWV1ZVtpXS5zY2hlZDsKIAkJcmV0ID0gZHJtX3NjaGVk X2VudGl0eV9pbml0KCZ2M2RfcHJpdi0+c2NoZWRfZW50aXR5W2ldLAogCQkJCQkgICAgRFJNX1ND SEVEX1BSSU9SSVRZX05PUk1BTCwgJnNjaGVkLAogCQkJCQkgICAgMSwgTlVMTCk7CiAJCWlmIChy ZXQpCiAJCQlnb3RvIGVycl9zY2hlZDsKLQotCQltZW1zZXQoJnYzZF9wcml2LT5zdGF0c1tpXSwg MCwgc2l6ZW9mKHYzZF9wcml2LT5zdGF0c1tpXSkpOwotCQlzZXFjb3VudF9pbml0KCZ2M2RfcHJp di0+c3RhdHNbaV0ubG9jayk7CiAJfQogCiAJdjNkX3BlcmZtb25fb3Blbl9maWxlKHYzZF9wcml2 KTsKQEAgLTE1Nyw4ICsxNjAsMTIgQEAgdjNkX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9maWxlICpmaWxlKQogCXJldHVybiAwOwogCiBlcnJfc2NoZWQ6Ci0JZm9yIChp LS07IGkgPj0gMDsgaS0tKQorCXYzZF9zdGF0c19wdXQodjNkX3ByaXYtPnN0YXRzW2ldKTsKK2Vy cl9zdGF0czoKKwlmb3IgKGktLTsgaSA+PSAwOyBpLS0pIHsKIAkJZHJtX3NjaGVkX2VudGl0eV9k ZXN0cm95KCZ2M2RfcHJpdi0+c2NoZWRfZW50aXR5W2ldKTsKKwkJdjNkX3N0YXRzX3B1dCh2M2Rf cHJpdi0+c3RhdHNbaV0pOworCX0KIAlrZnJlZSh2M2RfcHJpdik7CiAJcmV0dXJuIHJldDsKIH0K QEAgLTE4Miw2ICsxODksOCBAQCB2M2RfcG9zdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAkJCWpvYi0+ZmlsZV9wcml2ID0gTlVMTDsKIAkJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5xdWV1ZV9sb2NrLCBpcnFmbGFncyk7CiAJCX0K KworCQl2M2Rfc3RhdHNfcHV0KHYzZF9wcml2LT5zdGF0c1txXSk7CiAJfQogCiAJdjNkX3BlcmZt b25fY2xvc2VfZmlsZSh2M2RfcHJpdik7CkBAIC0yMDksNyArMjE4LDcgQEAgc3RhdGljIHZvaWQg djNkX3Nob3dfZmRpbmZvKHN0cnVjdCBkcm1fcHJpbnRlciAqcCwgc3RydWN0IGRybV9maWxlICpm aWxlKQogCWVudW0gdjNkX3F1ZXVlIHF1ZXVlOwogCiAJZm9yIChxdWV1ZSA9IDA7IHF1ZXVlIDwg VjNEX01BWF9RVUVVRVM7IHF1ZXVlKyspIHsKLQkJc3RydWN0IHYzZF9zdGF0cyAqc3RhdHMgPSAm ZmlsZV9wcml2LT5zdGF0c1txdWV1ZV07CisJCXN0cnVjdCB2M2Rfc3RhdHMgKnN0YXRzID0gZmls ZV9wcml2LT5zdGF0c1txdWV1ZV07CiAJCXU2NCBhY3RpdmVfcnVudGltZSwgam9ic19jb21wbGV0 ZWQ7CiAKIAkJdjNkX2dldF9zdGF0cyhzdGF0cywgdGltZXN0YW1wLCAmYWN0aXZlX3J1bnRpbWUs ICZqb2JzX2NvbXBsZXRlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCmluZGV4IDJlNTUyMDAxNWUwOGM0 N2ZlZjRiZmJmMTg1ZWRhMTUwMjc5OTIwMzIuLjAzZmEyZDE3NGIxY2E4YjVhOThhNzJjNGFkZGFh MWY5NzdkMTExNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2Rydi5oCkBAIC0zOCw2ICszOCw4IEBAIHN0YXRp YyBpbmxpbmUgY2hhciAqdjNkX3F1ZXVlX3RvX3N0cmluZyhlbnVtIHYzZF9xdWV1ZSBxdWV1ZSkK IH0KIAogc3RydWN0IHYzZF9zdGF0cyB7CisJc3RydWN0IGtyZWYgcmVmY291bnQ7CisKIAl1NjQg c3RhcnRfbnM7CiAJdTY0IGVuYWJsZWRfbnM7CiAJdTY0IGpvYnNfY29tcGxldGVkOwpAQCAtNjIs NyArNjQsNyBAQCBzdHJ1Y3QgdjNkX3F1ZXVlX3N0YXRlIHsKIAl1NjQgZW1pdF9zZXFubzsKIAog CS8qIFN0b3JlcyB0aGUgR1BVIHN0YXRzIGZvciB0aGlzIHF1ZXVlIGluIHRoZSBnbG9iYWwgY29u dGV4dC4gKi8KLQlzdHJ1Y3QgdjNkX3N0YXRzIHN0YXRzOworCXN0cnVjdCB2M2Rfc3RhdHMgKnN0 YXRzOwogCiAJLyogQ3VycmVudGx5IGFjdGl2ZSBqb2IgZm9yIHRoaXMgcXVldWUgKi8KIAlzdHJ1 Y3QgdjNkX2pvYiAqYWN0aXZlX2pvYjsKQEAgLTIzMCw3ICsyMzIsNyBAQCBzdHJ1Y3QgdjNkX2Zp bGVfcHJpdiB7CiAJc3RydWN0IGRybV9zY2hlZF9lbnRpdHkgc2NoZWRfZW50aXR5W1YzRF9NQVhf UVVFVUVTXTsKIAogCS8qIFN0b3JlcyB0aGUgR1BVIHN0YXRzIGZvciBhIHNwZWNpZmljIHF1ZXVl IGZvciB0aGlzIGZkLiAqLwotCXN0cnVjdCB2M2Rfc3RhdHMgc3RhdHNbVjNEX01BWF9RVUVVRVNd OworCXN0cnVjdCB2M2Rfc3RhdHMgKnN0YXRzW1YzRF9NQVhfUVVFVUVTXTsKIAogCS8qIFBlci1m ZCByZXNldCBjb3VudGVyLCBtdXN0IGJlIGluY3JlbWVudGVkIHdoZW4gYSBqb2Igc3VibWl0dGVk CiAJICogYnkgdGhpcyBmZCBjYXVzZXMgYSBHUFUgcmVzZXQuIEl0IG11c3QgYmUgcHJvdGVjdGVk IGJ5CkBAIC02MDMsMTAgKzYwNSwyMyBAQCB2b2lkIHYzZF90aW1lc3RhbXBfcXVlcnlfaW5mb19m cmVlKHN0cnVjdCB2M2RfdGltZXN0YW1wX3F1ZXJ5X2luZm8gKnF1ZXJ5X2luZm8sCiAJCQkJICAg dW5zaWduZWQgaW50IGNvdW50KTsKIHZvaWQgdjNkX3BlcmZvcm1hbmNlX3F1ZXJ5X2luZm9fZnJl ZShzdHJ1Y3QgdjNkX3BlcmZvcm1hbmNlX3F1ZXJ5X2luZm8gKnF1ZXJ5X2luZm8sCiAJCQkJICAg ICB1bnNpZ25lZCBpbnQgY291bnQpOworc3RydWN0IHYzZF9zdGF0cyAqdjNkX3N0YXRzX2FsbG9j KHZvaWQpOwordm9pZCB2M2Rfc3RhdHNfcmVsZWFzZShzdHJ1Y3Qga3JlZiAqcmVmY291bnQpOwog dm9pZCB2M2Rfam9iX3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgdjNkX2pvYiAqam9iLCBlbnVtIHYzZF9x dWV1ZSBxKTsKIGludCB2M2Rfc2NoZWRfaW5pdChzdHJ1Y3QgdjNkX2RldiAqdjNkKTsKIHZvaWQg djNkX3NjaGVkX2Zpbmkoc3RydWN0IHYzZF9kZXYgKnYzZCk7CiAKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IHYzZF9zdGF0cyAqdjNkX3N0YXRzX2dldChzdHJ1Y3QgdjNkX3N0YXRzICpzdGF0cykKK3sK KwlrcmVmX2dldCgmc3RhdHMtPnJlZmNvdW50KTsKKwlyZXR1cm4gc3RhdHM7Cit9CisKK3N0YXRp YyBpbmxpbmUgdm9pZCB2M2Rfc3RhdHNfcHV0KHN0cnVjdCB2M2Rfc3RhdHMgKnN0YXRzKQorewor CWtyZWZfcHV0KCZzdGF0cy0+cmVmY291bnQsIHYzZF9zdGF0c19yZWxlYXNlKTsKK30KKwogLyog djNkX3BlcmZtb24uYyAqLwogdm9pZCB2M2RfcGVyZm1vbl9pbml0KHN0cnVjdCB2M2RfZGV2ICp2 M2QpOwogdm9pZCB2M2RfcGVyZm1vbl9nZXQoc3RydWN0IHYzZF9wZXJmbW9uICpwZXJmbW9uKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL3YzZC92M2RfZ2VtLmMKaW5kZXggNTc5NjVjMGQ2ZjZlZmVhMDAxOWZiMGIxYTQ3YWRkZjJm NTg2ZDEzOC4uODU5ZTYzZGQ3ZTk3MzhlM2EzNzAyZWRmYjg1N2VjM2U4NDRiMDUyYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3YzZC92M2RfZ2VtLmMKQEAgLTI4Nyw5ICsyODcsMTMgQEAgdjNkX2dlbV9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJZm9yIChpID0gMDsgaSA8IFYzRF9NQVhfUVVFVUVTOyBpKyspIHsK IAkJc3RydWN0IHYzZF9xdWV1ZV9zdGF0ZSAqcXVldWUgPSAmdjNkLT5xdWV1ZVtpXTsKIAorCQlx dWV1ZS0+c3RhdHMgPSB2M2Rfc3RhdHNfYWxsb2MoKTsKKwkJaWYgKCFxdWV1ZS0+c3RhdHMpIHsK KwkJCXJldCA9IC1FTk9NRU07CisJCQlnb3RvIGVycl9zdGF0czsKKwkJfQorCiAJCXF1ZXVlLT5m ZW5jZV9jb250ZXh0ID0gZG1hX2ZlbmNlX2NvbnRleHRfYWxsb2MoMSk7Ci0JCW1lbXNldCgmcXVl dWUtPnN0YXRzLCAwLCBzaXplb2YocXVldWUtPnN0YXRzKSk7Ci0JCXNlcWNvdW50X2luaXQoJnF1 ZXVlLT5zdGF0cy5sb2NrKTsKIAogCQlzcGluX2xvY2tfaW5pdCgmcXVldWUtPnF1ZXVlX2xvY2sp OwogCQlzcGluX2xvY2tfaW5pdCgmcXVldWUtPmZlbmNlX2xvY2spOwpAQCAtMjk4LDE2ICszMDIs MTYgQEAgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3Bpbl9sb2NrX2lu aXQoJnYzZC0+bW1fbG9jayk7CiAJcmV0ID0gZHJtbV9tdXRleF9pbml0KGRldiwgJnYzZC0+Ym9f bG9jayk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnJfc3RhdHM7CiAJcmV0 ID0gZHJtbV9tdXRleF9pbml0KGRldiwgJnYzZC0+cmVzZXRfbG9jayk7CiAJaWYgKHJldCkKLQkJ cmV0dXJuIHJldDsKKwkJZ290byBlcnJfc3RhdHM7CiAJcmV0ID0gZHJtbV9tdXRleF9pbml0KGRl diwgJnYzZC0+c2NoZWRfbG9jayk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBl cnJfc3RhdHM7CiAJcmV0ID0gZHJtbV9tdXRleF9pbml0KGRldiwgJnYzZC0+Y2FjaGVfY2xlYW5f bG9jayk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnJfc3RhdHM7CiAKIAkv KiBOb3RlOiBXZSBkb24ndCBhbGxvY2F0ZSBhZGRyZXNzIDAuICBWYXJpb3VzIGJpdHMgb2YgSFcK IAkgKiB0cmVhdCAwIGFzIHNwZWNpYWwsIHN1Y2ggYXMgdGhlIG9jY2x1c2lvbiBxdWVyeSBjb3Vu dGVycwpAQCAtMzE5LDEwICszMjMsMTAgQEAgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCQkgICAgICAgJnYzZC0+cHRfcGFkZHIsCiAJCQkgICAgICAgR0ZQX0tFUk5FTCB8 IF9fR0ZQX05PV0FSTiB8IF9fR0ZQX1pFUk8pOwogCWlmICghdjNkLT5wdCkgewotCQlkcm1fbW1f dGFrZWRvd24oJnYzZC0+bW0pOwogCQlkZXZfZXJyKHYzZC0+ZHJtLmRldiwKIAkJCSJGYWlsZWQg dG8gYWxsb2NhdGUgcGFnZSB0YWJsZXMuIFBsZWFzZSBlbnN1cmUgeW91IGhhdmUgRE1BIGVuYWJs ZWQuXG4iKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJy X2RtYV9hbGxvYzsKIAl9CiAKIAl2M2RfaW5pdF9od19zdGF0ZSh2M2QpOwpAQCAtMzMxLDE0ICsz MzUsMjAgQEAgdjNkX2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJdjNkX2h1Z2Vf bW50X2luaXQodjNkKTsKIAogCXJldCA9IHYzZF9zY2hlZF9pbml0KHYzZCk7Ci0JaWYgKHJldCkg ewotCQlkcm1fbW1fdGFrZWRvd24oJnYzZC0+bW0pOwotCQlkbWFfZnJlZV9jb2hlcmVudCh2M2Qt PmRybS5kZXYsIHB0X3NpemUsICh2b2lkICopdjNkLT5wdCwKLQkJCQkgIHYzZC0+cHRfcGFkZHIp OwotCQlyZXR1cm4gcmV0OwotCX0KKwlpZiAocmV0KQorCQlnb3RvIGVycl9zY2hlZDsKIAogCXJl dHVybiAwOworCitlcnJfc2NoZWQ6CisJZG1hX2ZyZWVfY29oZXJlbnQodjNkLT5kcm0uZGV2LCBw dF9zaXplLCAodm9pZCAqKXYzZC0+cHQsIHYzZC0+cHRfcGFkZHIpOworZXJyX2RtYV9hbGxvYzoK Kwlkcm1fbW1fdGFrZWRvd24oJnYzZC0+bW0pOworZXJyX3N0YXRzOgorCWZvciAoaS0tOyBpID49 IDA7IGktLSkKKwkJdjNkX3N0YXRzX3B1dCh2M2QtPnF1ZXVlW2ldLnN0YXRzKTsKKworCXJldHVy biByZXQ7CiB9CiAKIHZvaWQKQEAgLTM1Miw4ICszNjIsMTAgQEAgdjNkX2dlbV9kZXN0cm95KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJLyogV2FpdGluZyBmb3Igam9icyB0byBmaW5pc2ggd291 bGQgbmVlZCB0byBiZSBkb25lIGJlZm9yZQogCSAqIHVucmVnaXN0ZXJpbmcgVjNELgogCSAqLwot CWZvciAocSA9IDA7IHEgPCBWM0RfTUFYX1FVRVVFUzsgcSsrKQorCWZvciAocSA9IDA7IHEgPCBW M0RfTUFYX1FVRVVFUzsgcSsrKSB7CiAJCVdBUk5fT04odjNkLT5xdWV1ZVtxXS5hY3RpdmVfam9i KTsKKwkJdjNkX3N0YXRzX3B1dCh2M2QtPnF1ZXVlW3FdLnN0YXRzKTsKKwl9CiAKIAlkcm1fbW1f dGFrZWRvd24oJnYzZC0+bW0pOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3Yz ZF9zY2hlZC5jIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYwppbmRleCAxODI2NTcy MWMxZDMyMTU4ZmE2ZjdlNjhmYTNlNzBhNzdkMjY1YjlkLi43ODdmMjEzMzdiMmEwM2E5MjMzNDJm ZTRmNWY5MjdlOTIxNDA4MmM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9z Y2hlZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNkX3NjaGVkLmMKQEAgLTY2LDYgKzY2 LDI3IEBAIHRvX2NwdV9qb2Ioc3RydWN0IGRybV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKIAlyZXR1 cm4gY29udGFpbmVyX29mKHNjaGVkX2pvYiwgc3RydWN0IHYzZF9jcHVfam9iLCBiYXNlLmJhc2Up OwogfQogCit2b2lkIHYzZF9zdGF0c19yZWxlYXNlKHN0cnVjdCBrcmVmICpyZWZjb3VudCkKK3sK KwlzdHJ1Y3QgdjNkX3N0YXRzICpzdGF0cyA9IGNvbnRhaW5lcl9vZihyZWZjb3VudCwgdHlwZW9m KCpzdGF0cyksIHJlZmNvdW50KTsKKworCWtmcmVlKHN0YXRzKTsKK30KKworc3RydWN0IHYzZF9z dGF0cyAqdjNkX3N0YXRzX2FsbG9jKHZvaWQpCit7CisJc3RydWN0IHYzZF9zdGF0cyAqc3RhdHM7 CisKKwlzdGF0cyA9IGt6YWxsb2Nfb2JqKCpzdGF0cyk7CisJaWYgKCFzdGF0cykKKwkJcmV0dXJu IE5VTEw7CisKKwlrcmVmX2luaXQoJnN0YXRzLT5yZWZjb3VudCk7CisJc2VxY291bnRfaW5pdCgm c3RhdHMtPmxvY2spOworCisJcmV0dXJuIHN0YXRzOworfQorCiBzdGF0aWMgdm9pZAogdjNkX3Nj aGVkX2pvYl9mcmVlKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCiB7CkBAIC0xNDEs OCArMTYyLDggQEAgdjNkX2pvYl9zdGFydF9zdGF0cyhzdHJ1Y3QgdjNkX2pvYiAqam9iLCBlbnVt IHYzZF9xdWV1ZSBxdWV1ZSkKIHsKIAlzdHJ1Y3QgdjNkX2RldiAqdjNkID0gam9iLT52M2Q7CiAJ c3RydWN0IHYzZF9maWxlX3ByaXYgKmZpbGUgPSBqb2ItPmZpbGVfcHJpdjsKLQlzdHJ1Y3QgdjNk X3N0YXRzICpnbG9iYWxfc3RhdHMgPSAmdjNkLT5xdWV1ZVtxdWV1ZV0uc3RhdHM7Ci0Jc3RydWN0 IHYzZF9zdGF0cyAqbG9jYWxfc3RhdHMgPSAmZmlsZS0+c3RhdHNbcXVldWVdOworCXN0cnVjdCB2 M2Rfc3RhdHMgKmdsb2JhbF9zdGF0cyA9IHYzZC0+cXVldWVbcXVldWVdLnN0YXRzOworCXN0cnVj dCB2M2Rfc3RhdHMgKmxvY2FsX3N0YXRzID0gZmlsZS0+c3RhdHNbcXVldWVdOwogCXU2NCBub3cg PSBsb2NhbF9jbG9jaygpOwogCiAJcHJlZW1wdF9kaXNhYmxlKCk7CkBAIC0xNzMsNyArMTk0LDcg QEAgdjNkX2pvYl91cGRhdGVfc3RhdHMoc3RydWN0IHYzZF9qb2IgKmpvYiwgZW51bSB2M2RfcXVl dWUgcSkKIHsKIAlzdHJ1Y3QgdjNkX2RldiAqdjNkID0gam9iLT52M2Q7CiAJc3RydWN0IHYzZF9x dWV1ZV9zdGF0ZSAqcXVldWUgPSAmdjNkLT5xdWV1ZVtxXTsKLQlzdHJ1Y3QgdjNkX3N0YXRzICpn bG9iYWxfc3RhdHMgPSAmcXVldWUtPnN0YXRzOworCXN0cnVjdCB2M2Rfc3RhdHMgKmdsb2JhbF9z dGF0cyA9IHF1ZXVlLT5zdGF0czsKIAl1NjQgbm93ID0gbG9jYWxfY2xvY2soKTsKIAogCXByZWVt cHRfZGlzYWJsZSgpOwpAQCAtMTgxLDcgKzIwMiw3IEBAIHYzZF9qb2JfdXBkYXRlX3N0YXRzKHN0 cnVjdCB2M2Rfam9iICpqb2IsIGVudW0gdjNkX3F1ZXVlIHEpCiAJLyogRG9uJ3QgdXBkYXRlIHRo ZSBsb2NhbCBzdGF0cyBpZiB0aGUgZmlsZSBjb250ZXh0IGhhcyBhbHJlYWR5IGNsb3NlZCAqLwog CXNwaW5fbG9jaygmcXVldWUtPnF1ZXVlX2xvY2spOwogCWlmIChqb2ItPmZpbGVfcHJpdikKLQkJ djNkX3N0YXRzX3VwZGF0ZSgmam9iLT5maWxlX3ByaXYtPnN0YXRzW3FdLCBub3cpOworCQl2M2Rf c3RhdHNfdXBkYXRlKGpvYi0+ZmlsZV9wcml2LT5zdGF0c1txXSwgbm93KTsKIAlzcGluX3VubG9j aygmcXVldWUtPnF1ZXVlX2xvY2spOwogCiAJdjNkX3N0YXRzX3VwZGF0ZShnbG9iYWxfc3RhdHMs IG5vdyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zeXNmcy5jIGIvZHJp dmVycy9ncHUvZHJtL3YzZC92M2Rfc3lzZnMuYwppbmRleCBkNjEwZTM1NTk2NGZmYWY0NWY3ZDQ0 ZTVjNjY3MzY5Y2VkYzIwNWRjLi5iNDVhOWIzZGI0MmQ2OTg4NTY4NzMxNDVlNDk0OGFhZDI3ZWVi MjhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9zeXNmcy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX3N5c2ZzLmMKQEAgLTIwLDcgKzIwLDcgQEAgZ3B1X3N0YXRz X3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Y2hhciAqYnVmKQogCWxlbiArPSBzeXNmc19lbWl0KGJ1ZiwgInF1ZXVlXHR0aW1lc3RhbXBcdGpv YnNcdHJ1bnRpbWVcbiIpOwogCiAJZm9yIChxdWV1ZSA9IDA7IHF1ZXVlIDwgVjNEX01BWF9RVUVV RVM7IHF1ZXVlKyspIHsKLQkJc3RydWN0IHYzZF9zdGF0cyAqc3RhdHMgPSAmdjNkLT5xdWV1ZVtx dWV1ZV0uc3RhdHM7CisJCXN0cnVjdCB2M2Rfc3RhdHMgKnN0YXRzID0gdjNkLT5xdWV1ZVtxdWV1 ZV0uc3RhdHM7CiAJCXU2NCBhY3RpdmVfcnVudGltZSwgam9ic19jb21wbGV0ZWQ7CiAKIAkJdjNk X2dldF9zdGF0cyhzdGF0cywgdGltZXN0YW1wLCAmYWN0aXZlX3J1bnRpbWUsICZqb2JzX2NvbXBs ZXRlZCk7CgotLSAKMi41My4wCgo=