From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 21/27] gem_wsim: Allow RCS virtual engine with SSEU control Date: Mon, 20 May 2019 15:47:33 +0100 Message-ID: <20190520144739.13111-22-tvrtko.ursulin@linux.intel.com> References: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRvIGFsbG93 IGV4ZXJjaXNpbmcgdGhlIFNTRVUgY29uZmlndXJhdGlvbiBpbiBjb21iaW5hdGlvbiB3aXRoIFZp cnR1YWwKRW5naW5lLCBhbGxvdyBSQ1MgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBlbmdpbmUgbWFw IGFuZCB1c2UgYXBwcm9wcmlhdGUKaW5kZXggYmFzZWQgYWRkcmVzc2luZyB3aGVuIGFwcGx5aW5n IFNTRVUgY29uZmlndXJhdGlvbiB0byBpdC4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBiZW5jaG1hcmtzL2dlbV93c2ltLmMgfCA1MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmVuY2ht YXJrcy9nZW1fd3NpbS5jIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5jCmluZGV4IGVkZTUwNWU1Mzdm ZC4uZmU3MGU3NzE5ZDg4IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIv YmVuY2htYXJrcy9nZW1fd3NpbS5jCkBAIC0zODIsNyArMzgyLDggQEAgc3RhdGljIGludCBwYXJz ZV9lbmdpbmVfbWFwKHN0cnVjdCB3X3N0ZXAgKnN0ZXAsIGNvbnN0IGNoYXIgKl9zdHIpCiAJCWlm ICgoaW50KWVuZ2luZSA8IDApCiAJCQlyZXR1cm4gLTE7CiAKLQkJaWYgKGVuZ2luZSAhPSBWQ1Mg JiYgZW5naW5lICE9IFZDUzEgJiYgZW5naW5lICE9IFZDUzIpCisJCWlmIChlbmdpbmUgIT0gVkNT ICYmIGVuZ2luZSAhPSBWQ1MxICYmIGVuZ2luZSAhPSBWQ1MyICYmCisJCSAgICBlbmdpbmUgIT0g UkNTKQogCQkJcmV0dXJuIC0xOyAvKiBUT0RPICovCiAKIAkJYWRkID0gZW5naW5lID09IFZDUyA/ IDIgOiAxOwpAQCAtMTE4Myw3ICsxMTg0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1f Y29udGV4dF9wYXJhbV9zc2V1IGdldF9kZXZpY2Vfc3NldSh2b2lkKQogfQogCiBzdGF0aWMgdWlu dDY0X3QKLXNldF9jdHhfc3NldSh1aW50MzJfdCBjdHgsIHVpbnQ2NF90IHNsaWNlX21hc2spCitz ZXRfY3R4X3NzZXUoc3RydWN0IGN0eCAqY3R4LCB1aW50NjRfdCBzbGljZV9tYXNrKQogewogCXN0 cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHNzZXUgPSBnZXRfZGV2aWNlX3Nz ZXUoKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0gPSB7IH07CkBA IC0xMTkxLDEwICsxMTkyLDE3IEBAIHNldF9jdHhfc3NldSh1aW50MzJfdCBjdHgsIHVpbnQ2NF90 IHNsaWNlX21hc2spCiAJaWYgKHNsaWNlX21hc2sgPT0gLTEpCiAJCXNsaWNlX21hc2sgPSBkZXZp Y2Vfc3NldS5zbGljZV9tYXNrOwogCisJaWYgKGN0eC0+ZW5naW5lX21hcCAmJiBjdHgtPndhbnRz X2JhbGFuY2UpIHsKKwkJc3NldS5mbGFncyA9IEk5MTVfQ09OVEVYVF9TU0VVX0ZMQUdfRU5HSU5F X0lOREVYOworCQlzc2V1LmVuZ2luZS5lbmdpbmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19J TlZBTElEOworCQlzc2V1LmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCX0KKwogCXNzZXUu c2xpY2VfbWFzayA9IHNsaWNlX21hc2s7CiAKLQlwYXJhbS5jdHhfaWQgPSBjdHg7CisJcGFyYW0u Y3R4X2lkID0gY3R4LT5pZDsKIAlwYXJhbS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VV OworCXBhcmFtLnNpemUgPSBzaXplb2Yoc3NldSk7CiAJcGFyYW0udmFsdWUgPSAodWludHB0cl90 KSZzc2V1OwogCiAJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAmcGFyYW0pOwpAQCAtMTQ1OCwx MCArMTQ2NiwxNyBAQCBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdv cmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIAkJCQkJY3R4LT5lbmdpbmVfbWFwX2Nv dW50OwogCiAJCQkJZm9yIChqID0gMDsgaiA8IGN0eC0+ZW5naW5lX21hcF9jb3VudDsgaisrKSB7 Ci0JCQkJCWxvYWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9jbGFzcyA9Ci0JCQkJCQlJOTE1 X0VOR0lORV9DTEFTU19WSURFTzsgLyogRklYTUUgKi8KLQkJCQkJbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbal0uZW5naW5lX2luc3RhbmNlID0KLQkJCQkJCWN0eC0+ZW5naW5lX21hcFtqXSAtIFZDUzE7 IC8qIEZJWE1FICovCisJCQkJCWlmIChjdHgtPmVuZ2luZV9tYXBbal0gPT0gUkNTKSB7CisJCQkJ CQlsb2FkX2JhbGFuY2UuZW5naW5lc1tqXS5lbmdpbmVfY2xhc3MgPQorCQkJCQkJCUk5MTVfRU5H SU5FX0NMQVNTX1JFTkRFUjsKKwkJCQkJCWxvYWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9p bnN0YW5jZSA9CisJCQkJCQkJMDsgLyogRklYTUUgKi8KKwkJCQkJfSBlbHNlIHsKKwkJCQkJCWxv YWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9jbGFzcyA9CisJCQkJCQkJSTkxNV9FTkdJTkVf Q0xBU1NfVklERU87IC8qIEZJWE1FICovCisJCQkJCQlsb2FkX2JhbGFuY2UuZW5naW5lc1tqXS5l bmdpbmVfaW5zdGFuY2UgPQorCQkJCQkJCWN0eC0+ZW5naW5lX21hcFtqXSAtIFZDUzE7IC8qIEZJ WE1FICovCisJCQkJCX0KIAkJCQl9CiAJCQl9IGVsc2UgewogCQkJCXNldF9lbmdpbmVzLmV4dGVu c2lvbnMgPSAwOwpAQCAtMTQ3NCwxMCArMTQ4OSwxNiBAQCBwcmVwYXJlX3dvcmtsb2FkKHVuc2ln bmVkIGludCBpZCwgc3RydWN0IHdvcmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIAkJ CQlJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7CiAKIAkJCWZvciAoaiA9IDE7IGogPD0g Y3R4LT5lbmdpbmVfbWFwX2NvdW50OyBqKyspIHsKLQkJCQlzZXRfZW5naW5lcy5lbmdpbmVzW2pd LmVuZ2luZV9jbGFzcyA9Ci0JCQkJCUk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOyAvKiBGSVhNRSAq LwotCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5naW5lX2luc3RhbmNlID0KLQkJCQkJY3R4 LT5lbmdpbmVfbWFwW2ogLSAxXSAtIFZDUzE7IC8qIEZJWE1FICovCisJCQkJaWYgKGN0eC0+ZW5n aW5lX21hcFtqIC0gMV0gPT0gUkNTKSB7CisJCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5n aW5lX2NsYXNzID0KKwkJCQkJCUk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUjsKKwkJCQkJc2V0X2Vu Z2luZXMuZW5naW5lc1tqXS5lbmdpbmVfaW5zdGFuY2UgPSAwOyAvKiBGSVhNRSAqLworCQkJCX0g ZWxzZSB7CisJCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5naW5lX2NsYXNzID0KKwkJCQkJ CUk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOyAvKiBGSVhNRSAqLworCQkJCQlzZXRfZW5naW5lcy5l bmdpbmVzW2pdLmVuZ2luZV9pbnN0YW5jZSA9CisJCQkJCQljdHgtPmVuZ2luZV9tYXBbaiAtIDFd IC0gVkNTMTsgLyogRklYTUUgKi8KKwkJCQl9CiAJCQl9CiAKIAkJCWZvciAoaiA9IDA7IGogPCBj dHgtPmJvbmRfY291bnQ7IGorKykgewpAQCAtMTU1Niw3ICsxNTc3LDcgQEAgcHJlcGFyZV93b3Jr bG9hZCh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCB3b3JrbG9hZCAqd3JrLCB1bnNpZ25lZCBpbnQg ZmxhZ3MpCiAKIAkJaWYgKHdyay0+c3NldSkgewogCQkJLyogU2V0IHRvIHNsaWNlIDAgb25seSwg b25lIHNsaWNlLiAqLwotCQkJY3R4LT5zc2V1ID0gc2V0X2N0eF9zc2V1KGN0eF9pZCwgMSk7CisJ CQljdHgtPnNzZXUgPSBzZXRfY3R4X3NzZXUoY3R4LCAxKTsKIAkJfQogCiAJCWlmIChzaGFyZV92 bSkKQEAgLTI1NDAsOSArMjU2MSw5IEBAIHN0YXRpYyB2b2lkICpydW5fd29ya2xvYWQodm9pZCAq ZGF0YSkKIAkJCQkgICB3LT50eXBlID09IEJPTkQpIHsKIAkJCQljb250aW51ZTsKIAkJCX0gZWxz ZSBpZiAody0+dHlwZSA9PSBTU0VVKSB7Ci0JCQkJaWYgKHctPnNzZXUgIT0gd3JrLT5jdHhfbGlz dFt3LT5jb250ZXh0XS5zc2V1KSB7Ci0JCQkJCXdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dF0uc3Nl dSA9Ci0JCQkJCQlzZXRfY3R4X3NzZXUod3JrLT5jdHhfbGlzdFt3LT5jb250ZXh0XS5pZCwKKwkJ CQlpZiAody0+c3NldSAhPSB3cmstPmN0eF9saXN0W3ctPmNvbnRleHQgKiAyXS5zc2V1KSB7CisJ CQkJCXdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dCAqIDJdLnNzZXUgPQorCQkJCQkJc2V0X2N0eF9z c2V1KCZ3cmstPmN0eF9saXN0W3ctPmNvbnRleHQgKiAyXSwKIAkJCQkJCQkgICAgIHctPnNzZXUp OwogCQkJCX0KIAkJCQljb250aW51ZTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Mon, 20 May 2019 15:47:33 +0100 Message-Id: <20190520144739.13111-22-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> References: <20190520144739.13111-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 21/27] gem_wsim: Allow RCS virtual engine with SSEU control List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRvIGFsbG93 IGV4ZXJjaXNpbmcgdGhlIFNTRVUgY29uZmlndXJhdGlvbiBpbiBjb21iaW5hdGlvbiB3aXRoIFZp cnR1YWwKRW5naW5lLCBhbGxvdyBSQ1MgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBlbmdpbmUgbWFw IGFuZCB1c2UgYXBwcm9wcmlhdGUKaW5kZXggYmFzZWQgYWRkcmVzc2luZyB3aGVuIGFwcGx5aW5n IFNTRVUgY29uZmlndXJhdGlvbiB0byBpdC4KClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGlu IDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBiZW5jaG1hcmtzL2dlbV93c2ltLmMgfCA1MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmVuY2ht YXJrcy9nZW1fd3NpbS5jIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5jCmluZGV4IGVkZTUwNWU1Mzdm ZC4uZmU3MGU3NzE5ZDg4IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL2dlbV93c2ltLmMKKysrIGIv YmVuY2htYXJrcy9nZW1fd3NpbS5jCkBAIC0zODIsNyArMzgyLDggQEAgc3RhdGljIGludCBwYXJz ZV9lbmdpbmVfbWFwKHN0cnVjdCB3X3N0ZXAgKnN0ZXAsIGNvbnN0IGNoYXIgKl9zdHIpCiAJCWlm ICgoaW50KWVuZ2luZSA8IDApCiAJCQlyZXR1cm4gLTE7CiAKLQkJaWYgKGVuZ2luZSAhPSBWQ1Mg JiYgZW5naW5lICE9IFZDUzEgJiYgZW5naW5lICE9IFZDUzIpCisJCWlmIChlbmdpbmUgIT0gVkNT ICYmIGVuZ2luZSAhPSBWQ1MxICYmIGVuZ2luZSAhPSBWQ1MyICYmCisJCSAgICBlbmdpbmUgIT0g UkNTKQogCQkJcmV0dXJuIC0xOyAvKiBUT0RPICovCiAKIAkJYWRkID0gZW5naW5lID09IFZDUyA/ IDIgOiAxOwpAQCAtMTE4Myw3ICsxMTg0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1f Y29udGV4dF9wYXJhbV9zc2V1IGdldF9kZXZpY2Vfc3NldSh2b2lkKQogfQogCiBzdGF0aWMgdWlu dDY0X3QKLXNldF9jdHhfc3NldSh1aW50MzJfdCBjdHgsIHVpbnQ2NF90IHNsaWNlX21hc2spCitz ZXRfY3R4X3NzZXUoc3RydWN0IGN0eCAqY3R4LCB1aW50NjRfdCBzbGljZV9tYXNrKQogewogCXN0 cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHNzZXUgPSBnZXRfZGV2aWNlX3Nz ZXUoKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcGFyYW0gPSB7IH07CkBA IC0xMTkxLDEwICsxMTkyLDE3IEBAIHNldF9jdHhfc3NldSh1aW50MzJfdCBjdHgsIHVpbnQ2NF90 IHNsaWNlX21hc2spCiAJaWYgKHNsaWNlX21hc2sgPT0gLTEpCiAJCXNsaWNlX21hc2sgPSBkZXZp Y2Vfc3NldS5zbGljZV9tYXNrOwogCisJaWYgKGN0eC0+ZW5naW5lX21hcCAmJiBjdHgtPndhbnRz X2JhbGFuY2UpIHsKKwkJc3NldS5mbGFncyA9IEk5MTVfQ09OVEVYVF9TU0VVX0ZMQUdfRU5HSU5F X0lOREVYOworCQlzc2V1LmVuZ2luZS5lbmdpbmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19J TlZBTElEOworCQlzc2V1LmVuZ2luZS5lbmdpbmVfaW5zdGFuY2UgPSAwOworCX0KKwogCXNzZXUu c2xpY2VfbWFzayA9IHNsaWNlX21hc2s7CiAKLQlwYXJhbS5jdHhfaWQgPSBjdHg7CisJcGFyYW0u Y3R4X2lkID0gY3R4LT5pZDsKIAlwYXJhbS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VV OworCXBhcmFtLnNpemUgPSBzaXplb2Yoc3NldSk7CiAJcGFyYW0udmFsdWUgPSAodWludHB0cl90 KSZzc2V1OwogCiAJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGZkLCAmcGFyYW0pOwpAQCAtMTQ1OCwx MCArMTQ2NiwxNyBAQCBwcmVwYXJlX3dvcmtsb2FkKHVuc2lnbmVkIGludCBpZCwgc3RydWN0IHdv cmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIAkJCQkJY3R4LT5lbmdpbmVfbWFwX2Nv dW50OwogCiAJCQkJZm9yIChqID0gMDsgaiA8IGN0eC0+ZW5naW5lX21hcF9jb3VudDsgaisrKSB7 Ci0JCQkJCWxvYWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9jbGFzcyA9Ci0JCQkJCQlJOTE1 X0VOR0lORV9DTEFTU19WSURFTzsgLyogRklYTUUgKi8KLQkJCQkJbG9hZF9iYWxhbmNlLmVuZ2lu ZXNbal0uZW5naW5lX2luc3RhbmNlID0KLQkJCQkJCWN0eC0+ZW5naW5lX21hcFtqXSAtIFZDUzE7 IC8qIEZJWE1FICovCisJCQkJCWlmIChjdHgtPmVuZ2luZV9tYXBbal0gPT0gUkNTKSB7CisJCQkJ CQlsb2FkX2JhbGFuY2UuZW5naW5lc1tqXS5lbmdpbmVfY2xhc3MgPQorCQkJCQkJCUk5MTVfRU5H SU5FX0NMQVNTX1JFTkRFUjsKKwkJCQkJCWxvYWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9p bnN0YW5jZSA9CisJCQkJCQkJMDsgLyogRklYTUUgKi8KKwkJCQkJfSBlbHNlIHsKKwkJCQkJCWxv YWRfYmFsYW5jZS5lbmdpbmVzW2pdLmVuZ2luZV9jbGFzcyA9CisJCQkJCQkJSTkxNV9FTkdJTkVf Q0xBU1NfVklERU87IC8qIEZJWE1FICovCisJCQkJCQlsb2FkX2JhbGFuY2UuZW5naW5lc1tqXS5l bmdpbmVfaW5zdGFuY2UgPQorCQkJCQkJCWN0eC0+ZW5naW5lX21hcFtqXSAtIFZDUzE7IC8qIEZJ WE1FICovCisJCQkJCX0KIAkJCQl9CiAJCQl9IGVsc2UgewogCQkJCXNldF9lbmdpbmVzLmV4dGVu c2lvbnMgPSAwOwpAQCAtMTQ3NCwxMCArMTQ4OSwxNiBAQCBwcmVwYXJlX3dvcmtsb2FkKHVuc2ln bmVkIGludCBpZCwgc3RydWN0IHdvcmtsb2FkICp3cmssIHVuc2lnbmVkIGludCBmbGFncykKIAkJ CQlJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7CiAKIAkJCWZvciAoaiA9IDE7IGogPD0g Y3R4LT5lbmdpbmVfbWFwX2NvdW50OyBqKyspIHsKLQkJCQlzZXRfZW5naW5lcy5lbmdpbmVzW2pd LmVuZ2luZV9jbGFzcyA9Ci0JCQkJCUk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOyAvKiBGSVhNRSAq LwotCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5naW5lX2luc3RhbmNlID0KLQkJCQkJY3R4 LT5lbmdpbmVfbWFwW2ogLSAxXSAtIFZDUzE7IC8qIEZJWE1FICovCisJCQkJaWYgKGN0eC0+ZW5n aW5lX21hcFtqIC0gMV0gPT0gUkNTKSB7CisJCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5n aW5lX2NsYXNzID0KKwkJCQkJCUk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUjsKKwkJCQkJc2V0X2Vu Z2luZXMuZW5naW5lc1tqXS5lbmdpbmVfaW5zdGFuY2UgPSAwOyAvKiBGSVhNRSAqLworCQkJCX0g ZWxzZSB7CisJCQkJCXNldF9lbmdpbmVzLmVuZ2luZXNbal0uZW5naW5lX2NsYXNzID0KKwkJCQkJ CUk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOyAvKiBGSVhNRSAqLworCQkJCQlzZXRfZW5naW5lcy5l bmdpbmVzW2pdLmVuZ2luZV9pbnN0YW5jZSA9CisJCQkJCQljdHgtPmVuZ2luZV9tYXBbaiAtIDFd IC0gVkNTMTsgLyogRklYTUUgKi8KKwkJCQl9CiAJCQl9CiAKIAkJCWZvciAoaiA9IDA7IGogPCBj dHgtPmJvbmRfY291bnQ7IGorKykgewpAQCAtMTU1Niw3ICsxNTc3LDcgQEAgcHJlcGFyZV93b3Jr bG9hZCh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCB3b3JrbG9hZCAqd3JrLCB1bnNpZ25lZCBpbnQg ZmxhZ3MpCiAKIAkJaWYgKHdyay0+c3NldSkgewogCQkJLyogU2V0IHRvIHNsaWNlIDAgb25seSwg b25lIHNsaWNlLiAqLwotCQkJY3R4LT5zc2V1ID0gc2V0X2N0eF9zc2V1KGN0eF9pZCwgMSk7CisJ CQljdHgtPnNzZXUgPSBzZXRfY3R4X3NzZXUoY3R4LCAxKTsKIAkJfQogCiAJCWlmIChzaGFyZV92 bSkKQEAgLTI1NDAsOSArMjU2MSw5IEBAIHN0YXRpYyB2b2lkICpydW5fd29ya2xvYWQodm9pZCAq ZGF0YSkKIAkJCQkgICB3LT50eXBlID09IEJPTkQpIHsKIAkJCQljb250aW51ZTsKIAkJCX0gZWxz ZSBpZiAody0+dHlwZSA9PSBTU0VVKSB7Ci0JCQkJaWYgKHctPnNzZXUgIT0gd3JrLT5jdHhfbGlz dFt3LT5jb250ZXh0XS5zc2V1KSB7Ci0JCQkJCXdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dF0uc3Nl dSA9Ci0JCQkJCQlzZXRfY3R4X3NzZXUod3JrLT5jdHhfbGlzdFt3LT5jb250ZXh0XS5pZCwKKwkJ CQlpZiAody0+c3NldSAhPSB3cmstPmN0eF9saXN0W3ctPmNvbnRleHQgKiAyXS5zc2V1KSB7CisJ CQkJCXdyay0+Y3R4X2xpc3Rbdy0+Y29udGV4dCAqIDJdLnNzZXUgPQorCQkJCQkJc2V0X2N0eF9z c2V1KCZ3cmstPmN0eF9saXN0W3ctPmNvbnRleHQgKiAyXSwKIAkJCQkJCQkgICAgIHctPnNzZXUp OwogCQkJCX0KIAkJCQljb250aW51ZTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2