From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 13/17] drm/i915: Isolate i915_getparam_ioctl() Date: Tue, 30 Jul 2019 14:30:31 +0100 Message-ID: <20190730133035.1977-14-chris@chris-wilson.co.uk> References: <20190730133035.1977-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id D38C26E50D for ; Tue, 30 Jul 2019 13:30:55 +0000 (UTC) In-Reply-To: <20190730133035.1977-1-chris@chris-wilson.co.uk> 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 VGhpcyBnaWFudCBzd2l0Y2ggaGFzIHRlbmRyaWxzIGFsbCBvdGhlciB0aGUgc3RydWN0IGFuZCBk b2VzIG5vdCBmaXQKaW50byB0aGUgcmVzdCBvZiB0aGUgZHJpdmVyIGJyaW5nIHVwIGFuZCBjb250 cm9sIG9mIGk5MTVfZHJ2LmMuIFB1c2ggaXQKdG8gb25lIHNpZGUgc28gdGhhdCBpdCBjYW4gZ3Jv dyBpbiBwZWFjZS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgpBY2tlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwgMTY5IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICAz ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2V0cGFyYW0uYyB8IDE2OCArKysrKysrKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKSwgMTY5 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2V0cGFyYW0uYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggMjJmN2ViM2Q3ODlmLi5mZjY4 NjkxMGJiMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC00MSw2ICs0MSw3IEBAIHN1YmRpci1j Y2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpLyQoc3JjKQogIyBjb3JlIGRyaXZlciBjb2RlCiBpOTE1 LXkgKz0gaTkxNV9kcnYubyBcCiAJICBpOTE1X2lycS5vIFwKKwkgIGk5MTVfZ2V0cGFyYW0ubyBc CiAJICBpOTE1X3BhcmFtcy5vIFwKIAkgIGk5MTVfcGNpLm8gXAogCSAgaTkxNV9zY2F0dGVybGlz dC5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGMwNzVlZDA1YmRkNC4uYTBlNDg0NzYw MzI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTYxLDIyICs2MSwxNSBAQAogCiAjaW5j bHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1faW9j dGxzLmgiCi0jaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5lX3VzZXIuaCIKICNpbmNsdWRlICJndC9p bnRlbF9ndC5oIgogI2luY2x1ZGUgImd0L2ludGVsX2d0X3BtLmgiCi0jaW5jbHVkZSAiZ3QvaW50 ZWxfcmVzZXQuaCIKLSNpbmNsdWRlICJndC9pbnRlbF93b3JrYXJvdW5kcy5oIgotI2luY2x1ZGUg Imd0L3VjL2ludGVsX3VjLmgiCiAKICNpbmNsdWRlICJpOTE1X2RlYnVnZnMuaCIKICNpbmNsdWRl ICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImk5MTVfaXJxLmgiCi0jaW5jbHVkZSAiaTkxNV9wbXUu aCIKICNpbmNsdWRlICJpOTE1X3F1ZXJ5LmgiCi0jaW5jbHVkZSAiaTkxNV90cmFjZS5oIgogI2lu Y2x1ZGUgImk5MTVfdmdwdS5oIgogI2luY2x1ZGUgImludGVsX2Nzci5oIgotI2luY2x1ZGUgImlu dGVsX2Rydi5oIgogI2luY2x1ZGUgImludGVsX3BtLmgiCiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2Ry aXZlciBkcml2ZXI7CkBAIC0zNDMsMTY4ICszMzYsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZXRl Y3RfcGNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlwY2lfZGV2X3B1dChw Y2gpOwogfQogCi1zdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dikKLXsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 Ci0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7Ci0JY29uc3Qgc3Ry dWN0IHNzZXVfZGV2X2luZm8gKnNzZXUgPSAmUlVOVElNRV9JTkZPKGRldl9wcml2KS0+c3NldTsK LQlkcm1faTkxNV9nZXRwYXJhbV90ICpwYXJhbSA9IGRhdGE7Ci0JaW50IHZhbHVlOwotCi0Jc3dp dGNoIChwYXJhbS0+cGFyYW0pIHsKLQljYXNlIEk5MTVfUEFSQU1fSVJRX0FDVElWRToKLQljYXNl IEk5MTVfUEFSQU1fQUxMT1dfQkFUQ0hCVUZGRVI6Ci0JY2FzZSBJOTE1X1BBUkFNX0xBU1RfRElT UEFUQ0g6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NPTlNUQU5UUzoKLQkJLyogUmVqZWN0 IGFsbCBvbGQgdW1zL2RyaSBwYXJhbXMuICovCi0JCXJldHVybiAtRU5PREVWOwotCWNhc2UgSTkx NV9QQVJBTV9DSElQU0VUX0lEOgotCQl2YWx1ZSA9IHBkZXYtPmRldmljZTsKLQkJYnJlYWs7Ci0J Y2FzZSBJOTE1X1BBUkFNX1JFVklTSU9OOgotCQl2YWx1ZSA9IHBkZXYtPnJldmlzaW9uOwotCQli cmVhazsKLQljYXNlIEk5MTVfUEFSQU1fTlVNX0ZFTkNFU19BVkFJTDoKLQkJdmFsdWUgPSBkZXZf cHJpdi0+Z2d0dC5udW1fZmVuY2VzOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX09W RVJMQVk6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPm92ZXJsYXkgPyAxIDogMDsKLQkJYnJlYWs7Ci0J Y2FzZSBJOTE1X1BBUkFNX0hBU19CU0Q6Ci0JCXZhbHVlID0gISFpbnRlbF9lbmdpbmVfbG9va3Vw X3VzZXIoZGV2X3ByaXYsCi0JCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURFTywgMCk7Ci0J CWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfQkxUOgotCQl2YWx1ZSA9ICEhaW50ZWxfZW5n aW5lX2xvb2t1cF91c2VyKGRldl9wcml2LAotCQkJCQkJICAgSTkxNV9FTkdJTkVfQ0xBU1NfQ09Q WSwgMCk7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfVkVCT1g6Ci0JCXZhbHVlID0g ISFpbnRlbF9lbmdpbmVfbG9va3VwX3VzZXIoZGV2X3ByaXYsCi0JCQkJCQkgICBJOTE1X0VOR0lO RV9DTEFTU19WSURFT19FTkhBTkNFLCAwKTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hB U19CU0QyOgotCQl2YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGRldl9wcml2LAot CQkJCQkJICAgSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8sIDEpOwotCQlicmVhazsKLQljYXNlIEk5 MTVfUEFSQU1fSEFTX0xMQzoKLQkJdmFsdWUgPSBIQVNfTExDKGRldl9wcml2KTsKLQkJYnJlYWs7 Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19XVDoKLQkJdmFsdWUgPSBIQVNfV1QoZGV2X3ByaXYpOwot CQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0FMSUFTSU5HX1BQR1RUOgotCQl2YWx1ZSA9 IElOVEVMX1BQR1RUKGRldl9wcml2KTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19T RU1BUEhPUkVTOgotCQl2YWx1ZSA9ICEhKGRldl9wcml2LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVf U0NIRURVTEVSX0NBUF9TRU1BUEhPUkVTKTsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0hB U19TRUNVUkVfQkFUQ0hFUzoKLQkJdmFsdWUgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOwotCQli cmVhazsKLQljYXNlIEk5MTVfUEFSQU1fQ01EX1BBUlNFUl9WRVJTSU9OOgotCQl2YWx1ZSA9IGk5 MTVfY21kX3BhcnNlcl9nZXRfdmVyc2lvbihkZXZfcHJpdik7Ci0JCWJyZWFrOwotCWNhc2UgSTkx NV9QQVJBTV9TVUJTTElDRV9UT1RBTDoKLQkJdmFsdWUgPSBpbnRlbF9zc2V1X3N1YnNsaWNlX3Rv dGFsKHNzZXUpOwotCQlpZiAoIXZhbHVlKQotCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCWJyZWFrOwot CWNhc2UgSTkxNV9QQVJBTV9FVV9UT1RBTDoKLQkJdmFsdWUgPSBzc2V1LT5ldV90b3RhbDsKLQkJ aWYgKCF2YWx1ZSkKLQkJCXJldHVybiAtRU5PREVWOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFS QU1fSEFTX0dQVV9SRVNFVDoKLQkJdmFsdWUgPSBpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2No ZWNrICYmCi0JCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGRldl9wcml2KTsKLQkJaWYgKHZhbHVlICYm IGludGVsX2hhc19yZXNldF9lbmdpbmUoZGV2X3ByaXYpKQotCQkJdmFsdWUgPSAyOwotCQlicmVh azsKLQljYXNlIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVSOgotCQl2YWx1ZSA9IDA7 Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfUE9PTEVEX0VVOgotCQl2YWx1ZSA9IEhB U19QT09MRURfRVUoZGV2X3ByaXYpOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fTUlOX0VV X0lOX1BPT0w6Ci0JCXZhbHVlID0gc3NldS0+bWluX2V1X2luX3Bvb2w7Ci0JCWJyZWFrOwotCWNh c2UgSTkxNV9QQVJBTV9IVUNfU1RBVFVTOgotCQl2YWx1ZSA9IGludGVsX2h1Y19jaGVja19zdGF0 dXMoJmRldl9wcml2LT5ndC51Yy5odWMpOwotCQlpZiAodmFsdWUgPCAwKQotCQkJcmV0dXJuIHZh bHVlOwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjoKLQkJLyog VGhvdWdoIHdlJ3ZlIHN0YXJ0ZWQgb3VyIG51bWJlcmluZyBmcm9tIDEsIGFuZCBzbyBjbGFzcyBh bGwKLQkJICogZWFybGllciB2ZXJzaW9ucyBhcyAwLCBpbiBlZmZlY3QgdGhlaXIgdmFsdWUgaXMg dW5kZWZpbmVkIGFzCi0JCSAqIHRoZSBpb2N0bCB3aWxsIHJlcG9ydCBFSU5WQUwgZm9yIHRoZSB1 bmtub3duIHBhcmFtIQotCQkgKi8KLQkJdmFsdWUgPSBpOTE1X2dlbV9tbWFwX2d0dF92ZXJzaW9u KCk7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfU0NIRURVTEVSOgotCQl2YWx1ZSA9 IGRldl9wcml2LT5jYXBzLnNjaGVkdWxlcjsKLQkJYnJlYWs7Ci0KLQljYXNlIEk5MTVfUEFSQU1f TU1BUF9WRVJTSU9OOgotCQkvKiBSZW1lbWJlciB0byBidW1wIHRoaXMgaWYgdGhlIHZlcnNpb24g Y2hhbmdlcyEgKi8KLQljYXNlIEk5MTVfUEFSQU1fSEFTX0dFTToKLQljYXNlIEk5MTVfUEFSQU1f SEFTX1BBR0VGTElQUElORzoKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNCVUYyOiAvKiBkZXBl bmRzIG9uIEdFTSAqLwotCWNhc2UgSTkxNV9QQVJBTV9IQVNfUkVMQVhFRF9GRU5DSU5HOgotCWNh c2UgSTkxNV9QQVJBTV9IQVNfQ09IRVJFTlRfUklOR1M6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19S RUxBWEVEX0RFTFRBOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfR0VON19TT0xfUkVTRVQ6Ci0JY2Fz ZSBJOTE1X1BBUkFNX0hBU19XQUlUX1RJTUVPVVQ6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19QUklN RV9WTUFQX0ZMVVNIOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfUElOTkVEX0JBVENIRVM6Ci0JY2Fz ZSBJOTE1X1BBUkFNX0hBU19FWEVDX05PX1JFTE9DOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhF Q19IQU5ETEVfTFVUOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfQ09IRVJFTlRfUEhZU19HVFQ6Ci0J Y2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX1NPRlRQSU46Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19F WEVDX0FTWU5DOgotCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRToKLQljYXNlIEk5MTVf UEFSQU1fSEFTX0VYRUNfQ0FQVFVSRToKLQljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfQkFUQ0hf RklSU1Q6Ci0JY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFX0FSUkFZOgotCWNhc2UgSTkx NV9QQVJBTV9IQVNfRVhFQ19TVUJNSVRfRkVOQ0U6Ci0JCS8qIEZvciB0aGUgdGltZSBiZWluZyBh bGwgb2YgdGhlc2UgYXJlIGFsd2F5cyB0cnVlOwotCQkgKiBpZiBzb21lIHN1cHBvcnRlZCBoYXJk d2FyZSBkb2VzIG5vdCBoYXZlIG9uZSBvZiB0aGVzZQotCQkgKiBmZWF0dXJlcyB0aGlzIHZhbHVl IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGZyb20KLQkJICogSU5URUxfSU5GTygpLCBhIGZlYXR1cmUg bWFjcm8sIG9yIHNpbWlsYXIuCi0JCSAqLwotCQl2YWx1ZSA9IDE7Ci0JCWJyZWFrOwotCWNhc2Ug STkxNV9QQVJBTV9IQVNfQ09OVEVYVF9JU09MQVRJT046Ci0JCXZhbHVlID0gaW50ZWxfZW5naW5l c19oYXNfY29udGV4dF9pc29sYXRpb24oZGV2X3ByaXYpOwotCQlicmVhazsKLQljYXNlIEk5MTVf UEFSQU1fU0xJQ0VfTUFTSzoKLQkJdmFsdWUgPSBzc2V1LT5zbGljZV9tYXNrOwotCQlpZiAoIXZh bHVlKQotCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCWJyZWFrOwotCWNhc2UgSTkxNV9QQVJBTV9TVUJT TElDRV9NQVNLOgotCQl2YWx1ZSA9IHNzZXUtPnN1YnNsaWNlX21hc2tbMF07Ci0JCWlmICghdmFs dWUpCi0JCQlyZXR1cm4gLUVOT0RFVjsKLQkJYnJlYWs7Ci0JY2FzZSBJOTE1X1BBUkFNX0NTX1RJ TUVTVEFNUF9GUkVRVUVOQ1k6Ci0JCXZhbHVlID0gMTAwMCAqIFJVTlRJTUVfSU5GTyhkZXZfcHJp diktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6OwotCQlicmVhazsKLQljYXNlIEk5MTVfUEFS QU1fTU1BUF9HVFRfQ09IRVJFTlQ6Ci0JCXZhbHVlID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmhh c19jb2hlcmVudF9nZ3R0OwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fREVCVUcoIlVua25v d24gcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9 Ci0KLQlpZiAocHV0X3VzZXIodmFsdWUsIHBhcmFtLT52YWx1ZSkpCi0JCXJldHVybiAtRUZBVUxU OwotCi0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgaTkxNV9nZXRfYnJpZGdlX2RldihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaW50IGRvbWFpbiA9IHBjaV9kb21h aW5fbnIoZGV2X3ByaXYtPmRybS5wZGV2LT5idXMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5k ZXggNTcxNjBlNGMwNzAxLi5kNDIwYjBmYTBkMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApA QCAtMjM5OSw2ICsyMzk5LDkgQEAgc3RhdGljIGlubGluZSBib29sIGludGVsX3ZncHVfYWN0aXZl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gZGV2X3ByaXYtPnZn cHUuYWN0aXZlOwogfQogCitpbnQgaTkxNV9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCiAv KiBpOTE1X2dlbS5jICovCiBpbnQgaTkxNV9nZW1faW5pdF91c2VycHRyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfdXNlcnB0cihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZXRwYXJhbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRw YXJhbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWQ5MTAxMzc2 YTNkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZXRwYXJh bS5jCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1J VAorICovCisKKyNpbmNsdWRlICJndC9pbnRlbF9lbmdpbmVfdXNlci5oIgorCisjaW5jbHVkZSAi aTkxNV9kcnYuaCIKKworaW50IGk5MTVfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShkZXYpOworCWNvbnN0IHN0cnVj dCBzc2V1X2Rldl9pbmZvICpzc2V1ID0gJlJVTlRJTUVfSU5GTyhpOTE1KS0+c3NldTsKKwlkcm1f aTkxNV9nZXRwYXJhbV90ICpwYXJhbSA9IGRhdGE7CisJaW50IHZhbHVlOworCisJc3dpdGNoIChw YXJhbS0+cGFyYW0pIHsKKwljYXNlIEk5MTVfUEFSQU1fSVJRX0FDVElWRToKKwljYXNlIEk5MTVf UEFSQU1fQUxMT1dfQkFUQ0hCVUZGRVI6CisJY2FzZSBJOTE1X1BBUkFNX0xBU1RfRElTUEFUQ0g6 CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0NPTlNUQU5UUzoKKwkJLyogUmVqZWN0IGFsbCBv bGQgdW1zL2RyaSBwYXJhbXMuICovCisJCXJldHVybiAtRU5PREVWOworCWNhc2UgSTkxNV9QQVJB TV9DSElQU0VUX0lEOgorCQl2YWx1ZSA9IGk5MTUtPmRybS5wZGV2LT5kZXZpY2U7CisJCWJyZWFr OworCWNhc2UgSTkxNV9QQVJBTV9SRVZJU0lPTjoKKwkJdmFsdWUgPSBpOTE1LT5kcm0ucGRldi0+ cmV2aXNpb247CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9OVU1fRkVOQ0VTX0FWQUlMOgor CQl2YWx1ZSA9IGk5MTUtPmdndHQubnVtX2ZlbmNlczsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BB UkFNX0hBU19PVkVSTEFZOgorCQl2YWx1ZSA9ICEhaTkxNS0+b3ZlcmxheTsKKwkJYnJlYWs7CisJ Y2FzZSBJOTE1X1BBUkFNX0hBU19CU0Q6CisJCXZhbHVlID0gISFpbnRlbF9lbmdpbmVfbG9va3Vw X3VzZXIoaTkxNSwKKwkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPLCAwKTsKKwkJYnJl YWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19CTFQ6CisJCXZhbHVlID0gISFpbnRlbF9lbmdpbmVf bG9va3VwX3VzZXIoaTkxNSwKKwkJCQkJCSAgIEk5MTVfRU5HSU5FX0NMQVNTX0NPUFksIDApOwor CQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1ZFQk9YOgorCQl2YWx1ZSA9ICEhaW50ZWxf ZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsCisJCQkJCQkgICBJOTE1X0VOR0lORV9DTEFTU19WSURF T19FTkhBTkNFLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19CU0QyOgorCQl2 YWx1ZSA9ICEhaW50ZWxfZW5naW5lX2xvb2t1cF91c2VyKGk5MTUsCisJCQkJCQkgICBJOTE1X0VO R0lORV9DTEFTU19WSURFTywgMSk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IQVNfTExD OgorCQl2YWx1ZSA9IEhBU19MTEMoaTkxNSk7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9I QVNfV1Q6CisJCXZhbHVlID0gSEFTX1dUKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFS QU1fSEFTX0FMSUFTSU5HX1BQR1RUOgorCQl2YWx1ZSA9IElOVEVMX1BQR1RUKGk5MTUpOworCQli cmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1NFTUFQSE9SRVM6CisJCXZhbHVlID0gISEoaTkx NS0+Y2Fwcy5zY2hlZHVsZXIgJiBJOTE1X1NDSEVEVUxFUl9DQVBfU0VNQVBIT1JFUyk7CisJCWJy ZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IQVNfU0VDVVJFX0JBVENIRVM6CisJCXZhbHVlID0gY2Fw YWJsZShDQVBfU1lTX0FETUlOKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NNRF9QQVJT RVJfVkVSU0lPTjoKKwkJdmFsdWUgPSBpOTE1X2NtZF9wYXJzZXJfZ2V0X3ZlcnNpb24oaTkxNSk7 CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElDRV9UT1RBTDoKKwkJdmFsdWUgPSBp bnRlbF9zc2V1X3N1YnNsaWNlX3RvdGFsKHNzZXUpOworCQlpZiAoIXZhbHVlKQorCQkJcmV0dXJu IC1FTk9ERVY7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9FVV9UT1RBTDoKKwkJdmFsdWUg PSBzc2V1LT5ldV90b3RhbDsKKwkJaWYgKCF2YWx1ZSkKKwkJCXJldHVybiAtRU5PREVWOworCQli cmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0dQVV9SRVNFVDoKKwkJdmFsdWUgPSBpOTE1X21v ZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrICYmCisJCQlpbnRlbF9oYXNfZ3B1X3Jlc2V0KGk5MTUp OworCQlpZiAodmFsdWUgJiYgaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZShpOTE1KSkKKwkJCXZhbHVl ID0gMjsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19SRVNPVVJDRV9TVFJFQU1FUjoK KwkJdmFsdWUgPSAwOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1BPT0xFRF9FVToK KwkJdmFsdWUgPSBIQVNfUE9PTEVEX0VVKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFS QU1fTUlOX0VVX0lOX1BPT0w6CisJCXZhbHVlID0gc3NldS0+bWluX2V1X2luX3Bvb2w7CisJCWJy ZWFrOworCWNhc2UgSTkxNV9QQVJBTV9IVUNfU1RBVFVTOgorCQl2YWx1ZSA9IGludGVsX2h1Y19j aGVja19zdGF0dXMoJmk5MTUtPmd0LnVjLmh1Yyk7CisJCWlmICh2YWx1ZSA8IDApCisJCQlyZXR1 cm4gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9NTUFQX0dUVF9WRVJTSU9OOgor CQkvKiBUaG91Z2ggd2UndmUgc3RhcnRlZCBvdXIgbnVtYmVyaW5nIGZyb20gMSwgYW5kIHNvIGNs YXNzIGFsbAorCQkgKiBlYXJsaWVyIHZlcnNpb25zIGFzIDAsIGluIGVmZmVjdCB0aGVpciB2YWx1 ZSBpcyB1bmRlZmluZWQgYXMKKwkJICogdGhlIGlvY3RsIHdpbGwgcmVwb3J0IEVJTlZBTCBmb3Ig dGhlIHVua25vd24gcGFyYW0hCisJCSAqLworCQl2YWx1ZSA9IGk5MTVfZ2VtX21tYXBfZ3R0X3Zl cnNpb24oKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVI6CisJCXZh bHVlID0gaTkxNS0+Y2Fwcy5zY2hlZHVsZXI7CisJCWJyZWFrOworCisJY2FzZSBJOTE1X1BBUkFN X01NQVBfVkVSU0lPTjoKKwkJLyogUmVtZW1iZXIgdG8gYnVtcCB0aGlzIGlmIHRoZSB2ZXJzaW9u IGNoYW5nZXMhICovCisJY2FzZSBJOTE1X1BBUkFNX0hBU19HRU06CisJY2FzZSBJOTE1X1BBUkFN X0hBU19QQUdFRkxJUFBJTkc6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDQlVGMjogLyogZGVw ZW5kcyBvbiBHRU0gKi8KKwljYXNlIEk5MTVfUEFSQU1fSEFTX1JFTEFYRURfRkVOQ0lORzoKKwlj YXNlIEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1JJTkdTOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNf UkVMQVhFRF9ERUxUQToKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0dFTjdfU09MX1JFU0VUOgorCWNh c2UgSTkxNV9QQVJBTV9IQVNfV0FJVF9USU1FT1VUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfUFJJ TUVfVk1BUF9GTFVTSDoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX1BJTk5FRF9CQVRDSEVTOgorCWNh c2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19OT19SRUxPQzoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VY RUNfSEFORExFX0xVVDoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0NPSEVSRU5UX1BIWVNfR1RUOgor CWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNf RVhFQ19BU1lOQzoKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfRkVOQ0U6CisJY2FzZSBJOTE1 X1BBUkFNX0hBU19FWEVDX0NBUFRVUkU6CisJY2FzZSBJOTE1X1BBUkFNX0hBU19FWEVDX0JBVENI X0ZJUlNUOgorCWNhc2UgSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRV9BUlJBWToKKwljYXNlIEk5 MTVfUEFSQU1fSEFTX0VYRUNfU1VCTUlUX0ZFTkNFOgorCQkvKiBGb3IgdGhlIHRpbWUgYmVpbmcg YWxsIG9mIHRoZXNlIGFyZSBhbHdheXMgdHJ1ZTsKKwkJICogaWYgc29tZSBzdXBwb3J0ZWQgaGFy ZHdhcmUgZG9lcyBub3QgaGF2ZSBvbmUgb2YgdGhlc2UKKwkJICogZmVhdHVyZXMgdGhpcyB2YWx1 ZSBuZWVkcyB0byBiZSBwcm92aWRlZCBmcm9tCisJCSAqIElOVEVMX0lORk8oKSwgYSBmZWF0dXJl IG1hY3JvLCBvciBzaW1pbGFyLgorCQkgKi8KKwkJdmFsdWUgPSAxOworCQlicmVhazsKKwljYXNl IEk5MTVfUEFSQU1fSEFTX0NPTlRFWFRfSVNPTEFUSU9OOgorCQl2YWx1ZSA9IGludGVsX2VuZ2lu ZXNfaGFzX2NvbnRleHRfaXNvbGF0aW9uKGk5MTUpOworCQlicmVhazsKKwljYXNlIEk5MTVfUEFS QU1fU0xJQ0VfTUFTSzoKKwkJdmFsdWUgPSBzc2V1LT5zbGljZV9tYXNrOworCQlpZiAoIXZhbHVl KQorCQkJcmV0dXJuIC1FTk9ERVY7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9TVUJTTElD RV9NQVNLOgorCQl2YWx1ZSA9IHNzZXUtPnN1YnNsaWNlX21hc2tbMF07CisJCWlmICghdmFsdWUp CisJCQlyZXR1cm4gLUVOT0RFVjsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1BBUkFNX0NTX1RJTUVT VEFNUF9GUkVRVUVOQ1k6CisJCXZhbHVlID0gMTAwMCAqIFJVTlRJTUVfSU5GTyhpOTE1KS0+Y3Nf dGltZXN0YW1wX2ZyZXF1ZW5jeV9raHo7CisJCWJyZWFrOworCWNhc2UgSTkxNV9QQVJBTV9NTUFQ X0dUVF9DT0hFUkVOVDoKKwkJdmFsdWUgPSBJTlRFTF9JTkZPKGk5MTUpLT5oYXNfY29oZXJlbnRf Z2d0dDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHKCJVbmtub3duIHBhcmFtZXRl ciAlZFxuIiwgcGFyYW0tPnBhcmFtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHB1 dF91c2VyKHZhbHVlLCBwYXJhbS0+dmFsdWUpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJldHVy biAwOworfQotLSAKMi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZng=