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: [v2,5/8] usb: typec: fusb302: Fix fusb302_handle_togdone_src Ra handling From: Hans de Goede Message-Id: <20190307163607.24016-6-hdegoede@redhat.com> Date: Thu, 7 Mar 2019 17:36:04 +0100 To: Greg Kroah-Hartman , Guenter Roeck , Heikki Krogerus Cc: Hans de Goede , linux-usb@vger.kernel.org List-ID: VGhlIEZVU0IzMDIgd2lsbCBzdG9wIHRvZ2dsaW5nIHdpdGggYSBGVVNCX1JFR19TVEFUVVMxQV9U T0dTU19TUkM/IHN0YXR1cywKYXMgc29vbiBhcyBpdCBzZWVzIGVpdGhlciBSYSBvciBSZCBvbiBh IENDIHBpbi4KCkJlZm9yZSB0aGlzIGNvbW1pdCBmdXNiMzAyX2hhbmRsZV90b2dkb25lX3NyYyB3 b3VsZCBhc3N1bWUgdGhhdCB0aGUgdG9nZ2xlLQplbmdpbmUgYWx3YXlzIHN0b3BwZWQgYXQgdGhl IENDIHBpbiBpbmRpY2F0aW5nIHRoZSBwb2xhcml0eSwgSU9XIGl0IGFzc3VtZWQKdGhhdCBpdCBz dG9wcGVkIGF0IHRoZSBwaW4gY29ubmVjdGVkIHRvIFJkLiBJdCBkaWQgY2hlY2sgdGhlIENDLXN0 YXR1cyBvZgp0aGF0IHBpbiwgYnV0IGl0IGRpZCBub3QgZXhwZWN0IHRvIGdldCBhIENDLXN0YXR1 cyBvZiBSYSBhbmQgdGhlcmVmb3JlCnRyZWF0ZWQgdGhpcyBhcyBDQy1vcGVuLiBUaGlzIGxlYWQg dG8gdGhlIGZvbGxvd2luZyAyIHByb2JsZW1zOgoKMSkgSWYgYSBwb3dlcmVkIGNhYmxlL2FkYXB0 ZXIgZ2V0cyBwbHVnZ2VkIGluIHdpdGggUmEgb24gQ0MxIGFuZCBSZCBvbiBDQzIKdGhlbiA0IG9m IDUgdGltZXMgd2hlbiBwbHVnZ2VkIGluIHRvZ2dsaW5nIHdpbGwgc3RvcCB3aXRoIGEgdG9nZG9u ZV9yZXN1bHQKb2YgRlVTQl9SRUdfU1RBVFVTMUFfVE9HU1NfU1JDMS4gIDMvNXRoIG9mIHRoZSB0 aW1lIHRoZSB0b2dnbGUtZW5naW5lIGlzCnRlc3RpbmcgZm9yIGJlaW5nIGNvbm5lY3RlZCBhcyBh IHNpbmsgYW5kIGFmdGVyIHRoYXQgaXQgdGVzdHMgMS81dGggb2YgdGhlCnRpbWUgZm9yIGNvbm5l Y3RlZCBhcyBhIHNyYyB0aHJvdWdoIENDMSBiZWZvcmUgZmluYWxseSB0ZXN0aW5nIHRoZSBsYXN0 CjEvNXRoIG9mIHRoZSB0aW1lIGZvciBiZWluZyBhIHNyYyBjb25uZWN0ZWQgdGhyb3VnaCBDQzIu CgpUaGlzIHdhcyBhIHByb2JsZW0gYmVjYXVzZSB3ZSB3b3VsZCBvbmx5IGNoZWNrIHRoZSBDQyBw aW4gc3RhdHVzIGZvciB0aGUKcGluIG9uIHdoaWNoIHRoZSB0b2dnbGluZyBzdG9wcGVkIHdoaWNo IGluIHRoaXMgcG9sYXJpdHkgNCBvdXQgb2YgNQp0aW1lcyB3b3VsZCBiZSB0aGUgUmEgcGluLiBU aGUgY29kZSBiZWZvcmUgdGhpcyBjb21taXQgd291bGQgdHJlYXQgUmEgYXMKQ0Mtb3BlbiBhbmQg dGhlbiByZXN0YXJ0IHRvZ2dsaW5nLiBPbmNlIHRvZ2dsaW5nIGlzIHJlc3RhcnRlZCB3ZSBhcmUK Z3VhcmFudGVlZCB0byBlbmQgd2l0aCBGVVNCX1JFR19TVEFUVVMxQV9UT0dTU19TUkMxIGFzIEND MSBpcyB0ZXN0ZWQgZmlyc3QsCmxlYWRpbmcgdG8gYSBDQy1zdGF0dXMgb2YgUmEgYWdhaW4gYW5k IGFuIGluZmluaXRlIHJlc3RhcnQgdG9nZ2xpbmcgbG9vcC4KU28gNCBvdXQgb2YgNSB0aW1lcyB3 aGVuIHBsdWdnZWQgaW4gaW4gdGhpcyBwb2xhcml0eSBhIHBvd2VyZWQgYWRhcHRlcgp3aWxsIG5v dCB3b3JrLgoKMikgRXZlbiBpZiB3ZSBoYXBwZW4gdG8gaGF2ZSB0aGUgcmlnaHQgcG9sYXJpdHkg b3IgMS81dGggb2YgdGhlIHRpbWUgaW4KdGhlIHBvbGFyaXR5IHdpdGggcHJvYmxlbSAxKSwgd2Ug d291bGQgcmVwb3J0IHRoZSBub24gUmQgcGluIGFzIENDLW9wZW4KcmF0aGVyIHRoZW4gYXMgUmEs IHJlc3VsdGluZyBpbiB0aGUgdGNwbS5jIGNvZGUgbm90IGVuYWJsaW5nIFZjb25uIHdoaWNoCmlz IGEgcHJvYmxlbSBmb3Igc29tZSBhZGFwdGVycy4KClRoaXMgY29tbWl0IGZpeGVzIHRoaXMgYnkg Z2V0dGluZyB0aGUgQ0Mtc3RhdHVzIG9mICpib3RoKiBwaW5zIGFuZCB0aGVuCmRldGVybWluaW5n IHRoZSBwb2xhcml0eSBiYXNlZCBvbiB0aGF0LCByYXRoZXIgdGhlbiBvbiB3aGVyZSB0aGUgdG9n Z2xpbmcKc3RvcHBlZC4KClNpZ25lZC1vZmYtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJl ZGhhdC5jb20+Ci0tLQogZHJpdmVycy91c2IvdHlwZWMvdGNwbS9mdXNiMzAyLmMgfCAxNDkgKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDk3IGluc2VydGlv bnMoKyksIDUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5cGVjL3Rj cG0vZnVzYjMwMi5jIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS9mdXNiMzAyLmMKaW5kZXggZjQz ZmUzNGI3YTczLi5iNzRjNmZmNjdhYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3R5cGVjL3Rj cG0vZnVzYjMwMi5jCisrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0vZnVzYjMwMi5jCkBAIC0x MjQ5LDYgKzEyNDksNjIgQEAgc3RhdGljIGludCBmdXNiMzAyX2hhbmRsZV90b2dkb25lX3Nuayhz dHJ1Y3QgZnVzYjMwMl9jaGlwICpjaGlwLAogCXJldHVybiByZXQ7CiB9CiAKKy8qIE9uIGVycm9y IHJldHVybnMgPCAwLCBvdGhlcndpc2UgYSB0eXBlY19jY19zdGF0dXMgdmFsdWUgKi8KK3N0YXRp YyBpbnQgZnVzYjMwMl9nZXRfc3JjX2NjX3N0YXR1cyhzdHJ1Y3QgZnVzYjMwMl9jaGlwICpjaGlw LAorCQkJCSAgICAgZW51bSB0eXBlY19jY19wb2xhcml0eSBjY19wb2xhcml0eSwKKwkJCQkgICAg IGVudW0gdHlwZWNfY2Nfc3RhdHVzICpjYykKK3sKKwl1OCByYV9tZGEgPSByYV9tZGFfdmFsdWVb Y2hpcC0+c3JjX2N1cnJlbnRfc3RhdHVzXTsKKwl1OCByZF9tZGEgPSByZF9tZGFfdmFsdWVbY2hp cC0+c3JjX2N1cnJlbnRfc3RhdHVzXTsKKwl1OCBzd2l0Y2hlczBfZGF0YSwgc3RhdHVzMDsKKwlp bnQgcmV0OworCisJLyogU3RlcCAxOiBTZXQgc3dpdGNoZXMgc28gdGhhdCB3ZSBtZWFzdXJlIHRo ZSByaWdodCBDQyBwaW4gKi8KKwlzd2l0Y2hlczBfZGF0YSA9IChjY19wb2xhcml0eSA9PSBUWVBF Q19QT0xBUklUWV9DQzEpID8KKwkJRlVTQl9SRUdfU1dJVENIRVMwX0NDMV9QVV9FTiB8IEZVU0Jf UkVHX1NXSVRDSEVTMF9NRUFTX0NDMSA6CisJCUZVU0JfUkVHX1NXSVRDSEVTMF9DQzJfUFVfRU4g fCBGVVNCX1JFR19TV0lUQ0hFUzBfTUVBU19DQzI7CisJcmV0ID0gZnVzYjMwMl9pMmNfd3JpdGUo Y2hpcCwgRlVTQl9SRUdfU1dJVENIRVMwLCBzd2l0Y2hlczBfZGF0YSk7CisJaWYgKHJldCA8IDAp CisJCXJldHVybiByZXQ7CisKKwlmdXNiMzAyX2kyY19yZWFkKGNoaXAsIEZVU0JfUkVHX1NXSVRD SEVTMCwgJnN0YXR1czApOworCWZ1c2IzMDJfbG9nKGNoaXAsICJnZXRfc3JjX2NjX3N0YXR1cyBz d2l0Y2hlczogMHglMHgiLCBzdGF0dXMwKTsKKworCS8qIFN0ZXAgMjogU2V0IGNvbXBhcmFyYXRv ciB2b2x0IHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBPcGVuIGFuZCBSZCAqLworCXJldCA9IGZ1 c2IzMDJfaTJjX3dyaXRlKGNoaXAsIEZVU0JfUkVHX01FQVNVUkUsIHJkX21kYSk7CisJaWYgKHJl dCA8IDApCisJCXJldHVybiByZXQ7CisKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOworCXJl dCA9IGZ1c2IzMDJfaTJjX3JlYWQoY2hpcCwgRlVTQl9SRUdfU1RBVFVTMCwgJnN0YXR1czApOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJZnVzYjMwMl9sb2coY2hpcCwgImdldF9z cmNfY2Nfc3RhdHVzIHJkX21kYSBzdGF0dXMwOiAweCUweCIsIHN0YXR1czApOworCWlmIChzdGF0 dXMwICYgRlVTQl9SRUdfU1RBVFVTMF9DT01QKSB7CisJCSpjYyA9IFRZUEVDX0NDX09QRU47CisJ CXJldHVybiAwOworCX0KKworCS8qIFN0ZXAgMzogU2V0IGNvbXBhcmFyYXRvciBpbnB1dCB0byBk aWZmZXJlbnRpYXRlIGJldHdlZW4gUmQgYW5kIFJhLiAqLworCXJldCA9IGZ1c2IzMDJfaTJjX3dy aXRlKGNoaXAsIEZVU0JfUkVHX01FQVNVUkUsIHJhX21kYSk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiByZXQ7CisKKwl1c2xlZXBfcmFuZ2UoNTAwMCwgMTAwMDApOworCXJldCA9IGZ1c2IzMDJf aTJjX3JlYWQoY2hpcCwgRlVTQl9SRUdfU1RBVFVTMCwgJnN0YXR1czApOworCWlmIChyZXQgPCAw KQorCQlyZXR1cm4gcmV0OworCisJZnVzYjMwMl9sb2coY2hpcCwgImdldF9zcmNfY2Nfc3RhdHVz IHJhX21kYSBzdGF0dXMwOiAweCUweCIsIHN0YXR1czApOworCWlmIChzdGF0dXMwICYgRlVTQl9S RUdfU1RBVFVTMF9DT01QKQorCQkqY2MgPSBUWVBFQ19DQ19SRDsKKwllbHNlCisJCSpjYyA9IFRZ UEVDX0NDX1JBOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgZnVzYjMwMl9oYW5kbGVf dG9nZG9uZV9zcmMoc3RydWN0IGZ1c2IzMDJfY2hpcCAqY2hpcCwKIAkJCQkgICAgICB1OCB0b2dk b25lX3Jlc3VsdCkKIHsKQEAgLTEyNTksNzEgKzEzMTUsNjIgQEAgc3RhdGljIGludCBmdXNiMzAy X2hhbmRsZV90b2dkb25lX3NyYyhzdHJ1Y3QgZnVzYjMwMl9jaGlwICpjaGlwLAogCSAqIC0gc2V0 IElfQ09NUCBpbnRlcnJ1cHQgb24KIAkgKi8KIAlpbnQgcmV0ID0gMDsKLQl1OCBzdGF0dXMwOwot CXU4IHJhX21kYSA9IHJhX21kYV92YWx1ZVtjaGlwLT5zcmNfY3VycmVudF9zdGF0dXNdOwogCXU4 IHJkX21kYSA9IHJkX21kYV92YWx1ZVtjaGlwLT5zcmNfY3VycmVudF9zdGF0dXNdOwotCWJvb2wg cmFfY29tcCwgcmRfY29tcDsKKwllbnVtIHRvZ2dsaW5nX21vZGUgdG9nZ2xpbmdfbW9kZSA9IGNo aXAtPnRvZ2dsaW5nX21vZGU7CiAJZW51bSB0eXBlY19jY19wb2xhcml0eSBjY19wb2xhcml0eTsK LQllbnVtIHR5cGVjX2NjX3N0YXR1cyBjY19zdGF0dXNfYWN0aXZlLCBjYzEsIGNjMjsKKwllbnVt IHR5cGVjX2NjX3N0YXR1cyBjYzEsIGNjMjsKIAotCS8qIHNldCBwb2xhcml0eSBhbmQgcHVsbF91 cCwgcHVsbF9kb3duICovCi0JY2NfcG9sYXJpdHkgPSAodG9nZG9uZV9yZXN1bHQgPT0gRlVTQl9S RUdfU1RBVFVTMUFfVE9HU1NfU1JDMSkgPwotCQkgICAgICBUWVBFQ19QT0xBUklUWV9DQzEgOiBU WVBFQ19QT0xBUklUWV9DQzI7Ci0JcmV0ID0gZnVzYjMwMl9zZXRfY2NfcG9sYXJpdHlfYW5kX3B1 bGwoY2hpcCwgY2NfcG9sYXJpdHksIHRydWUsIGZhbHNlKTsKKwkvKgorCSAqIFRoZSB0b2dnbGUt ZW5naW5lIHdpbGwgc3RvcCBpbiBhIHNyYyBzdGF0ZSBpZiBpdCBzZWVzIGVpdGhlciBSYSBvcgor CSAqIFJkLiBEZXRlcm1pbmUgdGhlIHN0YXR1cyBmb3IgYm90aCBDQyBwaW5zLCBzdGFydGluZyB3 aXRoIHRoZSBvbmUKKwkgKiB3aGVyZSB0b2dnbGluZyBzdG9wcGVkLCBhcyB0aGF0IGlzIHdoZXJl IHRoZSBzd2l0Y2hlcyBwb2ludCBub3cuCisJICovCisJaWYgKHRvZ2RvbmVfcmVzdWx0ID09IEZV U0JfUkVHX1NUQVRVUzFBX1RPR1NTX1NSQzEpCisJCXJldCA9IGZ1c2IzMDJfZ2V0X3NyY19jY19z dGF0dXMoY2hpcCwgVFlQRUNfUE9MQVJJVFlfQ0MxLCAmY2MxKTsKKwllbHNlCisJCXJldCA9IGZ1 c2IzMDJfZ2V0X3NyY19jY19zdGF0dXMoY2hpcCwgVFlQRUNfUE9MQVJJVFlfQ0MyLCAmY2MyKTsK KwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKwkvKiB3ZSBtdXN0IHR1cm4gb2ZmIHRvZ2ds aW5nIGJlZm9yZSB3ZSBjYW4gbWVhc3VyZSB0aGUgb3RoZXIgcGluICovCisJcmV0ID0gZnVzYjMw Ml9zZXRfdG9nZ2xpbmcoY2hpcCwgVE9HR0xJTkdfTU9ERV9PRkYpOwogCWlmIChyZXQgPCAwKSB7 Ci0JCWZ1c2IzMDJfbG9nKGNoaXAsICJjYW5ub3Qgc2V0IGNjIHBvbGFyaXR5ICVzLCByZXQ9JWQi LAotCQkJICAgIGNjX3BvbGFyaXR5X25hbWVbY2NfcG9sYXJpdHldLCByZXQpOworCQlmdXNiMzAy X2xvZyhjaGlwLCAiY2Fubm90IHNldCB0b2dnbGluZyBtb2RlIG9mZiwgcmV0PSVkIiwgcmV0KTsK IAkJcmV0dXJuIHJldDsKIAl9Ci0JLyogZnVzYjMwMl9zZXRfY2NfcG9sYXJpdHkoKSBoYXMgc2V0 IHRoZSBjb3JyZWN0IG1lYXN1cmUgYmxvY2sgKi8KLQlyZXQgPSBmdXNiMzAyX2kyY193cml0ZShj aGlwLCBGVVNCX1JFR19NRUFTVVJFLCByZF9tZGEpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4g cmV0OwotCXVzbGVlcF9yYW5nZSg1MCwgMTAwKTsKLQlyZXQgPSBmdXNiMzAyX2kyY19yZWFkKGNo aXAsIEZVU0JfUkVHX1NUQVRVUzAsICZzdGF0dXMwKTsKKwkvKiBnZXQgdGhlIHN0YXR1cyBvZiB0 aGUgb3RoZXIgcGluICovCisJaWYgKHRvZ2RvbmVfcmVzdWx0ID09IEZVU0JfUkVHX1NUQVRVUzFB X1RPR1NTX1NSQzEpCisJCXJldCA9IGZ1c2IzMDJfZ2V0X3NyY19jY19zdGF0dXMoY2hpcCwgVFlQ RUNfUE9MQVJJVFlfQ0MyLCAmY2MyKTsKKwllbHNlCisJCXJldCA9IGZ1c2IzMDJfZ2V0X3NyY19j Y19zdGF0dXMoY2hpcCwgVFlQRUNfUE9MQVJJVFlfQ0MxLCAmY2MxKTsKIAlpZiAocmV0IDwgMCkK IAkJcmV0dXJuIHJldDsKLQlyZF9jb21wID0gISEoc3RhdHVzMCAmIEZVU0JfUkVHX1NUQVRVUzBf Q09NUCk7Ci0JaWYgKCFyZF9jb21wKSB7Ci0JCXJldCA9IGZ1c2IzMDJfaTJjX3dyaXRlKGNoaXAs IEZVU0JfUkVHX01FQVNVUkUsIHJhX21kYSk7Ci0JCWlmIChyZXQgPCAwKQotCQkJcmV0dXJuIHJl dDsKLQkJdXNsZWVwX3JhbmdlKDUwLCAxMDApOwotCQlyZXQgPSBmdXNiMzAyX2kyY19yZWFkKGNo aXAsIEZVU0JfUkVHX1NUQVRVUzAsICZzdGF0dXMwKTsKLQkJaWYgKHJldCA8IDApCi0JCQlyZXR1 cm4gcmV0OwotCQlyYV9jb21wID0gISEoc3RhdHVzMCAmIEZVU0JfUkVHX1NUQVRVUzBfQ09NUCk7 CisKKwkvKiBkZXRlcm1pbmUgcG9sYXJpdHkgYmFzZWQgb24gdGhlIHN0YXR1cyBvZiBib3RoIHBp bnMgKi8KKwlpZiAoY2MxID09IFRZUEVDX0NDX1JEICYmCisJCQkoY2MyID09IFRZUEVDX0NDX09Q RU4gfHwgY2MyID09IFRZUEVDX0NDX1JBKSkgeworCQljY19wb2xhcml0eSA9IFRZUEVDX1BPTEFS SVRZX0NDMTsKKwl9IGVsc2UgaWYgKGNjMiA9PSBUWVBFQ19DQ19SRCAmJgorCQkgICAgKGNjMSA9 PSBUWVBFQ19DQ19PUEVOIHx8IGNjMSA9PSBUWVBFQ19DQ19SQSkpIHsKKwkJY2NfcG9sYXJpdHkg PSBUWVBFQ19QT0xBUklUWV9DQzI7CisJfSBlbHNlIHsKKwkJZnVzYjMwMl9sb2coY2hpcCwgInVu ZXhwZWN0ZWQgQ0Mgc3RhdHVzIGNjMT0lcywgY2MyPSVzLCByZXN0YXJ0aW5nIHRvZ2dsaW5nIiwK KwkJCSAgICB0eXBlY19jY19zdGF0dXNfbmFtZVtjYzFdLAorCQkJICAgIHR5cGVjX2NjX3N0YXR1 c19uYW1lW2NjMl0pOworCQlyZXR1cm4gZnVzYjMwMl9zZXRfdG9nZ2xpbmcoY2hpcCwgdG9nZ2xp bmdfbW9kZSk7CiAJfQotCWlmIChyZF9jb21wKQotCQljY19zdGF0dXNfYWN0aXZlID0gVFlQRUNf Q0NfT1BFTjsKLQllbHNlIGlmIChyYV9jb21wKQotCQljY19zdGF0dXNfYWN0aXZlID0gVFlQRUNf Q0NfUkQ7Ci0JZWxzZQotCQkvKiBSYSBpcyBub3Qgc3VwcG9ydGVkLCByZXBvcnQgYXMgT3BlbiAq LwotCQljY19zdGF0dXNfYWN0aXZlID0gVFlQRUNfQ0NfT1BFTjsKLQkvKiByZXN0YXJ0IHRvZ2ds aW5nIGlmIHRoZSBjYyBzdGF0dXMgb24gdGhlIGFjdGl2ZSBsaW5lIGlzIE9QRU4gKi8KLQlpZiAo Y2Nfc3RhdHVzX2FjdGl2ZSA9PSBUWVBFQ19DQ19PUEVOKSB7Ci0JCWZ1c2IzMDJfbG9nKGNoaXAs ICJyZXN0YXJ0IHRvZ2dsaW5nIGFzIENDX09QRU4gZGV0ZWN0ZWQiKTsKLQkJcmV0ID0gZnVzYjMw Ml9zZXRfdG9nZ2xpbmcoY2hpcCwgY2hpcC0+dG9nZ2xpbmdfbW9kZSk7CisJLyogc2V0IHBvbGFy aXR5IGFuZCBwdWxsX3VwLCBwdWxsX2Rvd24gKi8KKwlyZXQgPSBmdXNiMzAyX3NldF9jY19wb2xh cml0eV9hbmRfcHVsbChjaGlwLCBjY19wb2xhcml0eSwgdHJ1ZSwgZmFsc2UpOworCWlmIChyZXQg PCAwKSB7CisJCWZ1c2IzMDJfbG9nKGNoaXAsICJjYW5ub3Qgc2V0IGNjIHBvbGFyaXR5ICVzLCBy ZXQ9JWQiLAorCQkJICAgIGNjX3BvbGFyaXR5X25hbWVbY2NfcG9sYXJpdHldLCByZXQpOwogCQly ZXR1cm4gcmV0OwogCX0KIAkvKiB1cGRhdGUgdGNwbSB3aXRoIHRoZSBuZXcgY2MgdmFsdWUgKi8K LQljYzEgPSAoY2NfcG9sYXJpdHkgPT0gVFlQRUNfUE9MQVJJVFlfQ0MxKSA/Ci0JICAgICAgY2Nf c3RhdHVzX2FjdGl2ZSA6IFRZUEVDX0NDX09QRU47Ci0JY2MyID0gKGNjX3BvbGFyaXR5ID09IFRZ UEVDX1BPTEFSSVRZX0NDMikgPwotCSAgICAgIGNjX3N0YXR1c19hY3RpdmUgOiBUWVBFQ19DQ19P UEVOOwogCWlmICgoY2hpcC0+Y2MxICE9IGNjMSkgfHwgKGNoaXAtPmNjMiAhPSBjYzIpKSB7CiAJ CWNoaXAtPmNjMSA9IGNjMTsKIAkJY2hpcC0+Y2MyID0gY2MyOwogCQl0Y3BtX2NjX2NoYW5nZShj aGlwLT50Y3BtX3BvcnQpOwogCX0KLQkvKiB0dXJuIG9mZiB0b2dnbGluZyAqLwotCXJldCA9IGZ1 c2IzMDJfc2V0X3RvZ2dsaW5nKGNoaXAsIFRPR0dMSU5HX01PREVfT0ZGKTsKLQlpZiAocmV0IDwg MCkgewotCQlmdXNiMzAyX2xvZyhjaGlwLAotCQkJICAgICJjYW5ub3Qgc2V0IHRvZ2dsaW5nIG1v ZGUgb2ZmLCByZXQ9JWQiLCByZXQpOwotCQlyZXR1cm4gcmV0OwotCX0KIAkvKiBzZXQgTURBQyB0 byBSZCB0aHJlc2hvbGQsIGFuZCB1bm1hc2sgSV9DT01QIGZvciB1bnBsdWcgZGV0ZWN0aW9uICov CiAJcmV0ID0gZnVzYjMwMl9pMmNfd3JpdGUoY2hpcCwgRlVTQl9SRUdfTUVBU1VSRSwgcmRfbWRh KTsKIAlpZiAocmV0IDwgMCkKQEAgLTE1MDksMTAgKzE1NTYsOCBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgZnVzYjMwMl9pcnFfaW50bihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCQkgICAgY29tcF9y ZXN1bHQgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKIAkJaWYgKGNvbXBfcmVzdWx0KSB7CiAJCQkvKiBj YyBsZXZlbCA+IFJkX3RocmVhc2hvbGQsIGRldGFjaCAqLwotCQkJaWYgKGNoaXAtPmNjX3BvbGFy aXR5ID09IFRZUEVDX1BPTEFSSVRZX0NDMSkKLQkJCQljaGlwLT5jYzEgPSBUWVBFQ19DQ19PUEVO OwotCQkJZWxzZQotCQkJCWNoaXAtPmNjMiA9IFRZUEVDX0NDX09QRU47CisJCQljaGlwLT5jYzEg PSBUWVBFQ19DQ19PUEVOOworCQkJY2hpcC0+Y2MyID0gVFlQRUNfQ0NfT1BFTjsKIAkJCXRjcG1f Y2NfY2hhbmdlKGNoaXAtPnRjcG1fcG9ydCk7CiAJCX0KIAl9Cg==