From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2] drm/i915: Prevent PPS stealing from a normal DP port on VLV/CHV Date: Mon, 19 Dec 2016 15:01:57 +0200 Message-ID: <20161219130157.GV31595@intel.com> References: <1481552505-13828-1-git-send-email-ville.syrjala@linux.intel.com> <1481738423-29738-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67C516E039 for ; Mon, 19 Dec 2016 13:02:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1481738423-29738-1-git-send-email-ville.syrjala@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: intel-gfx@lists.freedesktop.org Cc: stable@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBEZWMgMTQsIDIwMTYgYXQgMDg6MDA6MjNQTSArMDIwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBWTFYgYXBwYXJlbnRseSBnZXRzIHVwc2V0IGlmIHRo ZSBQUFMgZm9yIGEgcGlwZSBjdXJyZW50bHkgZHJpdmluZyBhbgo+IGV4dGVybmFsIERQIHBvcnQg Z2V0cyB1c2VkIGZvciBWREQgc3R1ZmYgb24gYW5vdGhlciBlRFAgcG9ydC4gVGhlIERQCj4gcG9y dCBmYWxscyBvdmVyIGFuZCBmYWlscyB0byByZXRyYWluIHdoZW4gdGhpcyBoYXBwZW5zLCBsZWF2 aW5nIHRoZQo+IHVzZXIgc3RhcmluZyBhdCBhIGJsYWNrIHNjcmVlbi4KPiAKPiBMZXQncyBmaXgg aXQgYnkgYWxzbyB0cmFja2luZyB3aGljaCBwaXBlIGlzIGRyaXZpbmcgd2hpY2ggRFAvZURQIHBv cnQuCj4gV2UnbGwgdHJhY2sgdGhpcyB1bmRlciBpbnRlbF9kcCBzbyB0aGF0IHdlJ2xsIHNoYXJl IHRoZSBwcm90ZWN0aW9uCj4gb2YgdGhlIHBwc19tdXRleCBhbG9uZ3NpZGUgdGhlIHBwc19waXBl IHRyYWNraW5nLCBzaW5jZSB0aGUgdHdvCj4gdGhpbmdzIGFyZSBpbnRpbWF0ZWx5IHJlbGF0ZWQu Cj4gCj4gSSBoYWQgcGxhbnMgdG8gcmVkdWNlIHRoZSBwcm90ZWN0aW9uIG9mIHBwc19tdXRleCB0 byBjb3ZlciBvbmx5IGVEUAo+IHBvcnRzLCBidXQgd2l0aCB0aGlzIHdlIGNhbid0IGRvIHRoYXQu IFdlbGwsIGZvciBmb3IgVkxWL0NIViBhdCBsZWFzdC4KPiBGb3Igb3RoZXIgcGxhdGZvcm1zIGl0 IHNob3VsZCBzdGlsbCBiZSBwb3NzaWJsZSwgd2hpY2ggd291bGQgYWxsb3cKPiBBVVggY29tbXVu aWNhdGlvbiB0byBvY2N1ciBpbiBwYXJhbGxlbCBmb3IgbXVsdGlwbGUgRFAgcG9ydHMuCj4gCj4g djI6IERyb3Agc3RyYXkgY3JhcCBmcm9tIGEgY29tbWVudCAoSW1yZSkKPiAgICAgR3JhYiBwcHNf bXV0ZXggd2hlbiBjbGVhcmluZyBhY3RpdmVfcGlwZQo+ICAgICBGaXggYSB0eXBvIGluIHRoZSBj b21taXQgbWVzc2FnZQo+IAo+IENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCj4gU2lnbmVkLW9m Zi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBS ZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgoKUHVzaGVkIHRvIGRp bnEuIFRoYW5rcyBmb3IgdGhlIHJldmlldy4KCkkgZGlkIG5vdGljZSB0aGF0IEkgaGFkIG5lZ2xl Y3RlZCB0byBtYWtlIHZsdl9hY3RpdmVfcGlwZSgpIHN0YXRpYywKYnV0IEkganVzdCBmaXhlZCB0 aGF0IHVwIHdoaWxlIGFwcGx5aW5nIHRoZSBwYXRjaC4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgIHwgMTUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCB8ICAgNiArKwo+ICAy IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBkYjc1YmI5MjRlNDguLmZlODMwZTM3MzZjZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC00NTQsMTQgKzQ1NCw1MCBAQCB2bHZf cG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCX0KPiAg fQo+ICAKPiArc3RhdGljIGVudW0gcGlwZSB2bHZfZmluZF9mcmVlX3BwcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyOwo+ICsJdW5zaWduZWQgaW50IHBpcGVzID0gKDEgPDwgUElQRV9BKSB8ICgxIDw8IFBJUEVf Qik7Cj4gKwo+ICsJLyoKPiArCSAqIFdlIGRvbid0IGhhdmUgcG93ZXIgc2VxdWVuY2VyIGN1cnJl bnRseS4KPiArCSAqIFBpY2sgb25lIHRoYXQncyBub3QgdXNlZCBieSBvdGhlciBwb3J0cy4KPiAr CSAqLwo+ICsJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5jb2Rlcikg ewo+ICsJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4gKwo+ICsJCWlmIChlbmNvZGVyLT50 eXBlICE9IElOVEVMX09VVFBVVF9EUCAmJgo+ICsJCSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVM X09VVFBVVF9FRFApCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpbnRlbF9kcCA9IGVuY190b19p bnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwo+ICsJCWlmIChlbmNvZGVyLT50eXBlID09IElO VEVMX09VVFBVVF9FRFApIHsKPiArCQkJV0FSTl9PTihpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0g SU5WQUxJRF9QSVBFICYmCj4gKwkJCQlpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0gaW50ZWxfZHAt PnBwc19waXBlKTsKPiArCj4gKwkJCWlmIChpbnRlbF9kcC0+cHBzX3BpcGUgIT0gSU5WQUxJRF9Q SVBFKQo+ICsJCQkJcGlwZXMgJj0gfigxIDw8IGludGVsX2RwLT5wcHNfcGlwZSk7Cj4gKwkJfSBl bHNlIHsKPiArCQkJV0FSTl9PTihpbnRlbF9kcC0+cHBzX3BpcGUgIT0gSU5WQUxJRF9QSVBFKTsK PiArCj4gKwkJCWlmIChpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0gSU5WQUxJRF9QSVBFKQo+ICsJ CQkJcGlwZXMgJj0gfigxIDw8IGludGVsX2RwLT5hY3RpdmVfcGlwZSk7Cj4gKwkJfQo+ICsJfQo+ ICsKPiArCWlmIChwaXBlcyA9PSAwKQo+ICsJCXJldHVybiBJTlZBTElEX1BJUEU7Cj4gKwo+ICsJ cmV0dXJuIGZmcyhwaXBlcykgLSAxOwo+ICt9Cj4gKwo+ICBzdGF0aWMgZW51bSBwaXBlCj4gIHZs dl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4g IAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9y dC0+YmFzZS5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+IC0JdW5z aWduZWQgaW50IHBpcGVzID0gKDEgPDwgUElQRV9BKSB8ICgxIDw8IFBJUEVfQik7Cj4gIAllbnVt IHBpcGUgcGlwZTsKPiAgCj4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211 dGV4KTsKPiBAQCAtNDY5LDMzICs1MDUsMjAgQEAgdmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkvKiBXZSBzaG91bGQgbmV2ZXIgbGFuZCBoZXJl IHdpdGggcmVndWxhciBEUCBwb3J0cyAqLwo+ICAJV0FSTl9PTighaXNfZWRwKGludGVsX2RwKSk7 Cj4gIAo+ICsJV0FSTl9PTihpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0gSU5WQUxJRF9QSVBFICYm Cj4gKwkJaW50ZWxfZHAtPmFjdGl2ZV9waXBlICE9IGludGVsX2RwLT5wcHNfcGlwZSk7Cj4gKwo+ ICAJaWYgKGludGVsX2RwLT5wcHNfcGlwZSAhPSBJTlZBTElEX1BJUEUpCj4gIAkJcmV0dXJuIGlu dGVsX2RwLT5wcHNfcGlwZTsKPiAgCj4gLQkvKgo+IC0JICogV2UgZG9uJ3QgaGF2ZSBwb3dlciBz ZXF1ZW5jZXIgY3VycmVudGx5Lgo+IC0JICogUGljayBvbmUgdGhhdCdzIG5vdCB1c2VkIGJ5IG90 aGVyIHBvcnRzLgo+IC0JICovCj4gLQlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2Rl cikgewo+IC0JCXN0cnVjdCBpbnRlbF9kcCAqdG1wOwo+IC0KPiAtCQlpZiAoZW5jb2Rlci0+dHlw ZSAhPSBJTlRFTF9PVVRQVVRfRURQKQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJdG1wID0gZW5j X3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAtCj4gLQkJaWYgKHRtcC0+cHBzX3BpcGUg IT0gSU5WQUxJRF9QSVBFKQo+IC0JCQlwaXBlcyAmPSB+KDEgPDwgdG1wLT5wcHNfcGlwZSk7Cj4g LQl9Cj4gKwlwaXBlID0gdmx2X2ZpbmRfZnJlZV9wcHMoZGV2X3ByaXYpOwo+ICAKPiAgCS8qCj4g IAkgKiBEaWRuJ3QgZmluZCBvbmUuIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gc2luY2UgdGhlcmUK PiAgCSAqIGFyZSB0d28gcG93ZXIgc2VxdWVuY2VycyBhbmQgdXAgdG8gdHdvIGVEUCBwb3J0cy4K PiAgCSAqLwo+IC0JaWYgKFdBUk5fT04ocGlwZXMgPT0gMCkpCj4gKwlpZiAoV0FSTl9PTihwaXBl ID09IElOVkFMSURfUElQRSkpCj4gIAkJcGlwZSA9IFBJUEVfQTsKPiAtCWVsc2UKPiAtCQlwaXBl ID0gZmZzKHBpcGVzKSAtIDE7Cj4gIAo+ICAJdmx2X3N0ZWFsX3Bvd2VyX3NlcXVlbmNlcihkZXYs IHBpcGUpOwo+ICAJaW50ZWxfZHAtPnBwc19waXBlID0gcGlwZTsKPiBAQCAtNjUxLDEwICs2NzQs MTcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIp IHsKPiAgCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwo+ICAKPiAtCQlpZiAoZW5jb2Rlci0+ dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQKQo+ICsJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVM X09VVFBVVF9EUCAmJgo+ICsJCSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAp Cj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5j b2Rlci0+YmFzZSk7Cj4gKwo+ICsJCVdBUk5fT04oaW50ZWxfZHAtPmFjdGl2ZV9waXBlICE9IElO VkFMSURfUElQRSk7Cj4gKwo+ICsJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9F RFApCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAgCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4g IAkJCWludGVsX2RwLT5wcHNfcmVzZXQgPSB0cnVlOwo+ICAJCWVsc2UKPiBAQCAtMjgxNCw2ICsy ODQ0LDggQEAgc3RhdGljIHZvaWQgdmx2X2RldGFjaF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZHAtPnBwc19waXBl Owo+ICAJaTkxNV9yZWdfdCBwcF9vbl9yZWcgPSBQUF9PTl9ERUxBWVMocGlwZSk7Cj4gIAo+ICsJ V0FSTl9PTihpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0gSU5WQUxJRF9QSVBFKTsKPiArCj4gIAll ZHBfcGFuZWxfdmRkX29mZl9zeW5jKGludGVsX2RwKTsKPiAgCj4gIAkvKgo+IEBAIC0yODQ4LDIy ICsyODgwLDIzIEBAIHN0YXRpYyB2b2lkIHZsdl9zdGVhbF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwo+ICAJCWVu dW0gcG9ydCBwb3J0Owo+ICAKPiAtCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRf RURQKQo+ICsJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUCAmJgo+ICsJCSAg ICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCj4gIAkJCWNvbnRpbnVlOwo+ICAK PiAgCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAkJcG9y dCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCj4gKwkJV0FSTihpbnRlbF9k cC0+YWN0aXZlX3BpcGUgPT0gcGlwZSwKPiArCQkgICAgICJzdGVhbGluZyBwaXBlICVjIHBvd2Vy IHNlcXVlbmNlciBmcm9tIGFjdGl2ZSAoZSlEUCBwb3J0ICVjXG4iLAo+ICsJCSAgICAgcGlwZV9u YW1lKHBpcGUpLCBwb3J0X25hbWUocG9ydCkpOwo+ICsKPiAgCQlpZiAoaW50ZWxfZHAtPnBwc19w aXBlICE9IHBpcGUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlEUk1fREVCVUdfS01TKCJzdGVh bGluZyBwaXBlICVjIHBvd2VyIHNlcXVlbmNlciBmcm9tIHBvcnQgJWNcbiIsCj4gIAkJCSAgICAg IHBpcGVfbmFtZShwaXBlKSwgcG9ydF9uYW1lKHBvcnQpKTsKPiAgCj4gLQkJV0FSTihlbmNvZGVy LT5iYXNlLmNydGMsCj4gLQkJICAgICAic3RlYWxpbmcgcGlwZSAlYyBwb3dlciBzZXF1ZW5jZXIg ZnJvbSBhY3RpdmUgZURQIHBvcnQgJWNcbiIsCj4gLQkJICAgICBwaXBlX25hbWUocGlwZSksIHBv cnRfbmFtZShwb3J0KSk7Cj4gLQo+ICAJCS8qIG1ha2Ugc3VyZSB2ZGQgaXMgb2ZmIGJlZm9yZSB3 ZSBzdGVhbCBpdCAqLwo+ICAJCXZsdl9kZXRhY2hfcG93ZXJfc2VxdWVuY2VyKGludGVsX2RwKTsK PiAgCX0KPiBAQCAtMjg3OSwxOSArMjkxMiwxNyBAQCBzdGF0aWMgdm9pZCB2bHZfaW5pdF9wYW5l bF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIAlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiAgCj4gLQlpZiAoIWlzX2Vk cChpbnRlbF9kcCkpCj4gLQkJcmV0dXJuOwo+ICsJV0FSTl9PTihpbnRlbF9kcC0+YWN0aXZlX3Bp cGUgIT0gSU5WQUxJRF9QSVBFKTsKPiAgCj4gLQlpZiAoaW50ZWxfZHAtPnBwc19waXBlID09IGNy dGMtPnBpcGUpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCS8qCj4gLQkgKiBJZiBhbm90aGVyIHBvd2Vy IHNlcXVlbmNlciB3YXMgYmVpbmcgdXNlZCBvbiB0aGlzCj4gLQkgKiBwb3J0IHByZXZpb3VzbHkg bWFrZSBzdXJlIHRvIHR1cm4gb2ZmIHZkZCB0aGVyZSB3aGlsZQo+IC0JICogd2Ugc3RpbGwgaGF2 ZSBjb250cm9sIG9mIGl0Lgo+IC0JICovCj4gLQlpZiAoaW50ZWxfZHAtPnBwc19waXBlICE9IElO VkFMSURfUElQRSkKPiArCWlmIChpbnRlbF9kcC0+cHBzX3BpcGUgIT0gSU5WQUxJRF9QSVBFICYm Cj4gKwkgICAgaW50ZWxfZHAtPnBwc19waXBlICE9IGNydGMtPnBpcGUpIHsKPiArCQkvKgo+ICsJ CSAqIElmIGFub3RoZXIgcG93ZXIgc2VxdWVuY2VyIHdhcyBiZWluZyB1c2VkIG9uIHRoaXMKPiAr CQkgKiBwb3J0IHByZXZpb3VzbHkgbWFrZSBzdXJlIHRvIHR1cm4gb2ZmIHZkZCB0aGVyZSB3aGls ZQo+ICsJCSAqIHdlIHN0aWxsIGhhdmUgY29udHJvbCBvZiBpdC4KPiArCQkgKi8KPiAgCQl2bHZf ZGV0YWNoX3Bvd2VyX3NlcXVlbmNlcihpbnRlbF9kcCk7Cj4gKwl9Cj4gIAo+ICAJLyoKPiAgCSAq IFdlIG1heSBiZSBzdGVhbGluZyB0aGUgcG93ZXIKPiBAQCAtMjg5OSw2ICsyOTMwLDExIEBAIHN0 YXRpYyB2b2lkIHZsdl9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICAJICovCj4gIAl2bHZfc3RlYWxfcG93ZXJfc2VxdWVuY2VyKGRldiwgY3J0 Yy0+cGlwZSk7Cj4gIAo+ICsJaW50ZWxfZHAtPmFjdGl2ZV9waXBlID0gY3J0Yy0+cGlwZTsKPiAr Cj4gKwlpZiAoIWlzX2VkcChpbnRlbF9kcCkpCj4gKwkJcmV0dXJuOwo+ICsKPiAgCS8qIG5vdyBp dCdzIGFsbCBvdXJzICovCj4gIAlpbnRlbF9kcC0+cHBzX3BpcGUgPSBjcnRjLT5waXBlOwo+ICAK PiBAQCAtMzQ4NSw2ICszNTIxLDEyIEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICAJbXNsZWVwKGludGVsX2RwLT5wYW5lbF9wb3dlcl9kb3duX2RlbGF5 KTsKPiAgCj4gIAlpbnRlbF9kcC0+RFAgPSBEUDsKPiArCj4gKwlpZiAoSVNfVkFMTEVZVklFVyhk ZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiArCQlwcHNfbG9jayhpbnRl bF9kcCk7Cj4gKwkJaW50ZWxfZHAtPmFjdGl2ZV9waXBlID0gSU5WQUxJRF9QSVBFOwo+ICsJCXBw c191bmxvY2soaW50ZWxfZHApOwo+ICsJfQo+ICB9Cj4gIAo+ICBib29sCj4gQEAgLTQ3NTAsNiAr NDc5MiwxOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAllZHBfcGFuZWxfdmRkX3NjaGVkdWxlX29mZihpbnRl bF9kcCk7Cj4gIH0KPiAgCj4gK2VudW0gcGlwZSB2bHZfYWN0aXZlX3BpcGUoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCj4gKwlpZiAoKGludGVs X2RwLT5EUCAmIERQX1BPUlRfRU4pID09IDApCj4gKwkJcmV0dXJuIElOVkFMSURfUElQRTsKPiAr Cj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gKwkJcmV0dXJuIERQX1BPUlRfVE9f UElQRV9DSFYoaW50ZWxfZHAtPkRQKTsKPiArCWVsc2UKPiArCQlyZXR1cm4gUE9SVF9UT19QSVBF KGludGVsX2RwLT5EUCk7Cj4gK30KPiArCj4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiBAQCAtNDc2MiwxNCArNDgx NywxNiBAQCB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQo+ICAJaWYgKGxzcGNvbi0+YWN0aXZlKQo+ICAJCWxzcGNvbl9yZXN1bWUobHNwY29u KTsKPiAgCj4gLQlpZiAodG9faW50ZWxfZW5jb2RlcihlbmNvZGVyKS0+dHlwZSAhPSBJTlRFTF9P VVRQVVRfRURQKQo+IC0JCXJldHVybjsKPiAtCj4gIAlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gIAo+ IC0JLyogUmVpbml0IHRoZSBwb3dlciBzZXF1ZW5jZXIsIGluIGNhc2UgQklPUyBkaWQgc29tZXRo aW5nIHdpdGggaXQuICovCj4gLQlpbnRlbF9kcF9wcHNfaW5pdChlbmNvZGVyLT5kZXYsIGludGVs X2RwKTsKPiAtCWludGVsX2VkcF9wYW5lbF92ZGRfc2FuaXRpemUoaW50ZWxfZHApOwo+ICsJaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICsJ CWludGVsX2RwLT5hY3RpdmVfcGlwZSA9IHZsdl9hY3RpdmVfcGlwZShpbnRlbF9kcCk7Cj4gKwo+ ICsJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKPiArCQkvKiBSZWluaXQgdGhlIHBvd2VyIHNlcXVl bmNlciwgaW4gY2FzZSBCSU9TIGRpZCBzb21ldGhpbmcgd2l0aCBpdC4gKi8KPiArCQlpbnRlbF9k cF9wcHNfaW5pdChlbmNvZGVyLT5kZXYsIGludGVsX2RwKTsKPiArCQlpbnRlbF9lZHBfcGFuZWxf dmRkX3Nhbml0aXplKGludGVsX2RwKTsKPiArCX0KPiAgCj4gIAlwcHNfdW5sb2NrKGludGVsX2Rw KTsKPiAgfQo+IEBAIC01NTk2LDEwICs1NjUzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2lu aXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJICogSWYgdGhlIGN1 cnJlbnQgcGlwZSBpc24ndCB2YWxpZCwgdHJ5IHRoZSBQUFMgcGlwZSwgYW5kIGlmIHRoYXQKPiAg CQkgKiBmYWlscyBqdXN0IGFzc3VtZSBwaXBlIEEuCj4gIAkJICovCj4gLQkJaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQo+IC0JCQlwaXBlID0gRFBfUE9SVF9UT19QSVBFX0NIVihpbnRlbF9k cC0+RFApOwo+IC0JCWVsc2UKPiAtCQkJcGlwZSA9IFBPUlRfVE9fUElQRShpbnRlbF9kcC0+RFAp Owo+ICsJCXBpcGUgPSB2bHZfYWN0aXZlX3BpcGUoaW50ZWxfZHApOwo+ICAKPiAgCQlpZiAocGlw ZSAhPSBQSVBFX0EgJiYgcGlwZSAhPSBQSVBFX0IpCj4gIAkJCXBpcGUgPSBpbnRlbF9kcC0+cHBz X3BpcGU7Cj4gQEAgLTU2NDgsNiArNTcwMiw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJCXJldHVybiBmYWxz ZTsKPiAgCj4gIAlpbnRlbF9kcC0+cHBzX3BpcGUgPSBJTlZBTElEX1BJUEU7Cj4gKwlpbnRlbF9k cC0+YWN0aXZlX3BpcGUgPSBJTlZBTElEX1BJUEU7Cj4gIAo+ICAJLyogaW50ZWxfZHAgdmZ1bmNz ICovCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+IEBAIC01Njc2LDYgKzU3MzEs OSBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKPiAgCWVsc2UKPiAgCQl0eXBlID0gRFJNX01PREVfQ09OTkVDVE9SX0Rp c3BsYXlQb3J0Owo+ICAKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKPiArCQlpbnRlbF9kcC0+YWN0aXZlX3BpcGUgPSB2bHZfYWN0aXZl X3BpcGUoaW50ZWxfZHApOwo+ICsKPiAgCS8qCj4gIAkgKiBGb3IgZURQIHdlIGFsd2F5cyBzZXQg dGhlIGVuY29kZXIgdHlwZSB0byBJTlRFTF9PVVRQVVRfRURQLCBidXQKPiAgCSAqIGZvciBEUCB0 aGUgZW5jb2RlciB0eXBlIGNhbiBiZSBzZXQgYnkgdGhlIGNhbGxlciB0bwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggOGY0ZGRjYTBmNTIxLi44NWIzOWQzYTZkZmYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC05MjksNiArOTI5LDEyIEBAIHN0cnVjdCBpbnRl bF9kcCB7Cj4gIAkgKi8KPiAgCWVudW0gcGlwZSBwcHNfcGlwZTsKPiAgCS8qCj4gKwkgKiBQaXBl IGN1cnJlbnRseSBkcml2aW5nIHRoZSBwb3J0LiBVc2VkIGZvciBwcmV2ZW50aW5nCj4gKwkgKiB0 aGUgdXNlIG9mIHRoZSBQUFMgZm9yIGFueSBwaXBlIGN1cnJlbnRybHkgZHJpdmluZwo+ICsJICog ZXh0ZXJuYWwgRFAgYXMgdGhhdCB3aWxsIG1lc3MgdGhpbmdzIHVwIG9uIFZMVi4KPiArCSAqLwo+ ICsJZW51bSBwaXBlIGFjdGl2ZV9waXBlOwo+ICsJLyoKPiAgCSAqIFNldCBpZiB0aGUgc2VxdWVu Y2VyIG1heSBiZSByZXNldCBkdWUgdG8gYSBwb3dlciB0cmFuc2l0aW9uLAo+ICAJICogcmVxdWly aW5nIGEgcmVpbml0aWFsaXphdGlvbi4gT25seSByZWxldmFudCBvbiBCWFQuCj4gIAkgKi8KPiAt LSAKPiAyLjcuNAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==