From: Thomas Hellstrom Subject: [PATCH -fixes] drm/vmwgfx: Protect from excessive execbuf kernel memory allocations Date: Wed, 12 Dec 2018 12:06:36 +0100 Message-ID: <20181212110636.11804-1-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-002.vmware.com (ex13-edg-ou-002.vmware.com [208.91.0.190]) by gabe.freedesktop.org (Postfix) with ESMTPS id 773FB6E637 for ; Wed, 12 Dec 2018 11:06:59 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: drawat@vmware.com Cc: Thomas Hellstrom , linux-graphics-maintainer@vmware.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org V2l0aCB0aGUgbmV3IHZhbGlkYXRpb24gY29kZSwgYSBtYWxpY2lvdXMgdXNlci1zcGFjZSBhcHAg Y291bGQKcG90ZW50aWFsbHkgc3VibWl0IGNvbW1hbmQgc3RyZWFtcyB3aXRoIGVub3VnaCBidWZm ZXItb2JqZWN0IGFuZCByZXNvdXJjZQpyZWZlcmVuY2VzIGluIHRoZW0gdG8gaGF2ZSB0aGUgcmVz dWx0aW5nIGFsbG9jYXRlZCB2YWxpZGlvbiBub2RlcyBhbmQKcmVsb2NhdGlvbnMgbWFrZSB0aGUg a2VybmVsIHJ1biBvdXQgb2YgR0ZQX0tFUk5FTCBtZW1vcnkuCgpQcm90ZWN0IGZyb20gdGhpcyBi eSBoYXZpbmcgdGhlIHZhbGlkYXRpb24gY29kZSByZXNlcnZlIFRUTSBncmFwaGljcwptZW1vcnkg d2hlbiBhbGxvY2F0aW5nLgoKU2lnbmVkLW9mZi1ieTogVGhvbWFzIEhlbGxzdHJvbSA8dGhlbGxz dHJvbUB2bXdhcmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5j ICAgICAgICB8ICA0ICsrLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggICAg ICAgIHwgIDUgKysrCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgICAg fCAgMiArKwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYyAgIHwgMzgg KysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFs aWRhdGlvbi5jIHwgMTggKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf dmFsaWRhdGlvbi5oIHwgMzcgKysrKysrKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQs IDEwMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZHJ2LmMKaW5kZXggNjFhODRiOTU4ZDY3Li5kN2EyZGZiOGVlOWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5jCkBAIC00OSw2ICs0OSw4IEBACiAKICNkZWZpbmUgVk1XR0ZYX1JF UE8gIkluIFRyZWUiCiAKKyNkZWZpbmUgVk1XR0ZYX1ZBTElEQVRJT05fTUVNX0dSQU4gKDE2KlBB R0VfU0laRSkKKwogCiAvKioKICAqIEZ1bGx5IGVuY29kZWQgZHJtIGNvbW1hbmRzLiBNaWdodCBt b3ZlIHRvIHZtd19kcm0uaApAQCAtOTE4LDcgKzkyMCw3IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZl cl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAkJ c3Bpbl91bmxvY2soJmRldl9wcml2LT5jYXBfbG9jayk7CiAJfQogCi0KKwl2bXdfdmFsaWRhdGlv bl9tZW1faW5pdF90dG0oZGV2X3ByaXYsIFZNV0dGWF9WQUxJREFUSU9OX01FTV9HUkFOKTsKIAly ZXQgPSB2bXdfa21zX2luaXQoZGV2X3ByaXYpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJ CWdvdG8gb3V0X25vX2ttczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKaW5kZXggNTlm NjE0MjI1YmNkLi5hY2E5NzRiMTRiNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o CkBAIC02MDYsNiArNjA2LDkgQEAgc3RydWN0IHZtd19wcml2YXRlIHsKIAogCXN0cnVjdCB2bXdf Y21kYnVmX21hbiAqY21hbjsKIAlERUNMQVJFX0JJVE1BUChpcnF0aHJlYWRfcGVuZGluZywgVk1X X0lSUVRIUkVBRF9NQVgpOworCisJLyogVmFsaWRhdGlvbiBtZW1vcnkgcmVzZXJ2YXRpb24gKi8K KwlzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fbWVtIHZ2bTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHZtd19zdXJmYWNlICp2bXdfcmVzX3RvX3NyZihzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMp CkBAIC04NDYsNiArODQ5LDggQEAgZXh0ZXJuIGludCB2bXdfdHRtX2dsb2JhbF9pbml0KHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpOwogZXh0ZXJuIHZvaWQgdm13X3R0bV9nbG9iYWxfcmVs ZWFzZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiBpbnQgdm13X21tYXAo c3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAorZXh0ZXJu IHZvaWQgdm13X3ZhbGlkYXRpb25fbWVtX2luaXRfdHRtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYsCisJCQkJCXNpemVfdCBncmFuKTsKIC8qKgogICogVFRNIGJ1ZmZlciBvYmplY3QgZHJp dmVyIC0gdm13Z2Z4X3R0bV9idWZmZXIuYwogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9leGVjYnVmLmMKaW5kZXggMjYwNjUwYmI1NTYwLi5mMmQxM2E3MmMwNWQgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKQEAgLTM4MzUsNiArMzgzNSw4IEBAIGludCB2 bXdfZXhlY2J1Zl9wcm9jZXNzKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCXN0cnVjdCBz eW5jX2ZpbGUgKnN5bmNfZmlsZSA9IE5VTEw7CiAJREVDTEFSRV9WQUxfQ09OVEVYVCh2YWxfY3R4 LCAmc3dfY29udGV4dC0+cmVzX2h0LCAxKTsKIAorCXZtd192YWxpZGF0aW9uX3NldF92YWxfbWVt KCZ2YWxfY3R4LCAmZGV2X3ByaXYtPnZ2bSk7CisKIAlpZiAoZmxhZ3MgJiBEUk1fVk1XX0VYRUNC VUZfRkxBR19FWFBPUlRfRkVOQ0VfRkQpIHsKIAkJb3V0X2ZlbmNlX2ZkID0gZ2V0X3VudXNlZF9m ZF9mbGFncyhPX0NMT0VYRUMpOwogCQlpZiAob3V0X2ZlbmNlX2ZkIDwgMCkgewpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVlLmMKaW5kZXggN2IxZTVhNWNiZDJjLi4xNWZhOWQ0 OTExODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYwpAQCAtOTYs MyArOTYsNDEgQEAgdm9pZCB2bXdfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB2bXdfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJZHJtX2dsb2JhbF9pdGVtX3VucmVmKCZkZXZfcHJpdi0+Ym9fZ2xvYmFs X3JlZi5yZWYpOwogCWRybV9nbG9iYWxfaXRlbV91bnJlZigmZGV2X3ByaXYtPm1lbV9nbG9iYWxf cmVmKTsKIH0KKworLyogc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSBjYWxsYmFjayAqLworc3Rh dGljIGludCB2bXdfdm10X3Jlc2VydmUoc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSAqbSwgc2l6 ZV90IHNpemUpCit7CisJc3RhdGljIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Lmlu dGVycnVwdGlibGUgPSBmYWxzZSwKKwkJCQkJICAgICAgIC5ub193YWl0X2dwdSA9IGZhbHNlfTsK KwlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gY29udGFpbmVyX29mKG0sIHN0cnVjdCB2 bXdfcHJpdmF0ZSwgdnZtKTsKKworCURSTV9JTkZPKCJSZXNlcnZpbmcgJWxsdVxuIiwgKHVuc2ln bmVkIGxvbmcgbG9uZykgc2l6ZSk7CisJcmV0dXJuIHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19t ZW1fZ2xvYihkZXZfcHJpdiksIHNpemUsICZjdHgpOworfQorCisvKiBzdHJ1Y3Qgdm13X3ZhbGlk YXRpb25fbWVtIGNhbGxiYWNrICovCitzdGF0aWMgdm9pZCB2bXdfdm10X3VucmVzZXJ2ZShzdHJ1 Y3Qgdm13X3ZhbGlkYXRpb25fbWVtICptLCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2ID0gY29udGFpbmVyX29mKG0sIHN0cnVjdCB2bXdfcHJpdmF0ZSwgdnZt KTsKKworCURSTV9JTkZPKCJVbnJlc2VydmluZyAlbGx1XG4iLCAodW5zaWduZWQgbG9uZyBsb25n KSBzaXplKTsKKwlyZXR1cm4gdHRtX21lbV9nbG9iYWxfZnJlZSh2bXdfbWVtX2dsb2IoZGV2X3By aXYpLCBzaXplKTsKK30KKworLyoqCisgKiB2bXdfdmFsaWRhdGlvbl9tZW1faW5pdF90dG0gLSBJ bnRlcmZhY2UgdGhlIHZhbGlkYXRpb24gbWVtb3J5IHRyYWNrZXIKKyAqIHRvIHR0bS4KKyAqIEBk ZXZfcHJpdjogUG9pbnRlciB0byBzdHJ1Y3Qgdm13X3ByaXZhdGUuIFRoZSByZWFzb24gd2UgY2hv b3NlIGEgdm13IHByaXZhdGUKKyAqIHJhdGhlciB0aGFuIGEgc3RydWN0IHZtd192YWxpZGF0aW9u X21lbSBpcyB0byBtYWtlIHN1cmUgYXNzdW1wdGlvbiBpbiB0aGUKKyAqIGNhbGxiYWNrcyB0aGF0 IHN0cnVjdCB2bXdfcHJpdmF0ZSBkZXJpdmVzIGZyb20gc3RydWN0IHZtd192YWxpZGF0aW9uX21l bQorICogaG9sZHMgdHJ1ZS4KKyAqIEBncmFuOiBUaGUgcmVjb21tZW5kZWQgYWxsb2NhdGlvbiBn cmFudWxhcml0eQorICovCit2b2lkIHZtd192YWxpZGF0aW9uX21lbV9pbml0X3R0bShzdHJ1Y3Qg dm13X3ByaXZhdGUgKmRldl9wcml2LCBzaXplX3QgZ3JhbikKK3sKKwlzdHJ1Y3Qgdm13X3ZhbGlk YXRpb25fbWVtICp2dm0gPSAmZGV2X3ByaXYtPnZ2bTsKKworCXZ2bS0+cmVzZXJ2ZV9tZW0gPSB2 bXdfdm10X3Jlc2VydmU7CisJdnZtLT51bnJlc2VydmVfbWVtID0gdm13X3ZtdF91bnJlc2VydmU7 CisJdnZtLT5ncmFuID0gZ3JhbjsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3ZhbGlkYXRpb24uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Zh bGlkYXRpb24uYwppbmRleCAxODQwMjVmYTkzOGUuLjFmODNiOTBmZDI1OSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uYwpAQCAtMTA0LDExICsxMDQsMjUgQEAg dm9pZCAqdm13X3ZhbGlkYXRpb25fbWVtX2FsbG9jKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250 ZXh0ICpjdHgsCiAJCXJldHVybiBOVUxMOwogCiAJaWYgKGN0eC0+bWVtX3NpemVfbGVmdCA8IHNp emUpIHsKLQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBfX0dG UF9aRVJPKTsKKwkJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKKwkJaWYgKGN0eC0+dm0gJiYgY3R4LT52 bV9zaXplX2xlZnQgPCBQQUdFX1NJWkUpIHsKKwkJCWludCByZXQgPSBjdHgtPnZtLT5yZXNlcnZl X21lbShjdHgtPnZtLCBjdHgtPnZtLT5ncmFuKTsKKworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4g TlVMTDsKKworCQkJY3R4LT52bV9zaXplX2xlZnQgKz0gY3R4LT52bS0+Z3JhbjsKKwkJCWN0eC0+ dG90YWxfbWVtICs9IGN0eC0+dm0tPmdyYW47CisJCX0KKworCQlwYWdlID0gYWxsb2NfcGFnZShH RlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CiAJCWlmICghcGFnZSkKIAkJCXJldHVybiBOVUxMOwog CisJCWlmIChjdHgtPnZtKQorCQkJY3R4LT52bV9zaXplX2xlZnQgLT0gUEFHRV9TSVpFOworCiAJ CWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJmN0eC0+cGFnZV9saXN0KTsKIAkJY3R4LT5wYWdl X2FkZHJlc3MgPSBwYWdlX2FkZHJlc3MocGFnZSk7CiAJCWN0eC0+bWVtX3NpemVfbGVmdCA9IFBB R0VfU0laRTsKQEAgLTEzOCw2ICsxNTIsOCBAQCBzdGF0aWMgdm9pZCB2bXdfdmFsaWRhdGlvbl9t ZW1fZnJlZShzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAqY3R4KQogCX0KIAogCWN0eC0+ bWVtX3NpemVfbGVmdCA9IDA7CisJaWYgKGN0eC0+dm0gJiYgY3R4LT50b3RhbF9tZW0pCisJCWN0 eC0+dm0tPnVucmVzZXJ2ZV9tZW0oY3R4LT52bSwgY3R4LT50b3RhbF9tZW0pOwogfQogCiAvKioK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaCBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaAppbmRleCBiNTdlMzI5 MmMzODYuLjNiMzk2ZmVhNDBkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfdmFsaWRhdGlvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Zh bGlkYXRpb24uaApAQCAtMzMsNiArMzMsMjEgQEAKICNpbmNsdWRlIDxsaW51eC93d19tdXRleC5o PgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPgogCisvKioKKyAqIHN0cnVj dCB2bXdfdmFsaWRhdGlvbl9tZW0gLSBDdXN0b20gaW50ZXJmYWNlIHRvIHByb3ZpZGUgbWVtb3J5 IHJlc2VydmF0aW9ucworICogZm9yIHRoZSB2YWxpZGF0aW9uIGNvZGUuCisgKiBAcmVzZXJ2ZV9t ZW06IENhbGxiYWNrIHRvIHJlc2VydmUgbWVtb3J5CisgKiBAdW5yZXNlcnZlX21lbTogQ2FsbGJh Y2sgdG8gdW5yZXNlcnZlIG1lbW9yeQorICogQGdyYW46IFJlc2VydmF0aW9uIGdyYW51bGFyaXR5 LiBDb250YWlucyBhIGhpbnQgaG93IG11Y2ggbWVtb3J5IHNob3VsZAorICogYmUgcmVzZXJ2ZWQg aW4gZWFjaCBjYWxsIHRvIEByZXNlcnZlX21lbSgpLiBBIHNsb3cgaW1wbGVtZW50YXRpb24gbWF5 IHdhbnQKKyAqIHJlc2VydmF0aW9uIHRvIGJlIGRvbmUgaW4gbGFyZ2UgYmF0Y2hlcy4KKyAqLwor c3RydWN0IHZtd192YWxpZGF0aW9uX21lbSB7CisJaW50ICgqcmVzZXJ2ZV9tZW0pKHN0cnVjdCB2 bXdfdmFsaWRhdGlvbl9tZW0gKm0sIHNpemVfdCBzaXplKTsKKwl2b2lkICgqdW5yZXNlcnZlX21l bSkoc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSAqbSwgc2l6ZV90IHNpemUpOworCXNpemVfdCBn cmFuOworfTsKKwogLyoqCiAgKiBzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAtIFBlciBj b21tYW5kIHN1Ym1pc3Npb24gdmFsaWRhdGlvbiBjb250ZXh0CiAgKiBAaHQ6IEhhc2ggdGFibGUg dXNlZCB0byBmaW5kIHJlc291cmNlLSBvciBidWZmZXIgb2JqZWN0IGR1cGxpY2F0ZXMKQEAgLTQ3 LDYgKzYyLDEwIEBACiAgKiBidWZmZXIgb2JqZWN0cwogICogQG1lbV9zaXplX2xlZnQ6IEZyZWUg bWVtb3J5IGxlZnQgaW4gdGhlIGxhc3QgcGFnZSBpbiBAcGFnZV9saXN0CiAgKiBAcGFnZV9hZGRy ZXNzOiBLZXJuZWwgdmlydHVhbCBhZGRyZXNzIG9mIHRoZSBsYXN0IHBhZ2UgaW4gQHBhZ2VfbGlz dAorICogQHZtOiBBIHBvaW50ZXIgdG8gdGhlIG1lbW9yeSByZXNlcnZhdGlvbiBpbnRlcmZhY2Ug b3IgTlVMTCBpZiBubworICogbWVtb3J5IHJlc2VydmF0aW9uIGlzIG5lZWRlZC4KKyAqIEB2bV9z aXplX2xlZnQ6IEFtb3VudCBvZiByZXNlcnZlZCBtZW1vcnkgdGhhdCBzbyBmYXIgaGFzIG5vdCBi ZWVuIGFsbG9jYXRlZC4KKyAqIEB0b3RhbF9tZW06IEFtb3VudCBvZiByZXNlcnZlZCBtZW1vcnku CiAgKi8KIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0IHsKIAlzdHJ1Y3QgZHJtX29wZW5f aGFzaCAqaHQ7CkBAIC01OSw2ICs3OCw5IEBAIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0 IHsKIAl1bnNpZ25lZCBpbnQgbWVyZ2VfZHVwczsKIAl1bnNpZ25lZCBpbnQgbWVtX3NpemVfbGVm dDsKIAl1OCAqcGFnZV9hZGRyZXNzOworCXN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0gKnZtOwor CXNpemVfdCB2bV9zaXplX2xlZnQ7CisJc2l6ZV90IHRvdGFsX21lbTsKIH07CiAKIHN0cnVjdCB2 bXdfYnVmZmVyX29iamVjdDsKQEAgLTEwMSw2ICsxMjMsMjEgQEAgdm13X3ZhbGlkYXRpb25faGFz X2JvcyhzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAqY3R4KQogCXJldHVybiAhbGlzdF9l bXB0eSgmY3R4LT5ib19saXN0KTsKIH0KIAorLyoqCisgKiB2bXdfdmFsaWRhdGlvbl9zZXRfdmFs X21lbSAtIFJlZ2lzdGVyIGEgdmFsaWRhdGlvbiBtZW0gb2JqZWN0IGZvcgorICogdmFsaWRhdGlv biBtZW1vcnkgcmVzZXJ2YXRpb24KKyAqIEBjdHg6IFRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAq IEB2bTogUG9pbnRlciB0byBhIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0KKyAqCisgKiBNdXN0 IGJlIHNldCBiZWZvcmUgdGhlIGZpcnN0IGF0dGVtcHQgdG8gYWxsb2NhdGUgdmFsaWRhdGlvbiBt ZW1vcnkuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAordm13X3ZhbGlkYXRpb25fc2V0X3ZhbF9t ZW0oc3RydWN0IHZtd192YWxpZGF0aW9uX2NvbnRleHQgKmN0eCwKKwkJCSAgIHN0cnVjdCB2bXdf dmFsaWRhdGlvbl9tZW0gKnZtKQoreworCWN0eC0+dm0gPSB2bTsKK30KKwogLyoqCiAgKiB2bXdf dmFsaWRhdGlvbl9zZXRfaHQgLSBSZWdpc3RlciBhIGhhc2ggdGFibGUgZm9yIGR1cGxpY2F0ZSBm aW5kaW5nCiAgKiBAY3R4OiBUaGUgdmFsaWRhdGlvbiBjb250ZXh0Ci0tIAoyLjE5LjAucmMxCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK