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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 7C825CA9ED5 for ; Mon, 12 Oct 2026 07:20:54 +0000 (UTC) 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:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I3/jdVVVsgu8twHkYjXpc9Mjt85qjuvUkZchZ5Ec+9I=; b=SzXYoMt/Nszp1N XQjqS56cHr1SK2fEP8fPTuF7Xszl46xFVagUJ3MjmxE434D50XOkxAaIhxqt0TyLkaoUuQcb9S4Fz liZ0R/i5RAtUB4BHd4OEEW3l3nVR/WIg2OBZI2w3JhHkY5LRIRbsq3SBD5FuVuOyxXGy56Lcxg4zn cXc5GJn3S1O3JxnPF6/wfeLzYRuoKla/f7UviBsepwq6kvnEv/Clb41j/kwJgA/aoEr2LdQMmNCD1 DBRP1c50dY8/j6y+9K8c3OcKFjVB1nrXbw2b9Wi4Xu/oL3hlYqCGL0rhc1UcrF+v2VZAz8hVKyNgy GxVbbBRJszEAHcg5eukA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xGAL4-00000009pWo-0OXY; Mon, 12 Oct 2026 07:20:50 +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 1xGAL2-00000009pWY-44nw for linux-amlogic@lists.infradead.org; Mon, 12 Oct 2026 07:20:49 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 74C7F42AED; Mon, 12 Oct 2026 07:20:48 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F03501F0089B; Mon, 12 Oct 2026 07:20:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791789648; bh=/J8A8LCaAA3CsQhAHUEsS6ViRpTCjWN6mIioaoOUMy8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Un0d5S0X3zvht+neaoYId0lqPGrupk9sCmTsd3b5UyCdyZhM7mQE8NwPE8Si7yxsJ rYzoom0+tu2nf0/NZLWIsza+di30s2dZ4Cweuupryuyx7HQt9BsNIeA2gwO+EFzP+z KM1pIyZU3lUekFp0H+iTyiXpW6EFtouHJXU9MNV6R2tY89wCgvvk63odZozsU8KDxL 1ryr2YNXR33mBjOMhNPzZEc9nZyyyqWQ+P0eqgB00OmYjSu1N303MCrxdKye1fWJUH Xiz89TgDSHTwM5LTBsF+ubadsQMdeBDEh5COFSdIKDjdDhPjLtTykTOh+nh4+Bl6rp GKKfR/IlhBJfg== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v11 4/6] decoder: Add V4L2 stateless H.264 decoder driver To: "Zhentao Guo" Cc: neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, media-ci@linuxtv.org, robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org In-Reply-To: <20261012-b4-s4-vdec-upstream-v11-4-25939f85ada5@amlogic.com> References: <20261012-b4-s4-vdec-upstream-v11-0-25939f85ada5@amlogic.com> <20261012-b4-s4-vdec-upstream-v11-4-25939f85ada5@amlogic.com> Date: Mon, 12 Oct 2026 07:20:47 +0000 X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MTkgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtDcml0aWNhbF0gbWVkaWE6IGFt bG9naWM6IG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGluIGFtbF92ZGVjX2luaXRfZGVjX2lu c3QgYWxsb3dzIGNvbnRyb2wgZmxvdyBoaWphY2sKLSBbQ3JpdGljYWxdIG1lZGlhOiBhbWxvZ2lj OiBjb25jdXJyZW50IFNUUkVBTU9GRiBmcmVlcyBjb2RlYyBjb250ZXh0IHdoaWxlIHdvcmtlciB0 aHJlYWQgaXMgd2FpdGluZwotIFtIaWdoXSBtZWRpYTogYW1sb2dpYzogdWFmIG9uIGRldmljZSBy ZW1vdmFsIGR1ZSB0byBkZXZtX2t6YWxsb2MgYW5kIHY0bDJfbTJtX3JlbGVhc2UKLSBbSGlnaF0g bWVkaWE6IGFtbG9naWM6IGdldF9jYW52YXNfaW5kZXggbWFwcyBzdGFsZSBkYW5nbGluZyBETUEg YWRkcmVzc2VzIHRvIGhhcmR3YXJlCi0gW0hpZ2hdIG1lZGlhOiBhbWxvZ2ljOiBzdGFsZSBvbmVf Y29sX2J1Zl9zaXplIGNhdXNlcyBETUEgYnVmZmVyIG92ZXJmbG93IG9uIHJlc29sdXRpb24gY2hh bmdlCi0gW0hpZ2hdIG1lZGlhOiBhbWxvZ2ljOiBtaXNzaW5nIGVycm9yIGhhbmRsaW5nIGluIHBt X3ZkZWNfcG93ZXJfZG9tYWluX3Bvd2VyX29uIGNhdXNlcyBsZWFrcyBhbmQgTU1JTyBhYm9ydHMK LSBbSGlnaF0gbWVkaWE6IGFtbG9naWM6IGFtbF9zdG9wX3ZkZWNfaHcgcmVzZXRzIGhhcmR3YXJl IGNvbmN1cnJlbnRseSB3aXRoIHRocmVhZGVkIElTUgotIFtIaWdoXSBtZWRpYTogYW1sb2dpYzog dW5wcm90ZWN0ZWQgZG9zX2VuYWJsZSBpbiBkZXZpY2VfcnVuIHJhY2VzIHdpdGggYW1sX2gyNjRf ZXhpdAotIFtIaWdoXSBtZWRpYTogYW1sb2dpYzogdmIyX2ZpbmRfYnVmZmVyIGNhbGxlZCBmcm9t IHRocmVhZGVkIElTUiB3aXRob3V0IGhvbGRpbmcgcXVldWUgbG9jawotIFtIaWdoXSBtZWRpYTog YW1sb2dpYzogdmlkZW8gZGV2aWNlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhcmR3YXJlIHBvd2VyIGRv bWFpbiBpcyBlbmFibGVkCi0gW01lZGl1bV0gbWVkaWE6IGFtbG9naWM6IGlycSByZWdpc3RlcmVk IGJlZm9yZSBoYXJkd2FyZSByZXNldCBhbmQgd2l0aG91dCBoYW5kbGVyCi0gW01lZGl1bV0gbWVk aWE6IGFtbG9naWM6IGZhaWxlZCBjYW52YXMgY29uZmlnIHNpbGVudGx5IGNvbXByZXNzZXMgaGFy ZHdhcmUgcmVmZXJlbmNlIGxpc3QKLSBbTWVkaXVtXSBtZWRpYTogYW1sb2dpYzogcGVyLWluc3Rh bmNlIHBvd2VyIGRvbWFpbiBkZXZpY2Ugc3RhdGUgY29ycnVwdHMgc3RhdGljIGdsb2JhbCBhcnJh eQotIFtNZWRpdW1dIG1lZGlhOiBhbWxvZ2ljOiByZWZfbGlzdDEgaW5jb3JyZWN0bHkgY2hlY2tl ZCBhZ2FpbnN0IHJlZl9saXN0MCB2YWxpZCBmbGFnCi0gW01lZGl1bV0gbWVkaWE6IGFtbG9naWM6 IHBvY19pc19pbl9kcGIgaWdub3JlcyBWNEwyX0gyNjRfRFBCX0VOVFJZX0ZMQUdfVkFMSUQgbGVh a2luZyByZXNvdXJjZXMKLSBbTG93XSBtZWRpYTogYW1sb2dpYzogZG91YmxlIGNvbXBsZXRpb24g b2YgbWVkaWEgcmVxdWVzdCB0cmlnZ2VycyBXQVJOX09OCi0gW0xvd10gbWVkaWE6IGFtbG9naWM6 IHZkZWNfc19mbXRfb3V0cHV0IGZhbHNlbHkgcmVqZWN0cyBpZGVudGljYWwgZm9ybWF0IGNoYW5n ZXMgd2l0aCAtRUJVU1kKLSBbTG93XSBtZWRpYTogYW1sb2dpYzogaGFyZHdhcmUgc3RyaWRlIGNv bmZpZ3VyZWQgdXNpbmcgU1BTIHdpZHRoIGluc3RlYWQgb2YgdjRsMiBieXRlc3BlcmxpbmUKLSBb TG93XSBtZWRpYTogYW1sb2dpYzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yga3phbGxvY19vYmog Y2F1c2VzIGJ1aWxkIGZhaWx1cmUKLS0KCmNvbW1pdCBkYTI3NDEyNWMxNGQyZGE5MGJiODNhN2Zm YzMwYjU3ZDk2ZGE5MzIzCkF1dGhvcjogWmhlbnRhbyBHdW8gPHpoZW50YW8uZ3VvQGFtbG9naWMu Y29tPgpTdWJqZWN0OiBkZWNvZGVyOiBBZGQgVjRMMiBzdGF0ZWxlc3MgSC4yNjQgZGVjb2RlciBk cml2ZXIKClRoaXMgY29tbWl0IGFkZHMgaW5pdGlhbCBzdXBwb3J0IGZvciBhIFY0TDIgc3RhdGVs ZXNzIHZpZGVvIGRlY29kZXIgZHJpdmVyIG9uCnRoZSBBbWxvZ2ljIFM0IHBsYXRmb3JtLiBJdCBz dXBwb3J0cyA4LWJpdCBILjI2NCBwcm9ncmVzc2l2ZSBiaXRzdHJlYW1zIGluCnRoaXMgZmlyc3Qg cGhhc2UuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRl Yy9hbWxfdmRlYy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvYW1sX3Zk ZWMuYwo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy92ZGVjL2FtbF92ZGVj LmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9hbWxfdmRlYy5j Cj4gQEAgLTEzMyw2ICsxMzMsOCBAQCBzdGF0aWMgdm9pZCBtMm1vcHNfdmRlY19kZXZpY2VfcnVu KHZvaWQgKm0ybV9wcml2KQo+ICAJCXY0bDJfY3RybF9yZXF1ZXN0X3NldHVwKHNyY19yZXEsICZj dHgtPmN0cmxfaGFuZGxlcik7Cj4gIAo+ICAJZG9zX2VuYWJsZShkZXYtPmRlY19odyk7Cj4gIAkv KiBpbmNhc2Ugb2YgYnVzIGhhbmcgaW4gc3RvcF9zdHJlYW1pbmcgKi8KPiAgCWN0eC0+ZG9zX2Ns a19lbiA9IDE7Cj4gIAljdHgtPmN1cnJfZnJtX2Vycl9mbGFnID0gMDsKPiAgCj4gIAlpZiAoY3R4 LT5jdXJyX2RlY190eXBlID09IENPREVDX1RZUEVfSDI2NCkKPiAgCQlhbWxfdmRlY19yZXNldF9j b3JlKGRldi0+ZGVjX2h3KTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGV4ZWN1dGUgaGFy ZHdhcmUgc2V0dXAgYmVmb3JlIGN1cnJfY3R4IGlzIGFzc2lnbmVkIGFuZCB3aXRob3V0CmNyb3Nz LWluc3RhbmNlIGxvY2tpbmc/CgpJZiBhbm90aGVyIGRlY29kaW5nIGluc3RhbmNlIGlzIGNvbmN1 cnJlbnRseSBzdG9wcGVkIHZpYSBWSURJT0NfU1RSRUFNT0ZGLCBpdHMKYW1sX2gyNjRfZXhpdCgp IGNvdWxkIHNlZSAoIWRlY19ody0+Y3Vycl9jdHggfHwgZGVjX2h3LT5jdXJyX2N0eCA9PSBoMjY0 X2N0eCkKZXZhbHVhdGUgdG8gdHJ1ZSwgbG9ja2luZyBjdHhfbXV0ZXggYW5kIHNodXR0aW5nIGRv d24gdGhlIGhhcmR3YXJlIHdoaWxlIHRoaXMKaW5zdGFuY2UgaXMgc2ltdWx0YW5lb3VzbHkgdHJ5 aW5nIHRvIGluaXRpYWxpemUgaXQuCgo+IEBAIC0xNDgsNiArMTQ4LDggQEAgc3RhdGljIHZvaWQg bTJtb3BzX3ZkZWNfZGV2aWNlX3J1bih2b2lkICptMm1fcHJpdikKPiAgCXY0bDJfbTJtX2J1Zl9j b3B5X21ldGFkYXRhKHNyY19idWYsIGRzdF9idWYpOwo+ICAJaWYgKHNyY19yZXEpCj4gIAkJdjRs Ml9jdHJsX3JlcXVlc3RfY29tcGxldGUoc3JjX3JlcSwgJmN0eC0+Y3RybF9oYW5kbGVyKTsKCltT ZXZlcml0eTogTG93XQpJcyB0aGlzIGV4cGxpY2l0IGNhbGwgdG8gdjRsMl9jdHJsX3JlcXVlc3Rf Y29tcGxldGUoKSB0cmlnZ2VyaW5nIGEgZG91YmxlCmNvbXBsZXRpb24gd2FybmluZz8KCkxhdGVy IGluIHRoaXMgZnVuY3Rpb24sIHY0bDJfbTJtX2J1Zl9kb25lX2FuZF9qb2JfZmluaXNoKCkgd2ls bCBjYWxsCnZiMl9idWZmZXJfZG9uZSgpLCB3aGljaCBpbnZva2VzIHRoZSBidWZfcmVxdWVzdF9j b21wbGV0ZSBjYWxsYmFjayBkZWZpbmVkIGluCmFtbF92ZGVjX3ZiMl9vcHMuIFRoYXQgY2FsbGJh Y2sgYWxzbyBjYWxscyB2NGwyX2N0cmxfcmVxdWVzdF9jb21wbGV0ZSgpIG9uIHRoZQpzYW1lIHJl cXVlc3QuCgpbIC4uLiBdCj4gQEAgLTIzMSw2ICsyMzEsMTAgQEAgc3RhdGljIGludCBhbWxfdmRl Y19pbml0X2RlY19pbnN0KHN0cnVjdCBhbWxfdmRlY19jdHggKmN0eCkKPiAgCXN0cnVjdCBhbWxf dmlkZW9fZm10ICpmbXRfb3V0ID0gJmN0eC0+ZGVjX2ZtdFtBTUxfRk1UX1NSQ107Cj4gIAlpbnQg cmV0ID0gLTE7Cj4gIAo+ICAJY3R4LT5jb2RlY19vcHMgPSAmZGV2LT5wdmRlY19kYXRhLT5jb2Rl Y19vcHNbZm10X291dC0+Y29kZWNfdHlwZV07Cj4gIAkvKgo+ICAJICogVGhlIGNvZGVjIGluc3Rh bmNlIGlzIG9ubHkgcmVsZWFzZWQgd2hlbiBib3RoIHF1ZXVlcyBhcmUKPiAgCSAqIHN0cmVhbWVk IG9mZjogZG8gbm90IGFsbG9jYXRlIGEgbmV3IG9uZSAobGVha2luZyB0aGUgcHJldmlvdXMKPiAg CSAqIGluc3RhbmNlKSB3aGVuIHRoZSBvdXRwdXQgcXVldWUgaXMgcmVzdGFydGVkIHdoaWxlIHRo ZQo+ICAJICogY2FwdHVyZSBxdWV1ZSBpcyBzdGlsbCBzdHJlYW1pbmcuCj4gIAkgKi8KPiAgCWlm IChjdHgtPmNvZGVjX29wcy0+aW5pdCAmJiAhY3R4LT5jb2RlY19wcml2KSB7Cj4gIAkJcmV0ID0g Y3R4LT5jb2RlY19vcHMtPmluaXQoY3R4KTsKCltTZXZlcml0eTogQ3JpdGljYWxdCkRvZXMgdGhp cyBwZXJtaXQgYW4gb3V0LW9mLWJvdW5kcyBhcnJheSBhY2Nlc3MgaWYgZm10X291dC0+Y29kZWNf dHlwZSBpcwp1bnRydXN0ZWQ/CgpJZiB1bnByaXZpbGVnZWQgdXNlcnNwYWNlIGNhbGxzIFZJRElP Q19TX0ZNVCBvbiB0aGUgb3V0cHV0IHF1ZXVlIHdpdGggYQpjYXB0dXJlLW9ubHkgZm9ybWF0IChl LmcuIFY0TDJfUElYX0ZNVF9OVjEyKSwgYW1sX3ZkZWNfZ2V0X3ZpZGVvX2ZtdCgpIGNvdWxkCnJl dHVybiB0aGF0IGZvcm1hdCBhbmQgcmVjb3JkIGl0cyBjb2RlY190eXBlIGFzIENPREVDX1RZUEVf RlJBTUUgKDEpLiBXaGVuClNUUkVBTU9OIHJlc29sdmVzIHRoZSBjb2RlYyBvcGVyYXRpb25zIGhl cmUsIGluZGV4IDEgcmVhZHMgcGFzdCB0aGUgZW5kIG9mIHRoZQphbWxfUzRfZGVjX29wcyBhcnJh eSBhbmQgZGVyZWZlcmVuY2VzIGEgd2lsZCBmdW5jdGlvbiBwb2ludGVyLgoKWyAuLi4gXQo+IEBA IC0zMTEsNiArMzExLDEwIEBAIHN0YXRpYyBpbnQgdmRlY19zX2ZtdF9vdXRwdXQoc3RydWN0IGFt bF92ZGVjX2N0eCAqY3R4LCBzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpCj4gIAlwZWVyX3ZxID0gdjRs Ml9tMm1fZ2V0X3ZxKGN0eC0+bTJtX2N0eCwgVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFX01Q TEFORSk7Cj4gIAlpZiAodmIyX2lzX2J1c3kocGVlcl92cSkgJiYKPiAgCSAgICAocGl4X21wLT53 aWR0aCAhPSBjYXBfZm10LT53aWR0aCB8fAo+ICAJICAgIHBpeF9tcC0+aGVpZ2h0ICE9IGNhcF9m bXQtPmhlaWdodCkpCj4gIAkJcmV0dXJuIC1FQlVTWTsKCltTZXZlcml0eTogTG93XQpDb3VsZCB0 aGlzIGZhbHNlbHkgcmVqZWN0IGlkZW50aWNhbCBmb3JtYXQgY2hhbmdlcyB3aXRoIC1FQlVTWT8K ClRoZSBjYXBfZm10IHN0cnVjdHVyZSBjb250YWlucyB0aGUgYWN0aXZlIGNhcHR1cmUgZm9ybWF0 LCB3aGljaCBoYXMgYWxyZWFkeQpiZWVuIGFsaWduZWQgdG8gaGFyZHdhcmUgY29uc3RyYWludHMu IFRoZSBwaXhfbXAgc3RydWN0dXJlIGNvbnRhaW5zIHRoZQp1bmFsaWduZWQgdXNlci1yZXF1ZXN0 ZWQgZGltZW5zaW9ucy4gSWYgdXNlcnNwYWNlIHJlcXVlc3RzIHRoZSBleGFjdCBzYW1lCnVuYWxp Z25lZCBmb3JtYXQgd2hpbGUgdGhlIHF1ZXVlIGlzIGJ1c3ksIHRoaXMgY2hlY2sgZmFpbHMgYW5k IGZhbHNlbHkgcmVqZWN0cwphIGxlZ2l0aW1hdGUgbm8tb3AgZm9ybWF0IHNldHRpbmcuCgo+ICAK PiAgCW91dF9mbXQgPSBhbWxfdmRlY19nZXRfdmlkZW9fZm10KGN0eC0+ZGV2LCBwaXhfbXAtPnBp eGVsZm9ybWF0KTsKPiAgCWlmIChvdXRfZm10KSB7Cj4gIAkJY3R4LT5kZWNfZm10W0FNTF9GTVRf U1JDXSA9ICpvdXRfZm10OwoKW1NldmVyaXR5OiBDcml0aWNhbF0KQ2FuIHRoaXMgYmluZCBhIGNh cHR1cmUtb25seSBmb3JtYXQgdG8gdGhlIG91dHB1dCBxdWV1ZT8KClRoZSBhbWxfdmRlY19nZXRf dmlkZW9fZm10KCkgZnVuY3Rpb24gaWdub3JlcyBmbXQtPnR5cGUgZHVyaW5nIGxvb2t1cC4gVGhp cwptZWFucyBhIGZvcm1hdCBsaWtlIFY0TDJfUElYX0ZNVF9OVjEyIGNhbiBiZSBhcHBsaWVkIHRv IHRoZSBvdXRwdXQgcXVldWUsCndoaWNoIGV2ZW50dWFsbHkgbGVhZHMgdG8gdGhlIG91dC1vZi1i b3VuZHMgYWNjZXNzIGluIGFtbF92ZGVjX2luaXRfZGVjX2luc3QoKS4KClsgLi4uIF0KPiBAQCAt NTIyLDYgKzUyMiw4IEBAIHN0YXRpYyB2b2lkIHZiMm9wc192ZGVjX3N0b3Bfc3RyZWFtaW5nKHN0 cnVjdCB2YjJfcXVldWUgKnEpCj4gIAl9Cj4gIAo+ICAJaWYgKCFjdHgtPmlzX291dHB1dF9zdHJl YW1vbiAmJiAhY3R4LT5pc19jYXBfc3RyZWFtb24pCj4gIAkJYW1sX3ZkZWNfcmVsZWFzZV9pbnN0 YW5jZShjdHgpOwo+ICB9CgpbU2V2ZXJpdHk6IENyaXRpY2FsXQpEb2VzIHRoaXMgZnJlZSB0aGUg Y29kZWMgY29udGV4dCB3aXRob3V0IHN5bmNocm9uaXppbmcgYWdhaW5zdCB0aGUgYWN0aXZlCndv cmtlciB0aHJlYWQ/CgpJZiBTVFJFQU1PRkYgcnVucyB3aGlsZSB0aGUgZGV2aWNlX3J1biB3b3Jr ZXIgdGhyZWFkIGlzIGJsb2NrZWQgaW4Kd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQo KSwgYW1sX2gyNjRfZXhpdCgpIHdpbGwgZnJlZSBjdHgtPmNvZGVjX3ByaXYuCldoZW4gdGhlIHdv cmtlciB0aHJlYWQgd2FrZXMgdXAsIGl0IHdpbGwgd3JpdGUgdG8gdGhlIGZyZWVkIG1lbW9yeS4K Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy92ZGVjL2FtbF92 ZGVjX2Rydi5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3ZkZWMvYW1sX3ZkZWNf ZHJ2LmMKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9hbWxfdmRl Y19kcnYuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy92ZGVjL2FtbF92 ZGVjX2Rydi5jCj4gQEAgLTIzLDYgKzIzLDcgQEAgc3RhdGljIGludCBmb3BzX3Zjb2RlY19vcGVu KHN0cnVjdCBmaWxlICpmaWxlKQo+ICAJc3RydWN0IGFtbF92ZGVjX2N0eCAqY3R4ID0gTlVMTDsK PiAgCWludCByZXQgPSAwOwo+ICAKPiAgCWN0eCA9IGt6YWxsb2Nfb2JqKCpjdHgsIEdGUF9LRVJO RUwpOwoKW1NldmVyaXR5OiBMb3ddCklzIGt6YWxsb2Nfb2JqKCkgYW4gdW5kZWZpbmVkIG1hY3Jv L2Z1bmN0aW9uIGhlcmU/CgpJdCBsb29rcyBsaWtlIHRoaXMgbWlnaHQgaGF2ZSBtZWFudCB0byBi ZSBremFsbG9jKHNpemVvZigqY3R4KSwgR0ZQX0tFUk5FTCksCmFuZCB3aWxsIGNhdXNlIGEgYnVp bGQgZmFpbHVyZSBhcyB3cml0dGVuLgoKWyAuLi4gXQo+IEBAIC02OCw2ICs2OSw3IEBAIHN0YXRp YyBpbnQgZm9wc192Y29kZWNfcmVsZWFzZShzdHJ1Y3QgZmlsZSAqZmlsZSkKPiAgewo+ICAJc3Ry dWN0IGFtbF92ZGVjX2N0eCAqY3R4ID0gZmhfdG9fZGVjX2N0eChmaWxlKTsKPiAgCj4gIAl2NGwy X20ybV9jdHhfcmVsZWFzZShjdHgtPm0ybV9jdHgpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRo aXMgYWNjZXNzIHRoZSBNMk0gZGV2aWNlIGFmdGVyIGl0IGhhcyBiZWVuIGZyZWVkPwoKSWYgdGhl IGRldmljZSBpcyB1bmJvdW5kIHZpYSBzeXNmcyB3aGlsZSBhIHVzZXJzcGFjZSBwcm9jZXNzIGhv bGRzIHRoZSBmaWxlCmRlc2NyaXB0b3Igb3BlbiwgYW1sX3ZkZWNfZHJ2X3JlbW92ZSgpIHJ1bnMg YW5kIGNhbGxzIHY0bDJfbTJtX3JlbGVhc2UoKS4KU2luY2UgdGhlIGRyaXZlciBzdHJ1Y3R1cmVz IHdlcmUgYWxsb2NhdGVkIHdpdGggZGV2bV9remFsbG9jLCB0aGV5IGFyZSBmcmVlZAppbW1lZGlh dGVseS4gV2hlbiB1c2Vyc3BhY2UgZXZlbnR1YWxseSBjbG9zZXMgdGhlIGZpbGUgZGVzY3JpcHRv ciwgdGhpcyBkZWxheWVkCmNhbGwgYWNjZXNzZXMgdGhlIGZyZWVkIG0ybV9kZXZfZGVjLgoKWyAu Li4gXQo+IEBAIC0xNjgsNiArMTcwLDggQEAgc3RhdGljIGludCBhbWxfdmRlY19kcnZfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQlnb3RvIGVycl9tMm1fZGV2X2luaXQ7 Cj4gIAl9Cj4gIAo+ICAJcmV0ID0gdmlkZW9fcmVnaXN0ZXJfZGV2aWNlKHZmZF9kZWMsIFZGTF9U WVBFX1ZJREVPLCAtMSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJdjRsMl9lcnIoJmRldi0+djRsMl9k ZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgdmlkZW8gZGV2aWNlIik7Cj4gQEAgLTE4OSw2ICsxOTMs NyBAQCBzdGF0aWMgaW50IGFtbF92ZGVjX2Rydl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQo+ICAJCXY0bDJfZXJyKCZkZXYtPnY0bDJfZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVy IG1lZGlhIGRldmljZSIpOwo+ICAJCWdvdG8gZXJyX21lZGlhX2Rldl9yZWdpc3RlcjsKPiAgCX0K PiAgCXZkZWNfZW5hYmxlKGRldi0+ZGVjX2h3KTsKCltTZXZlcml0eTogSGlnaF0KSXMgdGhlIHZp ZGVvIGRldmljZSByZWdpc3RlcmVkIGFuZCBleHBvc2VkIHRvIHVzZXJzcGFjZSBiZWZvcmUgdGhl IGhhcmR3YXJlCnBvd2VyIGRvbWFpbiBpcyBlbmFibGVkPwoKQSBmYXN0IHVzZXJzcGFjZSBwcm9j ZXNzIGNhbiBpbW1lZGlhdGVseSBvcGVuIHRoZSBkZXZpY2UgYW5kIHN0YXJ0IHN0cmVhbWluZywK Y2F1c2luZyB0aGUgZHJpdmVyIHRvIGV4ZWN1dGUgTU1JTyByZWFkcy93cml0ZXMgb24gdW5wb3dl cmVkIHJlZ2lzdGVycywKcmVzdWx0aW5nIGluIHN5bmNocm9ub3VzIGV4dGVybmFsIGFib3J0cy4K ClsgLi4uIF0KPiBAQCAtMjMzLDYgKzIzOCw4IEBAIHN0YXRpYyB2b2lkIGFtbF92ZGVjX2Rydl9y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXZpZGVvX3VucmVnaXN0ZXJf ZGV2aWNlKGRldi0+dmZkKTsKPiAgCW1lZGlhX2RldmljZV9jbGVhbnVwKCZkZXYtPm1kZXYpOwo+ ICAKPiAgCXY0bDJfbTJtX3JlbGVhc2UoZGV2LT5tMm1fZGV2X2RlYyk7Cj4gIAlkZXYtPnB2ZGVj X2RhdGEtPmRlc3Ryb3lfaHdfcmVzb3VyY2UoZGV2KTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyBy ZWxlYXNpbmcgdGhlIE0yTSBkZXZpY2UgaGVyZSBjcmVhdGUgYSB1c2UtYWZ0ZXItZnJlZSByaXNr IGZvciBvcGVuIGZpbGUKZGVzY3JpcHRvcnM/CgpTaW5jZSBkZXYgYW5kIGRlY19odyB1c2UgZGV2 bV9remFsbG9jLCByZWxlYXNpbmcgdGhlbSBoZXJlIGJlZm9yZSBhbGwgZmRzIGFyZQpjbG9zZWQg bWVhbnMgdGhhdCBmb3BzX3Zjb2RlY19yZWxlYXNlKCkgd2lsbCBsYXRlciBkZXJlZmVyZW5jZSBm cmVlZCBtZW1vcnkuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9n aWMvdmRlYy9hbWxfdmRlY19ody5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hbWxvZ2ljL3Zk ZWMvYW1sX3ZkZWNfaHcuYwo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYW1sb2dpYy92 ZGVjL2FtbF92ZGVjX2h3LmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMv dmRlYy9hbWxfdmRlY19ody5jCj4gQEAgLTE3OSw2ICsxNzksOCBAQCBzdGF0aWMgaW50IHBtX3Zk ZWNfcG93ZXJfZG9tYWluX2luaXQoc3RydWN0IGFtbF92ZGVjX2h3ICpodykKPiAgCj4gIAlmb3Ig KGkgPSAwOyBpIDwgVkRFQ19NQVg7IGkrKykgewo+ICAJCXBkW2ldLmRldiA9IGRldl9wbV9kb21h aW5fYXR0YWNoX2J5X25hbWUoaHctPmRldiwgcGRbaV0ubmFtZSk7Cj4gIAkJaWYgKElTX0VSUl9P Ul9OVUxMKHBkW2ldLmRldikpIHsKPiAgCQkJZXJyID0gUFRSX0VSUihwZFtpXS5kZXYpOwo+ICAJ CQlkZXZfZGJnKGh3LT5kZXYsICJHZXQgJXMgZmFpbGVkLCBwbS1kb21haW46ICVkXG4iLAo+ICAJ CQkJcGRbaV0ubmFtZSwgZXJyKTsKPiAgCQkJcGRbaV0uZGV2ID0gTlVMTDsKPiAgCQkJY29udGlu dWU7Cj4gIAkJfQo+ICAKPiAgCQlwZFtpXS5saW5rID0gZGV2aWNlX2xpbmtfYWRkKGh3LT5kZXYs IHBkW2ldLmRldiwKCltTZXZlcml0eTogTWVkaXVtXQpEb2VzIHN0b3JpbmcgcGVyLWRldmljZSBw b2ludGVycyBpbnRvIHRoZSBzdGF0aWMgZ2xvYmFsICd2ZGVjX2RvbWFpbl9kYXRhJwphcnJheSBj b3JydXB0IHN0YXRlIGZvciBtdWx0aXBsZSBpbnN0YW5jZXM/CgpJZiB0aGUgZHJpdmVyIHVuYmlu ZHMgYW5kIHJlYmluZHMsIG9yIGlmIG11bHRpcGxlIGluc3RhbmNlcyBwcm9iZSwgdGhlIGdsb2Jh bAphcnJheSB3aWxsIGJlIG92ZXJ3cml0dGVuLCBjYXVzaW5nIHRlYXJkb3duIHJvdXRpbmVzIHRv IG9wZXJhdGUgb24gY29ycnVwdGVkCnBvaW50ZXJzLgoKWyAuLi4gXQo+IEBAIC0yODMsNiArMjg1 LDggQEAgc3RhdGljIHZvaWQgcG1fdmRlY19wb3dlcl9kb21haW5fcG93ZXJfb24oc3RydWN0IGFt bF92ZGVjX2h3ICpodywgaW50IGlkKQo+ICAKPiAgCWlmICghcmV0ICYmIGRldikgewo+ICAJCXJl dCA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQoZGV2KTsKPiAgCQlpZiAocmV0IDwgMCkKPiAg CQkJZGV2X2Vycihody0+ZGV2LCAiZmFpbGVkIHRvIHBvd2VyIG9uICVzIGRvbWFpbjogJWRcbiIs Cj4gIAkJCQlwbS0+cGRfZGF0YVtpZF0ubmFtZSwgcmV0KTsKPiAgCQllbHNlCj4gIAkJCWRldl9k YmcoZGV2LCAiZGV2OiAlcCBsaW5rICVwIHRoZSAlLTE1cyBwb3dlciBvblxuIiwKPiAgCQkJCWRl diwgcG0tPnBkX2RhdGFbaWRdLmxpbmssIHBtLT5wZF9kYXRhW2lkXS5uYW1lKTsKPiAgCX0KPiAg Cj4gIAkvKgo+ICAJICogRG8gbm90IHRvdWNoIHRoZSBET1MgcmVnaXN0ZXJzIHdoZW4gdGhlIGNs b2NrIG9yIHRoZSBwb3dlcgo+ICAJICogZG9tYWluIGNvdWxkIG5vdCBiZSBlbmFibGVkLCB0aGUg TU1JTyBhY2Nlc3Mgd291bGQgYWJvcnQuCj4gIAkgKi8KPiAgCWlmICghcmV0KQo+ICAJCWRvc19s b2NhbF9jb25maWcoaHcsIDEsIGlkKTsKCltTZXZlcml0eTogSGlnaF0KSWYgcG1fcnVudGltZV9y ZXN1bWVfYW5kX2dldCgpIGZhaWxzLCBkb2VzIHRoaXMgbGVhdmUgdGhlIGNsb2NrIGVuYWJsZWQ/ CgpCZWNhdXNlIGl0IGRvZXNuJ3QgY2xlYW4gdXAgdGhlIGNsa19wcmVwYXJlX2VuYWJsZSgpIGNh bGwsIHRoZSBjbG9jayBsZWFrcy4KQWxzbywgaWYgZWl0aGVyIGdhdGVfbm9kZSBvciBkZXYgaXMg TlVMTCwgcmV0IHJlbWFpbnMgMCwgd2hpY2ggYnlwYXNzZXMgdGhlCmVuYWJsZW1lbnQgYnV0IGFs bG93cyBkb3NfbG9jYWxfY29uZmlnKCkgdG8gZXhlY3V0ZSB1bnBvd2VyZWQgTU1JTyB3cml0ZXMs CmNhdXNpbmcgYSBidXMgY3Jhc2guCgpbIC4uLiBdCj4gQEAgLTM0Myw2ICszNDcsOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgdmRlY190aHJlYWRlZF9pc3JfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpw cml2KQo+ICAKPiAgCW11dGV4X2xvY2soJmh3LT5jdHhfbXV0ZXgpOwo+ICAJaWYgKGh3LT5od19v cHMuaXJxX3RocmVhZGVkX2Z1bmMgJiYgaHctPmN1cnJfY3R4KQo+ICAJCXJldCA9IGh3LT5od19v cHMuaXJxX3RocmVhZGVkX2Z1bmMoaXJxLCBwcml2KTsKPiAgCW11dGV4X3VubG9jaygmaHctPmN0 eF9tdXRleCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyB0aHJlYWRlZCBJU1IgcHJvZ3Jh bSBoYXJkd2FyZSByZWdpc3RlcnMgd2hpbGUgcmVseWluZyBzb2xlbHkgb24KY3R4X211dGV4PwoK RHVyaW5nIGEgZGVjb2RlciB0aW1lb3V0LCBhbWxfaDI2NF9kZWNfcnVuKCkgY2FsbHMgYW1sX3N0 b3BfdmRlY19odygpIHdpdGhvdXQKYWNxdWlyaW5nIGN0eF9tdXRleC4gVGhpcyBjYXVzZXMgdGhl IGhhcmR3YXJlIHRvIGJlIHJlc2V0IGNvbmN1cnJlbnRseSB3aGlsZQp0aGUgSVNSIG1pZ2h0IHN0 aWxsIGJlIGFjdGl2ZWx5IHByb2dyYW1taW5nIGl0cyBtZW1vcnkgYW5kIHJlZ2lzdGVycy4KClsg Li4uIF0KPiBAQCAtNDI4LDYgKzQzNCw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB2ZGVjX2lycV9o YW5kbGVyKGludCBpcnEsIHZvaWQgKnByaXYpCj4gIAlpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9O RTsKPiAgCj4gIAlpZiAoaHctPmh3X29wcy5pcnFfaGFuZGxlcikKPiAgCQlyZXQgPSBody0+aHdf b3BzLmlycV9oYW5kbGVyKGlycSwgcHJpdik7Cj4gIAo+ICAJcmV0dXJuIHJldDsKPiAgfQpbIC4u LiBdCj4gQEAgLTQ3OSw2ICs0ODcsOCBAQCBpbnQgZGV2X3JlcXVlc3RfaHdfcmVzb3VyY2VzKHZv aWQgKnByaXYpCj4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiZ2V0IGlycSBmYWlsZWRcbiIpOwo+ ICAJCXJldHVybiBody0+ZGVjX2lycTsKPiAgCX0KPiAgCXJldCA9IGRldm1fcmVxdWVzdF90aHJl YWRlZF9pcnEoJnBkZXYtPmRldiwgaHctPmRlY19pcnEsIHZkZWNfaXJxX2hhbmRsZXIsCgpbU2V2 ZXJpdHk6IE1lZGl1bV0KQ291bGQgYSBwZW5kaW5nIGludGVycnVwdCBjYXVzZSB0aGUgSVJRIGxp bmUgdG8gYmUgcGVybWFuZW50bHkgZGlzYWJsZWQ/CgpUaGUgSVJRIGlzIHJlZ2lzdGVyZWQgYmVm b3JlIHRoZSBoYXJkd2FyZSBoYXMgYmVlbiBleHBsaWNpdGx5IHJlc2V0LCBhbmQKaHctPmh3X29w cy5pcnFfaGFuZGxlciBpcyBOVUxMIGF0IHRoaXMgcG9pbnQuIElmIGFuIGludGVycnVwdCBmaXJl cywKdmRlY19pcnFfaGFuZGxlcigpIHdpbGwgcmVwZWF0ZWRseSByZXR1cm4gSVJRX05PTkUsIGNh dXNpbmcgdGhlIGtlcm5lbCB0bwpkZXRlY3QgYSBzcHVyaW91cyBJUlEgc3Rvcm0gYW5kIGRpc2Fi bGUgdGhlIGxpbmUuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9n aWMvdmRlYy9oMjY0LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9oMjY0 LmMKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9oMjY0LmMKPiAr KysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9naWMvdmRlYy9oMjY0LmMKPiBAQCAtNDIz LDYgKzQyMyw4IEBAIHN0YXRpYyBpbnQgcG9jX2lzX2luX2RwYihpbnQgcG9jLCBjb25zdCBzdHJ1 Y3QgdjRsMl9oMjY0X2RwYl9lbnRyeSAqZHBiKQo+ICAJaW50IHJldCA9IDA7Cj4gIAo+ICAJZm9y IChpID0gMDsgaSA8IFY0TDJfSDI2NF9OVU1fRFBCX0VOVFJJRVM7IGkrKykgewo+ICAJCWlmIChw b2MgPT0gZHBiW2ldLnRvcF9maWVsZF9vcmRlcl9jbnQpIHsKPiAgCQkJcmV0ID0gMTsKPiAgCQkJ YnJlYWs7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KU2hvdWxkIHRoaXMgY2hlY2sgVjRMMl9IMjY0X0RQ Ql9FTlRSWV9GTEFHX1ZBTElEIGJlZm9yZSBjb21wYXJpbmcgdGhlIFBPQz8KCklmIGl0IGNvbXBh cmVzIGFnYWluc3QgaW5hY3RpdmUgb3Igc3RhbGUgZW50cmllcyB3aXRoIGxpbmdlcmluZyB6ZXJv cywgaXQgY2FuCmZhbHNlbHkgcmV0dXJuIDEsIHByZXZlbnRpbmcgY2xlYXJfdW51c2VkX2NvbF9i dWYoKSBmcm9tIHJlbGVhc2luZyB0aGUKYXNzb2NpYXRlZCBjYW52YXMgcG9zaXRpb25zIGFuZCBj b2xvY2F0ZSBidWZmZXJzLgoKWyAuLi4gXQo+IEBAIC00OTQsNiArNDk2LDggQEAgc3RhdGljIGlu dCBjb25maWdfZGVjb2RlX2NhbnZhcyhzdHJ1Y3QgYW1sX3ZkZWNfaHcgKmh3LAo+ICAJLyogY29u ZmlnIHkgY2FudmFzICovCj4gIAltZXNvbl9jYW52YXNfY29uZmlnKGh3LT5jYW52YXMsCj4gIAkJ CSAgICBidWZfc3BlYy0+eV9jYW52YXNfaW5kZXgsIGJ1Zl9zcGVjLT55X2RtYV9hZGRyLAo+ICAJ CQkgICAgbWJfd2lkdGggPDwgNCwgbWJfaGVpZ2h0IDw8IDQsCgpbU2V2ZXJpdHk6IExvd10KRG9l cyB0aGlzIGhhcmRjb2RlIHRoZSBoYXJkd2FyZSBzdHJpZGUgdG8gdGhlIGJpdHN0cmVhbS1kZXJp dmVkIHdpZHRoIGluc3RlYWQKb2YgdGhlIG5lZ290aWF0ZWQgYnl0ZXNwZXJsaW5lPwoKVjRMMiBz ZW1hbnRpY3MgcmVxdWlyZSB1c2luZyB0aGUgYnl0ZXNwZXJsaW5lIHNldCB2aWEgVklESU9DX1Nf Rk1ULiBJZiB0aGUKbmVnb3RpYXRlZCBzdHJpZGUgZGlmZmVycyBmcm9tIHRoZSB0aWdodGx5LXBh Y2tlZCBTUFMgd2lkdGgsIHRoZSByZXN1bHRpbmcKaW1hZ2Ugd2lsbCBzdWZmZXIgZnJvbSB2aXN1 YWwgY29ycnVwdGlvbi4KClsgLi4uIF0KPiBAQCAtNjA5LDYgKzYxMyw5IEBAIHN0YXRpYyBpbnQg YWxsb2NfY29sb2NhdGVfY21hKHN0cnVjdCBhbWxfaDI2NF9jdHggKmgyNjRfY3R4LAo+ICAJZ2Zw X3QgZ2ZwID0gR0ZQX0tFUk5FTCB8IEdGUF9ETUEzMjsKPiAgCj4gIAlpZiAoaDI2NF9jdHgtPmNv bGxhdGVkX2NtYV92YWRkcikKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAlodyA9IHZkZWNfZ2V0X2h3 KGN0eC0+ZGV2KTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGJ5cGFzcyB1cGRhdGluZyBv bmVfY29sX2J1Zl9zaXplIGlmIHRoZSBidWZmZXIgd2FzIGFscmVhZHkgYWxsb2NhdGVkPwoKSWYg dGhlIHN0cmVhbSBkeW5hbWljYWxseSBpbmNyZWFzZXMgaW4gcmVzb2x1dGlvbiwgaDI2NF9jdHgt Pm9uZV9jb2xfYnVmX3NpemUKd2lsbCByZW1haW4gYXQgdGhlIHN0YWxlLCBzbWFsbGVyIHNpemUu CgpbIC4uLiBdCj4gQEAgLTgzOCw2ICs4NDUsOSBAQCBzdGF0aWMgaW50IGgyNjRfY29uZmlnX2Rl Y29kZV9idWYoc3RydWN0IGFtbF92ZGVjX2h3ICpodywKPiAgCWZvciAoaSA9IDA7IGkgPCBoMjY0 X2N0eC0+bGlzdF9zaXplWzBdOyBpKyspIHsKPiAgCQlpZiAoIWgyNjRfY3R4LT5yZWZfbGlzdDBb aV0udmFsaWQpCj4gIAkJCWNvbnRpbnVlOwo+ICAJCWNhbnZhc19wb3MgPSBoMjY0X2N0eC0+cmVm X2xpc3QwW2ldLmNhbnZhc19wb3M7Cj4gIAkJLyogYml0IDA6MyBjYW52YXNfcG9zIGJpdCA1OjYg ZnJhbWUgc3RydWN0IGNmZyAqLwo+ICAJCXJlZl9jZmdfb25jZSA9IChjYW52YXNfcG9zICYgMHgx ZikgfCAodHlwZV9jZmcgPDwgNSk7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSWYgYSByZWZlcmVuY2Ug cGljdHVyZSBpcyBpbnZhbGlkLCBkb2VzIHNraXBwaW5nIGl0IHdpdGhvdXQgaW5jcmVtZW50aW5n ICdqJwpzaGlmdCBhbGwgc3Vic2VxdWVudCB2YWxpZCBlbnRyaWVzIGludG8gdGhlIHdyb25nIGhh cmR3YXJlIHNsb3RzPwoKVGhpcyBgY29udGludWVgIHN0YXRlbWVudCBzaWxlbnRseSBieXBhc3Nl cyB0aGUgaGFyZHdhcmUgaW5kZXggcGFja2luZywKY29ycnVwdGluZyB0aGUgZGVjb2Rpbmcgb2Yg Qi1mcmFtZXMgb3IgUC1mcmFtZXMuCgpbIC4uLiBdCj4gQEAgLTg2NSw2ICs4NzUsOCBAQCBzdGF0 aWMgaW50IGgyNjRfY29uZmlnX2RlY29kZV9idWYoc3RydWN0IGFtbF92ZGVjX2h3ICpodywKPiAg CXJlZl9jZmcgPSAwOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBoMjY0X2N0eC0+bGlzdF9zaXpl WzFdOyBpKyspIHsKPiAgCQlpZiAoIWgyNjRfY3R4LT5yZWZfbGlzdDBbaV0udmFsaWQpCj4gIAkJ CWNvbnRpbnVlOwo+ICAJCWNhbnZhc19wb3MgPSBoMjY0X2N0eC0+cmVmX2xpc3QxW2ldLmNhbnZh c19wb3M7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgcmVmX2xpc3QxIGluY29ycmVjdGx5IGNoZWNr ZWQgYWdhaW5zdCByZWZfbGlzdDAncyB2YWxpZCBmbGFnIGhlcmU/CgpJZiByZWZfbGlzdDAgaGFz IGZld2VyIHZhbGlkIGVudHJpZXMgdGhhbiByZWZfbGlzdDEsIHRoZSBsb29wIHdpbGwgZXJyb25l b3VzbHkKc2tpcCB2YWxpZCByZWZfbGlzdDEgZW50cmllcy4KClsgLi4uIF0KPiBAQCAtODk2LDYg KzkwOCw5IEBAIHN0YXRpYyBpbnQgaDI2NF9jb25maWdfZGVjb2RlX2J1ZihzdHJ1Y3QgYW1sX3Zk ZWNfaHcgKmh3LAo+ICAJCWNvbG9jYXRlX3dyX2FkciA9ICh1bnNpZ25lZCBpbnQpaDI2NF9jdHgt PmNvbGxhdGVkX2NtYV9hZGRyICsKPiAgCQkgICAgKChoMjY0X2N0eC0+b25lX2NvbF9idWZfc2l6 ZSAqCj4gIAkJICAgICAgaDI2NF9jdHgtPmN1cnJfc3BlYy5jb2xfYnVmX2luZGV4KSA+PiAodXNl X21vZGVfOHg4X2ZsYWcgPyAyIDogMCkpOwo+ICAJCWlmIChjb2xvY2F0ZV9hZHJfb2Zmc2V0ID4g aDI2NF9jdHgtPm9uZV9jb2xfYnVmX3NpemUgfHwKPiAgCQkgICAgY29sb2NhdGVfd3JfYWRyICsg aDI2NF9jdHgtPm9uZV9jb2xfYnVmX3NpemUgPgo+ICAJCSAgICAodW5zaWduZWQgaW50KWgyNjRf Y3R4LT5jb2xsYXRlZF9jbWFfYWRkcl9lbmQpIHsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlz IGJvdW5kcyBjaGVjayBwZXJtaXQgbWVtb3J5IGNvcnJ1cHRpb24gYmVjYXVzZSBpdCB2ZXJpZmll cyBhZ2FpbnN0CnRoZSBvbGQgc21hbGxlciBvbmVfY29sX2J1Zl9zaXplPwoKVGhlIGhhcmR3YXJl IGlzIHByb2dyYW1tZWQgd2l0aCB0aGUgbmV3IGxhcmdlciBkaW1lbnNpb25zLCB3cml0aW5nCm5l d19tYl90b3RhbCAqIDk2IGJ5dGVzIHN0YXJ0aW5nIGF0IGNvbG9jYXRlX3dyX2Fkciwgb3ZlcmZs b3dpbmcgdGhlIHNwYWNpbmcKZGVmaW5lZCBieSB0aGUgc3RhbGUgb25lX2NvbF9idWZfc2l6ZS4K ClsgLi4uIF0KPiBAQCAtMTU3MCw2ICsxNTg1LDggQEAgc3RhdGljIGludCBoMjY0X2NvbmZpZ19y ZWZfc3BlYyhzdHJ1Y3QgYW1sX2gyNjRfY3R4ICpoMjY0X2N0eCwKPiAgCQlyZXR1cm4gLTE7Cj4g IAl9Cj4gIAo+ICAJdmIgPSB2YjJfZmluZF9idWZmZXIodnEsIGRwYi0+cmVmZXJlbmNlX3RzKTsK CltTZXZlcml0eTogSGlnaF0KSXMgaXQgc2FmZSB0byBpdGVyYXRlIG92ZXIgdGhlIHZiMiBxdWV1 ZSBidWZmZXJzIGZyb20gdGhlIHRocmVhZGVkIElTUiB3aXRob3V0CmhvbGRpbmcgdGhlIHY0bDJf aW50Zl9sb2NrPwoKSWYgYSBjb25jdXJyZW50IFZJRElPQ19SRVFCVUZTIG9yIFZJRElPQ19TVFJF QU1PRkYgbW9kaWZpZXMgdGhlIHF1ZXVlIHdoaWxlCnRoaXMgaXMgZXhlY3V0aW5nLCBpdCBjb3Vs ZCBsZWFkIHRvIHVzZS1hZnRlci1mcmVlIG9yIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMuCgo+ICAJ aWYgKCF2Yikgewo+ICAJCWRldl9kYmcoJmN0eC0+ZGV2LT5wbGF0X2Rldi0+ZGV2LAo+ICAJCQki cmVmIHBpYyBmb3IgdHMgJWxsdSBsb3N0XG4iLCBkcGItPnJlZmVyZW5jZV90cyk7Cj4gIAkJYnVm X3NwZWMtPnZhbGlkID0gMDsKPiAgCQlyZXR1cm4gLTE7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMg dGhpcyBsZWF2ZSB0aGUgc3RhbGUgcGh5c2ljYWwgYWRkcmVzc2VzIGluIHRoZSBidWZmZXIgc3Bl Yz8KCldoZW4gY29tYmluZWQgd2l0aCB0aGUgbG9vcCBpbiBnZXRfY2FudmFzX2luZGV4KCksIHdo aWNoIGlnbm9yZXMgdGhlIHZhbGlkCmZsYWc6Cgpkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2FtbG9n aWMvdmRlYy9oMjY0LmM6Z2V0X2NhbnZhc19pbmRleCgpIHsKLi4uCgkJZm9yIChpID0gMDsgaSA8 IGgyNjRfY3R4LT5saXN0X3NpemVbMF07IGkrKykgewoJCQlidWYgPSAmaDI2NF9jdHgtPnJlZl9s aXN0MFtpXTsKCQkJcmV0ID0gY29uZmlnX2RlY29kZV9jYW52YXMoaHcsIGJ1ZiwgaDI2NF9jdHgt Pm1iX3dpZHRoLAouLi4KfQoKdGhpcyB3aWxsIGNvbmZpZ3VyZSB0aGUgaGFyZHdhcmUgdG8gbWFw IGFuZCB1c2UgdGhlIHN0YWxlLCBkYW5nbGluZyB5X2RtYV9hZGRyCmZvciB0aGUgY3VycmVudCBm cmFtZSdzIGRlY29kaW5nIGlmIHJlZmVyZW5jZSBwaWN0dXJlIHZhbGlkYXRpb24gZmFpbHMuCgpb IC4uLiBdCj4gQEAgLTE2NjUsNiArMTY4Miw5IEBAIHN0YXRpYyBpbnQgZ2V0X2NhbnZhc19pbmRl eChzdHJ1Y3QgYW1sX3ZkZWNfaHcgKmh3LCBzdHJ1Y3QgYW1sX3ZkZWNfY3R4ICpjdHgpCj4gIAlp ZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+ICAJaWYgKGgyNjRfY3R4LT5saXN0X3NpemVb MF0gPiAwKSB7Cj4gIAkJZm9yIChpID0gMDsgaSA8IGgyNjRfY3R4LT5saXN0X3NpemVbMF07IGkr Kykgewo+ICAJCQlidWYgPSAmaDI2NF9jdHgtPnJlZl9saXN0MFtpXTsKPiAgCQkJcmV0ID0gY29u ZmlnX2RlY29kZV9jYW52YXMoaHcsIGJ1ZiwgaDI2NF9jdHgtPm1iX3dpZHRoLAo+ICAJCQkJCQkg ICBoMjY0X2N0eC0+bWJfaGVpZ2h0KTsKCltTZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGl0ZXJh dGUgb3ZlciBhbGwgcmVmZXJlbmNlIGVudHJpZXMgYW5kIGNvbmZpZ3VyZSBjYW52YXNlcyB3aXRo b3V0CmNoZWNraW5nIGlmIHRoZSBlbnRyeSBpcyB2YWxpZD8KClRoaXMgaWdub3JlcyBidWYtPnZh bGlkIGFuZCBwcm9ncmFtcyBwb3RlbnRpYWxseSBzdGFsZSBvciBmYWlsZWQgRE1BIGFkZHJlc3Nl cwppbnRvIHRoZSBoYXJkd2FyZS4KClsgLi4uIF0KPiBAQCAtMjAxNSw2ICsyMDM1LDggQEAgdm9p ZCBhbWxfaDI2NF9leGl0KHZvaWQgKnByaXYpCj4gIAo+ICAJc3luY2hyb25pemVfaXJxKGRlY19o dy0+ZGVjX2lycSk7Cj4gIAltdXRleF9sb2NrKCZkZWNfaHctPmN0eF9tdXRleCk7Cj4gIAlpZiAo Y3R4LT5kb3NfY2xrX2VuICYmCj4gIAkgICAgKCFkZWNfaHctPmN1cnJfY3R4IHx8IGRlY19ody0+ Y3Vycl9jdHggPT0gaDI2NF9jdHgpKQo+ICAJCWFtbF9zdG9wX3ZkZWNfaHcoZGVjX2h3KTsKCltT ZXZlcml0eTogSGlnaF0KQ2FuIHRoaXMgc2h1dCBkb3duIHRoZSBoYXJkd2FyZSBjb25jdXJyZW50 bHkgd2hpbGUgYW5vdGhlciBpbnN0YW5jZSBpcyBiZWluZwppbml0aWFsaXplZD8KCklmIG0ybW9w c192ZGVjX2RldmljZV9ydW4oKSBpcyBjdXJyZW50bHkgZXhlY3V0aW5nIGRvc19lbmFibGUoKSBm b3IgYSBuZXcKaW5zdGFuY2UsIGRlY19ody0+Y3Vycl9jdHggbWlnaHQgc3RpbGwgYmUgTlVMTC4g VGhpcyBjb25kaXRpb24gZXZhbHVhdGVzIHRvCnRydWUsIHJlc3VsdGluZyBpbiBhbWxfc3RvcF92 ZGVjX2h3KCkgcnVubmluZyBhbmQgcmVzZXR0aW5nIHRoZSBoYXJkd2FyZQpjbG9ja3MvcmVnaXN0 ZXJzIG91dCBmcm9tIHVuZGVyIHRoZSBvdGhlciBjb250ZXh0LgoKWyAuLi4gXQo+IEBAIC0yMDky LDYgKzIxMTQsOCBAQCBpbnQgYW1sX2gyNjRfZGVjX3J1bih2b2lkICpwcml2KQo+ICAJCWRldl9l cnIoJmN0eC0+ZGV2LT5wbGF0X2Rldi0+ZGV2LCAiZGVjIGludGVyIGZhaWxcbiIpOwo+ICAJfQo+ ICAKPiAgCWgyNjRfY3R4LT5pbml0X2ZsYWcgPSAwOwo+ICAJYW1sX3ZkZWNfc2V0X2N1cnJfY3R4 KGRlY19odywgTlVMTCk7CgpbU2V2ZXJpdHk6IENyaXRpY2FsXQpEb2VzIHRoaXMgd3JpdGUgdG8g dGhlIGZyZWVkIGNvbnRleHQgYWZ0ZXIgcmV0dXJuaW5nIGZyb20Kd2FpdF9ldmVudF9pbnRlcnJ1 cHRpYmxlX3RpbWVvdXQoKT8KCklmIGEgY29uY3VycmVudCBTVFJFQU1PRkYgaGFzIGFscmVhZHkg ZnJlZWQgaDI2NF9jdHgsIHNldHRpbmcgaW5pdF9mbGFnIGhlcmUKcmVzdWx0cyBpbiBhIHVzZS1h ZnRlci1mcmVlLgoKPiAgCj4gIAlyZXR1cm4gcmV0OwpbIC4uLiBdCj4gQEAgLTIxNjQsNiArMjE4 OCw4IEBAIGludCBhbWxfaDI2NF9kZWNfcnVuKHZvaWQgKnByaXYpCj4gIAkJICogaDI2NF9yZWxl YXNlX2RlY29kZV9zcGVjKCkgY29uY3VycmVudGx5Lgo+ICAJCSAqLwo+ICAJCWFtbF9zdG9wX3Zk ZWNfaHcoZGVjX2h3KTsKPiAgCQlzeW5jaHJvbml6ZV9pcnEoZGVjX2h3LT5kZWNfaXJxKTsKCltT ZXZlcml0eTogSGlnaF0KRG9lcyB0aGlzIGNhbGwgaGFyZHdhcmUgcmVzZXQgb3BlcmF0aW9ucyBj b25jdXJyZW50bHkgd2l0aG91dCB0aGUgY3R4X211dGV4IGFuZApiZWZvcmUgc3luY2hyb25pemlu ZyB0aGUgSVNSPwoKSWYgdGhlIHRocmVhZGVkIElTUiBpcyBhY3RpdmUsIGFtbF9zdG9wX3ZkZWNf aHcoKSB3aWxsIHJlc2V0IHRoZSBoYXJkd2FyZSB3aGlsZQp0aGUgSVNSIGlzIGFjdGl2ZWx5IHBy b2dyYW1taW5nIGl0cyBtZW1vcnkgYW5kIHJlZ2lzdGVycywgbGVhZGluZyB0byBidXMKbG9ja3Vw cy4KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRwczovL3Nhc2hpa28uZGV2LyMvcGF0Y2hz ZXQvMjAyNjEwMTItYjQtczQtdmRlYy11cHN0cmVhbS12MTEtMC0yNTkzOWY4NWFkYTVAYW1sb2dp Yy5jb20/cGFydD00CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hbWxvZ2ljCg==