From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH -fixes] drm/vmwgfx: Protect from excessive execbuf kernel memory allocations v2 Date: Wed, 12 Dec 2018 15:35:28 +0100 Message-ID: <20181212143528.3891-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 9F36B6E71D for ; Wed, 12 Dec 2018 14:36:00 +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 dHJvbUB2bXdhcmUuY29tPgotLS0KdjI6IFJlbW92ZWQgbGVmdG92ZXIgZGVidWcgcHJpbnRvdXRz Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgIHwgIDQgKyst CiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAgICAgICAgfCAgNSArKysKIGRy aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyAgICB8ICAyICsrCiBkcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1ZS5jICAgfCAzNiArKysrKysrKysrKysrKysr KysrKysKIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uYyB8IDE4ICsr KysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmggfCAz NyArKysrKysrKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKaW5kZXgg NjFhODRiOTU4ZDY3Li5kN2EyZGZiOGVlOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Ry di5jCkBAIC00OSw2ICs0OSw4IEBACiAKICNkZWZpbmUgVk1XR0ZYX1JFUE8gIkluIFRyZWUiCiAK KyNkZWZpbmUgVk1XR0ZYX1ZBTElEQVRJT05fTUVNX0dSQU4gKDE2KlBBR0VfU0laRSkKKwogCiAv KioKICAqIEZ1bGx5IGVuY29kZWQgZHJtIGNvbW1hbmRzLiBNaWdodCBtb3ZlIHRvIHZtd19kcm0u aApAQCAtOTE4LDcgKzkyMCw3IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hpcHNldCkKIAkJc3Bpbl91bmxvY2soJmRl dl9wcml2LT5jYXBfbG9jayk7CiAJfQogCi0KKwl2bXdfdmFsaWRhdGlvbl9tZW1faW5pdF90dG0o ZGV2X3ByaXYsIFZNV0dGWF9WQUxJREFUSU9OX01FTV9HUkFOKTsKIAlyZXQgPSB2bXdfa21zX2lu aXQoZGV2X3ByaXYpOwogCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCiAJCWdvdG8gb3V0X25vX2tt czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKaW5kZXggNTlmNjE0MjI1YmNkLi5hY2E5 NzRiMTRiNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCkBAIC02MDYsNiArNjA2 LDkgQEAgc3RydWN0IHZtd19wcml2YXRlIHsKIAogCXN0cnVjdCB2bXdfY21kYnVmX21hbiAqY21h bjsKIAlERUNMQVJFX0JJVE1BUChpcnF0aHJlYWRfcGVuZGluZywgVk1XX0lSUVRIUkVBRF9NQVgp OworCisJLyogVmFsaWRhdGlvbiBtZW1vcnkgcmVzZXJ2YXRpb24gKi8KKwlzdHJ1Y3Qgdm13X3Zh bGlkYXRpb25fbWVtIHZ2bTsKIH07CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZtd19zdXJmYWNl ICp2bXdfcmVzX3RvX3NyZihzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpCkBAIC04NDYsNiArODQ5 LDggQEAgZXh0ZXJuIGludCB2bXdfdHRtX2dsb2JhbF9pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYpOwogZXh0ZXJuIHZvaWQgdm13X3R0bV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2KTsKIGV4dGVybiBpbnQgdm13X21tYXAoc3RydWN0IGZpbGUgKmZp bHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIAorZXh0ZXJuIHZvaWQgdm13X3ZhbGlk YXRpb25fbWVtX2luaXRfdHRtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCXNp emVfdCBncmFuKTsKIC8qKgogICogVFRNIGJ1ZmZlciBvYmplY3QgZHJpdmVyIC0gdm13Z2Z4X3R0 bV9idWZmZXIuYwogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9leGVjYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMKaW5k ZXggMjYwNjUwYmI1NTYwLi5mMmQxM2E3MmMwNWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9leGVjYnVmLmMKQEAgLTM4MzUsNiArMzgzNSw4IEBAIGludCB2bXdfZXhlY2J1Zl9wcm9j ZXNzKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNf ZmlsZSA9IE5VTEw7CiAJREVDTEFSRV9WQUxfQ09OVEVYVCh2YWxfY3R4LCAmc3dfY29udGV4dC0+ cmVzX2h0LCAxKTsKIAorCXZtd192YWxpZGF0aW9uX3NldF92YWxfbWVtKCZ2YWxfY3R4LCAmZGV2 X3ByaXYtPnZ2bSk7CisKIAlpZiAoZmxhZ3MgJiBEUk1fVk1XX0VYRUNCVUZfRkxBR19FWFBPUlRf RkVOQ0VfRkQpIHsKIAkJb3V0X2ZlbmNlX2ZkID0gZ2V0X3VudXNlZF9mZF9mbGFncyhPX0NMT0VY RUMpOwogCQlpZiAob3V0X2ZlbmNlX2ZkIDwgMCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3R0bV9nbHVlLmMKaW5kZXggN2IxZTVhNWNiZDJjLi5mODgyNDcwNDY3MjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9nbHVlLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYwpAQCAtOTYsMyArOTYsMzkgQEAgdm9p ZCB2bXdfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ ZHJtX2dsb2JhbF9pdGVtX3VucmVmKCZkZXZfcHJpdi0+Ym9fZ2xvYmFsX3JlZi5yZWYpOwogCWRy bV9nbG9iYWxfaXRlbV91bnJlZigmZGV2X3ByaXYtPm1lbV9nbG9iYWxfcmVmKTsKIH0KKworLyog c3RydWN0IHZtd192YWxpZGF0aW9uX21lbSBjYWxsYmFjayAqLworc3RhdGljIGludCB2bXdfdm10 X3Jlc2VydmUoc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSAqbSwgc2l6ZV90IHNpemUpCit7CisJ c3RhdGljIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7LmludGVycnVwdGlibGUgPSBm YWxzZSwKKwkJCQkJICAgICAgIC5ub193YWl0X2dwdSA9IGZhbHNlfTsKKwlzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2ID0gY29udGFpbmVyX29mKG0sIHN0cnVjdCB2bXdfcHJpdmF0ZSwgdnZt KTsKKworCXJldHVybiB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYp LCBzaXplLCAmY3R4KTsKK30KKworLyogc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSBjYWxsYmFj ayAqLworc3RhdGljIHZvaWQgdm13X3ZtdF91bnJlc2VydmUoc3RydWN0IHZtd192YWxpZGF0aW9u X21lbSAqbSwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9 IGNvbnRhaW5lcl9vZihtLCBzdHJ1Y3Qgdm13X3ByaXZhdGUsIHZ2bSk7CisKKwlyZXR1cm4gdHRt X21lbV9nbG9iYWxfZnJlZSh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLCBzaXplKTsKK30KKworLyoq CisgKiB2bXdfdmFsaWRhdGlvbl9tZW1faW5pdF90dG0gLSBJbnRlcmZhY2UgdGhlIHZhbGlkYXRp b24gbWVtb3J5IHRyYWNrZXIKKyAqIHRvIHR0bS4KKyAqIEBkZXZfcHJpdjogUG9pbnRlciB0byBz dHJ1Y3Qgdm13X3ByaXZhdGUuIFRoZSByZWFzb24gd2UgY2hvb3NlIGEgdm13IHByaXZhdGUKKyAq IHJhdGhlciB0aGFuIGEgc3RydWN0IHZtd192YWxpZGF0aW9uX21lbSBpcyB0byBtYWtlIHN1cmUg YXNzdW1wdGlvbiBpbiB0aGUKKyAqIGNhbGxiYWNrcyB0aGF0IHN0cnVjdCB2bXdfcHJpdmF0ZSBk ZXJpdmVzIGZyb20gc3RydWN0IHZtd192YWxpZGF0aW9uX21lbQorICogaG9sZHMgdHJ1ZS4KKyAq IEBncmFuOiBUaGUgcmVjb21tZW5kZWQgYWxsb2NhdGlvbiBncmFudWxhcml0eQorICovCit2b2lk IHZtd192YWxpZGF0aW9uX21lbV9pbml0X3R0bShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LCBzaXplX3QgZ3JhbikKK3sKKwlzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fbWVtICp2dm0gPSAmZGV2 X3ByaXYtPnZ2bTsKKworCXZ2bS0+cmVzZXJ2ZV9tZW0gPSB2bXdfdm10X3Jlc2VydmU7CisJdnZt LT51bnJlc2VydmVfbWVtID0gdm13X3ZtdF91bnJlc2VydmU7CisJdnZtLT5ncmFuID0gZ3JhbjsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24u YyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uYwppbmRleCAxODQw MjVmYTkzOGUuLjFmODNiOTBmZDI1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfdmFsaWRhdGlvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3ZhbGlkYXRpb24uYwpAQCAtMTA0LDExICsxMDQsMjUgQEAgdm9pZCAqdm13X3ZhbGlkYXRpb25f bWVtX2FsbG9jKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0ICpjdHgsCiAJCXJldHVybiBO VUxMOwogCiAJaWYgKGN0eC0+bWVtX3NpemVfbGVmdCA8IHNpemUpIHsKLQkJc3RydWN0IHBhZ2Ug KnBhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKTsKKwkJc3RydWN0IHBh Z2UgKnBhZ2U7CiAKKwkJaWYgKGN0eC0+dm0gJiYgY3R4LT52bV9zaXplX2xlZnQgPCBQQUdFX1NJ WkUpIHsKKwkJCWludCByZXQgPSBjdHgtPnZtLT5yZXNlcnZlX21lbShjdHgtPnZtLCBjdHgtPnZt LT5ncmFuKTsKKworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gTlVMTDsKKworCQkJY3R4LT52bV9z aXplX2xlZnQgKz0gY3R4LT52bS0+Z3JhbjsKKwkJCWN0eC0+dG90YWxfbWVtICs9IGN0eC0+dm0t PmdyYW47CisJCX0KKworCQlwYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVS Tyk7CiAJCWlmICghcGFnZSkKIAkJCXJldHVybiBOVUxMOwogCisJCWlmIChjdHgtPnZtKQorCQkJ Y3R4LT52bV9zaXplX2xlZnQgLT0gUEFHRV9TSVpFOworCiAJCWxpc3RfYWRkX3RhaWwoJnBhZ2Ut PmxydSwgJmN0eC0+cGFnZV9saXN0KTsKIAkJY3R4LT5wYWdlX2FkZHJlc3MgPSBwYWdlX2FkZHJl c3MocGFnZSk7CiAJCWN0eC0+bWVtX3NpemVfbGVmdCA9IFBBR0VfU0laRTsKQEAgLTEzOCw2ICsx NTIsOCBAQCBzdGF0aWMgdm9pZCB2bXdfdmFsaWRhdGlvbl9tZW1fZnJlZShzdHJ1Y3Qgdm13X3Zh bGlkYXRpb25fY29udGV4dCAqY3R4KQogCX0KIAogCWN0eC0+bWVtX3NpemVfbGVmdCA9IDA7CisJ aWYgKGN0eC0+dm0gJiYgY3R4LT50b3RhbF9tZW0pCisJCWN0eC0+dm0tPnVucmVzZXJ2ZV9tZW0o Y3R4LT52bSwgY3R4LT50b3RhbF9tZW0pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3ZhbGlkYXRpb24uaAppbmRleCBiNTdlMzI5MmMzODYuLjNiMzk2ZmVhNDBkNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaApAQCAtMzMsNiAr MzMsMjEgQEAKICNpbmNsdWRlIDxsaW51eC93d19tdXRleC5oPgogI2luY2x1ZGUgPGRybS90dG0v dHRtX2V4ZWNidWZfdXRpbC5oPgogCisvKioKKyAqIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0g LSBDdXN0b20gaW50ZXJmYWNlIHRvIHByb3ZpZGUgbWVtb3J5IHJlc2VydmF0aW9ucworICogZm9y IHRoZSB2YWxpZGF0aW9uIGNvZGUuCisgKiBAcmVzZXJ2ZV9tZW06IENhbGxiYWNrIHRvIHJlc2Vy dmUgbWVtb3J5CisgKiBAdW5yZXNlcnZlX21lbTogQ2FsbGJhY2sgdG8gdW5yZXNlcnZlIG1lbW9y eQorICogQGdyYW46IFJlc2VydmF0aW9uIGdyYW51bGFyaXR5LiBDb250YWlucyBhIGhpbnQgaG93 IG11Y2ggbWVtb3J5IHNob3VsZAorICogYmUgcmVzZXJ2ZWQgaW4gZWFjaCBjYWxsIHRvIEByZXNl cnZlX21lbSgpLiBBIHNsb3cgaW1wbGVtZW50YXRpb24gbWF5IHdhbnQKKyAqIHJlc2VydmF0aW9u IHRvIGJlIGRvbmUgaW4gbGFyZ2UgYmF0Y2hlcy4KKyAqLworc3RydWN0IHZtd192YWxpZGF0aW9u X21lbSB7CisJaW50ICgqcmVzZXJ2ZV9tZW0pKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0gKm0s IHNpemVfdCBzaXplKTsKKwl2b2lkICgqdW5yZXNlcnZlX21lbSkoc3RydWN0IHZtd192YWxpZGF0 aW9uX21lbSAqbSwgc2l6ZV90IHNpemUpOworCXNpemVfdCBncmFuOworfTsKKwogLyoqCiAgKiBz dHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAtIFBlciBjb21tYW5kIHN1Ym1pc3Npb24gdmFs aWRhdGlvbiBjb250ZXh0CiAgKiBAaHQ6IEhhc2ggdGFibGUgdXNlZCB0byBmaW5kIHJlc291cmNl LSBvciBidWZmZXIgb2JqZWN0IGR1cGxpY2F0ZXMKQEAgLTQ3LDYgKzYyLDEwIEBACiAgKiBidWZm ZXIgb2JqZWN0cwogICogQG1lbV9zaXplX2xlZnQ6IEZyZWUgbWVtb3J5IGxlZnQgaW4gdGhlIGxh c3QgcGFnZSBpbiBAcGFnZV9saXN0CiAgKiBAcGFnZV9hZGRyZXNzOiBLZXJuZWwgdmlydHVhbCBh ZGRyZXNzIG9mIHRoZSBsYXN0IHBhZ2UgaW4gQHBhZ2VfbGlzdAorICogQHZtOiBBIHBvaW50ZXIg dG8gdGhlIG1lbW9yeSByZXNlcnZhdGlvbiBpbnRlcmZhY2Ugb3IgTlVMTCBpZiBubworICogbWVt b3J5IHJlc2VydmF0aW9uIGlzIG5lZWRlZC4KKyAqIEB2bV9zaXplX2xlZnQ6IEFtb3VudCBvZiBy ZXNlcnZlZCBtZW1vcnkgdGhhdCBzbyBmYXIgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZC4KKyAqIEB0 b3RhbF9tZW06IEFtb3VudCBvZiByZXNlcnZlZCBtZW1vcnkuCiAgKi8KIHN0cnVjdCB2bXdfdmFs aWRhdGlvbl9jb250ZXh0IHsKIAlzdHJ1Y3QgZHJtX29wZW5faGFzaCAqaHQ7CkBAIC01OSw2ICs3 OCw5IEBAIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0IHsKIAl1bnNpZ25lZCBpbnQgbWVy Z2VfZHVwczsKIAl1bnNpZ25lZCBpbnQgbWVtX3NpemVfbGVmdDsKIAl1OCAqcGFnZV9hZGRyZXNz OworCXN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0gKnZtOworCXNpemVfdCB2bV9zaXplX2xlZnQ7 CisJc2l6ZV90IHRvdGFsX21lbTsKIH07CiAKIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdDsKQEAg LTEwMSw2ICsxMjMsMjEgQEAgdm13X3ZhbGlkYXRpb25faGFzX2JvcyhzdHJ1Y3Qgdm13X3ZhbGlk YXRpb25fY29udGV4dCAqY3R4KQogCXJldHVybiAhbGlzdF9lbXB0eSgmY3R4LT5ib19saXN0KTsK IH0KIAorLyoqCisgKiB2bXdfdmFsaWRhdGlvbl9zZXRfdmFsX21lbSAtIFJlZ2lzdGVyIGEgdmFs aWRhdGlvbiBtZW0gb2JqZWN0IGZvcgorICogdmFsaWRhdGlvbiBtZW1vcnkgcmVzZXJ2YXRpb24K KyAqIEBjdHg6IFRoZSB2YWxpZGF0aW9uIGNvbnRleHQKKyAqIEB2bTogUG9pbnRlciB0byBhIHN0 cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0KKyAqCisgKiBNdXN0IGJlIHNldCBiZWZvcmUgdGhlIGZp cnN0IGF0dGVtcHQgdG8gYWxsb2NhdGUgdmFsaWRhdGlvbiBtZW1vcnkuCisgKi8KK3N0YXRpYyBp bmxpbmUgdm9pZAordm13X3ZhbGlkYXRpb25fc2V0X3ZhbF9tZW0oc3RydWN0IHZtd192YWxpZGF0 aW9uX2NvbnRleHQgKmN0eCwKKwkJCSAgIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9tZW0gKnZtKQor eworCWN0eC0+dm0gPSB2bTsKK30KKwogLyoqCiAgKiB2bXdfdmFsaWRhdGlvbl9zZXRfaHQgLSBS ZWdpc3RlciBhIGhhc2ggdGFibGUgZm9yIGR1cGxpY2F0ZSBmaW5kaW5nCiAgKiBAY3R4OiBUaGUg dmFsaWRhdGlvbiBjb250ZXh0Ci0tIAoyLjE5LjAucmMxCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK