From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rex Zhu Subject: [PATCH 4/4] drm/amdgpu: extend profiling mode. Date: Mon, 9 Jan 2017 14:51:40 +0800 Message-ID: <1483944700-3842-4-git-send-email-Rex.Zhu@amd.com> References: <1483944700-3842-1-git-send-email-Rex.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1483944700-3842-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Rex Zhu aW4gcHJvZmlsaW5nIG1vZGUsIHBvd2VycGxheSB3aWxsIGZpeCBwb3dlciBzdGF0ZQphcyBzdGFi bGUgYXMgcG9zc2libGUuYW5kIGRpc2FibGUgZ2Z4IGNnIGFuZCBMQlBXIGZlYXR1cmUuCgpwcm9m aWxlX3N0YW5kYXJkOiBhcyBhIHByZXJlcXVpc2l0ZSwgZW5zdXJlIHBvd2VyIGFuZCB0aGVybWFs CnN1c3RhaW5hYmxlLCBzZXQgY2xvY2tzIHJhdGlvIGFzIGNsb3NlIHRvIHRoZSBoaWdoZXN0IGNs b2NrCnJhdGlvIGFzIHBvc3NpYmxlLgpwcm9maWxlX21pbl9zY2xrOiBmaXggbWNsayBhcyBwcm9m aWxlX25vcm1hbCwgc2V0IGxvd2VzdCBzY2xrCnByb2ZpbGVfbWluX21jbGs6IGZpeCBzY2xrIGFz IHByb2ZpbGVfbm9ybWFsLCBzZXQgbG93ZXN0IG1jbGsKcHJvZmlsZV9wZWFrOiBzZXQgaGlnaGVz dCBzY2xrIGFuZCBtY2xrLCBwb3dlciBhbmQgdGhlcm1hbCBub3QKc3VzdGFpbmFibGUKcHJvZmls ZV9leGl0OiBleGl0IHByb2ZpbGUgbW9kZS4gZW5hYmxlIGdmeCBjZy9sYnB3IGZlYXR1cmUuCgpD aGFuZ2UtSWQ6IEkyMTdiOGNmYjk4YjZhNjI4YTExMDkxNzc2ZGViZTAzOWJhZDk5N2EyClNpZ25l ZC1vZmYtYnk6IFJleCBaaHUgPFJleC5aaHVAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfcG0uYyAgICAgICAgICAgfCAgMzggKysrKy0tLQogZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY2lfZHBtLmMgICAgICAgICAgICAgIHwgICA1ICstCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1kX3NoYXJlZC5oICAgICAgICAgfCAgIDYgKy0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMgICB8ICAgMyArLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jIHwgMTI3ICsrKysr KysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdt Z3IuaCAgICAgICAgfCAgIDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwg MjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0uYwppbmRl eCA4NDM4NjQyLi5hNmE0ZDM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcG0u YwpAQCAtMTIwLDEyICsxMjAsMTUgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9kcG1fZm9y Y2VkX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAogCWxldmVsID0gYW1k Z3B1X2RwbV9nZXRfcGVyZm9ybWFuY2VfbGV2ZWwoYWRldik7CiAJcmV0dXJuIHNucHJpbnRmKGJ1 ZiwgUEFHRV9TSVpFLCAiJXNcbiIsCi0JCQkobGV2ZWwgJiAoQU1EX0RQTV9GT1JDRURfTEVWRUxf QVVUTykgPyAiYXV0byIgOgotCQkJKGxldmVsICYgQU1EX0RQTV9GT1JDRURfTEVWRUxfTE9XKSA/ ICJsb3ciIDoKLQkJCShsZXZlbCAmIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0hJR0gpID8gImhpZ2gi IDoKLQkJCShsZXZlbCAmIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCkgPyAibWFudWFsIiA6 Ci0JCQkobGV2ZWwgJiBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxJTkcpID8gInByb2ZpbGlu ZyIgOgotCQkJInVua25vd24iKSk7CisJCQkobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxf QVVUTykgPyAiYXV0byIgOgorCQkJKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0xPVykg PyAibG93IiA6CisJCQkobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCkgPyAiaGln aCIgOgorCQkJKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCkgPyAibWFudWFs IiA6CisJCQkobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9TVEFOREFSRCkg PyAicHJvZmlsZV9zdGFuZGFyZCIgOgorCQkJKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVM X1BST0ZJTEVfTUlOX1NDTEspID8gInByb2ZpbGVfbWluX3NjbGsiIDoKKwkJCShsZXZlbCA9PSBB TURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX01JTl9NQ0xLKSA/ICJwcm9maWxlX21pbl9tY2xr IiA6CisJCQkobGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9QRUFLKSA/ICJw cm9maWxlX3BlYWsiIDoKKwkJCSJ1bmtub3duIik7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IGFtZGdw dV9zZXRfZHBtX2ZvcmNlZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCkBA IC0xNTQsOSArMTU3LDE3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNlZF9w ZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWxldmVsID0gQU1EX0RQTV9G T1JDRURfTEVWRUxfQVVUTzsKIAl9IGVsc2UgaWYgKHN0cm5jbXAoIm1hbnVhbCIsIGJ1Ziwgc3Ry bGVuKCJtYW51YWwiKSkgPT0gMCkgewogCQlsZXZlbCA9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01B TlVBTDsKLQl9IGVsc2UgaWYgKHN0cm5jbXAoInByb2ZpbGUiLCBidWYsIHN0cmxlbigicHJvZmls ZSIpKSA9PSAwKSB7Ci0JCWxldmVsID0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMSU5HOwot CX0gZWxzZSB7CisJfSBlbHNlIGlmIChzdHJuY21wKCJwcm9maWxlX2V4aXQiLCBidWYsIHN0cmxl bigicHJvZmlsZV9leGl0IikpID09IDApIHsKKwkJbGV2ZWwgPSBBTURfRFBNX0ZPUkNFRF9MRVZF TF9QUk9GSUxFX0VYSVQ7CisJfSBlbHNlIGlmIChzdHJuY21wKCJwcm9maWxlX3N0YW5kYXJkIiwg YnVmLCBzdHJsZW4oInByb2ZpbGVfc3RhbmRhcmQiKSkgPT0gMCkgeworCQlsZXZlbCA9IEFNRF9E UE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfU1RBTkRBUkQ7CisJfSBlbHNlIGlmIChzdHJuY21wKCJw cm9maWxlX21pbl9zY2xrIiwgYnVmLCBzdHJsZW4oInByb2ZpbGVfbWluX3NjbGsiKSkgPT0gMCkg eworCQlsZXZlbCA9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX1NDTEs7CisJfSBl bHNlIGlmIChzdHJuY21wKCJwcm9maWxlX21pbl9tY2xrIiwgYnVmLCBzdHJsZW4oInByb2ZpbGVf bWluX21jbGsiKSkgPT0gMCkgeworCQlsZXZlbCA9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJ TEVfTUlOX01DTEs7CisJfSBlbHNlIGlmIChzdHJuY21wKCJwcm9maWxlX3BlYWsiLCBidWYsIHN0 cmxlbigicHJvZmlsZV9wZWFrIikpID09IDApIHsKKwkJbGV2ZWwgPSBBTURfRFBNX0ZPUkNFRF9M RVZFTF9QUk9GSUxFX1BFQUs7CisJfSAgZWxzZSB7CiAJCWNvdW50ID0gLUVJTlZBTDsKIAkJZ290 byBmYWlsOwogCX0KQEAgLTE2NCwxNCArMTc1LDYgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X3Nl dF9kcG1fZm9yY2VkX3BlcmZvcm1hbmNlX2xldmVsKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpZiAo Y3VycmVudF9sZXZlbCA9PSBsZXZlbCkKIAkJcmV0dXJuIDA7CiAKLQlpZiAobGV2ZWwgPT0gQU1E X0RQTV9GT1JDRURfTEVWRUxfUFJPRklMSU5HKQotCQlhbWRncHVfc2V0X2Nsb2NrZ2F0aW5nX3N0 YXRlKGFkZXYsIEFNRF9JUF9CTE9DS19UWVBFX0dGWCwKLQkJCQkJCUFNRF9DR19TVEFURV9VTkdB VEUpOwotCWVsc2UgaWYgKGxldmVsICE9IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTElORyAm JgotCQkJY3VycmVudF9sZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxJTkcpCi0J CWFtZGdwdV9zZXRfY2xvY2tnYXRpbmdfc3RhdGUoYWRldiwgQU1EX0lQX0JMT0NLX1RZUEVfR0ZY LAotCQkJCQkJQU1EX0NHX1NUQVRFX0dBVEUpOwotCiAJaWYgKGFkZXYtPnBwX2VuYWJsZWQpCiAJ CWFtZGdwdV9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwoYWRldiwgbGV2ZWwpOwogCWVsc2Ug ewpAQCAtMTg4LDYgKzE5MSw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9zZXRfZHBtX2ZvcmNl ZF9wZXJmb3JtYW5jZV9sZXZlbChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQlhZGV2LT5wbS5kcG0u Zm9yY2VkX2xldmVsID0gbGV2ZWw7CiAJCW11dGV4X3VubG9jaygmYWRldi0+cG0ubXV0ZXgpOwog CX0KKwogZmFpbDoKIAlyZXR1cm4gY291bnQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2NpX2Rw bS5jCmluZGV4IDlhNTQ0YWQuLmVjZTk0ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2NpX2RwbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2NpX2Rw bS5jCkBAIC02NTcxLDggKzY1NzEsOSBAQCBzdGF0aWMgaW50IGNpX2RwbV9mb3JjZV9jbG9ja19s ZXZlbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIHsKIAlzdHJ1Y3QgY2lfcG93ZXJfaW5m byAqcGkgPSBjaV9nZXRfcGkoYWRldik7CiAKLQlpZiAoIShhZGV2LT5wbS5kcG0uZm9yY2VkX2xl dmVsICYKLQkJKEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCB8IEFNRF9EUE1fRk9SQ0VEX0xF VkVMX1BST0ZJTElORykpKQorCWlmIChhZGV2LT5wbS5kcG0uZm9yY2VkX2xldmVsICYgKEFNRF9E UE1fRk9SQ0VEX0xFVkVMX0FVVE8gfAorCQkJCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX0xPVyB8CisJ CQkJQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCkpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJc3dp dGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYW1k X3NoYXJlZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FtZF9zaGFyZWQuaAppbmRl eCA5MjEzOGE5Li42ZmI1ODcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1 ZGUvYW1kX3NoYXJlZC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9hbWRfc2hh cmVkLmgKQEAgLTg1LDcgKzg1LDExIEBAIGVudW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgewogCUFN RF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCA9IDB4MiwKIAlBTURfRFBNX0ZPUkNFRF9MRVZFTF9M T1cgPSAweDQsCiAJQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCA9IDB4OCwKLQlBTURfRFBNX0ZP UkNFRF9MRVZFTF9QUk9GSUxJTkcgPSAweDEwLAorCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJ TEVfU1RBTkRBUkQgPSAweDEwLAorCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX1ND TEsgPSAweDIwLAorCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEsgPSAweDQw LAorCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSyA9IDB4ODAsCisJQU1EX0RQTV9G T1JDRURfTEVWRUxfUFJPRklMRV9FWElUID0gMHgxMDAsCiB9OwogCiBlbnVtIGFtZF9wb3dlcmdh dGluZ19zdGF0ZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9o d21nci9jel9od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvY3pf aHdtZ3IuYwppbmRleCA5M2MxMzg0Li4wNjY4YjBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci9jel9od21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2h3bWdyL2N6X2h3bWdyLmMKQEAgLTE2NDIsOCArMTY0Miw3IEBAIHN0YXRp YyBpbnQgY3pfZ2V0X2RhbF9wb3dlcl9sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogc3Rh dGljIGludCBjel9mb3JjZV9jbG9ja19sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQll bnVtIHBwX2Nsb2NrX3R5cGUgdHlwZSwgdWludDMyX3QgbWFzaykKIHsKLQlpZiAoIShod21nci0+ ZHBtX2xldmVsICYKLQkJKEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCB8IEFNRF9EUE1fRk9S Q0VEX0xFVkVMX1BST0ZJTElORykpKQorCWlmIChod21nci0+ZHBtX2xldmVsICE9IEFNRF9EUE1f Rk9SQ0VEX0xFVkVMX01BTlVBTCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzd2l0Y2ggKHR5cGUp IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdf aHdtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3Iu YwppbmRleCBhY2QwMzhjYy4uOGNlZDJmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19od21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYwpAQCAtOTAsNiArOTAsOCBAQCBlbnVtIERQTV9F VkVOVF9TUkMgewogfTsKIAogc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgUGh3VklzbGFuZHNf TWFnaWMgPSAodW5zaWduZWQgbG9uZykoUEhNX1ZJc2xhbmRzX01hZ2ljKTsKK3N0YXRpYyBpbnQg c211N19mb3JjZV9jbG9ja19sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAorCQllbnVtIHBw X2Nsb2NrX3R5cGUgdHlwZSwgdWludDMyX3QgbWFzayk7CiAKIHN0YXRpYyBzdHJ1Y3Qgc211N19w b3dlcl9zdGF0ZSAqY2FzdF9waHdfc211N19wb3dlcl9zdGF0ZSgKIAkJCQkgIHN0cnVjdCBwcF9o d19wb3dlcl9zdGF0ZSAqaHdfcHMpCkBAIC0yNDkwLDM2ICsyNDkyLDE1MiBAQCBzdGF0aWMgaW50 IHNtdTdfZm9yY2VfZHBtX2xvd2VzdChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyKQogCX0KIAogCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IHNtdTdfZ2V0X3Byb2ZpbGluZ19jbGsoc3RydWN0IHBw X2h3bWdyICpod21nciwgZW51bSBhbWRfZHBtX2ZvcmNlZF9sZXZlbCBsZXZlbCwKKwkJCQl1aW50 MzJfdCAqc2Nsa19tYXNrLCB1aW50MzJfdCAqbWNsa19tYXNrLCB1aW50MzJfdCAqcGNpZV9tYXNr KQoreworCXVpbnQzMl90IHBlcmNlbnRhZ2U7CisJc3RydWN0IHNtdTdfaHdtZ3IgKmRhdGEgPSAo c3RydWN0IHNtdTdfaHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOworCXN0cnVjdCBzbXU3X2RwbV90 YWJsZSAqZ29sZGVuX2RwbV90YWJsZSA9ICZkYXRhLT5nb2xkZW5fZHBtX3RhYmxlOworCWludDMy X3QgdG1wX21jbGs7CisJaW50MzJfdCB0bXBfc2NsazsKKwlpbnQzMl90IGNvdW50OworCisJaWYg KGdvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuY291bnQgPCAxKQorCQlyZXR1cm4gLUVJTlZB TDsKKworCXBlcmNlbnRhZ2UgPSAxMDAgKiBnb2xkZW5fZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmRw bV9sZXZlbHNbZ29sZGVuX2RwbV90YWJsZS0+c2Nsa190YWJsZS5jb3VudCAtIDFdLnZhbHVlIC8K KwkJCWdvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuZHBtX2xldmVsc1tnb2xkZW5fZHBtX3Rh YmxlLT5tY2xrX3RhYmxlLmNvdW50IC0gMV0udmFsdWU7CisKKwlpZiAoZ29sZGVuX2RwbV90YWJs ZS0+bWNsa190YWJsZS5jb3VudCA9PSAxKSB7CisJCXBlcmNlbnRhZ2UgPSA3MDsKKwkJdG1wX21j bGsgPSBnb2xkZW5fZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9sZXZlbHNbZ29sZGVuX2RwbV90 YWJsZS0+bWNsa190YWJsZS5jb3VudCAtIDFdLnZhbHVlOworCQkqbWNsa19tYXNrID0gZ29sZGVu X2RwbV90YWJsZS0+bWNsa190YWJsZS5jb3VudCAtIDE7CisJfSBlbHNlIHsKKwkJdG1wX21jbGsg PSBnb2xkZW5fZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9sZXZlbHNbZ29sZGVuX2RwbV90YWJs ZS0+bWNsa190YWJsZS5jb3VudCAtIDJdLnZhbHVlOworCQkqbWNsa19tYXNrID0gZ29sZGVuX2Rw bV90YWJsZS0+bWNsa190YWJsZS5jb3VudCAtIDI7CisJfQorCisJdG1wX3NjbGsgPSB0bXBfbWNs ayAqIHBlcmNlbnRhZ2UgLyAxMDA7CisKKwlpZiAoaHdtZ3ItPnBwX3RhYmxlX3ZlcnNpb24gPT0g UFBfVEFCTEVfVjApIHsKKwkJZm9yIChjb3VudCA9IGh3bWdyLT5keW5fc3RhdGUudmRkY19kZXBl bmRlbmN5X29uX3NjbGstPmNvdW50LTE7CisJCQljb3VudCA+PSAwOyBjb3VudC0tKSB7CisJCQlp ZiAodG1wX3NjbGsgPj0gaHdtZ3ItPmR5bl9zdGF0ZS52ZGRjX2RlcGVuZGVuY3lfb25fc2Nsay0+ ZW50cmllc1tjb3VudF0uY2xrKSB7CisJCQkJdG1wX3NjbGsgPSBod21nci0+ZHluX3N0YXRlLnZk ZGNfZGVwZW5kZW5jeV9vbl9zY2xrLT5lbnRyaWVzW2NvdW50XS5jbGs7CisJCQkJKnNjbGtfbWFz ayA9IGNvdW50OworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChjb3VudCA8IDAgfHwgbGV2 ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9NSU5fU0NMSykKKwkJCSpzY2xrX21h c2sgPSAwOworCisJCWlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1BF QUspCisJCQkqc2Nsa19tYXNrID0gaHdtZ3ItPmR5bl9zdGF0ZS52ZGRjX2RlcGVuZGVuY3lfb25f c2Nsay0+Y291bnQtMTsKKwl9IGVsc2UgaWYgKGh3bWdyLT5wcF90YWJsZV92ZXJzaW9uID09IFBQ X1RBQkxFX1YxKSB7CisJCXN0cnVjdCBwaG1fcHB0X3YxX2luZm9ybWF0aW9uICp0YWJsZV9pbmZv ID0KKwkJCQkoc3RydWN0IHBobV9wcHRfdjFfaW5mb3JtYXRpb24gKikoaHdtZ3ItPnBwdGFibGUp OwogCisJCWZvciAoY291bnQgPSB0YWJsZV9pbmZvLT52ZGRfZGVwX29uX3NjbGstPmNvdW50LTE7 IGNvdW50ID49IDA7IGNvdW50LS0pIHsKKwkJCWlmICh0bXBfc2NsayA+PSB0YWJsZV9pbmZvLT52 ZGRfZGVwX29uX3NjbGstPmVudHJpZXNbY291bnRdLmNsaykgeworCQkJCXRtcF9zY2xrID0gdGFi bGVfaW5mby0+dmRkX2RlcF9vbl9zY2xrLT5lbnRyaWVzW2NvdW50XS5jbGs7CisJCQkJKnNjbGtf bWFzayA9IGNvdW50OworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChjb3VudCA8IDAgfHwg bGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9NSU5fU0NMSykKKwkJCSpzY2xr X21hc2sgPSAwOworCisJCWlmIChsZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxF X1BFQUspCisJCQkqc2Nsa19tYXNrID0gdGFibGVfaW5mby0+dmRkX2RlcF9vbl9zY2xrLT5jb3Vu dCAtIDE7CisJfQorCisJaWYgKGxldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVf TUlOX01DTEspCisJCSptY2xrX21hc2sgPSAwOworCWVsc2UgaWYgKGxldmVsID09IEFNRF9EUE1f Rk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSykKKwkJKm1jbGtfbWFzayA9IGdvbGRlbl9kcG1fdGFi bGUtPm1jbGtfdGFibGUuY291bnQgLSAxOworCisJKnBjaWVfbWFzayA9IGRhdGEtPmRwbV90YWJs ZS5wY2llX3NwZWVkX3RhYmxlLmNvdW50IC0gMTsKKwlyZXR1cm4gMDsKIH0KKwogc3RhdGljIGlu dCBzbXU3X2ZvcmNlX2RwbV9sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCQkJCWVudW0g YW1kX2RwbV9mb3JjZWRfbGV2ZWwgbGV2ZWwpCiB7CiAJaW50IHJldCA9IDA7CisJdWludDMyX3Qg c2Nsa19tYXNrID0gMDsKKwl1aW50MzJfdCBtY2xrX21hc2sgPSAwOworCXVpbnQzMl90IHBjaWVf bWFzayA9IDA7CisJdWludDMyX3QgcHJvZmlsZV9tb2RlX21hc2sgPSBBTURfRFBNX0ZPUkNFRF9M RVZFTF9QUk9GSUxFX1NUQU5EQVJEIHwKKwkJCQkJQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklM RV9NSU5fU0NMSyB8CisJCQkJCUFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfTUlOX01DTEsg fAorCQkJCQlBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX1BFQUs7CisKKwlpZiAobGV2ZWwg PT0gaHdtZ3ItPmRwbV9sZXZlbCkKKwkJcmV0dXJuIHJldDsKKworCWlmICghKGh3bWdyLT5kcG1f bGV2ZWwgJiBwcm9maWxlX21vZGVfbWFzaykpIHsKKwkJLyogZW50ZXIgcHJvZmlsZSBtb2RlLCBz YXZlIGN1cnJlbnQgbGV2ZWwsIGRpc2FibGUgZ2Z4IGNnKi8KKwkJaWYgKGxldmVsICYgcHJvZmls ZV9tb2RlX21hc2spIHsKKwkJCWh3bWdyLT5zYXZlZF9kcG1fbGV2ZWwgPSBod21nci0+ZHBtX2xl dmVsOworCQkJY2dzX3NldF9jbG9ja2dhdGluZ19zdGF0ZShod21nci0+ZGV2aWNlLAorCQkJCQkJ QU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAorCQkJCQkJQU1EX0NHX1NUQVRFX1VOR0FURSk7CisJCX0K Kwl9IGVsc2UgeworCQkvKiBleGl0IHByb2ZpbGUgbW9kZSwgcmVzdG9yZSBsZXZlbCwgZW5hYmxl IGdmeCBjZyovCisJCWlmICghKGxldmVsICYgcHJvZmlsZV9tb2RlX21hc2spKSB7CisJCQlpZiAo bGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfUFJPRklMRV9FWElUKQorCQkJCWxldmVsID0g aHdtZ3ItPnNhdmVkX2RwbV9sZXZlbDsKKwkJCWNnc19zZXRfY2xvY2tnYXRpbmdfc3RhdGUoaHdt Z3ItPmRldmljZSwKKwkJCQkJQU1EX0lQX0JMT0NLX1RZUEVfR0ZYLAorCQkJCQlBTURfQ0dfU1RB VEVfR0FURSk7CisJCX0KKwl9CiAKIAlzd2l0Y2ggKGxldmVsKSB7CiAJY2FzZSBBTURfRFBNX0ZP UkNFRF9MRVZFTF9ISUdIOgogCQlyZXQgPSBzbXU3X2ZvcmNlX2RwbV9oaWdoZXN0KGh3bWdyKTsK IAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CisJCWh3bWdyLT5kcG1fbGV2ZWwgPSBsZXZlbDsK IAkJYnJlYWs7CiAJY2FzZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9MT1c6CiAJCXJldCA9IHNtdTdf Zm9yY2VfZHBtX2xvd2VzdChod21ncik7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OworCQlo d21nci0+ZHBtX2xldmVsID0gbGV2ZWw7CiAJCWJyZWFrOwogCWNhc2UgQU1EX0RQTV9GT1JDRURf TEVWRUxfQVVUTzoKIAkJcmV0ID0gc211N191bmZvcmNlX2RwbV9sZXZlbHMoaHdtZ3IpOwogCQlp ZiAocmV0KQogCQkJcmV0dXJuIHJldDsKKwkJaHdtZ3ItPmRwbV9sZXZlbCA9IGxldmVsOworCQli cmVhazsKKwljYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfU1RBTkRBUkQ6CisJY2Fz ZSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9QUk9GSUxFX01JTl9TQ0xLOgorCWNhc2UgQU1EX0RQTV9G T1JDRURfTEVWRUxfUFJPRklMRV9NSU5fTUNMSzoKKwljYXNlIEFNRF9EUE1fRk9SQ0VEX0xFVkVM X1BST0ZJTEVfUEVBSzoKKwkJcmV0ID0gc211N19nZXRfcHJvZmlsaW5nX2Nsayhod21nciwgbGV2 ZWwsICZzY2xrX21hc2ssICZtY2xrX21hc2ssICZwY2llX21hc2spOworCQlpZiAocmV0KQorCQkJ cmV0dXJuIHJldDsKKwkJaHdtZ3ItPmRwbV9sZXZlbCA9IGxldmVsOworCQlzbXU3X2ZvcmNlX2Ns b2NrX2xldmVsKGh3bWdyLCBQUF9TQ0xLLCAxPDxzY2xrX21hc2spOworCQlzbXU3X2ZvcmNlX2Ns b2NrX2xldmVsKGh3bWdyLCBQUF9NQ0xLLCAxPDxtY2xrX21hc2spOworCQlzbXU3X2ZvcmNlX2Ns b2NrX2xldmVsKGh3bWdyLCBQUF9QQ0lFLCAxPDxwY2llX21hc2spOwogCQlicmVhazsKKwljYXNl IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTEVfRVhJVDoKIAlkZWZhdWx0OgogCQlicmVhazsK IAl9CiAKLQlod21nci0+ZHBtX2xldmVsID0gbGV2ZWw7CisJaWYgKGxldmVsICYgKEFNRF9EUE1f Rk9SQ0VEX0xFVkVMX1BST0ZJTEVfUEVBSyB8IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0hJR0gpKQor CQlzbXU3X2Zhbl9jdHJsX3NldF9mYW5fc3BlZWRfcGVyY2VudChod21nciwgMTAwKTsKKwllbHNl CisJCXNtdTdfZmFuX2N0cmxfcmVzZXRfZmFuX3NwZWVkX3RvX2RlZmF1bHQoaHdtZ3IpOwogCi0J cmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBzbXU3X2dldF9wb3dlcl9z dGF0ZV9zaXplKHN0cnVjdCBwcF9od21nciAqaHdtZ3IpCkBAIC00MDUzLDggKzQxNzEsOSBAQCBz dGF0aWMgaW50IHNtdTdfZm9yY2VfY2xvY2tfbGV2ZWwoc3RydWN0IHBwX2h3bWdyICpod21nciwK IHsKIAlzdHJ1Y3Qgc211N19od21nciAqZGF0YSA9IChzdHJ1Y3Qgc211N19od21nciAqKShod21n ci0+YmFja2VuZCk7CiAKLQlpZiAoIShod21nci0+ZHBtX2xldmVsICYKLQkJKEFNRF9EUE1fRk9S Q0VEX0xFVkVMX01BTlVBTCB8IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX1BST0ZJTElORykpKQorCWlm IChod21nci0+ZHBtX2xldmVsICYgKEFNRF9EUE1fRk9SQ0VEX0xFVkVMX0FVVE8gfAorCQkJCUFN RF9EUE1fRk9SQ0VEX0xFVkVMX0xPVyB8CisJCQkJQU1EX0RQTV9GT1JDRURfTEVWRUxfSElHSCkp CiAJCXJldHVybiAtRUlOVkFMOwogCiAJc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvaHdtZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2luYy9od21nci5oCmluZGV4IDI3MjE3YTcuLjcyNzVhMjkgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9od21nci5oCkBAIC02MTIsNiArNjEyLDcgQEAg c3RydWN0IHBwX2h3bWdyIHsKIAl1aW50MzJfdCBudW1fdmNlX3N0YXRlX3RhYmxlczsKIAogCWVu dW0gYW1kX2RwbV9mb3JjZWRfbGV2ZWwgZHBtX2xldmVsOworCWVudW0gYW1kX2RwbV9mb3JjZWRf bGV2ZWwgc2F2ZWRfZHBtX2xldmVsOwogCWJvb2wgYmxvY2tfaHdfYWNjZXNzOwogCXN0cnVjdCBw aG1fZ2Z4X2FyYml0ZXIgZ2Z4X2FyYml0ZXI7CiAJc3RydWN0IHBobV9hY3BfYXJiaXRlciBhY3Bf YXJiaXRlcjsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngK