From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH v2 2/7] drm/i915: Do not call API requiring struct_mutex where it is not available Date: Tue, 12 Jan 2016 15:47:29 +0000 Message-ID: <56952011.9020205@intel.com> References: <1452521321-4032-3-git-send-email-tvrtko.ursulin@linux.intel.com> <1452598872-35340-1-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 1F6606E417 for ; Tue, 12 Jan 2016 07:47:32 -0800 (PST) In-Reply-To: <1452598872-35340-1-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 Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gMTIvMDEvMTYgMTE6NDEsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IEZyb206IFR2cnRrbyBV cnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4KPiBMUkMgY29kZSB3YXMgY2FsbGlu ZyBHRU0gQVBJIGxpa2UgaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0IGZyb20KPiBwbGFjZXMgd2hl cmUgdGhlIHN0cnVjdF9tdXRleCBjYW5ub3QgYmUgZ3JhYmJlZCAoaXJxIGhhbmRsZXJzKS4KPgo+ IFRvIGF2b2lkIHRoYXQgdGhpcyBwYXRjaCBjYWNoZXMgc29tZSBpbnRlcmVzdGluZyBiaXRzIGFu ZCB2YWx1ZXMKPiBpbiB0aGUgZW5naW5lIGFuZCBjb250ZXh0IHN0cnVjdHVyZXMuCj4KPiBTb21l IHVzYWdlcyBhcmUgYWxzbyByZW1vdmVkIHdoZXJlIHRoZXkgYXJlIG5vdCBuZWVkZWQgbGlrZSBh Cj4gZmV3IGFzc2VydHMgd2hpY2ggYXJlIGVpdGhlciBpbXBvc3NpYmxlIG9yIGhhdmUgYmVlbiBj aGVja2VkCj4gYWxyZWFkeSBkdXJpbmcgZW5naW5lIGluaXRpYWxpemF0aW9uLgo+Cj4gU2lkZSBi ZW5lZml0IGlzIGFsc28gdGhhdCBpbnRlcnJ1cHQgaGFuZGxlcnMgYW5kIGNvbW1hbmQKPiBzdWJt aXNzaW9uIHN0b3AgZXZhbHVhdGluZyBpbnZhcmlhbnQgY29uZGl0aW9uYWxzLCBsaWtlIHdoYXQK PiBHZW4gd2UgYXJlIHJ1bm5pbmcgb24sIG9uIGV2ZXJ5IGludGVycnVwdCBhbmQgZXZlcnkgY29t bWFuZAo+IHN1Ym1pdHRlZC4KPgo+IFRoaXMgcGF0Y2ggZGVhbHMgd2l0aCBsb2dpY2FsIHJpbmcg Y29udGV4dCBpZCBhbmQgZGVzY3JpcHRvcnMKPiB3aGlsZSBzdWJzZXF1ZW50IHBhdGNoZXMgd2ls bCBkZWFsIHdpdGggdGhlIHJlbWFpbmluZyBpc3N1ZXMuCj4KPiB2MjoKPiAgICogQ2FjaGUgdGhl IFZNQSBpbnN0ZWFkIG9mIHRoZSBhZGRyZXNzLiAoQ2hyaXMgV2lsc29uKQo+ICAgKiBJbmNvcnBv cmF0ZSBEYXZlIEdvcmRvbidzIGdvb2QgY29tbWVudHMgYW5kIGZ1bmN0aW9uIG5hbWUuCj4KPiBT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBEYXZlIEdv cmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgIDE1ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuaCAgICAgfCAgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgICAgICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaCAgICAgICAgfCAgIDQgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAgMiArCj4gICA2IGZpbGVzIGNo YW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKSSB3b3VsZCBsaWtlIHRo ZSBuZXcgZGVzY3JpcHRvci1yZWxhdGVkIGNvZGUgdG8gYmUgb3JnYW5pc2VkIGFzIGZvbGxvd3Ms IApyYXRoZXIgdGhhbiBzY2F0dGVyZWQgYXJvdW5kOgoKMS4JYSBwZXItcmluZyBkZXNjcmlwdG9y LXRlbXBsYXRlLXNldHVwIGZ1bmN0aW9uLCBlc3NlbnRpYWxseSB0aGUKCWJsb2NrIG9mIGNvZGUg Y3VycmVudGx5IGVtYmVkZGVkIGluIGxvZ2ljYWxfcmluZ19pbml0KCksIHRoYXQKCXVzZWQgdG8g YmUgcGFydCBvZiBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3IoKS4gSXRzIHB1cnBvc2UKCWlz IHRvIGNhbGN1bGF0ZSBhbmQgY2FjaGUgdGhlIGludmFyaWFudCBwYXJ0cyBvZiBhbGwgY29udGV4 dAoJZGVzY3JpcHRvcnMgZm9yIHRoaXMgZW5naW5lLgoyLgl0aGUgcGVyLWNvbnRleHQtcGlubmlu ZyBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKCkKCXNob3VsZCBiZSBuZXh0LCBi ZWNhdXNlIGl0IHVzZXMgdGhlIHJlc3VsdCBmcm9tIHRoZSBhYm92ZSBhbmQKCWNhbGN1bGF0ZXMg YW5kIGNhY2hlcyBhIGRlcml2ZWQgdmFsdWUuCjMuCXRoZSB0cml2aWFsIGFjY2Vzc29yIGludGVs X2xyX2NvbnRleHRfZGVzY3JpcHRvcigpIHdoaWNoIHJldHVybnMKCXRoZSB2YWx1ZSBjYWxjdWxh dGVkIGFib3ZlLgo0Lgl0aGUgbmVhcmx5LXRyaXZpYWwgaW50ZWxfZXhlY2xpc3RzX2N0eF9pZCgp LCB3aGljaCBpZGVhbGx5CglzaG91bGQgY2FsbCBpbnRlbF9scl9jb250ZXh0X2Rlc2NyaXB0b3Io KSByYXRoZXIgdGhhbiByZXBlYXQgdGhlCglzYW1lIHNldCBvZiBbXS0+IG9wZXJhdGlvbnMuCgpL ZWVwaW5nIGFsbCB0aGVzZSB0b2dldGhlciBpbiB0aGUgc291cmNlIGZpbGUgbWFrZXMgaXQgZWFz aWVyIHRvIGNoZWNrIAp0aGF0IGRlZmluaXRpb25zIGFuZCBhc3N1bXB0aW9ucyBpbiBvbmUgbWF0 Y2ggdGhvc2UgbWFkZSBpbiB0aGUgb3RoZXJzLCAKYW5kIG1lYW5zIHlvdSBjYW4gaGF2ZSBqdXN0 IG9uZSBibG9jayBvZiBjb21tZW50cyByZWxhdGluZyB0byBhbGwgb2YgCnRoZW0uIFRoZSB3aG9s ZSBibG9jayBjYW4gZ28gd2hlcmV2ZXIgeW91IHRoaW5rIGZpdCwgYnV0IHByb2JhYmx5IG5lYXIg CnRoZSB0b3Agb2YgdGhlIGZpbGUgaXMgYmV0dGVyLCBiZWNhdXNlIHRoZXNlIGFyZSBsZWFmIGZ1 bmN0aW9ucy4KCkFueXdheSwgdGhpcyBpcyBtb3N0bHkgYSBtYXR0ZXIgb2Ygc3R5bGUgJiBtYWlu dGFpbmFiaWxpdHkuIFRoZSBjb2RlIApsb29rcyBjb3JyZWN0IGFueXdheSwgc28gZXZlbiBpZiB5 b3UgZG9uJ3QgcmVvcmdhbmlzZSBpdCwgaXQgZ2V0czoKClJldmlld2VkLWJ5OiBEYXZlIEdvcmRv biA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgoKYW5kIGlmIHlvdSBkbyByZW9yZ2FuaXNlIGl0 IGFzIGRlc2NyaWJlZCwgeW91IGNhbiBrZWVwIHRoZSBSLUIgdG9vIDopCgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jCj4gaW5kZXggYWIzNDRlMGI4NzhjLi41MDQwMzBjZTdmOTMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yNjUsNyArMjY1LDggQEAgaW50IGludGVsX3Nh bml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGVuYWJs ZV9leGVjbGlzdHMKPgo+ICAgLyoqCj4gICAgKiBpbnRlbF9leGVjbGlzdHNfY3R4X2lkKCkgLSBn ZXQgdGhlIEV4ZWNsaXN0cyBDb250ZXh0IElECj4gLSAqIEBjdHhfb2JqOiBMb2dpY2FsIFJpbmcg Q29udGV4dCBiYWNraW5nIG9iamVjdC4KPiArICogQGN0eDogQ29udGV4dCB0byBnZXQgdGhlIElE IGZvcgo+ICsgKiBAcmluZzogRW5naW5lIHRvIGdldCB0aGUgSUQgZm9yCj4gICAgKgo+ICAgICog RG8gbm90IGNvbmZ1c2Ugd2l0aCBjdHgtPmlkISBVbmZvcnR1bmF0ZWx5IHdlIGhhdmUgYSBuYW1l IG92ZXJsb2FkCj4gICAgKiBoZXJlOiB0aGUgb2xkIGNvbnRleHQgSUQgd2UgcGFzcyB0byB1c2Vy c3BhY2UgYXMgYSBoYW5kbGVyIHNvIHRoYXQKPiBAQCAtMjczLDE2ICsyNzQsMTUgQEAgaW50IGlu dGVsX3Nhbml0aXplX2VuYWJsZV9leGVjbGlzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50 IGVuYWJsZV9leGVjbGlzdHMKPiAgICAqIEVMU1Agc28gdGhhdCB0aGUgR1BVIGNhbiBpbmZvcm0g dXMgb2YgdGhlIGNvbnRleHQgc3RhdHVzIHZpYQo+ICAgICogaW50ZXJydXB0cy4KPiAgICAqCj4g KyAqIFRoZSBjb250ZXh0IElEIGlzIGEgcG9ydGlvbiBvZiB0aGUgY29udGV4dCBkZXNjcmlwdG9y LCBzbyB3ZSBjYW4KPiArICoganVzdCBleHRyYWN0IHRoZSByZXF1aXJlZCBwYXJ0IGZyb20gdGhl IGNhY2hlZCBkZXNjcmlwdG9yLgo+ICsgKgo+ICAgICogUmV0dXJuOiAyMC1iaXRzIGdsb2JhbGx5 IHVuaXF1ZSBjb250ZXh0IElELgo+ICAgICovCj4gLXUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lk KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKQo+ICt1MzIgaW50ZWxfZXhlY2xp c3RzX2N0eF9pZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICsJCQkgICBzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAgewo+IC0JdTMyIGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQoY3R4X29iaikgKwo+IC0JCQlMUkNfUFBIV1NQX1BOICogUEFHRV9TSVpFOwo+IC0K PiAtCS8qIExSQ0EgaXMgcmVxdWlyZWQgdG8gYmUgNEsgYWxpZ25lZCBzbyB0aGUgbW9yZSBzaWdu aWZpY2FudCAyMCBiaXRzCj4gLQkgKiBhcmUgZ2xvYmFsbHkgdW5pcXVlICovCj4gLQlyZXR1cm4g bHJjYSA+PiAxMjsKPiArCXJldHVybiBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ubHJjX2Rlc2MgPj4g R0VOOF9DVFhfSURfU0hJRlQ7Cj4gICB9Cj4KPiAgIHN0YXRpYyBib29sIGRpc2FibGVfbGl0ZV9y ZXN0b3JlX3dhKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gQEAgLTI5NywzMSArMjk3 LDcgQEAgc3RhdGljIGJvb2wgZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2Eoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZykKPiAgIHVpbnQ2NF90IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcihz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgCQkJCSAgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2Jq ID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+IC0JdWludDY0X3QgZGVzYzsKPiAtCXVp bnQ2NF90IGxyY2EgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoY3R4X29iaikgKwo+IC0JCQlM UkNfUFBIV1NQX1BOICogUEFHRV9TSVpFOwo+IC0KPiAtCVdBUk5fT04obHJjYSAmIDB4RkZGRkZG RkYwMDAwMEZGRlVMTCk7Cj4gLQo+IC0JZGVzYyA9IEdFTjhfQ1RYX1ZBTElEOwo+IC0JZGVzYyB8 PSBHRU44X0NUWF9BRERSRVNTSU5HX01PREUoZGV2KSA8PCBHRU44X0NUWF9BRERSRVNTSU5HX01P REVfU0hJRlQ7Cj4gLQlpZiAoSVNfR0VOOChjdHhfb2JqLT5iYXNlLmRldikpCj4gLQkJZGVzYyB8 PSBHRU44X0NUWF9MM0xMQ19DT0hFUkVOVDsKPiAtCWRlc2MgfD0gR0VOOF9DVFhfUFJJVklMRUdF Owo+IC0JZGVzYyB8PSBscmNhOwo+IC0JZGVzYyB8PSAodTY0KWludGVsX2V4ZWNsaXN0c19jdHhf aWQoY3R4X29iaikgPDwgR0VOOF9DVFhfSURfU0hJRlQ7Cj4gLQo+IC0JLyogVE9ETzogV2FEaXNh YmxlTGl0ZVJlc3RvcmUgd2hlbiB3ZSBzdGFydCB1c2luZyBzZW1hcGhvcmUKPiAtCSAqIHNpZ25h bGxpbmcgYmV0d2VlbiBDb21tYW5kIFN0cmVhbWVycyAqLwo+IC0JLyogZGVzYyB8PSBHRU44X0NU WF9GT1JDRV9SRVNUT1JFOyAqLwo+IC0KPiAtCS8qIFdhRW5hYmxlRm9yY2VSZXN0b3JlSW5DdHh0 RGVzY0ZvclZDUzpza2wgKi8KPiAtCS8qIFdhRW5hYmxlRm9yY2VSZXN0b3JlSW5DdHh0RGVzY0Zv clZDUzpieHQgKi8KPiAtCWlmIChkaXNhYmxlX2xpdGVfcmVzdG9yZV93YShyaW5nKSkKPiAtCQlk ZXNjIHw9IEdFTjhfQ1RYX0ZPUkNFX1JFU1RPUkU7Cj4gLQo+IC0JcmV0dXJuIGRlc2M7Cj4gKwly ZXR1cm4gY3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY19kZXNjOwo+ICAgfQo+Cj4gICBzdGF0aWMg dm9pZCBleGVjbGlzdHNfZWxzcF93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJx MCwKPiBAQCAtMzY5LDggKzM0NSw2IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX3VwZGF0ZV9jb250 ZXh0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gICAJdWludDMyX3QgKnJlZ19z dGF0ZTsKPgo+ICAgCUJVR19PTighY3R4X29iaik7Cj4gLQlXQVJOX09OKCFpOTE1X2dlbV9vYmpf aXNfcGlubmVkKGN0eF9vYmopKTsKPiAtCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQo cmJfb2JqKSk7Cj4KPiAgIAlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9kaXJ0eV9wYWdlKGN0 eF9vYmosIExSQ19TVEFURV9QTik7Cj4gICAJcmVnX3N0YXRlID0ga21hcF9hdG9taWMocGFnZSk7 Cj4gQEAgLTQ3Nyw5ICs0NTEsNyBAQCBzdGF0aWMgYm9vbCBleGVjbGlzdHNfY2hlY2tfcmVtb3Zl X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAkJCQkJICAgIGV4ZWNs aXN0X2xpbmspOwo+Cj4gICAJaWYgKGhlYWRfcmVxICE9IE5VTEwpIHsKPiAtCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9Cj4gLQkJCQloZWFkX3JlcS0+Y3R4LT5lbmdpbmVb cmluZy0+aWRdLnN0YXRlOwo+IC0JCWlmIChpbnRlbF9leGVjbGlzdHNfY3R4X2lkKGN0eF9vYmop ID09IHJlcXVlc3RfaWQpIHsKPiArCQlpZiAoaW50ZWxfZXhlY2xpc3RzX2N0eF9pZChoZWFkX3Jl cS0+Y3R4LCByaW5nKSA9PSByZXF1ZXN0X2lkKSB7Cj4gICAJCQlXQVJOKGhlYWRfcmVxLT5lbHNw X3N1Ym1pdHRlZCA9PSAwLAo+ICAgCQkJICAgICAiTmV2ZXIgc3VibWl0dGVkIGhlYWQgcmVxdWVz dFxuIik7Cj4KPiBAQCAtNTU2LDcgKzUyOCw3IEBAIHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVy KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJCX0KPiAgIAl9Cj4KPiAtCWlmIChk aXNhYmxlX2xpdGVfcmVzdG9yZV93YShyaW5nKSkgewo+ICsJaWYgKHJpbmctPmRpc2FibGVfbGl0 ZV9yZXN0b3JlX3dhKSB7Cj4gICAJCS8qIFByZXZlbnQgYSBjdHggdG8gcHJlZW1wdCBpdHNlbGYg Ki8KPiAgIAkJaWYgKChzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUpICYmCj4g ICAJCSAgICAoc3VibWl0X2NvbnRleHRzICE9IDApKQo+IEBAIC0xMDM4LDE1ICsxMDEwLDUxIEBA IGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPgo+ICsvKioKPiArICogaW50ZWxfbHJf Y29udGV4dF9kZXNjcmlwdG9yX3VwZGF0ZSgpIC0gY2FsY3VsYXRlICYgY2FjaGUgdGhlCj4gKyAq ICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IgZm9yIGEgcGlubmVkCj4gKyAqICAgICAg ICAgICAgICAgICAgICAgICBjb250ZXh0Cj4gKyAqIEBjdHg6IENvbnRleHQgdG8gd29yayBvbgo+ ICsgKiBAcmluZzogRW5naW5lIHRoZSBkZXNjcmlwdG9yIHdpbGwgYmUgdXNlZCB3aXRoCj4gKyAq Cj4gKyAqIFRoZSBjb250ZXh0IGRlc2NyaXB0b3IgZW5jb2RlcyB2YXJpb3VzIGF0dHJpYnV0ZXMg b2YgYSBjb250ZXh0LAo+ICsgKiBpbmNsdWRpbmcgaXRzIEdUVCBhZGRyZXNzIGFuZCBzb21lIGZs YWdzLiBCZWNhdXNlIGl0J3MgZmFpcmx5Cj4gKyAqIGV4cGVuc2l2ZSB0byBjYWxjdWxhdGUsIHdl J2xsIGp1c3QgZG8gaXQgb25jZSBhbmQgY2FjaGUgdGhlIHJlc3VsdCwKPiArICogd2hpY2ggcmVt YWlucyB2YWxpZCB1bnRpbCB0aGUgY29udGV4dCBpcyB1bnBpbm5lZC4KPiArICoKPiArICogVGhp cyBpcyB3aGF0IGEgZGVzY3JpcHRvciBsb29rcyBsaWtlLCBmcm9tIExTQiB0byBNU0I6Cj4gKyAq ICAgIGJpdHMgMC0xMTogICAgZmxhZ3MsIEdFTjhfQ1RYXyogKGNhY2hlZCBpbiBjdHhfZGVzY190 ZW1wbGF0ZSkKPiArICogICAgYml0cyAxMi0zMTogICAgTFJDQSwgR1RUIGFkZHJlc3Mgb2YgKHRo ZSBIV1NQIG9mKSB0aGlzIGNvbnRleHQKPiArICogICAgYml0cyAzMi01MTogICAgY3R4IElELCBh IGdsb2JhbGx5IHVuaXF1ZSB0YWcgKHRoZSBMUkNBIGFnYWluISkKPiArICogICAgYml0cyA1Mi02 MzogICAgcmVzZXJ2ZWQsIG1heSBlbmNvZGUgdGhlIGVuZ2luZSBJRCAoZm9yIEd1QykKPiArICov Cj4gK3N0YXRpYyB2b2lkCj4gK2ludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRhdGUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpCj4gK3sKPiArCXVpbnQ2NF90IGxyY2EsIGRlc2M7Cj4gKwo+ICsJbHJjYSA9IGN0eC0+ ZW5naW5lW3JpbmctPmlkXS5scmNfdm1hLT5ub2RlLnN0YXJ0ICsKPiArCSAgICAgICBMUkNfUFBI V1NQX1BOICogUEFHRV9TSVpFOwo+ICsKPiArCWRlc2MgPSByaW5nLT5jdHhfZGVzY190ZW1wbGF0 ZTsJCQkgICAvKiBiaXRzICAwLTExICovCj4gKwlkZXNjIHw9IGxyY2E7CQkJCQkgICAvKiBiaXRz IDEyLTMxICovCj4gKwlkZXNjIHw9IChscmNhID4+IFBBR0VfU0hJRlQpIDw8IEdFTjhfQ1RYX0lE X1NISUZUOyAvKiBiaXRzIDMyLTUxICovCj4gKwo+ICsJY3R4LT5lbmdpbmVbcmluZy0+aWRdLmxy Y19kZXNjID0gZGVzYzsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9k b19waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iaiwKPiAtCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1 ZikKPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gICB7Cj4gICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0JaW50IHJldCA9IDA7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5z dGF0ZTsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gY3R4LT5lbmdpbmVb cmluZy0+aWRdLnJpbmdidWY7Cj4gKwlpbnQgcmV0Owo+Cj4gICAJV0FSTl9PTighbXV0ZXhfaXNf bG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICsKPiAgIAlyZXQgPSBpOTE1X2dl bV9vYmpfZ2d0dF9waW4oY3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLAo+ICAgCQkJUElO X09GRlNFVF9CSUFTIHwgR1VDX1dPUENNX1RPUCk7Cj4gICAJaWYgKHJldCkKPiBAQCAtMTA1Niw2 ICsxMDY0LDggQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gdW5waW5fY3R4X29i ajsKPgo+ICsJY3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY192bWEgPSBpOTE1X2dlbV9vYmpfdG9f Z2d0dChjdHhfb2JqKTsKPiArCWludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRhdGUoY3R4 LCByaW5nKTsKPiAgIAljdHhfb2JqLT5kaXJ0eSA9IHRydWU7Cj4KPiAgIAkvKiBJbnZhbGlkYXRl IEd1QyBUTEIuICovCj4gQEAgLTEwNzQsMTEgKzEwODQsOSBAQCBzdGF0aWMgaW50IGludGVsX2xy X2NvbnRleHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gICB7Cj4gICAJ aW50IHJldCA9IDA7Cj4gICAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJxLT5yaW5n Owo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBycS0+Y3R4LT5lbmdp bmVbcmluZy0+aWRdLnN0YXRlOwo+IC0Jc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYg PSBycS0+cmluZ2J1ZjsKPgo+ICAgCWlmIChycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnBpbl9j b3VudCsrID09IDApIHsKPiAtCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihyaW5nLCBj dHhfb2JqLCByaW5nYnVmKTsKPiArCQlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihyaW5n LCBycS0+Y3R4KTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJCWdvdG8gcmVzZXRfcGluX2NvdW50Owo+ ICAgCX0KPiBAQCAtMTEwMCw2ICsxMTA4LDggQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGlu KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCj4gICAJCWlmICgtLXJxLT5jdHgtPmVu Z2luZVtyaW5nLT5pZF0ucGluX2NvdW50ID09IDApIHsKPiAgIAkJCWludGVsX3VucGluX3Jpbmdi dWZmZXJfb2JqKHJpbmdidWYpOwo+ICAgCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4 X29iaik7Cj4gKwkJCXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ubHJjX3ZtYSA9IE5VTEw7Cj4g KwkJCXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ubHJjX2Rlc2MgPSAwOwo+ICAgCQl9Cj4gICAJ fQo+ICAgfQo+IEBAIC0xOTM4LDYgKzE5NDgsOSBAQCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19j bGVhbnVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICAJCXJpbmctPnN0YXR1c19w YWdlLm9iaiA9IE5VTEw7Cj4gICAJfQo+Cj4gKwlyaW5nLT5kaXNhYmxlX2xpdGVfcmVzdG9yZV93 YSA9IGZhbHNlOwo+ICsJcmluZy0+Y3R4X2Rlc2NfdGVtcGxhdGUgPSAwOwo+ICsKPiAgIAlscmNf ZGVzdHJveV93YV9jdHhfb2JqKHJpbmcpOwo+ICAgCXJpbmctPmRldiA9IE5VTEw7Cj4gICB9Cj4g QEAgLTE5NjAsNiArMTk3MywyNCBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbgo+ICAgCUlOSVRf TElTVF9IRUFEKCZyaW5nLT5leGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0KTsKPiAgIAlzcGluX2xv Y2tfaW5pdCgmcmluZy0+ZXhlY2xpc3RfbG9jayk7Cj4KPiArCXJpbmctPmRpc2FibGVfbGl0ZV9y ZXN0b3JlX3dhID0gZGlzYWJsZV9saXRlX3Jlc3RvcmVfd2EocmluZyk7Cj4gKwo+ICsJcmluZy0+ Y3R4X2Rlc2NfdGVtcGxhdGUgPSBHRU44X0NUWF9WQUxJRDsKPiArCXJpbmctPmN0eF9kZXNjX3Rl bXBsYXRlIHw9IEdFTjhfQ1RYX0FERFJFU1NJTkdfTU9ERShkZXYpIDw8Cj4gKwkJCQkgICBHRU44 X0NUWF9BRERSRVNTSU5HX01PREVfU0hJRlQ7Cj4gKwlpZiAoSVNfR0VOOChkZXYpKQo+ICsJCXJp bmctPmN0eF9kZXNjX3RlbXBsYXRlIHw9IEdFTjhfQ1RYX0wzTExDX0NPSEVSRU5UOwo+ICsJcmlu Zy0+Y3R4X2Rlc2NfdGVtcGxhdGUgfD0gR0VOOF9DVFhfUFJJVklMRUdFOwo+ICsKPiArCS8qIFRP RE86IFdhRGlzYWJsZUxpdGVSZXN0b3JlIHdoZW4gd2Ugc3RhcnQgdXNpbmcgc2VtYXBob3JlCj4g KwkgKiBzaWduYWxsaW5nIGJldHdlZW4gQ29tbWFuZCBTdHJlYW1lcnMgKi8KPiArCS8qIHJpbmct PmN0eF9kZXNjX3RlbXBsYXRlIHw9IEdFTjhfQ1RYX0ZPUkNFX1JFU1RPUkU7ICovCj4gKwo+ICsJ LyogV2FFbmFibGVGb3JjZVJlc3RvcmVJbkN0eHREZXNjRm9yVkNTOnNrbCAqLwo+ICsJLyogV2FF bmFibGVGb3JjZVJlc3RvcmVJbkN0eHREZXNjRm9yVkNTOmJ4dCAqLwo+ICsJaWYgKHJpbmctPmRp c2FibGVfbGl0ZV9yZXN0b3JlX3dhKQo+ICsJCXJpbmctPmN0eF9kZXNjX3RlbXBsYXRlIHw9IEdF TjhfQ1RYX0ZPUkNFX1JFU1RPUkU7Cj4gKwo+ICAgCXJldCA9IGk5MTVfY21kX3BhcnNlcl9pbml0 X3JpbmcocmluZyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBlcnJvcjsKPiBAQCAtMTk2OSwx MCArMjAwMCw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluCj4gICAJCWdvdG8gZXJyb3I7Cj4K PiAgIAkvKiBBcyB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbnRleHQsIGFsd2F5cyBwaW4gaXQgKi8K PiAtCXJldCA9IGludGVsX2xyX2NvbnRleHRfZG9fcGluKAo+IC0JCQlyaW5nLAo+IC0JCQlyaW5n LT5kZWZhdWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUsCj4gLQkJCXJpbmctPmRl ZmF1bHRfY29udGV4dC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmKTsKPiArCXJldCA9IGludGVs X2xyX2NvbnRleHRfZG9fcGluKHJpbmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCk7Cj4gICAJaWYg KHJldCkgewo+ICAgCQlEUk1fRVJST1IoCj4gICAJCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJp bmdidWZmZXIgJXM6ICVkXG4iLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCj4gaW5kZXggZGU0 MWFkNmNkNjNkLi40OWFmNjM4ZjYyMTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+ IEBAIC0xMDcsMTMgKzEwNywxNSBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgIHVpbnQ2NF90IGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRv cihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgCQkJCSAgICAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZyk7Cj4KPiArdTMyIGludGVsX2V4ZWNsaXN0c19jdHhfaWQoc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCwKPiArCQkJICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7 Cj4gKwo+ICAgLyogRXhlY2xpc3RzICovCj4gICBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4 ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5hYmxlX2V4ZWNsaXN0cyk7Cj4g ICBzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtczsKPiAgIGludCBpbnRlbF9leGVjbGlzdHNf c3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAo+ICAgCQkJ ICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmFyZ3MsCj4gICAJCQkgICAg ICAgc3RydWN0IGxpc3RfaGVhZCAqdm1hcyk7Cj4gLXUzMiBpbnRlbF9leGVjbGlzdHNfY3R4X2lk KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqKTsKPgo+ICAgdm9pZCBpbnRlbF9s cmNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gICB2b2lkIGlu dGVsX2V4ZWNsaXN0c19yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu Zyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDczNDlk OTI1ODE5MS4uODVjZTIyNzJmOTJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+IEBAIC0yNjksNiArMjY5LDggQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3Mg ewo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgZXhlY2xpc3RfcXVldWU7Cj4gICAJc3RydWN0IGxpc3Rf aGVhZCBleGVjbGlzdF9yZXRpcmVkX3JlcV9saXN0Owo+ICAgCXU4IG5leHRfY29udGV4dF9zdGF0 dXNfYnVmZmVyOwo+ICsJYm9vbCBkaXNhYmxlX2xpdGVfcmVzdG9yZV93YTsKPiArCXUzMiBjdHhf ZGVzY190ZW1wbGF0ZTsKPiAgIAl1MzIgICAgICAgICAgICAgaXJxX2tlZXBfbWFzazsgLyogYml0 bWFzayBmb3IgaW50ZXJydXB0cyB0aGF0IHNob3VsZCBub3QgYmUgbWFza2VkICovCj4gICAJaW50 CQkoKmVtaXRfcmVxdWVzdCkoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsK PiAgIAlpbnQJCSgqZW1pdF9mbHVzaCkoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0LAo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=