From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH 2/3] drm/i915: Simplify for_each_fw_domain iterators Date: Mon, 4 Apr 2016 20:14:42 +0100 Message-ID: <5702BD22.3060109@intel.com> References: <1459788671-17501-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1459788671-17501-2-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id EE6BB6E582 for ; Mon, 4 Apr 2016 19:14:43 +0000 (UTC) In-Reply-To: <1459788671-17501-2-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDQvMDQvMTYgMTc6NTEsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IEZyb206IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4KPiBBcyB0aGUgdmFzdCBtYWpvcml0 eSBvZiB1c2VycyBkb2VzIG5vdCB1c2UgdGhlIGRvbWFpbiBpZCB2YXJpYWJsZSwKCiJkbyBub3Qg dXNlIgoKPiB3ZSBjYW4gZWxpbWluYXRlIGl0IGZyb20gdGhlIGl0ZXJhdG9yIGFuZCBhbHNvIGNo YW5nZSB0aGUgbGF0dGVyCj4gdXNpbmcgdGhlIHNhbWUgcHJpbmNpcGxlIGFzIHdhcyByZWNlbnRs eSBkb25lIGZvciBmb3JfZWFjaF9lbmdpbmUuCj4KPiBGb3IgYSBjb3VwbGUgb2YgY2FsbGVycyB3 aGljaCBkbyBuZWVkIHRoZSBkb21haW4gaWQsIG9yIHRoZSBkb21haW4KPiBtYXNrLCBzdG9yZSB0 aGUgbGF0ZXIgaW4gdGhlIGRvbWFpbiBpdHNlbGYgYXQgaW5pdCB0aW1lIGFuZCB1c2UKPiBib3Ro IHRocm91Z2ggaXQuCgoiRm9yIGEgY291cGxlIG9mIGNhbGxlcnMgd2hpY2ggZG8gbmVlZCB0aGUg ZG9tYWluIG1hc2ssIHN0b3JlIGl0CmluIHRoZSBkb21haW4gYXJyYXkgKHdoaWNoIGFscmVhZHkg aGFzIHRoZSBkb21haW4gaWQpLCB0aGVuIGJvdGgKY2FuIGJlIHJldHJpZXZlZCB0aGVuY2UuIiA/ Cgo+IFJlc3VsdCBpcyBjbGVhcmVyIGNvZGUgYW5kIHNtYWxsZXIgZ2VuZXJhdGVkIGJpbmFyeSwg ZXNwZWNpYWxseQo+IGluIHRoZSB0aWdodCBmdyBnZXQvcHV0IGxvb3BzLiBBbHNvLCByZWxhdGlv bnNoaXAgYmV0d2VlbiBkb21haW4KPiBpZCBhbmQgbWFzayBpcyBubyBsb25nZXIgYXNzdW1lZCBp biB0aGUgbWFjcm8uCgoiaW4gdGhlIG1hY3JvIG9yIGVsc2V3aGVyZSIgPwoKPiBTaWduZWQtb2Zm LWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKQSBmZXcgdHlw b3MgJiBjbGFyaWZpY2F0aW9ucyBhYm92ZSwgcGx1cyBhIG1pbm9yIHF1aWJibGUgYWJvdXQgYSBt YWNybwpuYW1lICh3aGljaCB5b3UgaGF2ZW4ndCBhY3R1YWxseSBjaGFuZ2VkLCBidXQgbWlnaHQg YXMgd2VsbCBmaXgpLgpPdGhlcndpc2UgTEdUTSwgc28KClJldmlld2VkLWJ5OiBEYXZlIEdvcmRv biA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgoKKGV2ZW4gaWYgeW91IGRvbid0IGNoYW5nZSB0 aGUgbWFjcm8gbmFtZSkKCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyB8ICA1ICsrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8 IDE3ICsrKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu YyB8IDQ1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDMgZmlsZXMg Y2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGEyZTNhZjAyYzI5Mi4uMDZmY2UwMTRkMGI0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTQ2NCwxMiArMTQ2NCwx MSBAQCBzdGF0aWMgaW50IGk5MTVfZm9yY2V3YWtlX2RvbWFpbnMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpmd19kb21h aW47Cj4gLQlpbnQgaTsKPgo+ICAgCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT51bmNvcmUubG9j ayk7Cj4gLQlmb3JfZWFjaF9md19kb21haW4oZndfZG9tYWluLCBkZXZfcHJpdiwgaSkgewo+ICsJ Zm9yX2VhY2hfZndfZG9tYWluKGZ3X2RvbWFpbiwgZGV2X3ByaXYpIHsKPiAgIAkJc2VxX3ByaW50 ZihtLCAiJXMud2FrZV9jb3VudCA9ICV1XG4iLAo+IC0JCQkgICBpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX2RvbWFpbl90b19zdHIoaSksCj4gKwkJCSAgIGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9t YWluX3RvX3N0cihmd19kb21haW4tPmlkKSwKPiAgIAkJCSAgIGZ3X2RvbWFpbi0+d2FrZV9jb3Vu dCk7Cj4gICAJfQo+ICAgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrKTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA3ZDRjNzA0ZDdkNzUuLjE2MGY5ODBmMDM2 OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC02NjUsNiArNjY1LDcgQEAgc3Ry dWN0IGludGVsX3VuY29yZSB7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9t YWluIHsKPiAgIAkJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gICAJCWVudW0gZm9y Y2V3YWtlX2RvbWFpbl9pZCBpZDsKPiArCQllbnVtIGZvcmNld2FrZV9kb21haW5zIG1hc2s7CgpB dCBwcmVzZW50IHRoaXMgbWFzayB3aWxsIGFsd2F5cyBoYXZlIG9ubHkgb25lIGJpdCBzZXQsIGJ1 dCBJIHN1cHBvc2UgCnRoZXJlIG1pZ2h0IGJlIHNvbWUgdXRpbGl0eSBpbiBhbGxvd2luZyBtdWx0 aXBsZSBiaXRzICh2aXJ0dWFsIGRvbWFpbnM/KQoKPiAgIAkJdW5zaWduZWQgd2FrZV9jb3VudDsK PiAgIAkJc3RydWN0IGhydGltZXIgdGltZXI7Cj4gICAJCWk5MTVfcmVnX3QgcmVnX3NldDsKPiBA QCAtNjc5LDE0ICs2ODAsMTQgQEAgc3RydWN0IGludGVsX3VuY29yZSB7Cj4gICB9Owo+Cj4gICAv KiBJdGVyYXRlIG92ZXIgaW5pdGlhbGlzZWQgZncgZG9tYWlucyAqLwo+IC0jZGVmaW5lIGZvcl9l YWNoX2Z3X2RvbWFpbl9tYXNrKGRvbWFpbl9fLCBtYXNrX18sIGRldl9wcml2X18sIGlfXykgXAo+ IC0JZm9yICgoaV9fKSA9IDAsIChkb21haW5fXykgPSAmKGRldl9wcml2X18pLT51bmNvcmUuZndf ZG9tYWluWzBdOyBcCj4gLQkgICAgIChpX18pIDwgRldfRE9NQUlOX0lEX0NPVU5UOyBcCj4gLQkg ICAgIChpX18pKyssIChkb21haW5fXykgPSAmKGRldl9wcml2X18pLT51bmNvcmUuZndfZG9tYWlu W2lfX10pIFwKPiAtCQlmb3JfZWFjaF9pZiAoKChtYXNrX18pICYgKGRldl9wcml2X18pLT51bmNv cmUuZndfZG9tYWlucykgJiAoMSA8PCAoaV9fKSkpCj4gLQo+IC0jZGVmaW5lIGZvcl9lYWNoX2Z3 X2RvbWFpbihkb21haW5fXywgZGV2X3ByaXZfXywgaV9fKSBcCj4gLQlmb3JfZWFjaF9md19kb21h aW5fbWFzayhkb21haW5fXywgRk9SQ0VXQUtFX0FMTCwgZGV2X3ByaXZfXywgaV9fKQo+ICsjZGVm aW5lIGZvcl9lYWNoX2Z3X2RvbWFpbl9tYXNrKGRvbWFpbl9fLCBtYXNrX18sIGRldl9wcml2X18p IFwKPiArCWZvciAoKGRvbWFpbl9fKSA9ICYoZGV2X3ByaXZfXyktPnVuY29yZS5md19kb21haW5b MF07IFwKPiArCSAgICAgKGRvbWFpbl9fKSA8ICYoZGV2X3ByaXZfXyktPnVuY29yZS5md19kb21h aW5bRldfRE9NQUlOX0lEX0NPVU5UXTsgXAo+ICsJICAgICAoZG9tYWluX18pKyspIFwKPiArCQlm b3JfZWFjaF9pZiAoKG1hc2tfXykgJiAoZG9tYWluX18pLT5tYXNrKQo+ICsKCkZvciBjb25zaXN0 ZW5jeSB3aXRoIHRoZSBmb3JfZWFjaF9lbmdpbmUoKSBtYWNyb3MsIHRoZSBuYW1lIG91Z2h0IHRv IGJlIAoiZm9yX2VhY2hfZndfZG9tYWluX21hc2sqZWQqKCkiLCBzaG93aW5nIHRoYXQgd2UncmUg aXRlcmF0aW5nIG92ZXIgYSAKc3Vic2V0IHNlbGVjdGVkIGJ5IHRoZSAnbWFzaycgcGFyYW1ldGVy LCByYXRoZXIgdGhhbiBpdGVyYXRpbmcgb3ZlciBhbGwgCnBvc3NpYmxlIG1hc2tzLgoKLkRhdmUu Cgo+ICsjZGVmaW5lIGZvcl9lYWNoX2Z3X2RvbWFpbihkb21haW5fXywgZGV2X3ByaXZfXykgXAo+ ICsJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluX18sIEZPUkNFV0FLRV9BTEwsIGRldl9w cml2X18pCj4KPiAgICNkZWZpbmUgQ1NSX1ZFUlNJT04obWFqb3IsIG1pbm9yKQkoKG1ham9yKSA8 PCAxNiB8IChtaW5vcikpCj4gICAjZGVmaW5lIENTUl9WRVJTSU9OX01BSk9SKHZlcnNpb24pCSgo dmVyc2lvbikgPj4gMTYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiBpbmRleCA3 NmFjOTkwZGUzNTQuLjQ5ZWRkNjQxYjQzNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Vu Y29yZS5jCj4gQEAgLTExMSw5ICsxMTEsOCBAQCBzdGF0aWMgdm9pZAo+ICAgZndfZG9tYWluc19n ZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGZvcmNld2FrZV9kb21h aW5zIGZ3X2RvbWFpbnMpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2Vf ZG9tYWluICpkOwo+IC0JZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIGlkOwo+Cj4gLQlmb3JfZWFj aF9md19kb21haW5fbWFzayhkLCBmd19kb21haW5zLCBkZXZfcHJpdiwgaWQpIHsKPiArCWZvcl9l YWNoX2Z3X2RvbWFpbl9tYXNrKGQsIGZ3X2RvbWFpbnMsIGRldl9wcml2KSB7Cj4gICAJCWZ3X2Rv bWFpbl93YWl0X2Fja19jbGVhcihkKTsKPiAgIAkJZndfZG9tYWluX2dldChkKTsKPiAgIAkJZndf ZG9tYWluX3dhaXRfYWNrKGQpOwo+IEBAIC0xMjQsOSArMTIzLDggQEAgc3RhdGljIHZvaWQKPiAg IGZ3X2RvbWFpbnNfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBm b3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF91bmNv cmVfZm9yY2V3YWtlX2RvbWFpbiAqZDsKPiAtCWVudW0gZm9yY2V3YWtlX2RvbWFpbl9pZCBpZDsK Pgo+IC0JZm9yX2VhY2hfZndfZG9tYWluX21hc2soZCwgZndfZG9tYWlucywgZGV2X3ByaXYsIGlk KSB7Cj4gKwlmb3JfZWFjaF9md19kb21haW5fbWFzayhkLCBmd19kb21haW5zLCBkZXZfcHJpdikg ewo+ICAgCQlmd19kb21haW5fcHV0KGQpOwo+ICAgCQlmd19kb21haW5fcG9zdGluZ19yZWFkKGQp Owo+ICAgCX0KPiBAQCAtMTM2LDEwICsxMzQsOSBAQCBzdGF0aWMgdm9pZAo+ICAgZndfZG9tYWlu c19wb3N0aW5nX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+ ICAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZDsKPiAtCWVudW0gZm9y Y2V3YWtlX2RvbWFpbl9pZCBpZDsKPgo+ICAgCS8qIE5vIG5lZWQgdG8gZG8gZm9yIGFsbCwganVz dCBkbyBmb3IgZmlyc3QgZm91bmQgKi8KPiAtCWZvcl9lYWNoX2Z3X2RvbWFpbihkLCBkZXZfcHJp diwgaWQpIHsKPiArCWZvcl9lYWNoX2Z3X2RvbWFpbihkLCBkZXZfcHJpdikgewo+ICAgCQlmd19k b21haW5fcG9zdGluZ19yZWFkKGQpOwo+ICAgCQlicmVhazsKPiAgIAl9Cj4gQEAgLTE0OSwxMiAr MTQ2LDExIEBAIHN0YXRpYyB2b2lkCj4gICBmd19kb21haW5zX3Jlc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zKQo+ ICAgewo+ICAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZDsKPiAtCWVu dW0gZm9yY2V3YWtlX2RvbWFpbl9pZCBpZDsKPgo+ICAgCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3 X2RvbWFpbnMgPT0gMCkKPiAgIAkJcmV0dXJuOwo+Cj4gLQlmb3JfZWFjaF9md19kb21haW5fbWFz ayhkLCBmd19kb21haW5zLCBkZXZfcHJpdiwgaWQpCj4gKwlmb3JfZWFjaF9md19kb21haW5fbWFz ayhkLCBmd19kb21haW5zLCBkZXZfcHJpdikKPiAgIAkJZndfZG9tYWluX3Jlc2V0KGQpOwo+Cj4g ICAJZndfZG9tYWluc19wb3N0aW5nX3JlYWQoZGV2X3ByaXYpOwo+IEBAIC0yNTYsNyArMjUyLDYg QEAgdm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGJvb2wgcmVzdG9yZSkKPiAgIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICAgCXN0cnVj dCBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2RvbWFpbiAqZG9tYWluOwo+ICAgCWludCByZXRyeV9j b3VudCA9IDEwMDsKPiAtCWVudW0gZm9yY2V3YWtlX2RvbWFpbl9pZCBpZDsKPiAgIAllbnVtIGZv cmNld2FrZV9kb21haW5zIGZ3ID0gMCwgYWN0aXZlX2RvbWFpbnM7Cj4KPiAgIAkvKiBIb2xkIHVu Y29yZS5sb2NrIGFjcm9zcyByZXNldCB0byBwcmV2ZW50IGFueSByZWdpc3RlciBhY2Nlc3MKPiBA QCAtMjY2LDcgKzI2MSw3IEBAIHZvaWQgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9yZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJlc3RvcmUpCj4gICAJd2hpbGUgKDEpIHsKPiAgIAkJ YWN0aXZlX2RvbWFpbnMgPSAwOwo+Cj4gLQkJZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbiwgZGV2 X3ByaXYsIGlkKSB7Cj4gKwkJZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbiwgZGV2X3ByaXYpIHsK PiAgIAkJCWlmIChocnRpbWVyX2NhbmNlbCgmZG9tYWluLT50aW1lcikgPT0gMCkKPiAgIAkJCQlj b250aW51ZTsKPgo+IEBAIC0yNzUsOSArMjcwLDkgQEAgdm9pZCBpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdG9yZSkKPgo+ICAgCQlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7Cj4KPiAt CQlmb3JfZWFjaF9md19kb21haW4oZG9tYWluLCBkZXZfcHJpdiwgaWQpIHsKPiArCQlmb3JfZWFj aF9md19kb21haW4oZG9tYWluLCBkZXZfcHJpdikgewo+ICAgCQkJaWYgKGhydGltZXJfYWN0aXZl KCZkb21haW4tPnRpbWVyKSkKPiAtCQkJCWFjdGl2ZV9kb21haW5zIHw9ICgxIDw8IGlkKTsKPiAr CQkJCWFjdGl2ZV9kb21haW5zIHw9IGRvbWFpbi0+bWFzazsKPiAgIAkJfQo+Cj4gICAJCWlmIChh Y3RpdmVfZG9tYWlucyA9PSAwKQo+IEBAIC0yOTQsOSArMjg5LDkgQEAgdm9pZCBpbnRlbF91bmNv cmVfZm9yY2V3YWtlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgcmVzdG9yZSkK Pgo+ICAgCVdBUk5fT04oYWN0aXZlX2RvbWFpbnMpOwo+Cj4gLQlmb3JfZWFjaF9md19kb21haW4o ZG9tYWluLCBkZXZfcHJpdiwgaWQpCj4gKwlmb3JfZWFjaF9md19kb21haW4oZG9tYWluLCBkZXZf cHJpdikKPiAgIAkJaWYgKGRvbWFpbi0+d2FrZV9jb3VudCkKPiAtCQkJZncgfD0gMSA8PCBpZDsK PiArCQkJZncgfD0gZG9tYWluLT5tYXNrOwo+Cj4gICAJaWYgKGZ3KQo+ICAgCQlkZXZfcHJpdi0+ dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfcHV0KGRldl9wcml2LCBmdyk7Cj4gQEAgLTQxOCwxNiAr NDEzLDE1IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCQkgZW51bSBmb3JjZXdha2VfZG9t YWlucyBmd19kb21haW5zKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3YWtl X2RvbWFpbiAqZG9tYWluOwo+IC0JZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIGlkOwo+Cj4gICAJ aWYgKCFkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0KQo+ICAgCQlyZXR1cm47 Cj4KPiAgIAlmd19kb21haW5zICY9IGRldl9wcml2LT51bmNvcmUuZndfZG9tYWluczsKPgo+IC0J Zm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluLCBmd19kb21haW5zLCBkZXZfcHJpdiwgaWQp IHsKPiArCWZvcl9lYWNoX2Z3X2RvbWFpbl9tYXNrKGRvbWFpbiwgZndfZG9tYWlucywgZGV2X3By aXYpIHsKPiAgIAkJaWYgKGRvbWFpbi0+d2FrZV9jb3VudCsrKQo+IC0JCQlmd19kb21haW5zICY9 IH4oMSA8PCBpZCk7Cj4gKwkJCWZ3X2RvbWFpbnMgJj0gfmRvbWFpbi0+bWFzazsKPiAgIAl9Cj4K PiAgIAlpZiAoZndfZG9tYWlucykKPiBAQCAtNDg1LDE0ICs0NzksMTMgQEAgc3RhdGljIHZvaWQg X19pbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gICAJCQkJCSBlbnVtIGZvcmNld2FrZV9kb21haW5zIGZ3X2RvbWFpbnMpCj4gICB7 Cj4gICAJc3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkb21haW47Cj4gLQll bnVtIGZvcmNld2FrZV9kb21haW5faWQgaWQ7Cj4KPiAgIAlpZiAoIWRldl9wcml2LT51bmNvcmUu ZnVuY3MuZm9yY2Vfd2FrZV9wdXQpCj4gICAJCXJldHVybjsKPgo+ICAgCWZ3X2RvbWFpbnMgJj0g ZGV2X3ByaXYtPnVuY29yZS5md19kb21haW5zOwo+Cj4gLQlmb3JfZWFjaF9md19kb21haW5fbWFz ayhkb21haW4sIGZ3X2RvbWFpbnMsIGRldl9wcml2LCBpZCkgewo+ICsJZm9yX2VhY2hfZndfZG9t YWluX21hc2soZG9tYWluLCBmd19kb21haW5zLCBkZXZfcHJpdikgewo+ICAgCQlpZiAoV0FSTl9P Tihkb21haW4tPndha2VfY291bnQgPT0gMCkpCj4gICAJCQljb250aW51ZTsKPgo+IEBAIC01NDYs MTIgKzUzOSwxMSBAQCB2b2lkIGludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0X19sb2NrZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgdm9pZCBhc3NlcnRfZm9yY2V3YWtl c19pbmFjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gICAJ c3RydWN0IGludGVsX3VuY29yZV9mb3JjZXdha2VfZG9tYWluICpkb21haW47Cj4gLQllbnVtIGZv cmNld2FrZV9kb21haW5faWQgaWQ7Cj4KPiAgIAlpZiAoIWRldl9wcml2LT51bmNvcmUuZnVuY3Mu Zm9yY2Vfd2FrZV9nZXQpCj4gICAJCXJldHVybjsKPgo+IC0JZm9yX2VhY2hfZndfZG9tYWluKGRv bWFpbiwgZGV2X3ByaXYsIGlkKQo+ICsJZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbiwgZGV2X3By aXYpCj4gICAJCVdBUk5fT04oZG9tYWluLT53YWtlX2NvdW50KTsKPiAgIH0KPgo+IEBAIC03Mjcs MTUgKzcxOSwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19mb3JjZV93YWtlX2F1dG8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCSAgICAgZW51bSBmb3JjZXdha2Vf ZG9tYWlucyBmd19kb21haW5zKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF91bmNvcmVfZm9yY2V3 YWtlX2RvbWFpbiAqZG9tYWluOwo+IC0JZW51bSBmb3JjZXdha2VfZG9tYWluX2lkIGlkOwo+Cj4g ICAJaWYgKFdBUk5fT04oIWZ3X2RvbWFpbnMpKQo+ICAgCQlyZXR1cm47Cj4KPiAgIAkvKiBJZGVh bGx5IEdDQyB3b3VsZCBiZSBjb25zdGFudC1mb2xkIGFuZCBlbGltaW5hdGUgdGhpcyBsb29wICov Cj4gLQlmb3JfZWFjaF9md19kb21haW5fbWFzayhkb21haW4sIGZ3X2RvbWFpbnMsIGRldl9wcml2 LCBpZCkgewo+ICsJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluLCBmd19kb21haW5zLCBk ZXZfcHJpdikgewo+ICAgCQlpZiAoZG9tYWluLT53YWtlX2NvdW50KSB7Cj4gLQkJCWZ3X2RvbWFp bnMgJj0gfigxIDw8IGlkKTsKPiArCQkJZndfZG9tYWlucyAmPSB+ZG9tYWluLT5tYXNrOwo+ICAg CQkJY29udGludWU7Cj4gICAJCX0KPgo+IEBAIC0xMTU2LDYgKzExNDcsMTIgQEAgc3RhdGljIHZv aWQgZndfZG9tYWluX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAg CWQtPmk5MTUgPSBkZXZfcHJpdjsKPiAgIAlkLT5pZCA9IGRvbWFpbl9pZDsKPgo+ICsJQlVJTERf QlVHX09OKEZPUkNFV0FLRV9SRU5ERVIgIT0gKDEgPDwgRldfRE9NQUlOX0lEX1JFTkRFUikpOwo+ ICsJQlVJTERfQlVHX09OKEZPUkNFV0FLRV9CTElUVEVSICE9ICgxIDw8IEZXX0RPTUFJTl9JRF9C TElUVEVSKSk7Cj4gKwlCVUlMRF9CVUdfT04oRk9SQ0VXQUtFX01FRElBICE9ICgxIDw8IEZXX0RP TUFJTl9JRF9NRURJQSkpOwo+ICsKPiArCWQtPm1hc2sgPSAxIDw8IGRvbWFpbl9pZDsKPiArCj4g ICAJaHJ0aW1lcl9pbml0KCZkLT50aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01PREVf UkVMKTsKPiAgIAlkLT50aW1lci5mdW5jdGlvbiA9IGludGVsX3VuY29yZV9md19yZWxlYXNlX3Rp bWVyOwo+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=