Re: [PATCH] drm/gem: Move pages_to_sg helper into drm_gem.c
Christian König <[email protected]> Tue, 4 Aug 2026 15:38:09 +0200
| Newsgroups | org.infradead.lists.linux-rockchip,org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.freedesktop.lists.intel-xe,org.freedesktop.lists.nouveau,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-tegra,org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
T24gNy8yNC8yNiAxNDowOCwgQWRyacOhbiBMYXJ1bWJlIHdyb3RlOgo+IE5vbmUgb2YgdGhlIHNl bWFudGljcyBvZiB0aGUgZnVuY3Rpb24gdGVsbCBvZiBpdCBiZWluZyBhIFBSSU1FLWV4Y2x1c2l2 ZQo+IGVudHJ5IHBvaW50LiBJbiBmYWN0LCBtb3N0IGRyaXZlcnMgc2VlbSB0byBiZSB1c2luZyBp dCB0byB0cmFuc2xhdGUgYSBsaXN0Cj4gb2YgcGFnZXMgaW50byBhbiBzZyB0YWJsZSB0aGF0IGNh biBiZSB1c2VkIGZvciBHUFUgbWFwcGluZyBsYXRlciBvbiwgcmF0aGVyCj4gdGhhbiBqdXN0IGZv ciBzaGFyaW5nIGFuIG9iamVjdCdzIHBhZ2VzIHdpdGggYW5vdGhlciBkcml2ZXIuCj4gCj4gTW92 ZSBpdCBhY3Jvc3MgZmlsZXMgYW5kIHJlbmFtZSBhY2NvcmRpbmdseS4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBBZHJpw6FuIExhcnVtYmUgPGFkcmlhbi5sYXJ1bWJlQGNvbGxhYm9yYS5jb20+Cj4gLS0t Cj4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKCkgaGFzIG5vIHJlYWwgZGVwZW5kZW5jeSBvbiBQUklN RS9kbWEtYnVmIGludGVyZmFjZXMuCj4gSXQgaXMgYSBnZW5lcmljIGhlbHBlciB0aGF0IGNvbnZl cnRzIGEgcGFnZSBhcnJheSBpbnRvIGEgc2NhdHRlci9nYXRoZXIKPiB0YWJsZSB2aWEgZG1hX21h cF9zZ19hdHRycy4gTm90aGluZyBpbiBpdHMgaW1wbGVtZW50YXRpb24gdG91Y2hlcyBzdHJ1Y3QK PiBkbWFfYnVmIG9yIGltcG9ydC9leHBvcnQgbG9naWMuCgpJdCBpcyBjb3JyZWN0IHRoYXQgdGhp cyBoZWxwZXIgaXMgbm90IERNQS1idWYgZGVwZW5kZW50LCBidXQgRE1BLWJ1ZiBzaG91bGQgYmUg dGhlIG9ubHkgY2FzZSB3aGVuIGEgRFJNIGRyaXZlciBuZWVkcyB0byBjb252ZXJ0IGFuIGFycmF5 IG9mIHBhZ2VzIGludG8gYW4gU0cgdGFibGUuCgpUaGUgYmFja2dyb3VuZCBpcyB0aGF0IHdlIHdh bnQgdG8gZGlzY291cmFnZSBwZW9wbGUgZnJvbSB1c2luZyBTRyB0YWJsZXMgYmVjYXVzZSBpdCB3 YXMgYSByYXRoZXIgYmFkIGRlc2lnbiBjaG9pY2UgdG8gaGF2ZSBwYWdlcyBtYW5nbGVkIHdpdGgg dGhlIERNQSBhZGRyZXNzZXMgaW4gb25lIHN0cnVjdHVyZSBpbiB0aGUgZmlyc3QgcGxhY2UuCgpT byBxdWVzdGlvbiBpcyB3aHkgZG8geW91IHdhbnQgdG8gZG8gdGhpcz8KClJlZ2FyZHMsCkNocmlz dGlhbi4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVm LmMgfCAgNiArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5jICAgICAgICAgICAgICAg ICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fc2htZW1faGVscGVyLmMgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f cHJpbWUuYyAgICAgICAgICAgICAgICAgfCAzOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X2dlbS5jICAgICAgIHwgIDMgKy0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMgfCAgMyArKy0K PiAgZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xzZGNfZ2VtLmMgICAgICAgICB8ICAzICstLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYyAgICAgICAgICAgICAgIHwgIDIgKy0KPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMgICAgICAgICB8ICAyICstCj4gIGRy aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfcHJpbWUuYyAgICAgfCAgNCArLS0KPiAgZHJp dmVycy9ncHUvZHJtL3BhbnRob3IvcGFudGhvcl9nZW0uYyAgICAgICB8ICA2ICsrLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMgICAgICAgfCAgNSArKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZ2VtLmMgfCAgNiArKy0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMgICAgICAgICAgICAgICAgIHwgIDQgKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dlbS5jICAgICAgICAgfCAgNCArLS0KPiAgZHJp dmVycy9ncHUvZHJtL3hlL3hlX2RtYV9idWYuYyAgICAgICAgICAgICB8ICA2ICsrLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyAgICAgfCAgMiArLQo+ICBpbmNs dWRlL2RybS9kcm1fZ2VtLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrLQo+ICBpbmNs dWRlL2RybS9kcm1fcHJpbWUuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KPiAgMTkgZmls ZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kbWFfYnVmLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZG1hX2J1Zi5jCj4gaW5kZXggYjMzYzMwMGUy NmUyLi5jOWE5OGFlYzdlYjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RtYV9idWYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kbWFfYnVmLmMKPiBAQCAtMjAzLDkgKzIwMyw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFi bGUgKmFtZGdwdV9kbWFfYnVmX21hcChzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gs Cj4gIAo+ICAJc3dpdGNoIChiby0+dGJvLnJlc291cmNlLT5tZW1fdHlwZSkgewo+ICAJY2FzZSBU VE1fUExfVFQ6Cj4gLQkJc2d0ID0gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LAo+IC0J CQkJCSAgICBiby0+dGJvLnR0bS0+cGFnZXMsCj4gLQkJCQkJICAgIGJvLT50Ym8udHRtLT5udW1f cGFnZXMpOwo+ICsJCXNndCA9IGRybV9wYWdlc190b19zZyhvYmotPmRldiwKPiArCQkJCSAgICAg IGJvLT50Ym8udHRtLT5wYWdlcywKPiArCQkJCSAgICAgIGJvLT50Ym8udHRtLT5udW1fcGFnZXMp Owo+ICAJCWlmIChJU19FUlIoc2d0KSkKPiAgCQkJcmV0dXJuIHNndDsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbS5j Cj4gaW5kZXggMDE4ZGY5N2Q1OTBkLi4yMmM4YTNiNWY2NjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKPiBA QCAtNzgwLDYgKzc4MCw0MSBAQCB2b2lkIGRybV9nZW1fcHV0X3BhZ2VzKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0wo ZHJtX2dlbV9wdXRfcGFnZXMpOwo+ICAKPiArLyoqCj4gKyAqIGRybV9wYWdlc190b19zZyAtIGNv bnZlcnRzIGEgcGFnZSBhcnJheSBpbnRvIGFuIHNnIGxpc3QKPiArICogQGRldjogRFJNIGRldmlj ZQo+ICsgKiBAcGFnZXM6IHBvaW50ZXIgdG8gdGhlIGFycmF5IG9mIHBhZ2UgcG9pbnRlcnMgdG8g Y29udmVydAo+ICsgKiBAbnJfcGFnZXM6IGxlbmd0aCBvZiB0aGUgcGFnZSB2ZWN0b3IKPiArICoK PiArICogVGhpcyBoZWxwZXIgY3JlYXRlcyBhbiBzZyB0YWJsZSBvYmplY3QgZnJvbSBhIHNldCBv ZiBwYWdlcy4KPiArICogVGhpcyBpcyB1c2VmdWwgZm9yIGltcGxlbWVudGluZyAmZHJtX2dlbV9v YmplY3RfZnVuY3MuZ2V0X3NnX3RhYmxlLgo+ICsgKi8KPiArc3RydWN0IHNnX3RhYmxlICpkcm1f cGFnZXNfdG9fc2coc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCSBzdHJ1Y3QgcGFnZSAq KnBhZ2VzLCB1bnNpZ25lZCBpbnQgbnJfcGFnZXMpCj4gK3sKPiArCXN0cnVjdCBzZ190YWJsZSAq c2c7Cj4gKwlzaXplX3QgbWF4X3NlZ21lbnQgPSAwOwo+ICsJaW50IGVycjsKPiArCj4gKwlzZyA9 IGttYWxsb2Nfb2JqKHN0cnVjdCBzZ190YWJsZSk7Cj4gKwlpZiAoIXNnKQo+ICsJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwo+ICsKPiArCWlmIChkZXYpCj4gKwkJbWF4X3NlZ21lbnQgPSBkbWFf bWF4X21hcHBpbmdfc2l6ZShkcm1fZGV2X2RtYV9kZXYoZGV2KSk7Cj4gKwlpZiAobWF4X3NlZ21l bnQgPT0gMCkKPiArCQltYXhfc2VnbWVudCA9IFVJTlRfTUFYOwo+ICsJZXJyID0gc2dfYWxsb2Nf dGFibGVfZnJvbV9wYWdlc19zZWdtZW50KHNnLCBwYWdlcywgbnJfcGFnZXMsIDAsCj4gKwkJCQkJ CSh1bnNpZ25lZCBsb25nKW5yX3BhZ2VzIDw8IFBBR0VfU0hJRlQsCj4gKwkJCQkJCW1heF9zZWdt ZW50LCBHRlBfS0VSTkVMKTsKPiArCWlmIChlcnIpIHsKPiArCQlrZnJlZShzZyk7Cj4gKwkJc2cg PSBFUlJfUFRSKGVycik7Cj4gKwl9Cj4gKwlyZXR1cm4gc2c7Cj4gK30KPiArRVhQT1JUX1NZTUJP TChkcm1fcGFnZXNfdG9fc2cpOwo+ICsKPiAgc3RhdGljIGludCBvYmplY3RzX2xvb2t1cChzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbHAsIHUzMiAqaGFuZGxlLCBpbnQgY291bnQsCj4gIAkJCSAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICoqb2JqcykKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3NobWVt X2hlbHBlci5jCj4gaW5kZXggMjJlYzUyZTJmZmI4Li4xNDRkMDg4YTQ3N2YgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fc2htZW1faGVscGVyLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2dlbV9zaG1lbV9oZWxwZXIuYwo+IEBAIC04MjUsNyArODI1LDcgQEAgc3Ry dWN0IHNnX3RhYmxlICpkcm1fZ2VtX3NobWVtX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9z aG1lbV9vYmplY3QgKnNobWVtKQo+ICAKPiAgCWRybV9XQVJOX09OKG9iai0+ZGV2LCBkcm1fZ2Vt X2lzX2ltcG9ydGVkKG9iaikpOwo+ICAKPiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2co b2JqLT5kZXYsIHNobWVtLT5wYWdlcywgb2JqLT5zaXplID4+IFBBR0VfU0hJRlQpOwo+ICsJcmV0 dXJuIGRybV9wYWdlc190b19zZyhvYmotPmRldiwgc2htZW0tPnBhZ2VzLCBvYmotPnNpemUgPj4g UEFHRV9TSElGVCk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9zaG1lbV9nZXRf c2dfdGFibGUpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4gaW5kZXggOWI0NGM3OGNkNzdmLi41NDUz OWE4OTI5YzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4gQEAgLTgzNSw0NCArODM1LDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBkcm1fZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSAg ewo+ICAJLnZ1bm1hcCA9IGRybV9nZW1fZG1hYnVmX3Z1bm1hcCwKPiAgfTsKPiAgCj4gLS8qKgo+ IC0gKiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cgLSBjb252ZXJ0cyBhIHBhZ2UgYXJyYXkgaW50byBh biBzZyBsaXN0Cj4gLSAqIEBkZXY6IERSTSBkZXZpY2UKPiAtICogQHBhZ2VzOiBwb2ludGVyIHRv IHRoZSBhcnJheSBvZiBwYWdlIHBvaW50ZXJzIHRvIGNvbnZlcnQKPiAtICogQG5yX3BhZ2VzOiBs ZW5ndGggb2YgdGhlIHBhZ2UgdmVjdG9yCj4gLSAqCj4gLSAqIFRoaXMgaGVscGVyIGNyZWF0ZXMg YW4gc2cgdGFibGUgb2JqZWN0IGZyb20gYSBzZXQgb2YgcGFnZXMKPiAtICogdGhlIGRyaXZlciBp cyByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0aGUgcGFnZXMgaW50byB0aGUKPiAtICogaW1wb3J0 ZXJzIGFkZHJlc3Mgc3BhY2UgZm9yIHVzZSB3aXRoIGRtYV9idWYgaXRzZWxmLgo+IC0gKgo+IC0g KiBUaGlzIGlzIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nICZkcm1fZ2VtX29iamVjdF9mdW5jcy5n ZXRfc2dfdGFibGUuCj4gLSAqLwo+IC1zdHJ1Y3Qgc2dfdGFibGUgKmRybV9wcmltZV9wYWdlc190 b19zZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgICAgIHN0cnVjdCBwYWdlICoq cGFnZXMsIHVuc2lnbmVkIGludCBucl9wYWdlcykKPiAtewo+IC0Jc3RydWN0IHNnX3RhYmxlICpz ZzsKPiAtCXNpemVfdCBtYXhfc2VnbWVudCA9IDA7Cj4gLQlpbnQgZXJyOwo+IC0KPiAtCXNnID0g a21hbGxvY19vYmooc3RydWN0IHNnX3RhYmxlKTsKPiAtCWlmICghc2cpCj4gLQkJcmV0dXJuIEVS Ul9QVFIoLUVOT01FTSk7Cj4gLQo+IC0JaWYgKGRldikKPiAtCQltYXhfc2VnbWVudCA9IGRtYV9t YXhfbWFwcGluZ19zaXplKGRybV9kZXZfZG1hX2RldihkZXYpKTsKPiAtCWlmIChtYXhfc2VnbWVu dCA9PSAwKQo+IC0JCW1heF9zZWdtZW50ID0gVUlOVF9NQVg7Cj4gLQllcnIgPSBzZ19hbGxvY190 YWJsZV9mcm9tX3BhZ2VzX3NlZ21lbnQoc2csIHBhZ2VzLCBucl9wYWdlcywgMCwKPiAtCQkJCQkJ KHVuc2lnbmVkIGxvbmcpbnJfcGFnZXMgPDwgUEFHRV9TSElGVCwKPiAtCQkJCQkJbWF4X3NlZ21l bnQsIEdGUF9LRVJORUwpOwo+IC0JaWYgKGVycikgewo+IC0JCWtmcmVlKHNnKTsKPiAtCQlzZyA9 IEVSUl9QVFIoZXJyKTsKPiAtCX0KPiAtCXJldHVybiBzZzsKPiAtfQo+IC1FWFBPUlRfU1lNQk9M KGRybV9wcmltZV9wYWdlc190b19zZyk7Cj4gLQo+ICAvKioKPiAgICogZHJtX3ByaW1lX2dldF9j b250aWd1b3VzX3NpemUgLSByZXR1cm5zIHRoZSBjb250aWd1b3VzIHNpemUgb2YgdGhlIGJ1ZmZl cgo+ICAgKiBAc2d0OiBzZ190YWJsZSBkZXNjcmliaW5nIHRoZSBidWZmZXIgdG8gY2hlY2sKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYyBiL2RyaXZl cnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKPiBpbmRleCBiMDQzNmExZTEwM2YuLmE4 ZTg2MTRmODIxMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2 X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwo+IEBA IC0zLDcgKzMsNiBAQAo+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBFdG5hdml2IFByb2pl Y3QKPiAgICovCj4gIAo+IC0jaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+ICAjaW5jbHVkZSA8 ZHJtL2RybV9wcmludC5oPgo+ICAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KPiAgI2lu Y2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+Cj4gQEAgLTEwNCw3ICsxMDMsNyBAQCBzdHJ1Y3QgcGFn ZSAqKmV0bmF2aXZfZ2VtX2dldF9wYWdlcyhzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5h dml2X29iaikKPiAgCQl1bnNpZ25lZCBpbnQgbnBhZ2VzID0gZXRuYXZpdl9vYmotPmJhc2Uuc2l6 ZSA+PiBQQUdFX1NISUZUOwo+ICAJCXN0cnVjdCBzZ190YWJsZSAqc2d0Owo+ICAKPiAtCQlzZ3Qg PSBkcm1fcHJpbWVfcGFnZXNfdG9fc2coZGV2LCBldG5hdml2X29iai0+cGFnZXMsIG5wYWdlcyk7 Cj4gKwkJc2d0ID0gZHJtX3BhZ2VzX3RvX3NnKGRldiwgZXRuYXZpdl9vYmotPnBhZ2VzLCBucGFn ZXMpOwo+ICAJCWlmIChJU19FUlIoc2d0KSkgewo+ICAJCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFp bGVkIHRvIGFsbG9jYXRlIHNndDogJWxkXG4iLAo+ICAJCQkJUFRSX0VSUihzZ3QpKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMKPiBpbmRleCA2NzU3YWU2 ZWMzMDQuLmY0NDQ4NDMyNWRkYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRuYXZp di9ldG5hdml2X2dlbV9wcmltZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYvZXRu YXZpdl9nZW1fcHJpbWUuYwo+IEBAIC0zLDYgKzMsNyBAQAo+ICAgKiBDb3B5cmlnaHQgKEMpIDIw MTQtMjAxOCBFdG5hdml2IFByb2plY3QKPiAgICovCj4gIAo+ICsjaW5jbHVkZSA8ZHJtL2RybV9n ZW0uaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2Rt YS1idWYuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+IEBAIC0yMiw3ICsyMyw3IEBA IHN0cnVjdCBzZ190YWJsZSAqZXRuYXZpdl9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKQo+ICAJaWYgKFdBUk5fT04oIWV0bmF2aXZfb2JqLT5wYWdlcykp ICAvKiBzaG91bGQgaGF2ZSBhbHJlYWR5IHBpbm5lZCEgKi8KPiAgCQlyZXR1cm4gRVJSX1BUUigt RUlOVkFMKTsKPiAgCj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBl dG5hdml2X29iai0+cGFnZXMsIG5wYWdlcyk7Cj4gKwlyZXR1cm4gZHJtX3BhZ2VzX3RvX3NnKG9i ai0+ZGV2LCBldG5hdml2X29iai0+cGFnZXMsIG5wYWdlcyk7Cj4gIH0KPiAgCj4gIGludCBldG5h dml2X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3QgaW9z eXNfbWFwICptYXApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sc2Rj X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL2xzZGNfZ2VtLmMKPiBpbmRleCAyZmIw MzQ4N2M5ODMuLjM3MTYwMjI4MjQ0YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbG9v bmdzb24vbHNkY19nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9sc2RjX2dl bS5jCj4gQEAgLTksNyArOSw2IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2R1bWJfYnVmZmVycy5o Pgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9maWxlLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5o Pgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9wcmlu dC5oPgo+ICAKPiAgI2luY2x1ZGUgImxzZGNfZHJ2LmgiCj4gQEAgLTUxLDcgKzUwLDcgQEAgc3Rh dGljIHN0cnVjdCBzZ190YWJsZSAqbHNkY19nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqKQo+ICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAJfQo+ ICAKPiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIHR0LT5wYWdlcywg dHQtPm51bV9wYWdlcyk7Cj4gKwlyZXR1cm4gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCB0dC0+ cGFnZXMsIHR0LT5udW1fcGFnZXMpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBsc2RjX2dlbV9v YmplY3RfZnJlZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0u Ywo+IGluZGV4IGVmZDNkM2M5YTQ0OS4uN2UzNDE4MjkwYzIyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z2VtLmMKPiBAQCAtMjA3LDcgKzIwNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqKmdldF9wYWdl cyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKPiAgCj4gIAkJbXNtX29iai0+cGFnZXMgPSBw Owo+ICAKPiAtCQltc21fb2JqLT5zZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYs IHAsIG5wYWdlcyk7Cj4gKwkJbXNtX29iai0+c2d0ID0gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2 LCBwLCBucGFnZXMpOwo+ICAJCWlmIChJU19FUlIobXNtX29iai0+c2d0KSkgewo+ICAJCQl2b2lk ICpwdHIgPSBFUlJfQ0FTVChtc21fb2JqLT5zZ3QpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9n ZW1fcHJpbWUuYwo+IGluZGV4IDAzNmQzNGM2NzRkOS4uZDI1MzkzYTllNTQ5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9wcmltZS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ2VtX3ByaW1lLmMKPiBAQCAtMjMsNyArMjMsNyBAQCBzdHJ1Y3Qgc2df dGFibGUgKm1zbV9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKQo+ICAJaWYgKFdBUk5fT04oIW1zbV9vYmotPnBhZ2VzKSkgIC8qIHNob3VsZCBoYXZlIGFs cmVhZHkgcGlubmVkISAqLwo+ICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICAKPiAtCXJl dHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIG1zbV9vYmotPnBhZ2VzLCBucGFn ZXMpOwo+ICsJcmV0dXJuIGRybV9wYWdlc190b19zZyhvYmotPmRldiwgbXNtX29iai0+cGFnZXMs IG5wYWdlcyk7Cj4gIH0KPiAgCj4gIGludCBtc21fZ2VtX3ByaW1lX3ZtYXAoc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBpb3N5c19tYXAgKm1hcCkKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9wcmltZS5jCj4gaW5kZXggY2FhYjYwZmM2MmY2Li5iOTVmMmYwN2RmNzQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9wcmltZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9wcmltZS5jCj4gQEAgLTMyLDgg KzMyLDggQEAgc3RydWN0IHNnX3RhYmxlICpub3V2ZWF1X2dlbV9wcmltZV9nZXRfc2dfdGFibGUo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4gIHsKPiAgCXN0cnVjdCBub3V2ZWF1X2JvICpu dmJvID0gbm91dmVhdV9nZW1fb2JqZWN0KG9iaik7Cj4gIAo+IC0JcmV0dXJuIGRybV9wcmltZV9w YWdlc190b19zZyhvYmotPmRldiwgbnZiby0+Ym8udHRtLT5wYWdlcywKPiAtCQkJCSAgICAgbnZi by0+Ym8udHRtLT5udW1fcGFnZXMpOwo+ICsJcmV0dXJuIGRybV9wYWdlc190b19zZyhvYmotPmRl diwgbnZiby0+Ym8udHRtLT5wYWdlcywKPiArCQkJICAgICAgIG52Ym8tPmJvLnR0bS0+bnVtX3Bh Z2VzKTsKPiAgfQo+ICAKPiAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpub3V2ZWF1X2dlbV9wcmlt ZV9pbXBvcnRfc2dfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3BhbnRob3IvcGFudGhvcl9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW50aG9yL3BhbnRob3JfZ2VtLmMKPiBpbmRleCA5ODU1ZGY3MzgxOTQuLmVjNTMwZDI1NGZhNCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFudGhvci9wYW50aG9yX2dlbS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3BhbnRob3IvcGFudGhvcl9nZW0uYwo+IEBAIC0zMjEsOCArMzIx LDggQEAgcGFudGhvcl9nZW1fZGV2X21hcF9nZXRfc2d0X2xvY2tlZChzdHJ1Y3QgcGFudGhvcl9n ZW1fb2JqZWN0ICpibykKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAg Cj4gLQlzZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2coYm8tPmJhc2UuZGV2LCBiby0+YmFja2lu Zy5wYWdlcywKPiAtCQkJCSAgICBiby0+YmFzZS5zaXplID4+IFBBR0VfU0hJRlQpOwo+ICsJc2d0 ID0gZHJtX3BhZ2VzX3RvX3NnKGJvLT5iYXNlLmRldiwgYm8tPmJhY2tpbmcucGFnZXMsCj4gKwkJ CSAgICAgIGJvLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gIAlpZiAoSVNfRVJSKHNndCkp Cj4gIAkJcmV0dXJuIHNndDsKPiAgCj4gQEAgLTcwMiw3ICs3MDIsNyBAQCBzdGF0aWMgc3RydWN0 IHNnX3RhYmxlICpwYW50aG9yX2dlbV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmopCj4gIAlkcm1fV0FSTl9PTl9PTkNFKG9iai0+ZGV2LCAhYm8tPmJhY2tpbmcucGFnZXMp Owo+ICAJZHJtX1dBUk5fT05fT05DRShvYmotPmRldiwgIXJlZmNvdW50X3JlYWQoJmJvLT5iYWNr aW5nLnBpbl9jb3VudCkpOwo+ICAKPiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2Jq LT5kZXYsIGJvLT5iYWNraW5nLnBhZ2VzLCBvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gKwly ZXR1cm4gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBiby0+YmFja2luZy5wYWdlcywgb2JqLT5z aXplID4+IFBBR0VfU0hJRlQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IHBhbnRob3JfZ2VtX3Zt YXBfbG9ja2VkKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fcHJpbWUuYwo+IGluZGV4IGE3Nzg4MWYwMzVlNy4uNGNmYzQyODJhNTljIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ByaW1lLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wcmltZS5jCj4gQEAgLTI2LDYgKzI2LDcgQEAK PiAgCj4gICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Cj4gIAo+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9nZW0uaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJpbWUuaD4KPiAgI2luY2x1ZGUgPGRybS9y YWRlb25fZHJtLmg+Cj4gIAo+IEBAIC0zOCw4ICszOSw4IEBAIHN0cnVjdCBzZ190YWJsZSAqcmFk ZW9uX2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCj4g IHsKPiAgCXN0cnVjdCByYWRlb25fYm8gKmJvID0gZ2VtX3RvX3JhZGVvbl9ibyhvYmopOwo+ICAK PiAtCXJldHVybiBkcm1fcHJpbWVfcGFnZXNfdG9fc2cob2JqLT5kZXYsIGJvLT50Ym8udHRtLT5w YWdlcywKPiAtCQkJCSAgICAgYm8tPnRiby50dG0tPm51bV9wYWdlcyk7Cj4gKwlyZXR1cm4gZHJt X3BhZ2VzX3RvX3NnKG9iai0+ZGV2LCBiby0+dGJvLnR0bS0+cGFnZXMsCj4gKwkJCSAgICAgICBi by0+dGJvLnR0bS0+bnVtX3BhZ2VzKTsKPiAgfQo+ICAKPiAgc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpyYWRlb25fZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dl bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYwo+IGluZGV4 IGIxODg1MzlkY2EwYi4uNzg5N2RhMGJlY2Y0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCj4gQEAgLTg5LDggKzg5LDggQEAgc3RhdGljIGludCBy b2NrY2hpcF9nZW1fZ2V0X3BhZ2VzKHN0cnVjdCByb2NrY2hpcF9nZW1fb2JqZWN0ICpya19vYmop Cj4gIAo+ICAJcmtfb2JqLT5udW1fcGFnZXMgPSBya19vYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NI SUZUOwo+ICAKPiAtCXJrX29iai0+c2d0ID0gZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKHJrX29iai0+ YmFzZS5kZXYsCj4gLQkJCQkJICAgIHJrX29iai0+cGFnZXMsIHJrX29iai0+bnVtX3BhZ2VzKTsK PiArCXJrX29iai0+c2d0ID0gZHJtX3BhZ2VzX3RvX3NnKHJrX29iai0+YmFzZS5kZXYsCj4gKwkJ CQkgICAgICBya19vYmotPnBhZ2VzLCBya19vYmotPm51bV9wYWdlcyk7Cj4gIAlpZiAoSVNfRVJS KHJrX29iai0+c2d0KSkgewo+ICAJCXJldCA9IFBUUl9FUlIocmtfb2JqLT5zZ3QpOwo+ICAJCWdv dG8gZXJyX3B1dF9wYWdlczsKPiBAQCAtNDMyLDcgKzQzMiw3IEBAIHN0cnVjdCBzZ190YWJsZSAq cm9ja2NoaXBfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aikKPiAgCWludCByZXQ7Cj4gIAo+ICAJaWYgKHJrX29iai0+cGFnZXMpCj4gLQkJcmV0dXJuIGRy bV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgcmtfb2JqLT5wYWdlcywgcmtfb2JqLT5udW1f cGFnZXMpOwo+ICsJCXJldHVybiBkcm1fcGFnZXNfdG9fc2cob2JqLT5kZXYsIHJrX29iai0+cGFn ZXMsIHJrX29iai0+bnVtX3BhZ2VzKTsKPiAgCj4gIAlzZ3QgPSBremFsbG9jX29iaigqc2d0KTsK PiAgCWlmICghc2d0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKPiBpbmRleCA0MzYzOTRlMDQ4MTIuLjcwMWFm NjcyYjRlNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKPiBAQCAtMTcsNyArMTcsNyBAQAo+ICAKPiAg I2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2R1bWJfYnVmZmVy cy5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9wcmltZS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9n ZW0uaD4KPiAgCj4gICNpbmNsdWRlICJkcm0uaCIKPiAgI2luY2x1ZGUgImdlbS5oIgo+IEBAIC0z NTIsNyArMzUyLDcgQEAgc3RhdGljIGludCB0ZWdyYV9ib19nZXRfcGFnZXMoc3RydWN0IGRybV9k ZXZpY2UgKmRybSwgc3RydWN0IHRlZ3JhX2JvICpibykKPiAgCj4gIAliby0+bnVtX3BhZ2VzID0g Ym8tPmdlbS5zaXplID4+IFBBR0VfU0hJRlQ7Cj4gIAo+IC0JYm8tPnNndCA9IGRybV9wcmltZV9w YWdlc190b19zZyhiby0+Z2VtLmRldiwgYm8tPnBhZ2VzLCBiby0+bnVtX3BhZ2VzKTsKPiArCWJv LT5zZ3QgPSBkcm1fcGFnZXNfdG9fc2coYm8tPmdlbS5kZXYsIGJvLT5wYWdlcywgYm8tPm51bV9w YWdlcyk7Cj4gIAlpZiAoSVNfRVJSKGJvLT5zZ3QpKSB7Cj4gIAkJZXJyID0gUFRSX0VSUihiby0+ c2d0KTsKPiAgCQlnb3RvIHB1dF9wYWdlczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nZW0u Ywo+IGluZGV4IDM5ZjhjNDY1NTBjMi4uYzllN2YyZTM2NjhjIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZ2VtLmMKPiBAQCAtMjgsNyArMjgsNyBAQAo+ICAjaW5jbHVkZSAidm13Z2Z4 X2JvLmgiCj4gICNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiCj4gIAo+IC0jaW5jbHVkZSAiZHJtL2Ry bV9wcmltZS5oIgo+ICsjaW5jbHVkZSAiZHJtL2RybV9nZW0uaCIKPiAgI2luY2x1ZGUgImRybS9k cm1fZ2VtX3R0bV9oZWxwZXIuaCIKPiAgCj4gICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4g QEAgLTc2LDcgKzc2LDcgQEAgc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqdm13X2dlbV9vYmplY3Rf Z2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQo+ICAJaWYgKHZtd190dC0+ dnNndC5zZ3QpCj4gIAkJcmV0dXJuIHZtd190dC0+dnNndC5zZ3Q7Cj4gIAo+IC0JcmV0dXJuIGRy bV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwgdm13X3R0LT5kbWFfdHRtLnBhZ2VzLCB2bXdf dHQtPmRtYV90dG0ubnVtX3BhZ2VzKTsKPiArCXJldHVybiBkcm1fcGFnZXNfdG9fc2cob2JqLT5k ZXYsIHZtd190dC0+ZG1hX3R0bS5wYWdlcywgdm13X3R0LT5kbWFfdHRtLm51bV9wYWdlcyk7Cj4g IH0KPiAgCj4gIHN0YXRpYyBpbnQgdm13X2dlbV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqLCBzdHJ1Y3QgaW9zeXNfbWFwICptYXApCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9kbWFfYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZG1hX2J1Zi5jCj4gaW5k ZXggOGE5MjBlNTgyNDVjLi5mMGZlODA3MDZiNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3hlL3hlX2RtYV9idWYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kbWFfYnVm LmMKPiBAQCAtMTE4LDkgKzExOCw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFibGUgKnhlX2RtYV9i dWZfbWFwKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKPiAgCj4gIAlzd2l0Y2gg KGJvLT50dG0ucmVzb3VyY2UtPm1lbV90eXBlKSB7Cj4gIAljYXNlIFhFX1BMX1RUOgo+IC0JCXNn dCA9IGRybV9wcmltZV9wYWdlc190b19zZyhvYmotPmRldiwKPiAtCQkJCQkgICAgYm8tPnR0bS50 dG0tPnBhZ2VzLAo+IC0JCQkJCSAgICBvYmotPnNpemUgPj4gUEFHRV9TSElGVCk7Cj4gKwkJc2d0 ID0gZHJtX3BhZ2VzX3RvX3NnKG9iai0+ZGV2LAo+ICsJCQkJICAgICAgYm8tPnR0bS50dG0tPnBh Z2VzLAo+ICsJCQkJICAgICAgb2JqLT5zaXplID4+IFBBR0VfU0hJRlQpOwo+ICAJCWlmIChJU19F UlIoc2d0KSkKPiAgCQkJcmV0dXJuIHNndDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2Ry bV9mcm9udF9nZW0uYwo+IGluZGV4IGVlYzRjMWRhM2Y5ZS4uYTRhN2M3ZjJjOTFjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9nZW0uYwo+IEBAIC0yMzYsNyArMjM2LDcg QEAgc3RydWN0IHNnX3RhYmxlICp4ZW5fZHJtX2Zyb250X2dlbV9nZXRfc2dfdGFibGUoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpnZW1fb2JqKQo+ICAJaWYgKCF4ZW5fb2JqLT5wYWdlcykKPiAgCQly ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAgCj4gLQlyZXR1cm4gZHJtX3ByaW1lX3BhZ2VzX3Rv X3NnKGdlbV9vYmotPmRldiwKPiArCXJldHVybiBkcm1fcGFnZXNfdG9fc2coZ2VtX29iai0+ZGV2 LAo+ICAJCQkJICAgICB4ZW5fb2JqLT5wYWdlcywgeGVuX29iai0+bnVtX3BhZ2VzKTsKPiAgfQo+ ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2dlbS5oIGIvaW5jbHVkZS9kcm0vZHJt X2dlbS5oCj4gaW5kZXggODg1MjQ0ZTM3NWQzLi43YjljYzYzMzU2ODkgMTAwNjQ0Cj4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2dlbS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2dlbS5oCj4gQEAg LTE1NSw3ICsxNTUsNyBAQCBzdHJ1Y3QgZHJtX2dlbV9vYmplY3RfZnVuY3Mgewo+ICAJICogaGVy ZSBjYW5ub3QgYmUgdXNlZCBmb3Igc2cgdGFibGVzIHBvaW50aW5nIGF0IGRyaXZlciBwcml2YXRl IG1lbW9yeQo+ICAJICogcmFuZ2VzLgo+ICAJICoKPiAtCSAqIFNlZSBhbHNvIGRybV9wcmltZV9w YWdlc190b19zZygpLgo+ICsJICogU2VlIGFsc28gZHJtX3BhZ2VzX3RvX3NnKCkuCj4gIAkgKi8K PiAgCXN0cnVjdCBzZ190YWJsZSAqKCpnZXRfc2dfdGFibGUpKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqKTsKPiAgCj4gQEAgLTU4OSw2ICs1ODksOSBAQCBzdHJ1Y3QgcGFnZSAqKmRybV9nZW1f Z2V0X3BhZ2VzKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAgdm9pZCBkcm1fZ2VtX3B1 dF9wYWdlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgc3RydWN0IHBhZ2UgKipwYWdlcywK PiAgCQlib29sIGRpcnR5LCBib29sIGFjY2Vzc2VkKTsKPiAgCj4gK3N0cnVjdCBzZ190YWJsZSAq ZHJtX3BhZ2VzX3RvX3NnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCQkgc3RydWN0IHBh Z2UgKipwYWdlcywgdW5zaWduZWQgaW50IG5yX3BhZ2VzKTsKPiArCj4gIHZvaWQgZHJtX2dlbV9s b2NrKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAgdm9pZCBkcm1fZ2VtX3VubG9jayhz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7Cj4gIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fcHJpbWUuaCBiL2luY2x1ZGUvZHJtL2RybV9wcmltZS5oCj4gaW5kZXggZjUwZjg2MmYw ZDhiLi42MDNlMTZhNDBhZTcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3ByaW1lLmgK PiArKysgYi9pbmNsdWRlL2RybS9kcm1fcHJpbWUuaAo+IEBAIC05Miw4ICs5Miw2IEBAIHZvaWQg ZHJtX2dlbV9kbWFidWZfdnVubWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBzdHJ1Y3QgaW9z eXNfbWFwICptYXApOwo+ICBpbnQgZHJtX2dlbV9wcmltZV9tbWFwKHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gIGludCBkcm1fZ2VtX2Rt YWJ1Zl9tbWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSk7Cj4gIAo+IC1zdHJ1Y3Qgc2dfdGFibGUgKmRybV9wcmltZV9wYWdlc190b19zZyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgICAgIHN0cnVjdCBwYWdlICoqcGFnZXMsIHVu c2lnbmVkIGludCBucl9wYWdlcyk7Cj4gIHN0cnVjdCBkbWFfYnVmICpkcm1fZ2VtX3ByaW1lX2V4 cG9ydChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPiAgCQkJCSAgICAgaW50IGZsYWdzKTsK PiAgCj4gCj4gLS0tCj4gYmFzZS1jb21taXQ6IDQ4ZGQzN2QxZmVmMzNmYmY0MmYxZDY4ODdjNjFl MjQyZmQyMWQwMGQKPiBjaGFuZ2UtaWQ6IDIwMjYwNzI0LWdldF9wYWdlcy1lMmU5MWM1M2VhYTMK PiAKPiBCZXN0IHJlZ2FyZHMsCj4gLS0gIAo+IEFkcmnDoW4gTGFydW1iZSA8YWRyaWFuLmxhcnVt YmVAY29sbGFib3JhLmNvbT4KPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==