From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 6/6] drm/i915: Migrate stolen objects before hibernation Date: Wed, 2 Dec 2015 11:52:29 +0200 Message-ID: <20151202095229.GW4437@intel.com> References: <1447238173-31347-1-git-send-email-ankitprasad.r.sharma@intel.com> <1447238173-31347-7-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A07F26E79E for ; Wed, 2 Dec 2015 01:52:33 -0800 (PST) Content-Disposition: inline In-Reply-To: <1447238173-31347-7-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ankitprasad.r.sharma@intel.com Cc: intel-gfx@lists.freedesktop.org, akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTEsIDIwMTUgYXQgMDQ6MDY6MTNQTSArMDUzMCwgYW5raXRwcmFzYWQuci5z aGFybWFAaW50ZWwuY29tIHdyb3RlOgo+IEZyb206IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+IAo+IFZpbGxlIHJlbWluZGVkIHVzIHRoYXQgc3RvbGVuIG1lbW9yeSBp cyBub3QgcHJlc2VydmVkIGFjcm9zcwo+IGhpYmVybmF0aW9uLCBhbmQgYSByZXN1bHQgb2YgdGhp cyB3YXMgdGhhdCBjb250ZXh0IG9iamVjdHMgbm93IGJlaW5nCj4gYWxsb2NhdGVkIGZyb20gc3Rv bGVuIHdlcmUgYmVpbmcgY29ycnVwdGVkIG9uIFM0IGFuZCBwcm9tcHRseSBoYW5naW5nCj4gdGhl IEdQVSBvbiByZXN1bWUuCgpCVFcgd2UgaGFkIGEgYnVnIHRoYXQgc2F5cyB0aGF0IHRoZSBmaXJt d2FyZSBjYW4gbWFrZSBhIG1lc3Mgb2YKc3RvbGVuIGV2ZW4gZHVyaW5nIFMzIHdoZW4gcmFiaWRz dGFydCBpcyBlbmFibGVkIDooCgpodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVn LmNnaT9pZD05MTI5NQoKPiAKPiBXZSB3YW50IHRvIHV0aWxpc2Ugc3RvbGVuIGZvciBhcyBtdWNo IGFzIHBvc3NpYmxlIChub3RoaW5nIGVsc2Ugd2lsbCB1c2UKPiB0aGF0IHdhc3RlZCBtZW1vcnkg b3RoZXJ3aXNlKSwgc28gd2UgbmVlZCBhIHN0cmF0ZWd5IGZvciBoYW5kbGluZwo+IGdlbmVyYWwg b2JqZWN0cyBhbGxvY2F0ZWQgZnJvbSBzdG9sZW4gYW5kIGhpYmVybmF0aW9uLiBBIHNpbXBsZSBz b2x1dGlvbgo+IGlzIHRvIGRvIGEgQ1BVIGNvcHkgdGhyb3VnaCB0aGUgR1RUIG9mIHRoZSBzdG9s ZW4gb2JqZWN0IGludG8gYSBmcmVzaAo+IHNobWVtZnMgYmFja2luZyBzdG9yZSBhbmQgdGhlbmNl Zm9ydGggdHJlYXQgaXQgYXMgYSBub3JtYWwgb2JqZWN0cy4gVGhpcwo+IGNhbiBiZSByZWZpbmVk IGluIGZ1dHVyZSB0byBlaXRoZXIgdXNlIGEgR1BVIGNvcHkgdG8gYXZvaWQgdGhlIHNsb3cKPiB1 bmNhY2hlZCByZWFkcyAodGhvdWdoIGl0J3MgaGliZXJuYXRpb24hKSBhbmQgcmVjcmVhdGUgc3Rv bGVuIG9iamVjdHMKPiB1cG9uIHJlc3VtZS9maXJzdC11c2UuIEZvciBub3csIGEgc2ltcGxlIGFw cHJvYWNoIHNob3VsZCBzdWZmaWNlIGZvcgo+IHRlc3RpbmcgdGhlIG9iamVjdCBtaWdyYXRpb24u Cj4gCj4gdjI6Cj4gU3dhcCBQVEUgZm9yIHBpbm5lZCBiaW5kaW5ncyBvdmVyIHRvIHRoZSBzaG1l bWZzLiBUaGlzIGFkZHMgYQo+IGNvbXBsaWNhdGVkIGRhbmNlLCBidXQgaXMgcmVxdWlyZWQgYXMg bWFueSBzdG9sZW4gb2JqZWN0cyBhcmUgbGlrZWx5IHRvCj4gYmUgcGlubmVkIGZvciB1c2UgYnkg dGhlIGhhcmR3YXJlLiBTd2FwcGluZyB0aGUgUFRFcyBzaG91bGQgbm90IHJlc3VsdAo+IGluIGV4 dGVybmFsbHkgdmlzaWJsZSBiZWhhdmlvdXIsIGFzIGVhY2ggUFRFIHVwZGF0ZSBzaG91bGQgYmUg YXRvbWljIGFuZAo+IHRoZSB0d28gcGFnZXMgaWRlbnRpY2FsLiAoZGFudmV0KQo+IAo+IHNhZmUt YnktZGVmYXVsdCwgb3IgdGhlIHByaW5jaXBsZSBvZiBsZWFzdCBzdXJwcmlzZS4gV2UgbmVlZCBh IG5ldyBmbGFnCj4gdG8gbWFyayBvYmplY3RzIHRoYXQgd2UgY2FuIHdpbGZ1bGx5IGRpc2NhcmQg YW5kIHJlY3JlYXRlIGFjcm9zcwo+IGhpYmVybmF0aW9uLiAoZGFudmV0KQo+IAo+IEp1c3QgdXNl IHRoZSBnbG9iYWxfbGlzdCByYXRoZXIgdGhhbiBpbnZlbnQgYSBuZXcgc3RvbGVuX2xpc3QuIFRo aXMgaXMKPiB0aGUgc2xvd3BhdGggaGliZXJuYXRlIGFuZCBzbyBhZGRpbmcgYSBuZXcgbGlzdCBh bmQgdGhlIGFzc29jaWF0ZWQKPiBjb21wbGV4aXR5IGlzbid0IHdvcnRoIGl0Lgo+IAo+IHYzOiBS ZWJhc2VkIG9uIGRybS1pbnRlbC1uaWdodGx5IChBbmtpdCkKPiAKPiB2NDogVXNlIGluc2VydF9w YWdlIHRvIG1hcCBzdG9sZW4gbWVtb3J5IGJhY2tlZCBwYWdlcyBmb3IgbWlncmF0aW9uIHRvCj4g c2htZW0gKENocmlzKQo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5r aXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5jICAgICAgICAgfCAgMTcgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICB8ICAgNyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgICAgICAgICB8IDIzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAgICAgfCAgIDYgKwo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jICAgICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgfCAgIDYgKwo+ICA3IGZpbGVzIGNoYW5nZWQsIDI2NCBpbnNlcnRp b25zKCspLCAxMiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBpbmRl eCA5ZjU1MjA5Li4yYmI5ZTllIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTEw MzYsNiArMTAzNiwyMSBAQCBzdGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNl ICpkZXYpCj4gIAlyZXR1cm4gaTkxNV9kcm1fc3VzcGVuZChkcm1fZGV2KTsKPiAgfQo+ICAKPiAr c3RhdGljIGludCBpOTE1X3BtX2ZyZWV6ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCWlu dCByZXQ7Cj4gKwo+ICsJcmV0ID0gaTkxNV9nZW1fZnJlZXplKHBjaV9nZXRfZHJ2ZGF0YSh0b19w Y2lfZGV2KGRldikpKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQg PSBpOTE1X3BtX3N1c3BlbmQoZGV2KTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAgc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmRfbGF0 ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2 ID0gZGV2X3RvX2k5MTUoZGV2KS0+ZGV2Owo+IEBAIC0xNzAwLDcgKzE3MTUsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgaTkxNV9wbV9vcHMgPSB7Cj4gIAkgKiBAcmVzdG9yZSwg QHJlc3RvcmVfZWFybHkgOiBjYWxsZWQgYWZ0ZXIgcmVib290aW5nIGFuZCByZXN0b3JpbmcgdGhl Cj4gIAkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWJlcm5hdGlvbiBpbWFnZSBbUE1T R19SRVNUT1JFXQo+ICAJICovCj4gLQkuZnJlZXplID0gaTkxNV9wbV9zdXNwZW5kLAo+ICsJLmZy ZWV6ZSA9IGk5MTVfcG1fZnJlZXplLAo+ICAJLmZyZWV6ZV9sYXRlID0gaTkxNV9wbV9zdXNwZW5k X2xhdGUsCj4gIAkudGhhd19lYXJseSA9IGk5MTVfcG1fcmVzdW1lX2Vhcmx5LAo+ICAJLnRoYXcg PSBpOTE1X3BtX3Jlc3VtZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAyYzc1YzMy Li5hNGUxYmY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIwNzksNiArMjA3 OSwxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7Cj4gIAkgKiBBZHZpY2U6IGFyZSB0 aGUgYmFja2luZyBwYWdlcyBwdXJnZWFibGU/Cj4gIAkgKi8KPiAgCXVuc2lnbmVkIGludCBtYWR2 OjI7Cj4gKwkvKioKPiArCSAqIFdoZXJlYXMgbWFkdiBpcyBmb3IgdXNlcnNwYWNlLCB0aGVyZSBh cmUgY2VydGFpbiBzaXR1YXRpb25zCj4gKwkgKiB3aGVyZSB3ZSB3YW50IEk5MTVfTUFEVl9ET05U TkVFRCBiZWhhdmlvdXIgb24gaW50ZXJuYWwgb2JqZWN0cwo+ICsJICogd2l0aG91dCBjb25mbGF0 aW5nIHRoZSB1c2Vyc3BhY2Ugc2V0dGluZy4KPiArCSAqLwo+ICsJdW5zaWduZWQgaW50IGludGVy bmFsX3ZvbGF0aWxlOjE7Cj4gIAo+ICAJLyoqCj4gIAkgKiBDdXJyZW50IHRpbGluZyBtb2RlIGZv ciB0aGUgb2JqZWN0Lgo+IEBAIC0zMDA2LDYgKzMwMTIsNyBAQCBpbnQgaTkxNV9nZW1fbDNfcmVt YXAoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCBzbGljZSk7Cj4gIHZvaWQg aTkxNV9nZW1faW5pdF9zd2l6emxpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQg aTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBp bnQgX19tdXN0X2NoZWNrIGk5MTVfZ3B1X2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g K2ludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZnJlZXplKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ICBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7Cj4gIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAo+ICAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYmF0Y2hfb2JqLAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IGUwYjk1MDIuLmRiZTExNzMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtNDUwNiwxMiArNDUwNiwyNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIGk5MTVfZ2VtX29iamVjdF9vcHMgPSB7 Cj4gIAkucHV0X3BhZ2VzID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19ndHQsCj4gIH07Cj4g IAo+ICtzdGF0aWMgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKgo+ICtpOTE1X2dlbV9zZXRfaW5vZGVf Z2ZwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICt7Cj4gKwlz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGVfaW5vZGUoZmlsZSktPmlfbWFwcGlu ZzsKPiArCWdmcF90IG1hc2s7Cj4gKwo+ICsJbWFzayA9IEdGUF9ISUdIVVNFUiB8IF9fR0ZQX1JF Q0xBSU1BQkxFOwo+ICsJaWYgKElTX0NSRVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2 KSkgewo+ICsJCS8qIDk2NWdtIGNhbm5vdCByZWxvY2F0ZSBvYmplY3RzIGFib3ZlIDRHaUIuICov Cj4gKwkJbWFzayAmPSB+X19HRlBfSElHSE1FTTsKPiArCQltYXNrIHw9IF9fR0ZQX0RNQTMyOwo+ ICsJfQo+ICsJbWFwcGluZ19zZXRfZ2ZwX21hc2sobWFwcGluZywgbWFzayk7Cj4gKwo+ICsJcmV0 dXJuIG1hcHBpbmc7Cj4gK30KPiArCj4gIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1 X2dlbV9hbGxvY19vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJCQkJICBzaXpl X3Qgc2l6ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCXN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwo+IC0JZ2ZwX3QgbWFzazsKPiAgCWludCByZXQg PSAwOwo+ICAKPiAgCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9hbGxvYyhkZXYpOwo+IEBAIC00NTIz LDE1ICs0NTM4LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmk5MTVfZ2VtX2FsbG9j X29iamVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVybiBFUlJfUFRSKHJldCk7 Cj4gIAl9Cj4gIAo+IC0JbWFzayA9IEdGUF9ISUdIVVNFUiB8IF9fR0ZQX1JFQ0xBSU1BQkxFOwo+ IC0JaWYgKElTX0NSRVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2KSkgewo+IC0JCS8q IDk2NWdtIGNhbm5vdCByZWxvY2F0ZSBvYmplY3RzIGFib3ZlIDRHaUIuICovCj4gLQkJbWFzayAm PSB+X19HRlBfSElHSE1FTTsKPiAtCQltYXNrIHw9IF9fR0ZQX0RNQTMyOwo+IC0JfQo+IC0KPiAt CW1hcHBpbmcgPSBmaWxlX2lub2RlKG9iai0+YmFzZS5maWxwKS0+aV9tYXBwaW5nOwo+IC0JbWFw cGluZ19zZXRfZ2ZwX21hc2sobWFwcGluZywgbWFzayk7Cj4gKwlpOTE1X2dlbV9zZXRfaW5vZGVf Z2ZwKGRldiwgb2JqLT5iYXNlLmZpbHApOwo+ICAKPiAgCWk5MTVfZ2VtX29iamVjdF9pbml0KG9i aiwgJmk5MTVfZ2VtX29iamVjdF9vcHMpOwo+ICAKPiBAQCAtNDcwOCw2ICs0NzE1LDIxMiBAQCBp OTE1X2dlbV9zdG9wX3JpbmdidWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJZGV2 X3ByaXYtPmd0LnN0b3BfcmluZyhyaW5nKTsKPiAgfQo+ICAKPiArc3RhdGljIGludAo+ICtpOTE1 X2dlbV9vYmplY3RfbWlncmF0ZV9zdG9sZW5fdG9fc2htZW1mcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUob2JqLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZuOwo+ICsJ c3RydWN0IGRybV9tbV9ub2RlIG5vZGU7Cj4gKwlzdHJ1Y3QgZmlsZSAqZmlsZTsKPiArCXN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwo+ICsJc3RydWN0IHNnX3RhYmxlICpzdG9sZW5fcGFn ZXMsICpzaG1lbWZzX3BhZ2VzOwo+ICsJaW50IHJldCwgaTsKPiArCj4gKwlpZiAoV0FSTl9PTihp OTE1X2dlbV9vYmplY3RfbmVlZHNfYml0MTdfc3dpenpsZShvYmopKSkKPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2Jq LCBmYWxzZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJZmlsZSA9IHNo bWVtX2ZpbGVfc2V0dXAoImRybSBtbSBvYmplY3QiLCBvYmotPmJhc2Uuc2l6ZSwgVk1fTk9SRVNF UlZFKTsKPiArCWlmIChJU19FUlIoZmlsZSkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoZmlsZSk7Cj4g KwltYXBwaW5nID0gaTkxNV9nZW1fc2V0X2lub2RlX2dmcChvYmotPmJhc2UuZGV2LCBmaWxlKTsK PiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwgJm9iai0+dm1hX2xpc3Qs IHZtYV9saW5rKQo+ICsJCWlmIChpOTE1X3ZtYV91bmJpbmQodm1hKSkKPiArCQkJY29udGludWU7 Cj4gKwo+ICsJaWYgKG9iai0+bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQgJiYgbGlzdF9lbXB0 eSgmb2JqLT52bWFfbGlzdCkpIHsKPiArCQkvKiBEaXNjYXJkIHRoZSBzdG9sZW4gcmVzZXJ2YXRp b24sIGFuZCByZXBsYWNlIHdpdGgKPiArCQkgKiBhbiB1bnBvcHVsYXRlZCBzaG1lbWZzIG9iamVj dC4KPiArCQkgKi8KPiArCQlvYmotPm1hZHYgPSBfX0k5MTVfTUFEVl9QVVJHRUQ7Cj4gKwkJZ290 byBzd2FwX3BhZ2VzOwo+ICsJfQo+ICsKPiArCS8qIHN0b2xlbiBvYmplY3RzIGFyZSBhbHJlYWR5 IHBpbm5lZCB0byBwcmV2ZW50IHNocmlua2FnZSAqLwo+ICsJbWVtc2V0KCZub2RlLCAwLCBzaXpl b2Yobm9kZSkpOwo+ICsJcmV0ID0gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMo Jmk5MTUtPmd0dC5iYXNlLm1tLAo+ICsJCQkJCQkgICZub2RlLAo+ICsJCQkJCQkgIDQwOTYsIDAs IEk5MTVfQ0FDSEVfTk9ORSwKPiArCQkJCQkJICAwLCBpOTE1LT5ndHQubWFwcGFibGVfZW5kLAo+ ICsJCQkJCQkgIERSTV9NTV9TRUFSQ0hfREVGQVVMVCwKPiArCQkJCQkJICBEUk1fTU1fQ1JFQVRF X0RFRkFVTFQpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCWZvciAoaSA9 IDA7IGkgPCBvYmotPmJhc2Uuc2l6ZSAvIFBBR0VfU0laRTsgaSsrKSB7Cj4gKwkJc3RydWN0IHBh Z2UgKnBhZ2U7Cj4gKwkJdm9pZCAqX19pb21lbSBzcmM7Cj4gKwkJdm9pZCAqZHN0Owo+ICsKPiAr CQl3bWIoKTsKPiArCQlpOTE1LT5ndHQuYmFzZS5pbnNlcnRfcGFnZSgmaTkxNS0+Z3R0LmJhc2Us Cj4gKwkJCQkJICAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmosIGkpLAo+ICsJ CQkJCSAgIG5vZGUuc3RhcnQsCj4gKwkJCQkJICAgSTkxNV9DQUNIRV9OT05FLAo+ICsJCQkJCSAg IDApOwo+ICsJCXdtYigpOwo+ICsKPiArCQlwYWdlID0gc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2Uo bWFwcGluZywgaSk7Cj4gKwkJaWYgKElTX0VSUihwYWdlKSkgewo+ICsJCQlyZXQgPSBQVFJfRVJS KHBhZ2UpOwo+ICsJCQlnb3RvIGVycl9ub2RlOwo+ICsJCX0KPiArCj4gKwkJc3JjID0gaW9fbWFw cGluZ19tYXBfYXRvbWljX3djKGk5MTUtPmd0dC5tYXBwYWJsZSwgbm9kZS5zdGFydCArIFBBR0Vf U0laRSAqIGkpOwo+ICsJCWRzdCA9IGttYXBfYXRvbWljKHBhZ2UpOwo+ICsJCW1lbWNweV9mcm9t aW8oZHN0LCBzcmMsIFBBR0VfU0laRSk7Cj4gKwkJa3VubWFwX2F0b21pYyhkc3QpOwo+ICsJCWlv X21hcHBpbmdfdW5tYXBfYXRvbWljKHNyYyk7Cj4gKwo+ICsJCXBhZ2VfY2FjaGVfcmVsZWFzZShw YWdlKTsKPiArCX0KPiArCj4gKwl3bWIoKTsKPiArCWk5MTUtPmd0dC5iYXNlLmNsZWFyX3Jhbmdl KCZpOTE1LT5ndHQuYmFzZSwKPiArCQkJCSAgIG5vZGUuc3RhcnQsIG5vZGUuc2l6ZSwKPiArCQkJ CSAgIHRydWUpOwo+ICsJZHJtX21tX3JlbW92ZV9ub2RlKCZub2RlKTsKPiArCj4gK3N3YXBfcGFn ZXM6Cj4gKwlzdG9sZW5fcGFnZXMgPSBvYmotPnBhZ2VzOwo+ICsJb2JqLT5wYWdlcyA9IE5VTEw7 Cj4gKwo+ICsJb2JqLT5iYXNlLmZpbHAgPSBmaWxlOwo+ICsJb2JqLT5iYXNlLnJlYWRfZG9tYWlu cyA9IEk5MTVfR0VNX0RPTUFJTl9DUFU7Cj4gKwlvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gSTkx NV9HRU1fRE9NQUlOX0NQVTsKPiArCj4gKwkvKiBSZWNyZWF0ZSBhbnkgcGlubmVkIGJpbmRpbmcg d2l0aCBwb2ludGVycyB0byB0aGUgbmV3IHN0b3JhZ2UgKi8KPiArCWlmICghbGlzdF9lbXB0eSgm b2JqLT52bWFfbGlzdCkpIHsKPiArCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0 dChvYmopOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdlczsK PiArCQkJZ290byBlcnJfZmlsZTsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGk5MTVfZ2VtX2d0dF9w cmVwYXJlX29iamVjdChvYmopOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJaTkxNV9nZW1fb2JqZWN0 X3B1dF9wYWdlc19ndHQob2JqKTsKPiArCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdlczsKPiAr CQkJZ290byBlcnJfZmlsZTsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9z ZXRfdG9fZ3R0X2RvbWFpbihvYmosIHRydWUpOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJaTkxNV9n ZW1fZ3R0X2ZpbmlzaF9vYmplY3Qob2JqKTsKPiArCQkJaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdl c19ndHQob2JqKTsKPiArCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdlczsKPiArCQkJZ290byBl cnJfZmlsZTsKPiArCQl9Cj4gKwo+ICsJCW9iai0+Z2V0X3BhZ2Uuc2cgPSBvYmotPnBhZ2VzLT5z Z2w7Cj4gKwkJb2JqLT5nZXRfcGFnZS5sYXN0ID0gMDsKPiArCj4gKwkJbGlzdF9mb3JfZWFjaF9l bnRyeSh2bWEsICZvYmotPnZtYV9saXN0LCB2bWFfbGluaykgewo+ICsJCQlpZiAoIWRybV9tbV9u b2RlX2FsbG9jYXRlZCgmdm1hLT5ub2RlKSkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJV0FS Tl9PTihpOTE1X3ZtYV9iaW5kKHZtYSwKPiArCQkJCQkgICAgICBvYmotPmNhY2hlX2xldmVsLAo+ ICsJCQkJCSAgICAgIFBJTl9VUERBVEUpKTsKPiArCQl9Cj4gKwl9IGVsc2UKPiArCQlsaXN0X2Rl bCgmb2JqLT5nbG9iYWxfbGlzdCk7Cj4gKwo+ICsJLyogZHJvcCB0aGUgc3RvbGVuIHBpbiBhbmQg YmFja2luZyAqLwo+ICsJc2htZW1mc19wYWdlcyA9IG9iai0+cGFnZXM7Cj4gKwlvYmotPnBhZ2Vz ID0gc3RvbGVuX3BhZ2VzOwo+ICsKPiArCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmop Owo+ICsJb2JqLT5vcHMtPnB1dF9wYWdlcyhvYmopOwo+ICsJaWYgKG9iai0+b3BzLT5yZWxlYXNl KQo+ICsJCW9iai0+b3BzLT5yZWxlYXNlKG9iaik7Cj4gKwo+ICsJb2JqLT5vcHMgPSAmaTkxNV9n ZW1fb2JqZWN0X29wczsKPiArCW9iai0+cGFnZXMgPSBzaG1lbWZzX3BhZ2VzOwo+ICsKPiArCXJl dHVybiAwOwo+ICsKPiArZXJyX25vZGU6Cj4gKwl3bWIoKTsKPiArCWk5MTUtPmd0dC5iYXNlLmNs ZWFyX3JhbmdlKCZpOTE1LT5ndHQuYmFzZSwKPiArCQkJCSAgIG5vZGUuc3RhcnQsIG5vZGUuc2l6 ZSwKPiArCQkJCSAgIHRydWUpOwo+ICsJZHJtX21tX3JlbW92ZV9ub2RlKCZub2RlKTsKPiArZXJy X2ZpbGU6Cj4gKwlmcHV0KGZpbGUpOwo+ICsJb2JqLT5iYXNlLmZpbHAgPSBOVUxMOwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+ICsKPiAraW50Cj4gK2k5MTVfZ2VtX2ZyZWV6ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICt7Cj4gKwkvKiBDYWxsZWQgYmVmb3JlIGk5MTVfZ2VtX3N1c3BlbmQoKSB3 aGVuIGhpYmVybmF0aW5nICovCj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosICp0bXA7Cj4g KwlzdHJ1Y3QgbGlzdF9oZWFkICpwaGFzZVtdID0gewo+ICsJCSZpOTE1LT5tbS51bmJvdW5kX2xp c3QsICZpOTE1LT5tbS5ib3VuZF9saXN0LCBOVUxMCj4gKwl9LCAqKnA7Cj4gKwo+ICsJLyogQWNy b3NzIGhpYmVybmF0aW9uLCB0aGUgc3RvbGVuIGFyZWEgaXMgbm90IHByZXNlcnZlZC4KPiArCSAq IEFueXRoaW5nIGluc2lkZSBzdG9sZW4gbXVzdCBjb3BpZWQgYmFjayB0byBub3JtYWwKPiArCSAq IG1lbW9yeSBpZiB3ZSB3aXNoIHRvIHByZXNlcnZlIGl0Lgo+ICsJICovCj4gKwlmb3IgKHAgPSBw aGFzZTsgKnA7IHArKykgewo+ICsJCXN0cnVjdCBsaXN0X2hlYWQgbWlncmF0ZTsKPiArCQlpbnQg cmV0Owo+ICsKPiArCQlJTklUX0xJU1RfSEVBRCgmbWlncmF0ZSk7Cj4gKwkJbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKG9iaiwgdG1wLCAqcCwgZ2xvYmFsX2xpc3QpIHsKPiArCQkJaWYgKG9iai0+ c3RvbGVuID09IE5VTEwpCj4gKwkJCQljb250aW51ZTsKPiArCj4gKwkJCWlmIChvYmotPmludGVy bmFsX3ZvbGF0aWxlKQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQkvKiBJbiB0aGUgZ2VuZXJh bCBjYXNlLCB0aGlzIG9iamVjdCBtYXkgb25seSBiZSBhbGl2ZQo+ICsJCQkgKiBkdWUgdG8gYW4g YWN0aXZlIHJlZmVyZW5jZSwgYW5kIHRoYXQgbWF5IGRpc2FwcGVhcgo+ICsJCQkgKiB3aGVuIHdl IHVuYmluZCBhbnkgb2YgdGhlIG9iamVjdHMgKGFuZCBzbyB3YWl0IHVwb24KPiArCQkJICogdGhl IEdQVSBhbmQgcmV0aXJlIHJlcXVlc3RzKS4gVG8gcHJldmVudCBvbmUgb2YgdGhlCj4gKwkJCSAq IG9iamVjdHMgZnJvbSBkaXNhcHBlYXJpbmcgYmVuZWF0aCB1cywgd2UgbmVlZCB0bwo+ICsJCQkg KiB0YWtlIGEgcmVmZXJlbmNlIHRvIGVhY2ggYXMgd2UgYnVpbGQgdGhlIG1pZ3JhdGlvbgo+ICsJ CQkgKiBsaXN0Lgo+ICsJCQkgKgo+ICsJCQkgKiBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIHN0cmF0 ZWd5IHJlcXVpcmVkIHdoaWxzdAo+ICsJCQkgKiBzaHJpbmtpbmcgb3IgZXZpY3Rpbmcgb2JqZWN0 cyAoZm9yIHRoZSBzYW1lIHJlYXNvbikuCj4gKwkJCSAqLwo+ICsJCQlkcm1fZ2VtX29iamVjdF9y ZWZlcmVuY2UoJm9iai0+YmFzZSk7Cj4gKwkJCWxpc3RfbW92ZSgmb2JqLT5nbG9iYWxfbGlzdCwg Jm1pZ3JhdGUpOwo+ICsJCX0KPiArCj4gKwkJcmV0ID0gMDsKPiArCQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUob2JqLCB0bXAsICZtaWdyYXRlLCBnbG9iYWxfbGlzdCkgewo+ICsJCQlpZiAocmV0 ID09IDApCj4gKwkJCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfbWlncmF0ZV9zdG9sZW5fdG9fc2ht ZW1mcyhvYmopOwo+ICsJCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2JqLT5iYXNlKTsK PiArCQl9Cj4gKwkJbGlzdF9zcGxpY2UoJm1pZ3JhdGUsICpwKTsKPiArCQlpZiAocmV0KQo+ICsJ CQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBpbnQKPiAg aTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGYyODFlMGIuLjA4MDM5MjIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTI1NDksNiArMjU0OSw5IEBAIGlu dGVsX2FsbG9jX2luaXRpYWxfcGxhbmVfb2JqKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJ aWYgKElTX0VSUihvYmopKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gKwkvKiBOb3QgdG8gYmUg cHJlc2VydmVkIGFjcm9zcyBoaWJlcm5hdGlvbiAqLwo+ICsJb2JqLT5pbnRlcm5hbF92b2xhdGls ZSA9IHRydWU7Cj4gKwo+ICAJb2JqLT50aWxpbmdfbW9kZSA9IHBsYW5lX2NvbmZpZy0+dGlsaW5n Owo+ICAJaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfWCkKPiAgCQlvYmotPnN0 cmlkZSA9IGZiLT5waXRjaGVzWzBdOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+IGlu ZGV4IGY0MzY4MWUuLjFkODkyNTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJkZXYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMK PiBAQCAtMTU0LDYgKzE1NCwxMiBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0IGRy bV9mYl9oZWxwZXIgKmhlbHBlciwKPiAgCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gKwkvKiBEaXNj YXJkIHRoZSBjb250ZW50cyBvZiB0aGUgQklPUyBmYiBhY3Jvc3MgaGliZXJuYXRpb24uCj4gKwkg KiBXZSByZWFsbHkgd2FudCB0byBjb21wbGV0ZWx5IHRocm93YXdheSB0aGUgZWFybGllciBmYmRl dgo+ICsJICogYW5kIHJlY29uZmlndXJlIGl0IGFueXdheS4KPiArCSAqLwo+ICsJb2JqLT5pbnRl cm5hbF92b2xhdGlsZSA9IHRydWU7Cj4gKwo+ICAJZmIgPSBfX2ludGVsX2ZyYW1lYnVmZmVyX2Ny ZWF0ZShkZXYsICZtb2RlX2NtZCwgb2JqKTsKPiAgCWlmIChJU19FUlIoZmIpKSB7Cj4gIAkJcmV0 ID0gUFRSX0VSUihmYik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggMDNhZDI3Ni4u NmRkYzIwYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC01MTgxLDYgKzUxODEs OCBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiAgCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwo+ICAKPiAgb3V0Ogo+ ICsJLyogVGhlIHBvd2VyIGNvbnRleHQgbmVlZCBub3QgYmUgcHJlc2VydmVkIGFjcm9zcyBoaWJl cm5hdGlvbiAqLwo+ICsJcGN0eC0+aW50ZXJuYWxfdm9sYXRpbGUgPSB0cnVlOwo+ICAJRFJNX0RF QlVHX0RSSVZFUigiUENCUjogMHglMDh4XG4iLCBJOTE1X1JFQUQoVkxWX1BDQlIpKTsKPiAgCWRl dl9wcml2LT52bHZfcGN0eCA9IHBjdHg7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gaW5kZXggNWVhYmFmNi4uMzcwZDk2YSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBAQCAtMjA5MCw2ICsyMDkwLDEyIEBAIHN0YXRp YyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCWlmIChJU19FUlIob2JqKSkKPiAgCQlyZXR1cm4gUFRSX0VSUihvYmopOwo+ICAKPiArCS8q IFJpbmdidWZmZXIgb2JqZWN0cyBhcmUgYnkgZGVmaW5pdGlvbiB2b2xhdGlsZSAtIG9ubHkgdGhl IGNvbW1hbmRzCj4gKwkgKiBiZXR3ZWVuIEhFQUQgYW5kIFRBSUwgbmVlZCB0byBiZSBwcmVzZXJ2 ZWQgYW5kIHdoaWxzdCB0aGVyZSBhcmUKPiArCSAqIGFueSBjb21tYW5kcyB0aGVyZSwgdGhlIHJp bmdidWZmZXIgaXMgcGlubmVkIGJ5IGFjdGl2aXR5Lgo+ICsJICovCj4gKwlvYmotPmludGVybmFs X3ZvbGF0aWxlID0gdHJ1ZTsKPiArCj4gIAkvKiBtYXJrIHJpbmcgYnVmZmVycyBhcyByZWFkLW9u bHkgZnJvbSBHUFUgc2lkZSBieSBkZWZhdWx0ICovCj4gIAlvYmotPmd0X3JvID0gMTsKPiAgCj4g LS0gCj4gMS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK