From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 1/3] drm/i915/icl: Release TC ports when unloading or suspending driver Date: Thu, 29 Nov 2018 23:03:15 +0200 Message-ID: <20181129210315.GA23337@ideak-desk.fi.intel.com> References: <20181108000554.18678-1-jose.souza@intel.com> <20181128113423.GC3349@ideak-desk.fi.intel.com> <3e58c36a1a75edd4aaa48037d92d5c9750b86dd2.camel@intel.com> <20181129135229.GD3349@ideak-desk.fi.intel.com> <01a08d916e25943e80839a765f5302bbe0961bb0.camel@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 841DC6E30B for ; Thu, 29 Nov 2018 21:03:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: <01a08d916e25943e80839a765f5302bbe0961bb0.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjksIDIwMTggYXQgMTA6MTg6NDBQTSArMDIwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVGh1LCAyMDE4LTExLTI5IGF0IDE1OjUyICswMjAwLCBJbXJlIERlYWsgd3JvdGU6 Cj4gPiBPbiBXZWQsIE5vdiAyOCwgMjAxOCBhdCAxMTo1NDoyMVBNICswMjAwLCBTb3V6YSwgSm9z ZSB3cm90ZToKPiA+ID4gT24gV2VkLCAyMDE4LTExLTI4IGF0IDEzOjM0ICswMjAwLCBJbXJlIERl YWsgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBOb3YgMDcsIDIwMTggYXQgMDQ6MDU6NTJQTSAtMDgw MCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gV2hlbiBz dXNwZW5kaW5nIG9yIHVubG9hZGluZyB0aGUgZHJpdmVyLCBpdCBuZWVkcyB0byByZWxlYXNlCj4g PiA+ID4gPiB0aGUKPiA+ID4gPiA+IFRDIHBvcnRzIHNvIEhXIGNhbiBjaGFuZ2UgaXQgc3RhdGUg d2l0aG91dCB3YWl0IGZvciBkcml2ZXIKPiA+ID4gPiA+IGhhbmRzaGFrZS4KPiA+ID4gPiAKPiA+ ID4gPiBBY2NvcmRpbmcgdG8gCj4gPiA+ID4gaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MTA4MDcwI2MyNgo+ID4gPiA+IAo+ID4gPiA+IHRoaXMgcGF0Y2ggc2hv dWxkIGZpeCB0aGUgYnVnIHJlcG9ydGVkIGF0Cj4gPiA+ID4gaHR0cHM6Ly9idWdzLmZyZWVkZXNr dG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwI2MxNwo+ID4gPiA+IAo+ID4gPiA+IGJ1dCwg SSBjYW4ndCBzZWUgaG93IHRoZSBjaGFuZ2UgaGVyZSB3b3VsZCBmaXggdGhlIGNvcnJlc3BvbmRp bmcKPiA+ID4gPiBwcm9ibGVtCj4gPiA+ID4gZGVzY3JpYmVkIGluCj4gPiA+ID4gaHR0cHM6Ly9i dWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwI2MxOAo+ID4gPiA+IAo+ ID4gPiA+IFdvdWxkIHlvdSBleHBsYWluPwo+ID4gPiA+IAo+ID4gPiA+IEkgdGhpbmsgdGhlcmUg YXJlIG1vcmUgZnVuZGFtZW50YWwgcHJvYmxlbXMgaW4gVHlwZUMgSFBEIGhhbmRsaW5nCj4gPiA+ ID4gYXMKPiA+ID4gPiB3ZQo+ID4gPiA+IGRpc2N1c3NlZCBlYXJsaWVyIGhlcmUgb24gdGhlIGxp c3QsIHdoaWNoIHNob3VsZCBiZSBmaXhlZCBmaXJzdDoKPiA+ID4gPiAKPiA+ID4gPiAtIFN3aXRj aGluZyB0by9mcm9tIHR5cGUgQyBtb2RlIGZyb20gdGhlIGludGVycnVwdCBoYW5kbGVyCj4gPiA+ ID4gd2l0aG91dAo+ID4gPiA+ICAgY29uc2lkZXJpbmcgaWYgd2UgaGF2ZSBhbiBhY3RpdmUgbW9k ZSBvciBhbiBvbmdvaW5nIEFVWAo+ID4gPiA+IHRyYW5zZmVyLgo+ID4gPiAKPiA+ID4gWWVzIHRo YXQgaXMgc3RpbGwgbWlzc2luZywgSSBwbGFuIHRvIHdvcmsgb24gdGhhdCBhZnRlciBJIGRlbGl2 ZXIgYQo+ID4gPiBmZXcKPiA+ID4gdGFza3MuIEFsc28gSSByZWFkIHRoZSBlbWFpbHMgaW4gZGlz Y3Vzc2lvbiB0aGF0IHlvdSBzdGFydGVkIGFib3V0Cj4gPiA+IHRoYXQuCj4gPiAKPiA+IFRoZSBw b2ludCBpcyB0aGF0IGltbyB0aG9zZSBmdW5kYW1lbnRhbCBwcm9ibGVtcyBzaG91bGQgYmUgZml4 ZWQKPiA+IGZpcnN0Lgo+ID4gCj4gPiA+ID4gLSBOb3QgaGF2aW5nIGFueSB3YXkgZm9yIGhhbmRs aW5nIHRoZSBjYXNlIHdoZXJlIHdlJ2QgZG8gYQo+ID4gPiA+IG1vZGVzZXQKPiA+ID4gPiBhZnRl cgo+ID4gPiA+ICAgYW4gSFBEIGRpc2Nvbm5lY3QgaW50ZXJydXB0LCBsaWtlIGluIHRoZSBjYXNl IG9mCj4gPiA+ID4gICBjb21tb24taHBkLWFmdGVyLXN1c3BlbmQgaW4gdGhlIGJ1ZyByZXBvcnQu Cj4gPiA+IAo+ID4gPiBGb3Igd2hhdCBJIHVuZGVyc3Rvb2QgYWJvdXQgdGhpcyB0ZXN0IGl0IHdp bGwgc3VzcGVuZCwgZGlzY29ubmVjdAo+ID4gPiBjaGFtZWxpdW0gYm9hcmQgZnJvbSBzb3VyY2Us IHdha2V1cCBhbmQgY2hlY2sgaWYgY29ubmVjdG9yIHN0YXRlCj4gPiA+IG1hdGNoLAo+ID4gPiBh cyB3ZSBkaWQgbm90IG1hcmtlZCBwb3J0IGFzIHNhZmUgYmVmb3JlIHN1c3BlbmRpbmcgd2UgYXJl IGxlZnQgaW4KPiA+ID4gYQo+ID4gPiBpbnZhbGlkIHN0YXRlIHdoZXJlIFBEIGZpcm13YXJlIGRv IG5vdCB0cmlnZ2VyIGEgaW50ZXJydXB0aW9uIGFmdGVyCj4gPiA+IHdha2V1cC4KPiA+IAo+ID4g Tm8sIGl0J3Mgbm90IGFib3V0IHRoZSBsYWNrIG9mIEhQRCBpbnRlcnJ1cHRzLiBXaGF0IGhhcHBl bnMgaXMgdGhhdAo+ID4gdGhlCj4gPiBzaW5rIGRpc2FwcGVhcnMgZHVyaW5nIHN5c3RlbSBzdXNw ZW5kL3Jlc3VtZSwgYnV0IHdlIHN0aWxsIGhhdmUgYW4KPiA+IGFjdGl2ZSBtb2RlIGVuYWJsZWQg b24gdGhlIGNvcnJlc3BvbmRpbmcgcG9ydC4gV2UgdHJ5IHRvIHJlc3RvcmUgdGhpcwo+ID4gbW9k ZSBkdXJpbmcgcmVzdW1lIGJ1dCB0aGF0IG1vZGVzZXQgd2lsbCBmYWlsLgo+IAo+IEJlZm9yZSBz dXNwZW5kLCBhbGwgZGlzcGxheSBvdXRwdXQgaXMgZGlzYWJsZWQgc28gdGhlcmUgaXMgbm8gYWN0 aXZlCj4gbW9kZXNldC4KClllcywgdGhlcmUgaXM6Cmh0dHBzOi8vaW50ZWwtZ2Z4LWNpLjAxLm9y Zy90cmVlL2RybS10aXAvQ0lfRFJNXzUxMjkvZmktaWNsLXUyL2RtZXNnMC5sb2cgOgoKPDc+WyAg MjA0LjgwNjIzN10gW2RybTppbnRlbF9hdG9taWNfY2hlY2sgW2k5MTVdXSBbQ09OTkVDVE9SOjIw OTpIRE1JLUEtMl0gTGltaXRpbmcgZGlzcGxheSBicHAgdG8gMjQgaW5zdGVhZCBvZiBFRElEIGJw cCAyNCwgcmVxdWVzdGVkIGJwcCAzNiwgbWF4IHBsYXRmb3JtIGJwcCAzNgouLi4KPDc+WyAgMjA0 LjgwNjQxMV0gW2RybTppbnRlbF9kdW1wX3BpcGVfY29uZmlnIFtpOTE1XV0gW0NSVEM6ODA6cGlw ZSBBXVttb2Rlc2V0XQouLi4KPDc+WyAgMjA0LjgwOTEzMl0gW2RybTppbnRlbF9lbmFibGVfcGlw ZSBbaTkxNV1dIGVuYWJsaW5nIHBpcGUgQQouLi4KPDc+WyAgMjA0LjkwOTUxOV0gW0lHVF0ga21z X2NoYW1lbGl1bTogZXhlY3V0aW5nCi4uLgo8Nz5bICAyMDQuOTQ3NDQwXSBbSUdUXSBrbXNfY2hh bWVsaXVtOiBzdGFydGluZyBzdWJ0ZXN0IGNvbW1vbi1ocGQtYWZ0ZXItc3VzcGVuZAouLi4KPDY+ WyAgMjA1LjkzNjQ3Ml0gUE06IHN1c3BlbmQgZW50cnkgKGRlZXApCgpBZnRlciB3aGljaCB3ZSB3 aWxsIHRyeSB0byByZXN0b3JlIHRoaXMgYWN0aXZlIG1vZGUgZHVyaW5nIHJlc3VtZS4KCj4gCj4g PiAKPiA+ID4gPiBNb3JlIGNvbW1lbnRzIGJlbG93Ogo+ID4gPiA+IAo+ID4gPiA+ID4gQ2M6IElt cmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1i eTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiA+ID4g PiAtLS0KPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgfCAg MSArCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDEg Kwo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICB8ICAxICsK PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAxOSArKysr KysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgIDEgKwo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBs dWcuYyB8ICA5ICsrKysrKysrKwo+ID4gPiA+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0 aW9ucygrKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYwo+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4gPiA+ID4gPiBpbmRleCBhY2I1MTYzMDgyNjIuLjE0MzMxYzM5NjI3OCAxMDA2NDQKPiA+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ID4gPiA+IEBAIC0xOTExLDYg KzE5MTEsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmQoc3RydWN0Cj4gPiA+ID4gPiBk cm1fZGV2aWNlCj4gPiA+ID4gPiAqZGV2KQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlpbnRlbF9y dW50aW1lX3BtX2Rpc2FibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gPiA+ID4gPiAgCWludGVs X2hwZF9jYW5jZWxfd29yayhkZXZfcHJpdik7Cj4gPiA+ID4gPiArCWludGVsX2hwZF9zdXNwZW5k KGRldl9wcml2KTsKPiA+ID4gPiAKPiA+ID4gPiBXaGF0IGFib3V0IHJ1bnRpbWUgc3VzcGVuZD8g V2Ugd29uJ3QgcmVjZWl2ZSBIUEQgaW50ZXJydXB0cyBhZnRlcgo+ID4gPiA+IHRoYXQKPiA+ID4g PiBlaXRoZXIsIHNvIHdlJ2QgbmVlZCB0byBkaXNjb25uZWN0IGluIHRoYXQgY2FzZSB0b28gYWNj b3JkaW5nIHRvCj4gPiA+ID4gdGhlCj4gPiA+ID4gc3BlYy4KPiA+ID4gCj4gPiA+IE9oIG15IGJh ZCBJIHdhcyB0aGlua2luZyB0aGF0IHRoZSByZWd1bGFyIHN1c3BlbmQgd291bGQgaGFuZGxlIHRo aXMKPiA+ID4gdG9vCj4gPiA+IGJ1dCBJIHdhcyB3cm9uZy4KPiA+ID4gCj4gPiA+IFNvIEkgd2ls bCBhZGQgYSBpbnRlbF9ocGRfc3VzcGVuZCgpIGNhbGwgdG8gaW50ZWxfcnVudGltZV9zdXNwZW5k KCkKPiA+ID4gbGVhdmluZyB0aGUgaTkxNV9kcnYuYyBjaGFuZ2VzIGFzIHRoaXMuCj4gPiA+IAo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ID4gaW5kZXggYjFkMjNjNzNjMTQ3 Li45NDg5MTRhNzljNjcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4g PiBAQCAtMTkwNSw2ICsxOTA1LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kKHN0cnVj dCBkcm1fZGV2aWNlCj4gPiA+ICpkZXYpCj4gPiA+IAo+ID4gPiAgICAgICAgIGludGVsX3J1bnRp bWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiA+ID4gICAgICAgICBpbnRlbF9o cGRfY2FuY2VsX3dvcmsoZGV2X3ByaXYpOwo+ID4gPiArICAgICAgIGludGVsX2hwZF9zdXNwZW5k KGRldl9wcml2KTsKPiA+ID4gCj4gPiA+ICAgICAgICAgaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhk ZXZfcHJpdik7Cj4gPiA+IAo+ID4gPiBAQCAtMjkwOSw2ICsyOTEwLDcgQEAgc3RhdGljIGludCBp bnRlbF9ydW50aW1lX3N1c3BlbmQoc3RydWN0Cj4gPiA+IGRldmljZQo+ID4gPiAqa2RldikKPiA+ ID4gICAgICAgICBpbnRlbF91Y19zdXNwZW5kKGRldl9wcml2KTsKPiA+ID4gCj4gPiA+ICAgICAg ICAgaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ID4gPiAr ICAgICAgIGludGVsX2hwZF9zdXNwZW5kKGRldl9wcml2KTsKPiA+ID4gCj4gPiA+ICAgICAgICAg aW50ZWxfdW5jb3JlX3N1c3BlbmQoZGV2X3ByaXYpOwo+ID4gPiAKPiA+ID4gQWxzbyBJIHdpbGwg ZHJvcCB0aGUgbmV4dCBwYXRjaCBhcyB3ZSBkb24ndCBjYWxsCj4gPiA+IGludGVsX2hwZF9jYW5j ZWxfd29yaygpIGluIGludGVsX3J1bnRpbWVfc3VzcGVuZCgpIHBhdGguCj4gPiA+IAo+ID4gPiAK PiA+ID4gPiBBbmQgaG93IGFyZSB3ZSBoYW5kbGluZyByZXN1bWUgdGhlbiB3aGVyZSB3ZSdsbCBi ZSBpbiBhCj4gPiA+ID4gZGlzY29ubmVjdGVkCj4gPiA+ID4gc3RhdGUgZHVlIHRvIHRoZSBjaGFu Z2UgaW4gdGhpcyBwYXRjaCBhbmQgd291bGQgY29udGludWUgdG8gZG8gYQo+ID4gPiA+IG1vZGVz ZXQgKHRvIHJlc3RvcmUgdGhlIG1vZGUgd2UgaGFkIGJlZm9yZSBzdXNwZW5kKS4KPiA+ID4gCj4g PiA+IFRoZSBkcm1fa21zX2hlbHBlcl9wb2xsX2VuYWJsZSgpIGNhbGxzIHdpbGwgdHJpZ2dlciB0 aGUgY2FsbCB0byB0aGUKPiA+ID4gZGV0ZWN0aW9uIGZ1bmN0aW9uIG9mIHRoZSBjb25uZWN0b3Jz IHRoYXQgd2lsbCBjYWxsCj4gPiA+IGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoKSB0aGFs IHdpbGwgY2FsbCBJQ0wgVEMgZnVuY3Rpb25zIHRoYXQKPiA+ID4gd2lsbCB0YWtlIGNhcmUgb2Yg dXBkYXRlIGV2ZXJ5dGhpbmcuCj4gPiAKPiA+IE5vIGRldGVjdGlvbiB3aWxsIGJlIHRyaWdnZXJl ZCwgc2luY2Ugd2UncmUgbm90IHBvbGxpbmcgdGhpcyBwb3J0Cj4gPiAoYW5kCj4gPiBwb2xsaW5n IGNhbiBiZSBkaXNhYmxlZCBhcyBhIHdob2xlKS4gSW4gYW55IGNhc2UgdGhhdCB3b3VsZCBiZSB0 b28KPiA+IGxhdGUsCj4gPiBzaW5jZSB3ZSdyZSB0cnlpbmcgdG8gcmVzdG9yZSB0aGUgbW9kZSBi ZWZvcmUgd2UgY2FsbAo+ID4gZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUoKS4gIEFsc28gZG9p bmcgYSBkZXRlY3Rpb24gaXMgbm90IGVub3VnaAo+ID4gaGVyZSwgc2luY2UgaWYgZGV0ZWN0aW9u IGZhaWxzIChhcyBpdCB3b3VsZCBpbiBvdXIgY2FzZSkgd2Ugc3RpbGwKPiA+IGhhdmUgYQo+ID4g bW9kZSB0aGF0IHdlIG5lZWQgdG8gcmVzdG9yZS4gVGhlIGNvcnJlc3BvbmRpbmcgbW9kZXNldCB3 b3VsZCBmYWlsLAo+ID4gYnV0Cj4gPiB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGZhaWwgaXQgZ3Jh Y2VmdWxseSBhcyBJIHdyb3RlIGFib3ZlLgo+IAo+IAo+IEZvciB0aGUgcmVndWxhciBzdXNwZW5k IGl0IHdpbGwgcnVuIHRoZSBjb25uZWN0b3IgZGV0ZWN0aW9uIGZ1bmN0aW9ucwo+IGZvciBzdXJl IHdoZW4gdHJ5aW5nIHRvIHJlc3RvcmUgdGhlIHByZXZpb3VzIG1vZGVzZXQuCgpOb3Qgc3VyZSB3 aGF0IHlvdSBtZWFuLgpGcm9tIGRybV9rbXNfaGVscGVyX3BvbGxfZW5hYmxlKCk6CgoJaWYgKCFk ZXYtPm1vZGVfY29uZmlnLnBvbGxfZW5hYmxlZCB8fCAhZHJtX2ttc19oZWxwZXJfcG9sbCkKCQly ZXR1cm47CgpzbyB3ZSB3b24ndCBkbyBhbnl0aGluZyBpbiB0aGlzIGZ1bmN0aW9uIGlmIHBvbGxp bmcgaXMgZ2xvYmFsbHkgZGlzYWJsZWQuCgoJaWYgKGNvbm5lY3Rvci0+cG9sbGVkICYgKERSTV9D T05ORUNUT1JfUE9MTF9DT05ORUNUIHwgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBEUk1fQ09OTkVDVE9SX1BPTExfRElTQ09OTkVDVCkpICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGwgPSB0cnVlOwoKc28gd2Ugd29uJ3QgZG8g YW55dGhpbmcgaWYgd2UgaGF2ZW4ndCBlbmFibGVkIHBvbGxpbmcgZm9yIHRoZSBjb25uZWN0b3Iu CkdlbmVyYWxseSB3ZSBkb24ndCBlbmFibGUgcG9sbGluZyBmb3IgY29ubmVjdG9ycyB3aGljaCBw cm92aWRlIEhQRAppbnRlcnJ1cHRzLgoKVGhlcmUgaXMgYWN0dWFsbHkgYSBkZXRlY3Rpb24gd29y ayBzY2hlZHVsZWQgZnJvbSBpbnRlbF9ocGRfaW5pdCgpLCBidXQKYWdhaW4gdGhhdCB3aWxsIHJ1 biBvbmx5IGFmdGVyIHdlIHRyaWVkIHRvIHJlc3RvcmUgdGhlIHByZS1zdXNwZW5kIG1vZGUuCkFs c28gbm90ZSB3aGF0IEkgd3JvdGUgYWJvdXQgZGV0ZWN0aW9uIGJlaW5nIG5vdCBlbm91Z2ggZm9y IHVzLiBUaGUgc2luawpjYW4gYmUgZ29uZSBieSB0aGUgdGltZSB3ZSByZXN1bWUgYW5kIHdlIHdp bGwgc3RpbGwgdHJ5IHRvIHJlc3RvcmUgdGhlCm1vZGUuCgo+IEFib3V0IHRoZSBydW50aW1lIHJl c3VtZSBJIG5lZWQgdG8gY2hlY2sgaWYgd2l0aCB0aGUgcG9sbGluZyBkaXNhYmxlZAo+IGl0IHdp bGwgc3RpbGwgdXBkYXRlIHRoZSBjb25uZWN0b3Igc3RhdGUuCj4gCj4gCj4gPiAKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICAJaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhkZXZfcHJpdik7Cj4gPiA+ID4g PiAgCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ID4gPiBp bmRleCAwYzg0MzhkZTNjMWIuLjk2ZDVkZGMzNmY0ZSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gPiA+IEBAIC0yNzkyLDYgKzI3OTIsNyBAQCBlbnVt IGhwZF9waW4gaW50ZWxfaHBkX3Bpbl9kZWZhdWx0KHN0cnVjdAo+ID4gPiA+ID4gZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiAgCQkJCSAgIGVudW0gcG9ydCBwb3J0KTsKPiA+ ID4gPiA+ICBib29sIGludGVsX2hwZF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bQo+ID4gPiA+ID4gaHBkX3BpbiBwaW4pOwo+ID4gPiA+ID4gIHZvaWQgaW50 ZWxfaHBkX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0KPiA+ ID4gPiA+IGhwZF9waW4gcGluKTsKPiA+ID4gPiA+ICt2b2lkIGludGVsX2hwZF9zdXNwZW5kKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAg LyogaTkxNV9pcnEuYyAqLwo+ID4gPiA+ID4gIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X3F1ZXVl X2hhbmdjaGVjayhzdHJ1Y3QKPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZhdGUKPiA+ID4gPiA+ICpk ZXZfcHJpdikKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4g PiA+IGluZGV4IGQ3ZTQ3ZDYwODJkZS4uMjMwODRkMjI3ZTJhIDEwMDY0NAo+ID4gPiA+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4gPiA+ID4gQEAgLTQ5OTYsNiArNDk5Niw3IEBA IHZvaWQgaW50ZWxfaXJxX3VuaW5zdGFsbChzdHJ1Y3QKPiA+ID4gPiA+IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ICAJZHJtX2lycV91bmluc3RhbGwo JmRldl9wcml2LT5kcm0pOwo+ID4gPiA+ID4gIAlpbnRlbF9ocGRfY2FuY2VsX3dvcmsoZGV2X3By aXYpOwo+ID4gPiA+ID4gKwlpbnRlbF9ocGRfc3VzcGVuZChkZXZfcHJpdik7Cj4gPiA+ID4gPiAg CWRldl9wcml2LT5ydW50aW1lX3BtLmlycXNfZW5hYmxlZCA9IGZhbHNlOwo+ID4gPiA+ID4gIH0K PiA+ID4gPiA+ICAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ ID4gPiA+IGluZGV4IDUyNThjOWQ2NTRmNC4uMjdjNjE2MzQyNmQ2IDEwMDY0NAo+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gQEAgLTUwNDMsNiArNTA0Mywy NSBAQCBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0Cj4gPiA+ID4gPiBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ID4gIAlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4g PiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKy8qCj4gPiA+ID4gPiArICogaW50ZWxfZGlnaXRh bF9wb3J0X2ZvcmNlX2Rpc2Nvbm5lY3Rpb24gLSBVc2VkIHRvIGZvcmNlIHBvcnQKPiA+ID4gPiA+ IGRpc2Nvbm5lY3Rpb24gb3IKPiA+ID4gPiA+ICsgKiByZWxlYXNlIGFueSBjb250cm9sIGZyb20g ZGlzcGxheSBkcml2ZXIgYmVmb3JlIGdvaW5nIHRvIGEKPiA+ID4gPiA+IHN0YXRlCj4gPiA+ID4g PiB0aGF0IGRyaXZlcgo+ID4gPiA+ID4gKyAqIHdpbGwgbm90IGhhbmRsZSBpbnRlcnJ1cHRpb25z Lgo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gK3ZvaWQgaW50ZWxfZGlnaXRhbF9wb3J0X2ZvcmNl X2Rpc2Nvbm5lY3Rpb24oc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9lbmNvZGVyCj4gPiA+ID4gPiAq ZW5jb2RlcikKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0KPiA+ID4gPiA+ID5iYXNlLmRldik7Cj4gPiA+ ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0Owo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gKwlkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4g PiA+ID4gPiArCS8qIFNraXAgZmFrZSBNU1QgcG9ydHMgKi8KPiA+ID4gPiA+ICsJaWYgKCFkaWdf cG9ydCkKPiA+ID4gPiA+ICsJCXJldHVybjsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gPiA+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nvbm5l Y3QoZGV2X3ByaXYsIGRpZ19wb3J0KTsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4gPiA+ID4g PiAgc3RhdGljIHN0cnVjdCBlZGlkICoKPiA+ID4gPiA+ICBpbnRlbF9kcF9nZXRfZWRpZChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gaW5kZXggNjc3MmU5OTc0NzUxLi5iYzMw ZjEwN2I0MzAgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiA+ID4gPiA+IEBAIC0xODUxLDYgKzE4NTEsNyBAQCBib29sIGludGVsX2RwX3JlYWRfZHBjZChz dHJ1Y3QgaW50ZWxfZHAKPiA+ID4gPiA+ICppbnRlbF9kcCk7Cj4gPiA+ID4gPiAgaW50IGludGVs X2RwX2xpbmtfcmVxdWlyZWQoaW50IHBpeGVsX2Nsb2NrLCBpbnQgYnBwKTsKPiA+ID4gPiA+ICBp bnQgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShpbnQgbWF4X2xpbmtfY2xvY2ssIGludCBtYXhfbGFu ZXMpOwo+ID4gPiA+ID4gIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3Qg aW50ZWxfZW5jb2Rlcgo+ID4gPiA+ID4gKmVuY29kZXIpOwo+ID4gPiA+ID4gK3ZvaWQgaW50ZWxf ZGlnaXRhbF9wb3J0X2ZvcmNlX2Rpc2Nvbm5lY3Rpb24oc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9l bmNvZGVyCj4gPiA+ID4gPiAqZW5jb2Rlcik7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgLyogaW50 ZWxfZHBfYXV4X2JhY2tsaWdodC5jICovCj4gPiA+ID4gPiAgaW50IGludGVsX2RwX2F1eF9pbml0 X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yCj4gPiA+ID4gPiAqaW50ZWxf Y29ubmVjdG9yKTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ob3RwbHVnLmMKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90 cGx1Zy5jCj4gPiA+ID4gPiBpbmRleCA0MmU2MWUxMGY1MTcuLmQ2NzQ1YjdiNzlkNSAxMDA2NDQK PiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+ID4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jCj4gPiA+ID4g PiBAQCAtNjU1LDMgKzY1NSwxMiBAQCB2b2lkIGludGVsX2hwZF9lbmFibGUoc3RydWN0Cj4gPiA+ ID4gPiBkcm1faTkxNV9wcml2YXRlCj4gPiA+ID4gPiAqZGV2X3ByaXYsIGVudW0gaHBkX3BpbiBw aW4pCj4gPiA+ID4gPiAgCWRldl9wcml2LT5ob3RwbHVnLnN0YXRzW3Bpbl0uc3RhdGUgPSBIUERf RU5BQkxFRDsKPiA+ID4gPiA+ICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2sp Owo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICt2b2lkIGludGVsX2hwZF9zdXNw ZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ID4gPiA+ICt7Cj4gPiA+ ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiA+ID4gPiA+ ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAr CWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKQo+ID4gPiA+ID4gKwkJaW50ZWxf ZGlnaXRhbF9wb3J0X2ZvcmNlX2Rpc2Nvbm5lY3Rpb24oZW5jb2RlcikKPiA+ID4gPiA+IDsKPiA+ ID4gPiA+ICt9Cj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuMTkuMQo+ID4gPiA+ID4gCj4gPiAK PiA+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=