From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: [PATCH v3 6/8] drm/i915: update rpm_get/put to use the rpm structure Date: Thu, 13 Jun 2019 16:21:54 -0700 Message-ID: <20190613232156.34940-7-daniele.ceraolospurio@intel.com> References: <20190613232156.34940-1-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 216AC89301 for ; Thu, 13 Jun 2019 23:22:27 +0000 (UTC) In-Reply-To: <20190613232156.34940-1-daniele.ceraolospurio@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 List-Id: intel-gfx@lists.freedesktop.org VGhlIGZ1bmN0aW9ucyB3aGVyZSBpbnRlcm5hbGx5IGFscmVhZHkgb25seSB1c2luZyB0aGUgc3Ry dWN0dXJlLCBzbyB3ZQpuZWVkIHRvIGp1c3QgZmxpcCB0aGUgaW50ZXJmYWNlLgoKdjI6IHJlYmFz ZQoKU2lnbmVkLW9mZi1ieTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xv c3B1cmlvQGludGVsLmNvbT4KQ2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KUmV2 aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMgICAgICB8IDExICsrKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMgICAgfCAgNCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgIHwgIDQgKy0KIC4uLi9n cHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMgICB8ICA0ICstCiAuLi4vaTkx NS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jICAgfCAgNCArLQogLi4uL2RybS9p OTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIHwgMTIgKystLS0KIC4uLi9kcm0v aTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyAgICB8ICA0ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAgOCArLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jICAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgIHwgMTIgKystLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jICAgICAgICB8IDM2ICsrKysrKystLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jICAgICAgfCAgNCArLQogLi4uL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jICAgIHwgMTIgKystLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jICAgICAgICB8IDE1ICsrKy0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oICAgICAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZF9wb2xpY3kuYyAgICAgICB8ICA0ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgNDkgKysrKysrKysrKy0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgICAgIHwgMTkg KysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMgICAgIHwg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICAgICB8ICA2 ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgICAgIHwgIDYg Ky0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BtdS5jICAgICAgICAgICAgICAgfCAxMiAr Ky0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zeXNmcy5jICAgICAgICAgICAgIHwgMTIg KystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICB8IDEy ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgICAgfCAz NyArKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAg ICAgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMgICAg ICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jICAg ICAgIHwgNDMgKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVu dGltZV9wbS5oICAgICAgIHwgMjYgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfd2FrZXJlZi5jICAgICAgICAgIHwgIDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV9hY3RpdmUuYyAgfCAgOCArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2dlbS5jICAgICB8ICA0ICstCiAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X2dlbV9ldmljdC5jICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtX2d0dC5jIHwgIDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV9yZXF1ZXN0LmMgfCAyMCArKysrLS0tLQogLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMv aTkxNV90aW1lbGluZS5jICAgIHwgMTYgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV92bWEuYyAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL2ludGVsX2d1Yy5jICAgIHwgIDggKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaW50ZWxfdW5jb3JlLmMgfCAgNCArLQogNDEgZmlsZXMgY2hhbmdlZCwgMjM2IGluc2VydGlv bnMoKyksIDIzNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fbW1hbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X21tYW4uYwppbmRleCA3YjU4NDFiNzM1ODguLjM5MTYyMWVlM2NiYiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fbW1hbi5jCkBAIC0yMjIsNiArMjIyLDcgQEAgdm1fZmF1bHRf dCBpOTE1X2dlbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqID0gdG9faW50ZWxfYm8oYXJlYS0+dm1fcHJpdmF0ZV9kYXRhKTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAq cnBtID0gJmk5MTUtPnJ1bnRpbWVfcG07CiAJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9ICZpOTE1 LT5nZ3R0OwogCWJvb2wgd3JpdGUgPSBhcmVhLT52bV9mbGFncyAmIFZNX1dSSVRFOwogCWludGVs X3dha2VyZWZfdCB3YWtlcmVmOwpAQCAtMjQzLDcgKzI0NCw3IEBAIHZtX2ZhdWx0X3QgaTkxNV9n ZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJaWYgKHJldCkKIAkJZ290byBlcnI7CiAK LQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KHJwbSk7CiAKIAlzcmN1ID0gaTkxNV9yZXNldF90cnlsb2NrKGk5MTUp OwogCWlmIChzcmN1IDwgMCkgewpAQCAtMzA4LDcgKzMwOSw3IEBAIHZtX2ZhdWx0X3QgaTkxNV9n ZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJCWdvdG8gZXJyX2ZlbmNlOwogCiAJLyog TWFyayBhcyBiZWluZyBtbWFwcGVkIGludG8gdXNlcnNwYWNlIGZvciBsYXRlciByZXZvY2F0aW9u ICovCi0JYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKCZpOTE1LT5ydW50aW1lX3BtKTsKKwlhc3Nl cnRfcnBtX3dha2Vsb2NrX2hlbGQocnBtKTsKIAlpZiAoIWk5MTVfdm1hX3NldF91c2VyZmF1bHQo dm1hKSAmJiAhb2JqLT51c2VyZmF1bHRfY291bnQrKykKIAkJbGlzdF9hZGQoJm9iai0+dXNlcmZh dWx0X2xpbmssICZpOTE1LT5nZ3R0LnVzZXJmYXVsdF9saXN0KTsKIAlpZiAoQ09ORklHX0RSTV9J OTE1X1VTRVJGQVVMVF9BVVRPU1VTUEVORCkKQEAgLTMyNyw3ICszMjgsNyBAQCB2bV9mYXVsdF90 IGk5MTVfZ2VtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogZXJyX3Jlc2V0OgogCWk5MTVf cmVzZXRfdW5sb2NrKGk5MTUsIHNyY3UpOwogZXJyX3JwbToKLQlpbnRlbF9ydW50aW1lX3BtX3B1 dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0sIHdha2VyZWYpOwog CWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwogZXJyOgogCXN3aXRjaCAocmV0KSB7 CkBAIC00MTAsNyArNDExLDcgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tbWFwKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJICogd2FrZXJlZi4KIAkgKi8KIAlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50 ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0 KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWlmICghb2JqLT51c2VyZmF1bHRfY291bnQpCiAJCWdv dG8gb3V0OwpAQCAtNDI3LDcgKzQyOCw3IEBAIHZvaWQgaTkxNV9nZW1fb2JqZWN0X3JlbGVhc2Vf bW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCXdtYigpOwogCiBvdXQ6Ci0J aW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogfQogCiBzdGF0aWMgaW50IGNyZWF0ZV9t bWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCmluZGV4IDM2Yjc2YzZhMGE5ZC4uYTQwNDdh NTg1YzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2Jq ZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCkBA IC0xODEsNyArMTgxLDcgQEAgc3RhdGljIHZvaWQgX19pOTE1X2dlbV9mcmVlX29iamVjdHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwgKm9uOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCi0Jd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgm aTkxNS0+cnVudGltZV9wbSk7CiAJbGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIG9uLCBm cmVlZCwgZnJlZWQpIHsKIAkJc3RydWN0IGk5MTVfdm1hICp2bWEsICp2bjsKIApAQCAtMjQzLDcg KzI0Myw3IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9nZW1fZnJlZV9vYmplY3RzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAogCiAJCWNvbmRfcmVzY2hlZCgpOwogCX0KLQlpbnRlbF9ydW50 aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+ cnVudGltZV9wbSwgd2FrZXJlZik7CiB9CiAKIHZvaWQgaTkxNV9nZW1fZmx1c2hfZnJlZV9vYmpl Y3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fc2hyaW5rZXIuYwppbmRleCBlMTVmMzdiZWYzNmEuLjEzZmYwNTU2NmEw YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2Vy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKQEAg LTE4Miw3ICsxODIsNyBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJICogd2Ugd2lsbCBmb3JjZSB0aGUgd2FrZSBkdXJpbmcgb29tLW5vdGlmaWVyLgog CSAqLwogCWlmIChzaHJpbmsgJiBJOTE1X1NIUklOS19CT1VORCkgewotCQl3YWtlcmVmID0gaW50 ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGk5MTUpOworCQl3YWtlcmVmID0gaW50ZWxfcnVu dGltZV9wbV9nZXRfaWZfaW5fdXNlKCZpOTE1LT5ydW50aW1lX3BtKTsKIAkJaWYgKCF3YWtlcmVm KQogCQkJc2hyaW5rICY9IH5JOTE1X1NIUklOS19CT1VORDsKIAl9CkBAIC0yNjcsNyArMjY3LDcg QEAgaTkxNV9nZW1fc2hyaW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCX0KIAog CWlmIChzaHJpbmsgJiBJOTE1X1NIUklOS19CT1VORCkKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQo aTkxNSwgd2FrZXJlZik7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3Bt LCB3YWtlcmVmKTsKIAogCWk5MTVfcmV0aXJlX3JlcXVlc3RzKGk5MTUpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jCmluZGV4IDczZTY2N2Iz MWNjNC4uYjc0NzI5YjZmMzUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v c2VsZnRlc3RzL2h1Z2VfcGFnZXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2Vs ZnRlc3RzL2h1Z2VfcGFnZXMuYwpAQCAtMTc1NCw3ICsxNzU0LDcgQEAgaW50IGk5MTVfZ2VtX2h1 Z2VfcGFnZV9saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJCXJldHVybiBQVFJfRVJSKGZpbGUpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5z dHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7 CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7 CiAKIAljdHggPSBsaXZlX2NvbnRleHQoZGV2X3ByaXYsIGZpbGUpOwogCWlmIChJU19FUlIoY3R4 KSkgewpAQCAtMTc2OCw3ICsxNzY4LDcgQEAgaW50IGk5MTVfZ2VtX2h1Z2VfcGFnZV9saXZlX3Nl bGZ0ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZXJyID0gaTkxNV9z dWJ0ZXN0cyh0ZXN0cywgY3R4KTsKIAogb3V0X3VubG9jazoKLQlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5y dW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0 X211dGV4KTsKIAogCW1vY2tfZmlsZV9mcmVlKGRldl9wcml2LCBmaWxlKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5j CmluZGV4IGM3MmUxN2RhMDkwYy4uOGYyMmQzZjE4NDIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvaGVyZW5jeS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29oZXJlbmN5LmMKQEAgLTI5 Myw3ICsyOTMsNyBAQCBzdGF0aWMgaW50IGlndF9nZW1fY29oZXJlbmN5KHZvaWQgKmFyZykKIAl2 YWx1ZXMgPSBvZmZzZXRzICsgbmNhY2hlbGluZXM7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJ d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAlmb3Ig KG92ZXIgPSBpZ3RfY29oZXJlbmN5X21vZGU7IG92ZXItPm5hbWU7IG92ZXIrKykgewogCQlpZiAo IW92ZXItPnNldCkKIAkJCWNvbnRpbnVlOwpAQCAtMzcxLDcgKzM3MSw3IEBAIHN0YXRpYyBpbnQg aWd0X2dlbV9jb2hlcmVuY3kodm9pZCAqYXJnKQogCQl9CiAJfQogdW5sb2NrOgotCWludGVsX3J1 bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1 LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwogCWtmcmVlKG9mZnNldHMpOwogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDc0 YjBlNTg3MWM0Yi4uODRiODNiMjE1YjNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwpAQCAtNTMsNyArNTMsNyBAQCBz dGF0aWMgaW50IGxpdmVfbm9wX3N3aXRjaCh2b2lkICphcmcpCiAJCXJldHVybiBQVFJfRVJSKGZp bGUpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3Bt X2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAljdHggPSBrY2FsbG9jKG5jdHgsIHNpemVvZigq Y3R4KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjdHgpIHsKQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0 aWMgaW50IGxpdmVfbm9wX3N3aXRjaCh2b2lkICphcmcpCiAJfQogCiBvdXRfdW5sb2NrOgotCWlu dGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0 KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5z dHJ1Y3RfbXV0ZXgpOwogCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwogCXJldHVybiBlcnI7 CkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBfX2lndF9jdHhfc3NldShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCXdha2VyZWYgPSBpbnRlbF9y dW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5 MTUtPnJ1bnRpbWVfcG0pOwogCiAJY2UgPSBpOTE1X2dlbV9jb250ZXh0X2dldF9lbmdpbmUoY3R4 LCBSQ1MwKTsKIAlpZiAoSVNfRVJSKGNlKSkgewpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgX19pZ3Rf Y3R4X3NzZXUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiBvdXRfY29udGV4dDoKIAlp bnRlbF9jb250ZXh0X3B1dChjZSk7CiBvdXRfcnBtOgotCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5 MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3 YWtlcmVmKTsKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAKIG91dF91bmxvY2s6CkBAIC0x NTQ3LDcgKzE1NDcsNyBAQCBzdGF0aWMgaW50IGlndF92bV9pc29sYXRpb24odm9pZCAqYXJnKQog CUdFTV9CVUdfT04oY3R4X2ItPnZtLT50b3RhbCAhPSB2bV90b3RhbCk7CiAJdm1fdG90YWwgLT0g STkxNV9HVFRfUEFHRV9TSVpFOwogCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5 MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7 CiAKIAljb3VudCA9IDA7CiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKQEAg LTE1OTIsNyArMTU5Miw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtX2lzb2xhdGlvbih2b2lkICphcmcp CiAJCWNvdW50LCBSVU5USU1FX0lORk8oaTkxNSktPm51bV9lbmdpbmVzKTsKIAogb3V0X3JwbToK LQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3Bt X3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiBvdXRfdW5sb2NrOgogCWlmIChpZ3Rf bGl2ZV90ZXN0X2VuZCgmdCkpCiAJCWVyciA9IC1FSU87CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCmluZGV4IGI5MjgwOTQxODcyOS4u NWM4MWY0YjQ4MTNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRl c3RzL2k5MTVfZ2VtX21tYW4uYwpAQCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyBpbnQgaWd0X3Bh cnRpYWxfdGlsaW5nKHZvaWQgKmFyZykKIAl9CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3Ry dWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWlmICgx KSB7CiAJCUlHVF9USU1FT1VUKGVuZCk7CkBAIC0zMTYsNyArMzE2LDcgQEAgbmV4dF90aWxpbmc6 IDsKIAl9CiAKIG91dF91bmxvY2s6Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJl Zik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwog CW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJaTkxNV9nZW1fb2JqZWN0 X3VucGluX3BhZ2VzKG9iaik7CiBvdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV9jcy5jCmluZGV4IGMwZDk4NmRiNWE3NS4uMzkyMjBlMTZlYTI2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwpAQCAtMTEwMyw3ICsxMTAzLDcgQEAgc3Rh dGljIGJvb2wgcmluZ19pc19pZGxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJ cmV0dXJuIHRydWU7CiAKIAkvKiBJZiB0aGUgd2hvbGUgZGV2aWNlIGlzIGFzbGVlcCwgdGhlIGVu Z2luZSBtdXN0IGJlIGlkbGUgKi8KLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZf aW5fdXNlKGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5f dXNlKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAJaWYgKCF3YWtlcmVmKQogCQlyZXR1cm4gdHJ1 ZTsKIApAQCAtMTExNyw3ICsxMTE3LDcgQEAgc3RhdGljIGJvb2wgcmluZ19pc19pZGxlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkgICAgIShFTkdJTkVfUkVBRChlbmdpbmUsIFJJ TkdfTUlfTU9ERSkgJiBNT0RFX0lETEUpKQogCQlpZGxlID0gZmFsc2U7CiAKLQlpbnRlbF9ydW50 aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRl dl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiBpZGxlOwogfQpAQCAtMTUz MSwxMCArMTUzMSwxMCBAQCB2b2lkIGludGVsX2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwKIAogCXJjdV9yZWFkX3VubG9jaygpOwogCi0Jd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShlbmdpbmUtPmk5MTUpOworCXdha2VyZWYgPSBpbnRl bF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoJmVuZ2luZS0+aTkxNS0+cnVudGltZV9wbSk7CiAJ aWYgKHdha2VyZWYpIHsKIAkJaW50ZWxfZW5naW5lX3ByaW50X3JlZ2lzdGVycyhlbmdpbmUsIG0p OwotCQlpbnRlbF9ydW50aW1lX3BtX3B1dChlbmdpbmUtPmk5MTUsIHdha2VyZWYpOworCQlpbnRl bF9ydW50aW1lX3BtX3B1dCgmZW5naW5lLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAl9 IGVsc2UgewogCQlkcm1fcHJpbnRmKG0sICJcdERldmljZSBpcyBhc2xlZXA7IHNraXBwaW5nIHJl Z2lzdGVyIGR1bXBcbiIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2hhbmdjaGVjay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfaGFuZ2No ZWNrLmMKaW5kZXggMTc0YmIwYTYwMzA5Li42YmNmYTY0NTZjNDUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX2hhbmdjaGVjay5jCkBAIC0yNzMsNyArMjczLDcgQEAgc3RhdGljIHZv aWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYg KGk5MTVfdGVybWluYWxseV93ZWRnZWQoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQl3YWtlcmVm ID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGRldl9wcml2KTsKKwl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAJ aWYgKCF3YWtlcmVmKQogCQlyZXR1cm47CiAKQEAgLTMyNCw3ICszMjQsNyBAQCBzdGF0aWMgdm9p ZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpZiAo aHVuZykKIAkJaGFuZ2NoZWNrX2RlY2xhcmVfaGFuZyhkZXZfcHJpdiwgaHVuZywgc3R1Y2spOwog Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHdha2VyZWYpOworCWludGVsX3J1bnRp bWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAKIAkvKiBSZXNldCB0 aW1lciBpbiBjYXNlIEdQVSBoYW5ncyB3aXRob3V0IGFub3RoZXIgcmVxdWVzdCBiZWluZyBhZGRl ZCAqLwogCWk5MTVfcXVldWVfaGFuZ2NoZWNrKGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9yZXNldC5jCmluZGV4IDhiYTdhZjhiN2NlZC4uODJmMTM4ODUwOTc0IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3Jlc2V0LmMKQEAgLTEzMTMsNyArMTMxMyw3IEBAIHZvaWQg aTkxNV9oYW5kbGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICogaXNu J3QgdGhlIGNhc2UgYXQgbGVhc3Qgd2hlbiB3ZSBnZXQgaGVyZSBieSBkb2luZyBhCiAJICogc2lt dWxhdGVkIHJlc2V0IHZpYSBkZWJ1Z2ZzLCBzbyBnZXQgYW4gUlBNIHJlZmVyZW5jZS4KIAkgKi8K LQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWVuZ2luZV9tYXNrICY9IElO VEVMX0lORk8oaTkxNSktPmVuZ2luZV9tYXNrOwogCkBAIC0xMzc2LDcgKzEzNzYsNyBAQCB2b2lk IGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCXdha2Vf dXBfYWxsKCZlcnJvci0+cmVzZXRfcXVldWUpOwogCiBvdXQ6Ci0JaW50ZWxfcnVudGltZV9wbV9w dXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVf cG0sIHdha2VyZWYpOwogfQogCiBpbnQgaTkxNV9yZXNldF90cnlsb2NrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2Vs ZnRlc3RfaGFuZ2NoZWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5n Y2hlY2suYwppbmRleCA0NTM3OWE2M2UwMTMuLmIwYjI5OThlNTZiOCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKQEAgLTM5NCw3ICszOTQsNyBAQCBz dGF0aWMgaW50IGlndF9yZXNldF9ub3Aodm9pZCAqYXJnKQogCX0KIAogCWk5MTVfZ2VtX2NvbnRl eHRfY2xlYXJfYmFubmFibGUoY3R4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQo aTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3Bt KTsKIAlyZXNldF9jb3VudCA9IGk5MTVfcmVzZXRfY291bnQoJmk5MTUtPmdwdV9lcnJvcik7CiAJ Y291bnQgPSAwOwogCWRvIHsKQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNl dF9ub3Aodm9pZCAqYXJnKQogCWVyciA9IGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9M T0NLRUQpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKLQlpbnRl bF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgm aTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAKIG91dDoKIAltb2NrX2ZpbGVfZnJlZShpOTE1 LCBmaWxlKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0aWMgaW50IGlndF9yZXNldF9ub3BfZW5n aW5lKHZvaWQgKmFyZykKIAl9CiAKIAlpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2Jhbm5hYmxlKGN0 eCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAJZm9yX2VhY2hfZW5naW5l KGVuZ2luZSwgaTkxNSwgaWQpIHsKIAkJdW5zaWduZWQgaW50IHJlc2V0X2NvdW50LCByZXNldF9l bmdpbmVfY291bnQ7CiAJCXVuc2lnbmVkIGludCBjb3VudDsKQEAgLTU0OSw3ICs1NDksNyBAQCBz dGF0aWMgaW50IGlndF9yZXNldF9ub3BfZW5naW5lKHZvaWQgKmFyZykKIAllcnIgPSBpZ3RfZmx1 c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7 CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogb3V0 OgogCW1vY2tfZmlsZV9mcmVlKGk5MTUsIGZpbGUpOwogCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChp OTE1KSkKQEAgLTE3NDksNyArMTc0OSw3IEBAIGludCBpbnRlbF9oYW5nY2hlY2tfbGl2ZV9zZWxm dGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaWYgKGk5MTVfdGVybWluYWxs eV93ZWRnZWQoaTkxNSkpCiAJCXJldHVybiAtRUlPOyAvKiB3ZSdyZSBsb25nIHBhc3QgaG9wZSBv ZiBhIHN1Y2Nlc3NmdWwgcmVzZXQgKi8KIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dl dChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVf cG0pOwogCXNhdmVkX2hhbmdjaGVjayA9IGZldGNoX2FuZF96ZXJvKCZpOTE1X21vZHBhcmFtcy5l bmFibGVfaGFuZ2NoZWNrKTsKIAlkcmFpbl9kZWxheWVkX3dvcmsoJmk5MTUtPmdwdV9lcnJvci5o YW5nY2hlY2tfd29yayk7IC8qIGZsdXNoIHBhcmFtICovCiAKQEAgLTE3NjAsNyArMTc2MCw3IEBA IGludCBpbnRlbF9oYW5nY2hlY2tfbGl2ZV9zZWxmdGVzdHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCWk5 MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2sgPSBzYXZlZF9oYW5nY2hlY2s7Ci0JaW50ZWxf cnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5 MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMKaW5kZXggZjBjYTJhMDlkYWJkLi5kODRkMzFlM2RhMTkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCkBAIC0zMyw3ICszMyw3IEBA IHN0YXRpYyBpbnQgbGl2ZV9zYW5pdHljaGVjayh2b2lkICphcmcpCiAJCXJldHVybiAwOwogCiAJ bXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkx NS0+cnVudGltZV9wbSk7CiAKIAlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3BpbiwgaTkxNSkpCiAJ CWdvdG8gZXJyX3VubG9jazsKQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGludCBsaXZlX3Nhbml0 eWNoZWNrKHZvaWQgKmFyZykKIAlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluKTsKIGVycl91bmxvY2s6 CiAJaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Ci0JaW50ZWxfcnVudGlt ZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1 bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRl eCk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIGludCBsaXZlX2J1 c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogCSAqLwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJt LnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOwor CXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAlj dHhfaGkgPSBrZXJuZWxfY29udGV4dChpOTE1KTsKIAlpZiAoIWN0eF9oaSkKQEAgLTI1NSw3ICsy NTUsNyBAQCBzdGF0aWMgaW50IGxpdmVfYnVzeXdhaXRfcHJlZW1wdCh2b2lkICphcmcpCiBlcnJf dW5sb2NrOgogCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKIAkJ ZXJyID0gLUVJTzsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRl bF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5s b2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjc3LDcg KzI3Nyw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKIAkJcHJfZXJyKCJM b2dpY2FsIHByZWVtcHRpb24gc3VwcG9ydGVkLCBidXQgbm90IGV4cG9zZWRcbiIpOwogCiAJbXV0 ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRp bWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+ cnVudGltZV9wbSk7CiAKIAlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9oaSwgaTkxNSkpCiAJ CWdvdG8gZXJyX3VubG9jazsKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW50IGxpdmVfcHJl ZW1wdCh2b2lkICphcmcpCiAJaWd0X3NwaW5uZXJfZmluaSgmc3Bpbl9oaSk7CiBlcnJfdW5sb2Nr OgogCWlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwotCWludGVsX3J1bnRp bWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5y dW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwogCXJldHVybiBlcnI7CiB9CkBAIC0zODIsNyArMzgyLDcgQEAgc3RhdGljIGludCBsaXZl X2xhdGVfcHJlZW1wdCh2b2lkICphcmcpCiAJCXJldHVybiAwOwogCiAJbXV0ZXhfbG9jaygmaTkx NS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5 MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7 CiAKIAlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9oaSwgaTkxNSkpCiAJCWdvdG8gZXJyX3Vu bG9jazsKQEAgLTQ2Niw3ICs0NjYsNyBAQCBzdGF0aWMgaW50IGxpdmVfbGF0ZV9wcmVlbXB0KHZv aWQgKmFyZykKIAlpZ3Rfc3Bpbm5lcl9maW5pKCZzcGluX2hpKTsKIGVycl91bmxvY2s6CiAJaWd0 X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Ci0JaW50ZWxfcnVudGltZV9wbV9w dXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVf cG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJ cmV0dXJuIGVycjsKIApAQCAtNTMyLDcgKzUzMiw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVz c19zZWxmX3ByZWVtcHQodm9pZCAqYXJnKQogCQlyZXR1cm4gMDsgLyogcHJlc3VtZSBibGFjayBi bG94ICovCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVm ID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVf cG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWlmIChwcmVlbXB0X2NsaWVudF9pbml0KGk5 MTUsICZhKSkKIAkJZ290byBlcnJfdW5sb2NrOwpAQCAtNjA2LDcgKzYwNiw3IEBAIHN0YXRpYyBp bnQgbGl2ZV9zdXBwcmVzc19zZWxmX3ByZWVtcHQodm9pZCAqYXJnKQogZXJyX3VubG9jazoKIAlp ZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpCiAJCWVyciA9IC1FSU87 Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9w bV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIApAQCAtNjgzLDcgKzY4Myw3IEBAIHN0 YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQodm9pZCAqYXJnKQogCQlyZXR1cm4g MDsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9n ZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJaWYgKHByZWVtcHRfY2xpZW50X2luaXQoaTkxNSwg JmNsaWVudFswXSkpIC8qIEVMU1BbMF0gKi8KIAkJZ290byBlcnJfdW5sb2NrOwpAQCAtNzc2LDcg Kzc3Niw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9zdXBwcmVzc193YWl0X3ByZWVtcHQodm9pZCAqYXJn KQogZXJyX3VubG9jazoKIAlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tF RCkpCiAJCWVyciA9IC1FSU87Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7 CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11 dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIApAQCAt ODA3LDcgKzgwNyw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9jaGFpbl9wcmVlbXB0KHZvaWQgKmFyZykK IAkJcmV0dXJuIDA7CiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3 YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWlmIChwcmVlbXB0X2NsaWVudF9p bml0KGk5MTUsICZoaSkpCiAJCWdvdG8gZXJyX3VubG9jazsKQEAgLTkyNCw3ICs5MjQsNyBAQCBz dGF0aWMgaW50IGxpdmVfY2hhaW5fcHJlZW1wdCh2b2lkICphcmcpCiBlcnJfdW5sb2NrOgogCWlm IChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkKIAkJZXJyID0gLUVJTzsK LQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3Bt X3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5k cm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwogCkBAIC05NTMsNyArOTUzLDcgQEAgc3Rh dGljIGludCBsaXZlX3ByZWVtcHRfaGFuZyh2b2lkICphcmcpCiAJCXJldHVybiAwOwogCiAJbXV0 ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRp bWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+ cnVudGltZV9wbSk7CiAKIAlpZiAoaWd0X3NwaW5uZXJfaW5pdCgmc3Bpbl9oaSwgaTkxNSkpCiAJ CWdvdG8gZXJyX3VubG9jazsKQEAgLTEwNTAsNyArMTA1MCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9w cmVlbXB0X2hhbmcodm9pZCAqYXJnKQogCWlndF9zcGlubmVyX2ZpbmkoJnNwaW5faGkpOwogZXJy X3VubG9jazoKIAlpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKLQlpbnRl bF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgm aTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3Ry dWN0X211dGV4KTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgc3RhdGlj IGludCBsaXZlX3ByZWVtcHRfc21va2Uodm9pZCAqYXJnKQogCQlyZXR1cm4gLUVOT01FTTsKIAog CW11dGV4X2xvY2soJnNtb2tlLmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldChzbW9rZS5pOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGlt ZV9wbV9nZXQoJnNtb2tlLmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJc21va2UuYmF0Y2ggPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlX2ludGVybmFsKHNtb2tlLmk5MTUsIFBBR0VfU0laRSk7CiAJaWYg KElTX0VSUihzbW9rZS5iYXRjaCkpIHsKQEAgLTEzMDksNyArMTMwOSw3IEBAIHN0YXRpYyBpbnQg bGl2ZV9wcmVlbXB0X3Ntb2tlKHZvaWQgKmFyZykKIGVycl9iYXRjaDoKIAlpOTE1X2dlbV9vYmpl Y3RfcHV0KHNtb2tlLmJhdGNoKTsKIGVycl91bmxvY2s6Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQo c21va2UuaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJnNtb2tlLmk5MTUt PnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygmc21va2UuaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7CiAJa2ZyZWUoc21va2UuY29udGV4dHMpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYwppbmRleCA2MDc0NzM0MzllYjAuLjkxZjAzNDk4ODJmYyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCkBAIC00MiwxNCArNDIs MTQgQEAgc3RhdGljIGludCBpZ3Rfd2VkZ2VkX3Jlc2V0KHZvaWQgKmFyZykKIAkvKiBDaGVjayB0 aGF0IHdlIGNhbiByZWNvdmVyIGEgd2VkZ2VkIGRldmljZSB3aXRoIGEgR1BVIHJlc2V0ICovCiAK IAlpZ3RfZ2xvYmFsX3Jlc2V0X2xvY2soaTkxNSk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVf cG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVu dGltZV9wbSk7CiAKIAlpOTE1X2dlbV9zZXRfd2VkZ2VkKGk5MTUpOwogCiAJR0VNX0JVR19PTigh aTkxNV9yZXNldF9mYWlsZWQoaTkxNSkpOwogCWk5MTVfcmVzZXQoaTkxNSwgQUxMX0VOR0lORVMs IE5VTEwpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxf cnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCWlndF9nbG9iYWxf cmVzZXRfdW5sb2NrKGk5MTUpOwogCiAJcmV0dXJuIGk5MTVfcmVzZXRfZmFpbGVkKGk5MTUpID8g LUVJTyA6IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93 b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3Vu ZHMuYwppbmRleCBjOGQzMzVkNjNmOWMuLmYxZDI3MzQ4YjNhNyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCkBAIC02NDIsNyArNjQyLDcgQEAg c3RhdGljIGludCBsaXZlX2RpcnR5X3doaXRlbGlzdCh2b2lkICphcmcpCiAJaWYgKElOVEVMX0dF TihpOTE1KSA8IDcpIC8qIG1pbmltdW0gcmVxdWlyZW1lbnQgZm9yIExSSSwgU1JNLCBMUk0gKi8K IAkJcmV0dXJuIDA7CiAKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJ d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCW11 dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJZmlsZSA9IG1vY2tfZmlsZShp OTE1KTsKQEAgLTY3Miw3ICs2NzIsNyBAQCBzdGF0aWMgaW50IGxpdmVfZGlydHlfd2hpdGVsaXN0 KHZvaWQgKmFyZykKIAltb2NrX2ZpbGVfZnJlZShpOTE1LCBmaWxlKTsKIAltdXRleF9sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKIG91dF9ycG06Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQo aTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0s IHdha2VyZWYpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTEwNjEsNyArMTA2MSw3IEBAIGxpdmVf Z3B1X3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKIAlwcl9pbmZvKCJWZXJpZnlpbmcgYWZ0 ZXIgR1BVIHJlc2V0Li4uXG4iKTsKIAogCWlndF9nbG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKLQl3 YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCXJlZmVyZW5jZV9saXN0c19pbml0 KGk5MTUsICZsaXN0cyk7CiAKQEAgLTEwNzYsNyArMTA3Niw3IEBAIGxpdmVfZ3B1X3Jlc2V0X3dv cmthcm91bmRzKHZvaWQgKmFyZykKIG91dDoKIAlrZXJuZWxfY29udGV4dF9jbG9zZShjdHgpOwog CXJlZmVyZW5jZV9saXN0c19maW5pKGk5MTUsICZsaXN0cyk7Ci0JaW50ZWxfcnVudGltZV9wbV9w dXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVf cG0sIHdha2VyZWYpOwogCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOwogCiAJcmV0dXJu IG9rID8gMCA6IC1FU1JDSDsKQEAgLTExMDMsNyArMTEwMyw3IEBAIGxpdmVfZW5naW5lX3Jlc2V0 X3dvcmthcm91bmRzKHZvaWQgKmFyZykKIAkJcmV0dXJuIFBUUl9FUlIoY3R4KTsKIAogCWlndF9n bG9iYWxfcmVzZXRfbG9jayhpOTE1KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQo aTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3Bt KTsKIAogCXJlZmVyZW5jZV9saXN0c19pbml0KGk5MTUsICZsaXN0cyk7CiAKQEAgLTExNjAsNyAr MTE2MCw3IEBAIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKIAogZXJy OgogCXJlZmVyZW5jZV9saXN0c19maW5pKGk5MTUsICZsaXN0cyk7Ci0JaW50ZWxfcnVudGltZV9w bV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRp bWVfcG0sIHdha2VyZWYpOwogCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKGk5MTUpOwogCWtlcm5l bF9jb250ZXh0X2Nsb3NlKGN0eCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9hcGVydHVyZV9nbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2FwZXJ0dXJlX2dt LmMKaW5kZXggNzE2NjIyMjY2ZmE2Li5jM2QxOWQ4OGRhNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9hcGVydHVyZV9nbS5jCkBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIHZvaWQgZnJlZV92 Z3B1X2ZlbmNlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogCWlmIChXQVJOX09OKCF2Z3B1X2Zl bmNlX3N6KHZncHUpKSkKIAkJcmV0dXJuOwogCi0JaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3By aXYpOworCWludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAKIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJX2NsZWFyX3ZncHVfZmVu Y2UodmdwdSk7CkBAIC0xODEsMTcgKzE4MSwxOCBAQCBzdGF0aWMgdm9pZCBmcmVlX3ZncHVfZmVu Y2Uoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAJfQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKGRl dl9wcml2KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoJmRldl9wcml2LT5ydW50 aW1lX3BtKTsKIH0KIAogc3RhdGljIGludCBhbGxvY192Z3B1X2ZlbmNlKHN0cnVjdCBpbnRlbF92 Z3B1ICp2Z3B1KQogewogCXN0cnVjdCBpbnRlbF9ndnQgKmd2dCA9IHZncHUtPmd2dDsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBndnQtPmRldl9wcml2OworCXN0cnVjdCBp bnRlbF9ydW50aW1lX3BtICpycG0gPSAmZGV2X3ByaXYtPnJ1bnRpbWVfcG07CiAJc3RydWN0IGk5 MTVfZmVuY2VfcmVnICpyZWc7CiAJaW50IGk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZf cHJpdik7CisJaW50ZWxfcnVudGltZV9wbV9nZXQocnBtKTsKIAogCS8qIFJlcXVlc3QgZmVuY2Vz IGZyb20gaG9zdCAqLwogCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsK QEAgLTIwNyw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IGFsbG9jX3ZncHVfZmVuY2Uoc3RydWN0IGlu dGVsX3ZncHUgKnZncHUpCiAJX2NsZWFyX3ZncHVfZmVuY2UodmdwdSk7CiAKIAltdXRleF91bmxv Y2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dF91 bmNoZWNrZWQoZGV2X3ByaXYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChycG0p OwogCXJldHVybiAwOwogb3V0X2ZyZWVfZmVuY2U6CiAJZ3Z0X3ZncHVfZXJyKCJGYWlsZWQgdG8g YWxsb2MgZmVuY2VzXG4iKTsKQEAgLTIyMCw3ICsyMjEsNyBAQCBzdGF0aWMgaW50IGFsbG9jX3Zn cHVfZmVuY2Uoc3RydWN0IGludGVsX3ZncHUgKnZncHUpCiAJCXZncHUtPmZlbmNlLnJlZ3NbaV0g PSBOVUxMOwogCX0KIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsK LQlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYpOworCWludGVsX3J1bnRp bWVfcG1fcHV0X3VuY2hlY2tlZChycG0pOwogCXJldHVybiAtRU5PU1BDOwogfQogCkBAIC0zMTYs OSArMzE3LDkgQEAgdm9pZCBpbnRlbF92Z3B1X3Jlc2V0X3Jlc291cmNlKHN0cnVjdCBpbnRlbF92 Z3B1ICp2Z3B1KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHZncHUt Pmd2dC0+ZGV2X3ByaXY7CiAKLQlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJaW50 ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAlfY2xlYXJfdmdwdV9m ZW5jZSh2Z3B1KTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYpOwor CWludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwog fQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaAppbmRleCBkZmQxMGNmODJiNjUuLjdhMWZlNDRk NDVhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaApAQCAtNTg0LDEyICs1ODQsMTIgQEAgZW51bSB7 CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBtbWlvX2h3X2FjY2Vzc19wcmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewotCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsK KwlpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogfQogCiBzdGF0 aWMgaW5saW5lIHZvaWQgbW1pb19od19hY2Nlc3NfcG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7Ci0JaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKGRldl9wcml2 KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoJmRldl9wcml2LT5ydW50aW1lX3Bt KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWRf cG9saWN5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWRfcG9saWN5LmMKaW5kZXgg MWM3NjNhMjdhNDEyLi4yMzY5ZDRhOWFmOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d2dC9zY2hlZF9wb2xpY3kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2No ZWRfcG9saWN5LmMKQEAgLTQ2NSw3ICs0NjUsNyBAQCB2b2lkIGludGVsX3ZncHVfc3RvcF9zY2hl ZHVsZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAkJc2NoZWR1bGVyLT5jdXJyZW50X3ZncHUg PSBOVUxMOwogCX0KIAotCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwlpbnRlbF9y dW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCXNwaW5fbG9ja19iaCgmc2No ZWR1bGVyLT5tbWlvX2NvbnRleHRfbG9jayk7CiAJZm9yIChyaW5nX2lkID0gMDsgcmluZ19pZCA8 IEk5MTVfTlVNX0VOR0lORVM7IHJpbmdfaWQrKykgewogCQlpZiAoc2NoZWR1bGVyLT5lbmdpbmVf b3duZXJbcmluZ19pZF0gPT0gdmdwdSkgewpAQCAtNDc0LDYgKzQ3NCw2IEBAIHZvaWQgaW50ZWxf dmdwdV9zdG9wX3NjaGVkdWxlKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1KQogCQl9CiAJfQogCXNw aW5fdW5sb2NrX2JoKCZzY2hlZHVsZXItPm1taW9fY29udGV4dF9sb2NrKTsKLQlpbnRlbF9ydW50 aW1lX3BtX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0X3Vu Y2hlY2tlZCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCW11dGV4X3VubG9jaygmdmdwdS0+Z3Z0 LT5zY2hlZF9sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9z Y2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwppbmRleCBl MzAxZWZiMThkNDUuLjkwMjlkZTRiNDY1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L3NjaGVkdWxlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVs ZXIuYwpAQCAtMTUyNiwxMSArMTUyNiwxMSBAQCBpbnRlbF92Z3B1X2NyZWF0ZV93b3JrbG9hZChz dHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSwgaW50IHJpbmdfaWQsCiAJICogYXMgdGhlcmUgaXMgb25s eSBvbmUgcHJlLWFsbG9jYXRlZCBidWYtb2JqIGZvciBzaGFkb3cuCiAJICovCiAJaWYgKGxpc3Rf ZW1wdHkod29ya2xvYWRfcV9oZWFkKHZncHUsIHJpbmdfaWQpKSkgewotCQlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7CisJCWludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVu dGltZV9wbSk7CiAJCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAkJ cmV0ID0gaW50ZWxfZ3Z0X3NjYW5fYW5kX3NoYWRvd193b3JrbG9hZCh3b3JrbG9hZCk7CiAJCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCQlpbnRlbF9ydW50aW1l X3BtX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYpOworCQlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNo ZWNrZWQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAl9CiAKIAlpZiAocmV0KSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDFmYzVhZjRjMTkwNS4uNWNhNDExNjVmYjc4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRp YyBpbnQgaTkxNV9pbnRlcnJ1cHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEp CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAJaW50IGksIHBpcGU7CiAKLQl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1l X3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKSB7CiAJCWludGVsX3dha2VyZWZfdCBwcmVmOwpAQCAtNjk2LDcgKzY5Niw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9pbnRlcnJ1cHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRh dGEpCiAJCX0KIAl9CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7 CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK IAogCXJldHVybiAwOwogfQpAQCAtODMzLDcgKzgzMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mcmVx dWVuY3lfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlpbnRlbF93YWtl cmVmX3Qgd2FrZXJlZjsKIAlpbnQgcmV0ID0gMDsKIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZf cHJpdi0+cnVudGltZV9wbSk7CiAKIAlpZiAoSVNfR0VOKGRldl9wcml2LCA1KSkgewogCQl1MTYg cmd2c3djdGwgPSBpbnRlbF91bmNvcmVfcmVhZDE2KHVuY29yZSwgTUVNU1dDVEwpOwpAQCAtMTA0 NSw3ICsxMDQ1LDcgQEAgc3RhdGljIGludCBpOTE1X2ZyZXF1ZW5jeV9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXNlcV9wcmludGYobSwgIk1heCBDRCBjbG9jayBmcmVx dWVuY3k6ICVkIGtIelxuIiwgZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKTsKIAlzZXFfcHJpbnRm KG0sICJNYXggcGl4ZWwgY2xvY2sgZnJlcXVlbmN5OiAlZCBrSHpcbiIsIGRldl9wcml2LT5tYXhf ZG90Y2xrX2ZyZXEpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHdha2VyZWYp OworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7 CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTM5MSw3ICsxMzkxLDcgQEAgc3RhdGljIGludCBpOTE1 X2ZiY19zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJaWYgKCFIQVNf RkJDKGRldl9wcml2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQl3YWtlcmVmID0gaW50ZWxfcnVu dGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgm ZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCW11dGV4X2xvY2soJmZiYy0+bG9jayk7CiAKIAlpZiAo aW50ZWxfZmJjX2lzX2FjdGl2ZShkZXZfcHJpdikpCkBAIC0xNDE4LDcgKzE0MTgsNyBAQCBzdGF0 aWMgaW50IGk5MTVfZmJjX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkK IAl9CiAKIAltdXRleF91bmxvY2soJmZiYy0+bG9jayk7Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVu dGltZV9wbSwgd2FrZXJlZik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE0NjgsNyArMTQ2OCw3IEBA IHN0YXRpYyBpbnQgaTkxNV9pcHNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51 c2VkKQogCWlmICghSEFTX0lQUyhkZXZfcHJpdikpCiAJCXJldHVybiAtRU5PREVWOwogCi0Jd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXNlcV9wcmludGYobSwg IkVuYWJsZWQgYnkga2VybmVsIHBhcmFtZXRlcjogJXNcbiIsCiAJCSAgIHllc25vKGk5MTVfbW9k cGFyYW1zLmVuYWJsZV9pcHMpKTsKQEAgLTE0ODIsNyArMTQ4Miw3IEBAIHN0YXRpYyBpbnQgaTkx NV9pcHNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJc2VxX3B1 dHMobSwgIkN1cnJlbnRseTogZGlzYWJsZWRcbiIpOwogCX0KIAotCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYt PnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTYxLDcgKzE1NjEs NyBAQCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqdW51c2VkKQogCiAJc2VxX3B1dHMobSwgIkdQVSBmcmVxIChNSHopXHRFZmZlY3RpdmUg Q1BVIGZyZXEgKE1IeilcdEVmZmVjdGl2ZSBSaW5nIGZyZXEgKE1IeilcbiIpOwogCi0Jd2FrZXJl ZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVu dGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAlmb3IgKGdwdV9mcmVxID0gbWlu X2dwdV9mcmVxOyBncHVfZnJlcSA8PSBtYXhfZ3B1X2ZyZXE7IGdwdV9mcmVxKyspIHsKIAkJaWFf ZnJlcSA9IGdwdV9mcmVxOwogCQlzYW5keWJyaWRnZV9wY29kZV9yZWFkKGRldl9wcml2LApAQCAt MTU3NSw3ICsxNTc1LDcgQEAgc3RhdGljIGludCBpOTE1X3JpbmdfZnJlcV90YWJsZShzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCSAgICgoaWFfZnJlcSA+PiAwKSAmIDB4ZmYp ICogMTAwLAogCQkJICAgKChpYV9mcmVxID4+IDgpICYgMHhmZikgKiAxMDApOwogCX0KLQlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiAwOwogfQpAQCAt MTc1Miw3ICsxNzUyLDcgQEAgc3RhdGljIGludCBpOTE1X3N3aXp6bGVfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0gJmRl dl9wcml2LT51bmNvcmU7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CiAKLQl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1l X3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJc2VxX3ByaW50ZihtLCAiYml0NiBz d2l6emxlIGZvciBYLXRpbGluZyA9ICVzXG4iLAogCQkgICBzd2l6emxlX3N0cmluZyhkZXZfcHJp di0+bW0uYml0XzZfc3dpenpsZV94KSk7CkBAIC0xNzkwLDcgKzE3OTAsNyBAQCBzdGF0aWMgaW50 IGk5MTVfc3dpenpsZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlpZiAo ZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJTl9TV0laWkxFRF9QQUdFUykKIAkJc2VxX3B1dHMo bSwgIkwtc2hhcGVkIG1lbW9yeSBkZXRlY3RlZFxuIik7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5y dW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjMwMyw3ICsyMzAzLDcg QEAgc3RhdGljIGludCBpOTE1X2VkcF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkKIAlpZiAoIXBzci0+c2lua19zdXBwb3J0KQogCQlyZXR1cm4gMDsKIAotCXdha2Vy ZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJd2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAJbXV0ZXhfbG9jaygmcHNyLT5s b2NrKTsKIAogCWlmIChwc3ItPmVuYWJsZWQpCkBAIC0yMzY3LDcgKzIzNjcsNyBAQCBzdGF0aWMg aW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQog CiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZwc3ItPmxvY2spOwotCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYt PnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMzg0LDExICsyMzg0 LDExIEBAIGk5MTVfZWRwX3Bzcl9kZWJ1Z19zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAogCURS TV9ERUJVR19LTVMoIlNldHRpbmcgUFNSIGRlYnVnIHRvICVsbHhcbiIsIHZhbCk7CiAKLQl3YWtl cmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9y dW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJcmV0ID0gaW50ZWxfcHNy X2RlYnVnX3NldChkZXZfcHJpdiwgdmFsKTsKIAotCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9w cml2LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVf cG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTI1MDQsNyArMjUwNCw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9kbWNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkK IAogCWNzciA9ICZkZXZfcHJpdi0+Y3NyOwogCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1f Z2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2 LT5ydW50aW1lX3BtKTsKIAogCXNlcV9wcmludGYobSwgImZ3IGxvYWRlZDogJXNcbiIsIHllc25v KGNzci0+ZG1jX3BheWxvYWQgIT0gTlVMTCkpOwogCXNlcV9wcmludGYobSwgInBhdGg6ICVzXG4i LCBjc3ItPmZ3X3BhdGgpOwpAQCAtMjUzMCw3ICsyNTMwLDcgQEAgc3RhdGljIGludCBpOTE1X2Rt Y19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXNlcV9wcmludGYobSwg InNzcCBiYXNlOiAweCUwOHhcbiIsIEk5MTVfUkVBRChDU1JfU1NQX0JBU0UpKTsKIAlzZXFfcHJp bnRmKG0sICJodHA6IDB4JTA4eFxuIiwgSTkxNV9SRUFEKENTUl9IVFBfU0tMKSk7CiAKLQlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiAwOwogfQpAQCAt MjgxNCw3ICsyODE0LDcgQEAgc3RhdGljIGludCBpOTE1X2Rpc3BsYXlfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIg Y29ubl9pdGVyOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCi0Jd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9n ZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXNlcV9wcmludGYobSwgIkNSVEMgaW5mb1xu Iik7CiAJc2VxX3ByaW50ZihtLCAiLS0tLS0tLS0tXG4iKTsKQEAgLTI4NjMsNyArMjg2Myw3IEBA IHN0YXRpYyBpbnQgaTkxNV9kaXNwbGF5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCiAJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwogCW11dGV4 X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1 dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5y dW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjg3Niw3ICsyODc2LDcg QEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq dW51c2VkKQogCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwogCXN0cnVjdCBkcm1fcHJpbnRlciBw OwogCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVm ID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXNlcV9w cmludGYobSwgIkdUIGF3YWtlPyAlcyBbJWRdXG4iLAogCQkgICB5ZXNubyhkZXZfcHJpdi0+Z3Qu YXdha2UpLApAQCAtMjg4OCw3ICsyODg4LDcgQEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZv KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpZCkKIAkJaW50ZWxfZW5naW5lX2R1bXAoZW5naW5lLCAmcCwgIiVzXG4i LCBlbmdpbmUtPm5hbWUpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHdha2Vy ZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJl Zik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQwNTEsNyArNDA1MSw4IEBAIHN0YXRpYyBpbnQgaTkx NV9mb3JjZXdha2Vfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkK IAlpZiAoSU5URUxfR0VOKGk5MTUpIDwgNikKIAkJcmV0dXJuIDA7CiAKLQlmaWxlLT5wcml2YXRl X2RhdGEgPSAodm9pZCAqKSh1aW50cHRyX3QpaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJ ZmlsZS0+cHJpdmF0ZV9kYXRhID0KKwkJKHZvaWQgKikodWludHB0cl90KWludGVsX3J1bnRpbWVf cG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3VzZXJf Z2V0KCZpOTE1LT51bmNvcmUpOwogCiAJcmV0dXJuIDA7CkBAIC00MDY1LDcgKzQwNjYsNyBAQCBz dGF0aWMgaW50IGk5MTVfZm9yY2V3YWtlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry dWN0IGZpbGUgKmZpbGUpCiAJCXJldHVybiAwOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV91 c2VyX3B1dCgmaTkxNS0+dW5jb3JlKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LAorCWlu dGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLAogCQkJICAgICAoaW50ZWxfd2Fr ZXJlZl90KSh1aW50cHRyX3QpZmlsZS0+cHJpdmF0ZV9kYXRhKTsKIAogCXJldHVybiAwOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggNGJiZGVkNGFhOTM2Li45MzNkODkyZjA2NGIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMzc0LDcgKzM3NCw3IEBAIGk5MTVfZ2VtX2d0dF9wcmVh ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAl2bWEgPSBpOTE1X2dl bV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLAogCQkJCSAgICAgICBQSU5fTUFQUEFC TEUgfAogCQkJCSAgICAgICBQSU5fTk9ORkFVTFQgfApAQCAtNDYxLDcgKzQ2MSw3IEBAIGk5MTVf Z2VtX2d0dF9wcmVhZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQlpOTE1X3Zt YV91bnBpbih2bWEpOwogCX0KIG91dF91bmxvY2s6Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkx NSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdh a2VyZWYpOwogCW11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlyZXR1 cm4gcmV0OwpAQCAtNTYxLDYgKzU2MSw3IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0 ID0gJmk5MTUtPmdndHQ7CisJc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5y dW50aW1lX3BtOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCXN0cnVjdCBkcm1fbW1fbm9k ZSBub2RlOwogCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwpAQCAtNTgxLDE0ICs1ODIsMTQgQEAg aTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmos CiAJCSAqIFRoaXMgZWFzaWx5IGR3YXJmcyBhbnkgcGVyZm9ybWFuY2UgYWR2YW50YWdlIGZyb20K IAkJICogdXNpbmcgdGhlIGNhY2hlIGJ5cGFzcyBvZiBpbmRpcmVjdCBHR1RUIGFjY2Vzcy4KIAkJ ICovCi0JCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoaTkxNSk7CisJ CXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UocnBtKTsKIAkJaWYgKCF3 YWtlcmVmKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwogCQkJZ290byBvdXRfdW5sb2NrOwogCQl9CiAJ fSBlbHNlIHsKIAkJLyogTm8gYmFja2luZyBwYWdlcywgbm8gZmFsbGJhY2ssIHdlIG11c3QgZm9y Y2UgR0dUVCBhY2Nlc3MgKi8KLQkJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUp OworCQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQocnBtKTsKIAl9CiAKIAl2bWEgPSBp OTE1X2dlbV9vYmplY3RfZ2d0dF9waW4ob2JqLCBOVUxMLCAwLCAwLApAQCAtNjg0LDcgKzY4NSw3 IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQlpOTE1X3ZtYV91bnBpbih2bWEpOwogCX0KIG91dF9ycG06Ci0JaW50ZWxfcnVudGlt ZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQocnBtLCB3YWtl cmVmKTsKIG91dF91bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKIAlyZXR1cm4gcmV0OwpAQCAtMTE3NCw3ICsxMTc1LDcgQEAgdm9pZCBpOTE1X2dlbV9zYW5p dGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCUdFTV9UUkFDRSgiXG4iKTsK IAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50 ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCWludGVsX3VuY29yZV9mb3Jj ZXdha2VfZ2V0KCZpOTE1LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCiAJLyoKQEAgLTExOTcs NyArMTE5OCw3IEBAIHZvaWQgaTkxNV9nZW1fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUpCiAJaW50ZWxfZ3Rfc2FuaXRpemUoaTkxNSwgZmFsc2UpOwogCiAJaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9wdXQoJmk5MTUtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Ci0JaW50ZWxf cnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5 MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVj dF9tdXRleCk7CiAJaTkxNV9nZW1fY29udGV4dHNfbG9zdChpOTE1KTsKQEAgLTE4MTgsNyArMTgx OSw3IEBAIGludCBpOTE1X2dlbV9mcmVlemVfbGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKIAkgKiB0aGUgb2JqZWN0cyBhcyB3ZWxsLCBzZWUgaTkxNV9nZW1fZnJlZXplKCkKIAkg Ki8KIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJaTkxNV9nZW1fc2hy aW5rKGk5MTUsIC0xVUwsIE5VTEwsIH4wKTsKIAlpOTE1X2dlbV9kcmFpbl9mcmVlZF9vYmplY3Rz KGk5MTUpOwpAQCAtMTgyOSw3ICsxODMwLDcgQEAgaW50IGk5MTVfZ2VtX2ZyZWV6ZV9sYXRlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQlpOTE1X2dlbV9vYmplY3RfdW5sb2NrKG9i aik7CiAJfQogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxf cnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIDA7 CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCmluZGV4IGZjNGNm OTA4YWZjMy4uM2IzNWJiMTE0YjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9mZW5jZV9yZWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9m ZW5jZV9yZWcuYwpAQCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRpYyBpbnQgZmVuY2VfdXBkYXRlKHN0 cnVjdCBpOTE1X2ZlbmNlX3JlZyAqZmVuY2UsCiAJICogYmUgY2xlYXJlZCBiZWZvcmUgd2UgY2Fu IHVzZSBhbnkgb3RoZXIgZmVuY2VzIHRvIGVuc3VyZSB0aGF0CiAJICogdGhlIG5ldyBmZW5jZXMg ZG8gbm90IG92ZXJsYXAgdGhlIGVsaWRlZCBjbGVhcnMsIGNvbmZ1c2luZyBIVy4KIAkgKi8KLQl3 YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGZlbmNlLT5pOTE1KTsKKwl3 YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCZmZW5jZS0+aTkxNS0+cnVu dGltZV9wbSk7CiAJaWYgKCF3YWtlcmVmKSB7CiAJCUdFTV9CVUdfT04odm1hKTsKIAkJcmV0dXJu IDA7CkBAIC0yODQsNyArMjg0LDcgQEAgc3RhdGljIGludCBmZW5jZV91cGRhdGUoc3RydWN0IGk5 MTVfZmVuY2VfcmVnICpmZW5jZSwKIAkJbGlzdF9tb3ZlX3RhaWwoJmZlbmNlLT5saW5rLCAmZmVu Y2UtPmk5MTUtPmdndHQuZmVuY2VfbGlzdCk7CiAJfQogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQo ZmVuY2UtPmk5MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZmZW5jZS0+aTkx NS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKaW5kZXggN2JlNzIzODhiMDUyLi4wNTdlYTgzMDNiY2UgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xODI1LDcgKzE4MjUsNyBAQCBzdGF0aWMgaW50 IGdlbjZfYWxsb2NfdmFfcmFuZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJdW5z aWduZWQgaW50IHBkZTsKIAlib29sIGZsdXNoID0gZmFsc2U7CiAKLQl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQodm0tPmk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dl dCgmdm0tPmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJc3Bpbl9sb2NrKCZwcGd0dC0+YmFzZS5wZC5s b2NrKTsKIAlnZW42X2Zvcl9lYWNoX3BkZShwdCwgJnBwZ3R0LT5iYXNlLnBkLCBzdGFydCwgbGVu Z3RoLCBwZGUpIHsKQEAgLTE4NjgsMTIgKzE4NjgsMTIgQEAgc3RhdGljIGludCBnZW42X2FsbG9j X3ZhX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQlnZW42X2dndHRfaW52 YWxpZGF0ZSh2bS0+aTkxNSk7CiAJfQogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQodm0tPmk5MTUs IHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZ2bS0+aTkxNS0+cnVudGltZV9wbSwg d2FrZXJlZik7CiAKIAlyZXR1cm4gMDsKIAogdW53aW5kX291dDoKLQlpbnRlbF9ydW50aW1lX3Bt X3B1dCh2bS0+aTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJnZtLT5pOTE1 LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAlnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHZtLCBmcm9t LCBzdGFydCAtIGZyb20pOwogCXJldHVybiAtRU5PTUVNOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bl cmYuYwppbmRleCBkOTJkZGZhZGEyNjIuLjNkODE2MmQyODczMCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wZXJmLmMKQEAgLTEzNzUsNyArMTM3NSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFt X2Rlc3Ryb3koc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlmcmVlX29hX2J1ZmZl cihkZXZfcHJpdik7CiAKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVu Y29yZSwgRk9SQ0VXQUtFX0FMTCk7Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHN0 cmVhbS0+d2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1l X3BtLCBzdHJlYW0tPndha2VyZWYpOwogCiAJaWYgKHN0cmVhbS0+Y3R4KQogCQlvYV9wdXRfcmVu ZGVyX2N0eF9pZChzdHJlYW0pOwpAQCAtMjExMiw3ICsyMTEyLDcgQEAgc3RhdGljIGludCBpOTE1 X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJICogICBJ biBvdXIgY2FzZSB3ZSBhcmUgZXhwZWN0aW5nIHRoYXQgdGFraW5nIHBtICsgRk9SQ0VXQUtFCiAJ ICogICByZWZlcmVuY2VzIHdpbGwgZWZmZWN0aXZlbHkgZGlzYWJsZSBSQzYuCiAJICovCi0Jc3Ry ZWFtLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXN0cmVhbS0+ d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAJ aW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoJmRldl9wcml2LT51bmNvcmUsIEZPUkNFV0FLRV9B TEwpOwogCiAJcmV0ID0gYWxsb2Nfb2FfYnVmZmVyKGRldl9wcml2KTsKQEAgLTIxNDgsNyArMjE0 OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAogCXB1dF9vYV9jb25maWcoZGV2X3ByaXYsIHN0cmVhbS0+b2FfY29uZmln KTsKIAogCWludGVsX3VuY29yZV9mb3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JD RVdBS0VfQUxMKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgc3RyZWFtLT53YWtl cmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHN0cmVh bS0+d2FrZXJlZik7CiAKIGVycl9jb25maWc6CiAJaWYgKHN0cmVhbS0+Y3R4KQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wbXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcG11LmMKaW5kZXggZWI5YzBlMGU1NDVjLi41MDdmY2RiMGY5N2UgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcG11LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wbXUuYwpAQCAtMTcxLDcgKzE3MSw3IEBAIGVuZ2luZXNfc2FtcGxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgaW50IHBlcmlvZF9ucykKIAogCXdh a2VyZWYgPSAwOwogCWlmIChSRUFEX09OQ0UoZGV2X3ByaXYtPmd0LmF3YWtlKSkKLQkJd2FrZXJl ZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShkZXZfcHJpdik7CisJCXdha2VyZWYg PSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoJmRldl9wcml2LT5ydW50aW1lX3BtKTsK IAlpZiAoIXdha2VyZWYpCiAJCXJldHVybjsKIApAQCAtMjA3LDcgKzIwNyw3IEBAIGVuZ2luZXNf c2FtcGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgaW50IHBl cmlvZF9ucykKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5s b2NrLCBmbGFncyk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7 CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK IH0KIAogc3RhdGljIHZvaWQKQEAgLTQ0MywxNCArNDQzLDE1IEBAIHN0YXRpYyB1NjQgX19nZXRf cmM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogc3RhdGljIHU2NCBnZXRfcmM2KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogI2lmIElTX0VOQUJMRUQoQ09ORklHX1BN KQorCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAmaTkxNS0+cnVudGltZV9wbTsKIAlp bnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXU2NCB2YWw7 CiAKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKGk5MTUpOworCXdh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UocnBtKTsKIAlpZiAod2FrZXJl ZikgewogCQl2YWwgPSBfX2dldF9yYzYoaTkxNSk7Ci0JCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5 MTUsIHdha2VyZWYpOworCQlpbnRlbF9ydW50aW1lX3BtX3B1dChycG0sIHdha2VyZWYpOwogCiAJ CS8qCiAJCSAqIElmIHdlIGFyZSBjb21pbmcgYmFjayBmcm9tIGJlaW5nIHJ1bnRpbWUgc3VzcGVu ZGVkIHdlIG11c3QKQEAgLTQ2OSw4ICs0NzAsNyBAQCBzdGF0aWMgdTY0IGdldF9yYzYoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTkx NS0+cG11LmxvY2ssIGZsYWdzKTsKIAl9IGVsc2UgewotCQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9 IGk5MTUtPmRybS5wZGV2OwotCQlzdHJ1Y3QgZGV2aWNlICprZGV2ID0gJnBkZXYtPmRldjsKKwkJ c3RydWN0IGRldmljZSAqa2RldiA9IHJwbS0+a2RldjsKIAogCQkvKgogCQkgKiBXZSBhcmUgcnVu dGltZSBzdXNwZW5kZWQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5 c2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKaW5kZXggM2VmMDdiOTg3 ZDQwLi43NWFjYmY2ODZlYzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf c3lzZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKQEAgLTI2NCw3 ICsyNjQsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9hY3RfZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2 aWNlICprZGV2LAogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCXUzMiBmcmVxOwogCi0Jd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCWlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQl2bHZfcHVuaXRf Z2V0KGRldl9wcml2KTsKQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9hY3Rf ZnJlcV9taHpfc2hvdyhzdHJ1Y3QgZGV2aWNlICprZGV2LAogCQlmcmVxID0gaW50ZWxfZ2V0X2Nh Z2YoZGV2X3ByaXYsIEk5MTVfUkVBRChHRU42X1JQU1RBVDEpKTsKIAl9CiAKLQlpbnRlbF9ydW50 aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRl dl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiBzbnByaW50ZihidWYsIFBB R0VfU0laRSwgIiVkXG4iLCBpbnRlbF9ncHVfZnJlcShkZXZfcHJpdiwgZnJlcSkpOwogfQpAQCAt MzY0LDcgKzM2NCw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21heF9mcmVxX21oel9zdG9yZShzdHJ1 Y3QgZGV2aWNlICprZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1l X3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCW11dGV4X2xvY2soJnJwcy0+bG9jayk7 CiAKIAl2YWwgPSBpbnRlbF9mcmVxX29wY29kZShkZXZfcHJpdiwgdmFsKTsKQEAgLTM5Miw3ICsz OTIsNyBAQCBzdGF0aWMgc3NpemVfdCBndF9tYXhfZnJlcV9taHpfc3RvcmUoc3RydWN0IGRldmlj ZSAqa2RldiwKIAogdW5sb2NrOgogCW11dGV4X3VubG9jaygmcnBzLT5sb2NrKTsKLQlpbnRlbF9y dW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQo JmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAogCXJldHVybiByZXQgPzogY291bnQ7 CiB9CkBAIC00MjAsNyArNDIwLDcgQEAgc3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3N0 b3JlKHN0cnVjdCBkZXZpY2UgKmtkZXYsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXdh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAJbXV0ZXhfbG9jaygmcnBz LT5sb2NrKTsKIAogCXZhbCA9IGludGVsX2ZyZXFfb3Bjb2RlKGRldl9wcml2LCB2YWwpOwpAQCAt NDQ0LDcgKzQ0NCw3IEBAIHN0YXRpYyBzc2l6ZV90IGd0X21pbl9mcmVxX21oel9zdG9yZShzdHJ1 Y3QgZGV2aWNlICprZGV2LAogCiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZycHMtPmxvY2spOwot CWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1l X3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCiAJcmV0dXJuIHJldCA/ OiBjb3VudDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBlNjgxZWQ5 OWNkZjIuLjBiZjFlMDlhY2YyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtMjExMiw3ICsyMTEyLDcgQEAgaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJICogaW50ZWxfcnVudGltZV9wbV9wdXQoKSwgc28gaXQgaXMg Y29ycmVjdCB0byB3cmFwIG9ubHkgdGhlCiAJICogcGluL3VucGluL2ZlbmNlIGFuZCBub3QgbW9y ZS4KIAkgKi8KLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCWk5 MTVfZ2VtX29iamVjdF9sb2NrKG9iaik7CiAKIAlhdG9taWNfaW5jKCZkZXZfcHJpdi0+Z3B1X2Vy cm9yLnBlbmRpbmdfZmJfcGluKTsKQEAgLTIxNjksNyArMjE2OSw3IEBAIGludGVsX3Bpbl9hbmRf ZmVuY2VfZmJfb2JqKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCWF0b21pY19kZWMoJmRl dl9wcml2LT5ncHVfZXJyb3IucGVuZGluZ19mYl9waW4pOwogCiAJaTkxNV9nZW1fb2JqZWN0X3Vu bG9jayhvYmopOwotCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2LCB3YWtlcmVmKTsKKwlp bnRlbF9ydW50aW1lX3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCXJl dHVybiB2bWE7CiB9CiAKQEAgLTEzOTI3LDcgKzEzOTI3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf YXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJaW50 ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oJmRldl9wcml2LT51bmNvcmUp OwogCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX01PREVT RVQsIHdha2VyZWYpOwogCX0KLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgaW50ZWxf c3RhdGUtPndha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGlt ZV9wbSwgaW50ZWxfc3RhdGUtPndha2VyZWYpOwogCiAJLyoKIAkgKiBEZWZlciB0aGUgY2xlYW51 cCBvZiB0aGUgb2xkIHN0YXRlIHRvIGEgc2VwYXJhdGUgd29ya2VyIHRvIG5vdApAQCAtMTQwMDYs NyArMTQwMDYsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJaW50IHJldCA9IDA7CiAKLQlpbnRlbF9zdGF0ZS0+d2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwlpbnRlbF9zdGF0ZS0+d2FrZXJlZiA9IGludGVsX3J1 bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAKIAlkcm1fYXRvbWljX3N0YXRl X2dldChzdGF0ZSk7CiAJaTkxNV9zd19mZW5jZV9pbml0KCZpbnRlbF9zdGF0ZS0+Y29tbWl0X3Jl YWR5LApAQCAtMTQwNDQsNyArMTQwNDQsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21t aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KSB7CiAJCURSTV9ERUJVR19BVE9N SUMoIlByZXBhcmluZyBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKIAkJaTkxNV9zd19m ZW5jZV9jb21taXQoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpOwotCQlpbnRlbF9ydW50aW1l X3BtX3B1dChkZXZfcHJpdiwgaW50ZWxfc3RhdGUtPndha2VyZWYpOworCQlpbnRlbF9ydW50aW1l X3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIGludGVsX3N0YXRlLT53YWtlcmVmKTsKIAkJ cmV0dXJuIHJldDsKIAl9CiAKQEAgLTE0MDU2LDcgKzE0MDU2LDcgQEAgc3RhdGljIGludCBpbnRl bF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWk5MTVfc3dfZmVuY2Vf Y29tbWl0KCZpbnRlbF9zdGF0ZS0+Y29tbWl0X3JlYWR5KTsKIAogCQlkcm1fYXRvbWljX2hlbHBl cl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2 X3ByaXYsIGludGVsX3N0YXRlLT53YWtlcmVmKTsKKwkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRl dl9wcml2LT5ydW50aW1lX3BtLCBpbnRlbF9zdGF0ZS0+d2FrZXJlZik7CiAJCXJldHVybiByZXQ7 CiAJfQogCWRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtID0gZmFsc2U7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKaW5kZXggM2U1MjQ1MzE4OWVmLi5jNjcy YzgwODBhOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXlf cG93ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMK QEAgLTE2NDQsNyArMTY0NCw3IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfZ3JhYl9hc3luY19wdXRf cmVmKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJZ290byBvdXRfdmVyaWZ5 OwogCiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcG93ZXJfZG9tYWlucy0+YXN5bmNfcHV0X3dvcmsp OwotCWludGVsX3J1bnRpbWVfcG1fcHV0X3JhdyhkZXZfcHJpdiwKKwlpbnRlbF9ydW50aW1lX3Bt X3B1dF9yYXcoJmRldl9wcml2LT5ydW50aW1lX3BtLAogCQkJCSBmZXRjaF9hbmRfemVybygmcG93 ZXJfZG9tYWlucy0+YXN5bmNfcHV0X3dha2VyZWYpKTsKIG91dF92ZXJpZnk6CiAJdmVyaWZ5X2Fz eW5jX3B1dF9kb21haW5zX3N0YXRlKHBvd2VyX2RvbWFpbnMpOwpAQCAtMTY4NCw3ICsxNjg0LDcg QEAgaW50ZWxfd2FrZXJlZl90IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp biBkb21haW4pCiB7CiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9 ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKLQlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZiA9IGlu dGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZiA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAKIAltdXRleF9s b2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKIAlfX2ludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2Rv bWFpbihkZXZfcHJpdiwgZG9tYWluKTsKQEAgLTE3MTMsNyArMTcxMyw3IEBAIGludGVsX2Rpc3Bs YXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwogCWJvb2wgaXNfZW5hYmxlZDsKIAotCXdha2Vy ZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoZGV2X3ByaXYpOworCXdha2VyZWYg PSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoJmRldl9wcml2LT5ydW50aW1lX3BtKTsK IAlpZiAoIXdha2VyZWYpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMTcyOSw3ICsxNzI5LDcgQEAg aW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKIAogCWlm ICghaXNfZW5hYmxlZCkgewotCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJl Zik7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJl Zik7CiAJCXdha2VyZWYgPSAwOwogCX0KIApAQCAtMTc4Niw3ICsxNzg2LDcgQEAgdm9pZCBpbnRl bF9kaXNwbGF5X3Bvd2VyX3B1dF91bmNoZWNrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCSAgICAgICBlbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFp bikKIHsKIAlfX2ludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBkb21haW4pOwotCWlu dGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChkZXZfcHJpdik7CisJaW50ZWxfcnVudGltZV9w bV9wdXRfdW5jaGVja2VkKCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiB9CiAKIHN0YXRpYyB2b2lk CkBAIC0xODA2LDYgKzE4MDYsNyBAQCByZWxlYXNlX2FzeW5jX3B1dF9kb21haW5zKHN0cnVjdCBp OTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMsIHU2NCBtYXNrKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCWNvbnRhaW5lcl9vZihwb3dlcl9kb21haW5zLCBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwKIAkJCSAgICAgcG93ZXJfZG9tYWlucyk7CisJc3RydWN0 IGludGVsX3J1bnRpbWVfcG0gKnJwbSA9ICZkZXZfcHJpdi0+cnVudGltZV9wbTsKIAllbnVtIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJl ZjsKIApAQCAtMTgxNCw4ICsxODE1LDggQEAgcmVsZWFzZV9hc3luY19wdXRfZG9tYWlucyhzdHJ1 Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zLCB1NjQgbWFzaykKIAkgKiB3YWtl cmVmIHRvIG1ha2UgdGhlIHN0YXRlIGNoZWNrZXIgaGFwcHkgYWJvdXQgdGhlIEhXIGFjY2VzcyBk dXJpbmcKIAkgKiBwb3dlciB3ZWxsIGRpc2FibGluZy4KIAkgKi8KLQlhc3NlcnRfcnBtX3Jhd193 YWtlcmVmX2hlbGQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKLQl3YWtlcmVmID0gaW50ZWxfcnVu dGltZV9wbV9nZXQoZGV2X3ByaXYpOworCWFzc2VydF9ycG1fcmF3X3dha2VyZWZfaGVsZChycG0p OworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChycG0pOwogCiAJZm9yX2VhY2hfcG93 ZXJfZG9tYWluKGRvbWFpbiwgbWFzaykgewogCQkvKiBDbGVhciBiZWZvcmUgcHV0LCBzbyBwdXQn cyBzYW5pdHkgY2hlY2sgaXMgaGFwcHkuICovCkBAIC0xODIzLDcgKzE4MjQsNyBAQCByZWxlYXNl X2FzeW5jX3B1dF9kb21haW5zKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFp bnMsIHU2NCBtYXNrKQogCQlfX2ludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X2RvbWFpbihkZXZfcHJp diwgZG9tYWluKTsKIAl9CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJl Zik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQocnBtLCB3YWtlcmVmKTsKIH0KIAogc3RhdGljIHZv aWQKQEAgLTE4MzMsNyArMTgzNCw4IEBAIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X2FzeW5jX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUsCiAJCQkgICAgIHBvd2VyX2RvbWFpbnMuYXN5bmNfcHV0X3dvcmsu d29yayk7CiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZf cHJpdi0+cG93ZXJfZG9tYWluczsKLQlpbnRlbF93YWtlcmVmX3QgbmV3X3dvcmtfd2FrZXJlZiA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0X3JhdyhkZXZfcHJpdik7CisJc3RydWN0IGludGVsX3J1bnRp bWVfcG0gKnJwbSA9ICZkZXZfcHJpdi0+cnVudGltZV9wbTsKKwlpbnRlbF93YWtlcmVmX3QgbmV3 X3dvcmtfd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X3JhdyhycG0pOwogCWludGVsX3dh a2VyZWZfdCBvbGRfd29ya193YWtlcmVmID0gMDsKIAogCW11dGV4X2xvY2soJnBvd2VyX2RvbWFp bnMtPmxvY2spOwpAQCAtMTg2Myw5ICsxODY1LDkgQEAgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXRf YXN5bmNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJbXV0ZXhfdW5sb2NrKCZwb3dl cl9kb21haW5zLT5sb2NrKTsKIAogCWlmIChvbGRfd29ya193YWtlcmVmKQotCQlpbnRlbF9ydW50 aW1lX3BtX3B1dF9yYXcoZGV2X3ByaXYsIG9sZF93b3JrX3dha2VyZWYpOworCQlpbnRlbF9ydW50 aW1lX3BtX3B1dF9yYXcocnBtLCBvbGRfd29ya193YWtlcmVmKTsKIAlpZiAobmV3X3dvcmtfd2Fr ZXJlZikKLQkJaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KGRldl9wcml2LCBuZXdfd29ya193YWtl cmVmKTsKKwkJaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KHJwbSwgbmV3X3dvcmtfd2FrZXJlZik7 CiB9CiAKIC8qKgpAQCAtMTg4Myw3ICsxODg1LDggQEAgdm9pZCBfX2ludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0X2FzeW5jKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJCSAgICAgaW50 ZWxfd2FrZXJlZl90IHdha2VyZWYpCiB7CiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93 ZXJfZG9tYWlucyA9ICZpOTE1LT5wb3dlcl9kb21haW5zOwotCWludGVsX3dha2VyZWZfdCB3b3Jr X3dha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXcoaTkxNSk7CisJc3RydWN0IGludGVs X3J1bnRpbWVfcG0gKnJwbSA9ICZpOTE1LT5ydW50aW1lX3BtOworCWludGVsX3dha2VyZWZfdCB3 b3JrX3dha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXcocnBtKTsKIAogCW11dGV4X2xv Y2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCkBAIC0xOTEwLDkgKzE5MTMsOSBAQCB2b2lkIF9f aW50ZWxfZGlzcGxheV9wb3dlcl9wdXRfYXN5bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCiAJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKIAogCWlmICh3b3JrX3dh a2VyZWYpCi0JCWludGVsX3J1bnRpbWVfcG1fcHV0X3JhdyhpOTE1LCB3b3JrX3dha2VyZWYpOwor CQlpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcocnBtLCB3b3JrX3dha2VyZWYpOwogCi0JaW50ZWxf cnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQocnBt LCB3YWtlcmVmKTsKIH0KIAogLyoqCkBAIC0xOTQ4LDcgKzE5NTEsNyBAQCB2b2lkIGludGVsX2Rp c3BsYXlfcG93ZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlt dXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCiAJaWYgKHdvcmtfd2FrZXJlZikK LQkJaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KGk5MTUsIHdvcmtfd2FrZXJlZik7CisJCWludGVs X3J1bnRpbWVfcG1fcHV0X3JhdygmaTkxNS0+cnVudGltZV9wbSwgd29ya193YWtlcmVmKTsKIH0K IAogLyoqCkBAIC0xOTg3LDcgKzE5OTAsNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgaW50ZWxfd2FrZXJl Zl90IHdha2VyZWYpCiB7CiAJX19pbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgZG9t YWluKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxf cnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0KICNlbmRp ZgogCkBAIC00NDAyLDcgKzQ0MDUsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfZmluaV9o dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAlpbnRlbF9wb3dlcl9kb21haW5zX3Zl cmlmeV9zdGF0ZShpOTE1KTsKIAogCS8qIEtlZXAgdGhlIHBvd2VyIHdlbGwgZW5hYmxlZCwgYnV0 IGNhbmNlbCBpdHMgcnBtIHdha2VyZWYuICovCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwg d2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2Vy ZWYpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi ZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4IDBkM2E2ZmE2 NzRlNi4uMWVkZDQ0ZWUzMmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmRldi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKQEAgLTIx Myw3ICsyMTMsNyBAQCBzdGF0aWMgaW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpoZWxwZXIsCiAJfQogCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXdh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CisJd2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7CiAKIAkvKiBQaW4gdGhlIEdH VFQgdm1hIGZvciBvdXIgYWNjZXNzIHZpYSBpbmZvLT5zY3JlZW5fYmFzZS4KIAkgKiBUaGlzIGFs c28gdmFsaWRhdGVzIHRoYXQgYW55IGV4aXN0aW5nIGZiIGluaGVyaXRlZCBmcm9tIHRoZQpAQCAt MjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBpbnQgaW50ZWxmYl9jcmVhdGUoc3RydWN0IGRybV9mYl9o ZWxwZXIgKmhlbHBlciwKIAlpZmJkZXYtPnZtYSA9IHZtYTsKIAlpZmJkZXYtPnZtYV9mbGFncyA9 IGZsYWdzOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHdha2VyZWYpOworCWlu dGVsX3J1bnRpbWVfcG1fcHV0KCZkZXZfcHJpdi0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJdmdhX3N3aXRjaGVyb29fY2xpZW50X2Zi X3NldChwZGV2LCBpbmZvKTsKIAlyZXR1cm4gMDsKQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMg aW50IGludGVsZmJfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIsCiBvdXRfdW5w aW46CiAJaW50ZWxfdW5waW5fZmJfdm1hKHZtYSwgZmxhZ3MpOwogb3V0X3VubG9jazoKLQlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmRldi0+ c3RydWN0X211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90 cGx1Zy5jCmluZGV4IGZmOWViM2M4NTVkMy4uZWEzZGU0YWNjODUwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ob3RwbHVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaG90cGx1Zy5jCkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf aHBkX2lycV9zdG9ybV9yZWVuYWJsZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlp bnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKIAllbnVtIGhwZF9waW4gcGluOwogCi0Jd2FrZXJlZiA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGlt ZV9wbV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCXNwaW5fbG9ja19pcnEoJmRldl9w cml2LT5pcnFfbG9jayk7CiAJZm9yX2VhY2hfaHBkX3BpbihwaW4pIHsKQEAgLTI2Myw3ICsyNjMs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5hYmxlX3dvcmsoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRl dl9wcml2KTsKIAlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7CiAKLQlpbnRl bF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2FrZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0KIAogYm9vbCBpbnRlbF9lbmNv ZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggM2Q5ZWEzNDk4Njc5Li41MDJjNTQ0Mjg1NzAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKQEAgLTM2OSw3ICszNjks NyBAQCBzdGF0aWMgaW50ZWxfd2FrZXJlZl90IF9faW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0 IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKIAogLyoqCiAgKiBpbnRlbF9ydW50aW1lX3BtX2dldF9y YXcgLSBncmFiIGEgcmF3IHJ1bnRpbWUgcG0gcmVmZXJlbmNlCi0gKiBAaTkxNTogaTkxNSBkZXZp Y2UgaW5zdGFuY2UKKyAqIEBycG06IHRoZSBpbnRlbF9ydW50aW1lX3BtIHN0cnVjdHVyZQogICoK ICAqIFRoaXMgaXMgdGhlIHVubG9ja2VkIHZlcnNpb24gb2YgaW50ZWxfZGlzcGxheV9wb3dlcl9p c19lbmFibGVkKCkgYW5kIHNob3VsZAogICogb25seSBiZSB1c2VkIGZyb20gZXJyb3IgY2FwdHVy ZSBhbmQgcmVjb3ZlcnkgY29kZSB3aGVyZSBkZWFkbG9ja3MgYXJlCkBAIC0zODQsMTUgKzM4NCwx NCBAQCBzdGF0aWMgaW50ZWxfd2FrZXJlZl90IF9faW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0 IGludGVsX3J1bnRpbWVfcG0gKnJwbSwKICAqIFJldHVybnM6IHRoZSB3YWtlcmVmIGNvb2tpZSB0 byBwYXNzIHRvIGludGVsX3J1bnRpbWVfcG1fcHV0X3JhdygpLCBldmFsdWF0ZXMKICAqIGFzIFRy dWUgaWYgdGhlIHdha2VyZWYgd2FzIGFjcXVpcmVkLCBvciBGYWxzZSBvdGhlcndpc2UuCiAgKi8K LQotaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X3JhdyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKK2ludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9y YXcoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSkKIHsKLQlyZXR1cm4gX19pbnRlbF9ydW50 aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSwgZmFsc2UpOworCXJldHVybiBfX2ludGVsX3J1 bnRpbWVfcG1fZ2V0KHJwbSwgZmFsc2UpOwogfQogCiAvKioKICAqIGludGVsX3J1bnRpbWVfcG1f Z2V0IC0gZ3JhYiBhIHJ1bnRpbWUgcG0gcmVmZXJlbmNlCi0gKiBAaTkxNTogaTkxNSBkZXZpY2Ug aW5zdGFuY2UKKyAqIEBycG06IHRoZSBpbnRlbF9ydW50aW1lX3BtIHN0cnVjdHVyZQogICoKICAq IFRoaXMgZnVuY3Rpb24gZ3JhYnMgYSBkZXZpY2UtbGV2ZWwgcnVudGltZSBwbSByZWZlcmVuY2Ug KG1vc3RseSB1c2VkIGZvciBHRU0KICAqIGNvZGUgdG8gZW5zdXJlIHRoZSBHVFQgb3IgR1QgaXMg b24pIGFuZCBlbnN1cmVzIHRoYXQgaXQgaXMgcG93ZXJlZCB1cC4KQEAgLTQwMiwxNCArNDAxLDE0 IEBAIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiAgKgogICogUmV0dXJuczogdGhlIHdha2VyZWYgY29va2llIHRv IHBhc3MgdG8gaW50ZWxfcnVudGltZV9wbV9wdXQoKQogICovCi1pbnRlbF93YWtlcmVmX3QgaW50 ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCitpbnRlbF93 YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGludGVsX3J1bnRpbWVfcG0gKnJw bSkKIHsKLQlyZXR1cm4gX19pbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSwg dHJ1ZSk7CisJcmV0dXJuIF9faW50ZWxfcnVudGltZV9wbV9nZXQocnBtLCB0cnVlKTsKIH0KIAog LyoqCiAgKiBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UgLSBncmFiIGEgcnVudGltZSBw bSByZWZlcmVuY2UgaWYgZGV2aWNlIGluIHVzZQotICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3Rh bmNlCisgKiBAcnBtOiB0aGUgaW50ZWxfcnVudGltZV9wbSBzdHJ1Y3R1cmUKICAqCiAgKiBUaGlz IGZ1bmN0aW9uIGdyYWJzIGEgZGV2aWNlLWxldmVsIHJ1bnRpbWUgcG0gcmVmZXJlbmNlIGlmIHRo ZSBkZXZpY2UgaXMKICAqIGFscmVhZHkgaW4gdXNlIGFuZCBlbnN1cmVzIHRoYXQgaXQgaXMgcG93 ZXJlZCB1cC4gSXQgaXMgaWxsZWdhbCB0byB0cnkKQEAgLTQyMSwxMCArNDIwLDggQEAgaW50ZWxf d2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogICogUmV0dXJuczogdGhlIHdha2VyZWYgY29va2llIHRvIHBhc3MgdG8gaW50ZWxfcnVu dGltZV9wbV9wdXQoKSwgZXZhbHVhdGVzCiAgKiBhcyBUcnVlIGlmIHRoZSB3YWtlcmVmIHdhcyBh Y3F1aXJlZCwgb3IgRmFsc2Ugb3RoZXJ3aXNlLgogICovCi1pbnRlbF93YWtlcmVmX3QgaW50ZWxf cnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQor aW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShzdHJ1Y3QgaW50 ZWxfcnVudGltZV9wbSAqcnBtKQogewotCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0gPSAm aTkxNS0+cnVudGltZV9wbTsKLQogCWlmIChJU19FTkFCTEVEKENPTkZJR19QTSkpIHsKIAkJLyoK IAkJICogSW4gY2FzZXMgcnVudGltZSBQTSBpcyBkaXNhYmxlZCBieSB0aGUgUlBNIGNvcmUgYW5k IHdlIGdldApAQCAtNDQzLDcgKzQ0MCw3IEBAIGludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1l X3BtX2dldF9pZl9pbl91c2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAKIC8qKgog ICogaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUgLSBncmFiIGEgcnVudGltZSBwbSByZWZl cmVuY2UKLSAqIEBpOTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICogQHJwbTogdGhlIGludGVs X3J1bnRpbWVfcG0gc3RydWN0dXJlCiAgKgogICogVGhpcyBmdW5jdGlvbiBncmFicyBhIGRldmlj ZS1sZXZlbCBydW50aW1lIHBtIHJlZmVyZW5jZSAobW9zdGx5IHVzZWQgZm9yIEdFTQogICogY29k ZSB0byBlbnN1cmUgdGhlIEdUVCBvciBHVCBpcyBvbikuCkBAIC00NjAsMTAgKzQ1Nyw4IEBAIGlu dGVsX3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiAgKgogICogUmV0dXJuczogdGhlIHdha2VyZWYgY29va2llIHRv IHBhc3MgdG8gaW50ZWxfcnVudGltZV9wbV9wdXQoKQogICovCi1pbnRlbF93YWtlcmVmX3QgaW50 ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp CitpbnRlbF93YWtlcmVmX3QgaW50ZWxfcnVudGltZV9wbV9nZXRfbm9yZXN1bWUoc3RydWN0IGlu dGVsX3J1bnRpbWVfcG0gKnJwbSkKIHsKLQlzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtID0g Jmk5MTUtPnJ1bnRpbWVfcG07Ci0KIAlhc3NlcnRfcnBtX3dha2Vsb2NrX2hlbGQocnBtKTsKIAlw bV9ydW50aW1lX2dldF9ub3Jlc3VtZShycG0tPmtkZXYpOwogCkBAIC00ODgsNyArNDgzLDcgQEAg c3RhdGljIHZvaWQgX19pbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgaW50ZWxfcnVudGltZV9w bSAqcnBtLAogCiAvKioKICAqIGludGVsX3J1bnRpbWVfcG1fcHV0X3JhdyAtIHJlbGVhc2UgYSBy YXcgcnVudGltZSBwbSByZWZlcmVuY2UKLSAqIEBpOTE1OiBpOTE1IGRldmljZSBpbnN0YW5jZQor ICogQHJwbTogdGhlIGludGVsX3J1bnRpbWVfcG0gc3RydWN0dXJlCiAgKiBAd3JlZjogd2FrZXJl ZiBhY3F1aXJlZCBmb3IgdGhlIHJlZmVyZW5jZSB0aGF0IGlzIGJlaW5nIHJlbGVhc2VkCiAgKgog ICogVGhpcyBmdW5jdGlvbiBkcm9wcyB0aGUgZGV2aWNlLWxldmVsIHJ1bnRpbWUgcG0gcmVmZXJl bmNlIG9idGFpbmVkIGJ5CkBAIC00OTYsMTQgKzQ5MSwxNCBAQCBzdGF0aWMgdm9pZCBfX2ludGVs X3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0sCiAgKiBoYXJkd2Fy ZSBibG9jayByaWdodCBhd2F5IGlmIHRoaXMgaXMgdGhlIGxhc3QgcmVmZXJlbmNlLgogICovCiB2 b2lkCi1pbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKQoraW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KHN0cnVj dCBpbnRlbF9ydW50aW1lX3BtICpycG0sIGludGVsX3dha2VyZWZfdCB3cmVmKQogewotCV9faW50 ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdyZWYsIGZhbHNlKTsKKwlfX2lu dGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgd3JlZiwgZmFsc2UpOwogfQogCiAvKioKICAqIGludGVs X3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZCAtIHJlbGVhc2UgYW4gdW5jaGVja2VkIHJ1bnRpbWUg cG0gcmVmZXJlbmNlCi0gKiBAaTkxNTogaTkxNSBkZXZpY2UgaW5zdGFuY2UKKyAqIEBycG06IHRo ZSBpbnRlbF9ydW50aW1lX3BtIHN0cnVjdHVyZQogICoKICAqIFRoaXMgZnVuY3Rpb24gZHJvcHMg dGhlIGRldmljZS1sZXZlbCBydW50aW1lIHBtIHJlZmVyZW5jZSBvYnRhaW5lZCBieQogICogaW50 ZWxfcnVudGltZV9wbV9nZXQoKSBhbmQgbWlnaHQgcG93ZXIgZG93biB0aGUgY29ycmVzcG9uZGlu ZwpAQCAtNTEzLDI0ICs1MDgsMjQgQEAgaW50ZWxfcnVudGltZV9wbV9wdXRfcmF3KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKICAqIG5ldyBjb2Rl LCBhcyB0aGUgY29ycmVjdG5lc3Mgb2YgaXRzIHVzZSBjYW5ub3QgYmUgY2hlY2tlZC4gQWx3YXlz IHVzZQogICogaW50ZWxfcnVudGltZV9wbV9wdXQoKSBpbnN0ZWFkLgogICovCi12b2lkIGludGVs X3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK K3ZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVjdCBpbnRlbF9ydW50aW1l X3BtICpycG0pCiB7Ci0JX19pbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwg LTEsIHRydWUpOworCV9faW50ZWxfcnVudGltZV9wbV9wdXQocnBtLCAtMSwgdHJ1ZSk7CiB9CiAK ICNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9ERUJVR19SVU5USU1FX1BNKQogLyoqCiAg KiBpbnRlbF9ydW50aW1lX3BtX3B1dCAtIHJlbGVhc2UgYSBydW50aW1lIHBtIHJlZmVyZW5jZQot ICogQGk5MTU6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKiBAcnBtOiB0aGUgaW50ZWxfcnVudGlt ZV9wbSBzdHJ1Y3R1cmUKICAqIEB3cmVmOiB3YWtlcmVmIGFjcXVpcmVkIGZvciB0aGUgcmVmZXJl bmNlIHRoYXQgaXMgYmVpbmcgcmVsZWFzZWQKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGRyb3BzIHRo ZSBkZXZpY2UtbGV2ZWwgcnVudGltZSBwbSByZWZlcmVuY2Ugb2J0YWluZWQgYnkKICAqIGludGVs X3J1bnRpbWVfcG1fZ2V0KCkgYW5kIG1pZ2h0IHBvd2VyIGRvd24gdGhlIGNvcnJlc3BvbmRpbmcK ICAqIGhhcmR3YXJlIGJsb2NrIHJpZ2h0IGF3YXkgaWYgdGhpcyBpcyB0aGUgbGFzdCByZWZlcmVu Y2UuCiAgKi8KLXZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKQordm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1 dChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtLCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKIHsK LQlfX2ludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3cmVmLCB0cnVlKTsK KwlfX2ludGVsX3J1bnRpbWVfcG1fcHV0KHJwbSwgd3JlZiwgdHJ1ZSk7CiB9CiAjZW5kaWYKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCmluZGV4IDA4OTBlNjk4ZjE5Ni4u ZjY0NDVjYTViYmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5oCkBA IC0xNzQsMzAgKzE3NCwzMCBAQCB2b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBp bnRlbF9ydW50aW1lX3BtICpycG0pOwogdm9pZCBpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGUoc3Ry dWN0IGludGVsX3J1bnRpbWVfcG0gKnJwbSk7CiB2b2lkIGludGVsX3J1bnRpbWVfcG1fY2xlYW51 cChzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKIAotaW50ZWxfd2FrZXJlZl90IGludGVs X3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLWludGVsX3dh a2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUpOwotaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X25vcmVz dW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKLWludGVsX3dha2VyZWZfdCBpbnRl bF9ydW50aW1lX3BtX2dldF9yYXcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOworaW50 ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0KHN0cnVjdCBpbnRlbF9ydW50aW1lX3Bt ICpycG0pOworaW50ZWxfd2FrZXJlZl90IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShz dHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKK2ludGVsX3dha2VyZWZfdCBpbnRlbF9ydW50 aW1lX3BtX2dldF9ub3Jlc3VtZShzdHJ1Y3QgaW50ZWxfcnVudGltZV9wbSAqcnBtKTsKK2ludGVs X3dha2VyZWZfdCBpbnRlbF9ydW50aW1lX3BtX2dldF9yYXcoc3RydWN0IGludGVsX3J1bnRpbWVf cG0gKnJwbSk7CiAKICNkZWZpbmUgd2l0aF9pbnRlbF9ydW50aW1lX3BtKGk5MTUsIHdmKSBcCi0J Zm9yICgod2YpID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7ICh3Zik7IFwKLQkgICAgIGlu dGVsX3J1bnRpbWVfcG1fcHV0KChpOTE1KSwgKHdmKSksICh3ZikgPSAwKQorCWZvciAoKHdmKSA9 IGludGVsX3J1bnRpbWVfcG1fZ2V0KCYoaTkxNSktPnJ1bnRpbWVfcG0pOyAod2YpOyBcCisJICAg ICBpbnRlbF9ydW50aW1lX3BtX3B1dCgmKGk5MTUpLT5ydW50aW1lX3BtLCAod2YpKSwgKHdmKSA9 IDApCiAKICNkZWZpbmUgd2l0aF9pbnRlbF9ydW50aW1lX3BtX2lmX2luX3VzZShpOTE1LCB3Zikg XAotCWZvciAoKHdmKSA9IGludGVsX3J1bnRpbWVfcG1fZ2V0X2lmX2luX3VzZShpOTE1KTsgKHdm KTsgXAotCSAgICAgaW50ZWxfcnVudGltZV9wbV9wdXQoKGk5MTUpLCAod2YpKSwgKHdmKSA9IDAp CisJZm9yICgod2YpID0gaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKCYoaTkxNSktPnJ1 bnRpbWVfcG0pOyAod2YpOyBcCisJICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dCgmKGk5MTUpLT5y dW50aW1lX3BtLCAod2YpKSwgKHdmKSA9IDApCiAKLXZvaWQgaW50ZWxfcnVudGltZV9wbV9wdXRf dW5jaGVja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKK3ZvaWQgaW50ZWxfcnVu dGltZV9wbV9wdXRfdW5jaGVja2VkKHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0pOwogI2lm IElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVHX1JVTlRJTUVfUE0pCi12b2lkIGludGVs X3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBpbnRlbF93YWtl cmVmX3Qgd3JlZik7Cit2b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBpbnRlbF9ydW50 aW1lX3BtICpycG0sIGludGVsX3dha2VyZWZfdCB3cmVmKTsKICNlbHNlCiBzdGF0aWMgaW5saW5l IHZvaWQKLWludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LCBpbnRlbF93YWtlcmVmX3Qgd3JlZikKK2ludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBpbnRl bF9ydW50aW1lX3BtICpycG0sIGludGVsX3dha2VyZWZfdCB3cmVmKQogewotCWludGVsX3J1bnRp bWVfcG1fcHV0X3VuY2hlY2tlZChpOTE1KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNr ZWQocnBtKTsKIH0KICNlbmRpZgotdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dF9yYXcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludGVsX3dha2VyZWZfdCB3cmVmKTsKK3ZvaWQgaW50 ZWxfcnVudGltZV9wbV9wdXRfcmF3KHN0cnVjdCBpbnRlbF9ydW50aW1lX3BtICpycG0sIGludGVs X3dha2VyZWZfdCB3cmVmKTsKIAogI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0RFQlVH X1JVTlRJTUVfUE0pCiB2b2lkIHByaW50X2ludGVsX3J1bnRpbWVfcG1fd2FrZXJlZihzdHJ1Y3Qg aW50ZWxfcnVudGltZV9wbSAqcnBtLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfd2FrZXJlZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfd2FrZXJlZi5jCmlu ZGV4IGI2YzcxNjdjZTE1NC4uYjY3N2FlODkzZDZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF93YWtlcmVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf d2FrZXJlZi5jCkBAIC05LDE0ICs5LDE0IEBACiAKIHN0YXRpYyB2b2lkIHJwbV9nZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCBpbnRlbF93YWtlcmVmICp3ZikKIHsKLQl3 Zi0+d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdmLT53YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogfQogCiBzdGF0aWMgdm9p ZCBycG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgaW50ZWxfd2Fr ZXJlZiAqd2YpCiB7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWYgPSBmZXRjaF9hbmRfemVybygm d2YtPndha2VyZWYpOwogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJ aW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCUdFTV9C VUdfT04oIXdha2VyZWYpOwogfQogCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIHdha2Vy ZWZfYXV0b190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXdha2VyZWYgPSBmZXRjaF9h bmRfemVybygmd2YtPndha2VyZWYpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndmLT5sb2Nr LCBmbGFncyk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dCh3Zi0+aTkxNSwgd2FrZXJlZik7CisJ aW50ZWxfcnVudGltZV9wbV9wdXQoJndmLT5pOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIH0K IAogdm9pZCBpbnRlbF93YWtlcmVmX2F1dG9faW5pdChzdHJ1Y3QgaW50ZWxfd2FrZXJlZl9hdXRv ICp3ZiwKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIGludGVsX3dha2VyZWZfYXV0byhzdHJ1Y3Qg aW50ZWxfd2FrZXJlZl9hdXRvICp3ZiwgdW5zaWduZWQgbG9uZyB0aW1lb3V0KQogCQlzcGluX2xv Y2tfaXJxc2F2ZSgmd2YtPmxvY2ssIGZsYWdzKTsKIAkJaWYgKCFyZWZjb3VudF9pbmNfbm90X3pl cm8oJndmLT5jb3VudCkpIHsKIAkJCUdFTV9CVUdfT04od2YtPndha2VyZWYpOwotCQkJd2YtPndh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2Uod2YtPmk5MTUpOworCQkJd2Yt Pndha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoJndmLT5pOTE1LT5ydW50 aW1lX3BtKTsKIAkJCXJlZmNvdW50X3NldCgmd2YtPmNvdW50LCAxKTsKIAkJfQogCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZ3Zi0+bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfYWN0aXZlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9hY3RpdmUuYwppbmRleCBjYzFjYTRiZTFhMDAuLmMwYjM1MzdhNWZh NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfYWN0aXZl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfYWN0aXZlLmMKQEAg LTk3LDcgKzk3LDcgQEAgc3RhdGljIGludCBsaXZlX2FjdGl2ZV93YWl0KHZvaWQgKmFyZykKIAkv KiBDaGVjayB0aGF0IHdlIGdldCBhIGNhbGxiYWNrIHdoZW4gcmVxdWVzdHMgcmV0aXJlIHVwb24g d2FpdGluZyAqLwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2Fr ZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9ydW50 aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAllcnIgPSBfX2xpdmVfYWN0aXZlX3Nl dHVwKGk5MTUsICZhY3RpdmUpOwogCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGludCBsaXZl X2FjdGl2ZV93YWl0KHZvaWQgKmFyZykKIAlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9X QUlUX0xPQ0tFRCkpCiAJCWVyciA9IC1FSU87CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1 LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2Fr ZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4g ZXJyOwogfQpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9hY3RpdmVfcmV0aXJl KHZvaWQgKmFyZykKIAkvKiBDaGVjayB0aGF0IHdlIGdldCBhIGNhbGxiYWNrIHdoZW4gcmVxdWVz dHMgYXJlIGluZGlyZWN0bHkgcmV0aXJlZCAqLwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdh a2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAllcnIg PSBfX2xpdmVfYWN0aXZlX3NldHVwKGk5MTUsICZhY3RpdmUpOwogCkBAIC0xNDAsNyArMTQwLDcg QEAgc3RhdGljIGludCBsaXZlX2FjdGl2ZV9yZXRpcmUodm9pZCAqYXJnKQogCX0KIAogCWk5MTVf YWN0aXZlX2ZpbmkoJmFjdGl2ZS5iYXNlKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3 YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJl Zik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1cm4gZXJy OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW0uYwppbmRleCA4MzY0 MzkyOTQxNmMuLjIzYTU0ZGE0N2NhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfZ2VtLmMKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQgc2ltdWxhdGVfaGliZXJu YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCWludGVsX3dha2VyZWZfdCB3 YWtlcmVmOwogCi0Jd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2Vy ZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAkvKgogCSAq IEFzIGEgZmluYWwgc3RpbmcgaW4gdGhlIHRhaWwsIGludmFsaWRhdGUgc3RvbGVuLiBVbmRlciBh IHJlYWwgUzQsCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2b2lkIHNpbXVsYXRlX2hpYmVybmF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAkgKi8KIAl0cmFzaF9zdG9sZW4oaTkx NSk7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50 aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiB9CiAKIHN0YXRpYyBpbnQg cG1fcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0LmMKaW5kZXggNzFjMTM2M2FkNTM2 Li5lNWY2NzQ3NGRjYjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pOTE1X2dlbV9ldmljdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X2dlbV9ldmljdC5jCkBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGludCBpZ3RfZXZpY3Rf Y29udGV4dHModm9pZCAqYXJnKQogCQlyZXR1cm4gMDsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsK Kwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJ LyogUmVzZXJ2ZSBhIGJsb2NrIHNvIHRoYXQgd2Uga25vdyB3ZSBoYXZlIGVub3VnaCB0byBmaXQg YSBmZXcgcnEgKi8KIAltZW1zZXQoJmhvbGUsIDAsIHNpemVvZihob2xlKSk7CkBAIC01MTUsNyAr NTE1LDcgQEAgc3RhdGljIGludCBpZ3RfZXZpY3RfY29udGV4dHModm9pZCAqYXJnKQogCX0KIAlp ZiAoZHJtX21tX25vZGVfYWxsb2NhdGVkKCZob2xlKSkKIAkJZHJtX21tX3JlbW92ZV9ub2RlKCZo b2xlKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50 aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMjA5M2QwOGE3NTY5Li4xYTYw YjlmZTgyMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1 X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Z3R0LmMKQEAgLTI5NSw5ICsyOTUsOSBAQCBzdGF0aWMgaW50IGxvd2xldmVsX2hvbGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQltb2NrX3ZtYS5ub2RlLnNpemUgPSBCSVRfVUxM KHNpemUpOwogCQkJbW9ja192bWEubm9kZS5zdGFydCA9IGFkZHI7CiAKLQkJCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwkJCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3Bt X2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAJCQl2bS0+aW5zZXJ0X2VudHJpZXModm0sICZtb2Nr X3ZtYSwgSTkxNV9DQUNIRV9OT05FLCAwKTsKLQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUs IHdha2VyZWYpOworCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdh a2VyZWYpOwogCQl9CiAJCWNvdW50ID0gbjsKIApAQCAtMTE3MSw3ICsxMTcxLDcgQEAgc3RhdGlj IGludCBpZ3RfZ2d0dF9wYWdlKHZvaWQgKmFyZykKIAlpZiAoZXJyKQogCQlnb3RvIG91dF91bnBp bjsKIAotCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJZm9yIChuID0gMDsg biA8IGNvdW50OyBuKyspIHsKIAkJdTY0IG9mZnNldCA9IHRtcC5zdGFydCArIG4gKiBQQUdFX1NJ WkU7CkBAIC0xMjE4LDcgKzEyMTgsNyBAQCBzdGF0aWMgaW50IGlndF9nZ3R0X3BhZ2Uodm9pZCAq YXJnKQogCWtmcmVlKG9yZGVyKTsKIG91dF9yZW1vdmU6CiAJZ2d0dC0+dm0uY2xlYXJfcmFuZ2Uo JmdndHQtPnZtLCB0bXAuc3RhcnQsIHRtcC5zaXplKTsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChp OTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwg d2FrZXJlZik7CiAJZHJtX21tX3JlbW92ZV9ub2RlKCZ0bXApOwogb3V0X3VucGluOgogCWk5MTVf Z2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2k5MTVfcmVxdWVzdC5jCmluZGV4IDExMjc4YmFjM2EyNC4uZGQ0ZTcyZWFmYzZjIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jCkBAIC01 MzcsNyArNTM3LDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9yZXF1ZXN0KHZvaWQgKmFyZykKIAkg Ki8KIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9n ZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwg aWQpIHsKIAkJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCA9IE5VTEw7CkBAIC01OTcsNyAr NTk3LDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9yZXF1ZXN0KHZvaWQgKmFyZykKIAl9CiAKIG91 dF91bmxvY2s6Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxf cnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9j aygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTY4Miw3ICs2 ODIsNyBAQCBzdGF0aWMgaW50IGxpdmVfZW1wdHlfcmVxdWVzdCh2b2lkICphcmcpCiAJICovCiAK IAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZp OTE1LT5ydW50aW1lX3BtKTsKIAogCWJhdGNoID0gZW1wdHlfYmF0Y2goaTkxNSk7CiAJaWYgKElT X0VSUihiYXRjaCkpIHsKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdGF0aWMgaW50IGxpdmVfZW1wdHlf cmVxdWVzdCh2b2lkICphcmcpCiAJaTkxNV92bWFfdW5waW4oYmF0Y2gpOwogCWk5MTVfdm1hX3B1 dChiYXRjaCk7CiBvdXRfdW5sb2NrOgotCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2Vy ZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK IAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CiB9 CkBAIC04MzksNyArODM5LDcgQEAgc3RhdGljIGludCBsaXZlX2FsbF9lbmdpbmVzKHZvaWQgKmFy ZykKIAkgKi8KIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2Vy ZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGlt ZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJZXJyID0gaWd0X2xpdmVfdGVzdF9iZWdp bigmdCwgaTkxNSwgX19mdW5jX18sICIiKTsKIAlpZiAoZXJyKQpAQCAtOTE5LDcgKzkxOSw3IEBA IHN0YXRpYyBpbnQgbGl2ZV9hbGxfZW5naW5lcyh2b2lkICphcmcpCiAJaTkxNV92bWFfdW5waW4o YmF0Y2gpOwogCWk5MTVfdm1hX3B1dChiYXRjaCk7CiBvdXRfdW5sb2NrOgotCWludGVsX3J1bnRp bWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOworCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5y dW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0 ZXgpOwogCXJldHVybiBlcnI7CiB9CkBAIC05NDIsNyArOTQyLDcgQEAgc3RhdGljIGludCBsaXZl X3NlcXVlbnRpYWxfZW5naW5lcyh2b2lkICphcmcpCiAJICovCiAKIAltdXRleF9sb2NrKCZpOTE1 LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkx NSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsK IAogCWVyciA9IGlndF9saXZlX3Rlc3RfYmVnaW4oJnQsIGk5MTUsIF9fZnVuY19fLCAiIik7CiAJ aWYgKGVycikKQEAgLTEwNDgsNyArMTA0OCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9zZXF1ZW50aWFs X2VuZ2luZXModm9pZCAqYXJnKQogCQlpOTE1X3JlcXVlc3RfcHV0KHJlcXVlc3RbaWRdKTsKIAl9 CiBvdXRfdW5sb2NrOgotCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOworCWlu dGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRleF91 bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CiB9CkBAIC0xMTEz LDcgKzExMTMsNyBAQCBzdGF0aWMgaW50IGxpdmVfYnJlYWRjcnVtYnNfc21va2V0ZXN0KHZvaWQg KmFyZykKIAkgKiBPbiByZWFsIGhhcmR3YXJlIHRoaXMgdGltZS4KIAkgKi8KIAotCXdha2VyZWYg PSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9w bV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJZmlsZSA9IG1vY2tfZmlsZShpOTE1KTsKIAlp ZiAoSVNfRVJSKGZpbGUpKSB7CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCBzdGF0aWMgaW50IGxpdmVf YnJlYWRjcnVtYnNfc21va2V0ZXN0KHZvaWQgKmFyZykKIG91dF9maWxlOgogCW1vY2tfZmlsZV9m cmVlKGk5MTUsIGZpbGUpOwogb3V0X3JwbToKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3 YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJl Zik7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2k5MTVfdGltZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pOTE1X3RpbWVsaW5lLmMKaW5kZXggYWNiMmNjNTEzNmI3Li43MjRiZjM2NTBiM2UgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3RpbWVsaW5lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfdGltZWxpbmUuYwpAQCAtNTE1 LDcgKzUxNSw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3NwX2VuZ2luZSh2b2lkICphcmcpCiAJCXJl dHVybiAtRU5PTUVNOwogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0J d2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXdha2VyZWYgPSBpbnRlbF9y dW50aW1lX3BtX2dldCgmaTkxNS0+cnVudGltZV9wbSk7CiAKIAljb3VudCA9IDA7CiAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpIHsKQEAgLTU1OCw3ICs1NTgsNyBAQCBzdGF0aWMg aW50IGxpdmVfaHdzcF9lbmdpbmUodm9pZCAqYXJnKQogCQlpOTE1X3RpbWVsaW5lX3B1dCh0bCk7 CiAJfQogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50ZWxfcnVu dGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygm aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlrdmZyZWUodGltZWxpbmVzKTsKQEAgLTU5MSw3 ICs1OTEsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF9hbHRlcm5hdGUodm9pZCAqYXJnKQogCQly ZXR1cm4gLUVOT01FTTsKIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwot CXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxf cnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJY291bnQgPSAwOwogCWZvciAo biA9IDA7IG4gPCBOVU1fVElNRUxJTkVTOyBuKyspIHsKQEAgLTYzNCw3ICs2MzQsNyBAQCBzdGF0 aWMgaW50IGxpdmVfaHdzcF9hbHRlcm5hdGUodm9pZCAqYXJnKQogCQlpOTE1X3RpbWVsaW5lX3B1 dCh0bCk7CiAJfQogCi0JaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7CisJaW50 ZWxfcnVudGltZV9wbV9wdXQoJmk5MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3Vu bG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7CiAKIAlrdmZyZWUodGltZWxpbmVzKTsKQEAg LTY1OCw3ICs2NTgsNyBAQCBzdGF0aWMgaW50IGxpdmVfaHdzcF93cmFwKHZvaWQgKmFyZykKIAkg Ki8KIAogCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwotCXdha2VyZWYgPSBp bnRlbF9ydW50aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9n ZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwogCiAJdGwgPSBpOTE1X3RpbWVsaW5lX2NyZWF0ZShpOTE1 LCBOVUxMKTsKIAlpZiAoSVNfRVJSKHRsKSkgewpAQCAtNzQ5LDcgKzc0OSw3IEBAIHN0YXRpYyBp bnQgbGl2ZV9od3NwX3dyYXAodm9pZCAqYXJnKQogb3V0X2ZyZWU6CiAJaTkxNV90aW1lbGluZV9w dXQodGwpOwogb3V0X3JwbToKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsK KwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJbXV0 ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCXJldHVybiBlcnI7CkBAIC03 NzEsNyArNzcxLDcgQEAgc3RhdGljIGludCBsaXZlX2h3c3BfcmVjeWNsZSh2b2lkICphcmcpCiAJ ICovCiAKIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0g aW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJlZiA9IGludGVsX3J1bnRpbWVfcG1f Z2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWNvdW50ID0gMDsKIAlmb3JfZWFjaF9lbmdpbmUo ZW5naW5lLCBpOTE1LCBpZCkgewpAQCAtODI1LDcgKzgyNSw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9o d3NwX3JlY3ljbGUodm9pZCAqYXJnKQogb3V0OgogCWlmIChpZ3RfZmx1c2hfdGVzdChpOTE1LCBJ OTE1X1dBSVRfTE9DS0VEKSkKIAkJZXJyID0gLUVJTzsKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChp OTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwg d2FrZXJlZik7CiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAogCXJl dHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkx NV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3ZtYS5jCmluZGV4 IGExNjZkOTQwNWE5NC4uZmJjNzliMTQ4MjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaTkxNV92bWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaTkxNV92bWEuYwpAQCAtODczLDcgKzg3Myw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtYV9y ZW1hcHBlZF9ndHQodm9pZCAqYXJnKQogCiAJbXV0ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9t dXRleCk7CiAKLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoaTkxNSk7CisJd2FrZXJl ZiA9IGludGVsX3J1bnRpbWVfcG1fZ2V0KCZpOTE1LT5ydW50aW1lX3BtKTsKIAogCWZvciAodCA9 IHR5cGVzOyAqdDsgdCsrKSB7CiAJCWZvciAocCA9IHBsYW5lczsgcC0+d2lkdGg7IHArKykgewpA QCAtOTY1LDcgKzk2NSw3IEBAIHN0YXRpYyBpbnQgaWd0X3ZtYV9yZW1hcHBlZF9ndHQodm9pZCAq YXJnKQogCX0KIAogb3V0OgotCWludGVsX3J1bnRpbWVfcG1fcHV0KGk5MTUsIHdha2VyZWYpOwor CWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsKIAltdXRl eF91bmxvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCWk5MTVfZ2VtX29iamVjdF9wdXQo b2JqKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVs X2d1Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ludGVsX2d1Yy5jCmluZGV4 IDdmZDAzMjFlMDk0Ny4uNmNhODU4NGNkNjRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvaW50ZWxfZ3VjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL2ludGVsX2d1Yy5jCkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIGludCBpZ3RfZ3Vj X2NsaWVudHModm9pZCAqYXJncykKIAogCUdFTV9CVUdfT04oIUhBU19HVUMoZGV2X3ByaXYpKTsK IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Ci0Jd2FrZXJlZiA9IGlu dGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9w bV9nZXQoJmRldl9wcml2LT5ydW50aW1lX3BtKTsKIAogCWd1YyA9ICZkZXZfcHJpdi0+Z3VjOwog CWlmICghZ3VjKSB7CkBAIC0yMjcsNyArMjI3LDcgQEAgc3RhdGljIGludCBpZ3RfZ3VjX2NsaWVu dHModm9pZCAqYXJncykKIAlndWNfY2xpZW50c19jcmVhdGUoZ3VjKTsKIAlndWNfY2xpZW50c19l bmFibGUoZ3VjKTsKIHVubG9jazoKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdiwgd2Fr ZXJlZik7CisJaW50ZWxfcnVudGltZV9wbV9wdXQoJmRldl9wcml2LT5ydW50aW1lX3BtLCB3YWtl cmVmKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAlyZXR1 cm4gZXJyOwogfQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBpbnQgaWd0X2d1Y19kb29yYmVs bHModm9pZCAqYXJnKQogCiAJR0VNX0JVR19PTighSEFTX0dVQyhkZXZfcHJpdikpOwogCW11dGV4 X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKLQl3YWtlcmVmID0gaW50ZWxfcnVu dGltZV9wbV9nZXQoZGV2X3ByaXYpOworCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldCgm ZGV2X3ByaXYtPnJ1bnRpbWVfcG0pOwogCiAJZ3VjID0gJmRldl9wcml2LT5ndWM7CiAJaWYgKCFn dWMpIHsKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgaW50IGlndF9ndWNfZG9vcmJlbGxzKHZv aWQgKmFyZykKIAkJCWd1Y19jbGllbnRfZnJlZShjbGllbnRzW2ldKTsKIAkJfQogdW5sb2NrOgot CWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50aW1l X3BtX3B1dCgmZGV2X3ByaXYtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwogCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfdW5jb3JlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfdW5jb3JlLmMKaW5kZXggZTBkN2ViZWNiMjE1 Li44NjgxNWM2MDcyYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pbnRlbF91bmNvcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50 ZWxfdW5jb3JlLmMKQEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgaW50IGxpdmVfZm9yY2V3YWtl X29wcyh2b2lkICphcmcpCiAJCXJldHVybiAwOwogCX0KIAotCXdha2VyZWYgPSBpbnRlbF9ydW50 aW1lX3BtX2dldChpOTE1KTsKKwl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUt PnJ1bnRpbWVfcG0pOwogCiAJZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbiwgdW5jb3JlLCB0bXAp IHsKIAkJc21wX3N0b3JlX21iKGRvbWFpbi0+YWN0aXZlLCBmYWxzZSk7CkBAIC0yNDcsNyArMjQ3 LDcgQEAgc3RhdGljIGludCBsaXZlX2ZvcmNld2FrZV9vcHModm9pZCAqYXJnKQogCX0KIAogb3V0 X3JwbToKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1LCB3YWtlcmVmKTsKKwlpbnRlbF9ydW50 aW1lX3BtX3B1dCgmaTkxNS0+cnVudGltZV9wbSwgd2FrZXJlZik7CiAJcmV0dXJuIGVycjsKIH0K IAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=