From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [07/18] xhci: xhci-hub: use new port structures to get port address instead of port array From: Mathias Nyman Message-Id: <1526910006-26104-8-git-send-email-mathias.nyman@linux.intel.com> Date: Mon, 21 May 2018 16:39:55 +0300 To: gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, Mathias Nyman List-ID: VXNlIHRoZSBuZXcgcG9ydCBzdHJ1Y3R1cmVzIGZvciBmdW5jdGlvbnMgaW4geGhjaS1odWIuYyB0 byBnZXQKcG9ydCBtbWlvIGFkZHJlc3Mgb2YgcG9ydHNjIHJlZ2lzdGVyIGluc3RlYWQgb2YgdGhl IHBvcnQgYXJyYXkKCnhoY2lfZ2V0X3BvcnRfaW9fYWRkcigpIGlzIG5vIGxvbmdlciBuZWVkZWVk IGFuZCBpcyByZW1vdmVkLgpQbGFuIGlzIHRvIGdldCByaWQgb2YgdGhlIG1taW8gcG9ydCBhcnJh eSBjb21wbGV0ZWx5LgoKU2lnbmVkLW9mZi1ieTogTWF0aGlhcyBOeW1hbiA8bWF0aGlhcy5ueW1h bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jIHwgMTQw ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvaG9zdC94aGNpLWh1Yi5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLWh1Yi5jCmlu ZGV4IGI2ZmQyNmYuLjA3OTZmMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1o dWIuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktaHViLmMKQEAgLTE4OSw5ICsxODksMTAg QEAgc3RhdGljIHZvaWQgeGhjaV91c2IyX2h1Yl9kZXNjcmlwdG9yKHN0cnVjdCB1c2JfaGNkICpo Y2QsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAlfX3U4IHBvcnRfcmVtb3ZhYmxlWyhVU0JfTUFY Q0hJTERSRU4gKyAxICsgNykgLyA4XTsKIAl1MzIgcG9ydHNjOwogCXVuc2lnbmVkIGludCBpOwor CXN0cnVjdCB4aGNpX2h1YiAqcmh1YjsKIAotCXBvcnRzID0geGhjaS0+bnVtX3VzYjJfcG9ydHM7 Ci0KKwlyaHViID0gJnhoY2ktPnVzYjJfcmh1YjsKKwlwb3J0cyA9IHJodWItPm51bV9wb3J0czsK IAl4aGNpX2NvbW1vbl9odWJfZGVzY3JpcHRvcih4aGNpLCBkZXNjLCBwb3J0cyk7CiAJZGVzYy0+ YkRlc2NyaXB0b3JUeXBlID0gVVNCX0RUX0hVQjsKIAl0ZW1wID0gMSArIChwb3J0cyAvIDgpOwpA QCAtMjAyLDcgKzIwMyw3IEBAIHN0YXRpYyB2b2lkIHhoY2lfdXNiMl9odWJfZGVzY3JpcHRvcihz dHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJICovCiAJbWVtc2V0 KHBvcnRfcmVtb3ZhYmxlLCAwLCBzaXplb2YocG9ydF9yZW1vdmFibGUpKTsKIAlmb3IgKGkgPSAw OyBpIDwgcG9ydHM7IGkrKykgewotCQlwb3J0c2MgPSByZWFkbCh4aGNpLT51c2IyX3BvcnRzW2ld KTsKKwkJcG9ydHNjID0gcmVhZGwocmh1Yi0+cG9ydHNbaV0tPmFkZHIpOwogCQkvKiBJZiBhIGRl dmljZSBpcyByZW1vdmFibGUsIFBPUlRTQyByZXBvcnRzIGEgMCwgc2FtZSBhcyBpbiB0aGUKIAkJ ICogaHViIGRlc2NyaXB0b3IgRGV2aWNlUmVtb3ZhYmxlIGJpdHMuCiAJCSAqLwpAQCAtMjQxLDgg KzI0MiwxMCBAQCBzdGF0aWMgdm9pZCB4aGNpX3VzYjNfaHViX2Rlc2NyaXB0b3Ioc3RydWN0IHVz Yl9oY2QgKmhjZCwgc3RydWN0IHhoY2lfaGNkICp4aGNpLAogCXUxNiBwb3J0X3JlbW92YWJsZTsK IAl1MzIgcG9ydHNjOwogCXVuc2lnbmVkIGludCBpOworCXN0cnVjdCB4aGNpX2h1YiAqcmh1YjsK IAotCXBvcnRzID0geGhjaS0+bnVtX3VzYjNfcG9ydHM7CisJcmh1YiA9ICZ4aGNpLT51c2IzX3Jo dWI7CisJcG9ydHMgPSByaHViLT5udW1fcG9ydHM7CiAJeGhjaV9jb21tb25faHViX2Rlc2NyaXB0 b3IoeGhjaSwgZGVzYywgcG9ydHMpOwogCWRlc2MtPmJEZXNjcmlwdG9yVHlwZSA9IFVTQl9EVF9T U19IVUI7CiAJZGVzYy0+YkRlc2NMZW5ndGggPSBVU0JfRFRfU1NfSFVCX1NJWkU7CkBAIC0yNTYs NyArMjU5LDcgQEAgc3RhdGljIHZvaWQgeGhjaV91c2IzX2h1Yl9kZXNjcmlwdG9yKHN0cnVjdCB1 c2JfaGNkICpoY2QsIHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAlwb3J0X3JlbW92YWJsZSA9IDA7 CiAJLyogYml0IDAgaXMgcmVzZXJ2ZWQsIGJpdCAxIGlzIGZvciBwb3J0IDEsIGV0Yy4gKi8KIAlm b3IgKGkgPSAwOyBpIDwgcG9ydHM7IGkrKykgewotCQlwb3J0c2MgPSByZWFkbCh4aGNpLT51c2Iz X3BvcnRzW2ldKTsKKwkJcG9ydHNjID0gcmVhZGwocmh1Yi0+cG9ydHNbaV0tPmFkZHIpOwogCQlp ZiAocG9ydHNjICYgUE9SVF9ERVZfUkVNT1ZFKQogCQkJcG9ydF9yZW1vdmFibGUgfD0gMSA8PCAo aSArIDEpOwogCX0KQEAgLTU2MywxNCArNTY2LDYgQEAgc3RydWN0IHhoY2lfaHViICp4aGNpX2dl dF9yaHViKHN0cnVjdCB1c2JfaGNkICpoY2QpCiAJcmV0dXJuICZ4aGNpLT51c2IyX3JodWI7CiB9 CiAKLXN0YXRpYyBfX2xlMzIgX19pb21lbSAqeGhjaV9nZXRfcG9ydF9pb19hZGRyKHN0cnVjdCB1 c2JfaGNkICpoY2QsIGludCBpbmRleCkKLXsKLQlfX2xlMzIgX19pb21lbSAqKnBvcnRfYXJyYXk7 Ci0KLQl4aGNpX2dldF9wb3J0cyhoY2QsICZwb3J0X2FycmF5KTsKLQlyZXR1cm4gcG9ydF9hcnJh eVtpbmRleF07Ci19Ci0KIC8qCiAgKiB4aGNpX3NldF9wb3J0X3Bvd2VyKCkgbXVzdCBiZSBjYWxs ZWQgd2l0aCB4aGNpLT5sb2NrIGhlbGQuCiAgKiBJdCB3aWxsIHJlbGVhc2UgYW5kIHJlLWFxdWly ZSB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIEFDUEkKQEAgLTU3OSwyMSArNTc0LDIzIEBAIHN0YXRp YyBfX2xlMzIgX19pb21lbSAqeGhjaV9nZXRfcG9ydF9pb19hZGRyKHN0cnVjdCB1c2JfaGNkICpo Y2QsIGludCBpbmRleCkKIHN0YXRpYyB2b2lkIHhoY2lfc2V0X3BvcnRfcG93ZXIoc3RydWN0IHho Y2lfaGNkICp4aGNpLCBzdHJ1Y3QgdXNiX2hjZCAqaGNkLAogCQkJCXUxNiBpbmRleCwgYm9vbCBv biwgdW5zaWduZWQgbG9uZyAqZmxhZ3MpCiB7Ci0JX19sZTMyIF9faW9tZW0gKmFkZHI7CisJc3Ry dWN0IHhoY2lfaHViICpyaHViOworCXN0cnVjdCB4aGNpX3BvcnQgKnBvcnQ7CiAJdTMyIHRlbXA7 CiAKLQlhZGRyID0geGhjaV9nZXRfcG9ydF9pb19hZGRyKGhjZCwgaW5kZXgpOwotCXRlbXAgPSBy ZWFkbChhZGRyKTsKKwlyaHViID0geGhjaV9nZXRfcmh1YihoY2QpOworCXBvcnQgPSByaHViLT5w b3J0c1tpbmRleF07CisJdGVtcCA9IHJlYWRsKHBvcnQtPmFkZHIpOwogCXRlbXAgPSB4aGNpX3Bv cnRfc3RhdGVfdG9fbmV1dHJhbCh0ZW1wKTsKIAlpZiAob24pIHsKIAkJLyogUG93ZXIgb24gKi8K LQkJd3JpdGVsKHRlbXAgfCBQT1JUX1BPV0VSLCBhZGRyKTsKLQkJdGVtcCA9IHJlYWRsKGFkZHIp OworCQl3cml0ZWwodGVtcCB8IFBPUlRfUE9XRVIsIHBvcnQtPmFkZHIpOworCQl0ZW1wID0gcmVh ZGwocG9ydC0+YWRkcik7CiAJCXhoY2lfZGJnKHhoY2ksICJzZXQgcG9ydCBwb3dlciwgYWN0dWFs IHBvcnQgJWQgc3RhdHVzICA9IDB4JXhcbiIsCiAJCQkJCQlpbmRleCwgdGVtcCk7CiAJfSBlbHNl IHsKIAkJLyogUG93ZXIgb2ZmICovCi0JCXdyaXRlbCh0ZW1wICYgflBPUlRfUE9XRVIsIGFkZHIp OworCQl3cml0ZWwodGVtcCAmIH5QT1JUX1BPV0VSLCBwb3J0LT5hZGRyKTsKIAl9CiAKIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZ4aGNpLT5sb2NrLCAqZmxhZ3MpOwpAQCAtNjA5LDEzICs2MDYs MTMgQEAgc3RhdGljIHZvaWQgeGhjaV9wb3J0X3NldF90ZXN0X21vZGUoc3RydWN0IHhoY2lfaGNk ICp4aGNpLAogCXUxNiB0ZXN0X21vZGUsIHUxNiB3SW5kZXgpCiB7CiAJdTMyIHRlbXA7Ci0JX19s ZTMyIF9faW9tZW0gKmFkZHI7CisJc3RydWN0IHhoY2lfcG9ydCAqcG9ydDsKIAotCS8qIHhoY2kg b25seSBzdXBwb3J0cyB0ZXN0IG1vZGUgZm9yIHVzYjIgcG9ydHMsIGkuZS4geGhjaS0+bWFpbl9o Y2QgKi8KLQlhZGRyID0geGhjaV9nZXRfcG9ydF9pb19hZGRyKHhoY2ktPm1haW5faGNkLCB3SW5k ZXgpOwotCXRlbXAgPSByZWFkbChhZGRyICsgUE9SVFBNU0MpOworCS8qIHhoY2kgb25seSBzdXBw b3J0cyB0ZXN0IG1vZGUgZm9yIHVzYjIgcG9ydHMgKi8KKwlwb3J0ID0geGhjaS0+dXNiMl9yaHVi LnBvcnRzW3dJbmRleF07CisJdGVtcCA9IHJlYWRsKHBvcnQtPmFkZHIgKyBQT1JUUE1TQyk7CiAJ dGVtcCB8PSB0ZXN0X21vZGUgPDwgUE9SVF9URVNUX01PREVfU0hJRlQ7Ci0Jd3JpdGVsKHRlbXAs IGFkZHIgKyBQT1JUUE1TQyk7CisJd3JpdGVsKHRlbXAsIHBvcnQtPmFkZHIgKyBQT1JUUE1TQyk7 CiAJeGhjaS0+dGVzdF9tb2RlID0gdGVzdF9tb2RlOwogCWlmICh0ZXN0X21vZGUgPT0gVEVTVF9G T1JDRV9FTikKIAkJeGhjaV9zdGFydCh4aGNpKTsKQEAgLTY0MiwxMCArNjM5LDEwIEBAIHN0YXRp YyBpbnQgeGhjaV9lbnRlcl90ZXN0X21vZGUoc3RydWN0IHhoY2lfaGNkICp4aGNpLAogCS8qIFB1 dCBhbGwgcG9ydHMgdG8gdGhlIERpc2FibGUgc3RhdGUgYnkgY2xlYXIgUFAgKi8KIAl4aGNpX2Ri Zyh4aGNpLCAiRGlzYWJsZSBhbGwgcG9ydCAoUFAgPSAwKVxuIik7CiAJLyogUG93ZXIgb2ZmIFVT QjMgcG9ydHMqLwotCWZvciAoaSA9IDA7IGkgPCB4aGNpLT5udW1fdXNiM19wb3J0czsgaSsrKQor CWZvciAoaSA9IDA7IGkgPCB4aGNpLT51c2IzX3JodWIubnVtX3BvcnRzOyBpKyspCiAJCXhoY2lf c2V0X3BvcnRfcG93ZXIoeGhjaSwgeGhjaS0+c2hhcmVkX2hjZCwgaSwgZmFsc2UsIGZsYWdzKTsK IAkvKiBQb3dlciBvZmYgVVNCMiBwb3J0cyovCi0JZm9yIChpID0gMDsgaSA8IHhoY2ktPm51bV91 c2IyX3BvcnRzOyBpKyspCisJZm9yIChpID0gMDsgaSA8IHhoY2ktPnVzYjJfcmh1Yi5udW1fcG9y dHM7IGkrKykKIAkJeGhjaV9zZXRfcG9ydF9wb3dlcih4aGNpLCB4aGNpLT5tYWluX2hjZCwgaSwg ZmFsc2UsIGZsYWdzKTsKIAkvKiBTdG9wIHRoZSBjb250cm9sbGVyICovCiAJeGhjaV9kYmcoeGhj aSwgIlN0b3AgY29udHJvbGxlclxuIik7CkBAIC04MDMsNyArODAwLDcgQEAgc3RhdGljIHZvaWQg eGhjaV9odWJfcmVwb3J0X3VzYjNfbGlua19zdGF0ZShzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiBz dGF0aWMgdm9pZCB4aGNpX2RlbF9jb21wX21vZF90aW1lcihzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ks IHUzMiBzdGF0dXMsCiAJCQkJICAgIHUxNiB3SW5kZXgpCiB7Ci0JdTMyIGFsbF9wb3J0c19zZWVu X3UwID0gKCgxIDw8IHhoY2ktPm51bV91c2IzX3BvcnRzKS0xKTsKKwl1MzIgYWxsX3BvcnRzX3Nl ZW5fdTAgPSAoKDEgPDwgeGhjaS0+dXNiM19yaHViLm51bV9wb3J0cykgLSAxKTsKIAlib29sIHBv cnRfaW5fdTAgPSAoKHN0YXR1cyAmIFBPUlRfUExTX01BU0spID09IFhERVZfVTApOwogCiAJaWYg KCEoeGhjaS0+cXVpcmtzICYgWEhDSV9DT01QX01PREVfUVVJUkspKQpAQCAtODU4LDYgKzg1NSwx MSBAQCBzdGF0aWMgdTMyIHhoY2lfZ2V0X3BvcnRfc3RhdHVzKHN0cnVjdCB1c2JfaGNkICpoY2Qs CiAJc3RydWN0IHhoY2lfaGNkICp4aGNpID0gaGNkX3RvX3hoY2koaGNkKTsKIAl1MzIgc3RhdHVz ID0gMDsKIAlpbnQgc2xvdF9pZDsKKwlzdHJ1Y3QgeGhjaV9odWIgKnJodWI7CisJc3RydWN0IHho Y2lfcG9ydCAqcG9ydDsKKworCXJodWIgPSB4aGNpX2dldF9yaHViKGhjZCk7CisJcG9ydCA9IHJo dWItPnBvcnRzW3dJbmRleF07CiAKIAkvKiB3UG9ydENoYW5nZSBiaXRzICovCiAJaWYgKHJhd19w b3J0X3N0YXR1cyAmIFBPUlRfQ1NDKQpAQCAtOTQ5LDcgKzk1MSw3IEBAIHN0YXRpYyB1MzIgeGhj aV9nZXRfcG9ydF9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCwKIAkJCQl9CiAJCQkJeGhjaV9y aW5nX2RldmljZSh4aGNpLCBzbG90X2lkKTsKIAkJCX0gZWxzZSB7Ci0JCQkJaW50IHBvcnRfc3Rh dHVzID0gcmVhZGwocG9ydF9hcnJheVt3SW5kZXhdKTsKKwkJCQlpbnQgcG9ydF9zdGF0dXMgPSBy ZWFkbChwb3J0LT5hZGRyKTsKIAkJCQl4aGNpX3dhcm4oeGhjaSwgIlBvcnQgcmVzdW1lIHRvb2sg bG9uZ2VyIHRoYW4gJWkgbXNlYywgcG9ydCBzdGF0dXMgPSAweCV4XG4iLAogCQkJCQkJWEhDSV9N QVhfUkVYSVRfVElNRU9VVCwKIAkJCQkJCXBvcnRfc3RhdHVzKTsKQEAgLTEwNDAsNyArMTA0Miwx MSBAQCBpbnQgeGhjaV9odWJfY29udHJvbChzdHJ1Y3QgdXNiX2hjZCAqaGNkLCB1MTYgdHlwZVJl cSwgdTE2IHdWYWx1ZSwKIAl1MTYgd2FrZV9tYXNrID0gMDsKIAl1MTYgdGltZW91dCA9IDA7CiAJ dTE2IHRlc3RfbW9kZSA9IDA7CisJc3RydWN0IHhoY2lfaHViICpyaHViOworCXN0cnVjdCB4aGNp X3BvcnQgKipwb3J0czsKIAorCXJodWIgPSB4aGNpX2dldF9yaHViKGhjZCk7CisJcG9ydHMgPSBy aHViLT5wb3J0czsKIAltYXhfcG9ydHMgPSB4aGNpX2dldF9wb3J0cyhoY2QsICZwb3J0X2FycmF5 KTsKIAlidXNfc3RhdGUgPSAmeGhjaS0+YnVzX3N0YXRlW2hjZF9pbmRleChoY2QpXTsKIApAQCAt MTA3OSw3ICsxMDg1LDcgQEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhj ZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCWlmICghd0luZGV4IHx8IHdJbmRleCA+IG1h eF9wb3J0cykKIAkJCWdvdG8gZXJyb3I7CiAJCXdJbmRleC0tOwotCQl0ZW1wID0gcmVhZGwocG9y dF9hcnJheVt3SW5kZXhdKTsKKwkJdGVtcCA9IHJlYWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwog CQlpZiAodGVtcCA9PSB+KHUzMikwKSB7CiAJCQl4aGNpX2hjX2RpZWQoeGhjaSk7CiAJCQlyZXR2 YWwgPSAtRU5PREVWOwpAQCAtMTEwNSw3ICsxMTExLDcgQEAgaW50IHhoY2lfaHViX2NvbnRyb2wo c3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCQkJcmV0dmFs ID0gLUVJTlZBTDsKIAkJCQlicmVhazsKIAkJCX0KLQkJCXBvcnRfbGkgPSByZWFkbChwb3J0X2Fy cmF5W3dJbmRleF0gKyBQT1JUTEkpOworCQkJcG9ydF9saSA9IHJlYWRsKHBvcnRzW3dJbmRleF0t PmFkZHIgKyBQT1JUTEkpOwogCQkJc3RhdHVzID0geGhjaV9nZXRfZXh0X3BvcnRfc3RhdHVzKHRl bXAsIHBvcnRfbGkpOwogCQkJcHV0X3VuYWxpZ25lZF9sZTMyKGNwdV90b19sZTMyKHN0YXR1cyks ICZidWZbNF0pOwogCQl9CkBAIC0xMTIzLDcgKzExMjksNyBAQCBpbnQgeGhjaV9odWJfY29udHJv bChzdHJ1Y3QgdXNiX2hjZCAqaGNkLCB1MTYgdHlwZVJlcSwgdTE2IHdWYWx1ZSwKIAkJaWYgKCF3 SW5kZXggfHwgd0luZGV4ID4gbWF4X3BvcnRzKQogCQkJZ290byBlcnJvcjsKIAkJd0luZGV4LS07 Ci0JCXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0pOworCQl0ZW1wID0gcmVhZGwocG9y dHNbd0luZGV4XS0+YWRkcik7CiAJCWlmICh0ZW1wID09IH4odTMyKTApIHsKIAkJCXhoY2lfaGNf ZGllZCh4aGNpKTsKIAkJCXJldHZhbCA9IC1FTk9ERVY7CkBAIC0xMTMzLDcgKzExMzksNyBAQCBp bnQgeGhjaV9odWJfY29udHJvbChzdHJ1Y3QgdXNiX2hjZCAqaGNkLCB1MTYgdHlwZVJlcSwgdTE2 IHdWYWx1ZSwKIAkJLyogRklYTUU6IFdoYXQgbmV3IHBvcnQgZmVhdHVyZXMgZG8gd2UgbmVlZCB0 byBzdXBwb3J0PyAqLwogCQlzd2l0Y2ggKHdWYWx1ZSkgewogCQljYXNlIFVTQl9QT1JUX0ZFQVRf U1VTUEVORDoKLQkJCXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0pOworCQkJdGVtcCA9 IHJlYWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwogCQkJaWYgKCh0ZW1wICYgUE9SVF9QTFNfTUFT SykgIT0gWERFVl9VMCkgewogCQkJCS8qIFJlc3VtZSB0aGUgcG9ydCB0byBVMCBmaXJzdCAqLwog CQkJCXhoY2lfc2V0X2xpbmtfc3RhdGUoeGhjaSwgcG9ydF9hcnJheSwgd0luZGV4LApAQCAtMTE0 Niw3ICsxMTUyLDcgQEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwg dTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCQkgKiBhIHBvcnQgdW5sZXNzIHRoZSBwb3J0IHJl cG9ydHMgdGhhdCBpdCBpcyBpbiB0aGUKIAkJCSAqIGVuYWJsZWQgKFBFRCA9IOKAmDHigJksUExT IDwg4oCYM+KAmSkgc3RhdGUuCiAJCQkgKi8KLQkJCXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJ bmRleF0pOworCQkJdGVtcCA9IHJlYWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwogCQkJaWYgKCh0 ZW1wICYgUE9SVF9QRSkgPT0gMCB8fCAodGVtcCAmIFBPUlRfUkVTRVQpCiAJCQkJfHwgKHRlbXAg JiBQT1JUX1BMU19NQVNLKSA+PSBYREVWX1UzKSB7CiAJCQkJeGhjaV93YXJuKHhoY2ksICJVU0Ig Y29yZSBzdXNwZW5kaW5nIGRldmljZSBub3QgaW4gVTAvVTEvVTIuXG4iKTsKQEAgLTExNzAsMTIg KzExNzYsMTEgQEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2 IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCQltc2xlZXAoMTApOyAvKiB3YWl0IGRldmljZSB0byBl bnRlciAqLwogCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnhoY2ktPmxvY2ssIGZsYWdzKTsKIAotCQkJ dGVtcCA9IHJlYWRsKHBvcnRfYXJyYXlbd0luZGV4XSk7CisJCQl0ZW1wID0gcmVhZGwocG9ydHNb d0luZGV4XS0+YWRkcik7CiAJCQlidXNfc3RhdGUtPnN1c3BlbmRlZF9wb3J0cyB8PSAxIDw8IHdJ bmRleDsKIAkJCWJyZWFrOwogCQljYXNlIFVTQl9QT1JUX0ZFQVRfTElOS19TVEFURToKLQkJCXRl bXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0pOwotCisJCQl0ZW1wID0gcmVhZGwocG9ydHNb d0luZGV4XS0+YWRkcik7CiAJCQkvKiBEaXNhYmxlIHBvcnQgKi8KIAkJCWlmIChsaW5rX3N0YXRl ID09IFVTQl9TU19QT1JUX0xTX1NTX0RJU0FCTEVEKSB7CiAJCQkJeGhjaV9kYmcoeGhjaSwgIkRp c2FibGUgcG9ydCAlZFxuIiwgd0luZGV4KTsKQEAgLTExODcsOCArMTE5Miw4IEBAIGludCB4aGNp X2h1Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVl LAogCQkJCXRlbXAgfD0gUE9SVF9DU0MgfCBQT1JUX1BFQyB8IFBPUlRfV1JDIHwKIAkJCQkJUE9S VF9PQ0MgfCBQT1JUX1JDIHwgUE9SVF9QTEMgfAogCQkJCQlQT1JUX0NFQzsKLQkJCQl3cml0ZWwo dGVtcCB8IFBPUlRfUEUsIHBvcnRfYXJyYXlbd0luZGV4XSk7Ci0JCQkJdGVtcCA9IHJlYWRsKHBv cnRfYXJyYXlbd0luZGV4XSk7CisJCQkJd3JpdGVsKHRlbXAgfCBQT1JUX1BFLCBwb3J0c1t3SW5k ZXhdLT5hZGRyKTsKKwkJCQl0ZW1wID0gcmVhZGwocG9ydHNbd0luZGV4XS0+YWRkcik7CiAJCQkJ YnJlYWs7CiAJCQl9CiAKQEAgLTExOTcsNyArMTIwMiw3IEBAIGludCB4aGNpX2h1Yl9jb250cm9s KHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLAogCQkJCXhoY2lf ZGJnKHhoY2ksICJFbmFibGUgcG9ydCAlZFxuIiwgd0luZGV4KTsKIAkJCQl4aGNpX3NldF9saW5r X3N0YXRlKHhoY2ksIHBvcnRfYXJyYXksIHdJbmRleCwKIAkJCQkJCWxpbmtfc3RhdGUpOwotCQkJ CXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0pOworCQkJCXRlbXAgPSByZWFkbChwb3J0 c1t3SW5kZXhdLT5hZGRyKTsKIAkJCQlicmVhazsKIAkJCX0KIApAQCAtMTIzMCw3ICsxMjM1LDcg QEAgaW50IHhoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEs IHUxNiB3VmFsdWUsCiAJCQkJCQl3SW5kZXgpOwogCQkJCXhoY2lfc2V0X2xpbmtfc3RhdGUoeGhj aSwgcG9ydF9hcnJheSwgd0luZGV4LAogCQkJCQkJbGlua19zdGF0ZSk7Ci0JCQkJdGVtcCA9IHJl YWRsKHBvcnRfYXJyYXlbd0luZGV4XSk7CisJCQkJdGVtcCA9IHJlYWRsKHBvcnRzW3dJbmRleF0t PmFkZHIpOwogCQkJCWJyZWFrOwogCQkJfQogCQkJLyogUG9ydCBtdXN0IGJlIGVuYWJsZWQgKi8K QEAgLTEyNjQsNyArMTI2OSw3IEBAIGludCB4aGNpX2h1Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNk ICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLAogCQkJbXNsZWVwKDIwKTsgLyogd2FpdCBk ZXZpY2UgdG8gZW50ZXIgKi8KIAkJCXNwaW5fbG9ja19pcnFzYXZlKCZ4aGNpLT5sb2NrLCBmbGFn cyk7CiAKLQkJCXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0pOworCQkJdGVtcCA9IHJl YWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwogCQkJaWYgKGxpbmtfc3RhdGUgPT0gVVNCX1NTX1BP UlRfTFNfVTMpCiAJCQkJYnVzX3N0YXRlLT5zdXNwZW5kZWRfcG9ydHMgfD0gMSA8PCB3SW5kZXg7 CiAJCQlicmVhazsKQEAgLTEyNzksNDAgKzEyODQsMzkgQEAgaW50IHhoY2lfaHViX2NvbnRyb2wo c3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsCiAJCQlicmVhazsK IAkJY2FzZSBVU0JfUE9SVF9GRUFUX1JFU0VUOgogCQkJdGVtcCA9ICh0ZW1wIHwgUE9SVF9SRVNF VCk7Ci0JCQl3cml0ZWwodGVtcCwgcG9ydF9hcnJheVt3SW5kZXhdKTsKKwkJCXdyaXRlbCh0ZW1w LCBwb3J0c1t3SW5kZXhdLT5hZGRyKTsKIAotCQkJdGVtcCA9IHJlYWRsKHBvcnRfYXJyYXlbd0lu ZGV4XSk7CisJCQl0ZW1wID0gcmVhZGwocG9ydHNbd0luZGV4XS0+YWRkcik7CiAJCQl4aGNpX2Ri Zyh4aGNpLCAic2V0IHBvcnQgcmVzZXQsIGFjdHVhbCBwb3J0ICVkIHN0YXR1cyAgPSAweCV4XG4i LCB3SW5kZXgsIHRlbXApOwogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX1BPUlRfRkVBVF9SRU1PVEVf V0FLRV9NQVNLOgogCQkJeGhjaV9zZXRfcmVtb3RlX3dha2VfbWFzayh4aGNpLCBwb3J0X2FycmF5 LAogCQkJCQl3SW5kZXgsIHdha2VfbWFzayk7Ci0JCQl0ZW1wID0gcmVhZGwocG9ydF9hcnJheVt3 SW5kZXhdKTsKKwkJCXRlbXAgPSByZWFkbChwb3J0c1t3SW5kZXhdLT5hZGRyKTsKIAkJCXhoY2lf ZGJnKHhoY2ksICJzZXQgcG9ydCByZW1vdGUgd2FrZSBtYXNrLCAiCiAJCQkJCSJhY3R1YWwgcG9y dCAlZCBzdGF0dXMgID0gMHgleFxuIiwKIAkJCQkJd0luZGV4LCB0ZW1wKTsKIAkJCWJyZWFrOwog CQljYXNlIFVTQl9QT1JUX0ZFQVRfQkhfUE9SVF9SRVNFVDoKIAkJCXRlbXAgfD0gUE9SVF9XUjsK LQkJCXdyaXRlbCh0ZW1wLCBwb3J0X2FycmF5W3dJbmRleF0pOwotCi0JCQl0ZW1wID0gcmVhZGwo cG9ydF9hcnJheVt3SW5kZXhdKTsKKwkJCXdyaXRlbCh0ZW1wLCBwb3J0c1t3SW5kZXhdLT5hZGRy KTsKKwkJCXRlbXAgPSByZWFkbChwb3J0c1t3SW5kZXhdLT5hZGRyKTsKIAkJCWJyZWFrOwogCQlj YXNlIFVTQl9QT1JUX0ZFQVRfVTFfVElNRU9VVDoKIAkJCWlmIChoY2QtPnNwZWVkIDwgSENEX1VT QjMpCiAJCQkJZ290byBlcnJvcjsKLQkJCXRlbXAgPSByZWFkbChwb3J0X2FycmF5W3dJbmRleF0g KyBQT1JUUE1TQyk7CisJCQl0ZW1wID0gcmVhZGwocG9ydHNbd0luZGV4XS0+YWRkciArIFBPUlRQ TVNDKTsKIAkJCXRlbXAgJj0gflBPUlRfVTFfVElNRU9VVF9NQVNLOwogCQkJdGVtcCB8PSBQT1JU X1UxX1RJTUVPVVQodGltZW91dCk7Ci0JCQl3cml0ZWwodGVtcCwgcG9ydF9hcnJheVt3SW5kZXhd ICsgUE9SVFBNU0MpOworCQkJd3JpdGVsKHRlbXAsIHBvcnRzW3dJbmRleF0tPmFkZHIgKyBQT1JU UE1TQyk7CiAJCQlicmVhazsKIAkJY2FzZSBVU0JfUE9SVF9GRUFUX1UyX1RJTUVPVVQ6CiAJCQlp ZiAoaGNkLT5zcGVlZCA8IEhDRF9VU0IzKQogCQkJCWdvdG8gZXJyb3I7Ci0JCQl0ZW1wID0gcmVh ZGwocG9ydF9hcnJheVt3SW5kZXhdICsgUE9SVFBNU0MpOworCQkJdGVtcCA9IHJlYWRsKHBvcnRz W3dJbmRleF0tPmFkZHIgKyBQT1JUUE1TQyk7CiAJCQl0ZW1wICY9IH5QT1JUX1UyX1RJTUVPVVRf TUFTSzsKIAkJCXRlbXAgfD0gUE9SVF9VMl9USU1FT1VUKHRpbWVvdXQpOwotCQkJd3JpdGVsKHRl bXAsIHBvcnRfYXJyYXlbd0luZGV4XSArIFBPUlRQTVNDKTsKKwkJCXdyaXRlbCh0ZW1wLCBwb3J0 c1t3SW5kZXhdLT5hZGRyICsgUE9SVFBNU0MpOwogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX1BPUlRf RkVBVF9URVNUOgogCQkJLyogNC4xOS42IFBvcnQgVGVzdCBNb2RlcyAoVVNCMiBUZXN0IE1vZGUp ICovCkBAIC0xMzI3LDEzICsxMzMxLDEzIEBAIGludCB4aGNpX2h1Yl9jb250cm9sKHN0cnVjdCB1 c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLAogCQkJZ290byBlcnJvcjsKIAkJ fQogCQkvKiB1bmJsb2NrIGFueSBwb3N0ZWQgd3JpdGVzICovCi0JCXRlbXAgPSByZWFkbChwb3J0 X2FycmF5W3dJbmRleF0pOworCQl0ZW1wID0gcmVhZGwocG9ydHNbd0luZGV4XS0+YWRkcik7CiAJ CWJyZWFrOwogCWNhc2UgQ2xlYXJQb3J0RmVhdHVyZToKIAkJaWYgKCF3SW5kZXggfHwgd0luZGV4 ID4gbWF4X3BvcnRzKQogCQkJZ290byBlcnJvcjsKIAkJd0luZGV4LS07Ci0JCXRlbXAgPSByZWFk bChwb3J0X2FycmF5W3dJbmRleF0pOworCQl0ZW1wID0gcmVhZGwocG9ydHNbd0luZGV4XS0+YWRk cik7CiAJCWlmICh0ZW1wID09IH4odTMyKTApIHsKIAkJCXhoY2lfaGNfZGllZCh4aGNpKTsKIAkJ CXJldHZhbCA9IC1FTk9ERVY7CkBAIC0xMzQzLDcgKzEzNDcsNyBAQCBpbnQgeGhjaV9odWJfY29u dHJvbChzdHJ1Y3QgdXNiX2hjZCAqaGNkLCB1MTYgdHlwZVJlcSwgdTE2IHdWYWx1ZSwKIAkJdGVt cCA9IHhoY2lfcG9ydF9zdGF0ZV90b19uZXV0cmFsKHRlbXApOwogCQlzd2l0Y2ggKHdWYWx1ZSkg ewogCQljYXNlIFVTQl9QT1JUX0ZFQVRfU1VTUEVORDoKLQkJCXRlbXAgPSByZWFkbChwb3J0X2Fy cmF5W3dJbmRleF0pOworCQkJdGVtcCA9IHJlYWRsKHBvcnRzW3dJbmRleF0tPmFkZHIpOwogCQkJ eGhjaV9kYmcoeGhjaSwgImNsZWFyIFVTQl9QT1JUX0ZFQVRfU1VTUEVORFxuIik7CiAJCQl4aGNp X2RiZyh4aGNpLCAiUE9SVFNDICUwNHhcbiIsIHRlbXApOwogCQkJaWYgKHRlbXAgJiBQT1JUX1JF U0VUKQpAQCAtMTM4MywxMSArMTM4NywxMSBAQCBpbnQgeGhjaV9odWJfY29udHJvbChzdHJ1Y3Qg dXNiX2hjZCAqaGNkLCB1MTYgdHlwZVJlcSwgdTE2IHdWYWx1ZSwKIAkJY2FzZSBVU0JfUE9SVF9G RUFUX0NfUE9SVF9MSU5LX1NUQVRFOgogCQljYXNlIFVTQl9QT1JUX0ZFQVRfQ19QT1JUX0NPTkZJ R19FUlJPUjoKIAkJCXhoY2lfY2xlYXJfcG9ydF9jaGFuZ2VfYml0KHhoY2ksIHdWYWx1ZSwgd0lu ZGV4LAotCQkJCQlwb3J0X2FycmF5W3dJbmRleF0sIHRlbXApOworCQkJCQlwb3J0c1t3SW5kZXhd LT5hZGRyLCB0ZW1wKTsKIAkJCWJyZWFrOwogCQljYXNlIFVTQl9QT1JUX0ZFQVRfRU5BQkxFOgog CQkJeGhjaV9kaXNhYmxlX3BvcnQoaGNkLCB4aGNpLCB3SW5kZXgsCi0JCQkJCXBvcnRfYXJyYXlb d0luZGV4XSwgdGVtcCk7CisJCQkJCXBvcnRzW3dJbmRleF0tPmFkZHIsIHRlbXApOwogCQkJYnJl YWs7CiAJCWNhc2UgVVNCX1BPUlRfRkVBVF9QT1dFUjoKIAkJCXhoY2lfc2V0X3BvcnRfcG93ZXIo eGhjaSwgaGNkLCB3SW5kZXgsIGZhbHNlLCAmZmxhZ3MpOwpAQCAtMTQyNyw3ICsxNDMxLDExIEBA IGludCB4aGNpX2h1Yl9zdGF0dXNfZGF0YShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBjaGFyICpidWYp CiAJX19sZTMyIF9faW9tZW0gKipwb3J0X2FycmF5OwogCXN0cnVjdCB4aGNpX2J1c19zdGF0ZSAq YnVzX3N0YXRlOwogCWJvb2wgcmVzZXRfY2hhbmdlID0gZmFsc2U7CisJc3RydWN0IHhoY2lfaHVi ICpyaHViOworCXN0cnVjdCB4aGNpX3BvcnQgKipwb3J0czsKIAorCXJodWIgPSB4aGNpX2dldF9y aHViKGhjZCk7CisJcG9ydHMgPSByaHViLT5wb3J0czsKIAltYXhfcG9ydHMgPSB4aGNpX2dldF9w b3J0cyhoY2QsICZwb3J0X2FycmF5KTsKIAlidXNfc3RhdGUgPSAmeGhjaS0+YnVzX3N0YXRlW2hj ZF9pbmRleChoY2QpXTsKIApAQCAtMTQ0Niw3ICsxNDU0LDcgQEAgaW50IHhoY2lfaHViX3N0YXR1 c19kYXRhKHN0cnVjdCB1c2JfaGNkICpoY2QsIGNoYXIgKmJ1ZikKIAlzcGluX2xvY2tfaXJxc2F2 ZSgmeGhjaS0+bG9jaywgZmxhZ3MpOwogCS8qIEZvciBlYWNoIHBvcnQsIGRpZCBhbnl0aGluZyBj aGFuZ2U/ICBJZiBzbywgc2V0IHRoYXQgYml0IGluIGJ1Zi4gKi8KIAlmb3IgKGkgPSAwOyBpIDwg bWF4X3BvcnRzOyBpKyspIHsKLQkJdGVtcCA9IHJlYWRsKHBvcnRfYXJyYXlbaV0pOworCQl0ZW1w ID0gcmVhZGwocG9ydHNbaV0tPmFkZHIpOwogCQlpZiAodGVtcCA9PSB+KHUzMikwKSB7CiAJCQl4 aGNpX2hjX2RpZWQoeGhjaSk7CiAJCQlyZXR2YWwgPSAtRU5PREVWOwpAQCAtMTQ4MSw3ICsxNDg5 LDExIEBAIGludCB4aGNpX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCiAJX19sZTMy IF9faW9tZW0gKipwb3J0X2FycmF5OwogCXN0cnVjdCB4aGNpX2J1c19zdGF0ZSAqYnVzX3N0YXRl OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IHhoY2lfaHViICpyaHViOworCXN0cnVj dCB4aGNpX3BvcnQgKipwb3J0czsKIAorCXJodWIgPSB4aGNpX2dldF9yaHViKGhjZCk7CisJcG9y dHMgPSByaHViLT5wb3J0czsKIAltYXhfcG9ydHMgPSB4aGNpX2dldF9wb3J0cyhoY2QsICZwb3J0 X2FycmF5KTsKIAlidXNfc3RhdGUgPSAmeGhjaS0+YnVzX3N0YXRlW2hjZF9pbmRleChoY2QpXTsK IApAQCAtMTUwMyw3ICsxNTE1LDcgQEAgaW50IHhoY2lfYnVzX3N1c3BlbmQoc3RydWN0IHVzYl9o Y2QgKmhjZCkKIAkJdTMyIHQxLCB0MjsKIAkJaW50IHNsb3RfaWQ7CiAKLQkJdDEgPSByZWFkbChw b3J0X2FycmF5W3BvcnRfaW5kZXhdKTsKKwkJdDEgPSByZWFkbChwb3J0c1twb3J0X2luZGV4XS0+ YWRkcik7CiAJCXQyID0geGhjaV9wb3J0X3N0YXRlX3RvX25ldXRyYWwodDEpOwogCiAJCWlmICgo dDEgJiBQT1JUX1BFKSAmJiAhKHQxICYgUE9SVF9QTFNfTUFTSykpIHsKQEAgLTE1NDMsNyArMTU1 NSw3IEBAIGludCB4aGNpX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCiAKIAkJdDEg PSB4aGNpX3BvcnRfc3RhdGVfdG9fbmV1dHJhbCh0MSk7CiAJCWlmICh0MSAhPSB0MikKLQkJCXdy aXRlbCh0MiwgcG9ydF9hcnJheVtwb3J0X2luZGV4XSk7CisJCQl3cml0ZWwodDIsIHBvcnRzW3Bv cnRfaW5kZXhdLT5hZGRyKTsKIAl9CiAJaGNkLT5zdGF0ZSA9IEhDX1NUQVRFX1NVU1BFTkRFRDsK IAlidXNfc3RhdGUtPm5leHRfc3RhdGVjaGFuZ2UgPSBqaWZmaWVzICsgbXNlY3NfdG9famlmZmll cygxMCk7CkBAIC0xNTkxLDcgKzE2MDMsMTEgQEAgaW50IHhoY2lfYnVzX3Jlc3VtZShzdHJ1Y3Qg dXNiX2hjZCAqaGNkKQogCWludCBzcmV0OwogCXUzMiBuZXh0X3N0YXRlOwogCXUzMiB0ZW1wLCBw b3J0c2M7CisJc3RydWN0IHhoY2lfaHViICpyaHViOworCXN0cnVjdCB4aGNpX3BvcnQgKipwb3J0 czsKIAorCXJodWIgPSB4aGNpX2dldF9yaHViKGhjZCk7CisJcG9ydHMgPSByaHViLT5wb3J0czsK IAltYXhfcG9ydHMgPSB4aGNpX2dldF9wb3J0cyhoY2QsICZwb3J0X2FycmF5KTsKIAlidXNfc3Rh dGUgPSAmeGhjaS0+YnVzX3N0YXRlW2hjZF9pbmRleChoY2QpXTsKIApAQCAtMTYxNyw3ICsxNjMz LDcgQEAgaW50IHhoY2lfYnVzX3Jlc3VtZShzdHJ1Y3QgdXNiX2hjZCAqaGNkKQogCiAJcG9ydF9p bmRleCA9IG1heF9wb3J0czsKIAl3aGlsZSAocG9ydF9pbmRleC0tKSB7Ci0JCXBvcnRzYyA9IHJl YWRsKHBvcnRfYXJyYXlbcG9ydF9pbmRleF0pOworCQlwb3J0c2MgPSByZWFkbChwb3J0c1twb3J0 X2luZGV4XS0+YWRkcik7CiAKIAkJLyogd2FybSByZXNldCBDQVMgbGltaXRlZCBwb3J0cyBzdHVj ayBpbiBwb2xsaW5nL2NvbXBsaWFuY2UgKi8KIAkJaWYgKCh4aGNpLT5xdWlya3MgJiBYSENJX01J U1NJTkdfQ0FTKSAmJgpAQCAtMTY0Niw3ICsxNjYyLDcgQEAgaW50IHhoY2lfYnVzX3Jlc3VtZShz dHJ1Y3QgdXNiX2hjZCAqaGNkKQogCQkJfQogCQkvKiBkaXNhYmxlIHdha2UgZm9yIGFsbCBwb3J0 cywgd3JpdGUgbmV3IGxpbmsgc3RhdGUgaWYgbmVlZGVkICovCiAJCXBvcnRzYyAmPSB+KFBPUlRf UldDX0JJVFMgfCBQT1JUX0NFQyB8IFBPUlRfV0FLRV9CSVRTKTsKLQkJd3JpdGVsKHBvcnRzYywg cG9ydF9hcnJheVtwb3J0X2luZGV4XSk7CisJCXdyaXRlbChwb3J0c2MsIHBvcnRzW3BvcnRfaW5k ZXhdLT5hZGRyKTsKIAl9CiAKIAkvKiBVU0IyIHNwZWNpZmljIHJlc3VtZSBzaWduYWxpbmcgZGVs YXkgYW5kIFUwIGxpbmsgc3RhdGUgdHJhbnNpdGlvbiAqLwpAQCAtMTY2OCw3ICsxNjg0LDcgQEAg aW50IHhoY2lfYnVzX3Jlc3VtZShzdHJ1Y3QgdXNiX2hjZCAqaGNkKQogCiAJLyogcG9sbCBmb3Ig VTAgbGluayBzdGF0ZSBjb21wbGV0ZSwgYm90aCBVU0IyIGFuZCBVU0IzICovCiAJZm9yX2VhY2hf c2V0X2JpdChwb3J0X2luZGV4LCAmYnVzX3N0YXRlLT5idXNfc3VzcGVuZGVkLCBCSVRTX1BFUl9M T05HKSB7Ci0JCXNyZXQgPSB4aGNpX2hhbmRzaGFrZShwb3J0X2FycmF5W3BvcnRfaW5kZXhdLCBQ T1JUX1BMQywKKwkJc3JldCA9IHhoY2lfaGFuZHNoYWtlKHBvcnRzW3BvcnRfaW5kZXhdLT5hZGRy LCBQT1JUX1BMQywKIAkJCQkgICAgICBQT1JUX1BMQywgMTAgKiAxMDAwKTsKIAkJaWYgKHNyZXQp IHsKIAkJCXhoY2lfd2Fybih4aGNpLCAicG9ydCAlZCByZXN1bWUgUExDIHRpbWVvdXRcbiIsCg==