From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Retry on every aux read. Date: Tue, 20 Oct 2015 10:02:21 +0300 Message-ID: <877fmiyqde.fsf@intel.com> References: <20150826090608.GN20434@phenom.ffwll.local> <1445296088-10686-1-git-send-email-rodrigo.vivi@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 3DE5F6E359 for ; Mon, 19 Oct 2015 23:58:53 -0700 (PDT) In-Reply-To: <1445296088-10686-1-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMCBPY3QgMjAxNSwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBXZSBoYXZlIGFuIGluY29uc2lzdGVuY3kgb24gb3VyIGNvZGUgb24gdXNpbmcg aW50ZWxfZHBfZHBjZF9yZWFkX3dha2Ugd2l0aAo+IHJldHJpZXMgYW5kIHdoZW4gdXNpbmcgZHJt X2RwX2RwY2RfcmVhZCBoZWxwZXIgd2l0aG91dCByZXRyeS4KCldlJ3JlIHN1cHBvc2VkIHRvIGRv IHRoZSByZXRyaWVzIHdoZW4gdGhlIHNpbmsgbWF5IGJlIGluIGEgcG93ZXIgZG93bgpzdGF0ZS4g V2UncmUgbm90IHZlcnkgZ29vZCBhdCB0cmFja2luZyB0aGF0LCBhbmQgd2UndmUgY2FyZ28gY3Vs dGVkIHRoZQpyZXRyeSB2YXJpYW50cyBhbGwgb3ZlciB0aGUgcGxhY2Ugd2l0aG91dCB0aGlua2lu Zy4gVGhpcyBpcyB3aHkgd2UncmUKaW5jb25zaXN0ZW50LgoKPiBTaW5jZSB0aGUgcmV0cmllcyBo ZWxwIGluIG1hbnkgY2FzZXMgbGV0J3MgYmUgY29uc2lzdGVudCBhbmQgYmUgb24KPiB0aGUgc2Fm ZSBzaWRlIHJldHJ5aW5nIG9uIGV2ZXJ5IGF1eCByZWFkLCBpbmNsdWRpbmcgaTJjIG9uZXMuCgpQ bGVhc2UgbGV0J3Mgbm90IGFkZCBzdXBlcmZsdW91cyByZXRyaWVzIGF0IGRpZmZlcmVudCBsZXZl bHMgb2YgdGhlCnN0YWNrIGp1c3QgdG8gYmUgc2FmZS4gSXQncyBsaWtlIGEgdmFyaWFudCBvZiB0 aGUgQyBwcm9ncmFtbWVyJ3MKZGlzZWFzZS4KCklmIHRoZSByZXRyaWVzIHJlYWxseSBoZWxwIFtj aXRhdGlvbiBuZWVkZWRdIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0CndlJ3JlIGRvaW5nIHdy b25nIGFuZCB3aGVyZSwgYW5kIHByZWZlcnJhYmx5IGZpeCB0aGlzIGF0IHRoZSBEUCBoZWxwZXIK bGV2ZWwgZm9yIGFsbCBkcml2ZXJzLCBpZiBwb3NzaWJsZS4KCk90aGVyIGNvbW1lbnRzIGluLWxp bmUuCgo+Cj4gU28gd2UgY2FuIGtpbGwgdGhlIGludGVsX2RwX2RwY2RfcmVhZCBmdW5jdGlvbiBh bmQga2VlcCBjb2RlIGNvbnNpc3RlbnQuCj4KPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkg PHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgfCAxMjYgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ICAxIGZpbGUgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCj4KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCAwOWJkZDk0Li40NmYzYzJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTk0NCw3ICs5NDQsNyBAQCBpbnRlbF9kcF9hdXhfdHJh bnNmZXIoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cp Cj4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gY29udGFpbmVyX29mKGF1eCwgc3RydWN0 IGludGVsX2RwLCBhdXgpOwo+ICAJdWludDhfdCB0eGJ1ZlsyMF0sIHJ4YnVmWzIwXTsKPiAgCXNp emVfdCB0eHNpemUsIHJ4c2l6ZTsKPiAtCWludCByZXQ7Cj4gKwlpbnQgcmV0LCBpOwo+ICAKPiAg CXR4YnVmWzBdID0gKG1zZy0+cmVxdWVzdCA8PCA0KSB8Cj4gIAkJKChtc2ctPmFkZHJlc3MgPj4g MTYpICYgMHhmKTsKPiBAQCAtOTg2LDE3ICs5ODYsMjcgQEAgaW50ZWxfZHBfYXV4X3RyYW5zZmVy KHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqbXNnKQo+ICAJ CWlmIChXQVJOX09OKHJ4c2l6ZSA+IDIwKSkKPiAgCQkJcmV0dXJuIC1FMkJJRzsKPiAgCj4gLQkJ cmV0ID0gaW50ZWxfZHBfYXV4X2NoKGludGVsX2RwLCB0eGJ1ZiwgdHhzaXplLCByeGJ1Ziwgcnhz aXplKTsKPiAtCQlpZiAocmV0ID4gMCkgewo+IC0JCQltc2ctPnJlcGx5ID0gcnhidWZbMF0gPj4g NDsKPiAtCQkJLyoKPiAtCQkJICogQXNzdW1lIGhhcHB5IGRheSwgYW5kIGNvcHkgdGhlIGRhdGEu IFRoZSBjYWxsZXIgaXMKPiAtCQkJICogZXhwZWN0ZWQgdG8gY2hlY2sgbXNnLT5yZXBseSBiZWZv cmUgdG91Y2hpbmcgaXQuCj4gLQkJCSAqCj4gLQkJCSAqIFJldHVybiBwYXlsb2FkIHNpemUuCj4g LQkJCSAqLwo+IC0JCQlyZXQtLTsKPiAtCQkJbWVtY3B5KG1zZy0+YnVmZmVyLCByeGJ1ZiArIDEs IHJldCk7Cj4gKwkJLyoKPiArCQkgKiBSZWFkIHdpdGggcmV0cnkgZm9yIGxpbmsgc3RhdHVzIGFu ZCByZWNlaXZlciBjYXBhYmlsaXR5IHJlYWRzCj4gKwkJICogZm9yIGNhc2VzIHdoZXJlIHRoZSBz aW5rIG1heSBzdGlsbCBiZSBhc2xlZXAuCj4gKwkJICogU2lua3MgYXJlICpzdXBwb3NlZCogdG8g Y29tZSB1cCB3aXRoaW4gMW1zIGZyb20gYW4gb2ZmIHN0YXRlLAo+ICsJCSAqIGJ1dCB3ZSdyZSBh bHNvIHN1cHBvc2VkIHRvIHJldHJ5IDMgdGltZXMgcGVyIHRoZSBzcGVjLgo+ICsJCSAqLwoKVGhl IGNvbW1lbnQgd291bGQgbmVlZCBhbiB1cGRhdGUuCgo+ICsJCWZvciAoaSA9IDAsIHJldCA9IDA7 IHJldCA8PSAwICYmIGkgPCAzOyBpKyspIHsKPiArCQkJcmV0ID0gaW50ZWxfZHBfYXV4X2NoKGlu dGVsX2RwLCB0eGJ1ZiwgdHhzaXplLAo+ICsJCQkJCSAgICAgIHJ4YnVmLCByeHNpemUpOwo+ICsJ CQlpZiAocmV0ID4gMCkgewo+ICsJCQkJbXNnLT5yZXBseSA9IHJ4YnVmWzBdID4+IDQ7Cj4gKwkJ CQkvKgo+ICsJCQkJICogQXNzdW1lIGhhcHB5IGRheSwgYW5kIGNvcHkgdGhlIGRhdGEuIFRoZSBj YWxsZXIgaXMKPiArCQkJCSAqIGV4cGVjdGVkIHRvIGNoZWNrIG1zZy0+cmVwbHkgYmVmb3JlIHRv dWNoaW5nIGl0Lgo+ICsJCQkJICoKPiArCQkJCSAqIFJldHVybiBwYXlsb2FkIHNpemUuCj4gKwkJ CQkgKi8KPiArCQkJCXJldC0tOwo+ICsJCQkJbWVtY3B5KG1zZy0+YnVmZmVyLCByeGJ1ZiArIDEs IHJldCk7Cj4gKwkJCX0gZWxzZQo+ICsJCQkJbXNsZWVwKDEpOwo+ICAJCX0KPiAgCQlicmVhazsK PiAgCj4gQEAgLTMwMTIsNDcgKzMwMjIsMTYgQEAgc3RhdGljIHZvaWQgY2h2X2RwX3Bvc3RfcGxs X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIH0KPiAgCj4gIC8qCj4g LSAqIE5hdGl2ZSByZWFkIHdpdGggcmV0cnkgZm9yIGxpbmsgc3RhdHVzIGFuZCByZWNlaXZlciBj YXBhYmlsaXR5IHJlYWRzIGZvcgo+IC0gKiBjYXNlcyB3aGVyZSB0aGUgc2luayBtYXkgc3RpbGwg YmUgYXNsZWVwLgo+IC0gKgo+IC0gKiBTaW5rcyBhcmUgKnN1cHBvc2VkKiB0byBjb21lIHVwIHdp dGhpbiAxbXMgZnJvbSBhbiBvZmYgc3RhdGUsIGJ1dCB3ZSdyZSBhbHNvCj4gLSAqIHN1cHBvc2Vk IHRvIHJldHJ5IDMgdGltZXMgcGVyIHRoZSBzcGVjLgo+IC0gKi8KPiAtc3RhdGljIHNzaXplX3QK PiAtaW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uoc3RydWN0IGRybV9kcF9hdXggKmF1eCwgdW5zaWdu ZWQgaW50IG9mZnNldCwKPiAtCQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKPiAtewo+IC0J c3NpemVfdCByZXQ7Cj4gLQlpbnQgaTsKPiAtCj4gLQkvKgo+IC0JICogU29tZXRpbWUgd2UganVz dCBnZXQgdGhlIHNhbWUgaW5jb3JyZWN0IGJ5dGUgcmVwZWF0ZWQKPiAtCSAqIG92ZXIgdGhlIGVu dGlyZSBidWZmZXIuIERvaW5nIGp1c3Qgb25lIHRocm93IGF3YXkgcmVhZAo+IC0JICogaW5pdGlh bGx5IHNlZW1zIHRvICJzb2x2ZSIgaXQuCj4gLQkgKi8KPiAtCWRybV9kcF9kcGNkX3JlYWQoYXV4 LCBEUF9EUENEX1JFViwgYnVmZmVyLCAxKTsKClNlZQoKY29tbWl0IGY2YTE5MDY2NzQwMDUzNzdi NjRlZTU0MzFjMTQxODA3N2MxYjI0MjUKQXV0aG9yOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgpEYXRlOiAgIFRodSBPY3QgMTYgMjA6NDY6MDkgMjAxNCAr MDMwMAoKICAgIGRybS9pOTE1OiBEbyBhIGR1bW15IERQQ0QgcmVhZCBiZWZvcmUgdGhlIGFjdHVh bCByZWFkCgoKCj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IDM7IGkrKykgewo+IC0JCXJldCA9IGRy bV9kcF9kcGNkX3JlYWQoYXV4LCBvZmZzZXQsIGJ1ZmZlciwgc2l6ZSk7Cj4gLQkJaWYgKHJldCA9 PSBzaXplKQo+IC0JCQlyZXR1cm4gcmV0Owo+IC0JCW1zbGVlcCgxKTsKPiAtCX0KPiAtCj4gLQly ZXR1cm4gcmV0Owo+IC19Cj4gLQo+IC0vKgo+ICAgKiBGZXRjaCBBVVggQ0ggcmVnaXN0ZXJzIDB4 MjAyIC0gMHgyMDcgd2hpY2ggY29udGFpbgo+ICAgKiBsaW5rIHN0YXR1cyBpbmZvcm1hdGlvbgo+ ICAgKi8KPiAgc3RhdGljIGJvb2wKPiAgaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0la RV0pCj4gIHsKPiAtCXJldHVybiBpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1 eCwKPiAtCQkJCSAgICAgICBEUF9MQU5FMF8xX1NUQVRVUywKPiAtCQkJCSAgICAgICBsaW5rX3N0 YXR1cywKPiAtCQkJCSAgICAgICBEUF9MSU5LX1NUQVRVU19TSVpFKSA9PSBEUF9MSU5LX1NUQVRV U19TSVpFOwo+ICsJcmV0dXJuIGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsCj4gKwkJ CQlEUF9MQU5FMF8xX1NUQVRVUywKPiArCQkJCWxpbmtfc3RhdHVzLAo+ICsJCQkJRFBfTElOS19T VEFUVVNfU0laRSkgPT0gRFBfTElOS19TVEFUVVNfU0laRTsKPiAgfQo+ICAKPiAgLyogVGhlc2Ug YXJlIHNvdXJjZS1zcGVjaWZpYyB2YWx1ZXMuICovCj4gQEAgLTM5NzksOCArMzk1OCw4IEBAIGlu dGVsX2RwX2dldF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAJdWludDhfdCBy ZXY7Cj4gIAo+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LCAw eDAwMCwgaW50ZWxfZHAtPmRwY2QsCj4gLQkJCQkgICAgc2l6ZW9mKGludGVsX2RwLT5kcGNkKSkg PCAwKQo+ICsJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIDB4MDAwLCBpbnRl bF9kcC0+ZHBjZCwKPiArCQkJICAgICBzaXplb2YoaW50ZWxfZHAtPmRwY2QpKSA8IDApCj4gIAkJ cmV0dXJuIGZhbHNlOyAvKiBhdXggdHJhbnNmZXIgZmFpbGVkICovCj4gIAo+ICAJRFJNX0RFQlVH X0tNUygiRFBDRDogJSpwaFxuIiwgKGludCkgc2l6ZW9mKGludGVsX2RwLT5kcGNkKSwgaW50ZWxf ZHAtPmRwY2QpOwo+IEBAIC0zOTkxLDkgKzM5NzAsOSBAQCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJLyogQ2hlY2sgaWYgdGhlIHBhbmVsIHN1cHBvcnRz IFBTUiAqLwo+ICAJbWVtc2V0KGludGVsX2RwLT5wc3JfZHBjZCwgMCwgc2l6ZW9mKGludGVsX2Rw LT5wc3JfZHBjZCkpOwo+ICAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKPiAtCQlpbnRlbF9kcF9k cGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwgRFBfUFNSX1NVUFBPUlQsCj4gLQkJCQkJaW50 ZWxfZHAtPnBzcl9kcGNkLAo+IC0JCQkJCXNpemVvZihpbnRlbF9kcC0+cHNyX2RwY2QpKTsKPiAr CQlkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9QU1JfU1VQUE9SVCwKPiArCQkJ CSBpbnRlbF9kcC0+cHNyX2RwY2QsCj4gKwkJCQkgc2l6ZW9mKGludGVsX2RwLT5wc3JfZHBjZCkp Owo+ICAJCWlmIChpbnRlbF9kcC0+cHNyX2RwY2RbMF0gJiBEUF9QU1JfSVNfU1VQUE9SVEVEKSB7 Cj4gIAkJCWRldl9wcml2LT5wc3Iuc2lua19zdXBwb3J0ID0gdHJ1ZTsKPiAgCQkJRFJNX0RFQlVH X0tNUygiRGV0ZWN0ZWQgRURQIFBTUiBQYW5lbC5cbiIpOwo+IEBAIC00MDA0LDkgKzM5ODMsOSBA QCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJCQl1aW50 OF90IGZyYW1lX3N5bmNfY2FwOwo+ICAKPiAgCQkJZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQg PSB0cnVlOwo+IC0JCQlpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPiAt CQkJCQlEUF9TSU5LX0RFVklDRV9BVVhfRlJBTUVfU1lOQ19DQVAsCj4gLQkJCQkJJmZyYW1lX3N5 bmNfY2FwLCAxKTsKPiArCQkJZHJtX2RwX2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsCj4gKwkJ CQkJICBEUF9TSU5LX0RFVklDRV9BVVhfRlJBTUVfU1lOQ19DQVAsCj4gKwkJCQkJICAmZnJhbWVf c3luY19jYXApOwo+ICAJCQlkZXZfcHJpdi0+cHNyLmF1eF9mcmFtZV9zeW5jID0gZnJhbWVfc3lu Y19jYXAgPyB0cnVlIDogZmFsc2U7Cj4gIAkJCS8qIFBTUjIgbmVlZHMgZnJhbWUgc3luYyBhcyB3 ZWxsICovCj4gIAkJCWRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0ID0gZGV2X3ByaXYtPnBzci5h dXhfZnJhbWVfc3luYzsKPiBAQCAtNDAyMiwxNSArNDAwMSwxNSBAQCBpbnRlbF9kcF9nZXRfZHBj ZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJLyogSW50ZXJtZWRpYXRlIGZyZXF1ZW5j eSBzdXBwb3J0ICovCj4gIAlpZiAoaXNfZWRwKGludGVsX2RwKSAmJgo+ICAJICAgIChpbnRlbF9k cC0+ZHBjZFtEUF9FRFBfQ09ORklHVVJBVElPTl9DQVBdICYJRFBfRFBDRF9ESVNQTEFZX0NPTlRS T0xfQ0FQQUJMRSkgJiYKPiAtCSAgICAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2Rw LT5hdXgsIERQX0VEUF9EUENEX1JFViwgJnJldiwgMSkgPT0gMSkgJiYKPiArCSAgICAoZHJtX2Rw X2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsIERQX0VEUF9EUENEX1JFViwgJnJldikgPT0gMSkg JiYKPiAgCSAgICAocmV2ID49IDB4MDMpKSB7IC8qIGVEcCB2MS40IG9yIGhpZ2hlciAqLwo+ICAJ CV9fbGUxNiBzaW5rX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwo+ICAJCWludCBpOwo+ ICAKPiAtCQlpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPiAtCQkJCURQ X1NVUFBPUlRFRF9MSU5LX1JBVEVTLAo+IC0JCQkJc2lua19yYXRlcywKPiAtCQkJCXNpemVvZihz aW5rX3JhdGVzKSk7Cj4gKwkJZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwKPiArCQkJ CSBEUF9TVVBQT1JURURfTElOS19SQVRFUywKPiArCQkJCSBzaW5rX3JhdGVzLAo+ICsJCQkJIHNp emVvZihzaW5rX3JhdGVzKSk7Cj4gIAo+ICAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNp bmtfcmF0ZXMpOyBpKyspIHsKPiAgCQkJaW50IHZhbCA9IGxlMTZfdG9fY3B1KHNpbmtfcmF0ZXNb aV0pOwo+IEBAIC00MDUzLDkgKzQwMzIsOSBAQCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ICAJaWYgKGludGVsX2RwLT5kcGNkW0RQX0RQQ0RfUkVWXSA9PSAw eDEwKQo+ICAJCXJldHVybiB0cnVlOyAvKiBubyBwZXItcG9ydCBkb3duc3RyZWFtIGluZm8gKi8K PiAgCj4gLQlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsIERQX0RP V05TVFJFQU1fUE9SVF8wLAo+IC0JCQkJICAgIGludGVsX2RwLT5kb3duc3RyZWFtX3BvcnRzLAo+ IC0JCQkJICAgIERQX01BWF9ET1dOU1RSRUFNX1BPUlRTKSA8IDApCj4gKwlpZiAoZHJtX2RwX2Rw Y2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwgRFBfRE9XTlNUUkVBTV9QT1JUXzAsCj4gKwkJCSAgICAg aW50ZWxfZHAtPmRvd25zdHJlYW1fcG9ydHMsCj4gKwkJCSAgICAgRFBfTUFYX0RPV05TVFJFQU1f UE9SVFMpIDwgMCkKPiAgCQlyZXR1cm4gZmFsc2U7IC8qIGRvd25zdHJlYW0gcG9ydCBzdGF0dXMg ZmV0Y2ggZmFpbGVkICovCj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gQEAgLTQwNjksMTEgKzQwNDgs MTEgQEAgaW50ZWxfZHBfcHJvYmVfb3VpKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAlp ZiAoIShpbnRlbF9kcC0+ZHBjZFtEUF9ET1dOX1NUUkVBTV9QT1JUX0NPVU5UXSAmIERQX09VSV9T VVBQT1JUKSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtl KCZpbnRlbF9kcC0+YXV4LCBEUF9TSU5LX09VSSwgYnVmLCAzKSA9PSAzKQo+ICsJaWYgKGRybV9k cF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1NJTktfT1VJLCBidWYsIDMpID09IDMpCj4g IAkJRFJNX0RFQlVHX0tNUygiU2luayBPVUk6ICUwMmh4JTAyaHglMDJoeFxuIiwKPiAgCQkJICAg ICAgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSk7Cj4gIAo+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVh ZF93YWtlKCZpbnRlbF9kcC0+YXV4LCBEUF9CUkFOQ0hfT1VJLCBidWYsIDMpID09IDMpCj4gKwlp ZiAoZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwgRFBfQlJBTkNIX09VSSwgYnVmLCAz KSA9PSAzKQo+ICAJCURSTV9ERUJVR19LTVMoIkJyYW5jaCBPVUk6ICUwMmh4JTAyaHglMDJoeFxu IiwKPiAgCQkJICAgICAgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSk7Cj4gIH0KPiBAQCAtNDA4OSw3 ICs0MDY4LDcgQEAgaW50ZWxfZHBfcHJvYmVfbXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gIAlpZiAoaW50ZWxfZHAtPmRwY2RbRFBfRFBDRF9SRVZdIDwgMHgxMikKPiAgCQlyZXR1cm4g ZmFsc2U7Cj4gIAo+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4 LCBEUF9NU1RNX0NBUCwgYnVmLCAxKSkgewo+ICsJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRl bF9kcC0+YXV4LCBEUF9NU1RNX0NBUCwgYnVmKSkgewo+ICAJCWlmIChidWZbMF0gJiBEUF9NU1Rf Q0FQKSB7Cj4gIAkJCURSTV9ERUJVR19LTVMoIlNpbmsgaXMgTVNUIGNhcGFibGVcbiIpOwo+ICAJ CQlpbnRlbF9kcC0+aXNfbXN0ID0gdHJ1ZTsKPiBAQCAtNDIyOCw5ICs0MjA3LDkgQEAgc3RvcDoK PiAgc3RhdGljIGJvb2wKPiAgaW50ZWxfZHBfZ2V0X3NpbmtfaXJxKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsIHU4ICpzaW5rX2lycV92ZWN0b3IpCj4gIHsKPiAtCXJldHVybiBpbnRlbF9kcF9k cGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPiAtCQkJCSAgICAgICBEUF9ERVZJQ0VfU0VS VklDRV9JUlFfVkVDVE9SLAo+IC0JCQkJICAgICAgIHNpbmtfaXJxX3ZlY3RvciwgMSkgPT0gMTsK PiArCXJldHVybiBkcm1fZHBfZHBjZF9yZWFkYigmaW50ZWxfZHAtPmF1eCwKPiArCQkJCSBEUF9E RVZJQ0VfU0VSVklDRV9JUlFfVkVDVE9SLAo+ICsJCQkJIHNpbmtfaXJxX3ZlY3RvcikgPT0gMTsK PiAgfQo+ICAKPiAgc3RhdGljIGJvb2wKPiBAQCAtNDIzOCw5ICs0MjE3LDkgQEAgaW50ZWxfZHBf Z2V0X3NpbmtfaXJxX2VzaShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCAqc2lua19pcnFf dmVjdG9yKQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXJldCA9IGludGVsX2RwX2RwY2RfcmVh ZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+IC0JCQkJCSAgICAgRFBfU0lOS19DT1VOVF9FU0ksCj4g LQkJCQkJICAgICBzaW5rX2lycV92ZWN0b3IsIDE0KTsKPiArCXJldCA9IGRybV9kcF9kcGNkX3Jl YWQoJmludGVsX2RwLT5hdXgsCj4gKwkJCSAgICAgICBEUF9TSU5LX0NPVU5UX0VTSSwKPiArCQkJ ICAgICAgIHNpbmtfaXJxX3ZlY3RvciwgMTQpOwo+ICAJaWYgKHJldCAhPSAxNCkKPiAgCQlyZXR1 cm4gZmFsc2U7Cj4gIAo+IEBAIC00NDk2LDggKzQ0NzUsNyBAQCBpbnRlbF9kcF9kZXRlY3RfZHBj ZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJICAgIGludGVsX2RwLT5kb3duc3RyZWFt X3BvcnRzWzBdICYgRFBfRFNfUE9SVF9IUEQpIHsKPiAgCQl1aW50OF90IHJlZzsKPiAgCj4gLQkJ aWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LCBEUF9TSU5LX0NPVU5U LAo+IC0JCQkJCSAgICAmcmVnLCAxKSA8IDApCj4gKwkJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZp bnRlbF9kcC0+YXV4LCBEUF9TSU5LX0NPVU5ULCAmcmVnKSA8IDApCj4gIAkJCXJldHVybiBjb25u ZWN0b3Jfc3RhdHVzX3Vua25vd247Cj4gIAo+ICAJCXJldHVybiBEUF9HRVRfU0lOS19DT1VOVChy ZWcpID8gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQKPiAtLSAKPiAyLjQuMwo+Cj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApKYW5pIE5p a3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK