From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/2] drm/sched: Refactor ring mirror list handling. Date: Thu, 6 Dec 2018 19:33:53 +0100 Message-ID: References: <1544118074-24910-1-git-send-email-andrey.grodzovsky@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1544118074-24910-1-git-send-email-andrey.grodzovsky-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Andrey Grodzovsky , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org, etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Monk.Liu-5C7GfCeVMHo@public.gmane.org QW0gMDYuMTIuMTggdW0gMTg6NDEgc2NocmllYiBBbmRyZXkgR3JvZHpvdnNreToKPiBEZWNhdXBs ZSBzY2hlZCB0aHJlYWRzIHN0b3AgYW5kIHN0YXJ0IGFuZCByaW5nIG1pcnJvcgo+IGxpc3QgaGFu ZGxpbmcgZnJvbSB0aGUgcG9saWN5IG9mIHdoYXQgdG8gZG8gYWJvdXQgdGhlCj4gZ3VpbHR5IGpv YnMuCj4gV2hlbiBzdG9wcHBpbmcgdGhlIHNjaGVkIHRocmVhZCBhbmQgZGV0YWNoaW5nIHNjaGVk IGZlbmNlcwo+IGZyb20gbm9uIHNpZ25hbGVkIEhXIGZlbmVzIHdhaXQgZm9yIGFsbCBzaWduYWxl ZCBIVyBmZW5jZXMKPiB0byBjb21wbGV0ZSBiZWZvcmUgcmVydW5uaW5nIHRoZSBqb2JzLgo+Cj4g U3VnZ2VzdGVkLWJ5OiBDaHJpc3RpYW4gS29lbmlnIDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5QGFt ZC5jb20+CgpKdXN0IGJyaWVmbHkgc2tpbW1lZCBvdmVyIHRoaXMsIGJ1dCBpdCBsb29rcyBleGFj dGx5IGxpa2Ugd2hhdCBJIGhhZCBpbiAKbWluZC4KCk5lZWQgdG8gZ2l2ZSB0aGF0IGEgbW9yZSBk ZXRhaWxlZCB0aG91Z2h0IHRvbW9ycm93LApDaHJpc3RpYW4uCgo+IC0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIHwgMTcgKysrLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X3NjaGVkLmMgICAgfCAgOCArLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jICAgICB8IDg2ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyAgICAgICAg ICAgIHwgMTEgKystLQo+ICAgaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oICAgICAgICAgICAg ICAgIHwgMTAgKystLQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA0OSBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMKPiBpbmRleCBlZjM2Y2M1Li40MjExMWQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IEBAIC0zMjkyLDE3ICszMjkyLDE2IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAkvKiBibG9jayBhbGwgc2NoZWR1bGVycyBhbmQgcmVzZXQgZ2l2ZW4gam9iJ3Mgcmlu ZyAqLwo+ICAgCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsKPiAgIAkJ c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+cmluZ3NbaV07Cj4gKwkJYm9vbCBwYXJr X29ubHkgPSBqb2IgJiYgam9iLT5iYXNlLnNjaGVkICE9ICZyaW5nLT5zY2hlZDsKPiAgIAo+ICAg CQlpZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVkLnRocmVhZCkKPiAgIAkJCWNvbnRpbnVlOwo+ICAg Cj4gLQkJa3RocmVhZF9wYXJrKHJpbmctPnNjaGVkLnRocmVhZCk7Cj4gKwkJZHJtX3NjaGVkX3N0 b3AoJnJpbmctPnNjaGVkLCBqb2IgPyAmam9iLT5iYXNlIDogTlVMTCwgcGFya19vbmx5KTsKPiAg IAo+IC0JCWlmIChqb2IgJiYgam9iLT5iYXNlLnNjaGVkICE9ICZyaW5nLT5zY2hlZCkKPiArCQlp ZiAocGFya19vbmx5KQo+ICAgCQkJY29udGludWU7Cj4gICAKPiAtCQlkcm1fc2NoZWRfaHdfam9i X3Jlc2V0KCZyaW5nLT5zY2hlZCwgam9iID8gJmpvYi0+YmFzZSA6IE5VTEwpOwo+IC0KPiAgIAkJ LyogYWZ0ZXIgYWxsIGh3IGpvYnMgYXJlIHJlc2V0LCBodyBmZW5jZSBpcyBtZWFuaW5nbGVzcywg c28gZm9yY2VfY29tcGxldGlvbiAqLwo+ICAgCQlhbWRncHVfZmVuY2VfZHJpdmVyX2ZvcmNlX2Nv bXBsZXRpb24ocmluZyk7Cj4gICAJfQo+IEBAIC0zNDQ1LDYgKzM0NDQsNyBAQCBzdGF0aWMgdm9p ZCBhbWRncHVfZGV2aWNlX3Bvc3RfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAkJCQkJICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQo+ICAgewo+ICAgCWludCBpOwo+ ICsJYm9vbCB1bnBhcmtfb25seTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFY X1JJTkdTOyArK2kpIHsKPiAgIAkJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+cmlu Z3NbaV07Cj4gQEAgLTM0NTYsMTAgKzM0NTYsMTMgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2Rldmlj ZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCSAqIG9y IGFsbCByaW5ncyAoaW4gdGhlIGNhc2UgQGpvYiBpcyBOVUxMKQo+ICAgCQkgKiBhZnRlciBhYm92 ZSBhbWRncHVfcmVzZXQgYWNjb21wbGlzaGVkCj4gICAJCSAqLwo+IC0JCWlmICgoIWpvYiB8fCBq b2ItPmJhc2Uuc2NoZWQgPT0gJnJpbmctPnNjaGVkKSAmJiAhYWRldi0+YXNpY19yZXNldF9yZXMp Cj4gLQkJCWRybV9zY2hlZF9qb2JfcmVjb3ZlcnkoJnJpbmctPnNjaGVkKTsKPiArCQl1bnBhcmtf b25seSA9IChqb2IgJiYgam9iLT5iYXNlLnNjaGVkICE9ICZyaW5nLT5zY2hlZCkgfHwKPiArCQkJ ICAgICAgIGFkZXYtPmFzaWNfcmVzZXRfcmVzOwo+ICsKPiArCQlpZiAoIXVucGFya19vbmx5KQo+ ICsJCQlkcm1fc2NoZWRfcmVzdWJtaXRfam9icygmcmluZy0+c2NoZWQpOwo+ICAgCj4gLQkJa3Ro cmVhZF91bnBhcmsocmluZy0+c2NoZWQudGhyZWFkKTsKPiArCQlkcm1fc2NoZWRfc3RhcnQoJnJp bmctPnNjaGVkLCB1bnBhcmtfb25seSk7Cj4gICAJfQo+ICAgCj4gICAJaWYgKCFhbWRncHVfZGV2 aWNlX2hhc19kY19zdXBwb3J0KGFkZXYpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ldG5hdml2L2V0bmF2aXZfc2NoZWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2 aXZfc2NoZWQuYwo+IGluZGV4IDQ5YTY3NjMuLmZhYjNiNTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2V0bmF2aXYvZXRuYXZpdl9zY2hlZC5jCj4gQEAgLTEwOSwxNiArMTA5LDE2IEBAIHN0YXRpYyB2 b2lkIGV0bmF2aXZfc2NoZWRfdGltZWRvdXRfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hl ZF9qb2IpCj4gICAJfQo+ICAgCj4gICAJLyogYmxvY2sgc2NoZWR1bGVyICovCj4gLQlrdGhyZWFk X3BhcmsoZ3B1LT5zY2hlZC50aHJlYWQpOwo+IC0JZHJtX3NjaGVkX2h3X2pvYl9yZXNldCgmZ3B1 LT5zY2hlZCwgc2NoZWRfam9iKTsKPiArCWRybV9zY2hlZF9zdG9wKCZncHUtPnNjaGVkLCBzY2hl ZF9qb2IsIGZhbHNlKTsKPiAgIAo+ICAgCS8qIGdldCB0aGUgR1BVIGJhY2sgaW50byB0aGUgaW5p dCBzdGF0ZSAqLwo+ICAgCWV0bmF2aXZfY29yZV9kdW1wKGdwdSk7Cj4gICAJZXRuYXZpdl9ncHVf cmVjb3Zlcl9oYW5nKGdwdSk7Cj4gICAKPiArCWRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKCZncHUt PnNjaGVkKTsKPiArCj4gICAJLyogcmVzdGFydCBzY2hlZHVsZXIgYWZ0ZXIgR1BVIGlzIHVzYWJs ZSBhZ2FpbiAqLwo+IC0JZHJtX3NjaGVkX2pvYl9yZWNvdmVyeSgmZ3B1LT5zY2hlZCk7Cj4gLQlr dGhyZWFkX3VucGFyayhncHUtPnNjaGVkLnRocmVhZCk7Cj4gKwlkcm1fc2NoZWRfc3RhcnQoJmdw dS0+c2NoZWQpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBldG5hdml2X3NjaGVkX2ZyZWVf am9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzY2hlZF9qb2IpCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL3NjaGVk dWxlci9zY2hlZF9tYWluLmMKPiBpbmRleCBkYmI2OTA2Li44ZmI3Zjg2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKPiBAQCAtNjAsOCArNjAsNiBAQAo+ICAgCj4g ICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcHJvY2Vzc19qb2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwg c3RydWN0IGRtYV9mZW5jZV9jYiAqY2IpOwo+ICAgCj4gLXN0YXRpYyB2b2lkIGRybV9zY2hlZF9l eHBlbF9qb2JfdW5sb2NrZWQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKTsKPiAtCj4gICAv KioKPiAgICAqIGRybV9zY2hlZF9ycV9pbml0IC0gaW5pdGlhbGl6ZSBhIGdpdmVuIHJ1biBxdWV1 ZSBzdHJ1Y3QKPiAgICAqCj4gQEAgLTM0MiwxMyArMzQwLDIxIEBAIHN0YXRpYyB2b2lkIGRybV9z Y2hlZF9qb2JfdGltZWRvdXQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAgICogQGJhZDog YmFkIHNjaGVkdWxlciBqb2IKPiAgICAqCj4gICAgKi8KPiAtdm9pZCBkcm1fc2NoZWRfaHdfam9i X3Jlc2V0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsIHN0cnVjdCBkcm1fc2NoZWRf am9iICpiYWQpCj4gK3ZvaWQgZHJtX3NjaGVkX3N0b3Aoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9qb2IgKmJhZCwKPiArCQkgICAgYm9vbCBwYXJrX29u bHkpCj4gICB7Cj4gICAJc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iOwo+ICAgCXN0cnVjdCBk cm1fc2NoZWRfZW50aXR5ICplbnRpdHksICp0bXA7Cj4gICAJdW5zaWduZWQgbG9uZyBmbGFnczsK PiArCXN0cnVjdCBsaXN0X2hlYWQgd2FpdF9saXN0Owo+ICAgCWludCBpOwo+ICAgCj4gKwlrdGhy ZWFkX3Bhcmsoc2NoZWQtPnRocmVhZCk7Cj4gKwlpZiAocGFya19vbmx5KQo+ICsJCXJldHVybjsK PiArCj4gKwlJTklUX0xJU1RfSEVBRCgmd2FpdF9saXN0KTsKPiArCj4gICAJc3Bpbl9sb2NrX2ly cXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4gICAJbGlzdF9mb3JfZWFjaF9l bnRyeV9yZXZlcnNlKHNfam9iLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xpc3QsIG5vZGUpIHsKPiAg IAkJaWYgKHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQgJiYKPiBAQCAtMzU4LDkgKzM2NCwyNCBAQCB2 b2lkIGRybV9zY2hlZF9od19qb2JfcmVzZXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCwgc3RydWN0IGRybV9zY2hlZF9qbwo+ICAgCQkJc19qb2ItPnNfZmVuY2UtPnBhcmVudCA9IE5V TEw7Cj4gICAJCQlhdG9taWNfZGVjKCZzY2hlZC0+aHdfcnFfY291bnQpOwo+ICAgCQl9Cj4gKwkJ ZWxzZSB7Cj4gKwkJCS8qIFRPRE8gSXMgaXQgZ2V0L3B1dCBuZWNjZXNzZXkgaGVyZSA/ICovCj4g KwkJCWRtYV9mZW5jZV9nZXQoJnNfam9iLT5zX2ZlbmNlLT5maW5pc2hlZCk7Cj4gKwkJCWxpc3Rf YWRkKCZzX2pvYi0+ZmluaXNoX25vZGUsICZ3YWl0X2xpc3QpOwo+ICsJCX0KPiAgIAl9Cj4gICAJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPiAg IAo+ICsJLyoKPiArCSAqIFZlcmlmeSBhbGwgdGhlIHNpZ25hbGVkIGpvYnMgaW4gbWlycm9yIGxp c3QgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcmluZwo+ICsJICogV2UgcmVseSBvbiB0aGUgZmFjdCB0 aGF0IGFueSBmaW5pc2hfd29yayBpbiBwcm9ncmVzcyB3aWxsIHdhaXQgZm9yIHRoaXMKPiArCSAq IGhhbmRsZXIgdG8gY29tcGxldGUgYmVmb3JlIHJlbGVhc2luZyBhbGwgb2YgdGhlIGpvYnMgd2Ug aXRlcmF0ZS4KPiArCSAqLwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShzX2pvYiwgJndhaXRfbGlz dCwgZmluaXNoX25vZGUpIHsKPiArCQlkbWFfZmVuY2Vfd2FpdCgmc19qb2ItPnNfZmVuY2UtPmZp bmlzaGVkLCBmYWxzZSk7Cj4gKwkJZG1hX2ZlbmNlX3B1dCgmc19qb2ItPnNfZmVuY2UtPmZpbmlz aGVkKTsKPiArCX0KPiArCj4gICAJaWYgKGJhZCAmJiBiYWQtPnNfcHJpb3JpdHkgIT0gRFJNX1ND SEVEX1BSSU9SSVRZX0tFUk5FTCkgewo+ICAgCQlhdG9taWNfaW5jKCZiYWQtPmthcm1hKTsKPiAg IAkJLyogZG9uJ3QgaW5jcmVhc2UgQGJhZCdzIGthcm1hIGlmIGl0J3MgZnJvbSBLRVJORUwgUlEs Cj4gQEAgLTM4NSw3ICs0MDYsNyBAQCB2b2lkIGRybV9zY2hlZF9od19qb2JfcmVzZXQoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9qbwo+ICAgCQl9Cj4g ICAJfQo+ICAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9od19qb2JfcmVzZXQpOwo+ICtF WFBPUlRfU1lNQk9MKGRybV9zY2hlZF9zdG9wKTsKPiAgIAo+ICAgLyoqCj4gICAgKiBkcm1fc2No ZWRfam9iX3JlY292ZXJ5IC0gcmVjb3ZlciBqb2JzIGFmdGVyIGEgcmVzZXQKPiBAQCAtMzkzLDE0 ICs0MTQsMTcgQEAgRVhQT1JUX1NZTUJPTChkcm1fc2NoZWRfaHdfam9iX3Jlc2V0KTsKPiAgICAq IEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCj4gICAgKgo+ICAgICovCj4gLXZvaWQgZHJtX3Nj aGVkX2pvYl9yZWNvdmVyeShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQo+ICt2b2lk IGRybV9zY2hlZF9zdGFydChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLCBib29sIHVu cGFya19vbmx5KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYiwgKnRtcDsK PiAgIAlib29sIGZvdW5kX2d1aWx0eSA9IGZhbHNlOwo+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 Cj4gICAJaW50IHI7Cj4gICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3Rf bG9jaywgZmxhZ3MpOwo+ICsJaWYgKHVucGFya19vbmx5KQo+ICsJCWdvdG8gdW5wYXJrOwo+ICsK PiArCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOwkKPiAg IAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc19qb2IsIHRtcCwgJnNjaGVkLT5yaW5nX21pcnJv cl9saXN0LCBub2RlKSB7Cj4gICAJCXN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgKnNfZmVuY2UgPSBz X2pvYi0+c19mZW5jZTsKPiAgIAkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gQEAgLTQxNCwx MiArNDM4LDkgQEAgdm9pZCBkcm1fc2NoZWRfam9iX3JlY292ZXJ5KHN0cnVjdCBkcm1fZ3B1X3Nj aGVkdWxlciAqc2NoZWQpCj4gICAJCWlmIChmb3VuZF9ndWlsdHkgJiYgc19qb2ItPnNfZmVuY2Ut PnNjaGVkdWxlZC5jb250ZXh0ID09IGd1aWx0eV9jb250ZXh0KQo+ICAgCQkJZG1hX2ZlbmNlX3Nl dF9lcnJvcigmc19mZW5jZS0+ZmluaXNoZWQsIC1FQ0FOQ0VMRUQpOwo+ICAgCj4gLQkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPiAtCQlmZW5j ZSA9IHNjaGVkLT5vcHMtPnJ1bl9qb2Ioc19qb2IpOwo+IC0JCWF0b21pY19pbmMoJnNjaGVkLT5o d19ycV9jb3VudCk7Cj4gICAKPiArCQlmZW5jZSA9IHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQ7Cj4g ICAJCWlmIChmZW5jZSkgewo+IC0JCQlzX2ZlbmNlLT5wYXJlbnQgPSBkbWFfZmVuY2VfZ2V0KGZl bmNlKTsKPiAgIAkJCXIgPSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmc19mZW5jZS0+ Y2IsCj4gICAJCQkJCQkgICBkcm1fc2NoZWRfcHJvY2Vzc19qb2IpOwo+ICAgCQkJaWYgKHIgPT0g LUVOT0VOVCkKPiBAQCAtNDI3LDE4ICs0NDgsMzUgQEAgdm9pZCBkcm1fc2NoZWRfam9iX3JlY292 ZXJ5KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpCj4gICAJCQllbHNlIGlmIChyKQo+ ICAgCQkJCURSTV9FUlJPUigiZmVuY2UgYWRkIGNhbGxiYWNrIGZhaWxlZCAoJWQpXG4iLAo+ICAg CQkJCQkgIHIpOwo+IC0JCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiAtCQl9IGVsc2Ugewo+IC0J CQlpZiAoc19mZW5jZS0+ZmluaXNoZWQuZXJyb3IgPCAwKQo+IC0JCQkJZHJtX3NjaGVkX2V4cGVs X2pvYl91bmxvY2tlZChzX2pvYik7Cj4gKwkJfSBlbHNlCj4gICAJCQlkcm1fc2NoZWRfcHJvY2Vz c19qb2IoTlVMTCwgJnNfZmVuY2UtPmNiKTsKPiAtCQl9Cj4gLQkJc3Bpbl9sb2NrX2lycXNhdmUo JnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7Cj4gICAJfQo+ICsKPiAgIAlkcm1fc2NoZWRf c3RhcnRfdGltZW91dChzY2hlZCk7Cj4gICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQt PmpvYl9saXN0X2xvY2ssIGZsYWdzKTsKPiArCj4gK3VucGFyazoKPiArCWt0aHJlYWRfdW5wYXJr KHNjaGVkLT50aHJlYWQpOwo+ICAgfQo+IC1FWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9qb2JfcmVj b3ZlcnkpOwo+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9zdGFydCk7Cj4gKwo+ICsvKioKPiAr ICogZHJtX3NjaGVkX3Jlc3VibWl0X2pvYnMgLSBoZWxwZXIgdG8gcmVsdW5jaCBqb2IgZnJvbSBt aXJyb3IgcmluZyBsaXN0Cj4gKyAqCj4gKyAqIEBzY2hlZDogc2NoZWR1bGVyIGluc3RhbmNlCj4g KyAqCj4gKyAqLwo+ICt2b2lkIGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKHN0cnVjdCBkcm1fZ3B1 X3NjaGVkdWxlciAqc2NoZWQpCj4gK3sKPiArCXN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYiwg KnRtcDsKPiArCj4gKwkvKlRPRE8gRE8gd2UgbmVlZCBzcGlubG9jayBoZXJlID8gKi8KPiArCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShzX2pvYiwgdG1wLCAmc2NoZWQtPnJpbmdfbWlycm9yX2xp c3QsIG5vZGUpIHsKPiArCQlzX2pvYi0+c19mZW5jZS0+cGFyZW50ID0gc2NoZWQtPm9wcy0+cnVu X2pvYihzX2pvYik7Cj4gKwkJYXRvbWljX2luYygmc2NoZWQtPmh3X3JxX2NvdW50KTsKPiArCX0K PiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKTsKPiAgIAo+ICAg LyoqCj4gICAgKiBkcm1fc2NoZWRfam9iX2luaXQgLSBpbml0IGEgc2NoZWR1bGVyIGpvYgo+IEBA IC02MzQsMjYgKzY3MiwxNCBAQCBzdGF0aWMgaW50IGRybV9zY2hlZF9tYWluKHZvaWQgKnBhcmFt KQo+ICAgCQkJCURSTV9FUlJPUigiZmVuY2UgYWRkIGNhbGxiYWNrIGZhaWxlZCAoJWQpXG4iLAo+ ICAgCQkJCQkgIHIpOwo+ICAgCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gLQkJfSBlbHNlIHsK PiAtCQkJaWYgKHNfZmVuY2UtPmZpbmlzaGVkLmVycm9yIDwgMCkKPiAtCQkJCWRybV9zY2hlZF9l eHBlbF9qb2JfdW5sb2NrZWQoc2NoZWRfam9iKTsKPiArCQl9IGVsc2UKPiAgIAkJCWRybV9zY2hl ZF9wcm9jZXNzX2pvYihOVUxMLCAmc19mZW5jZS0+Y2IpOwo+IC0JCX0KPiAgIAo+ICAgCQl3YWtl X3VwKCZzY2hlZC0+am9iX3NjaGVkdWxlZCk7Cj4gICAJfQo+ICAgCXJldHVybiAwOwo+ICAgfQo+ ICAgCj4gLXN0YXRpYyB2b2lkIGRybV9zY2hlZF9leHBlbF9qb2JfdW5sb2NrZWQoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNfam9iKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNj aGVkID0gc19qb2ItPnNjaGVkOwo+IC0KPiAtCXNwaW5fbG9jaygmc2NoZWQtPmpvYl9saXN0X2xv Y2spOwo+IC0JbGlzdF9kZWxfaW5pdCgmc19qb2ItPm5vZGUpOwo+IC0Jc3Bpbl91bmxvY2soJnNj aGVkLT5qb2JfbGlzdF9sb2NrKTsKPiAtfQo+IC0KPiAgIC8qKgo+ICAgICogZHJtX3NjaGVkX2lu aXQgLSBJbml0IGEgZ3B1IHNjaGVkdWxlciBpbnN0YW5jZQo+ICAgICoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3YzZC92M2Rfc2NoZWQuYyBiL2RyaXZlcnMvZ3B1L2RybS92M2QvdjNk X3NjaGVkLmMKPiBpbmRleCA0NDViMmVmLi5mOTkzNDZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92M2QvdjNkX3NjaGVkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9z Y2hlZC5jCj4gQEAgLTE3OCwxOCArMTc4LDE5IEBAIHYzZF9qb2JfdGltZWRvdXQoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNjaGVkX2pvYikKPiAgIAlmb3IgKHEgPSAwOyBxIDwgVjNEX01BWF9RVUVV RVM7IHErKykgewo+ICAgCQlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gJnYzZC0+ cXVldWVbcV0uc2NoZWQ7Cj4gICAKPiAtCQlrdGhyZWFkX3Bhcmsoc2NoZWQtPnRocmVhZCk7Cj4g LQkJZHJtX3NjaGVkX2h3X2pvYl9yZXNldChzY2hlZCwgKHNjaGVkX2pvYi0+c2NoZWQgPT0gc2No ZWQgPwo+IC0JCQkJCSAgICAgICBzY2hlZF9qb2IgOiBOVUxMKSk7Cj4gKwkJZHJtX3NjaGVkX3N0 b3Aoc2NoZWQsIChzY2hlZF9qb2ItPnNjaGVkID09IHNjaGVkID8KPiArCQkJCQkgICAgICAgc2No ZWRfam9iIDogTlVMTCksIGZhbHNlKTsKPiAgIAl9Cj4gICAKPiAgIAkvKiBnZXQgdGhlIEdQVSBi YWNrIGludG8gdGhlIGluaXQgc3RhdGUgKi8KPiAgIAl2M2RfcmVzZXQodjNkKTsKPiAgIAo+ICsJ Zm9yIChxID0gMDsgcSA8IFYzRF9NQVhfUVVFVUVTOyBxKyspCj4gKwkJZHJtX3NjaGVkX3Jlc3Vi bWl0X2pvYnMoc2NoZWRfam9iLT5zY2hlZCk7Cj4gKwo+ICAgCS8qIFVuYmxvY2sgc2NoZWR1bGVy cyBhbmQgcmVzdGFydCB0aGVpciBqb2JzLiAqLwo+ICAgCWZvciAocSA9IDA7IHEgPCBWM0RfTUFY X1FVRVVFUzsgcSsrKSB7Cj4gLQkJZHJtX3NjaGVkX2pvYl9yZWNvdmVyeSgmdjNkLT5xdWV1ZVtx XS5zY2hlZCk7Cj4gLQkJa3RocmVhZF91bnBhcmsodjNkLT5xdWV1ZVtxXS5zY2hlZC50aHJlYWQp Owo+ICsJCWRybV9zY2hlZF9zdGFydCgmdjNkLT5xdWV1ZVtxXS5zY2hlZCwgZmFsc2UpOwo+ICAg CX0KPiAgIAo+ICAgCW11dGV4X3VubG9jaygmdjNkLT5yZXNldF9sb2NrKTsKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxl ci5oCj4gaW5kZXggNDdlMTk3OS4uYzk0YjU5MiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9n cHVfc2NoZWR1bGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgKPiBAQCAt MTc1LDYgKzE3NSw3IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2UgKnRvX2RybV9zY2hlZF9mZW5j ZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsKPiAgICAqICAgICAgICAgICAgICAgZmluaXNoZWQgdG8g cmVtb3ZlIHRoZSBqb2IgZnJvbSB0aGUKPiAgICAqICAgICAgICAgICAgICAgQGRybV9ncHVfc2No ZWR1bGVyLnJpbmdfbWlycm9yX2xpc3QuCj4gICAgKiBAbm9kZTogdXNlZCB0byBhcHBlbmQgdGhp cyBzdHJ1Y3QgdG8gdGhlIEBkcm1fZ3B1X3NjaGVkdWxlci5yaW5nX21pcnJvcl9saXN0Lgo+ICsg KiBAZmluaXNoX25vZGU6IHVzZWQgaW4gYSBsaXN0IHRvIHdhaXQgb24gYmVmb3JlIHJlc2V0dGlu ZyB0aGUgc2NoZWR1bGVyCj4gICAgKiBAaWQ6IGEgdW5pcXVlIGlkIGFzc2lnbmVkIHRvIGVhY2gg am9iIHNjaGVkdWxlZCBvbiB0aGUgc2NoZWR1bGVyLgo+ICAgICogQGthcm1hOiBpbmNyZW1lbnQg b24gZXZlcnkgaGFuZyBjYXVzZWQgYnkgdGhpcyBqb2IuIElmIHRoaXMgZXhjZWVkcyB0aGUgaGFu Zwo+ICAgICogICAgICAgICBsaW1pdCBvZiB0aGUgc2NoZWR1bGVyIHRoZW4gdGhlIGpvYiBpcyBt YXJrZWQgZ3VpbHR5IGFuZCB3aWxsIG5vdAo+IEBAIC0xOTMsNiArMTk0LDcgQEAgc3RydWN0IGRy bV9zY2hlZF9qb2Igewo+ICAgCXN0cnVjdCBkbWFfZmVuY2VfY2IJCWZpbmlzaF9jYjsKPiAgIAlz dHJ1Y3Qgd29ya19zdHJ1Y3QJCWZpbmlzaF93b3JrOwo+ICAgCXN0cnVjdCBsaXN0X2hlYWQJCW5v ZGU7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkCQlmaW5pc2hfbm9kZTsKPiAgIAl1aW50NjRfdAkJCWlk Owo+ICAgCWF0b21pY190CQkJa2FybWE7Cj4gICAJZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkJCXNf cHJpb3JpdHk7Cj4gQEAgLTI5OCw5ICszMDAsMTEgQEAgaW50IGRybV9zY2hlZF9qb2JfaW5pdChz dHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iLAo+ICAgCQkgICAgICAgdm9pZCAqb3duZXIpOwo+ICAg dm9pZCBkcm1fc2NoZWRfam9iX2NsZWFudXAoc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYik7Cj4g ICB2b2lkIGRybV9zY2hlZF93YWtldXAoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCk7 Cj4gLXZvaWQgZHJtX3NjaGVkX2h3X2pvYl9yZXNldChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkLAo+IC0JCQkgICAgc3RydWN0IGRybV9zY2hlZF9qb2IgKmpvYik7Cj4gLXZvaWQgZHJt X3NjaGVkX2pvYl9yZWNvdmVyeShzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKTsKPiAr dm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkLAo+ICsJ CSAgICBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqam9iLAo+ICsJCSAgICBib29sIHBhcmtfb25seSk7 Cj4gK3ZvaWQgZHJtX3NjaGVkX3N0YXJ0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQs IGJvb2wgdW5wYXJrX29ubHkpOwo+ICt2b2lkIGRybV9zY2hlZF9yZXN1Ym1pdF9qb2JzKHN0cnVj dCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpOwo+ICAgYm9vbCBkcm1fc2NoZWRfZGVwZW5kZW5j eV9vcHRpbWl6ZWQoc3RydWN0IGRtYV9mZW5jZSogZmVuY2UsCj4gICAJCQkJICAgIHN0cnVjdCBk cm1fc2NoZWRfZW50aXR5ICplbnRpdHkpOwo+ICAgdm9pZCBkcm1fc2NoZWRfZmF1bHQoc3RydWN0 IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngK