From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sinclair Yeh Subject: Re: [PATCH v2] drm: move allocation out of drm_get_format_name() Date: Mon, 7 Nov 2016 10:12:21 -0800 Message-ID: <20161107181221.GA15287@promb-2n-dhcp72.eng.vmware.com> References: <20161107004713.GA26032@engestrom.ch> <20161107004821.25369-1-eric@engestrom.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20161107004821.25369-1-eric@engestrom.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Eric Engestrom Cc: David Airlie , dri-devel@lists.freedesktop.org, Wei Yongjun , Daniel Vetter , Flora Cui , Gustavo Padovan , Tom St Denis , Chunming Zhou , Thomas Hellstrom , Laurent Pinchart , Xinliang Liu , Xinwei Kong , VMware Graphics , Vitaly Prosyak , Eric Engestrom , Alexandre Demers , intel-gfx@lists.freedesktop.org, Emily Deng , Colin Ian King , Junwei Zhang , Michel =?iso-8859-1?Q?D=E4nzer?= List-Id: dri-devel@lists.freedesktop.org VGhvbWFzIGhhcyBhbHJlYWR5IGFja2VkIHRoZSBlYXJsaWVyIHZlcnNpb24sIGJ1dCBpbiBjYXNl IHlvdSBuZWVkCml0IGZvciB0aGlzIG9uZSwgdG9vLgoKdm13Z2Z4IHBvcnRpb246ICBBY2tlZC1i eTogU2luY2xhaXIgWWVoIDxzeWVoQHZtd2FyZS5jb20+CgpPbiBNb24sIE5vdiAwNywgMjAxNiBh dCAxMjo0ODowOUFNICswMDAwLCBFcmljIEVuZ2VzdHJvbSB3cm90ZToKPiBGaXhlczogOTA4NDRm MDAwNDllOWY0MjU3M2ZkMzFkN2MzMmU4ZmQzMWQzZmQwNwo+IAo+ICAgICBkcm06IG1ha2UgZHJt X2dldF9mb3JtYXRfbmFtZSB0aHJlYWQtc2FmZQo+IAo+ICAgICBTaWduZWQtb2ZmLWJ5OiBFcmlj IEVuZ2VzdHJvbSA8ZXJpY0Blbmdlc3Ryb20uY2g+Cj4gICAgIFtkYW52ZXQ6IENsYXJpZnkgdGhh dCB0aGUgcmV0dXJuZWQgcG9pbnRlciBtdXN0IGJlIGZyZWVkIHdpdGgKPiAgICAga2ZyZWUoKS5d Cj4gICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+Cj4gCj4gQ2M6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KPiBDYzogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IFN1Z2dlc3RlZC1ieTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2Zm LWJ5OiBFcmljIEVuZ2VzdHJvbSA8ZXJpY0Blbmdlc3Ryb20uY2g+Cj4gLS0tCj4gCj4gdjI6IHVz ZSBzaW5nbGUtZmllbGQgc3RydWN0IGluc3RlYWQgb2YgdHlwZWRlZiB0byBsZXQgdGhlIGNvbXBp bGVyCj4gICAgIGVuZm9yY2UgdGhlIHR5cGUgKENocmlzdGlhbiBLw7ZuaWcpCj4gCj4gLS0tCj4g IGluY2x1ZGUvZHJtL2RybV9mb3VyY2MuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysr KystCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgICAgICAgICAgICAgICAgICAgIHwg MTQgKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jICAg ICAgICAgIHwgIDcgKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8w LmMgICAgICAgICAgfCAgNyArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djZfMC5jICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92OF8wLmMgICAgICAgICAgIHwgIDcgKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyAgICAgICAgICAgICAgICAgICAgfCAgNyArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2NydGMuYyAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fZnJhbWVidWZmZXIuYyAgICAgICAgICAgICAgIHwgIDcgKysrLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jICAgICAgICAgICAgfCAgNyArKystLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jIHwgIDcgKyst LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgICAgfCAx MCArKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgICAg ICAgfCAgOCArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAg ICAgICAgICB8IDQxICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgICAgICAgICAgfCAxNCArKysrLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgICAgICAgICAgICAgfCAgMyArLQo+ICAxNyBm aWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZvdXJj Yy5oCj4gaW5kZXggZGMwYWFmYS4uNGIwM2NhMCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fZm91cmNjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZm91cmNjLmgKPiBAQCAtNDUsNiAr NDUsMTQgQEAgc3RydWN0IGRybV9mb3JtYXRfaW5mbyB7Cj4gIAl1OCB2c3ViOwo+ICB9Owo+ICAK PiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIC0gbmFtZSBvZiBhIERSTSBm b3JtYXQKPiArICogQHN0cjogc3RyaW5nIGJ1ZmZlciBjb250YWluaW5nIHRoZSBmb3JtYXQgbmFt ZQo+ICsgKi8KPiArc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgewo+ICsJY2hhciBzdHJbMzJd Owo+ICt9Owo+ICsKPiAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqX19kcm1fZm9ybWF0 X2luZm8odTMyIGZvcm1hdCk7Cj4gIGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmRybV9m b3JtYXRfaW5mbyh1MzIgZm9ybWF0KTsKPiAgdWludDMyX3QgZHJtX21vZGVfbGVnYWN5X2ZiX2Zv cm1hdCh1aW50MzJfdCBicHAsIHVpbnQzMl90IGRlcHRoKTsKPiBAQCAtNTQsNiArNjIsNiBAQCBp bnQgZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyh1aW50MzJfdCBmb3JtYXQpOwo+ ICBpbnQgZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyh1aW50MzJfdCBmb3JtYXQp Owo+ICBpbnQgZHJtX2Zvcm1hdF9wbGFuZV93aWR0aChpbnQgd2lkdGgsIHVpbnQzMl90IGZvcm1h dCwgaW50IHBsYW5lKTsKPiAgaW50IGRybV9mb3JtYXRfcGxhbmVfaGVpZ2h0KGludCBoZWlnaHQs IHVpbnQzMl90IGZvcm1hdCwgaW50IHBsYW5lKTsKPiAtY2hhciAqZHJtX2dldF9mb3JtYXRfbmFt ZSh1aW50MzJfdCBmb3JtYXQpIF9fbWFsbG9jOwo+ICtjaGFyICpkcm1fZ2V0X2Zvcm1hdF9uYW1l KHVpbnQzMl90IGZvcm1hdCwgc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgKmJ1Zik7Cj4gIAo+ ICAjZW5kaWYgLyogX19EUk1fRk9VUkNDX0hfXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+IGluZGV4 IGNiYjhiNzcuLjk5YjBiNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3Vy Y2MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKPiBAQCAtNzksMTcgKzc5 LDEzIEBAIHVpbnQzMl90IGRybV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQodWludDMyX3QgYnBwLCB1 aW50MzJfdCBkZXB0aCkKPiAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0 KTsKPiAgCj4gIC8qKgo+IC0gKiBkcm1fZ2V0X2Zvcm1hdF9uYW1lIC0gcmV0dXJuIGEgc3RyaW5n IGZvciBkcm0gZm91cmNjIGZvcm1hdAo+ICsgKiBkcm1fZ2V0X2Zvcm1hdF9uYW1lIC0gZmlsbCBh IHN0cmluZyB3aXRoIGEgZHJtIGZvdXJjYyBmb3JtYXQncyBuYW1lCj4gICAqIEBmb3JtYXQ6IGZv cm1hdCB0byBjb21wdXRlIG5hbWUgb2YKPiArICogQGJ1ZjogY2FsbGVyLXN1cHBsaWVkIGJ1ZmZl cgo+IC0gKgo+IC0gKiBOb3RlIHRoYXQgdGhlIGJ1ZmZlciByZXR1cm5lZCBieSB0aGlzIGZ1bmN0 aW9uIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIKPiAtICogYW5kIHdpbGwgbmVlZCB0byBiZSBmcmVl ZCB1c2luZyBrZnJlZSgpLgo+ICAgKi8KPiAtY2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1aW50 MzJfdCBmb3JtYXQpCj4gK2NoYXIgKmRybV9nZXRfZm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0 LCBzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiAqYnVmKQo+ICB7Cj4gLQljaGFyICpidWYgPSBr bWFsbG9jKDMyLCBHRlBfS0VSTkVMKTsKPiAtCj4gLQlzbnByaW50ZihidWYsIDMyLAo+ICsJc25w cmludGYoYnVmLT5zdHIsIHNpemVvZihidWYtPnN0ciksCj4gIAkJICIlYyVjJWMlYyAlcy1lbmRp YW4gKDB4JTA4eCkiLAo+ICAJCSBwcmludGFibGVfY2hhcihmb3JtYXQgJiAweGZmKSwKPiAgCQkg cHJpbnRhYmxlX2NoYXIoKGZvcm1hdCA+PiA4KSAmIDB4ZmYpLAo+IEBAIC05OCw3ICs5NCw3IEBA IGNoYXIgKmRybV9nZXRfZm9ybWF0X25hbWUodWludDMyX3QgZm9ybWF0KQo+ICAJCSBmb3JtYXQg JiBEUk1fRk9STUFUX0JJR19FTkRJQU4gPyAiYmlnIiA6ICJsaXR0bGUiLAo+ICAJCSBmb3JtYXQp Owo+ICAKPiAtCXJldHVybiBidWY7Cj4gKwlyZXR1cm4gYnVmLT5zdHI7Cj4gIH0KPiAgRVhQT1JU X1NZTUJPTChkcm1fZ2V0X2Zvcm1hdF9uYW1lKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZGNlX3YxMF8wLmMKPiBpbmRleCAxOTlkM2Y3Li4yOTI0Y2RkIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKPiBAQCAtMjAzMiw3ICsyMDMyLDcgQEAgc3RhdGlj IGludCBkY2VfdjEwXzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4g IAl1MzIgdG1wLCB2aWV3cG9ydF93LCB2aWV3cG9ydF9oOwo+ICAJaW50IHI7Cj4gIAlib29sIGJ5 cGFzc19sdXQgPSBmYWxzZTsKPiAtCWNoYXIgKmZvcm1hdF9uYW1lOwo+ICsJc3RydWN0IGRybV9m b3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7Cj4gIAo+ICAJLyogbm8gZmIgYm91bmQgKi8KPiAg CWlmICghYXRvbWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewo+IEBAIC0yMTQ0LDkgKzIxNDQs OCBAQCBzdGF0aWMgaW50IGRjZV92MTBfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKPiAgCQlieXBhc3NfbHV0ID0gdHJ1ZTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6 Cj4gLQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxf Zm9ybWF0KTsKPiAtCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIs IGZvcm1hdF9uYW1lKTsKPiArCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQg JXNcbiIsCj4gKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhl bF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+IC0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKPiAgCQly ZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2RjZV92MTFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MV8wLmMKPiBpbmRleCBlY2QwMDBlLi5mMGUzYzVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMV8wLmMKPiBAQCAtMjAxMyw3ICsyMDEzLDcgQEAgc3RhdGljIGludCBkY2Vf djExXzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAl1MzIgdG1w LCB2aWV3cG9ydF93LCB2aWV3cG9ydF9oOwo+ICAJaW50IHI7Cj4gIAlib29sIGJ5cGFzc19sdXQg PSBmYWxzZTsKPiAtCWNoYXIgKmZvcm1hdF9uYW1lOwo+ICsJc3RydWN0IGRybV9mb3JtYXRfbmFt ZV9idWYgZm9ybWF0X25hbWU7Cj4gIAo+ICAJLyogbm8gZmIgYm91bmQgKi8KPiAgCWlmICghYXRv bWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewo+IEBAIC0yMTI1LDkgKzIxMjUsOCBAQCBzdGF0 aWMgaW50IGRjZV92MTFfMF9jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK PiAgCQlieXBhc3NfbHV0ID0gdHJ1ZTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gLQkJZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KTsK PiAtCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsIGZvcm1hdF9u YW1lKTsKPiArCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCj4g KwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUodGFyZ2V0X2ZiLT5waXhlbF9mb3JtYXQs ICZmb3JtYXRfbmFtZSkpOwo+IC0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKPiAgCQlyZXR1cm4gLUVJ TlZBTDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCj4gaW5k ZXggNDQ1NDdmOS4uNWM2YjgyZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9kY2VfdjZfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2 XzAuYwo+IEBAIC0xNDU2LDYgKzE0NTYsNyBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfZG9f c2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJdTMyIHZpZXdwb3J0X3csIHZpZXdw b3J0X2g7Cj4gIAlpbnQgcjsKPiAgCWJvb2wgYnlwYXNzX2x1dCA9IGZhbHNlOwo+ICsJc3RydWN0 IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7Cj4gIAo+ICAJLyogbm8gZmIgYm91bmQg Ki8KPiAgCWlmICghYXRvbWljICYmICFjcnRjLT5wcmltYXJ5LT5mYikgewo+IEBAIC0xNTU5LDcg KzE1NjAsNyBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAgCQlEUk1fRVJST1IoIlVu c3VwcG9ydGVkIHNjcmVlbiBmb3JtYXQgJXNcbiIsCj4gLQkJCSAgZHJtX2dldF9mb3JtYXRfbmFt ZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCkpOwo+ICsJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKPiAgCQlyZXR1 cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5j Cj4gaW5kZXggOTc5YWVkZi4uNWFlZjE5ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjhfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3Y4XzAuYwo+IEBAIC0xOTEwLDcgKzE5MTAsNyBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2Ny dGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJdTMyIHZpZXdwb3J0X3cs IHZpZXdwb3J0X2g7Cj4gIAlpbnQgcjsKPiAgCWJvb2wgYnlwYXNzX2x1dCA9IGZhbHNlOwo+IC0J Y2hhciAqZm9ybWF0X25hbWU7Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRf bmFtZTsKPiAgCj4gIAkvKiBubyBmYiBib3VuZCAqLwo+ICAJaWYgKCFhdG9taWMgJiYgIWNydGMt PnByaW1hcnktPmZiKSB7Cj4gQEAgLTIwMTUsOSArMjAxNSw4IEBAIHN0YXRpYyBpbnQgZGNlX3Y4 XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJYnlwYXNzX2x1 dCA9IHRydWU7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0JCWZvcm1hdF9uYW1lID0gZHJt X2dldF9mb3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7Cj4gLQkJRFJNX0VSUk9S KCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7Cj4gKwkJRFJN X0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAo+ICsJCSAgICAgICAgICBk cm1fZ2V0X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUp KTsKPiAtCQlrZnJlZShmb3JtYXRfbmFtZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IGMzMmZiM2MuLmYyOWQzYzUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKPiBAQCAtODM1LDkgKzgzNSwxMCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNf cGxhbmVfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkvKiBDaGVjayB3aGV0aGVy IHRoaXMgcGxhbmUgc3VwcG9ydHMgdGhlIGZiIHBpeGVsIGZvcm1hdC4gKi8KPiAgCXJldCA9IGRy bV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUsIHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0 KTsKPiAgCWlmIChyZXQpIHsKPiAtCQljaGFyICpmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0 X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwo+IC0JCURSTV9ERUJVR19BVE9NSUMoIklu dmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7Cj4gKwkJc3RydWN0IGRybV9m b3JtYXRfbmFtZV9idWYgZm9ybWF0X25hbWU7Cj4gKwkJRFJNX0RFQlVHX0FUT01JQygiSW52YWxp ZCBwaXhlbCBmb3JtYXQgJXNcbiIsCj4gKwkJICAgICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1h dF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0LAo+ICsJCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZm9ybWF0X25hbWUpKTsKPiAtCQlrZnJlZShmb3JtYXRfbmFtZSk7 Cj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCAxMzQ0MWUy Li4wOGFjMjE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBAQCAtODI3LDkgKzgyNywxMCBAQCBpbnQg ZHJtX21vZGVfc2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAJ CQlyZXQgPSBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxfZm9ybWF0KGNydGMtPnByaW1hcnksCj4gIAkJ CQkJCQkgICBmYi0+cGl4ZWxfZm9ybWF0KTsKPiAgCQkJaWYgKHJldCkgewo+IC0JCQkJY2hhciAq Zm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpOwo+IC0J CQkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsIGZvcm1hdF9uYW1l KTsKPiArCQkJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ICsJCQkJ RFJNX0RFQlVHX0tNUygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsCj4gKwkJCQkgICAgICAg ICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwKPiArCQkJCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0X25hbWUpKTsKPiAtCQkJCWtmcmVl KGZvcm1hdF9uYW1lKTsKPiAgCQkJCWdvdG8gb3V0Owo+ICAJCQl9Cj4gIAkJfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZyYW1lYnVmZmVyLmMKPiBpbmRleCA0OWZkN2RiLi5kZjZiMTgwIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZnJhbWVidWZmZXIuYwo+IEBAIC0xMzMsOSArMTMzLDEwIEBAIHN0YXRpYyBpbnQgZnJh bWVidWZmZXJfY2hlY2soY29uc3Qgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKnIpCj4gIAo+ICAJ aW5mbyA9IF9fZHJtX2Zvcm1hdF9pbmZvKHItPnBpeGVsX2Zvcm1hdCAmIH5EUk1fRk9STUFUX0JJ R19FTkRJQU4pOwo+ICAJaWYgKCFpbmZvKSB7Cj4gLQkJY2hhciAqZm9ybWF0X25hbWUgPSBkcm1f Z2V0X2Zvcm1hdF9uYW1lKHItPnBpeGVsX2Zvcm1hdCk7Cj4gLQkJRFJNX0RFQlVHX0tNUygiYmFk IGZyYW1lYnVmZmVyIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOwo+ICsJCXN0cnVjdCBkcm1f Zm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ICsJCURSTV9ERUJVR19LTVMoImJhZCBmcmFt ZWJ1ZmZlciBmb3JtYXQgJXNcbiIsCj4gKwkJICAgICAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9u YW1lKHItPnBpeGVsX2Zvcm1hdCwKPiArCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZvcm1hdF9uYW1lKSk7Cj4gLQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAJCXJldHVybiAt RUlOVkFMOwo+ICAJfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rl c2V0X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5jCj4gaW5k ZXggMjU0NGRmZS4uMmY0NTJiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21v ZGVzZXRfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzZXRfaGVscGVy LmMKPiBAQCAtNzUsMTAgKzc1LDExIEBAIHZvaWQgZHJtX2hlbHBlcl9tb2RlX2ZpbGxfZmJfc3Ry dWN0KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICAKPiAgCWluZm8gPSBkcm1fZm9ybWF0 X2luZm8obW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7Cj4gIAlpZiAoIWluZm8gfHwgIWluZm8tPmRl cHRoKSB7Cj4gLQkJY2hhciAqZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVf Y21kLT5waXhlbF9mb3JtYXQpOwo+ICsJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1h dF9uYW1lOwo+ICAKPiAtCQlEUk1fREVCVUdfS01TKCJub24tUkdCIHBpeGVsIGZvcm1hdCAlc1xu IiwgZm9ybWF0X25hbWUpOwo+ICsJCURSTV9ERUJVR19LTVMoIm5vbi1SR0IgcGl4ZWwgZm9ybWF0 ICVzXG4iLAo+ICsJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+ cGl4ZWxfZm9ybWF0LAo+ICsJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9y bWF0X25hbWUpKTsKPiAtCQlrZnJlZShmb3JtYXRfbmFtZSk7Cj4gIAo+ICAJCWZiLT5kZXB0aCA9 IDA7Cj4gIAkJZmItPmJpdHNfcGVyX3BpeGVsID0gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCj4gaW5kZXgg MjQ5YzBhZS4uMmJhMGMyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5l LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiBAQCAtNDc5LDkgKzQ3OSwx MCBAQCBzdGF0aWMgaW50IF9fc2V0cGxhbmVfaW50ZXJuYWwoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkvKiBDaGVjayB3aGV0aGVyIHRoaXMgcGxhbmUgc3VwcG9ydHMgdGhlIGZiIHBpeGVs IGZvcm1hdC4gKi8KPiAgCXJldCA9IGRybV9wbGFuZV9jaGVja19waXhlbF9mb3JtYXQocGxhbmUs IGZiLT5waXhlbF9mb3JtYXQpOwo+ICAJaWYgKHJldCkgewo+IC0JCWNoYXIgKmZvcm1hdF9uYW1l ID0gZHJtX2dldF9mb3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KTsKPiAtCQlEUk1fREVCVUdf S01TKCJJbnZhbGlkIHBpeGVsIGZvcm1hdCAlc1xuIiwgZm9ybWF0X25hbWUpOwo+ICsJCXN0cnVj dCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ICsJCURSTV9ERUJVR19LTVMoIklu dmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAo+ICsJCSAgICAgICAgICAgICAgZHJtX2dldF9mb3Jt YXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0LAo+ICsJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZm9ybWF0X25hbWUpKTsKPiAtCQlrZnJlZShmb3JtYXRfbmFtZSk7Cj4gIAkJZ290 byBvdXQ7Cj4gIAl9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2tpcmluL2tpcmluX2RybV9hZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4v a2lyaW5fZHJtX2FkZS5jCj4gaW5kZXggN2U3YTRkNC4uYWZjMmI1ZCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jCj4gQEAgLTYwOCwx NyArNjA4LDE2IEBAIHN0YXRpYyB2b2lkIGFkZV9yZG1hX3NldCh2b2lkIF9faW9tZW0gKmJhc2Us IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICAJCQkgdTMyIGNoLCB1MzIgeSwgdTMyIGlu X2gsIHUzMiBmbXQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKm9iaiA9IGRy bV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOwo+IC0JY2hhciAqZm9ybWF0X25hbWU7Cj4gKwlz dHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAgCXUzMiByZWdfY3RybCwg cmVnX2FkZHIsIHJlZ19zaXplLCByZWdfc3RyaWRlLCByZWdfc3BhY2UsIHJlZ19lbjsKPiAgCXUz MiBzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsKPiAgCXUzMiBhZGRyID0gKHUzMilvYmotPnBhZGRy ICsgeSAqIHN0cmlkZTsKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVSKCJyZG1hJWQ6ICh5PSVkLCBo ZWlnaHQ9JWQpLCBzdHJpZGU9JWQsIHBhZGRyPTB4JXhcbiIsCj4gIAkJCSBjaCArIDEsIHksIGlu X2gsIHN0cmlkZSwgKHUzMilvYmotPnBhZGRyKTsKPiAtCWZvcm1hdF9uYW1lID0gZHJtX2dldF9m b3JtYXRfbmFtZShmYi0+cGl4ZWxfZm9ybWF0KTsKPiAgCURSTV9ERUJVR19EUklWRVIoImFkZHI9 MHgleCwgZmI6JWR4JWQsIHBpeGVsX2Zvcm1hdD0lZCglcylcbiIsCj4gLQkJCSBhZGRyLCBmYi0+ d2lkdGgsIGZiLT5oZWlnaHQsIGZtdCwgZm9ybWF0X25hbWUpOwo+ICsJCQkgYWRkciwgZmItPndp ZHRoLCBmYi0+aGVpZ2h0LCBmbXQsCj4gKwkJCSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhl bF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+IC0Ja2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAKPiAg CS8qIGdldCByZWcgb2Zmc2V0ICovCj4gIAlyZWdfY3RybCA9IFJEX0NIX0NUUkwoY2gpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggMjA2MzhkMi4uNjcwNDIzZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTI5NzEsNyArMjk3MSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo ZGV2LCBpbnRlbF9jcnRjLCBpbnRlbF9wbGFuZSkgewo+ICAJCXN0cnVjdCBkcm1fcGxhbmVfc3Rh dGUgKnN0YXRlOwo+ICAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gJmludGVsX3BsYW5lLT5i YXNlOwo+IC0JCWNoYXIgKmZvcm1hdF9uYW1lOwo+ICsJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVf YnVmIGZvcm1hdF9uYW1lOwo+ICAKPiAgCQlpZiAoIXBsYW5lLT5zdGF0ZSkgewo+ICAJCQlzZXFf cHV0cyhtLCAicGxhbmUtPnN0YXRlIGlzIE5VTEwhXG4iKTsKPiBAQCAtMjk4MSw5ICsyOTgxLDkg QEAgc3RhdGljIHZvaWQgaW50ZWxfcGxhbmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQo+ICAJCXN0YXRlID0gcGxhbmUtPnN0YXRlOwo+ICAK PiAgCQlpZiAoc3RhdGUtPmZiKSB7Cj4gLQkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRf bmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCk7Cj4gKwkJCWRybV9nZXRfZm9ybWF0X25hbWUo c3RhdGUtPmZiLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSk7Cj4gIAkJfSBlbHNlIHsKPiAt CQkJZm9ybWF0X25hbWUgPSBrc3RyZHVwKCJOL0EiLCBHRlBfS0VSTkVMKTsKPiArCQkJc3ByaW50 Zihmb3JtYXRfbmFtZS5zdHIsICJOL0EiKTsKPiAgCQl9Cj4gIAo+ICAJCXNlcV9wcmludGYobSwg Ilx0LS1QbGFuZSBpZCAlZDogdHlwZT0lcywgY3J0Y19wb3M9JTRkeCU0ZCwgY3J0Y19zaXplPSU0 ZHglNGQsIHNyY19wb3M9JWQuJTA0dXglZC4lMDR1LCBzcmNfc2l6ZT0lZC4lMDR1eCVkLiUwNHUs IGZvcm1hdD0lcywgcm90YXRpb249JXNcbiIsCj4gQEAgLTI5OTksMTAgKzI5OTksOCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wbGFuZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMpCj4gIAkJCSAgICgoc3RhdGUtPnNyY193ICYgMHhmZmZmKSAqIDE1 NjI1KSA+PiAxMCwKPiAgCQkJICAgKHN0YXRlLT5zcmNfaCA+PiAxNiksCj4gIAkJCSAgICgoc3Rh dGUtPnNyY19oICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKPiAtCQkJICAgZm9ybWF0X25hbWUs Cj4gKwkJCSAgIGZvcm1hdF9uYW1lLnN0ciwKPiAgCQkJICAgcGxhbmVfcm90YXRpb24oc3RhdGUt PnJvdGF0aW9uKSk7Cj4gLQo+IC0JCWtmcmVlKGZvcm1hdF9uYW1lKTsKPiAgCX0KPiAgfQo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IGluZGV4IGM3NjJh ZTUuLjZjNzZlM2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxh bmUuYwo+IEBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9taWNf Y2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFi bGUgPyBjcnRjX3N0YXRlLT5waXBlX3NyY19oIDogMDsKPiAgCj4gIAlpZiAoc3RhdGUtPmZiICYm IGRybV9yb3RhdGlvbl85MF9vcl8yNzAoc3RhdGUtPnJvdGF0aW9uKSkgewo+IC0JCWNoYXIgKmZv cm1hdF9uYW1lOwo+ICsJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ ICAKPiAgCQlpZiAoIShzdGF0ZS0+ZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9Z X1RJTEVEIHx8Cj4gIAkJCXN0YXRlLT5mYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JNQVRfTU9E X1lmX1RJTEVEKSkgewo+IEBAIC0xNTksOSArMTU5LDkgQEAgc3RhdGljIGludCBpbnRlbF9wbGFu ZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJc3dpdGNoIChzdGF0 ZS0+ZmItPnBpeGVsX2Zvcm1hdCkgewo+ICAJCWNhc2UgRFJNX0ZPUk1BVF9DODoKPiAgCQljYXNl IERSTV9GT1JNQVRfUkdCNTY1Ogo+IC0JCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25h bWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwo+IC0JCQlEUk1fREVCVUdfS01TKCJVbnN1cHBv cnRlZCBwaXhlbCBmb3JtYXQgJXMgZm9yIDkwLzI3MCFcbiIsIGZvcm1hdF9uYW1lKTsKPiArCQkJ RFJNX0RFQlVHX0tNUygiVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICVzIGZvciA5MC8yNzAhXG4i LAo+ICsJCQkgICAgICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoc3RhdGUtPmZiLT5waXhl bF9mb3JtYXQsCj4gKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0 X25hbWUpKTsKPiAtCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAJCQlyZXR1cm4gLUVJTlZBTDsK PiAgCj4gIAkJZGVmYXVsdDoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5k ZXggNmY4ZjZlYy4uODIwOTE3MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiBAQCAtMTI4NzEsNyArMTI4NzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgCURSTV9ERUJVR19LTVMoInBs YW5lcyBvbiB0aGlzIGNydGNcbiIpOwo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeShwbGFuZSwgJmRl di0+bW9kZV9jb25maWcucGxhbmVfbGlzdCwgaGVhZCkgewo+IC0JCWNoYXIgKmZvcm1hdF9uYW1l Owo+ICsJCXN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmIGZvcm1hdF9uYW1lOwo+ICAJCWludGVs X3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwo+ICAJCWlmIChpbnRlbF9wbGFuZS0+cGlw ZSAhPSBjcnRjLT5waXBlKQo+ICAJCQljb250aW51ZTsKPiBAQCAtMTI4ODQsMTIgKzEyODg0LDEx IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gIAkJCWNvbnRpbnVlOwo+ICAJCX0KPiAgCj4gLQkJZm9ybWF0X25hbWUgPSBkcm1f Z2V0X2Zvcm1hdF9uYW1lKGZiLT5waXhlbF9mb3JtYXQpOwo+IC0KPiAgCQlEUk1fREVCVUdfS01T KCJbUExBTkU6JWQ6JXNdIGVuYWJsZWQiLAo+ICAJCQkgICAgICBwbGFuZS0+YmFzZS5pZCwgcGxh bmUtPm5hbWUpOwo+ICAJCURSTV9ERUJVR19LTVMoIlx0RkI6JWQsIGZiID0gJXV4JXUgZm9ybWF0 ID0gJXMiLAo+IC0JCQkgICAgICBmYi0+YmFzZS5pZCwgZmItPndpZHRoLCBmYi0+aGVpZ2h0LCBm b3JtYXRfbmFtZSk7Cj4gKwkJCSAgICAgIGZiLT5iYXNlLmlkLCBmYi0+d2lkdGgsIGZiLT5oZWln aHQsCj4gKwkJCSAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUoZmItPnBpeGVsX2Zvcm1hdCwgJmZv cm1hdF9uYW1lKSk7Cj4gIAkJRFJNX0RFQlVHX0tNUygiXHRzY2FsZXI6JWQgc3JjICVkeCVkKyVk KyVkIGRzdCAlZHglZCslZCslZFxuIiwKPiAgCQkJICAgICAgc3RhdGUtPnNjYWxlcl9pZCwKPiAg CQkJICAgICAgc3RhdGUtPmJhc2Uuc3JjLngxID4+IDE2LAo+IEBAIC0xMjg5OSw4ICsxMjg5OCw2 IEBAIHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsCj4gIAkJCSAgICAgIHN0YXRlLT5iYXNlLmRzdC54MSwgc3RhdGUtPmJhc2UuZHN0Lnkx LAo+ICAJCQkgICAgICBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPmJhc2UuZHN0KSwKPiAgCQkJICAg ICAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+YmFzZS5kc3QpKTsKPiAtCj4gLQkJa2ZyZWUoZm9y bWF0X25hbWUpOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0xNTc0OSw3ICsxNTc0Niw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ dW5zaWduZWQgaW50IHRpbGluZyA9IGk5MTVfZ2VtX29iamVjdF9nZXRfdGlsaW5nKG9iaik7Cj4g IAlpbnQgcmV0Owo+ICAJdTMyIHBpdGNoX2xpbWl0LCBzdHJpZGVfYWxpZ25tZW50Owo+IC0JY2hh ciAqZm9ybWF0X25hbWU7Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFt ZTsKPiAgCj4gIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7 Cj4gIAo+IEBAIC0xNTg0MCwxOCArMTU4MzcsMTYgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1 ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJYnJlYWs7Cj4gIAljYXNlIERS TV9GT1JNQVRfWFJHQjE1NTU6Cj4gIAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID4gMykgewo+ IC0JCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCk7Cj4gLQkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwg Zm9ybWF0X25hbWUpOwo+ICsJCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDog JXNcbiIsCj4gKwkJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhl bF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+IC0JCQlrZnJlZShmb3JtYXRfbmFtZSk7Cj4gIAkJ CXJldHVybiAtRUlOVkFMOwo+ICAJCX0KPiAgCQlicmVhazsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9B QkdSODg4ODoKPiAgCQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmICFJU19DSEVSUllW SUVXKGRldl9wcml2KSAmJgo+ICAJCSAgICBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkpIHsKPiAt CQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3Jt YXQpOwo+IC0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZv cm1hdF9uYW1lKTsKPiArCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVz XG4iLAo+ICsJCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxf Zm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKPiAtCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAJCQly ZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gIAkJYnJlYWs7Cj4gQEAgLTE1ODU5LDE3ICsxNTg1NCwx NSBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKPiAgCWNhc2UgRFJNX0ZPUk1B VF9YQkdSMjEwMTAxMDoKPiAgCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KSB7Cj4gLQkJ CWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0 KTsKPiAtCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6ICVzXG4iLCBmb3Jt YXRfbmFtZSk7Cj4gKwkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAlc1xu IiwKPiArCQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCwgJmZvcm1hdF9uYW1lKSk7Cj4gLQkJCWtmcmVlKGZvcm1hdF9uYW1lKTsKPiAgCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICAJCWJyZWFrOwo+ICAJY2FzZSBEUk1fRk9STUFUX0FCR1Iy MTAxMDEwOgo+ICAJCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSB7Cj4gLQkJCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSht b2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKPiAtCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhl bCBmb3JtYXQ6ICVzXG4iLCBmb3JtYXRfbmFtZSk7Cj4gKwkJCURSTV9ERUJVRygidW5zdXBwb3J0 ZWQgcGl4ZWwgZm9ybWF0OiAlc1xuIiwKPiArCQkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25h bWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwgJmZvcm1hdF9uYW1lKSk7Cj4gLQkJCWtmcmVlKGZv cm1hdF9uYW1lKTsKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJfQo+ICAJCWJyZWFrOwo+IEBA IC0xNTg3OCwxNiArMTU4NzEsMTQgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAljYXNlIERSTV9GT1JNQVRfWVZZVToKPiAgCWNh c2UgRFJNX0ZPUk1BVF9WWVVZOgo+ICAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDUpIHsK PiAtCQkJZm9ybWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9m b3JtYXQpOwo+IC0JCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIs IGZvcm1hdF9uYW1lKTsKPiArCQkJRFJNX0RFQlVHKCJ1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQ6 ICVzXG4iLAo+ICsJCQkgICAgICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4 ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKPiAtCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAJ CQlyZXR1cm4gLUVJTlZBTDsKPiAgCQl9Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0JCWZv cm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZShtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsK PiAtCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9u YW1lKTsKPiArCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsCj4g KwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCwg JmZvcm1hdF9uYW1lKSk7Cj4gLQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+ICAJCXJldHVybiAtRUlO VkFMOwo+ICAJfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9t Ymlvc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwo+IGlu ZGV4IDc0Zjk5YmEuLjA1ZjRlYmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9hdG9tYmlvc19jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9z X2NydGMuYwo+IEBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0aWMgaW50IGRjZTRfY3J0Y19kb19z ZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAl1MzIgdG1wLCB2aWV3cG9ydF93LCB2 aWV3cG9ydF9oOwo+ICAJaW50IHI7Cj4gIAlib29sIGJ5cGFzc19sdXQgPSBmYWxzZTsKPiAtCWNo YXIgKmZvcm1hdF9uYW1lOwo+ICsJc3RydWN0IGRybV9mb3JtYXRfbmFtZV9idWYgZm9ybWF0X25h bWU7Cj4gIAo+ICAJLyogbm8gZmIgYm91bmQgKi8KPiAgCWlmICghYXRvbWljICYmICFjcnRjLT5w cmltYXJ5LT5mYikgewo+IEBAIC0xMjYwLDkgKzEyNjAsOCBAQCBzdGF0aWMgaW50IGRjZTRfY3J0 Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJYnlwYXNzX2x1dCA9IHRy dWU7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0JCWZvcm1hdF9uYW1lID0gZHJtX2dldF9m b3JtYXRfbmFtZSh0YXJnZXRfZmItPnBpeGVsX2Zvcm1hdCk7Cj4gLQkJRFJNX0VSUk9SKCJVbnN1 cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7Cj4gKwkJRFJNX0VSUk9S KCJVbnN1cHBvcnRlZCBzY3JlZW4gZm9ybWF0ICVzXG4iLAo+ICsJCSAgICAgICAgICBkcm1fZ2V0 X2Zvcm1hdF9uYW1lKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKPiAt CQlrZnJlZShmb3JtYXRfbmFtZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IEBA IC0xNDczLDcgKzE0NzIsNyBAQCBzdGF0aWMgaW50IGF2aXZvX2NydGNfZG9fc2V0X2Jhc2Uoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAJdTMyIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7Cj4gIAlp bnQgcjsKPiAgCWJvb2wgYnlwYXNzX2x1dCA9IGZhbHNlOwo+IC0JY2hhciAqZm9ybWF0X25hbWU7 Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9uYW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAgCj4gIAkvKiBu byBmYiBib3VuZCAqLwo+ICAJaWYgKCFhdG9taWMgJiYgIWNydGMtPnByaW1hcnktPmZiKSB7Cj4g QEAgLTE1NjMsOSArMTU2Miw4IEBAIHN0YXRpYyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJYnlwYXNzX2x1dCA9IHRydWU7Cj4gIAkJYnJlYWs7 Cj4gIAlkZWZhdWx0Ogo+IC0JCWZvcm1hdF9uYW1lID0gZHJtX2dldF9mb3JtYXRfbmFtZSh0YXJn ZXRfZmItPnBpeGVsX2Zvcm1hdCk7Cj4gLQkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBzY3JlZW4g Zm9ybWF0ICVzXG4iLCBmb3JtYXRfbmFtZSk7Cj4gKwkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBz Y3JlZW4gZm9ybWF0ICVzXG4iLAo+ICsJCSAgICAgICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHRh cmdldF9mYi0+cGl4ZWxfZm9ybWF0LCAmZm9ybWF0X25hbWUpKTsKPiAtCQlrZnJlZShmb3JtYXRf bmFtZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2ttcy5jCj4gaW5kZXggYzk2NTUxNC4uZTNmNjhjYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ttcy5jCj4gQEAgLTk4NSw4ICs5ODUsOSBAQCBzdGF0aWMgc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqdm13X2ttc19mYl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCj4gIAlpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKG1vZGVfY21kMi0+cGl4ZWxfZm9ybWF0KTsK PiAgCWlmICghaW5mbyB8fCAhaW5mby0+ZGVwdGgpIHsKPiArCQlzdHJ1Y3QgZHJtX2Zvcm1hdF9u YW1lX2J1ZiBmb3JtYXRfbmFtZTsKPiAgCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIGZyYW1lYnVm ZmVyIGZvcm1hdCAlc1xuIiwKPiAtCQkJICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kMi0+ cGl4ZWxfZm9ybWF0KSk7Cj4gKwkJICAgICAgICAgIGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9j bWQyLT5waXhlbF9mb3JtYXQsICZmb3JtYXRfbmFtZSkpOwo+ICAJCXJldHVybiBFUlJfUFRSKC1F SU5WQUwpOwo+ICAJfQo+ICAKPiAtLSAKPiBDaGVlcnMsCj4gICBFcmljCj4gCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=