From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AD7AE606A319 for ; Thu, 22 Oct 2026 04:18:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=3QQfhteT; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=EtMY0Ax0 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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:To:Subject:From:Message-ID:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4w51cXQ13+mzKPcWYUw2Wa9vahWOJvbWlKc1XdeP7/o=; b=3QQfhteTyGRyeZ pT4ewFfnr5NTIr5YgMM5uCYPeva7h+nIhjRw6+vKuskOgmBfIJ5oHTr4tGWxktB1ighLuKmvCPexP MK5NB/7S18yAMNolzXYeV287IG9R47GzRBQCOYAHBxLq03jTCQaZ2JN1iS0EysX/7s3QCmsmAVTdf R57366xyyrrrxdHUlwqWSKO/IWd/btlIaApaQA1xZW69qoT3h+5SXemgWjoQ1cPAzu5NGAopr4E4B U0f8TX4QcTqyp1f4dwCeLdnNYXX3GF5wo02W3RrvjP/62wKQBMQ6S8FDpMOIEHJFguuZNHxktGpwk Le9/fk3E76mCdWuMqyAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJkGF-0000000DK4j-0kTP; Thu, 22 Oct 2026 04:18:39 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xJkGD-0000000DK4b-2qDO for linux-mtd@lists.infradead.org; Thu, 22 Oct 2026 04:18:37 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 1B88D42A2D; Thu, 22 Oct 2026 04:18:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDCA01F000C1; Thu, 22 Oct 2026 04:18:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792642717; bh=oxykEECfirTHJCp/lBB90Hj2w4UOvwhbs5h/FsoO5yM=; h=From:Subject:Reply-To:To:In-Reply-To:References:Date; b=EtMY0Ax0nWYVkgCWv8d7y/7XDC9DN/KFO7HXCzMrIgduN4Gy1AKkJEfTcqd2TR/JT UTkUel0empQJD4o6HNIYzU8ZuDpGQysD/LlgFmwgy88sFr5lwsoSWWQr+JzhHFQ5qg NrpSsIDvE6OK4p6QPCoFmwlYGIdqz9dtQqdjmVnovFN8Kr9Lm6W05C584RqIn15Orz tS27yDqP36vZbJe7gOG33Jxm/3nc1QU9lJRvNuIyQD3e29X3qeetcHF3qzDByh9RbN 1BVLJQKcDw0HxiDcrfS+kMpjK3pYdnc5xE5zilZrC+lm4irqWE/45dgXVaSEwCBDBN AoEo9rOTZflWA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 2/2] mtd: spi-nor: fix use-after-free on unbind with open handles To: tze.yee.ng@altera.com, "Pratyush Yadav" , "Michael Walle" , "Takahiro Kuwano" , linux-mtd@lists.infradead.org In-Reply-To: <20261022035352.52129-3-tze.yee.ng@altera.com> References: <20261022035352.52129-1-tze.yee.ng@altera.com> <20261022035352.52129-3-tze.yee.ng@altera.com> Date: Thu, 22 Oct 2026 04:18:36 +0000 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0NyaXRpY2FsXSBtdGQ6IHNwaS1u b3I6IHVzZS1hZnRlci1mcmVlIGluIHNwaV9ub3Jfc3VzcGVuZCgpIGFuZCBzcGlfbm9yX3Jlc3Vt ZSgpCi0gW0hpZ2hdIG10ZDogc3BpLW5vcjogdXNlLWFmdGVyLWZyZWUgb2Ygbm9yLT5kZXYgaW4g ZGV2X2RiZygpIGFmdGVyIHVucmVnaXN0cmF0aW9uCi0gW0hpZ2hdIG10ZDogc3BpLW5vcjogdXNl LWFmdGVyLWZyZWUgb2YgZGV2cmVzLWJhY2tlZCBub3ItPm10ZC5uYW1lIGFmdGVyIHVuYmluZAot IFtIaWdoXSBtdGQ6IHNwaS1ub3I6IG1pc3Npbmcgbm9yLT5yZW1vdmVkIGNoZWNrIGluIHNwaV9u b3JfZ2V0X2RldmljZSgpIGFmdGVyIHVuYmluZAotLQoKY29tbWl0IGRlMzA5NDgzMmE1MTc4Mjdl ODhkOGQwMjAzOTczY2RjOTE0NzFlOTUKQXV0aG9yOiBUemUgWWVlIE5nIDx0emUueWVlLm5nQGFs dGVyYS5jb20+CgptdGQ6IHNwaS1ub3I6IGZpeCB1c2UtYWZ0ZXItZnJlZSBvbiB1bmJpbmQgd2l0 aCBvcGVuIGhhbmRsZXMKClRoaXMgY29tbWl0IG1vdmVzIHNwaV9ub3IgYW5kIGl0cyBhc3NvY2lh dGVkIGJ1ZmZlcnMgb2ZmIGRldnJlcyBvbiB0aGUKc3BpLW1lbSBwcm9iZSBwYXRoIGFuZCByZWZj b3VudHMgc3RydWN0IHNwaV9ub3IgYWNyb3NzIHJlZ2lzdHJhdGlvbiBhbmQgb3BlbgpNVEQgaGFu ZGxlcy4gRHVyaW5nIHJlbW92ZSgpLCBpdCB1bnJlZ2lzdGVycyBkZWJ1Z2ZzIGFuZCB0aGUgTVRE IGRldmljZSwgbWFya3MKbm9yLT5yZW1vdmVkIHVuZGVyIHRoZSBsb2NrIHRvIGZlbmNlIHN1YnNl cXVlbnQgb3BlcmF0aW9ucyB3aXRoIC1FTk9ERVYsIGFuZApkcm9wcyB0aGUgcmVnaXN0cmF0aW9u IHJlZmVyZW5jZS4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jIGIv ZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMKPiBpbmRleCA4YmMxMTdiNDZlMDI4Li43NjkyOGJk ODQxM2VkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jCj4gKysrIGIv ZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmMKClsgLi4uIF0KCj4gQEAgLTM0MjAsMjAgKzM0NDks NDggQEAgc3RhdGljIHZvaWQgc3BpX25vcl9yZXN1bWUoc3RydWN0IG10ZF9pbmZvICptdGQpCj4g IAkJZGV2X2VycihkZXYsICJyZXN1bWUoKSBmYWlsZWRcbiIpOwo+ICB9CgpbU2V2ZXJpdHk6IENy aXRpY2FsXQpXaGF0IGhhcHBlbnMgaWYgdGhlIHN5c3RlbSBzdXNwZW5kcyBhbmQgcmVzdW1lcyBh ZnRlciBzcGlfbm9yX3JlbW92ZSgpIHdoaWxlCmFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIHN0aWxs IGhvbGRzIGEgcmVmZXJlbmNlIG9uIHRoZSBNVEQgZGV2aWNlPwoKV2hlbiBhIHBhcnRpdGlvbiAo b3IgYSBtYXN0ZXIgZGV2aWNlIHdpdGggQ09ORklHX01URF9QQVJUSVRJT05FRF9NQVNURVIKZW5h YmxlZCkgaXMgb3BlbiBkdXJpbmcgc3BpX25vcl9yZW1vdmUoKSwgZGVsX210ZF9kZXZpY2UoKSBk cm9wcyBtdGQtPnJlZmNudApmcm9tIDIgdG8gMSB3aXRob3V0IHJ1bm5pbmcgbXRkX2RldmljZV9y ZWxlYXNlKCkgLT4gZGV2aWNlX3VucmVnaXN0ZXIoKSwgc28KbXRkLT5kZXYgcmVtYWlucyByZWdp c3RlcmVkIG9uIG10ZF9jbGFzcyB3aXRoIG10ZF9jbHNfcG1fb3BzIGFjdGl2ZToKCiAgbXRkX2Ns c19zdXNwZW5kKCkgLT4gbXRkX3N1c3BlbmQoKSAtPiBzcGlfbm9yX3N1c3BlbmQoKQogIG10ZF9j bHNfcmVzdW1lKCkgIC0+IG10ZF9yZXN1bWUoKSAgLT4gc3BpX25vcl9yZXN1bWUoKQoKTWVhbndo aWxlLCBvbmNlIHNwaV9ub3JfcmVtb3ZlKCkgcmV0dXJucywgZGV2cmVzX3JlbGVhc2VfYWxsKCZz cGktPmRldikgZnJlZXMKbm9yLT5zcGltZW0sIG5vci0+ZGlybWFwLCBub3ItPnBhcmFtcy0+dnJl Z19vZmZzZXQsIGFuZCBub3ItPnBhcmFtcy0+cHJpdiwgYW5kCmRpc2FibGVzIHRoZSB2Y2MgcmVn dWxhdG9yOgoKICBkcml2ZXJzL210ZC9zcGktbm9yL2NvcmUuYzpzcGlfbm9yX3N1c3BlbmQoKSB7 CiAgICAgIHN0cnVjdCBzcGlfbm9yICpub3IgPSBtdGRfdG9fc3BpX25vcihtdGQpOwogICAgICBp bnQgcmV0OwoKICAgICAgLyogRGlzYWJsZSBvY3RhbCBEVFIgbW9kZSBpZiB3ZSBlbmFibGVkIGl0 LiAqLwogICAgICByZXQgPSBzcGlfbm9yX3NldF9vY3RhbF9kdHIobm9yLCBmYWxzZSk7CiAgICAg IC4uLgogIH0KCiAgZHJpdmVycy9tdGQvc3BpLW5vci9jb3JlLmM6c3BpX25vcl9yZXN1bWUoKSB7 CiAgICAgIHN0cnVjdCBzcGlfbm9yICpub3IgPSBtdGRfdG9fc3BpX25vcihtdGQpOwogICAgICBz dHJ1Y3QgZGV2aWNlICpkZXYgPSBub3ItPmRldjsKICAgICAgaW50IHJldDsKCiAgICAgIC8qIHJl LWluaXRpYWxpemUgdGhlIG5vciBjaGlwICovCiAgICAgIHJldCA9IHNwaV9ub3JfaW5pdChub3Ip OwogICAgICAuLi4KICB9CgpTaW5jZSBuZWl0aGVyIHNwaV9ub3Jfc3VzcGVuZCgpIG5vciBzcGlf bm9yX3Jlc3VtZSgpIGFjcXVpcmVzIG5vci0+bG9jayBvcgpjaGVja3Mgbm9yLT5yZW1vdmVkLCB3 b24ndCBhIHN1c3BlbmQvcmVzdW1lIGN5Y2xlIGV4ZWN1dGUgU1BJIG9wZXJhdGlvbnMKdGhyb3Vn aCB0aGUgZnJlZWQgbm9yLT5zcGltZW0gYW5kIGZyZWVkIHBhcmFtcyBmaWVsZHM/Cgo+IC1zdGF0 aWMgaW50IHNwaV9ub3JfZ2V0X2RldmljZShzdHJ1Y3QgbXRkX2luZm8gKm10ZCkKPiArLyogRnJl ZSBzcGlfbm9yIGFuZCBpdHMgYnVmZmVyczsgc2FmZSBvbiBwYXJ0aWFsIGluaXQuICovCj4gK3N0 YXRpYyB2b2lkIHNwaV9ub3JfZnJlZShzdHJ1Y3Qgc3BpX25vciAqbm9yKQo+ICt7Cj4gKwlzcGlf bm9yX2RlYnVnZnNfdW5yZWdpc3Rlcihub3IpOwo+ICsJa2ZyZWUobm9yLT5tdGQuZXJhc2VyZWdp b25zKTsKPiArCWtmcmVlKG5vci0+Ym91bmNlYnVmKTsKPiArCWtmcmVlKG5vci0+cGFyYW1zKTsK PiArCWtmcmVlKG5vcik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNwaV9ub3JfcmVsZWFzZShz dHJ1Y3Qga3JlZiAqa3JlZikKPiArewo+ICsJc3BpX25vcl9mcmVlKGNvbnRhaW5lcl9vZihrcmVm LCBzdHJ1Y3Qgc3BpX25vciwgcmVmY250KSk7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgbW9k dWxlICpzcGlfbm9yX2NvbnRyb2xsZXJfb3duZXIoc3RydWN0IHNwaV9ub3IgKm5vcikKPiAgewo+ IC0Jc3RydWN0IG10ZF9pbmZvICptYXN0ZXIgPSBtdGRfZ2V0X21hc3RlcihtdGQpOwo+IC0Jc3Ry dWN0IHNwaV9ub3IgKm5vciA9IG10ZF90b19zcGlfbm9yKG1hc3Rlcik7Cj4gIAlzdHJ1Y3QgZGV2 aWNlICpkZXY7Cj4gIAo+ICsJLyogVGhlIGNvbnRyb2xsZXIgbWF5IGJlIGdvbmUgb24gdGhlIGxh c3QgcHV0OyB1c2UgdGhlIGNhY2hlZCBvd25lci4gKi8KPiArCWlmIChub3ItPnJlZmNvdW50ZWQp Cj4gKwkJcmV0dXJuIG5vci0+Y29udHJvbGxlcl9tb2R1bGU7Cj4gKwo+ICAJaWYgKG5vci0+c3Bp bWVtKQo+ICAJCWRldiA9IG5vci0+c3BpbWVtLT5zcGktPmNvbnRyb2xsZXItPmRldi5wYXJlbnQ7 Cj4gIAllbHNlCj4gIAkJZGV2ID0gbm9yLT5kZXY7Cj4gIAo+IC0JaWYgKCF0cnlfbW9kdWxlX2dl dChkZXYtPmRyaXZlci0+b3duZXIpKQo+ICsJcmV0dXJuIGRldi0+ZHJpdmVyLT5vd25lcjsKPiAr fQo+ICsKPiArc3RhdGljIGludCBzcGlfbm9yX2dldF9kZXZpY2Uoc3RydWN0IG10ZF9pbmZvICpt dGQpCj4gK3sKPiArCXN0cnVjdCBtdGRfaW5mbyAqbWFzdGVyID0gbXRkX2dldF9tYXN0ZXIobXRk KTsKPiArCXN0cnVjdCBzcGlfbm9yICpub3IgPSBtdGRfdG9fc3BpX25vcihtYXN0ZXIpOwo+ICsK PiArCWlmICghdHJ5X21vZHVsZV9nZXQoc3BpX25vcl9jb250cm9sbGVyX293bmVyKG5vcikpKQo+ ICAJCXJldHVybiAtRU5PREVWOwo+ICAKPiArCWlmIChub3ItPnJlZmNvdW50ZWQpCj4gKwkJa3Jl Zl9nZXQoJm5vci0+cmVmY250KTsKPiArCj4gIAlyZXR1cm4gMDsKPiAgfQoKW1NldmVyaXR5OiBI aWdoXQpTaG91bGQgc3BpX25vcl9nZXRfZGV2aWNlKCkgZmFpbCB3aXRoIC1FTk9ERVYgb25jZSBu b3ItPnJlbW92ZWQgaXMgc2V0PwoKV2hlbiBzcGlfbm9yX3JlbW92ZSgpIHJ1bnMgd2hpbGUgYSBo YW5kbGUgaXMgb3BlbiBvbiBhIHBhcnRpdGlvbiAob3IgbWFzdGVyCndpdGggQ09ORklHX01URF9Q QVJUSVRJT05FRF9NQVNURVIpLCBtdGRfZGV2aWNlX3VucmVnaXN0ZXIoKSBvbmx5IGRlY3JlbWVu dHMKbXRkLT5yZWZjbnQgd2l0aG91dCBjYWxsaW5nIG10ZF9kZXZpY2VfcmVsZWFzZSgpLCBzbyB0 aGUgTVREIGRldmljZSBzdGF5cyBpbgptdGRfaWRyIHVudGlsIHRoZSBvcGVuIGhhbmRsZSBpcyBj bG9zZWQgYW5kIG10ZF9yZWxlYXNlKCkgcnVuczoKCiAgbXRkY2hhcl9vcGVuKCkKICAgIC0+IGdl dF9tdGRfZGV2aWNlKCkKICAgICAgLT4gX19nZXRfbXRkX2RldmljZSgpCiAgICAgICAgLT4gc3Bp X25vcl9nZXRfZGV2aWNlKCkKCldpdGhvdXQgY2hlY2tpbmcgbm9yLT5yZW1vdmVkIChvciB1c2lu ZyBrcmVmX2dldF91bmxlc3NfemVybygpKSwgbmV3IG9wZW5zIG9mCi9kZXYvbXRkWCBhZnRlciB1 bmJpbmQgd2lsbCBzdGlsbCBzdWNjZWVkIGFuZCB0YWtlIG5ldyByZWZlcmVuY2VzIG9uCm5vci0+ cmVmY250LCBhbGxvd2luZyB1c2Vyc3BhY2UgdG8ga2VlcCBzdHJ1Y3Qgc3BpX25vciBhbmQgdGhl IGNvbnRyb2xsZXIKbW9kdWxlIHBpbm5lZCBpbmRlZmluaXRlbHkgYWZ0ZXIgdGhlIG9yaWdpbmFs IHByZS11bmJpbmQgaGFuZGxlIGlzIGNsb3NlZC4KCkluIGFkZGl0aW9uLCBpbiBfX3B1dF9tdGRf ZGV2aWNlKCksIG1hc3Rlci0+X3B1dF9kZXZpY2UobWFzdGVyKSAtPgpzcGlfbm9yX3B1dF9kZXZp Y2UoKSBmcmVlcyBzdHJ1Y3Qgc3BpX25vciBpbW1lZGlhdGVseSB3aGVuIHRoZSBsYXN0IGhhbmRs ZQpjbG9zZXMsIHdoZXJlYXMgaWRyX3JlbW92ZSgmbXRkX2lkciwgbXRkLT5pbmRleCkgb25seSBy dW5zIGluIG10ZF9yZWxlYXNlKCkKd2hlbiBhbGwgZGV2aWNlIHJlZmVyZW5jZXMgb24gbXRkLT5k ZXYgZHJvcC4gSWYgYW55dGhpbmcgaG9sZHMgYSB0ZW1wb3JhcnkKcmVmZXJlbmNlIG9uIG10ZC0+ ZGV2IGFjcm9zcyB0aGUgZmluYWwgY2xvc2UsIGNvdWxkIGEgY29uY3VycmVudApnZXRfbXRkX2Rl dmljZSgpIHN0aWxsIGZpbmQgdGhlIG10ZCBpbiBtdGRfaWRyIGFuZCBjYWxsIHNwaV9ub3JfZ2V0 X2RldmljZSgpCm9uIGEgZnJlZWQgc3RydWN0IHNwaV9ub3I/CgpbIC4uLiBdCgo+IEBAIC0zNzg4 LDEyICszODcwLDE1IEBAIHN0YXRpYyBpbnQgc3BpX25vcl9wcm9iZShzdHJ1Y3Qgc3BpX21lbSAq c3BpbWVtKQo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCW5vciA9IGRldm1f a3phbGxvYyhkZXYsIHNpemVvZigqbm9yKSwgR0ZQX0tFUk5FTCk7Cj4gKwlub3IgPSBremFsbG9j X29iaigqbm9yLCBHRlBfS0VSTkVMKTsKPiAgCWlmICghbm9yKQo+ICAJCXJldHVybiAtRU5PTUVN Owo+ICAKPiAgCW5vci0+c3BpbWVtID0gc3BpbWVtOwo+ICAJbm9yLT5kZXYgPSBkZXY7Cj4gKwlu b3ItPmNvbnRyb2xsZXJfbW9kdWxlID0gc3BpLT5jb250cm9sbGVyLT5kZXYucGFyZW50LT5kcml2 ZXItPm93bmVyOwo+ICsJbm9yLT5yZWZjb3VudGVkID0gdHJ1ZTsKPiArCWtyZWZfaW5pdCgmbm9y LT5yZWZjbnQpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIG5vci0+ZGV2IG5lZWQgYSBnZXRfZGV2 aWNlKCkgcmVmZXJlbmNlIHRpZWQgdG8gbm9yLT5yZWZjbnQsIG9yIG5lZWQgdG8gYmUKYXZvaWRl ZCBiZWZvcmUgbm9yLT5yZW1vdmVkIGlzIGNoZWNrZWQ/CgpXaXRoIENPTkZJR19NVERfUEFSVElU SU9ORURfTUFTVEVSIGRpc2FibGVkLCBvcGVuaW5nIGFuIHVucGFydGl0aW9uZWQgbWFzdGVyCi9k ZXYvbXRkMCBjYWxscyBfX2dldF9tdGRfZGV2aWNlKCksIHdoaWNoIGluY3JlbWVudHMgbm9yLT5y ZWZjbnQgdmlhCnNwaV9ub3JfZ2V0X2RldmljZSgpIGJ1dCBkb2VzIG5vdCBpbmNyZW1lbnQgbWFz dGVyLT5yZWZjbnQ6CgogIGRyaXZlcnMvbXRkL210ZGNvcmUuYzpfX2dldF9tdGRfZGV2aWNlKCkg ewogICAgICAuLi4KICAgICAgd2hpbGUgKG10ZCkgewogICAgICAgICAgaWYgKG10ZCAhPSBtYXN0 ZXIpCiAgICAgICAgICAgICAga3JlZl9nZXQoJm10ZC0+cmVmY250KTsKICAgICAgICAgIG10ZCA9 IG10ZC0+cGFyZW50OwogICAgICB9CgogICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfTVREX1BB UlRJVElPTkVEX01BU1RFUikpCiAgICAgICAgICBrcmVmX2dldCgmbWFzdGVyLT5yZWZjbnQpOwog ICAgICAuLi4KICB9CgpJZiB0aGUgU1BJIGNvbnRyb2xsZXIgaXMgdW5ib3VuZCBvciB0aGUgU1BJ IGRldmljZSBpcyB1bnJlZ2lzdGVyZWQgd2hpbGUKL2Rldi9tdGQwIGlzIG9wZW4sIHNwaV9ub3Jf cmVtb3ZlKCkgLT4gbXRkX2RldmljZV91bnJlZ2lzdGVyKCkgZHJvcHMKbm9yLT5tdGQucmVmY250 IHRvIDAgYW5kIHVucmVnaXN0ZXJzIG5vci0+bXRkLmRldiBpbW1lZGlhdGVseSwgcmVsZWFzaW5n IGl0cwpwYXJlbnQgcmVmZXJlbmNlIG9uICZzcGktPmRldi4gT25jZSBzcGlfdW5yZWdpc3Rlcl9k ZXZpY2UoKSBmaW5pc2hlcywgc3RydWN0CnNwaV9kZXZpY2UgKG5vci0+ZGV2KSBpcyBmcmVlZCB3 aGlsZSBzdHJ1Y3Qgc3BpX25vciByZW1haW5zIGFsaXZlIGZvciB0aGUgb3BlbgpkZXNjcmlwdG9y LgoKQSBzdWJzZXF1ZW50IHJlYWQsIHdyaXRlLCBvciBlcmFzZSBvbiB0aGF0IG9wZW4gZGVzY3Jp cHRvciBjYWxscyBkZXZfZGJnKCkgb24Kbm9yLT5kZXYgYmVmb3JlIHNwaV9ub3JfcHJlcF9hbmRf bG9jayooKSBjaGVja3Mgbm9yLT5yZW1vdmVkOgoKICBkcml2ZXJzL210ZC9zcGktbm9yL2NvcmUu YzpzcGlfbm9yX3JlYWQoKSB7CiAgICAgIC4uLgogICAgICBkZXZfZGJnKG5vci0+ZGV2LCAiZnJv bSAweCUwOHgsIGxlbiAlemRcbiIsICh1MzIpZnJvbSwgbGVuKTsKCiAgICAgIHJldCA9IHNwaV9u b3JfcHJlcF9hbmRfbG9ja19yZChub3IsIGZyb21fbG9jaywgbGVuX2xvY2spOwogICAgICAuLi4K ICB9CgpUaGUgc2FtZSBwYXR0ZXJuIGFwcGVhcnMgaW4gc3BpX25vcl93cml0ZSgpLCBzcGlfbm9y X2VyYXNlKCksIGFuZApzc3Rfbm9yX3dyaXRlKCkuIENvdWxkIHRoaXMgZGVyZWZlcmVuY2UgYSBm cmVlZCBub3ItPmRldiB3aGVuIGRlYnVnIGxvZ2dpbmcgaXMKZW5hYmxlZD8KCj4gIAlzcGlfbm9y X3NldF9mbGFzaF9ub2RlKG5vciwgZGV2LT5vZl9ub2RlKTsKPiAgCj4gIAlzcGlfbWVtX3NldF9k cnZkYXRhKHNwaW1lbSwgbm9yKTsKCltTZXZlcml0eTogSGlnaF0KUmlnaHQgYmVsb3cgdGhpcyBp biBzcGlfbm9yX3Byb2JlKCksIG5vci0+bXRkLm5hbWUgaXMgYXNzaWduZWQgZnJvbQpzcGlfbWVt X2dldF9uYW1lKHNwaW1lbSk6CgogIGRyaXZlcnMvbXRkL3NwaS1ub3IvY29yZS5jOnNwaV9ub3Jf cHJvYmUoKSB7CiAgICAgIC4uLgogICAgICBpZiAoZGF0YSAmJiBkYXRhLT5uYW1lKQogICAgICAg ICAgbm9yLT5tdGQubmFtZSA9IGRhdGEtPm5hbWU7CgogICAgICBpZiAoIW5vci0+bXRkLm5hbWUp CiAgICAgICAgICBub3ItPm10ZC5uYW1lID0gc3BpX21lbV9nZXRfbmFtZShzcGltZW0pOwogICAg ICAuLi4KICB9CgpJbiBzcGlfbWVtX3Byb2JlKCksIHNwaW1lbS0+bmFtZSBpcyBlaXRoZXIgZGV2 X25hbWUoJnNwaS0+ZGV2KSBvciBhIHN0cmluZwphbGxvY2F0ZWQgdmlhIGN0bHItPm1lbV9vcHMt PmdldF9uYW1lKG1lbSksIHdoaWNoIGRyaXZlcnMgc3VjaCBhcwpzcGktbnhwLWZzcGksIHNwaS1m c2wtcXNwaSwgc3BpLW54cC14c3BpLCBzcGktYXNwZWVkLXNtYywgYW5kCnNwaS1jYWRlbmNlLXF1 YWRzcGkgYWxsb2NhdGUgd2l0aCBkZXZtX2thc3ByaW50ZigpLgoKV2hlbiBzcGktbm9yIG9yIHRo ZSBTUEkgY29udHJvbGxlciBpcyB1bmJvdW5kIHdoaWxlIGFuIG9wZW4gaGFuZGxlIGtlZXBzCm5v ci0+bXRkIGFsaXZlIGluIG10ZF9pZHIgYW5kIHN5c2ZzLCBkZXZyZXNfcmVsZWFzZV9hbGwoKSBm cmVlcyB0aGF0IG5hbWUKYnVmZmVyLiBXb24ndCBzdWJzZXF1ZW50IHJlYWRzIG9mIC9wcm9jL210 ZCAobXRkX3Byb2Nfc2hvdygpKSwKL3N5cy9jbGFzcy9tdGQvbXRkWC9uYW1lIChtdGRfbmFtZV9z aG93KCkpLCBvciBsb29rdXBzIHZpYQpnZXRfbXRkX2RldmljZV9ubSgpIHJlYWQgZnJlZWQgbWVt b3J5IGZyb20gbm9yLT5tdGQubmFtZSB1bmxlc3MgdGhlIHN0cmluZyBpcwpkdXBsaWNhdGVkIGFu ZCBmcmVlZCBpbiBzcGlfbm9yX2ZyZWUoKT8KClsgLi4uIF0KCi0tIApTYXNoaWtvIEFJIHJldmll dyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjEwMjIwMzUzNTIuNTIxMjkt MS10emUueWVlLm5nQGFsdGVyYS5jb20/cGFydD0yCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGlu ZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt bXRkLwo=