From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: Re: [PATCH 06/10] mm: replace get_user_pages() write/force parameters with gup_flags Date: Wed, 19 Oct 2016 09:44:29 +0200 Message-ID: <20161019074429.GN29967@quack2.suse.cz> References: <20161013002020.3062-1-lstoakes@gmail.com> <20161013002020.3062-7-lstoakes@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20161013002020.3062-7-lstoakes@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lorenzo Stoakes Cc: linux-mips@linux-mips.org, linux-fbdev@vger.kernel.org, Jan Kara , kvm@vger.kernel.org, linux-sh@vger.kernel.org, Dave Hansen , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, netdev@vger.kernel.org, sparclinux@vger.kernel.org, linux-ia64@vger.kernel.org, linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-scsi@vger.kernel.org, linux-rdma@vger.kernel.org, x86@kernel.org, Hugh Dickins , linux-media@vger.kernel.org, Rik van Riel , intel-gfx@lists.freedesktop.org, adi-buildroot-devel@lists.sourceforge.net, ceph-devel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-cris-kernel@axis.com, Linus Torvalds , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-alpha@vger.kernel.orglin List-Id: linux-samsung-soc@vger.kernel.org T24gVGh1IDEzLTEwLTE2IDAxOjIwOjE2LCBMb3JlbnpvIFN0b2FrZXMgd3JvdGU6Cj4gVGhpcyBw YXRjaCByZW1vdmVzIHRoZSB3cml0ZSBhbmQgZm9yY2UgcGFyYW1ldGVycyBmcm9tIGdldF91c2Vy X3BhZ2VzKCkgYW5kCj4gcmVwbGFjZXMgdGhlbSB3aXRoIGEgZ3VwX2ZsYWdzIHBhcmFtZXRlciB0 byBtYWtlIHRoZSB1c2Ugb2YgRk9MTF9GT1JDRSBleHBsaWNpdAo+IGluIGNhbGxlcnMgYXMgdXNl IG9mIHRoaXMgZmxhZyBjYW4gcmVzdWx0IGluIHN1cnByaXNpbmcgYmVoYXZpb3VyIChhbmQgaGVu Y2UKPiBidWdzKSB3aXRoaW4gdGhlIG1tIHN1YnN5c3RlbS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBM b3JlbnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNvbT4KClRoZSBwYXRjaCBsb29rcyBnb29k LiBZb3UgY2FuIGFkZDoKClJldmlld2VkLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgoKCQkJ CQkJCQlIb256YQoKPiAtLS0KPiAgYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29w LmMgICAgICAgICAgICAgICAgIHwgIDQgKy0tLQo+ICBhcmNoL2lhNjQva2VybmVsL2Vycl9pbmpl Y3QuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQo+ICBhcmNoL3g4Ni9tbS9tcHgu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKy0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgICAgICAgICAgICAgfCAgNyAr KysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jICAgICAgICAgICAg ICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCj4gIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3Vt ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysrLQo+ICBkcml2ZXJzL2luZmlu aWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5jICAgICAgICAgICAgfCAgMiArLQo+ICBkcml2 ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3BhZ2VzLmMgICAgICAgICAgICAgfCAgMyAr Ky0KPiAgZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX3Vpb20uYyAgICAgICAgICAg ICAgIHwgIDUgKysrKy0KPiAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYtZG1hLXNn LmMgICAgICAgICAgICAgIHwgIDcgKysrKystLQo+ICBkcml2ZXJzL21pc2MvbWljL3NjaWYvc2Np Zl9ybWEuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KPiAgZHJpdmVycy9taXNjL3Nn aS1ncnUvZ3J1ZmF1bHQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVy cy9wbGF0Zm9ybS9nb2xkZmlzaC9nb2xkZmlzaF9waXBlLmMgICAgICAgICAgICAgIHwgIDMgKyst Cj4gIGRyaXZlcnMvcmFwaWRpby9kZXZpY2VzL3Jpb19tcG9ydF9jZGV2LmMgICAgICAgICAgICAg ICB8ICAzICsrLQo+ICAuLi4vdmMwNF9zZXJ2aWNlcy9pbnRlcmZhY2UvdmNoaXFfYXJtL3ZjaGlx XzI4MzVfYXJtLmMgfCAgMyArLS0KPiAgLi4uL3ZjMDRfc2VydmljZXMvaW50ZXJmYWNlL3ZjaGlx X2FybS92Y2hpcV9hcm0uYyAgICAgIHwgIDMgKy0tCj4gIGRyaXZlcnMvdmlydC9mc2xfaHlwZXJ2 aXNvci5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KPiAgaW5jbHVkZS9saW51 eC9tbS5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgbW0v Z3VwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIg KysrLS0tLS0tLS0tCj4gIG1tL21lbXBvbGljeS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCj4gIG1tL25vbW11LmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKystLS0tLS0tLS0tLS0tLQo+ICAyMiBmaWxl cyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0t Z2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMgYi9hcmNoL2NyaXMv YXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYwo+IGluZGV4IGI1Njk4YzguLjA5OWUxNzAgMTAw NjQ0Cj4gLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMKPiArKysg Yi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYwo+IEBAIC0yNzIyLDcgKzI3 MjIsNiBAQCBzdGF0aWMgaW50IGNyeXB0b2NvcF9pb2N0bF9wcm9jZXNzKHN0cnVjdCBpbm9kZSAq aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZwo+ICAJZXJyID0gZ2V0X3VzZXJfcGFnZXMo KHVuc2lnbmVkIGxvbmcgaW50KShvcGVyLmluZGF0YSArIHByZXZfaXgpLAo+ICAJCQkgICAgIG5v aW5wYWdlcywKPiAgCQkJICAgICAwLCAgLyogcmVhZCBhY2Nlc3Mgb25seSBmb3IgaW4gZGF0YSAq Lwo+IC0JCQkgICAgIDAsIC8qIG5vIGZvcmNlICovCj4gIAkJCSAgICAgaW5wYWdlcywKPiAgCQkJ ICAgICBOVUxMKTsKPiAgCj4gQEAgLTI3MzYsOCArMjczNSw3IEBAIHN0YXRpYyBpbnQgY3J5cHRv Y29wX2lvY3RsX3Byb2Nlc3Moc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAs IHVuc2lnCj4gIAlpZiAob3Blci5kb19jaXBoZXIpewo+ICAJCWVyciA9IGdldF91c2VyX3BhZ2Vz KCh1bnNpZ25lZCBsb25nIGludClvcGVyLmNpcGhlcl9vdXRkYXRhLAo+ICAJCQkJICAgICBub291 dHBhZ2VzLAo+IC0JCQkJICAgICAxLCAvKiB3cml0ZSBhY2Nlc3MgZm9yIG91dCBkYXRhICovCj4g LQkJCQkgICAgIDAsIC8qIG5vIGZvcmNlICovCj4gKwkJCQkgICAgIEZPTExfV1JJVEUsIC8qIHdy aXRlIGFjY2VzcyBmb3Igb3V0IGRhdGEgKi8KPiAgCQkJCSAgICAgb3V0cGFnZXMsCj4gIAkJCQkg ICAgIE5VTEwpOwo+ICAJCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7Cj4gZGlmZiAt LWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvZXJyX2luamVjdC5jIGIvYXJjaC9pYTY0L2tlcm5lbC9l cnJfaW5qZWN0LmMKPiBpbmRleCAwOWY4NDU3Li41ZWQwZWE5IDEwMDY0NAo+IC0tLSBhL2FyY2gv aWE2NC9rZXJuZWwvZXJyX2luamVjdC5jCj4gKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9lcnJfaW5q ZWN0LmMKPiBAQCAtMTQyLDcgKzE0Miw3IEBAIHN0b3JlX3ZpcnR1YWxfdG9fcGh5cyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAo+ICAJdTY0IHZpcnRf YWRkcj1zaW1wbGVfc3RydG91bGwoYnVmLCBOVUxMLCAxNik7Cj4gIAlpbnQgcmV0Owo+ICAKPiAt CXJldCA9IGdldF91c2VyX3BhZ2VzKHZpcnRfYWRkciwgMSwgVk1fUkVBRCwgMCwgTlVMTCwgTlVM TCk7Cj4gKwlyZXQgPSBnZXRfdXNlcl9wYWdlcyh2aXJ0X2FkZHIsIDEsIEZPTExfV1JJVEUsIE5V TEwsIE5VTEwpOwo+ICAJaWYgKHJldDw9MCkgewo+ICAjaWZkZWYgRVJSX0lOSl9ERUJVRwo+ICAJ CXByaW50aygiVmlydHVhbCBhZGRyZXNzICVseCBpcyBub3QgZXhpc3RpbmcuXG4iLHZpcnRfYWRk cik7Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL21weC5jIGIvYXJjaC94ODYvbW0vbXB4LmMK PiBpbmRleCA4MDQ3Njg3Li5lNGY4MDA5IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L21tL21weC5j Cj4gKysrIGIvYXJjaC94ODYvbW0vbXB4LmMKPiBAQCAtNTQ0LDEwICs1NDQsOSBAQCBzdGF0aWMg aW50IG1weF9yZXNvbHZlX2ZhdWx0KGxvbmcgX191c2VyICphZGRyLCBpbnQgd3JpdGUpCj4gIHsK PiAgCWxvbmcgZ3VwX3JldDsKPiAgCWludCBucl9wYWdlcyA9IDE7Cj4gLQlpbnQgZm9yY2UgPSAw Owo+ICAKPiAtCWd1cF9yZXQgPSBnZXRfdXNlcl9wYWdlcygodW5zaWduZWQgbG9uZylhZGRyLCBu cl9wYWdlcywgd3JpdGUsCj4gLQkJCWZvcmNlLCBOVUxMLCBOVUxMKTsKPiArCWd1cF9yZXQgPSBn ZXRfdXNlcl9wYWdlcygodW5zaWduZWQgbG9uZylhZGRyLCBucl9wYWdlcywKPiArCQkJd3JpdGUg PyBGT0xMX1dSSVRFIDogMCwJTlVMTCwgTlVMTCk7Cj4gIAkvKgo+ICAJICogZ2V0X3VzZXJfcGFn ZXMoKSByZXR1cm5zIG51bWJlciBvZiBwYWdlcyBnb3R0ZW4uCj4gIAkgKiAwIG1lYW5zIHdlIGZh aWxlZCB0byBmYXVsdCBpbiBhbmQgZ2V0IGFueXRoaW5nLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdHRtLmMKPiBpbmRleCA4ODc0ODNiLi5kY2FmNjkxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+IEBAIC01NTUsMTAgKzU1NSwxMyBAQCBz dHJ1Y3QgYW1kZ3B1X3R0bV90dCB7Cj4gIGludCBhbWRncHVfdHRtX3R0X2dldF91c2VyX3BhZ2Vz KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHBhZ2UgKipwYWdlcykKPiAgewo+ICAJc3RydWN0 IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+IC0JaW50IHdyaXRlID0gIShndHQt PnVzZXJmbGFncyAmIEFNREdQVV9HRU1fVVNFUlBUUl9SRUFET05MWSk7Cj4gKwl1bnNpZ25lZCBp bnQgZmxhZ3MgPSAwOwo+ICAJdW5zaWduZWQgcGlubmVkID0gMDsKPiAgCWludCByOwo+ICAKPiAr CWlmICghKGd0dC0+dXNlcmZsYWdzICYgQU1ER1BVX0dFTV9VU0VSUFRSX1JFQURPTkxZKSkKPiAr CQlmbGFncyB8PSBGT0xMX1dSSVRFOwo+ICsKPiAgCWlmIChndHQtPnVzZXJmbGFncyAmIEFNREdQ VV9HRU1fVVNFUlBUUl9BTk9OT05MWSkgewo+ICAJCS8qIGNoZWNrIHRoYXQgd2Ugb25seSB1c2Ug YW5vbnltb3VzIG1lbW9yeQo+ICAJCSAgIHRvIHByZXZlbnQgcHJvYmxlbXMgd2l0aCB3cml0ZWJh Y2sgKi8KPiBAQCAtNTgxLDcgKzU4NCw3IEBAIGludCBhbWRncHVfdHRtX3R0X2dldF91c2VyX3Bh Z2VzKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHBhZ2UgKipwYWdlcykKPiAgCQlsaXN0X2Fk ZCgmZ3VwdGFzay5saXN0LCAmZ3R0LT5ndXB0YXNrcyk7Cj4gIAkJc3Bpbl91bmxvY2soJmd0dC0+ Z3VwdGFza2xvY2spOwo+ICAKPiAtCQlyID0gZ2V0X3VzZXJfcGFnZXModXNlcnB0ciwgbnVtX3Bh Z2VzLCB3cml0ZSwgMCwgcCwgTlVMTCk7Cj4gKwkJciA9IGdldF91c2VyX3BhZ2VzKHVzZXJwdHIs IG51bV9wYWdlcywgZmxhZ3MsIHAsIE5VTEwpOwo+ICAKPiAgCQlzcGluX2xvY2soJmd0dC0+Z3Vw dGFza2xvY2spOwo+ICAJCWxpc3RfZGVsKCZndXB0YXNrLmxpc3QpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3R0bS5jCj4gaW5kZXggNDU1MjY4Mi4uM2RlNWU2ZSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX3R0bS5jCj4gQEAgLTU2Niw3ICs1NjYsOCBAQCBzdGF0aWMgaW50IHJh ZGVvbl90dG1fdHRfcGluX3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRtKQo+ICAJCXVpbnQ2NF90 IHVzZXJwdHIgPSBndHQtPnVzZXJwdHIgKyBwaW5uZWQgKiBQQUdFX1NJWkU7Cj4gIAkJc3RydWN0 IHBhZ2UgKipwYWdlcyA9IHR0bS0+cGFnZXMgKyBwaW5uZWQ7Cj4gIAo+IC0JCXIgPSBnZXRfdXNl cl9wYWdlcyh1c2VycHRyLCBudW1fcGFnZXMsIHdyaXRlLCAwLCBwYWdlcywgTlVMTCk7Cj4gKwkJ ciA9IGdldF91c2VyX3BhZ2VzKHVzZXJwdHIsIG51bV9wYWdlcywgd3JpdGUgPyBGT0xMX1dSSVRF IDogMCwKPiArCQkJCSAgIHBhZ2VzLCBOVUxMKTsKPiAgCQlpZiAociA8IDApCj4gIAkJCWdvdG8g cmVsZWFzZV9wYWdlczsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlh X2RtYWJsaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYWJsaXQuYwo+IGluZGV4IDdl MmExMmMuLjFhM2FkNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1h YmxpdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5jCj4gQEAgLTI0 MSw4ICsyNDEsOCBAQCB2aWFfbG9ja19hbGxfZG1hX3BhZ2VzKGRybV92aWFfc2dfaW5mb190ICp2 c2csICBkcm1fdmlhX2RtYWJsaXRfdCAqeGZlcikKPiAgCWRvd25fcmVhZCgmY3VycmVudC0+bW0t Pm1tYXBfc2VtKTsKPiAgCXJldCA9IGdldF91c2VyX3BhZ2VzKCh1bnNpZ25lZCBsb25nKXhmZXIt Pm1lbV9hZGRyLAo+ICAJCQkgICAgIHZzZy0+bnVtX3BhZ2VzLAo+IC0JCQkgICAgICh2c2ctPmRp cmVjdGlvbiA9PSBETUFfRlJPTV9ERVZJQ0UpLAo+IC0JCQkgICAgIDAsIHZzZy0+cGFnZXMsIE5V TEwpOwo+ICsJCQkgICAgICh2c2ctPmRpcmVjdGlvbiA9PSBETUFfRlJPTV9ERVZJQ0UpID8gRk9M TF9XUklURSA6IDAsCj4gKwkJCSAgICAgdnNnLT5wYWdlcywgTlVMTCk7Cj4gIAo+ICAJdXBfcmVh ZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKPiAgCWlmIChyZXQgIT0gdnNnLT5udW1fcGFnZXMp IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jIGIvZHJpdmVy cy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCj4gaW5kZXggYzY4NzQ2Yy4uMjI0YWQyNyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKPiArKysgYi9kcml2ZXJzL2lu ZmluaWJhbmQvY29yZS91bWVtLmMKPiBAQCAtOTQsNiArOTQsNyBAQCBzdHJ1Y3QgaWJfdW1lbSAq aWJfdW1lbV9nZXQoc3RydWN0IGliX3Vjb250ZXh0ICpjb250ZXh0LCB1bnNpZ25lZCBsb25nIGFk ZHIsCj4gIAl1bnNpZ25lZCBsb25nIGRtYV9hdHRycyA9IDA7Cj4gIAlzdHJ1Y3Qgc2NhdHRlcmxp c3QgKnNnLCAqc2dfbGlzdF9zdGFydDsKPiAgCWludCBuZWVkX3JlbGVhc2UgPSAwOwo+ICsJdW5z aWduZWQgaW50IGd1cF9mbGFncyA9IEZPTExfV1JJVEU7Cj4gIAo+ICAJaWYgKGRtYXN5bmMpCj4g IAkJZG1hX2F0dHJzIHw9IERNQV9BVFRSX1dSSVRFX0JBUlJJRVI7Cj4gQEAgLTE4Myw2ICsxODQs OSBAQCBzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9nZXQoc3RydWN0IGliX3Vjb250ZXh0ICpjb250 ZXh0LCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+ICAK PiArCWlmICghdW1lbS0+d3JpdGFibGUpCj4gKwkJZ3VwX2ZsYWdzIHw9IEZPTExfRk9SQ0U7Cj4g Kwo+ICAJbmVlZF9yZWxlYXNlID0gMTsKPiAgCXNnX2xpc3Rfc3RhcnQgPSB1bWVtLT5zZ19oZWFk LnNnbDsKPiAgCj4gQEAgLTE5MCw3ICsxOTQsNyBAQCBzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9n ZXQoc3RydWN0IGliX3Vjb250ZXh0ICpjb250ZXh0LCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gIAkJ cmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3VyX2Jhc2UsCj4gIAkJCQkgICAgIG1pbl90KHVuc2lnbmVk IGxvbmcsIG5wYWdlcywKPiAgCQkJCQkgICBQQUdFX1NJWkUgLyBzaXplb2YgKHN0cnVjdCBwYWdl ICopKSwKPiAtCQkJCSAgICAgMSwgIXVtZW0tPndyaXRhYmxlLCBwYWdlX2xpc3QsIHZtYV9saXN0 KTsKPiArCQkJCSAgICAgZ3VwX2ZsYWdzLCBwYWdlX2xpc3QsIHZtYV9saXN0KTsKPiAgCj4gIAkJ aWYgKHJldCA8IDApCj4gIAkJCWdvdG8gb3V0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmlu aWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210 aGNhL210aGNhX21lbWZyZWUuYwo+IGluZGV4IDZjMDBkMDQuLmM2ZmU4OWQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuYwo+ICsrKyBiL2Ry aXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKPiBAQCAtNDcyLDcgKzQ3 Miw3IEBAIGludCBtdGhjYV9tYXBfdXNlcl9kYihzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYsIHN0cnVj dCBtdGhjYV91YXIgKnVhciwKPiAgCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gLQlyZXQgPSBnZXRf dXNlcl9wYWdlcyh1YWRkciAmIFBBR0VfTUFTSywgMSwgMSwgMCwgcGFnZXMsIE5VTEwpOwo+ICsJ cmV0ID0gZ2V0X3VzZXJfcGFnZXModWFkZHIgJiBQQUdFX01BU0ssIDEsIEZPTExfV1JJVEUsIHBh Z2VzLCBOVUxMKTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCWdvdG8gb3V0Owo+ICAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdXNlcl9wYWdlcy5jIGIvZHJpdmVy cy9pbmZpbmliYW5kL2h3L3FpYi9xaWJfdXNlcl9wYWdlcy5jCj4gaW5kZXggMmQyYjk0Zi4uNzVm MDg2MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3Bh Z2VzLmMKPiArKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3BhZ2VzLmMK PiBAQCAtNjcsNyArNjcsOCBAQCBzdGF0aWMgaW50IF9fcWliX2dldF91c2VyX3BhZ2VzKHVuc2ln bmVkIGxvbmcgc3RhcnRfcGFnZSwgc2l6ZV90IG51bV9wYWdlcywKPiAgCj4gIAlmb3IgKGdvdCA9 IDA7IGdvdCA8IG51bV9wYWdlczsgZ290ICs9IHJldCkgewo+ICAJCXJldCA9IGdldF91c2VyX3Bh Z2VzKHN0YXJ0X3BhZ2UgKyBnb3QgKiBQQUdFX1NJWkUsCj4gLQkJCQkgICAgIG51bV9wYWdlcyAt IGdvdCwgMSwgMSwKPiArCQkJCSAgICAgbnVtX3BhZ2VzIC0gZ290LAo+ICsJCQkJICAgICBGT0xM X1dSSVRFIHwgRk9MTF9GT1JDRSwKPiAgCQkJCSAgICAgcCArIGdvdCwgTlVMTCk7Cj4gIAkJaWYg KHJldCA8IDApCj4gIAkJCWdvdG8gYmFpbF9yZWxlYXNlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfdWlvbS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3 L3VzbmljL3VzbmljX3Vpb20uYwo+IGluZGV4IGEwYjZlYmUuLjFjY2VlNmUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX3Vpb20uYwo+ICsrKyBiL2RyaXZl cnMvaW5maW5pYmFuZC9ody91c25pYy91c25pY191aW9tLmMKPiBAQCAtMTExLDYgKzExMSw3IEBA IHN0YXRpYyBpbnQgdXNuaWNfdWlvbV9nZXRfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzaXpl X3Qgc2l6ZSwgaW50IHdyaXRhYmxlLAo+ICAJaW50IGk7Cj4gIAlpbnQgZmxhZ3M7Cj4gIAlkbWFf YWRkcl90IHBhOwo+ICsJdW5zaWduZWQgaW50IGd1cF9mbGFnczsKPiAgCj4gIAlpZiAoIWNhbl9k b19tbG9jaygpKQo+ICAJCXJldHVybiAtRVBFUk07Cj4gQEAgLTEzNSw2ICsxMzYsOCBAQCBzdGF0 aWMgaW50IHVzbmljX3Vpb21fZ2V0X3BhZ2VzKHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IHNp emUsIGludCB3cml0YWJsZSwKPiAgCj4gIAlmbGFncyA9IElPTU1VX1JFQUQgfCBJT01NVV9DQUNI RTsKPiAgCWZsYWdzIHw9ICh3cml0YWJsZSkgPyBJT01NVV9XUklURSA6IDA7Cj4gKwlndXBfZmxh Z3MgPSBGT0xMX1dSSVRFOwo+ICsJZ3VwX2ZsYWdzIHw9ICh3cml0YWJsZSkgPyAwIDogRk9MTF9G T1JDRTsKPiAgCWN1cl9iYXNlID0gYWRkciAmIFBBR0VfTUFTSzsKPiAgCXJldCA9IDA7Cj4gIAo+ IEBAIC0xNDIsNyArMTQ1LDcgQEAgc3RhdGljIGludCB1c25pY191aW9tX2dldF9wYWdlcyh1bnNp Z25lZCBsb25nIGFkZHIsIHNpemVfdCBzaXplLCBpbnQgd3JpdGFibGUsCj4gIAkJcmV0ID0gZ2V0 X3VzZXJfcGFnZXMoY3VyX2Jhc2UsCj4gIAkJCQkJbWluX3QodW5zaWduZWQgbG9uZywgbnBhZ2Vz LAo+ICAJCQkJCVBBR0VfU0laRSAvIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSksCj4gLQkJCQkJMSwg IXdyaXRhYmxlLCBwYWdlX2xpc3QsIE5VTEwpOwo+ICsJCQkJCWd1cF9mbGFncywgcGFnZV9saXN0 LCBOVUxMKTsKPiAgCj4gIAkJaWYgKHJldCA8IDApCj4gIAkJCWdvdG8gb3V0Owo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtc2cuYyBiL2RyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmLWRtYS1zZy5jCj4gaW5kZXggZjMwMGYwNi4uMWRiMGFm NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtc2cu Ywo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmLWRtYS1zZy5jCj4gQEAg LTE1Niw2ICsxNTYsNyBAQCBzdGF0aWMgaW50IHZpZGVvYnVmX2RtYV9pbml0X3VzZXJfbG9ja2Vk KHN0cnVjdCB2aWRlb2J1Zl9kbWFidWYgKmRtYSwKPiAgewo+ICAJdW5zaWduZWQgbG9uZyBmaXJz dCwgbGFzdDsKPiAgCWludCBlcnIsIHJ3ID0gMDsKPiArCXVuc2lnbmVkIGludCBmbGFncyA9IEZP TExfRk9SQ0U7Cj4gIAo+ICAJZG1hLT5kaXJlY3Rpb24gPSBkaXJlY3Rpb247Cj4gIAlzd2l0Y2gg KGRtYS0+ZGlyZWN0aW9uKSB7Cj4gQEAgLTE3OCwxMiArMTc5LDE0IEBAIHN0YXRpYyBpbnQgdmlk ZW9idWZfZG1hX2luaXRfdXNlcl9sb2NrZWQoc3RydWN0IHZpZGVvYnVmX2RtYWJ1ZiAqZG1hLAo+ ICAJaWYgKE5VTEwgPT0gZG1hLT5wYWdlcykKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gKwlp ZiAocncgPT0gUkVBRCkKPiArCQlmbGFncyB8PSBGT0xMX1dSSVRFOwo+ICsKPiAgCWRwcmludGso MSwgImluaXQgdXNlciBbMHglbHgrMHglbHggPT4gJWQgcGFnZXNdXG4iLAo+ICAJCWRhdGEsIHNp emUsIGRtYS0+bnJfcGFnZXMpOwo+ICAKPiAgCWVyciA9IGdldF91c2VyX3BhZ2VzKGRhdGEgJiBQ QUdFX01BU0ssIGRtYS0+bnJfcGFnZXMsCj4gLQkJCSAgICAgcncgPT0gUkVBRCwgMSwgLyogZm9y Y2UgKi8KPiAtCQkJICAgICBkbWEtPnBhZ2VzLCBOVUxMKTsKPiArCQkJICAgICBmbGFncywgZG1h LT5wYWdlcywgTlVMTCk7Cj4gIAo+ICAJaWYgKGVyciAhPSBkbWEtPm5yX3BhZ2VzKSB7Cj4gIAkJ ZG1hLT5ucl9wYWdlcyA9IChlcnIgPj0gMCkgPyBlcnIgOiAwOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21pc2MvbWljL3NjaWYvc2NpZl9ybWEuYyBiL2RyaXZlcnMvbWlzYy9taWMvc2NpZi9zY2lm X3JtYS5jCj4gaW5kZXggZTAyMDNiMS4uZjgwNmE0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21p c2MvbWljL3NjaWYvc2NpZl9ybWEuYwo+ICsrKyBiL2RyaXZlcnMvbWlzYy9taWMvc2NpZi9zY2lm X3JtYS5jCj4gQEAgLTEzOTYsOCArMTM5Niw3IEBAIGludCBfX3NjaWZfcGluX3BhZ2VzKHZvaWQg KmFkZHIsIHNpemVfdCBsZW4sIGludCAqb3V0X3Byb3QsCj4gIAkJcGlubmVkX3BhZ2VzLT5ucl9w YWdlcyA9IGdldF91c2VyX3BhZ2VzKAo+ICAJCQkJKHU2NClhZGRyLAo+ICAJCQkJbnJfcGFnZXMs Cj4gLQkJCQkhIShwcm90ICYgU0NJRl9QUk9UX1dSSVRFKSwKPiAtCQkJCTAsCj4gKwkJCQkocHJv dCAmIFNDSUZfUFJPVF9XUklURSkgPyBGT0xMX1dSSVRFIDogMCwKPiAgCQkJCXBpbm5lZF9wYWdl cy0+cGFnZXMsCj4gIAkJCQlOVUxMKTsKPiAgCQl1cF93cml0ZSgmbW0tPm1tYXBfc2VtKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1ZmF1bHQuYyBiL2RyaXZlcnMvbWlz Yy9zZ2ktZ3J1L2dydWZhdWx0LmMKPiBpbmRleCBhMmQ5N2I5Li42ZmI3NzNkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvbWlzYy9zZ2ktZ3J1L2dydWZhdWx0LmMKPiArKysgYi9kcml2ZXJzL21pc2Mv c2dpLWdydS9ncnVmYXVsdC5jCj4gQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgaW50IG5vbl9h dG9taWNfcHRlX2xvb2t1cChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPiAgI2Vsc2UKPiAg CSpwYWdlc2hpZnQgPSBQQUdFX1NISUZUOwo+ICAjZW5kaWYKPiAtCWlmIChnZXRfdXNlcl9wYWdl cyh2YWRkciwgMSwgd3JpdGUsIDAsICZwYWdlLCBOVUxMKSA8PSAwKQo+ICsJaWYgKGdldF91c2Vy X3BhZ2VzKHZhZGRyLCAxLCB3cml0ZSA/IEZPTExfV1JJVEUgOiAwLCAmcGFnZSwgTlVMTCkgPD0g MCkKPiAgCQlyZXR1cm4gLUVGQVVMVDsKPiAgCSpwYWRkciA9IHBhZ2VfdG9fcGh5cyhwYWdlKTsK PiAgCXB1dF9wYWdlKHBhZ2UpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL2dvbGRm aXNoL2dvbGRmaXNoX3BpcGUuYyBiL2RyaXZlcnMvcGxhdGZvcm0vZ29sZGZpc2gvZ29sZGZpc2hf cGlwZS5jCj4gaW5kZXggMDc0NjJkNy4uMWFiYTJjNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Bs YXRmb3JtL2dvbGRmaXNoL2dvbGRmaXNoX3BpcGUuYwo+ICsrKyBiL2RyaXZlcnMvcGxhdGZvcm0v Z29sZGZpc2gvZ29sZGZpc2hfcGlwZS5jCj4gQEAgLTMwOSw3ICszMDksOCBAQCBzdGF0aWMgc3Np emVfdCBnb2xkZmlzaF9waXBlX3JlYWRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191 c2VyICpidWZmZXIsCj4gIAkJICogbXVjaCBtZW1vcnkgdG8gdGhlIHByb2Nlc3MuCj4gIAkJICov Cj4gIAkJZG93bl9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwo+IC0JCXJldCA9IGdldF91 c2VyX3BhZ2VzKGFkZHJlc3MsIDEsICFpc193cml0ZSwgMCwgJnBhZ2UsIE5VTEwpOwo+ICsJCXJl dCA9IGdldF91c2VyX3BhZ2VzKGFkZHJlc3MsIDEsIGlzX3dyaXRlID8gMCA6IEZPTExfV1JJVEUs Cj4gKwkJCQkmcGFnZSwgTlVMTCk7Cj4gIAkJdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKPiAgCQlpZiAocmV0IDwgMCkKPiAgCQkJYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cmFwaWRpby9kZXZpY2VzL3Jpb19tcG9ydF9jZGV2LmMgYi9kcml2ZXJzL3JhcGlkaW8vZGV2aWNl cy9yaW9fbXBvcnRfY2Rldi5jCj4gaW5kZXggNDM2ZGZlOC4uOTAxM2E1OCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL3JhcGlkaW8vZGV2aWNlcy9yaW9fbXBvcnRfY2Rldi5jCj4gKysrIGIvZHJpdmVy cy9yYXBpZGlvL2RldmljZXMvcmlvX21wb3J0X2NkZXYuYwo+IEBAIC04OTIsNyArODkyLDggQEAg cmlvX2RtYV90cmFuc2ZlcihzdHJ1Y3QgZmlsZSAqZmlscCwgdTMyIHRyYW5zZmVyX21vZGUsCj4g IAkJZG93bl9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwo+ICAJCXBpbm5lZCA9IGdldF91 c2VyX3BhZ2VzKAo+ICAJCQkJKHVuc2lnbmVkIGxvbmcpeGZlci0+bG9jX2FkZHIgJiBQQUdFX01B U0ssCj4gLQkJCQlucl9wYWdlcywgZGlyID09IERNQV9GUk9NX0RFVklDRSwgMCwKPiArCQkJCW5y X3BhZ2VzLAo+ICsJCQkJZGlyID09IERNQV9GUk9NX0RFVklDRSA/IEZPTExfV1JJVEUgOiAwLAo+ ICAJCQkJcGFnZV9saXN0LCBOVUxMKTsKPiAgCQl1cF9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9z ZW0pOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3ZjMDRfc2VydmljZXMvaW50 ZXJmYWNlL3ZjaGlxX2FybS92Y2hpcV8yODM1X2FybS5jIGIvZHJpdmVycy9zdGFnaW5nL3ZjMDRf c2VydmljZXMvaW50ZXJmYWNlL3ZjaGlxX2FybS92Y2hpcV8yODM1X2FybS5jCj4gaW5kZXggYzI5 MDQwZi4uMTA5MWI5ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvdmMwNF9zZXJ2aWNl cy9pbnRlcmZhY2UvdmNoaXFfYXJtL3ZjaGlxXzI4MzVfYXJtLmMKPiArKysgYi9kcml2ZXJzL3N0 YWdpbmcvdmMwNF9zZXJ2aWNlcy9pbnRlcmZhY2UvdmNoaXFfYXJtL3ZjaGlxXzI4MzVfYXJtLmMK PiBAQCAtNDIzLDggKzQyMyw3IEBAIGNyZWF0ZV9wYWdlbGlzdChjaGFyIF9fdXNlciAqYnVmLCBz aXplX3QgY291bnQsIHVuc2lnbmVkIHNob3J0IHR5cGUsCj4gIAkJYWN0dWFsX3BhZ2VzID0gZ2V0 X3VzZXJfcGFnZXModGFzaywgdGFzay0+bW0sCj4gIAkJCQkgICAgICAgICAgKHVuc2lnbmVkIGxv bmcpYnVmICYgfihQQUdFX1NJWkUgLSAxKSwKPiAgCQkJCQkgIG51bV9wYWdlcywKPiAtCQkJCQkg ICh0eXBlID09IFBBR0VMSVNUX1JFQUQpIC8qV3JpdGUgKi8gLAo+IC0JCQkJCSAgMCAvKkZvcmNl ICovICwKPiArCQkJCQkgICh0eXBlID09IFBBR0VMSVNUX1JFQUQpID8gRk9MTF9XUklURSA6IDAs Cj4gIAkJCQkJICBwYWdlcywKPiAgCQkJCQkgIE5VTEwgLyp2bWFzICovKTsKPiAgCQl1cF9yZWFk KCZ0YXNrLT5tbS0+bW1hcF9zZW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdmMw NF9zZXJ2aWNlcy9pbnRlcmZhY2UvdmNoaXFfYXJtL3ZjaGlxX2FybS5jIGIvZHJpdmVycy9zdGFn aW5nL3ZjMDRfc2VydmljZXMvaW50ZXJmYWNlL3ZjaGlxX2FybS92Y2hpcV9hcm0uYwo+IGluZGV4 IGUxMWMwZTAuLjdiNmNkNGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL3ZjMDRfc2Vy dmljZXMvaW50ZXJmYWNlL3ZjaGlxX2FybS92Y2hpcV9hcm0uYwo+ICsrKyBiL2RyaXZlcnMvc3Rh Z2luZy92YzA0X3NlcnZpY2VzL2ludGVyZmFjZS92Y2hpcV9hcm0vdmNoaXFfYXJtLmMKPiBAQCAt MTQ3Nyw4ICsxNDc3LDcgQEAgZHVtcF9waHlzX21lbSh2b2lkICp2aXJ0X2FkZHIsIHVpbnQzMl90 IG51bV9ieXRlcykKPiAgCQljdXJyZW50LT5tbSwgICAgICAgICAgICAgIC8qIG1tICovCj4gIAkJ KHVuc2lnbmVkIGxvbmcpdmlydF9hZGRyLCAvKiBzdGFydCAqLwo+ICAJCW51bV9wYWdlcywgICAg ICAgICAgICAgICAgLyogbGVuICovCj4gLQkJMCwgICAgICAgICAgICAgICAgICAgICAgICAvKiB3 cml0ZSAqLwo+IC0JCTAsICAgICAgICAgICAgICAgICAgICAgICAgLyogZm9yY2UgKi8KPiArCQkw LCAgICAgICAgICAgICAgICAgICAgICAgIC8qIGd1cF9mbGFncyAqLwo+ICAJCXBhZ2VzLCAgICAg ICAgICAgICAgICAgICAgLyogcGFnZXMgKGFycmF5IG9mIHBhZ2UgcG9pbnRlcnMpICovCj4gIAkJ TlVMTCk7ICAgICAgICAgICAgICAgICAgICAvKiB2bWFzICovCj4gIAl1cF9yZWFkKCZjdXJyZW50 LT5tbS0+bW1hcF9zZW0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnQvZnNsX2h5cGVydmlz b3IuYyBiL2RyaXZlcnMvdmlydC9mc2xfaHlwZXJ2aXNvci5jCj4gaW5kZXggNjBiZGFkMy4uMTUw Y2UyYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3ZpcnQvZnNsX2h5cGVydmlzb3IuYwo+ICsrKyBi L2RyaXZlcnMvdmlydC9mc2xfaHlwZXJ2aXNvci5jCj4gQEAgLTI0NSw4ICsyNDUsOCBAQCBzdGF0 aWMgbG9uZyBpb2N0bF9tZW1jcHkoc3RydWN0IGZzbF9odl9pb2N0bF9tZW1jcHkgX191c2VyICpw KQo+ICAJLyogR2V0IHRoZSBwaHlzaWNhbCBhZGRyZXNzZXMgb2YgdGhlIHNvdXJjZSBidWZmZXIg Ki8KPiAgCWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKPiAgCW51bV9waW5uZWQg PSBnZXRfdXNlcl9wYWdlcyhwYXJhbS5sb2NhbF92YWRkciAtIGxiX29mZnNldCwKPiAtCQludW1f cGFnZXMsIChwYXJhbS5zb3VyY2UgPT0gLTEpID8gUkVBRCA6IFdSSVRFLAo+IC0JCTAsIHBhZ2Vz LCBOVUxMKTsKPiArCQludW1fcGFnZXMsIChwYXJhbS5zb3VyY2UgPT0gLTEpID8gMCA6IEZPTExf V1JJVEUsCj4gKwkJcGFnZXMsIE5VTEwpOwo+ICAJdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBf c2VtKTsKPiAgCj4gIAlpZiAobnVtX3Bpbm5lZCAhPSBudW1fcGFnZXMpIHsKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCj4gaW5kZXggNWZmMDg0 ZjYuLjY4NmE0NzcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oCj4gKysrIGIvaW5j bHVkZS9saW51eC9tbS5oCj4gQEAgLTEyNzksNyArMTI3OSw3IEBAIGxvbmcgZ2V0X3VzZXJfcGFn ZXNfcmVtb3RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwK PiAgCQkJICAgIGludCB3cml0ZSwgaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICAJ CQkgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqdm1hcyk7Cj4gIGxvbmcgZ2V0X3VzZXJfcGFn ZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKPiAtCQkJICAg IGludCB3cml0ZSwgaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICsJCQkgICAgdW5z aWduZWQgaW50IGd1cF9mbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcywKPiAgCQkJICAgIHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqKnZtYXMpOwo+ICBsb25nIGdldF91c2VyX3BhZ2VzX2xvY2tlZCh1 bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAo+ICAJCSAgICB1bnNp Z25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBpbnQgKmxvY2tlZCk7Cj4g ZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMKPiBpbmRleCA3YTBkMDMzLi5kYzkxMzAz IDEwMDY0NAo+IC0tLSBhL21tL2d1cC5jCj4gKysrIGIvbW0vZ3VwLmMKPiBAQCAtOTc3LDE4ICs5 NzcsMTIgQEAgRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlc19yZW1vdGUpOwo+ICAgKiBvYnZp b3VzbHkgZG9uJ3QgcGFzcyBGT0xMX1JFTU9URSBpbiBoZXJlLgo+ICAgKi8KPiAgbG9uZyBnZXRf dXNlcl9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAo+ IC0JCWludCB3cml0ZSwgaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICsJCXVuc2ln bmVkIGludCBndXBfZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXMsCj4gIAkJc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICoqdm1hcykKPiAgewo+IC0JdW5zaWduZWQgaW50IGZsYWdzID0gRk9MTF9UT1VD SDsKPiAtCj4gLQlpZiAod3JpdGUpCj4gLQkJZmxhZ3MgfD0gRk9MTF9XUklURTsKPiAtCWlmIChm b3JjZSkKPiAtCQlmbGFncyB8PSBGT0xMX0ZPUkNFOwo+IC0KPiAgCXJldHVybiBfX2dldF91c2Vy X3BhZ2VzX2xvY2tlZChjdXJyZW50LCBjdXJyZW50LT5tbSwgc3RhcnQsIG5yX3BhZ2VzLAo+IC0J CQkJICAgICAgIHBhZ2VzLCB2bWFzLCBOVUxMLCBmYWxzZSwgZmxhZ3MpOwo+ICsJCQkJICAgICAg IHBhZ2VzLCB2bWFzLCBOVUxMLCBmYWxzZSwKPiArCQkJCSAgICAgICBndXBfZmxhZ3MgfCBGT0xM X1RPVUNIKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGdldF91c2VyX3BhZ2VzKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL21tL21lbXBvbGljeS5jIGIvbW0vbWVtcG9saWN5LmMKPiBpbmRleCBhZDFjOTZh Li4wYjg1OWFmIDEwMDY0NAo+IC0tLSBhL21tL21lbXBvbGljeS5jCj4gKysrIGIvbW0vbWVtcG9s aWN5LmMKPiBAQCAtODUwLDcgKzg1MCw3IEBAIHN0YXRpYyBpbnQgbG9va3VwX25vZGUodW5zaWdu ZWQgbG9uZyBhZGRyKQo+ICAJc3RydWN0IHBhZ2UgKnA7Cj4gIAlpbnQgZXJyOwo+ICAKPiAtCWVy ciA9IGdldF91c2VyX3BhZ2VzKGFkZHIgJiBQQUdFX01BU0ssIDEsIDAsIDAsICZwLCBOVUxMKTsK PiArCWVyciA9IGdldF91c2VyX3BhZ2VzKGFkZHIgJiBQQUdFX01BU0ssIDEsIDAsICZwLCBOVUxM KTsKPiAgCWlmIChlcnIgPj0gMCkgewo+ICAJCWVyciA9IHBhZ2VfdG9fbmlkKHApOwo+ICAJCXB1 dF9wYWdlKHApOwo+IGRpZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYwo+IGluZGV4 IDg0MmNmZGQuLjcwY2I4NDQgMTAwNjQ0Cj4gLS0tIGEvbW0vbm9tbXUuYwo+ICsrKyBiL21tL25v bW11LmMKPiBAQCAtMTYwLDE4ICsxNjAsMTEgQEAgbG9uZyBfX2dldF91c2VyX3BhZ2VzKHN0cnVj dCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKPiAgICogLSBkb24ndCBw ZXJtaXQgYWNjZXNzIHRvIFZNQXMgdGhhdCBkb24ndCBzdXBwb3J0IGl0LCBzdWNoIGFzIEkvTyBt YXBwaW5ncwo+ICAgKi8KPiAgbG9uZyBnZXRfdXNlcl9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0 LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAo+IC0JCSAgICBpbnQgd3JpdGUsIGludCBmb3JjZSwg c3RydWN0IHBhZ2UgKipwYWdlcywKPiArCQkgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncywgc3Ry dWN0IHBhZ2UgKipwYWdlcywKPiAgCQkgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqdm1hcykK PiAgewo+IC0JaW50IGZsYWdzID0gMDsKPiAtCj4gLQlpZiAod3JpdGUpCj4gLQkJZmxhZ3MgfD0g Rk9MTF9XUklURTsKPiAtCWlmIChmb3JjZSkKPiAtCQlmbGFncyB8PSBGT0xMX0ZPUkNFOwo+IC0K PiAtCXJldHVybiBfX2dldF91c2VyX3BhZ2VzKGN1cnJlbnQsIGN1cnJlbnQtPm1tLCBzdGFydCwg bnJfcGFnZXMsIGZsYWdzLAo+IC0JCQkJcGFnZXMsIHZtYXMsIE5VTEwpOwo+ICsJcmV0dXJuIF9f Z2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sIHN0YXJ0LCBucl9wYWdlcywKPiAr CQkJCWd1cF9mbGFncywgcGFnZXMsIHZtYXMsIE5VTEwpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0wo Z2V0X3VzZXJfcGFnZXMpOwo+ICAKPiBAQCAtMTc5LDEwICsxNzIsNyBAQCBsb25nIGdldF91c2Vy X3BhZ2VzX2xvY2tlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2Vz LAo+ICAJCQkgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncywgc3RydWN0IHBhZ2UgKipwYWdlcywK PiAgCQkJICAgIGludCAqbG9ja2VkKQo+ICB7Cj4gLQlpbnQgd3JpdGUgPSBndXBfZmxhZ3MgJiBG T0xMX1dSSVRFOwo+IC0JaW50IGZvcmNlID0gZ3VwX2ZsYWdzICYgRk9MTF9GT1JDRTsKPiAtCj4g LQlyZXR1cm4gZ2V0X3VzZXJfcGFnZXMoc3RhcnQsIG5yX3BhZ2VzLCB3cml0ZSwgZm9yY2UsIHBh Z2VzLCBOVUxMKTsKPiArCXJldHVybiBnZXRfdXNlcl9wYWdlcyhzdGFydCwgbnJfcGFnZXMsIGd1 cF9mbGFncywgcGFnZXMsIE5VTEwpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZ2V0X3VzZXJfcGFn ZXNfbG9ja2VkKTsKPiAgCj4gLS0gCj4gMi4xMC4wCj4gCi0tIApKYW4gS2FyYSA8amFja0BzdXNl LmNvbT4KU1VTRSBMYWJzLCBDUgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK