From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [CI 1/2] drm/i915: Invalidate the guc ggtt TLB upon insertion Date: Thu, 12 Jan 2017 11:00:49 +0000 Message-ID: <20170112110050.25333-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3FEF96EC14 for ; Thu, 12 Jan 2017 11:00:55 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id c85so2843769wmi.1 for ; Thu, 12 Jan 2017 03:00:55 -0800 (PST) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id b15sm2580796wma.5.2017.01.12.03.00.52 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 12 Jan 2017 03:00:52 -0800 (PST) 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 List-Id: intel-gfx@lists.freedesktop.org TW92ZSB0aGUgR3VDIGludmFsaWRhdGlvbiBvZiBpdHMgZ2d0dCBUTEIgdG8gd2hlcmUgd2UgcGVy Zm9ybSB0aGUgZ2d0dAptb2RpZmljYXRpb24gcmF0aGVyIHRoYW4gcHJvbGlmZXJhdGUgaXQgaW50 byBhbGwgdGhlIGNhbGxlcnMgb2YgdGhlCmluc2VydCAod2hpY2ggbWF5IG9yIG1heSBub3QgaW4g ZmFjdCBoYXZlIHRvIGRvIHRoZSBpbnNlcnRpb24pLgoKdjI6IEp1c3QgZG8gdGhlIGd1YyBpbnZh bGlkYXRlIHVuY29uZGl0aW9uYWxseSwgKGFmYWljdCkgaXQgaGFzIG5vIGltcGFjdAp3aXRob3V0 IHRoZSBndWMgbG9hZGVkIG9uIGdlbjgrCnYzOiBDb25kaXRpb25hbGx5IGludmFsaWRhdGUgdGhl IGd1YyAtIGp1c3QgaW4gY2FzZSB0aGF0IHJlZ2lzdGVyIGhhcwpub3QgYmVlbiB2YWxpZGF0ZWQg Zm9yIG90aGVyIG1vZGVzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXgu aW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KUmV2 aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgIHwgNzggKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaCAgICAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jIHwgIDMgLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu YyAgICB8ICA3ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAg IHwgIDYgLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMGVkOTlhZGZkMGRhLi5l ZDEyMGExZTdmOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xMTAsNiAr MTEwLDMwIEBAIGNvbnN0IHN0cnVjdCBpOTE1X2dndHRfdmlldyBpOTE1X2dndHRfdmlld19yb3Rh dGVkID0gewogCS50eXBlID0gSTkxNV9HR1RUX1ZJRVdfUk9UQVRFRCwKIH07CiAKK3N0YXRpYyB2 b2lkIGdlbjZfZ2d0dF9pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKK3sKKwkvKiBOb3RlIHRoYXQgYXMgYW4gdW5jYWNoZWQgbW1pbyB3cml0ZSwgdGhpcyBzaG91 bGQgZmx1c2ggdGhlCisJICogV0NCIG9mIHRoZSB3cml0ZXMgaW50byB0aGUgR0dUVCBiZWZvcmUg aXQgdHJpZ2dlcnMgdGhlIGludmFsaWRhdGUuCisJICovCisJSTkxNV9XUklURShHRlhfRkxTSF9D TlRMX0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOworfQorCitzdGF0aWMgdm9pZCBndWNfZ2d0dF9p bnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlnZW42X2dn dHRfaW52YWxpZGF0ZShkZXZfcHJpdik7CisJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RD Ul9JTlZBTElEQVRFKTsKK30KKworc3RhdGljIHZvaWQgZ21jaF9nZ3R0X2ludmFsaWRhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCWludGVsX2d0dF9jaGlwc2V0X2Zs dXNoKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dndHRfaW52YWxpZGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKK3sKKwlpOTE1LT5nZ3R0LmludmFsaWRhdGUoaTkx NSk7Cit9CisKIGludCBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfcHBndHQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgIAlpbnQgZW5hYmxlX3BwZ3R0KQogewpAQCAt MjMwNywxNiArMjMzMSw2IEBAIHZvaWQgaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJUE9TVElOR19SRUFEKFJJTkdfRkFVTFRf UkVHKGRldl9wcml2LT5lbmdpbmVbUkNTXSkpOwogfQogCi1zdGF0aWMgdm9pZCBpOTE1X2dndHRf Zmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWlmIChJTlRFTF9J TkZPKGRldl9wcml2KS0+Z2VuIDwgNikgewotCQlpbnRlbF9ndHRfY2hpcHNldF9mbHVzaCgpOwot CX0gZWxzZSB7Ci0JCUk5MTVfV1JJVEUoR0ZYX0ZMU0hfQ05UTF9HRU42LCBHRlhfRkxTSF9DTlRM X0VOKTsKLQkJUE9TVElOR19SRUFEKEdGWF9GTFNIX0NOVExfR0VONik7Ci0JfQotfQotCiB2b2lk IGk5MTVfZ2VtX3N1c3BlbmRfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0OwpA QCAtMjMzMSw3ICsyMzQ1LDcgQEAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2d0dF9tYXBwaW5ncyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlnZ3R0LT5iYXNlLmNsZWFyX3Jh bmdlKCZnZ3R0LT5iYXNlLCBnZ3R0LT5iYXNlLnN0YXJ0LCBnZ3R0LT5iYXNlLnRvdGFsKTsKIAot CWk5MTVfZ2d0dF9mbHVzaChkZXZfcHJpdik7CisJaTkxNV9nZ3R0X2ludmFsaWRhdGUoZGV2X3By aXYpOwogfQogCiBpbnQgaTkxNV9nZW1fZ3R0X3ByZXBhcmVfcGFnZXMoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKQEAgLTIzNzAsMTUgKzIzODQsMTMgQEAgc3RhdGljIHZvaWQgZ2Vu OF9nZ3R0X2luc2VydF9wYWdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCSAg ZW51bSBpOTE1X2NhY2hlX2xldmVsIGxldmVsLAogCQkJCSAgdTMyIHVudXNlZCkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+aTkxNTsKKwlzdHJ1Y3QgaTkxNV9n Z3R0ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKIAlnZW44X3B0ZV90IF9faW9tZW0gKnB0 ZSA9Ci0JCShnZW44X3B0ZV90IF9faW9tZW0gKilkZXZfcHJpdi0+Z2d0dC5nc20gKwotCQkob2Zm c2V0ID4+IFBBR0VfU0hJRlQpOworCQkoZ2VuOF9wdGVfdCBfX2lvbWVtICopZ2d0dC0+Z3NtICsg KG9mZnNldCA+PiBQQUdFX1NISUZUKTsKIAogCWdlbjhfc2V0X3B0ZShwdGUsIGdlbjhfcHRlX2Vu Y29kZShhZGRyLCBsZXZlbCkpOwogCi0JSTkxNV9XUklURShHRlhfRkxTSF9DTlRMX0dFTjYsIEdG WF9GTFNIX0NOVExfRU4pOwotCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dFTjYpOworCWdn dHQtPmludmFsaWRhdGUodm0tPmk5MTUpOwogfQogCiBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5z ZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCkBAIC0yMzg2LDcgKzIz OTgsNiBAQCBzdGF0aWMgdm9pZCBnZW44X2dndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCiAJCQkJICAgICB1aW50NjRfdCBzdGFydCwKIAkJCQkgICAgIGVu dW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwgdTMyIHVudXNlZCkKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKIAlzdHJ1Y3Qgc2d0X2l0ZXIgc2d0X2l0ZXI7CiAJZ2Vu OF9wdGVfdCBfX2lvbWVtICpndHRfZW50cmllczsKQEAgLTI0MTUsOCArMjQyNiw3IEBAIHN0YXRp YyB2b2lkIGdlbjhfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkgKiB3YW50IHRvIGZsdXNoIHRoZSBUTEJzIG9ubHkgYWZ0ZXIgd2UncmUgY2VydGFp biBhbGwgdGhlIFBURSB1cGRhdGVzCiAJICogaGF2ZSBmaW5pc2hlZC4KIAkgKi8KLQlJOTE1X1dS SVRFKEdGWF9GTFNIX0NOVExfR0VONiwgR0ZYX0ZMU0hfQ05UTF9FTik7Ci0JUE9TVElOR19SRUFE KEdGWF9GTFNIX0NOVExfR0VONik7CisJZ2d0dC0+aW52YWxpZGF0ZSh2bS0+aTkxNSk7CiB9CiAK IHN0cnVjdCBpbnNlcnRfZW50cmllcyB7CkBAIC0yNDUxLDE1ICsyNDYxLDEzIEBAIHN0YXRpYyB2 b2lkIGdlbjZfZ2d0dF9pbnNlcnRfcGFnZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK IAkJCQkgIGVudW0gaTkxNV9jYWNoZV9sZXZlbCBsZXZlbCwKIAkJCQkgIHUzMiBmbGFncykKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+aTkxNTsKKwlzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKIAlnZW42X3B0ZV90IF9faW9t ZW0gKnB0ZSA9Ci0JCShnZW42X3B0ZV90IF9faW9tZW0gKilkZXZfcHJpdi0+Z2d0dC5nc20gKwot CQkob2Zmc2V0ID4+IFBBR0VfU0hJRlQpOworCQkoZ2VuNl9wdGVfdCBfX2lvbWVtICopZ2d0dC0+ Z3NtICsgKG9mZnNldCA+PiBQQUdFX1NISUZUKTsKIAogCWlvd3JpdGUzMih2bS0+cHRlX2VuY29k ZShhZGRyLCBsZXZlbCwgZmxhZ3MpLCBwdGUpOwogCi0JSTkxNV9XUklURShHRlhfRkxTSF9DTlRM X0dFTjYsIEdGWF9GTFNIX0NOVExfRU4pOwotCVBPU1RJTkdfUkVBRChHRlhfRkxTSF9DTlRMX0dF TjYpOworCWdndHQtPmludmFsaWRhdGUodm0tPmk5MTUpOwogfQogCiAvKgpAQCAtMjQ3Myw3ICsy NDgxLDYgQEAgc3RhdGljIHZvaWQgZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJCSAgICAgdWludDY0X3Qgc3RhcnQsCiAJCQkJICAgICBl bnVtIGk5MTVfY2FjaGVfbGV2ZWwgbGV2ZWwsIHUzMiBmbGFncykKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bS0+aTkxNTsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 ID0gaTkxNV92bV90b19nZ3R0KHZtKTsKIAlzdHJ1Y3Qgc2d0X2l0ZXIgc2d0X2l0ZXI7CiAJZ2Vu Nl9wdGVfdCBfX2lvbWVtICpndHRfZW50cmllczsKQEAgLTI1MDEsOCArMjUwOCw3IEBAIHN0YXRp YyB2b2lkIGdlbjZfZ2d0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkgKiB3YW50IHRvIGZsdXNoIHRoZSBUTEJzIG9ubHkgYWZ0ZXIgd2UncmUgY2VydGFp biBhbGwgdGhlIFBURSB1cGRhdGVzCiAJICogaGF2ZSBmaW5pc2hlZC4KIAkgKi8KLQlJOTE1X1dS SVRFKEdGWF9GTFNIX0NOVExfR0VONiwgR0ZYX0ZMU0hfQ05UTF9FTik7Ci0JUE9TVElOR19SRUFE KEdGWF9GTFNIX0NOVExfR0VONik7CisJZ2d0dC0+aW52YWxpZGF0ZSh2bS0+aTkxNSk7CiB9CiAK IHN0YXRpYyB2b2lkIG5vcF9jbGVhcl9yYW5nZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2 bSwKQEAgLTMwNjIsNiArMzA2OCw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9nbWNoX3Byb2JlKHN0cnVj dCBpOTE1X2dndHQgKmdndHQpCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlnZ3R0 LT5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzX19CS0w7CiAK KwlnZ3R0LT5pbnZhbGlkYXRlID0gZ2VuNl9nZ3R0X2ludmFsaWRhdGU7CisKIAlyZXR1cm4gZ2d0 dF9wcm9iZV9jb21tb24oZ2d0dCwgc2l6ZSk7CiB9CiAKQEAgLTMwOTksNiArMzEwNyw4IEBAIHN0 YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiAJZ2d0dC0+ YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOwogCWdndHQtPmJhc2UuY2xlYW51cCA9 IGdlbjZfZ21jaF9yZW1vdmU7CiAKKwlnZ3R0LT5pbnZhbGlkYXRlID0gZ2VuNl9nZ3R0X2ludmFs aWRhdGU7CisKIAlpZiAoSEFTX0VEUkFNKGRldl9wcml2KSkKIAkJZ2d0dC0+YmFzZS5wdGVfZW5j b2RlID0gaXJpc19wdGVfZW5jb2RlOwogCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKQpA QCAtMzE0Miw2ICszMTUyLDggQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGk5 MTVfZ2d0dCAqZ2d0dCkKIAlnZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7 CiAJZ2d0dC0+YmFzZS5jbGVhbnVwID0gaTkxNV9nbWNoX3JlbW92ZTsKIAorCWdndHQtPmludmFs aWRhdGUgPSBnbWNoX2dndHRfaW52YWxpZGF0ZTsKKwogCWlmICh1bmxpa2VseShnZ3R0LT5kb19p ZGxlX21hcHMpKQogCQlEUk1fSU5GTygiYXBwbHlpbmcgSXJvbmxha2UgcXVpcmtzIGZvciBpbnRl bF9pb21tdVxuIik7CiAKQEAgLTMyNjAsNiArMzI3MiwxNiBAQCBpbnQgaTkxNV9nZ3R0X2VuYWJs ZV9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIDA7CiB9CiAK K3ZvaWQgaTkxNV9nZ3R0X2VuYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cit7CisJaTkxNS0+Z2d0dC5pbnZhbGlkYXRlID0gZ3VjX2dndHRfaW52YWxpZGF0ZTsKK30KKwor dm9pZCBpOTE1X2dndHRfZGlzYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cit7CisJaTkxNS0+Z2d0dC5pbnZhbGlkYXRlID0gZ2VuNl9nZ3R0X2ludmFsaWRhdGU7Cit9CisK IHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZGV2X3ByaXYtPmdn dHQ7CkBAIC0zMzIzLDcgKzMzNDUsNyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBp bmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJfQogCX0KIAotCWk5MTVf Z2d0dF9mbHVzaChkZXZfcHJpdik7CisJaTkxNV9nZ3R0X2ludmFsaWRhdGUoZGV2X3ByaXYpOwog fQogCiBzdHJ1Y3QgaTkxNV92bWEgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAppbmRl eCAzZTAzMWEwNTdmNzguLjZjNDAwODhmOGNmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Z3R0LmgKQEAgLTMzNiw2ICszMzYsNyBAQCBzdHJ1Y3QgaTkxNV9nZ3R0IHsKIAogCS8qKiAiR3Jh cGhpY3MgU3RvbGVuIE1lbW9yeSIgaG9sZHMgdGhlIGdsb2JhbCBQVEVzICovCiAJdm9pZCBfX2lv bWVtICpnc207CisJdm9pZCAoKmludmFsaWRhdGUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiAKIAlib29sIGRvX2lkbGVfbWFwczsKIApAQCAtNTA0LDYgKzUwNSw4IEBAIGk5 MTVfdm1fdG9fZ2d0dChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIGludCBpOTE1X2dn dHRfcHJvYmVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpOTE1 X2dndHRfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGk5 MTVfZ2d0dF9lbmFibGVfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3Zv aWQgaTkxNV9nZ3R0X2VuYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwor dm9pZCBpOTE1X2dndHRfZGlzYWJsZV9ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp OwogaW50IGk5MTVfZ2VtX2luaXRfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwogdm9pZCBpOTE1X2dndHRfY2xlYW51cF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19z dWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK aW5kZXggNzEwZmJiOWZjNjNmLi45MTNkODczNTg5NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTU3OSw5ICs1NzksNiBAQCBzdGF0aWMgc3RydWN0 IGk5MTVfdm1hICpndWNfYWxsb2NhdGVfdm1hKHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgdTMyIHNp emUpCiAJCWdvdG8gZXJyOwogCX0KIAotCS8qIEludmFsaWRhdGUgR3VDIFRMQiB0byBsZXQgR3VD IHRha2UgdGhlIGxhdGVzdCB1cGRhdGVzIHRvIEdUVC4gKi8KLQlJOTE1X1dSSVRFKEdFTjhfR1RD UiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwotCiAJcmV0dXJuIHZtYTsKIAogZXJyOgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDVhNmFiODcyOGQ0OC4uYjg4OTE5 MTQyODdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCkBAIC0zNjcs OSArMzY3LDYgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJCXJldHVybiBQVFJfRVJSKHZtYSk7CiAJfQogCi0JLyogSW52YWxp ZGF0ZSBHdUMgVExCIHRvIGxldCBHdUMgdGFrZSB0aGUgbGF0ZXN0IHVwZGF0ZXMgdG8gR1RULiAq LwotCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Ci0KIAlpbnRl bF91bmNvcmVfZm9yY2V3YWtlX2dldChkZXZfcHJpdiwgRk9SQ0VXQUtFX0FMTCk7CiAKIAkvKiBp bml0IFdPUENNICovCkBAIC00ODcsNiArNDg0LDkgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZ3VjX2ludGVycnVwdHNfcmVsZWFzZShk ZXZfcHJpdik7CiAJZ2VuOV9yZXNldF9ndWNfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKKwkvKiBX ZSBuZWVkIHRvIG5vdGlmeSB0aGUgZ3VjIHdoZW5ldmVyIHdlIGNoYW5nZSB0aGUgR0dUVCAqLwor CWk5MTVfZ2d0dF9lbmFibGVfZ3VjKGRldl9wcml2KTsKKwogCWd1Y19mdy0+Z3VjX2Z3X2xvYWRf c3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMg Zncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKQEAgLTU0OCw2ICs1NDgsNyBAQCBpbnQg aW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlndWNf aW50ZXJydXB0c19yZWxlYXNlKGRldl9wcml2KTsKIAlpOTE1X2d1Y19zdWJtaXNzaW9uX2Rpc2Fi bGUoZGV2X3ByaXYpOwogCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZmluaShkZXZfcHJpdik7CisJaTkx NV9nZ3R0X2Rpc2FibGVfZ3VjKGRldl9wcml2KTsKIAogCS8qCiAJICogV2UndmUgZmFpbGVkIHRv IGxvYWQgdGhlIGZpcm13YXJlIDooCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCmluZGV4IGRiNzE0 ZGNmOTJhNi4uNjQxN2UwN2RjNGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtODEx LDEyICs4MTEsNiBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3BpbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCiAKIAljZS0+c3RhdGUtPm9iai0+bW0uZGlydHkgPSB0cnVl OwogCi0JLyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLwotCWlmIChpOTE1LmVuYWJsZV9ndWNfc3Vi bWlzc2lvbikgewotCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjdHgtPmk5 MTU7Ci0JCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Ci0JfQot CiAJaTkxNV9nZW1fY29udGV4dF9nZXQoY3R4KTsKIAlyZXR1cm4gMDsKIAotLSAKMi4xMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK