From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ganesan, Aravind" Subject: Re: [PATCH 2/3] drm/msm: Handle register offset differences between a3xx, and a4xx Date: Fri, 07 Nov 2014 17:32:01 -0700 Message-ID: <545D6481.20107@codeaurora.org> References: <5452F4E2.50506@codeaurora.org> <5453A5E6.50401@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: linux-arm-msm , freedreno@lists.freedesktop.org, Rishi Bhattacharya , "dri-devel@lists.freedesktop.org" List-Id: linux-arm-msm@vger.kernel.org CgpPbiAxMS82LzIwMTQgMjoxMSBQTSwgUm9iIENsYXJrIHdyb3RlOgo+IE9uIEZyaSwgT2N0IDMx LCAyMDE0IGF0IDExOjA4IEFNLCBHYW5lc2FuLCBBcmF2aW5kCj4gPGFyYXZpbmRnQGNvZGVhdXJv cmEub3JnPiB3cm90ZToKPj4gUmVnaXN0ZXIgb2Zmc2V0cyBoYXZlIGNoYW5nZWQgYmV0d2VlbiBh M3h4IGFuZCBhNHh4IEdQVXMuCj4+IFRvIGJlIGFibGUgYWNjZXNzIHRoZXNlIHJlZ2lzdGVycyBp biBjb21tb24gY29kZSwgd2UgY3JlYXRlCj4+IGEgbG9va3VwIHRhYmxlLCBhbmQgc2V0IG9mIHJl YWQtd3JpdGUgQVBJcyB0byBhY2Nlc3MgdGhlCj4+IHJlZ2lzdGVyIHRocm91Z2ggdGhlIGxvb2t1 cCB0YWJsZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQXJhdmluZCBHYW5lc2FuIDxhcmF2aW5kZ0Bj b2RlYXVyb3JhLm9yZz4KPj4gLS0tCj4+IFJlc2VuZCB0aGUgcGF0Y2gtc2V0IHdpdGggdGhlIHNh bWUgdGhyZWFkLWlkCj4+IFJlc2VuZCBpbiBwYXRjaC1zZXQgZm9ybWF0IGFuZCB3aXRoIGRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcgb24KPj4gdGhlIENDLgo+PiAgZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYyAgIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysr KysKPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYyB8ICAxNyArKyst LQo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgMTMwCj4+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAzIGZpbGVzIGNoYW5nZWQsIDI0NCBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2EzeHhfZ3B1LmMKPj4gaW5kZXggNmM0YTkxYS4uOTcxM2FlZjkgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYwo+PiBAQCAtMiw2ICsyLDggQEAKPj4gICAqIENv cHlyaWdodCAoQykgMjAxMyBSZWQgSGF0Cj4+ICAgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KPj4gICAqCj4+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIExpbnV4 IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4+ICsgKgo+PiAgICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQKPj4gICAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgdmVyc2lvbiAyIGFzCj4+IHB1Ymxpc2hlZCBieQo+PiAgICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4KPj4gQEAgLTQwNCw2ICs0MDYsMTA2IEBAIHN0YXRpYyB2b2lkIGEzeHhf ZHVtcChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+PiAgICAgICAgICAgICAgICAgICAgICAgICBncHVf cmVhZChncHUsIFJFR19BM1hYX1JCQk1fU1RBVFVTKSk7Cj4+ICAgICAgICAgYWRyZW5vX2R1bXAo Z3B1KTsKPj4gIH0KPj4gKy8qIFJlZ2lzdGVyIG9mZnNldCBkZWZpbmVzIGZvciBBM1hYICovCj4+ ICtzdGF0aWMgdW5zaWduZWQgaW50IGEzeHhfcmVnaXN0ZXJfb2Zmc2V0c1tSRUdfQURSRU5PX1JF R0lTVEVSX01BWF0gPSB7Cj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19D UF9ERUJVRywgUkVHX0FYWFhfQ1BfREVCVUcpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5F KFJFR19BRFJFTk9fQ1BfTUVfUkFNX1dBRERSLCBSRUdfQVhYWF9DUF9NRV9SQU1fV0FERFIpLAo+ PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfTUVfUkFNX0RBVEEsIFJF R19BWFhYX0NQX01FX1JBTV9EQVRBKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdf QURSRU5PX0NQX1BGUF9VQ09ERV9EQVRBLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdf QTNYWF9DUF9QRlBfVUNPREVfREFUQSksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVH X0FEUkVOT19DUF9QRlBfVUNPREVfQUREUiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkVH X0EzWFhfQ1BfUEZQX1VDT0RFX0FERFIpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJF R19BRFJFTk9fQ1BfV0ZJX1BFTkRfQ1RSLCBSRUdfQTNYWF9DUF9XRklfUEVORF9DVFIpLAo+PiAr ICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfUkJfQkFTRSwgUkVHX0FYWFhf Q1BfUkJfQkFTRSksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9S Ql9SUFRSX0FERFIsIFJFR19BWFhYX0NQX1JCX1JQVFJfQUREUiksCj4+ICsgICAgICAgUkVHX0FE UkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9SQl9SUFRSLCBSRUdfQVhYWF9DUF9SQl9SUFRSKSwK Pj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX0NQX1JCX1dQVFIsIFJFR19B WFhYX0NQX1JCX1dQVFIpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9f Q1BfUFJPVEVDVF9DVFJMLCBSRUdfQTNYWF9DUF9QUk9URUNUX0NUUkwpLAo+PiArICAgICAgIFJF R19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfTUVfQ05UTCwgUkVHX0FYWFhfQ1BfTUVfQ05U TCksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9SQl9DTlRMLCBS RUdfQVhYWF9DUF9SQl9DTlRMKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURS RU5PX0NQX0lCMV9CQVNFLCBSRUdfQTNYWF9DUF9JQjFfQkFTRSksCj4+ICsgICAgICAgUkVHX0FE UkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9JQjFfQlVGU1osIFJFR19BM1hYX0NQX0lCMV9CVUZT WiksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9JQjJfQkFTRSwg UkVHX0EzWFhfQ1BfSUIyX0JBU0UpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19B RFJFTk9fQ1BfSUIyX0JVRlNaLCBSRUdfQTNYWF9DUF9JQjJfQlVGU1opLAo+PiArICAgICAgIFJF R19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfVElNRVNUQU1QLCBSRUdfQVhYWF9DUF9TQ1JB VENIX1JFRzApLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfTUVf UkFNX1JBRERSLCBSRUdfQVhYWF9DUF9NRV9SQU1fUkFERFIpLAo+PiArICAgICAgIFJFR19BRFJF Tk9fREVGSU5FKFJFR19BRFJFTk9fU0NSQVRDSF9BRERSLCBSRUdfQVhYWF9TQ1JBVENIX0FERFIp LAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fU0NSQVRDSF9VTVNLLCBS RUdfQVhYWF9TQ1JBVENIX1VNU0spLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19B RFJFTk9fQ1BfUk9RX0FERFIsIFJFR19BM1hYX0NQX1JPUV9BRERSKSwKPj4gKyAgICAgICBSRUdf QURSRU5PX0RFRklORShSRUdfQURSRU5PX0NQX1JPUV9EQVRBLCBSRUdfQTNYWF9DUF9ST1FfREFU QSksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9NRVJDSVVfQURE UiwgUkVHX0EzWFhfQ1BfTUVSQ0lVX0FERFIpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5F KFJFR19BRFJFTk9fQ1BfTUVSQ0lVX0RBVEEsIFJFR19BM1hYX0NQX01FUkNJVV9EQVRBKSwKPj4g KyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX0NQX01FUkNJVV9EQVRBMiwgUkVH X0EzWFhfQ1BfTUVSQ0lVX0RBVEEyKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdf QURSRU5PX0NQX01FUV9BRERSLCBSRUdfQTNYWF9DUF9NRVFfQUREUiksCj4+ICsgICAgICAgUkVH X0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9NRVFfREFUQSwgUkVHX0EzWFhfQ1BfTUVRX0RB VEEpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fQ1BfSFdfRkFVTFQs IFJFR19BM1hYX0NQX0hXX0ZBVUxUKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdf QURSRU5PX0NQX1BST1RFQ1RfU1RBVFVTLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdf QTNYWF9DUF9QUk9URUNUX1NUQVRVUyksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVH X0FEUkVOT19SQkJNX1NUQVRVUywgUkVHX0EzWFhfUkJCTV9TVEFUVVMpLAo+PiArICAgICAgIFJF R19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fUkJCTV9QRVJGQ1RSX0NUTCwKPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgUkVHX0EzWFhfUkJCTV9QRVJGQ1RSX0NUTCksCj4+ICsgICAgICAgUkVH X0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19SQkJNX1BFUkZDVFJfTE9BRF9DTUQwLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICBSRUdfQTNYWF9SQkJNX1BFUkZDVFJfTE9BRF9DTUQwKSwKPj4g KyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1JCQk1fUEVSRkNUUl9MT0FEX0NN RDEsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFJFR19BM1hYX1JCQk1fUEVSRkNUUl9MT0FE X0NNRDEpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fUkJCTV9QRVJG Q1RSX1BXUl8xX0xPLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdfQTNYWF9SQkJNX1BF UkZDVFJfUFdSXzFfTE8pLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9f UkJCTV9JTlRfMF9NQVNLLCBSRUdfQTNYWF9SQkJNX0lOVF8wX01BU0spLAo+PiArICAgICAgIFJF R19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fUkJCTV9JTlRfMF9TVEFUVVMsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIFJFR19BM1hYX1JCQk1fSU5UXzBfU1RBVFVTKSwKPj4gKyAgICAgICBS RUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1JCQk1fQUhCX0VSUk9SX1NUQVRVUywKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfUkJCTV9BSEJfRVJST1JfU1RBVFVTKSwKPj4g KyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1JCQk1fQUhCX0NNRCwgUkVHX0Ez WFhfUkJCTV9BSEJfQ01EKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5P X1JCQk1fSU5UX0NMRUFSX0NNRCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhf UkJCTV9JTlRfQ0xFQVJfQ01EKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURS RU5PX1JCQk1fQ0xPQ0tfQ1RMLCBSRUdfQTNYWF9SQkJNX0NMT0NLX0NUTCksCj4+ICsgICAgICAg UkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19WUENfREVCVUdfUkFNX1NFTCwKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfVlBDX1ZQQ19ERUJVR19SQU1fU0VMKSwKPj4gKyAg ICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1ZQQ19ERUJVR19SQU1fUkVBRCwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfVlBDX1ZQQ19ERUJVR19SQU1fUkVBRCks Cj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19WU0NfUElQRV9EQVRBX0FE RFJFU1NfMCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfVlNDX1BJUEVfREFU QV9BRERSRVNTXzApLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fVlND X1BJUEVfREFUQV9MRU5HVEhfNywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhf VlNDX1BJUEVfREFUQV9MRU5HVEhfNyksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVH X0FEUkVOT19WU0NfU0laRV9BRERSRVNTLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdf QTNYWF9WU0NfU0laRV9BRERSRVNTKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdf QURSRU5PX1ZGRF9DT05UUk9MXzAsIFJFR19BM1hYX1ZGRF9DT05UUk9MXzApLAo+PiArICAgICAg IFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fVkZEX0ZFVENIX0lOU1RSXzBfMCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfVkZEX0ZFVENIX0lOU1RSXzBfMCksCj4+ICsg ICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19WRkRfRkVUQ0hfSU5TVFJfMV9GLAo+ PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdfQTNYWF9WRkRfRkVUQ0hfSU5TVFJfMV9GKSwK Pj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1ZGRF9JTkRFWF9NQVgsIFJF R19BM1hYX1ZGRF9JTkRFWF9NQVgpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19B RFJFTk9fU1BfVlNfUFZUX01FTV9BRERSX1JFRywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg UkVHX0EzWFhfU1BfVlNfUFZUX01FTV9BRERSX1JFRyksCj4+ICsgICAgICAgUkVHX0FEUkVOT19E RUZJTkUoUkVHX0FEUkVOT19TUF9GU19QVlRfTUVNX0FERFJfUkVHLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICBSRUdfQTNYWF9TUF9GU19QVlRfTUVNX0FERFJfUkVHKSwKPj4gKyAgICAgICBS RUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1NQX1ZTX09CSl9TVEFSVF9SRUcsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIFJFR19BM1hYX1NQX1ZTX09CSl9TVEFSVF9SRUcpLAo+PiArICAg ICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fU1BfRlNfT0JKX1NUQVJUX1JFRywKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfU1BfRlNfT0JKX1NUQVJUX1JFRyksCj4+ ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19QQV9TQ19BQV9DT05GSUcsIFJF R19BM1hYX1BBX1NDX0FBX0NPTkZJRyksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVH X0FEUkVOT19SQkJNX1BNX09WRVJSSURFMiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgUkVH X0EzWFhfUkJCTV9QTV9PVkVSUklERTIpLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJF R19BRFJFTk9fU0NSQVRDSF9SRUcyLCBSRUdfQVhYWF9DUF9TQ1JBVENIX1JFRzIpLAo+PiArICAg ICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fU1FfR1BSX01BTkFHRU1FTlQsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIFJFR19BM1hYX1NRX0dQUl9NQU5BR0VNRU5UKSwKPj4gKyAg ICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURSRU5PX1NRX0lOU1RfU1RPUkVfTUFOQUdNRU5U LAo+PiArICAgICAgICAgICAgICAgICAgICAgICBSRUdfQTNYWF9TUV9JTlNUX1NUT1JFX01BTkFH TUVOVCksCj4+ICsgICAgICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19UUDBfQ0hJQ0tF TiwgUkVHX0EzWFhfVFAwX0NISUNLRU4pLAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJF R19BRFJFTk9fUkJCTV9SQkJNX0NUTCwgUkVHX0EzWFhfUkJCTV9SQkJNX0NUTCksCj4+ICsgICAg ICAgUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19SQkJNX1NXX1JFU0VUX0NNRCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfUkJCTV9TV19SRVNFVF9DTUQpLAo+PiArICAg ICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fVUNIRV9JTlZBTElEQVRFMCwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgUkVHX0EzWFhfVUNIRV9DQUNIRV9JTlZBTElEQVRFMF9SRUcp LAo+PiArICAgICAgIFJFR19BRFJFTk9fREVGSU5FKFJFR19BRFJFTk9fUkJCTV9QRVJGQ1RSX0xP QURfVkFMVUVfTE8sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFJFR19BM1hYX1JCQk1fUEVS RkNUUl9MT0FEX1ZBTFVFX0xPKSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0RFRklORShSRUdfQURS RU5PX1JCQk1fUEVSRkNUUl9MT0FEX1ZBTFVFX0hJLAo+PiArICAgICAgICAgICAgICAgICAgICAg ICBSRUdfQTNYWF9SQkJNX1BFUkZDVFJfTE9BRF9WQUxVRV9ISSksCj4+ICt9Owo+PiArCj4+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19yZWdfb2Zmc2V0cyByZWdfb2Zmc2V0cyA9IHsKPj4g KyAgICAgICAub2Zmc2V0cyA9IGEzeHhfcmVnaXN0ZXJfb2Zmc2V0cywKPj4gK307Cj4+Cj4+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19ncHVfZnVuY3MgZnVuY3MgPSB7Cj4+ICAgICAgICAg LmJhc2UgPSB7Cj4+IEBAIC00NjEsNiArNTYzLDcgQEAgc3RydWN0IG1zbV9ncHUgKmEzeHhfZ3B1 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gICAgICAgICBncHUtPm51bV9wZXJmY250 cnMgPSBBUlJBWV9TSVpFKHBlcmZjbnRycyk7Cj4+Cj4+ICAgICAgICAgYWRyZW5vX2dwdS0+cmVn aXN0ZXJzID0gYTN4eF9yZWdpc3RlcnM7Cj4+ICsgICAgICAgYWRyZW5vX2dwdS0+cmVnX29mZnNl dHMgPSAmcmVnX29mZnNldHM7Cj4+Cj4+ICAgICAgICAgcmV0ID0gYWRyZW5vX2dwdV9pbml0KGRl diwgcGRldiwgYWRyZW5vX2dwdSwgJmZ1bmNzKTsKPj4gICAgICAgICBpZiAocmV0KQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCj4+IGIvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCj4+IGluZGV4IGE3NDc5NGIuLjgy NjE5YjEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19n cHUuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKPj4g QEAgLTIsNiArMiw4IEBACj4+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgUmVkIEhhdAo+PiAgICog QXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+ICAgKgo+PiArICogQ29w eXJpZ2h0IChjKSAyMDE0IFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk Lgo+PiArICoKPj4gICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4+ICAgKiB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+PiBwdWJsaXNoZWQg YnkKPj4gICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+IEBAIC01NSwxOSArNTcs MjEgQEAgaW50IGFkcmVub19od19pbml0KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4+ICAgICAgICAg REJHKCIlcyIsIGdwdS0+bmFtZSk7Cj4+Cj4+ICAgICAgICAgLyogU2V0dXAgUkVHX0NQX1JCX0NO VEw6ICovCj4+IC0gICAgICAgZ3B1X3dyaXRlKGdwdSwgUkVHX0FYWFhfQ1BfUkJfQ05UTCwKPj4g KyAgICAgICBhZHJlbm9fZ3B1X3dyaXRlKGFkcmVub19ncHUsIFJFR19BRFJFTk9fQ1BfUkJfQ05U TCwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgLyogc2l6ZSBpcyBsb2cyKHF1YWQtd29yZHMp OiAqLwo+PiAgICAgICAgICAgICAgICAgICAgICAgICBBWFhYX0NQX1JCX0NOVExfQlVGU1ooaWxv ZzIoZ3B1LT5yYi0+c2l6ZSAvIDgpKSB8Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgIEFYWFhf Q1BfUkJfQ05UTF9CTEtTWihpbG9nMihSQl9CTEtTSVpFIC8gOCkpKTsKPj4KPj4gICAgICAgICAv KiBTZXR1cCByaW5nYnVmZmVyIGFkZHJlc3M6ICovCj4+IC0gICAgICAgZ3B1X3dyaXRlKGdwdSwg UkVHX0FYWFhfQ1BfUkJfQkFTRSwgZ3B1LT5yYl9pb3ZhKTsKPj4gLSAgICAgICBncHVfd3JpdGUo Z3B1LCBSRUdfQVhYWF9DUF9SQl9SUFRSX0FERFIsIHJibWVtcHRyKGFkcmVub19ncHUsIHJwdHIp KTsKPj4gKyAgICAgICBhZHJlbm9fZ3B1X3dyaXRlKGFkcmVub19ncHUsIFJFR19BRFJFTk9fQ1Bf UkJfQkFTRSwgZ3B1LT5yYl9pb3ZhKTsKPj4gKyAgICAgICBhZHJlbm9fZ3B1X3dyaXRlKGFkcmVu b19ncHUsIFJFR19BRFJFTk9fQ1BfUkJfUlBUUl9BRERSLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICByYm1lbXB0cihhZHJlbm9fZ3B1LCBycHRyKSk7Cj4+Cj4+ICAgICAgICAgLyogU2V0dXAg c2NyYXRjaC90aW1lc3RhbXA6ICovCj4+IC0gICAgICAgZ3B1X3dyaXRlKGdwdSwgUkVHX0FYWFhf U0NSQVRDSF9BRERSLCByYm1lbXB0cihhZHJlbm9fZ3B1LCBmZW5jZSkpOwo+PiArICAgICAgIGFk cmVub19ncHVfd3JpdGUoYWRyZW5vX2dwdSwgUkVHX0FEUkVOT19TQ1JBVENIX0FERFIsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJibWVtcHRyKGFkcmVub19ncHUsIGZlbmNlKSk7Cj4+Cj4+ IC0gICAgICAgZ3B1X3dyaXRlKGdwdSwgUkVHX0FYWFhfU0NSQVRDSF9VTVNLLCAweDEpOwo+PiAr ICAgICAgIGFkcmVub19ncHVfd3JpdGUoYWRyZW5vX2dwdSwgUkVHX0FEUkVOT19TQ1JBVENIX1VN U0ssIDB4MSk7Cj4+Cj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICB9Cj4+IEBAIC0xODAsMTIgKzE4 NCwxMyBAQCBpbnQgYWRyZW5vX3N1Ym1pdChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QKPj4g bXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwKPj4KPj4gIHZvaWQgYWRyZW5vX2ZsdXNoKHN0cnVjdCBt c21fZ3B1ICpncHUpCj4+ICB7Cj4+ICsgICAgICAgc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19n cHUgPSB0b19hZHJlbm9fZ3B1KGdwdSk7Cj4+ICAgICAgICAgdWludDMyX3Qgd3B0ciA9IGdldF93 cHRyKGdwdS0+cmIpOwo+Pgo+PiAgICAgICAgIC8qIGVuc3VyZSB3cml0ZXMgdG8gcmluZ2J1ZmZl ciBoYXZlIGhpdCBzeXN0ZW0gbWVtb3J5OiAqLwo+PiAgICAgICAgIG1iKCk7Cj4+Cj4+IC0gICAg ICAgZ3B1X3dyaXRlKGdwdSwgUkVHX0FYWFhfQ1BfUkJfV1BUUiwgd3B0cik7Cj4+ICsgICAgICAg YWRyZW5vX2dwdV93cml0ZShhZHJlbm9fZ3B1LCBSRUdfQURSRU5PX0NQX1JCX1dQVFIsIHdwdHIp Owo+PiAgfQo+Pgo+PiAgdm9pZCBhZHJlbm9faWRsZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4+IGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oCj4+IGluZGV4IDUyZjA1MTUu LmVjODRkNzkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVu b19ncHUuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgK Pj4gQEAgLTIsNiArMiw4IEBACj4+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgUmVkIEhhdAo+PiAg ICogQXV0aG9yOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+ICAgKgo+PiArICog Q29weXJpZ2h0IChjKSAyMDE0IFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgo+PiArICoKPj4gICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4+ICAgKiB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+PiBwdWJsaXNo ZWQgYnkKPj4gICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+IEBAIC0yNSw2ICsy Nyw5NCBAQAo+PiAgI2luY2x1ZGUgImFkcmVub19jb21tb24ueG1sLmgiCj4+ICAjaW5jbHVkZSAi YWRyZW5vX3BtNC54bWwuaCIKPj4KPj4gKyNkZWZpbmUgUkVHX0FEUkVOT19VTlVTRUQgICAgICAw eEZGRkZGRkZGCj4gCj4gc28sIHVuaXRpdGlhbGl6ZWQgdGFibGUgZWxlbWVudHMgd2lsbCBiZSB6 ZXJvLCBub3QgMHhmZmZmZmZmZi4gIEkKPiB0aGluayBtYXliZSBpdCB3b3VsZCBiZSBiZXR0ZXIg dG8gZG8gc29tZXRoaW5nIGxpa2U6Cj4gCj4gI2RlZmluZSBSRUdfQURSRU5PX1VOVVNFRCAgICAg IDB4RkZGRkZGRkYKPiAjZGVmaW5lIFJFR19BRFJFTk9fREVGSU5FKF9vZmZzZXQsIF9yZWcpIFtf b2Zmc2V0XSA9IChfcmVnKSArIDEKPiAKPiAoYW5kIHRoZW4gc3VidHJhY3Qgb2ZmIHRoZSArMSBp biB0aGUgcmVhZC93cml0ZSBoZWxwZXIgZnhucykKPiAKPiBBbHNvLCB0aGUgZXh0cmEgJ3N0cnVj dCBhZHJlbm9fcmVnX29mZnNldHMnIHNlZW1zIGtpbmRhIHBvaW50bGVzcywgc28KPiBJIHRoaW5r IHdlIGNhbiBkcm9wIHRoYXQgYW5kIGp1c3QgcHV0IHRoZSBhcnJheSBwdHIgZGlyZWN0bHkgaW4K PiAnc3RydWN0IGFkcmVub19ncHUnLgo+IAo+IEJSLAo+IC1SCkFncmVlZC4KPiAKPj4gKyNkZWZp bmUgUkVHX0FEUkVOT19ERUZJTkUoX29mZnNldCwgX3JlZykgW19vZmZzZXRdID0gX3JlZwo+PiAr LyoqCj4+ICsgKiBhZHJlbm9fcmVnczogTGlzdCBvZiByZWdpc3RlcnMgdGhhdCBhcmUgdXNlZCBp biBhY3Jvc3MgYWxsCj4+ICsgKiAzRCBkZXZpY2VzLiBFYWNoIGRldmljZSB0eXBlIGhhcyBkaWZm ZXJlbnQgb2Zmc2V0IHZhbHVlIGZvciB0aGUgc2FtZQo+PiArICogcmVnaXN0ZXIsIHNvIGFuIGFy cmF5IG9mIHJlZ2lzdGVyIG9mZnNldHMgYXJlIGRlY2xhcmVkIGZvciBldmVyeSBkZXZpY2UKPj4g KyAqIGFuZCBhcmUgaW5kZXhlZCBieSB0aGUgZW51bWVyYXRpb24gdmFsdWVzIGRlZmluZWQgaW4g dGhpcyBlbnVtCj4+ICsgKi8KPj4gK2VudW0gYWRyZW5vX3JlZ3Mgewo+PiArICAgICAgIFJFR19B RFJFTk9fQ1BfREVCVUcsCj4+ICsgICAgICAgUkVHX0FEUkVOT19DUF9NRV9SQU1fV0FERFIsCj4+ ICsgICAgICAgUkVHX0FEUkVOT19DUF9NRV9SQU1fREFUQSwKPj4gKyAgICAgICBSRUdfQURSRU5P X0NQX1BGUF9VQ09ERV9EQVRBLAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfUEZQX1VDT0RFX0FE RFIsCj4+ICsgICAgICAgUkVHX0FEUkVOT19DUF9XRklfUEVORF9DVFIsCj4+ICsgICAgICAgUkVH X0FEUkVOT19DUF9SQl9CQVNFLAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfUkJfUlBUUl9BRERS LAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfUkJfUlBUUiwKPj4gKyAgICAgICBSRUdfQURSRU5P X0NQX1JCX1dQVFIsCj4+ICsgICAgICAgUkVHX0FEUkVOT19DUF9QUk9URUNUX0NUUkwsCj4+ICsg ICAgICAgUkVHX0FEUkVOT19DUF9NRV9DTlRMLAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfUkJf Q05UTCwKPj4gKyAgICAgICBSRUdfQURSRU5PX0NQX0lCMV9CQVNFLAo+PiArICAgICAgIFJFR19B RFJFTk9fQ1BfSUIxX0JVRlNaLAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfSUIyX0JBU0UsCj4+ ICsgICAgICAgUkVHX0FEUkVOT19DUF9JQjJfQlVGU1osCj4+ICsgICAgICAgUkVHX0FEUkVOT19D UF9USU1FU1RBTVAsCj4+ICsgICAgICAgUkVHX0FEUkVOT19DUF9NRV9SQU1fUkFERFIsCj4+ICsg ICAgICAgUkVHX0FEUkVOT19DUF9ST1FfQUREUiwKPj4gKyAgICAgICBSRUdfQURSRU5PX0NQX1JP UV9EQVRBLAo+PiArICAgICAgIFJFR19BRFJFTk9fQ1BfTUVSQ0lVX0FERFIsCj4+ICsgICAgICAg UkVHX0FEUkVOT19DUF9NRVJDSVVfREFUQSwKPj4gKyAgICAgICBSRUdfQURSRU5PX0NQX01FUkNJ VV9EQVRBMiwKPj4gKyAgICAgICBSRUdfQURSRU5PX0NQX01FUV9BRERSLAo+PiArICAgICAgIFJF R19BRFJFTk9fQ1BfTUVRX0RBVEEsCj4+ICsgICAgICAgUkVHX0FEUkVOT19DUF9IV19GQVVMVCwK Pj4gKyAgICAgICBSRUdfQURSRU5PX0NQX1BST1RFQ1RfU1RBVFVTLAo+PiArICAgICAgIFJFR19B RFJFTk9fU0NSQVRDSF9BRERSLAo+PiArICAgICAgIFJFR19BRFJFTk9fU0NSQVRDSF9VTVNLLAo+ PiArICAgICAgIFJFR19BRFJFTk9fU0NSQVRDSF9SRUcyLAo+PiArICAgICAgIFJFR19BRFJFTk9f UkJCTV9TVEFUVVMsCj4+ICsgICAgICAgUkVHX0FEUkVOT19SQkJNX1BFUkZDVFJfQ1RMLAo+PiAr ICAgICAgIFJFR19BRFJFTk9fUkJCTV9QRVJGQ1RSX0xPQURfQ01EMCwKPj4gKyAgICAgICBSRUdf QURSRU5PX1JCQk1fUEVSRkNUUl9MT0FEX0NNRDEsCj4+ICsgICAgICAgUkVHX0FEUkVOT19SQkJN X1BFUkZDVFJfTE9BRF9DTUQyLAo+PiArICAgICAgIFJFR19BRFJFTk9fUkJCTV9QRVJGQ1RSX1BX Ul8xX0xPLAo+PiArICAgICAgIFJFR19BRFJFTk9fUkJCTV9JTlRfMF9NQVNLLAo+PiArICAgICAg IFJFR19BRFJFTk9fUkJCTV9JTlRfMF9TVEFUVVMsCj4+ICsgICAgICAgUkVHX0FEUkVOT19SQkJN X0FIQl9FUlJPUl9TVEFUVVMsCj4+ICsgICAgICAgUkVHX0FEUkVOT19SQkJNX1BNX09WRVJSSURF MiwKPj4gKyAgICAgICBSRUdfQURSRU5PX1JCQk1fQUhCX0NNRCwKPj4gKyAgICAgICBSRUdfQURS RU5PX1JCQk1fSU5UX0NMRUFSX0NNRCwKPj4gKyAgICAgICBSRUdfQURSRU5PX1JCQk1fU1dfUkVT RVRfQ01ELAo+PiArICAgICAgIFJFR19BRFJFTk9fUkJCTV9DTE9DS19DVEwsCj4+ICsgICAgICAg UkVHX0FEUkVOT19SQkJNX0FIQl9NRV9TUExJVF9TVEFUVVMsCj4+ICsgICAgICAgUkVHX0FEUkVO T19SQkJNX0FIQl9QRlBfU1BMSVRfU1RBVFVTLAo+PiArICAgICAgIFJFR19BRFJFTk9fVlBDX0RF QlVHX1JBTV9TRUwsCj4+ICsgICAgICAgUkVHX0FEUkVOT19WUENfREVCVUdfUkFNX1JFQUQsCj4+ ICsgICAgICAgUkVHX0FEUkVOT19WU0NfUElQRV9EQVRBX0FERFJFU1NfMCwKPj4gKyAgICAgICBS RUdfQURSRU5PX1ZTQ19QSVBFX0RBVEFfTEVOR1RIXzcsCj4+ICsgICAgICAgUkVHX0FEUkVOT19W U0NfU0laRV9BRERSRVNTLAo+PiArICAgICAgIFJFR19BRFJFTk9fVkZEX0NPTlRST0xfMCwKPj4g KyAgICAgICBSRUdfQURSRU5PX1ZGRF9GRVRDSF9JTlNUUl8wXzAsCj4+ICsgICAgICAgUkVHX0FE UkVOT19WRkRfRkVUQ0hfSU5TVFJfMV9GLAo+PiArICAgICAgIFJFR19BRFJFTk9fVkZEX0lOREVY X01BWCwKPj4gKyAgICAgICBSRUdfQURSRU5PX1NQX1ZTX1BWVF9NRU1fQUREUl9SRUcsCj4+ICsg ICAgICAgUkVHX0FEUkVOT19TUF9GU19QVlRfTUVNX0FERFJfUkVHLAo+PiArICAgICAgIFJFR19B RFJFTk9fU1BfVlNfT0JKX1NUQVJUX1JFRywKPj4gKyAgICAgICBSRUdfQURSRU5PX1NQX0ZTX09C Sl9TVEFSVF9SRUcsCj4+ICsgICAgICAgUkVHX0FEUkVOT19QQV9TQ19BQV9DT05GSUcsCj4+ICsg ICAgICAgUkVHX0FEUkVOT19TUV9HUFJfTUFOQUdFTUVOVCwKPj4gKyAgICAgICBSRUdfQURSRU5P X1NRX0lOU1RfU1RPUkVfTUFOQUdNRU5ULAo+PiArICAgICAgIFJFR19BRFJFTk9fVFAwX0NISUNL RU4sCj4+ICsgICAgICAgUkVHX0FEUkVOT19SQkJNX1JCQk1fQ1RMLAo+PiArICAgICAgIFJFR19B RFJFTk9fVUNIRV9JTlZBTElEQVRFMCwKPj4gKyAgICAgICBSRUdfQURSRU5PX1JCQk1fUEVSRkNU Ul9MT0FEX1ZBTFVFX0xPLAo+PiArICAgICAgIFJFR19BRFJFTk9fUkJCTV9QRVJGQ1RSX0xPQURf VkFMVUVfSEksCj4+ICsgICAgICAgUkVHX0FEUkVOT19SRUdJU1RFUl9NQVgsCj4+ICt9Owo+PiAr Cj4+ICsvKioKPj4gKyAqIGFkcmVub19yZWdfb2Zmc2V0czogSG9sZHMgYXJyYXkgb2YgcmVnaXN0 ZXIgb2Zmc2V0cwo+PiArICogQG9mZnNldHM6IE9mZnNldCBhcnJheSBvZiBzaXplIGRlZmluZWQg YnkgZW51bSBhZHJlbm9fcmVncwo+PiArICovCj4+ICtzdHJ1Y3QgYWRyZW5vX3JlZ19vZmZzZXRz IHsKPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgKmNvbnN0IG9mZnNldHM7Cj4+ICt9Owo+PiArCj4+ ICBzdHJ1Y3QgYWRyZW5vX3JldiB7Cj4+ICAgICAgICAgdWludDhfdCAgY29yZTsKPj4gICAgICAg ICB1aW50OF90ICBtYWpvcjsKPj4gQEAgLTc2LDYgKzE2NiwxMyBAQCBzdHJ1Y3QgYWRyZW5vX2dw dSB7Cj4+ICAgICAgICAgc3RydWN0IGFkcmVub19yYm1lbXB0cnMgKm1lbXB0cnM7Cj4+ICAgICAg ICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICptZW1wdHJzX2JvOwo+PiAgICAgICAgIHVpbnQzMl90 IG1lbXB0cnNfaW92YTsKPj4gKwo+PiArICAgICAgIC8qCj4+ICsgICAgICAgICogUmVnaXN0ZXIg b2Zmc2V0cyBhcmUgZGlmZmVyZW50IGJldHdlZW4gc29tZSBHUFVzLgo+PiArICAgICAgICAqIEdQ VSBzcGVjaWZpYyBvZmZzZXRzIHdpbGwgYmUgZXhwb3J0ZWQgYnkgR1BVIHNwZWNpZmljCj4+ICsg ICAgICAgICogY29kZSAoYTN4eF9ncHUuYykgYW5kIHN0b3JlZCBpbiB0aGlzIGNvbW1vbiBsb2Nh dGlvbi4KPj4gKyAgICAgICAgKi8KPj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgYWRyZW5vX3JlZ19v ZmZzZXRzICpyZWdfb2Zmc2V0czsKPj4gIH07Cj4+ICAjZGVmaW5lIHRvX2FkcmVub19ncHUoeCkg Y29udGFpbmVyX29mKHgsIHN0cnVjdCBhZHJlbm9fZ3B1LCBiYXNlKQo+Pgo+PiBAQCAtMTcxLDUg KzI2OCwzOCBAQCBPVVRfUEtUMyhzdHJ1Y3QgbXNtX3JpbmdidWZmZXIgKnJpbmcsIHVpbnQ4X3QK Pj4gb3Bjb2RlLCB1aW50MTZfdCBjbnQpCj4+ICAgICAgICAgT1VUX1JJTkcocmluZywgQ1BfVFlQ RTNfUEtUIHwgKChjbnQtMSkgPDwgMTYpIHwgKChvcGNvZGUgJiAweEZGKSA8PCA4KSk7Cj4+ICB9 Cj4+Cj4+ICsvKgo+PiArICogYWRyZW5vX2NoZWNrcmVnX29mZigpIC0gQ2hlY2tzIHRoZSB2YWxp ZGl0eSBvZiBhIHJlZ2lzdGVyIGVudW0KPj4gKyAqIEBncHU6ICAgICAgICAgICAgICAgUG9pbnRl ciB0byBzdHJ1Y3QgYWRyZW5vX2dwdQo+PiArICogQG9mZnNldF9uYW1lOiAgICAgICBUaGUgcmVn aXN0ZXIgZW51bSB0aGF0IGlzIGNoZWNrZWQKPj4gKyAqLwo+PiArc3RhdGljIGlubGluZSBib29s IGFkcmVub19yZWdfY2hlY2soc3RydWN0IGFkcmVub19ncHUgKmdwdSwKPj4gKyAgICAgICAgICAg ICAgIGVudW0gYWRyZW5vX3JlZ3Mgb2Zmc2V0X25hbWUpCj4+ICt7Cj4+ICsgICAgICAgaWYgKG9m ZnNldF9uYW1lID49IFJFR19BRFJFTk9fUkVHSVNURVJfTUFYIHx8Cj4+ICsgICAgICAgICAgICAg ICBSRUdfQURSRU5PX1VOVVNFRCA9PQo+PiArICAgICAgICAgICAgICAgICAgICAgICBncHUtPnJl Z19vZmZzZXRzLT5vZmZzZXRzW29mZnNldF9uYW1lXSkgewo+PiArICAgICAgICAgICAgICAgQlVH KCk7Cj4+ICsgICAgICAgfQo+PiArICAgICAgIHJldHVybiB0cnVlOwo+PiArfQo+PiArCj4+ICtz dGF0aWMgaW5saW5lIHUzMiBhZHJlbm9fZ3B1X3JlYWQoc3RydWN0IGFkcmVub19ncHUgKmdwdSwK Pj4gKyAgICAgICAgICAgICAgIGVudW0gYWRyZW5vX3JlZ3Mgb2Zmc2V0X25hbWUpCj4+ICt7Cj4+ ICsgICAgICAgdTMyIHJlZyA9IGdwdS0+cmVnX29mZnNldHMtPm9mZnNldHNbb2Zmc2V0X25hbWVd Owo+PiArICAgICAgIHUzMiB2YWwgPSAwOwo+PiArICAgICAgIGlmKGFkcmVub19yZWdfY2hlY2so Z3B1LG9mZnNldF9uYW1lKSkKPj4gKyAgICAgICAgICAgICAgIHZhbCA9IGdwdV9yZWFkKCZncHUt PmJhc2UscmVnKTsKPj4gKyAgICAgICByZXR1cm4gdmFsOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW5saW5lIHZvaWQgYWRyZW5vX2dwdV93cml0ZShzdHJ1Y3QgYWRyZW5vX2dwdSAqZ3B1LAo+PiAr ICAgICAgICAgICAgICAgZW51bSBhZHJlbm9fcmVncyBvZmZzZXRfbmFtZSwgdTMyIGRhdGEpCj4+ ICt7Cj4+ICsgICAgICAgdTMyIHJlZyA9IGdwdS0+cmVnX29mZnNldHMtPm9mZnNldHNbb2Zmc2V0 X25hbWVdOwo+PiArICAgICAgIGlmKGFkcmVub19yZWdfY2hlY2soZ3B1LCBvZmZzZXRfbmFtZSkp Cj4+ICsgICAgICAgICAgICAgICBncHVfd3JpdGUoJmdwdS0+YmFzZSwgcmVnLCBkYXRhKTsKPj4g K30KPj4KPj4gICNlbmRpZiAvKiBfX0FEUkVOT19HUFVfSF9fICovCj4+IC0tCj4+ICAxLjguNS4y Cj4+Cj4+IC0tCj4+IFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuCj4+IFRoZSBRdWFs Y29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJv cmEgRm9ydW0sCj4+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKCi0t IApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLgpUaGUgUXVhbGNvbW0gSW5ub3ZhdGlv biBDZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLAphIExp bnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==