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 075FECD4855 for ; Mon, 11 May 2026 23:56:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5DF3B10E92F; Mon, 11 May 2026 23:56:52 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="n2JVUZkB"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id A82F210E92B for ; Mon, 11 May 2026 23:56:46 +0000 (UTC) Received: from killaraus.ideasonboard.com (2001-14ba-70f3-e800--a06.rev.dnainternet.fi [IPv6:2001:14ba:70f3:e800::a06]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 3DC79C59; Tue, 12 May 2026 01:56:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1778543798; bh=EGbHYqxwzfwOq5C4USirZJosUYx3zW2hru1cT9OQMuY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=n2JVUZkBW37Dt+OZEw4MKQDmVILiRK7VFEspQsM73pxmormiuiFQ+OYHwdg2JGcz+ Azl+oagkPVWw6/oLcIZmjQhxEukGuXpysQOUuaOWlCZcjTvwYVzYmqA7uks59dsvs5 TcS28ptxn9gIVwH9x6RxmeNjLGP5UGMMQNyLPQUg= From: Laurent Pinchart To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org, Tomi Valkeinen , Kieran Bingham , Biju Das , David Airlie , Simona Vetter Subject: [PATCH 05/11] media: renesas: vsp1: Use mutex guards Date: Tue, 12 May 2026 02:56:29 +0300 Message-ID: <20260511235637.3468558-6-laurent.pinchart+renesas@ideasonboard.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260511235637.3468558-1-laurent.pinchart+renesas@ideasonboard.com> References: <20260511235637.3468558-1-laurent.pinchart+renesas@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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" UmVwbGFjZSBtYW51YWwgbXV0ZXggbG9ja2luZyBhbmQgdW5sb2NraW5nIHdpdGggZ3VhcmRzLiBU aGlzIHNpbXBsaWZpZXMKZXJyb3IgcGF0aHMgYW5kIHJlZHVjZXMgdGhlIGFtb3VudCBvZiBjb2Rl LiBMaW1pdCB0aGUgY2hhbmdlcyB0bwpsb2NhdGlvbnMgd2hlcmUgdGhlIGd1YXJkIGNvdmVycyB1 bnRpbCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiB0byBlYXNlCnJldmlldy4gU2NvcGVkIGd1YXJk cyB3aWxsIGJlIGludHJvZHVjZWQgc2VwYXJhdGVseS4KClNpZ25lZC1vZmYtYnk6IExhdXJlbnQg UGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgotLS0K IC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9icnguYyAgICB8IDI2ICsrKyst LS0tLS0tCiAuLi4vbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZHJtLmMgICAgfCAg NyArLS0KIC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9lbnRpdHkuYyB8IDE5 ICsrKy0tLS0tCiAuLi4vbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfaGlzdG8uYyAg fCAzNSArKysrKy0tLS0tLS0tLS0KIC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNw MV9oc2l0LmMgICB8IDE1ICsrKy0tLS0KIC4uLi9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEv dnNwMV9yd3BmLmMgICB8IDQ0ICsrKysrKy0tLS0tLS0tLS0tLS0KIC4uLi9tZWRpYS9wbGF0Zm9y bS9yZW5lc2FzL3ZzcDEvdnNwMV9zcnUuYyAgICB8IDEzICsrLS0tLQogLi4uL21lZGlhL3BsYXRm b3JtL3JlbmVzYXMvdnNwMS92c3AxX3Vkcy5jICAgIHwgMTMgKystLS0tCiAuLi4vbWVkaWEvcGxh dGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfdWlmLmMgICAgfCAyOSArKysrLS0tLS0tLS0KIC4uLi9t ZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV92aWRlby5jICB8IDIwICsrKystLS0tLQog Li4uL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3dwZi5jICAgIHwgMTcgKysrLS0t LQogMTEgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgMTYxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfYnJ4 LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2JyeC5jCmluZGV4 IDlkOTNjYjhiOGU4Mi4uYmQyNjcyMzQxMzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2JyeC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vcmVuZXNhcy92c3AxL3ZzcDFfYnJ4LmMKQEAgLTEzMCwxNSArMTMwLDEyIEBAIHN0YXRpYyBp bnQgYnJ4X3NldF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJc3RydWN0IHZz cDFfYnJ4ICpicnggPSB0b19icngoc3ViZGV2KTsKIAlzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUg KnN0YXRlOwogCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKmZvcm1hdDsKLQlpbnQgcmV0ID0g MDsKIAotCW11dGV4X2xvY2soJmJyeC0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11dGV4KSgmYnJ4 LT5lbnRpdHkubG9jayk7CiAKIAlzdGF0ZSA9IHZzcDFfZW50aXR5X2dldF9zdGF0ZSgmYnJ4LT5l bnRpdHksIHNkX3N0YXRlLCBmbXQtPndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1F SU5WQUw7Ci0JCWdvdG8gZG9uZTsKLQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7 CiAKIAlicnhfdHJ5X2Zvcm1hdChicngsIHN0YXRlLCBmbXQtPnBhZCwgJmZtdC0+Zm9ybWF0KTsK IApAQCAtMTY2LDkgKzE2Myw3IEBAIHN0YXRpYyBpbnQgYnJ4X3NldF9mb3JtYXQoc3RydWN0IHY0 bDJfc3ViZGV2ICpzdWJkZXYsCiAJCX0KIAl9CiAKLWRvbmU6Ci0JbXV0ZXhfdW5sb2NrKCZicngt PmVudGl0eS5sb2NrKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50 IGJyeF9nZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LApAQCAtMjEzLDcg KzIwOCw2IEBAIHN0YXRpYyBpbnQgYnJ4X3NldF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3ViZGV2 ICpzdWJkZXYsCiAJc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3QgdjRs Ml9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7CiAJc3RydWN0IHY0bDJfcmVjdCAqY29tcG9zZTsKLQlp bnQgcmV0ID0gMDsKIAogCWlmIChzZWwtPnBhZCA9PSBicngtPmVudGl0eS5zb3VyY2VfcGFkKQog CQlyZXR1cm4gLUVJTlZBTDsKQEAgLTIyMSwxMyArMjE1LDExIEBAIHN0YXRpYyBpbnQgYnJ4X3Nl dF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJaWYgKHNlbC0+dGFyZ2V0 ICE9IFY0TDJfU0VMX1RHVF9DT01QT1NFKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW11dGV4X2xv Y2soJmJyeC0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11dGV4KSgmYnJ4LT5lbnRpdHkubG9jayk7 CiAKIAlzdGF0ZSA9IHZzcDFfZW50aXR5X2dldF9zdGF0ZSgmYnJ4LT5lbnRpdHksIHNkX3N0YXRl LCBzZWwtPndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8g ZG9uZTsKLQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKgogCSAqIFRo ZSBjb21wb3NlIHJlY3RhbmdsZSB0b3AgbGVmdCBjb3JuZXIgbXVzdCBiZSBpbnNpZGUgdGhlIG91 dHB1dApAQCAtMjQ4LDkgKzI0MCw3IEBAIHN0YXRpYyBpbnQgYnJ4X3NldF9zZWxlY3Rpb24oc3Ry dWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJY29tcG9zZSA9IHY0bDJfc3ViZGV2X3N0YXRlX2dl dF9jb21wb3NlKHN0YXRlLCBzZWwtPnBhZCk7CiAJKmNvbXBvc2UgPSBzZWwtPnI7CiAKLWRvbmU6 Ci0JbXV0ZXhfdW5sb2NrKCZicngtPmVudGl0eS5sb2NrKTsKLQlyZXR1cm4gcmV0OworCXJldHVy biAwOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHY0bDJfc3ViZGV2X3BhZF9vcHMgYnJ4X3Bh ZF9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNw MS92c3AxX2RybS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9k cm0uYwppbmRleCAxZjQzMTg3NDA2NGQuLjE0MzljZjdiZmI1OSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9kcm0uYworKysgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2RybS5jCkBAIC05MjAsNyArOTIwLDcgQEAg dm9pZCB2c3AxX2R1X2F0b21pY19mbHVzaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGlu dCBwaXBlX2luZGV4LAogCiAJZHJtX3BpcGUtPmNyYyA9IGNmZy0+Y3JjOwogCi0JbXV0ZXhfbG9j aygmdnNwMS0+ZHJtLT5sb2NrKTsKKwlndWFyZChtdXRleCkoJnZzcDEtPmRybS0+bG9jayk7CiAK IAlpZiAoY2ZnLT53cml0ZWJhY2sucGl4ZWxmb3JtYXQpIHsKIAkJY29uc3Qgc3RydWN0IHZzcDFf ZHVfd3JpdGViYWNrX2NvbmZpZyAqd2JfY2ZnID0gJmNmZy0+d3JpdGViYWNrOwpAQCAtOTI5LDcg KzkyOSw3IEBAIHZvaWQgdnNwMV9kdV9hdG9taWNfZmx1c2goc3RydWN0IGRldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZV9pbmRleCwKIAkJCQkJCSAgICAgICB3Yl9jZmctPnBpeGVsZm9ybWF0 LAogCQkJCQkJICAgICAgIHdiX2NmZy0+cGl0Y2gpOwogCQlpZiAoV0FSTl9PTihyZXQgPCAwKSkK LQkJCWdvdG8gZG9uZTsKKwkJCXJldHVybjsKIAogCQlwaXBlLT5vdXRwdXQtPm1lbS5hZGRyWzBd ID0gd2JfY2ZnLT5tZW1bMF07CiAJCXBpcGUtPm91dHB1dC0+bWVtLmFkZHJbMV0gPSB3Yl9jZmct Pm1lbVsxXTsKQEAgLTk0Miw5ICs5NDIsNiBAQCB2b2lkIHZzcDFfZHVfYXRvbWljX2ZsdXNoKHN0 cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGVfaW5kZXgsCiAJdnNwMV9waXBlbGlu ZV9kdW1wKHBpcGUsICJhdG9taWMgdXBkYXRlIik7CiAKIAl2c3AxX2R1X3BpcGVsaW5lX2NvbmZp Z3VyZShwaXBlKTsKLQotZG9uZToKLQltdXRleF91bmxvY2soJnZzcDEtPmRybS0+bG9jayk7CiB9 CiBFWFBPUlRfU1lNQk9MX0dQTCh2c3AxX2R1X2F0b21pY19mbHVzaCk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfZW50aXR5LmMgYi9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2VudGl0eS5jCmluZGV4IDgzOWI3 NWI2MmNlYi4uMzgyMGJhNTNiNDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvdnNwMS92c3AxX2VudGl0eS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v cmVuZXNhcy92c3AxL3ZzcDFfZW50aXR5LmMKQEAgLTE3Miw5ICsxNzIsOSBAQCBpbnQgdnNwMV9z dWJkZXZfZ2V0X3BhZF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJaWYgKCFz dGF0ZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQltdXRleF9sb2NrKCZlbnRpdHktPmxvY2spOwor CWd1YXJkKG11dGV4KSgmZW50aXR5LT5sb2NrKTsKKwogCWZtdC0+Zm9ybWF0ID0gKnY0bDJfc3Vi ZGV2X3N0YXRlX2dldF9mb3JtYXQoc3RhdGUsIGZtdC0+cGFkKTsKLQltdXRleF91bmxvY2soJmVu dGl0eS0+bG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMwOCwyMiArMzA4LDE5IEBAIGludCB2 c3AxX3N1YmRldl9zZXRfcGFkX2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAlz dHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7CiAJc3RydWN0IHY0bDJfcmVjdCAqc2Vs ZWN0aW9uOwogCXVuc2lnbmVkIGludCBpOwotCWludCByZXQgPSAwOwogCi0JbXV0ZXhfbG9jaygm ZW50aXR5LT5sb2NrKTsKKwlndWFyZChtdXRleCkoJmVudGl0eS0+bG9jayk7CiAKIAlzdGF0ZSA9 IHZzcDFfZW50aXR5X2dldF9zdGF0ZShlbnRpdHksIHNkX3N0YXRlLCBmbXQtPndoaWNoKTsKLQlp ZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gZG9uZTsKLQl9CisJaWYgKCFz dGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlmb3JtYXQgPSB2NGwyX3N1YmRldl9zdGF0ZV9n ZXRfZm9ybWF0KHN0YXRlLCBmbXQtPnBhZCk7CiAKIAlpZiAoZm10LT5wYWQgPT0gZW50aXR5LT5z b3VyY2VfcGFkKSB7CiAJCS8qIFRoZSBvdXRwdXQgZm9ybWF0IGNhbid0IGJlIG1vZGlmaWVkLiAq LwogCQlmbXQtPmZvcm1hdCA9ICpmb3JtYXQ7Ci0JCWdvdG8gZG9uZTsKKwkJcmV0dXJuIDA7CiAJ fQogCiAJLyoKQEAgLTM2OSw5ICszNjYsNyBAQCBpbnQgdnNwMV9zdWJkZXZfc2V0X3BhZF9mb3Jt YXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJc2VsZWN0aW9uLT53aWR0aCA9IGZvcm1h dC0+d2lkdGg7CiAJc2VsZWN0aW9uLT5oZWlnaHQgPSBmb3JtYXQtPmhlaWdodDsKIAotZG9uZToK LQltdXRleF91bmxvY2soJmVudGl0eS0+bG9jayk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCB2c3AxX2VudGl0eV9pbml0X3N0YXRlKHN0cnVjdCB2NGwyX3N1YmRl diAqc3ViZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV9oaXN0by5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNw MV9oaXN0by5jCmluZGV4IDNmODdhMmM5ZGYwZS4uNzJmNmVmMmZkYzRmIDEwMDY0NAotLS0gYS9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX2hpc3RvLmMKKysrIGIvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9oaXN0by5jCkBAIC0xOTYsMTgg KzE5NiwxNSBAQCBzdGF0aWMgaW50IGhpc3RvX2dldF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3Vi ZGV2ICpzdWJkZXYsCiAJc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3Qg djRsMl9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7CiAJc3RydWN0IHY0bDJfcmVjdCAqY3JvcDsKLQlp bnQgcmV0ID0gMDsKIAogCWlmIChzZWwtPnBhZCAhPSBISVNUT19QQURfU0lOSykKIAkJcmV0dXJu IC1FSU5WQUw7CiAKLQltdXRleF9sb2NrKCZoaXN0by0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11 dGV4KSgmaGlzdG8tPmVudGl0eS5sb2NrKTsKIAogCXN0YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0 YXRlKCZoaXN0by0+ZW50aXR5LCBzZF9zdGF0ZSwgc2VsLT53aGljaCk7Ci0JaWYgKCFzdGF0ZSkg ewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIGRvbmU7Ci0JfQorCWlmICghc3RhdGUpCisJCXJl dHVybiAtRUlOVkFMOwogCiAJc3dpdGNoIChzZWwtPnRhcmdldCkgewogCWNhc2UgVjRMMl9TRUxf VEdUX0NPTVBPU0VfQk9VTkRTOgpAQCAtMjM3LDEzICsyMzQsMTAgQEAgc3RhdGljIGludCBoaXN0 b19nZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LAogCQlicmVhazsKIAog CWRlZmF1bHQ6Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWJyZWFrOworCQlyZXR1cm4gLUVJTlZBTDsK IAl9CiAKLWRvbmU6Ci0JbXV0ZXhfdW5sb2NrKCZoaXN0by0+ZW50aXR5LmxvY2spOwotCXJldHVy biByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgaGlzdG9fc2V0X2Nyb3Aoc3RydWN0 IHY0bDJfc3ViZGV2ICpzdWJkZXYsCkBAIC0zMjEsMjkgKzMxNSwyMiBAQCBzdGF0aWMgaW50IGhp c3RvX3NldF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiB7CiAJc3RydWN0 IHZzcDFfaGlzdG9ncmFtICpoaXN0byA9IHN1YmRldl90b19oaXN0byhzdWJkZXYpOwogCXN0cnVj dCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGU7Ci0JaW50IHJldDsKIAogCWlmIChzZWwtPnBhZCAh PSBISVNUT19QQURfU0lOSykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQltdXRleF9sb2NrKCZoaXN0 by0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11dGV4KSgmaGlzdG8tPmVudGl0eS5sb2NrKTsKIAog CXN0YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0YXRlKCZoaXN0by0+ZW50aXR5LCBzZF9zdGF0ZSwg c2VsLT53aGljaCk7Ci0JaWYgKCFzdGF0ZSkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIGRv bmU7Ci0JfQorCWlmICghc3RhdGUpCisJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKHNlbC0+dGFy Z2V0ID09IFY0TDJfU0VMX1RHVF9DUk9QKQotCQlyZXQgPSBoaXN0b19zZXRfY3JvcChzdWJkZXYs IHN0YXRlLCBzZWwpOworCQlyZXR1cm4gaGlzdG9fc2V0X2Nyb3Aoc3ViZGV2LCBzdGF0ZSwgc2Vs KTsKIAllbHNlIGlmIChzZWwtPnRhcmdldCA9PSBWNEwyX1NFTF9UR1RfQ09NUE9TRSkKLQkJcmV0 ID0gaGlzdG9fc2V0X2NvbXBvc2Uoc3ViZGV2LCBzdGF0ZSwgc2VsKTsKKwkJcmV0dXJuIGhpc3Rv X3NldF9jb21wb3NlKHN1YmRldiwgc3RhdGUsIHNlbCk7CiAJZWxzZQotCQlyZXQgPSAtRUlOVkFM OwotCi1kb25lOgotCW11dGV4X3VubG9jaygmaGlzdG8tPmVudGl0eS5sb2NrKTsKLQlyZXR1cm4g cmV0OworCQlyZXR1cm4gLUVJTlZBTDsKIH0KIAogc3RhdGljIGludCBoaXN0b19zZXRfZm9ybWF0 KHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9oc2l0LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvdnNwMS92c3AxX2hzaXQuYwppbmRleCA4MzBlMTI0YmViN2IuLmRmMDY5YzIyODI0 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9o c2l0LmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9oc2l0 LmMKQEAgLTExNSwxNSArMTE1LDEyIEBAIHN0YXRpYyBpbnQgaHNpdF9zZXRfZm9ybWF0KHN0cnVj dCB2NGwyX3N1YmRldiAqc3ViZGV2LAogCXN0cnVjdCB2c3AxX2hzaXQgKmhzaXQgPSB0b19oc2l0 KHN1YmRldik7CiAJc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3QgdjRs Ml9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7Ci0JaW50IHJldCA9IDA7CiAKLQltdXRleF9sb2NrKCZo c2l0LT5lbnRpdHkubG9jayk7CisJZ3VhcmQobXV0ZXgpKCZoc2l0LT5lbnRpdHkubG9jayk7CiAK IAlzdGF0ZSA9IHZzcDFfZW50aXR5X2dldF9zdGF0ZSgmaHNpdC0+ZW50aXR5LCBzZF9zdGF0ZSwg Zm10LT53aGljaCk7Ci0JaWYgKCFzdGF0ZSkgewotCQlyZXQgPSAtRUlOVkFMOwotCQlnb3RvIGRv bmU7Ci0JfQorCWlmICghc3RhdGUpCisJCXJldHVybiAtRUlOVkFMOwogCiAJZm9ybWF0ID0gdjRs Ml9zdWJkZXZfc3RhdGVfZ2V0X2Zvcm1hdChzdGF0ZSwgZm10LT5wYWQpOwogCkBAIC0xMzMsNyAr MTMwLDcgQEAgc3RhdGljIGludCBoc2l0X3NldF9mb3JtYXQoc3RydWN0IHY0bDJfc3ViZGV2ICpz dWJkZXYsCiAJCSAqIG1vZGlmaWVkLgogCQkgKi8KIAkJZm10LT5mb3JtYXQgPSAqZm9ybWF0Owot CQlnb3RvIGRvbmU7CisJCXJldHVybiAwOwogCX0KIAogCWZvcm1hdC0+Y29kZSA9IGhzaXQtPmlu dmVyc2UgPyBNRURJQV9CVVNfRk1UX0FIU1Y4ODg4XzFYMzIKQEAgLTE2MSw5ICsxNTgsNyBAQCBz dGF0aWMgaW50IGhzaXRfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAog CXZzcDFfZW50aXR5X2FkanVzdF9jb2xvcl9zcGFjZShmb3JtYXQpOwogCi1kb25lOgotCW11dGV4 X3VubG9jaygmaHNpdC0+ZW50aXR5LmxvY2spOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX29wcyBoc2l0X3BhZF9vcHMg PSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3Ax X3J3cGYuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfcndwZi5j CmluZGV4IGM3MjUxOGIyOWY4NC4uY2VkMDE4NzBhY2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3J3cGYuYworKysgYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3J3cGYuYwpAQCAtMTE2LDE1ICsxMTYsMTIgQEAg c3RhdGljIGludCB2c3AxX3J3cGZfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRl diwKIAlzdHJ1Y3QgdnNwMV9yd3BmICpyd3BmID0gdG9fcndwZihzdWJkZXYpOwogCXN0cnVjdCB2 NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGU7CiAJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqZm9y bWF0OwotCWludCByZXQgPSAwOwogCi0JbXV0ZXhfbG9jaygmcndwZi0+ZW50aXR5LmxvY2spOwor CWd1YXJkKG11dGV4KSgmcndwZi0+ZW50aXR5LmxvY2spOwogCiAJc3RhdGUgPSB2c3AxX2VudGl0 eV9nZXRfc3RhdGUoJnJ3cGYtPmVudGl0eSwgc2Rfc3RhdGUsIGZtdC0+d2hpY2gpOwotCWlmICgh c3RhdGUpIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBkb25lOwotCX0KKwlpZiAoIXN0YXRl KQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIERlZmF1bHQgdG8gWVVWIGlmIHRoZSByZXF1ZXN0 ZWQgZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQuICovCiAJaWYgKGZtdC0+Zm9ybWF0LmNvZGUgIT0g TUVESUFfQlVTX0ZNVF9BUkdCODg4OF8xWDMyICYmCkBAIC0xNzQsNyArMTcxLDcgQEAgc3RhdGlj IGludCB2c3AxX3J3cGZfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAkJ Zm10LT5mb3JtYXQgPSAqZm9ybWF0OwogCQlmbXQtPmZvcm1hdC5mbGFncyA9IGZsYWdzOwogCi0J CWdvdG8gZG9uZTsKKwkJcmV0dXJuIDA7CiAJfQogCiAJZm9ybWF0LT5jb2RlID0gZm10LT5mb3Jt YXQuY29kZTsKQEAgLTIxMyw5ICsyMTAsNyBAQCBzdGF0aWMgaW50IHZzcDFfcndwZl9zZXRfZm9y bWF0KHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LAogCQlmb3JtYXQtPmhlaWdodCA9IGZtdC0+ Zm9ybWF0LndpZHRoOwogCX0KIAotZG9uZToKLQltdXRleF91bmxvY2soJnJ3cGYtPmVudGl0eS5s b2NrKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IHZzcDFfcndw Zl9nZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LApAQCAtMjI1LDcgKzIy MCw2IEBAIHN0YXRpYyBpbnQgdnNwMV9yd3BmX2dldF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3Vi ZGV2ICpzdWJkZXYsCiAJc3RydWN0IHZzcDFfcndwZiAqcndwZiA9IHRvX3J3cGYoc3ViZGV2KTsK IAlzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlOwogCXN0cnVjdCB2NGwyX21idXNfZnJh bWVmbXQgKmZvcm1hdDsKLQlpbnQgcmV0ID0gMDsKIAogCS8qCiAJICogQ3JvcHBpbmcgaXMgb25s eSBzdXBwb3J0ZWQgb24gdGhlIFJQRiBhbmQgaXMgaW1wbGVtZW50ZWQgb24gdGhlIHNpbmsKQEAg LTIzNCwxMyArMjI4LDExIEBAIHN0YXRpYyBpbnQgdnNwMV9yd3BmX2dldF9zZWxlY3Rpb24oc3Ry dWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJaWYgKHJ3cGYtPmVudGl0eS50eXBlID09IFZTUDFf RU5USVRZX1dQRiB8fCBzZWwtPnBhZCAhPSBSV1BGX1BBRF9TSU5LKQogCQlyZXR1cm4gLUVJTlZB TDsKIAotCW11dGV4X2xvY2soJnJ3cGYtPmVudGl0eS5sb2NrKTsKKwlndWFyZChtdXRleCkoJnJ3 cGYtPmVudGl0eS5sb2NrKTsKIAogCXN0YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0YXRlKCZyd3Bm LT5lbnRpdHksIHNkX3N0YXRlLCBzZWwtPndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9 IC1FSU5WQUw7Ci0JCWdvdG8gZG9uZTsKLQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5W QUw7CiAKIAlzd2l0Y2ggKHNlbC0+dGFyZ2V0KSB7CiAJY2FzZSBWNEwyX1NFTF9UR1RfQ1JPUDoK QEAgLTI1NiwxMyArMjQ4LDEwIEBAIHN0YXRpYyBpbnQgdnNwMV9yd3BmX2dldF9zZWxlY3Rpb24o c3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJcmV0 ID0gLUVJTlZBTDsKLQkJYnJlYWs7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAotZG9uZToKLQlt dXRleF91bmxvY2soJnJ3cGYtPmVudGl0eS5sb2NrKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAw OwogfQogCiBzdGF0aWMgaW50IHZzcDFfcndwZl9zZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1 YmRldiAqc3ViZGV2LApAQCAtMjc1LDcgKzI2NCw2IEBAIHN0YXRpYyBpbnQgdnNwMV9yd3BmX3Nl dF9zZWxlY3Rpb24oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJc3RydWN0IHY0bDJfc3Vi ZGV2X3N0YXRlICpzdGF0ZTsKIAlzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7CiAJ c3RydWN0IHY0bDJfcmVjdCAqY3JvcDsKLQlpbnQgcmV0ID0gMDsKIAogCS8qCiAJICogQ3JvcHBp bmcgaXMgb25seSBzdXBwb3J0ZWQgb24gdGhlIFJQRiBhbmQgaXMgaW1wbGVtZW50ZWQgb24gdGhl IHNpbmsKQEAgLTI4NywxMyArMjc1LDExIEBAIHN0YXRpYyBpbnQgdnNwMV9yd3BmX3NldF9zZWxl Y3Rpb24oc3RydWN0IHY0bDJfc3ViZGV2ICpzdWJkZXYsCiAJaWYgKHNlbC0+dGFyZ2V0ICE9IFY0 TDJfU0VMX1RHVF9DUk9QKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW11dGV4X2xvY2soJnJ3cGYt PmVudGl0eS5sb2NrKTsKKwlndWFyZChtdXRleCkoJnJ3cGYtPmVudGl0eS5sb2NrKTsKIAogCXN0 YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0YXRlKCZyd3BmLT5lbnRpdHksIHNkX3N0YXRlLCBzZWwt PndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gZG9uZTsK LQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiBNYWtlIHN1cmUgdGhl IGNyb3AgcmVjdGFuZ2xlIGlzIGVudGlyZWx5IGNvbnRhaW5lZCBpbiB0aGUgaW1hZ2UuICovCiAJ Zm9ybWF0ID0gdjRsMl9zdWJkZXZfc3RhdGVfZ2V0X2Zvcm1hdChzdGF0ZSwgUldQRl9QQURfU0lO Syk7CkBAIC0zNDIsOSArMzI4LDcgQEAgc3RhdGljIGludCB2c3AxX3J3cGZfc2V0X3NlbGVjdGlv bihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAlmb3JtYXQtPndpZHRoID0gY3JvcC0+d2lk dGg7CiAJZm9ybWF0LT5oZWlnaHQgPSBjcm9wLT5oZWlnaHQ7CiAKLWRvbmU6Ci0JbXV0ZXhfdW5s b2NrKCZyd3BmLT5lbnRpdHkubG9jayk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIHZzcDFfcndwZl9wYWRfb3Bz ID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNw MV9zcnUuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfc3J1LmMK aW5kZXggOTQxNDlkYTBjOTAwLi4zZmQ5ZmRlNWM3MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfc3J1LmMKKysrIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV9zcnUuYwpAQCAtMjE2LDE1ICsyMTYsMTIgQEAgc3Rh dGljIGludCBzcnVfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAlzdHJ1 Y3QgdnNwMV9zcnUgKnNydSA9IHRvX3NydShzdWJkZXYpOwogCXN0cnVjdCB2NGwyX3N1YmRldl9z dGF0ZSAqc3RhdGU7CiAJc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqZm9ybWF0OwotCWludCBy ZXQgPSAwOwogCi0JbXV0ZXhfbG9jaygmc3J1LT5lbnRpdHkubG9jayk7CisJZ3VhcmQobXV0ZXgp KCZzcnUtPmVudGl0eS5sb2NrKTsKIAogCXN0YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0YXRlKCZz cnUtPmVudGl0eSwgc2Rfc3RhdGUsIGZtdC0+d2hpY2gpOwotCWlmICghc3RhdGUpIHsKLQkJcmV0 ID0gLUVJTlZBTDsKLQkJZ290byBkb25lOwotCX0KKwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVJ TlZBTDsKIAogCXNydV90cnlfZm9ybWF0KHNydSwgc3RhdGUsIGZtdC0+cGFkLCAmZm10LT5mb3Jt YXQpOwogCkBAIC0yMzksOSArMjM2LDcgQEAgc3RhdGljIGludCBzcnVfc2V0X2Zvcm1hdChzdHJ1 Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAkJc3J1X3RyeV9mb3JtYXQoc3J1LCBzdGF0ZSwgU1JV X1BBRF9TT1VSQ0UsIGZvcm1hdCk7CiAJfQogCi1kb25lOgotCW11dGV4X3VubG9jaygmc3J1LT5l bnRpdHkubG9jayk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0 IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIHNydV9wYWRfb3BzID0gewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV91ZHMuYyBiL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfdWRzLmMKaW5kZXggZGQ0NzIyMzE1YzU2 Li45ZjdiYjExMjkyOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNh cy92c3AxL3ZzcDFfdWRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV91ZHMuYwpAQCAtMTk5LDE1ICsxOTksMTIgQEAgc3RhdGljIGludCB1ZHNfc2V0X2Zv cm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAlzdHJ1Y3QgdnNwMV91ZHMgKnVkcyA9 IHRvX3VkcyhzdWJkZXYpOwogCXN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc3RhdGU7CiAJc3Ry dWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqZm9ybWF0OwotCWludCByZXQgPSAwOwogCi0JbXV0ZXhf bG9jaygmdWRzLT5lbnRpdHkubG9jayk7CisJZ3VhcmQobXV0ZXgpKCZ1ZHMtPmVudGl0eS5sb2Nr KTsKIAogCXN0YXRlID0gdnNwMV9lbnRpdHlfZ2V0X3N0YXRlKCZ1ZHMtPmVudGl0eSwgc2Rfc3Rh dGUsIGZtdC0+d2hpY2gpOwotCWlmICghc3RhdGUpIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290 byBkb25lOwotCX0KKwlpZiAoIXN0YXRlKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCXVkc190cnlf Zm9ybWF0KHVkcywgc3RhdGUsIGZtdC0+cGFkLCAmZm10LT5mb3JtYXQpOwogCkBAIC0yMjIsOSAr MjE5LDcgQEAgc3RhdGljIGludCB1ZHNfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1 YmRldiwKIAkJdWRzX3RyeV9mb3JtYXQodWRzLCBzdGF0ZSwgVURTX1BBRF9TT1VSQ0UsIGZvcm1h dCk7CiAJfQogCi1kb25lOgotCW11dGV4X3VubG9jaygmdWRzLT5lbnRpdHkubG9jayk7Ci0JcmV0 dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVuZXNhcy92c3AxL3ZzcDFfdWlmLmMgYi9k cml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3VpZi5jCmluZGV4IDNhZWZl NWM5ZDQyMS4uNTJkYmZlNThhNzBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3JlbmVzYXMvdnNwMS92c3AxX3VpZi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vcmVu ZXNhcy92c3AxL3ZzcDFfdWlmLmMKQEAgLTYwLDE4ICs2MCwxNSBAQCBzdGF0aWMgaW50IHVpZl9n ZXRfc2VsZWN0aW9uKHN0cnVjdCB2NGwyX3N1YmRldiAqc3ViZGV2LAogCXN0cnVjdCB2c3AxX3Vp ZiAqdWlmID0gdG9fdWlmKHN1YmRldik7CiAJc3RydWN0IHY0bDJfc3ViZGV2X3N0YXRlICpzdGF0 ZTsKIAlzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpmb3JtYXQ7Ci0JaW50IHJldCA9IDA7CiAK IAlpZiAoc2VsLT5wYWQgIT0gVUlGX1BBRF9TSU5LKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCW11 dGV4X2xvY2soJnVpZi0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11dGV4KSgmdWlmLT5lbnRpdHku bG9jayk7CiAKIAlzdGF0ZSA9IHZzcDFfZW50aXR5X2dldF9zdGF0ZSgmdWlmLT5lbnRpdHksIHNk X3N0YXRlLCBzZWwtPndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0J CWdvdG8gZG9uZTsKLQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzd2l0 Y2ggKHNlbC0+dGFyZ2V0KSB7CiAJY2FzZSBWNEwyX1NFTF9UR1RfQ1JPUF9CT1VORFM6CkBAIC04 OCwxMyArODUsMTAgQEAgc3RhdGljIGludCB1aWZfZ2V0X3NlbGVjdGlvbihzdHJ1Y3QgdjRsMl9z dWJkZXYgKnN1YmRldiwKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlyZXQgPSAtRUlOVkFMOwot CQlicmVhazsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi1kb25lOgotCW11dGV4X3VubG9jaygm dWlmLT5lbnRpdHkubG9jayk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGlj IGludCB1aWZfc2V0X3NlbGVjdGlvbihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKQEAgLTEw NSwxOSArOTksMTYgQEAgc3RhdGljIGludCB1aWZfc2V0X3NlbGVjdGlvbihzdHJ1Y3QgdjRsMl9z dWJkZXYgKnN1YmRldiwKIAlzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnN0YXRlOwogCXN0cnVj dCB2NGwyX21idXNfZnJhbWVmbXQgKmZvcm1hdDsKIAlzdHJ1Y3QgdjRsMl9yZWN0ICpzZWxlY3Rp b247Ci0JaW50IHJldCA9IDA7CiAKIAlpZiAoc2VsLT5wYWQgIT0gVUlGX1BBRF9TSU5LIHx8CiAJ ICAgIHNlbC0+dGFyZ2V0ICE9IFY0TDJfU0VMX1RHVF9DUk9QKQogCQlyZXR1cm4gLUVJTlZBTDsK IAotCW11dGV4X2xvY2soJnVpZi0+ZW50aXR5LmxvY2spOworCWd1YXJkKG11dGV4KSgmdWlmLT5l bnRpdHkubG9jayk7CiAKIAlzdGF0ZSA9IHZzcDFfZW50aXR5X2dldF9zdGF0ZSgmdWlmLT5lbnRp dHksIHNkX3N0YXRlLCBzZWwtPndoaWNoKTsKLQlpZiAoIXN0YXRlKSB7Ci0JCXJldCA9IC1FSU5W QUw7Ci0JCWdvdG8gZG9uZTsKLQl9CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAK IAkvKiBUaGUgY3JvcCByZWN0YW5nbGUgbXVzdCBiZSBpbnNpZGUgdGhlIGlucHV0IGZyYW1lLiAq LwogCWZvcm1hdCA9IHY0bDJfc3ViZGV2X3N0YXRlX2dldF9mb3JtYXQoc3RhdGUsIFVJRl9QQURf U0lOSyk7CkBAIC0xMzMsOSArMTI0LDcgQEAgc3RhdGljIGludCB1aWZfc2V0X3NlbGVjdGlvbihz dHJ1Y3QgdjRsMl9zdWJkZXYgKnN1YmRldiwKIAlzZWxlY3Rpb24gPSB2NGwyX3N1YmRldl9zdGF0 ZV9nZXRfY3JvcChzdGF0ZSwgc2VsLT5wYWQpOwogCSpzZWxlY3Rpb24gPSBzZWwtPnI7CiAKLWRv bmU6Ci0JbXV0ZXhfdW5sb2NrKCZ1aWYtPmVudGl0eS5sb2NrKTsKLQlyZXR1cm4gcmV0OworCXJl dHVybiAwOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV92aWRlby5jIGIvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV92aWRlby5jCmluZGV4IGE4ZGI5NGJkYjY3MC4u NGNmMmNjMzcwNDE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMv dnNwMS92c3AxX3ZpZGVvLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3Zz cDEvdnNwMV92aWRlby5jCkBAIC01OTAsOSArNTkwLDkgQEAgc3RhdGljIHZvaWQgdnNwMV92aWRl b19waXBlbGluZV9wdXQoc3RydWN0IHZzcDFfcGlwZWxpbmUgKnBpcGUpCiB7CiAJc3RydWN0IG1l ZGlhX2RldmljZSAqbWRldiA9ICZwaXBlLT5vdXRwdXQtPmVudGl0eS52c3AxLT5tZWRpYV9kZXY7 CiAKLQltdXRleF9sb2NrKCZtZGV2LT5ncmFwaF9tdXRleCk7CisJZ3VhcmQobXV0ZXgpKCZtZGV2 LT5ncmFwaF9tdXRleCk7CisKIAlrcmVmX3B1dCgmcGlwZS0+a3JlZiwgdnNwMV92aWRlb19waXBl bGluZV9yZWxlYXNlKTsKLQltdXRleF91bmxvY2soJm1kZXYtPmdyYXBoX211dGV4KTsKIH0KIAog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTkzMyw5ICs5MzMsOSBAQCB2c3AxX3ZpZGVvX2dl dF9mb3JtYXQoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLCBzdHJ1Y3QgdjRsMl9mb3JtYXQg KmZvcm1hdCkKIAlpZiAoZm9ybWF0LT50eXBlICE9IHZpZGVvLT5xdWV1ZS50eXBlKQogCQlyZXR1 cm4gLUVJTlZBTDsKIAotCW11dGV4X2xvY2soJnZpZGVvLT5sb2NrKTsKKwlndWFyZChtdXRleCko JnZpZGVvLT5sb2NrKTsKKwogCWZvcm1hdC0+Zm10LnBpeF9tcCA9IHZpZGVvLT5yd3BmLT5mb3Jt YXQ7Ci0JbXV0ZXhfdW5sb2NrKCZ2aWRlby0+bG9jayk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTk2 NywxOSArOTY3LDE1IEBAIHZzcDFfdmlkZW9fc2V0X2Zvcm1hdChzdHJ1Y3QgZmlsZSAqZmlsZSwg dm9pZCAqZmgsIHN0cnVjdCB2NGwyX2Zvcm1hdCAqZm9ybWF0KQogCWlmIChyZXQgPCAwKQogCQly ZXR1cm4gcmV0OwogCi0JbXV0ZXhfbG9jaygmdmlkZW8tPmxvY2spOworCWd1YXJkKG11dGV4KSgm dmlkZW8tPmxvY2spOwogCi0JaWYgKHZiMl9pc19idXN5KCZ2aWRlby0+cXVldWUpKSB7Ci0JCXJl dCA9IC1FQlVTWTsKLQkJZ290byBkb25lOwotCX0KKwlpZiAodmIyX2lzX2J1c3koJnZpZGVvLT5x dWV1ZSkpCisJCXJldHVybiAtRUJVU1k7CiAKIAl2aWRlby0+cndwZi0+Zm9ybWF0ID0gZm9ybWF0 LT5mbXQucGl4X21wOwogCXZpZGVvLT5yd3BmLT5mbXRpbmZvID0gaW5mbzsKIAotZG9uZToKLQlt dXRleF91bmxvY2soJnZpZGVvLT5sb2NrKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQog CiBzdGF0aWMgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3JlbmVzYXMv dnNwMS92c3AxX3dwZi5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNw MV93cGYuYwppbmRleCBjZDZjNTU5MjIyMWIuLmU3ZWQzYzhlOWU5MCAxMDA2NDQKLS0tIGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9yZW5lc2FzL3ZzcDEvdnNwMV93cGYuYworKysgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL3JlbmVzYXMvdnNwMS92c3AxX3dwZi5jCkBAIC00Nyw3ICs0Nyw2IEBA IHN0YXRpYyBpbnQgdnNwMV93cGZfc2V0X3JvdGF0aW9uKHN0cnVjdCB2c3AxX3J3cGYgKndwZiwg dW5zaWduZWQgaW50IHJvdGF0aW9uKQogCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKnNpbmtf Zm9ybWF0OwogCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKnNvdXJjZV9mb3JtYXQ7CiAJYm9v bCByb3RhdGU7Ci0JaW50IHJldCA9IDA7CiAKIAkvKgogCSAqIE9ubHkgY29uc2lkZXIgdGhlIDDC sC8xODDCsCBmcm9tL3RvIDkwwrAvMjcwwrAgbW9kaWZpY2F0aW9ucywgdGhlIHJlc3QKQEAgLTU4 LDE5ICs1NywxNyBAQCBzdGF0aWMgaW50IHZzcDFfd3BmX3NldF9yb3RhdGlvbihzdHJ1Y3QgdnNw MV9yd3BmICp3cGYsIHVuc2lnbmVkIGludCByb3RhdGlvbikKIAkJcmV0dXJuIDA7CiAKIAkvKiBD aGFuZ2luZyByb3RhdGlvbiBpc24ndCBhbGxvd2VkIHdoZW4gYnVmZmVycyBhcmUgYWxsb2NhdGVk LiAqLwotCW11dGV4X2xvY2soJnZpZGVvLT5sb2NrKTsKKwlndWFyZChtdXRleCkoJnZpZGVvLT5s b2NrKTsKIAotCWlmICh2YjJfaXNfYnVzeSgmdmlkZW8tPnF1ZXVlKSkgewotCQlyZXQgPSAtRUJV U1k7Ci0JCWdvdG8gZG9uZTsKLQl9CisJaWYgKHZiMl9pc19idXN5KCZ2aWRlby0+cXVldWUpKQor CQlyZXR1cm4gLUVCVVNZOwogCiAJc2lua19mb3JtYXQgPSB2NGwyX3N1YmRldl9zdGF0ZV9nZXRf Zm9ybWF0KHdwZi0+ZW50aXR5LnN0YXRlLAogCQkJCQkJICAgUldQRl9QQURfU0lOSyk7CiAJc291 cmNlX2Zvcm1hdCA9IHY0bDJfc3ViZGV2X3N0YXRlX2dldF9mb3JtYXQod3BmLT5lbnRpdHkuc3Rh dGUsCiAJCQkJCQkgICAgIFJXUEZfUEFEX1NPVVJDRSk7CiAKLQltdXRleF9sb2NrKCZ3cGYtPmVu dGl0eS5sb2NrKTsKKwlndWFyZChtdXRleCkoJndwZi0+ZW50aXR5LmxvY2spOwogCiAJaWYgKHJv dGF0ZSkgewogCQlzb3VyY2VfZm9ybWF0LT53aWR0aCA9IHNpbmtfZm9ybWF0LT5oZWlnaHQ7CkBA IC04MiwxMSArNzksNyBAQCBzdGF0aWMgaW50IHZzcDFfd3BmX3NldF9yb3RhdGlvbihzdHJ1Y3Qg dnNwMV9yd3BmICp3cGYsIHVuc2lnbmVkIGludCByb3RhdGlvbikKIAogCXdwZi0+ZmxpcC5yb3Rh dGUgPSByb3RhdGU7CiAKLQltdXRleF91bmxvY2soJndwZi0+ZW50aXR5LmxvY2spOwotCi1kb25l OgotCW11dGV4X3VubG9jaygmdmlkZW8tPmxvY2spOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7 CiB9CiAKIHN0YXRpYyBpbnQgdnNwMV93cGZfc19jdHJsKHN0cnVjdCB2NGwyX2N0cmwgKmN0cmwp Ci0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoK