From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= Subject: [PATCH net-next 2/3] net: ethernet: mediatek: Re-add support SGMII Date: Wed, 24 Jul 2019 21:23:59 +0200 Message-ID: <20190724192359.19808-1-opensource@vdorst.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+glpam-linux-mediatek=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: andrew-g2DYL2Zd6BY@public.gmane.org, f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, frank-w-SipyoOjXbOMoAHOVJHB0wA@public.gmane.org, sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org, linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org, vivien.didelot-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, =?UTF-8?q?Ren=C3=A9=20van=20Dorst?= , devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, john-Pj+rj9U5foFAfugRpC6u6w@public.gmane.org, matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, linux-mips-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org List-Id: devicetree@vger.kernel.org KiBSZS1hZGQgU0dNSUkgc3VwcG9ydCBidXQgbm93IHdpdGggUEhZTElOSyBBUEkgc3VwcG9ydAog IFNvIHRoZSBTR01JSSBjaGFuZ2VzIGFyZSBtb3JlIGNsZWFyCiogTW92ZSBTR01JSSBibG9jayBz ZXR1cCBmcm9tIG10a19nbWFjX3NnbWlpX3BhdGhfc2V0dXAoKSB0bwogIG10a19tYWNfY29uZmln KCkKKiBNZXJnZSBtdGtfc2V0dXBfaHdfcGF0aCgpIGludG8gbXRrX21hY19jb25maWcoKQoqIFJl bW92ZSBtZWRpYXRlayxwaHlzcGVlZCBwcm9wZXJ0eSwgZml4ZWQtbGluayBzdXBwb3J0cyBub3cg YW55IHNwZWVkIHNvCiAgc3BlZWQgPSA8MjUwMD47IGlzIG5vdyB2YWxpZCB3aXRoIFBIWUxJTksu CiogRGVtYWdpYyBTR01JSSByZWdpc3RlciB2YWx1ZXMKKiBVc2UgcGh5bGluayBzdGF0ZSB0byBz ZXR1cCBmaXhlZC1saW5rIG1vZGUKClNpZ25lZC1vZmYtYnk6IFJlbsOpIHZhbiBEb3JzdCA8b3Bl bnNvdXJjZUB2ZG9yc3QuY29tPgpUZXN0ZWQtYnk6IEZyYW5rIFd1bmRlcmxpY2ggPGZyYW5rLXdA cHVibGljLWZpbGVzLmRlPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19l dGhfcGF0aC5jIHwgIDcyICstLS0tLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVr L210a19ldGhfc29jLmMgIHwgMTMwICsrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmggIHwgIDM3ICsrKysrLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3NnbWlpLmMgICAgfCAgNjUgKysrKysrLS0tLQogNCBmaWxl cyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKSwgMTE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfcGF0aC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9wYXRoLmMKaW5kZXggN2YwNTg4MGNmOWVm Li45YTIwNWI5YWIxYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVr L210a19ldGhfcGF0aC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19l dGhfcGF0aC5jCkBAIC0yMzksMTAgKzIzOSw5IEBAIHN0YXRpYyBpbnQgbXRrX2V0aF9tdXhfc2V0 dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IHBhdGgpCiAJcmV0dXJuIGVycjsKIH0KIAotc3Rh dGljIGludCBtdGtfZ21hY19zZ21paV9wYXRoX3NldHVwKHN0cnVjdCBtdGtfZXRoICpldGgsIGlu dCBtYWNfaWQpCitpbnQgbXRrX2dtYWNfc2dtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0aCAq ZXRoLCBpbnQgbWFjX2lkKQogewotCXVuc2lnbmVkIGludCB2YWwgPSAwOwotCWludCBzaWQsIGVy ciwgcGF0aDsKKwlpbnQgZXJyLCBwYXRoOwogCiAJcGF0aCA9IChtYWNfaWQgPT0gMCkgPyAgTVRL X0VUSF9QQVRIX0dNQUMxX1NHTUlJIDoKIAkJCQlNVEtfRVRIX1BBVEhfR01BQzJfU0dNSUk7CkBA IC0yNTIsMzMgKzI1MSwxMCBAQCBzdGF0aWMgaW50IG10a19nbWFjX3NnbWlpX3BhdGhfc2V0dXAo c3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19pZCkKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJy OwogCi0JLyogVGhlIHBhdGggR01BQyB0byBTR01JSSB3aWxsIGJlIGVuYWJsZWQgb25jZSB0aGUg U0dNSUlTWVMgaXMgYmVpbmcKLQkgKiBzZXR1cCBkb25lLgotCSAqLwotCXJlZ21hcF9yZWFkKGV0 aC0+ZXRoc3lzLCBFVEhTWVNfU1lTQ0ZHMCwgJnZhbCk7Ci0KLQlyZWdtYXBfdXBkYXRlX2JpdHMo ZXRoLT5ldGhzeXMsIEVUSFNZU19TWVNDRkcwLAotCQkJICAgU1lTQ0ZHMF9TR01JSV9NQVNLLCB+ KHUzMilTWVNDRkcwX1NHTUlJX01BU0spOwotCi0JLyogRGVjaWRlIGhvdyBHTUFDIGFuZCBTR01J SVNZUyBiZSBtYXBwZWQgKi8KLQlzaWQgPSAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBN VEtfU0hBUkVEX1NHTUlJKSkgPyAwIDogbWFjX2lkOwotCi0JLyogU2V0dXAgU0dNSUlTWVMgd2l0 aCB0aGUgZGV0ZXJtaW5lZCBwcm9wZXJ0eSAqLwotCWlmIChNVEtfSEFTX0ZMQUdTKGV0aC0+c2dt aWktPmZsYWdzW3NpZF0sIE1US19TR01JSV9QSFlTUEVFRF9BTikpCi0JCWVyciA9IG10a19zZ21p aV9zZXR1cF9tb2RlX2FuKGV0aC0+c2dtaWksIHNpZCk7Ci0JZWxzZQotCQllcnIgPSBtdGtfc2dt aWlfc2V0dXBfbW9kZV9mb3JjZShldGgtPnNnbWlpLCBzaWQpOwotCi0JaWYgKGVycikKLQkJcmV0 dXJuIGVycjsKLQotCXJlZ21hcF91cGRhdGVfYml0cyhldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NG RzAsCi0JCQkgICBTWVNDRkcwX1NHTUlJX01BU0ssIHZhbCk7Ci0KIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIGludCBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKHN0cnVjdCBtdGtfZXRoICpldGgs IGludCBtYWNfaWQpCitpbnQgbXRrX2dtYWNfZ2VwaHlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0 aCAqZXRoLCBpbnQgbWFjX2lkKQogewogCWludCBlcnIsIHBhdGggPSAwOwogCkBAIC0yOTYsNyAr MjcyLDcgQEAgc3RhdGljIGludCBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKHN0cnVjdCBtdGtf ZXRoICpldGgsIGludCBtYWNfaWQpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXRrX2dt YWNfcmdtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFjX2lkKQoraW50 IG10a19nbWFjX3JnbWlpX3BhdGhfc2V0dXAoc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19p ZCkKIHsKIAlpbnQgZXJyLCBwYXRoOwogCkBAIC0zMTAsNDMgKzI4NiwzIEBAIHN0YXRpYyBpbnQg bXRrX2dtYWNfcmdtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRrX2V0aCAqZXRoLCBpbnQgbWFjX2lk KQogCiAJcmV0dXJuIDA7CiB9Ci0KLWludCBtdGtfc2V0dXBfaHdfcGF0aChzdHJ1Y3QgbXRrX2V0 aCAqZXRoLCBpbnQgbWFjX2lkLCBpbnQgcGh5bW9kZSkKLXsKLQlpbnQgZXJyOwotCi0Jc3dpdGNo IChwaHltb2RlKSB7Ci0JY2FzZSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJOgotCWNhc2UgUEhZ X0lOVEVSRkFDRV9NT0RFX1JHTUlJX1RYSUQ6Ci0JY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdN SUlfUlhJRDoKLQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoKLQljYXNlIFBIWV9J TlRFUkZBQ0VfTU9ERV9SR01JSToKLQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6Ci0JY2Fz ZSBQSFlfSU5URVJGQUNFX01PREVfUkVWTUlJOgotCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1JN SUk6Ci0JCWlmIChNVEtfSEFTX0NBUFMoZXRoLT5zb2MtPmNhcHMsIE1US19SR01JSSkpIHsKLQkJ CWVyciA9IG10a19nbWFjX3JnbWlpX3BhdGhfc2V0dXAoZXRoLCBtYWNfaWQpOwotCQkJaWYgKGVy cikKLQkJCQlyZXR1cm4gZXJyOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgUEhZX0lOVEVSRkFDRV9N T0RFX1NHTUlJOgotCQlpZiAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtfU0dNSUkp KSB7Ci0JCQllcnIgPSBtdGtfZ21hY19zZ21paV9wYXRoX3NldHVwKGV0aCwgbWFjX2lkKTsKLQkJ CWlmIChlcnIpCi0JCQkJcmV0dXJuIGVycjsKLQkJfQotCQlicmVhazsKLQljYXNlIFBIWV9JTlRF UkZBQ0VfTU9ERV9HTUlJOgotCQlpZiAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtf R0VQSFkpKSB7Ci0JCQllcnIgPSBtdGtfZ21hY19nZXBoeV9wYXRoX3NldHVwKGV0aCwgbWFjX2lk KTsKLQkJCWlmIChlcnIpCi0JCQkJcmV0dXJuIGVycjsKLQkJfQotCQlicmVhazsKLQlkZWZhdWx0 OgotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWRpYXRlay9tdGtfZXRoX3NvYy5jCmluZGV4IDg1MzkyOTA3MGNiMy4uMDI4MzExNjZkYTNjIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMKQEAgLTE5NCw3 ICsxOTQsOCBAQCBzdGF0aWMgdm9pZCBtdGtfbWFjX2NvbmZpZyhzdHJ1Y3QgcGh5bGlua19jb25m aWcgKmNvbmZpZywgdW5zaWduZWQgaW50IG1vZGUsCiAJCQkJCSAgIHBoeWxpbmtfY29uZmlnKTsK IAlzdHJ1Y3QgbXRrX2V0aCAqZXRoID0gbWFjLT5odzsKIAotCXUzMiBnZV9tb2RlID0gMCwgdmFs LCBtY3JfY3VyLCBtY3JfbmV3OworCXUzMiBnZV9tb2RlID0gMCwgdmFsLCBtY3JfY3VyLCBtY3Jf bmV3LCBlcnIgPSAtRUlOVkFMOworCXUzMiBzaWQ7CiAKIAlpZiAobWFjLT5pbnRlcmZhY2UgIT0g c3RhdGUtPmludGVyZmFjZSkgewogCQkvKiBTZXR1cCBzb2MgcGluIGZ1bmN0aW9ucyAqLwpAQCAt MjEwLDI0ICsyMTEsMzUgQEAgc3RhdGljIHZvaWQgbXRrX21hY19jb25maWcoc3RydWN0IHBoeWxp bmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogCQljYXNlIFBIWV9JTlRFUkZB Q0VfTU9ERV9SR01JSV9SWElEOgogCQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SR01JSV9JRDoK IAkJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfUkdNSUk6Ci0JCQlicmVhazsKIAkJY2FzZSBQSFlf SU5URVJGQUNFX01PREVfTUlJOgotCQkJZ2VfbW9kZSA9IDE7Ci0JCQlicmVhazsKIAkJY2FzZSBQ SFlfSU5URVJGQUNFX01PREVfUkVWTUlJOgotCQkJZ2VfbW9kZSA9IDI7Ci0JCQlicmVhazsKIAkJ Y2FzZSBQSFlfSU5URVJGQUNFX01PREVfUk1JSToKLQkJCWlmIChtYWMtPmlkKQotCQkJCWdvdG8g ZXJyX3BoeTsKLQkJCWdlX21vZGUgPSAzOworCQkJaWYgKE1US19IQVNfQ0FQUyhldGgtPnNvYy0+ Y2FwcywgTVRLX1JHTUlJKSkgeworCQkJCWVyciA9IG10a19nbWFjX3JnbWlpX3BhdGhfc2V0dXAo ZXRoLCBtYWMtPmlkKTsKKwkJCQlpZiAoZXJyKQorCQkJCQlnb3RvIGluaXRfZXJyOworCQkJfQor CQkJYnJlYWs7CisJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJOgorCQkJaWYgKE1US19I QVNfQ0FQUyhldGgtPnNvYy0+Y2FwcywgTVRLX1NHTUlJKSkgeworCQkJCWVyciA9IG10a19nbWFj X3NnbWlpX3BhdGhfc2V0dXAoZXRoLCBtYWMtPmlkKTsKKwkJCQlpZiAoZXJyKQorCQkJCQlnb3Rv IGluaXRfZXJyOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX0dN SUk6CisJCQlpZiAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtfR0VQSFkpKSB7CisJ CQkJZXJyID0gbXRrX2dtYWNfZ2VwaHlfcGF0aF9zZXR1cChldGgsIG1hYy0+aWQpOworCQkJCWlm IChlcnIpCisJCQkJCWdvdG8gaW5pdF9lcnI7CisJCQl9CiAJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWdvdG8gZXJyX3BoeTsKIAkJfQogCiAJCS8qIFNldHVwIGNsb2NrIGZvciAxc3QgZ21hYyAq LwotCQlpZiAoIW1hYy0+aWQgJiYKKwkJaWYgKCFtYWMtPmlkICYmIHN0YXRlLT5pbnRlcmZhY2Ug IT0gUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJICYmCiAJCSAgICBNVEtfSEFTX0NBUFMobWFjLT5o dy0+c29jLT5jYXBzLCBNVEtfR01BQzFfVFJHTUlJKSkgewogCQkJaWYgKE1US19IQVNfQ0FQUyht YWMtPmh3LT5zb2MtPmNhcHMsCiAJCQkJCSBNVEtfVFJHTUlJX01UNzYyMV9DTEspKSB7CkBAIC0y NDIsNiArMjU0LDIyIEBAIHN0YXRpYyB2b2lkIG10a19tYWNfY29uZmlnKHN0cnVjdCBwaHlsaW5r X2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSwKIAkJCX0KIAkJfQogCisJCXN3aXRj aCAoc3RhdGUtPmludGVyZmFjZSkgeworCQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6CisJ CQlnZV9tb2RlID0gMTsKKwkJCWJyZWFrOworCQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZN SUk6CisJCQlnZV9tb2RlID0gMjsKKwkJCWJyZWFrOworCQljYXNlIFBIWV9JTlRFUkZBQ0VfTU9E RV9STUlJOgorCQkJaWYgKG1hYy0+aWQpCisJCQkJZ290byBlcnJfcGh5OworCQkJZ2VfbW9kZSA9 IDM7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisKIAkJLyogcHV0IHRo ZSBnbWFjIGludG8gdGhlIHJpZ2h0IG1vZGUgKi8KIAkJcmVnbWFwX3JlYWQoZXRoLT5ldGhzeXMs IEVUSFNZU19TWVNDRkcwLCAmdmFsKTsKIAkJdmFsICY9IH5TWVNDRkcwX0dFX01PREUoU1lTQ0ZH MF9HRV9NQVNLLCBtYWMtPmlkKTsKQEAgLTI1MSw3ICsyNzksMzggQEAgc3RhdGljIHZvaWQgbXRr X21hY19jb25maWcoc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBt b2RlLAogCQltYWMtPmludGVyZmFjZSA9IHN0YXRlLT5pbnRlcmZhY2U7CiAJfQogCi0JLyogU2V0 dXAgZ21hYyAqLworCS8qIFNHTUlJICovCisJaWYgKHN0YXRlLT5pbnRlcmZhY2UgPT0gUEhZX0lO VEVSRkFDRV9NT0RFX1NHTUlJKSB7CisJCS8qIFRoZSBwYXRoIEdNQUMgdG8gU0dNSUkgd2lsbCBi ZSBlbmFibGVkIG9uY2UgdGhlIFNHTUlJU1lTIGlzCisJCSAqIGJlaW5nIHNldHVwIGRvbmUuCisJ CSAqLworCQlyZWdtYXBfcmVhZChldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NGRzAsICZ2YWwpOwor CisJCXJlZ21hcF91cGRhdGVfYml0cyhldGgtPmV0aHN5cywgRVRIU1lTX1NZU0NGRzAsCisJCQkJ ICAgU1lTQ0ZHMF9TR01JSV9NQVNLLAorCQkJCSAgIH4odTMyKVNZU0NGRzBfU0dNSUlfTUFTSyk7 CisKKwkJLyogRGVjaWRlIGhvdyBHTUFDIGFuZCBTR01JSVNZUyBiZSBtYXBwZWQgKi8KKwkJc2lk ID0gKE1US19IQVNfQ0FQUyhldGgtPnNvYy0+Y2FwcywgTVRLX1NIQVJFRF9TR01JSSkpID8KKwkJ ICAgICAgIDAgOiBtYWMtPmlkOworCisJCS8qIFNldHVwIFNHTUlJU1lTIHdpdGggdGhlIGRldGVy bWluZWQgcHJvcGVydHkgKi8KKwkJaWYgKHBoeWxpbmtfYXV0b25lZ19pbmJhbmQobW9kZSkpCisJ CQllcnIgPSBtdGtfc2dtaWlfc2V0dXBfbW9kZV9hbihldGgtPnNnbWlpLCBzaWQpOworCQllbHNl CisJCQllcnIgPSBtdGtfc2dtaWlfc2V0dXBfbW9kZV9mb3JjZShldGgtPnNnbWlpLCBzaWQsCisJ CQkJCQkJIHN0YXRlKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gaW5pdF9lcnI7CisKKwkJcmVnbWFw X3VwZGF0ZV9iaXRzKGV0aC0+ZXRoc3lzLCBFVEhTWVNfU1lTQ0ZHMCwKKwkJCQkgICBTWVNDRkcw X1NHTUlJX01BU0ssIHZhbCk7CisJfSBlbHNlIGlmIChwaHlsaW5rX2F1dG9uZWdfaW5iYW5kKG1v ZGUpKSB7CisJCWRldl9lcnIoZXRoLT5kZXYsICJJbi1iYW5kIG1vZGUgbm90IHN1cHBvcnRlZCBp biBub24gU0dNSUkgbW9kZSFcbiIpOworCQlyZXR1cm47CisJfQorCisJLyogU2V0dXAgR01BQyAq LwogCW1jcl9jdXIgPSBtdGtfcjMyKG1hYy0+aHcsIE1US19NQUNfTUNSKG1hYy0+aWQpKTsKIAlt Y3JfbmV3ID0gbWNyX2N1cjsKIAltY3JfbmV3ICY9IH4oTUFDX01DUl9TUEVFRF8xMDAgfCBNQUNf TUNSX1NQRUVEXzEwMDAgfApAQCAtMjYxLDYgKzMyMCw3IEBAIHN0YXRpYyB2b2lkIG10a19tYWNf Y29uZmlnKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgbW9kZSwK IAkJICAgTUFDX01DUl9CQUNLT0ZGX0VOIHwgTUFDX01DUl9CQUNLUFJfRU4gfCBNQUNfTUNSX0ZP UkNFX0xJTks7CiAKIAlzd2l0Y2ggKHN0YXRlLT5zcGVlZCkgeworCWNhc2UgU1BFRURfMjUwMDoK IAljYXNlIFNQRUVEXzEwMDA6CiAJCW1jcl9uZXcgfD0gTUFDX01DUl9TUEVFRF8xMDAwOwogCQli cmVhazsKQEAgLTI4NSw2ICszNDUsMTEgQEAgc3RhdGljIHZvaWQgbXRrX21hY19jb25maWcoc3Ry dWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBtb2RlLAogZXJyX3BoeToK IAlkZXZfZXJyKGV0aC0+ZGV2LCAiJXM6IEdNQUMlZCBtb2RlICVzIG5vdCBzdXBwb3J0ZWQhXG4i LCBfX2Z1bmNfXywKIAkJbWFjLT5pZCwgcGh5X21vZGVzKHN0YXRlLT5pbnRlcmZhY2UpKTsKKwly ZXR1cm47CisKK2luaXRfZXJyOgorCWRldl9lcnIoZXRoLT5kZXYsICIlczogR01BQyVkIG1vZGUg JXMgZXJyOiAlZCFcbiIsIF9fZnVuY19fLAorCQltYWMtPmlkLCBwaHlfbW9kZXMoc3RhdGUtPmlu dGVyZmFjZSksIGVycik7CiB9CiAKIHN0YXRpYyBpbnQgbXRrX21hY19saW5rX3N0YXRlKHN0cnVj dCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLApAQCAtMzI1LDcgKzM5MCwxMCBAQCBzdGF0aWMgaW50 IG10a19tYWNfbGlua19zdGF0ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKIAogc3Rh dGljIHZvaWQgbXRrX21hY19hbl9yZXN0YXJ0KHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmln KQogewotCS8qIERvIG5vdGhpbmcgKi8KKwlzdHJ1Y3QgbXRrX21hYyAqbWFjID0gY29udGFpbmVy X29mKGNvbmZpZywgc3RydWN0IG10a19tYWMsCisJCQkJCSAgIHBoeWxpbmtfY29uZmlnKTsKKwor CW10a19zZ21paV9yZXN0YXJ0X2FuKG1hYy0+aHcsIG1hYy0+aWQpOwogfQogCiBzdGF0aWMgdm9p ZCBtdGtfbWFjX2xpbmtfZG93bihzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywgdW5zaWdu ZWQgaW50IG1vZGUsCkBAIC0zNjIsNyArNDMwLDEwIEBAIHN0YXRpYyB2b2lkIG10a192YWxpZGF0 ZShzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKIAkgICAgc3RhdGUtPmludGVyZmFjZSAh PSBQSFlfSU5URVJGQUNFX01PREVfTUlJICYmCiAJICAgICEoIW1hYy0+aWQgJiYgc3RhdGUtPmlu dGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJICYmCiAJICAgICAgTVRLX0hBU19D QVBTKG1hYy0+aHctPnNvYy0+Y2FwcywgTVRLX1RSR01JSSkpICYmCi0JICAgICFwaHlfaW50ZXJm YWNlX21vZGVfaXNfcmdtaWkoc3RhdGUtPmludGVyZmFjZSkpIHsKKwkgICAgIXBoeV9pbnRlcmZh Y2VfbW9kZV9pc19yZ21paShzdGF0ZS0+aW50ZXJmYWNlKSAmJgorCSAgICAhKE1US19IQVNfQ0FQ UyhtYWMtPmh3LT5zb2MtPmNhcHMsIE1US19TR01JSSkgJiYKKwkgICAgICAoc3RhdGUtPmludGVy ZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfU0dNSUkgfHwKKwkgICAgICAgcGh5X2ludGVyZmFj ZV9tb2RlX2lzXzgwMjN6KHN0YXRlLT5pbnRlcmZhY2UpKSkpIHsKIAkJbGlua21vZGVfemVybyhz dXBwb3J0ZWQpOwogCQlyZXR1cm47CiAJfQpAQCAtMzcwLDE3ICs0NDEsMjcgQEAgc3RhdGljIHZv aWQgbXRrX3ZhbGlkYXRlKHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnLAogCXBoeWxpbmtf c2V0X3BvcnRfbW9kZXMobWFzayk7CiAJcGh5bGlua19zZXQobWFzaywgQXV0b25lZyk7CiAKLQlp ZiAoc3RhdGUtPmludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7Ci0JCXBo eWxpbmtfc2V0KG1hc2ssIDEwMDBiYXNlVF9GdWxsKTsKKwlpZiAoTVRLX0hBU19DQVBTKG1hYy0+ aHctPnNvYy0+Y2FwcywgTVRLX1NHTUlJKSkgeworCQlpZiAoc3RhdGUtPmludGVyZmFjZSAhPSBQ SFlfSU5URVJGQUNFX01PREVfMjUwMEJBU0VYKSB7CisJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAw YmFzZVRfRnVsbCk7CisJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVhfRnVsbCk7CisJCX0g ZWxzZSB7CisJCQlwaHlsaW5rX3NldChtYXNrLCAyNTAwYmFzZVRfRnVsbCk7CisJCQlwaHlsaW5r X3NldChtYXNrLCAyNTAwYmFzZVhfRnVsbCk7CisJCX0KIAl9IGVsc2UgewotCQlwaHlsaW5rX3Nl dChtYXNrLCAxMGJhc2VUX0hhbGYpOwotCQlwaHlsaW5rX3NldChtYXNrLCAxMGJhc2VUX0Z1bGwp OwotCQlwaHlsaW5rX3NldChtYXNrLCAxMDBiYXNlVF9IYWxmKTsKLQkJcGh5bGlua19zZXQobWFz aywgMTAwYmFzZVRfRnVsbCk7Ci0KLQkJaWYgKHN0YXRlLT5pbnRlcmZhY2UgIT0gUEhZX0lOVEVS RkFDRV9NT0RFX01JSSkgewotCQkJcGh5bGlua19zZXQobWFzaywgMTAwMGJhc2VUX0hhbGYpOwor CQlpZiAoc3RhdGUtPmludGVyZmFjZSA9PSBQSFlfSU5URVJGQUNFX01PREVfVFJHTUlJKSB7CiAJ CQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFzZVRfRnVsbCk7CisJCX0gZWxzZSB7CisJCQlwaHls aW5rX3NldChtYXNrLCAxMGJhc2VUX0hhbGYpOworCQkJcGh5bGlua19zZXQobWFzaywgMTBiYXNl VF9GdWxsKTsKKwkJCXBoeWxpbmtfc2V0KG1hc2ssIDEwMGJhc2VUX0hhbGYpOworCQkJcGh5bGlu a19zZXQobWFzaywgMTAwYmFzZVRfRnVsbCk7CisKKwkJCWlmIChzdGF0ZS0+aW50ZXJmYWNlICE9 IFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUkpIHsKKwkJCQlwaHlsaW5rX3NldChtYXNrLCAxMDAwYmFz ZVRfSGFsZik7CisJCQkJcGh5bGlua19zZXQobWFzaywgMTAwMGJhc2VUX0Z1bGwpOworCQkJfQog CQl9CiAJfQogCkBAIC0zODksNiArNDcwLDExIEBAIHN0YXRpYyB2b2lkIG10a192YWxpZGF0ZShz dHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZywKIAogCWxpbmttb2RlX2FuZChzdXBwb3J0ZWQs IHN1cHBvcnRlZCwgbWFzayk7CiAJbGlua21vZGVfYW5kKHN0YXRlLT5hZHZlcnRpc2luZywgc3Rh dGUtPmFkdmVydGlzaW5nLCBtYXNrKTsKKworCS8qIFdlIGNhbiBvbmx5IG9wZXJhdGUgYXQgMjUw MEJhc2VYIG9yIDEwMDBCYXNlWC4gSWYgcmVxdWVzdGVkCisJICogdG8gYWR2ZXJ0aXNlIGJvdGgs IG9ubHkgcmVwb3J0IGFkdmVydGlzaW5nIGF0IDI1MDBCYXNlWC4KKwkgKi8KKwlwaHlsaW5rX2hl bHBlcl9iYXNleF9zcGVlZChzdGF0ZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlu a19tYWNfb3BzIG10a19waHlsaW5rX29wcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRp YXRlay9tdGtfZXRoX3NvYy5oCmluZGV4IDNiZmNiYTlmZmI1OC4uYzI1ZDYxMWYzOGM2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5oCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmgKQEAgLTQwMSwxNCAr NDAxLDM4IEBACiAvKiBSZWdpc3RlciB0byBhdXRvLW5lZ290aWF0aW9uIHJlc3RhcnQgKi8KICNk ZWZpbmUgU0dNU1lTX1BDU19DT05UUk9MXzEJMHgwCiAjZGVmaW5lIFNHTUlJX0FOX1JFU1RBUlQJ QklUKDkpCisjZGVmaW5lIFNHTUlJX0lTT0xBVEUJCUJJVCgxMCkKKyNkZWZpbmUgU0dNSUlfQU5f RU5BQkxFCQlCSVQoMTIpCisjZGVmaW5lIFNHTUlJX0xJTktfU1RBVFlTCUJJVCgxOCkKKyNkZWZp bmUgU0dNSUlfQU5fQUJJTElUWQlCSVQoMTkpCisjZGVmaW5lIFNHTUlJX0FOX0NPTVBMRVRFCUJJ VCgyMSkKKyNkZWZpbmUgU0dNSUlfUENTX0ZBVUxUCQlCSVQoMjMpCisjZGVmaW5lIFNHTUlJX0FO X0VYUEFOU0lPTl9DTFIJQklUKDMwKQogCiAvKiBSZWdpc3RlciB0byBwcm9ncmFtbWFibGUgbGlu ayB0aW1lciwgdGhlIHVuaXQgaW4gMiAqIDhucyAqLwogI2RlZmluZSBTR01TWVNfUENTX0xJTktf VElNRVIJMHgxOAogI2RlZmluZSBTR01JSV9MSU5LX1RJTUVSX0RFRkFVTFQJKDB4MTg2YTAgJiBH RU5NQVNLKDE5LCAwKSkKIAogLyogUmVnaXN0ZXIgdG8gY29udHJvbCByZW1vdGUgZmF1bHQgKi8K LSNkZWZpbmUgU0dNU1lTX1NHTUlJX01PREUJMHgyMAotI2RlZmluZSBTR01JSV9SRU1PVEVfRkFV TFRfRElTCUJJVCg4KQorI2RlZmluZSBTR01TWVNfU0dNSUlfTU9ERQkJMHgyMAorI2RlZmluZSBT R01JSV9JRl9NT0RFX0JJVDAJCUJJVCgwKQorI2RlZmluZSBTR01JSV9TUEVFRF9EVVBMRVhfQU4J CUJJVCgxKQorI2RlZmluZSBTR01JSV9TUEVFRF8xMAkJCTB4MAorI2RlZmluZSBTR01JSV9TUEVF RF8xMDAJCQlCSVQoMikKKyNkZWZpbmUgU0dNSUlfU1BFRURfMTAwMAkJQklUKDMpCisjZGVmaW5l IFNHTUlJX0RVUExFWF9GVUxMCQlCSVQoNCkKKyNkZWZpbmUgU0dNSUlfSUZfTU9ERV9CSVQ1CQlC SVQoNSkKKyNkZWZpbmUgU0dNSUlfUkVNT1RFX0ZBVUxUX0RJUwkJQklUKDgpCisjZGVmaW5lIFNH TUlJX0NPREVfU1lOQ19TRVRfVkFMCQlCSVQoOSkKKyNkZWZpbmUgU0dNSUlfQ09ERV9TWU5DX1NF VF9FTgkJQklUKDEwKQorI2RlZmluZSBTR01JSV9TRU5EX0FOX0VSUk9SX0VOCQlCSVQoMTEpCisj ZGVmaW5lIFNHTUlJX0lGX01PREVfTUFTSwkJR0VOTUFTSyg1LCAxKQorCisvKiBSZWdpc3RlciB0 byBzZXQgU0dNSUkgc3BlZWQsIEFOQSBSR18gQ29udHJvbCBTaWduYWxzIElJSSovCisjZGVmaW5l IFNHTVNZU19BTkFfUkdfQ1MzCTB4MjAyOAorI2RlZmluZSBSR19QSFlfU1BFRURfTUFTSwkoQklU KDIpIHwgQklUKDMpKQorI2RlZmluZSBSR19QSFlfU1BFRURfMV8yNUcJMHgwCisjZGVmaW5lIFJH X1BIWV9TUEVFRF8zXzEyNUcJQklUKDIpCiAKIC8qIFJlZ2lzdGVyIHRvIHBvd2VyIHVwIFFQSFkg Ki8KICNkZWZpbmUgU0dNU1lTX1FQSFlfUFdSX1NUQVRFX0NUUkwgMHhlOApAQCAtODUzLDcgKzg3 NywxMiBAQCB1MzIgbXRrX3IzMihzdHJ1Y3QgbXRrX2V0aCAqZXRoLCB1bnNpZ25lZCByZWcpOwog aW50IG10a19zZ21paV9pbml0KHN0cnVjdCBtdGtfc2dtaWkgKnNzLCBzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wLAogCQkgICB1MzIgYW5hX3JnYzMpOwogaW50IG10a19zZ21paV9zZXR1cF9tb2RlX2Fu KHN0cnVjdCBtdGtfc2dtaWkgKnNzLCBpbnQgaWQpOwotaW50IG10a19zZ21paV9zZXR1cF9tb2Rl X2ZvcmNlKHN0cnVjdCBtdGtfc2dtaWkgKnNzLCBpbnQgaWQpOwotaW50IG10a19zZXR1cF9od19w YXRoKHN0cnVjdCBtdGtfZXRoICpldGgsIGludCBtYWNfaWQsIGludCBwaHltb2RlKTsKK2ludCBt dGtfc2dtaWlfc2V0dXBfbW9kZV9mb3JjZShzdHJ1Y3QgbXRrX3NnbWlpICpzcywgaW50IGlkLAor CQkJICAgICAgIGNvbnN0IHN0cnVjdCBwaHlsaW5rX2xpbmtfc3RhdGUgKnN0YXRlKTsKK3ZvaWQg bXRrX3NnbWlpX3Jlc3RhcnRfYW4oc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19pZCk7CisK K2ludCBtdGtfZ21hY19zZ21paV9wYXRoX3NldHVwKHN0cnVjdCBtdGtfZXRoICpldGgsIGludCBt YWNfaWQpOworaW50IG10a19nbWFjX2dlcGh5X3BhdGhfc2V0dXAoc3RydWN0IG10a19ldGggKmV0 aCwgaW50IG1hY19pZCk7CitpbnQgbXRrX2dtYWNfcmdtaWlfcGF0aF9zZXR1cChzdHJ1Y3QgbXRr X2V0aCAqZXRoLCBpbnQgbWFjX2lkKTsKIAogI2VuZGlmIC8qIE1US19FVEhfSCAqLwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3NnbWlpLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfc2dtaWkuYwppbmRleCBmZjUwOWQ0MmQ4MTguLjMw MzJjNTQ0MDNkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRr X3NnbWlpLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX3NnbWlpLmMK QEAgLTE2LDggKzE2LDcgQEAKIGludCBtdGtfc2dtaWlfaW5pdChzdHJ1Y3QgbXRrX3NnbWlpICpz cywgc3RydWN0IGRldmljZV9ub2RlICpyLCB1MzIgYW5hX3JnYzMpCiB7CiAJc3RydWN0IGRldmlj ZV9ub2RlICpucDsKLQljb25zdCBjaGFyICpzdHI7Ci0JaW50IGksIGVycjsKKwlpbnQgaTsKIAog CXNzLT5hbmFfcmdjMyA9IGFuYV9yZ2MzOwogCkBAIC0yOSwxOSArMjgsNiBAQCBpbnQgbXRrX3Nn bWlpX2luaXQoc3RydWN0IG10a19zZ21paSAqc3MsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqciwgdTMy IGFuYV9yZ2MzKQogCQlzcy0+cmVnbWFwW2ldID0gc3lzY29uX25vZGVfdG9fcmVnbWFwKG5wKTsK IAkJaWYgKElTX0VSUihzcy0+cmVnbWFwW2ldKSkKIAkJCXJldHVybiBQVFJfRVJSKHNzLT5yZWdt YXBbaV0pOwotCi0JCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5wLCAibWVkaWF0ZWss cGh5c3BlZWQiLCAmc3RyKTsKLQkJaWYgKGVycikKLQkJCXJldHVybiBlcnI7Ci0KLQkJaWYgKCFz dHJjbXAoc3RyLCAiMjUwMCIpKQotCQkJc3MtPmZsYWdzW2ldIHw9IE1US19TR01JSV9QSFlTUEVF RF8yNTAwOwotCQllbHNlIGlmICghc3RyY21wKHN0ciwgIjEwMDAiKSkKLQkJCXNzLT5mbGFnc1tp XSB8PSBNVEtfU0dNSUlfUEhZU1BFRURfMTAwMDsKLQkJZWxzZSBpZiAoIXN0cmNtcChzdHIsICJh dXRvIikpCi0JCQlzcy0+ZmxhZ3NbaV0gfD0gTVRLX1NHTUlJX1BIWVNQRUVEX0FOOwotCQllbHNl Ci0JCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTczLDI3ICs1OSw0NSBA QCBpbnQgbXRrX3NnbWlpX3NldHVwX21vZGVfYW4oc3RydWN0IG10a19zZ21paSAqc3MsIGludCBp ZCkKIAlyZXR1cm4gMDsKIH0KIAotaW50IG10a19zZ21paV9zZXR1cF9tb2RlX2ZvcmNlKHN0cnVj dCBtdGtfc2dtaWkgKnNzLCBpbnQgaWQpCitpbnQgbXRrX3NnbWlpX3NldHVwX21vZGVfZm9yY2Uo c3RydWN0IG10a19zZ21paSAqc3MsIGludCBpZCwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgcGh5 bGlua19saW5rX3N0YXRlICpzdGF0ZSkKIHsKIAl1bnNpZ25lZCBpbnQgdmFsOwotCWludCBtb2Rl OwogCiAJaWYgKCFzcy0+cmVnbWFwW2lkXSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlyZWdtYXBf cmVhZChzcy0+cmVnbWFwW2lkXSwgc3MtPmFuYV9yZ2MzLCAmdmFsKTsKLQl2YWwgJj0gfkdFTk1B U0soMywgMik7Ci0JbW9kZSA9IHNzLT5mbGFnc1tpZF0gJiBNVEtfU0dNSUlfUEhZU1BFRURfTUFT SzsKLQl2YWwgfD0gKG1vZGUgPT0gTVRLX1NHTUlJX1BIWVNQRUVEXzEwMDApID8gMCA6IEJJVCgy KTsKKwl2YWwgJj0gflJHX1BIWV9TUEVFRF9NQVNLOworCWlmIChzdGF0ZS0+c3BlZWQgPT0gU1BF RURfMjUwMCkKKwkJdmFsIHw9IFJHX1BIWV9TUEVFRF8zXzEyNUc7CiAJcmVnbWFwX3dyaXRlKHNz LT5yZWdtYXBbaWRdLCBzcy0+YW5hX3JnYzMsIHZhbCk7CiAKIAkvKiBEaXNhYmxlIFNHTUlJIEFO ICovCiAJcmVnbWFwX3JlYWQoc3MtPnJlZ21hcFtpZF0sIFNHTVNZU19QQ1NfQ09OVFJPTF8xLCAm dmFsKTsKLQl2YWwgJj0gfkJJVCgxMik7CisJdmFsICY9IH5TR01JSV9BTl9FTkFCTEU7CiAJcmVn bWFwX3dyaXRlKHNzLT5yZWdtYXBbaWRdLCBTR01TWVNfUENTX0NPTlRST0xfMSwgdmFsKTsKIAog CS8qIFNHTUlJIGZvcmNlIG1vZGUgc2V0dGluZyAqLwotCXZhbCA9IDB4MzExMjAwMTk7CisJcmVn bWFwX3JlYWQoc3MtPnJlZ21hcFtpZF0sIFNHTVNZU19TR01JSV9NT0RFLCAmdmFsKTsKKwl2YWwg Jj0gflNHTUlJX0lGX01PREVfTUFTSzsKKworCXN3aXRjaCAoc3RhdGUtPnNwZWVkKSB7CisJY2Fz ZSBTUEVFRF8xMDoKKwkJdmFsIHw9IFNHTUlJX1NQRUVEXzEwOworCQlicmVhazsKKwljYXNlIFNQ RUVEXzEwMDoKKwkJdmFsIHw9IFNHTUlJX1NQRUVEXzEwMDsKKwkJYnJlYWs7CisJY2FzZSBTUEVF RF8yNTAwOgorCWNhc2UgU1BFRURfMTAwMDoKKwkJdmFsIHw9IFNHTUlJX1NQRUVEXzEwMDA7CisJ CWJyZWFrOworCX07CisKKwlpZiAoc3RhdGUtPmR1cGxleCA9PSBEVVBMRVhfRlVMTCkKKwkJdmFs IHw9IFNHTUlJX0RVUExFWF9GVUxMOworCiAJcmVnbWFwX3dyaXRlKHNzLT5yZWdtYXBbaWRdLCBT R01TWVNfU0dNSUlfTU9ERSwgdmFsKTsKIAogCS8qIFJlbGVhc2UgUEhZQSBwb3dlciBkb3duIHN0 YXRlICovCkBAIC0xMDMsMyArMTA3LDIwIEBAIGludCBtdGtfc2dtaWlfc2V0dXBfbW9kZV9mb3Jj ZShzdHJ1Y3QgbXRrX3NnbWlpICpzcywgaW50IGlkKQogCiAJcmV0dXJuIDA7CiB9CisKK3ZvaWQg bXRrX3NnbWlpX3Jlc3RhcnRfYW4oc3RydWN0IG10a19ldGggKmV0aCwgaW50IG1hY19pZCkKK3sK KwlzdHJ1Y3QgbXRrX3NnbWlpICpzcyA9IGV0aC0+c2dtaWk7CisJdW5zaWduZWQgaW50IHZhbCwg c2lkOworCisJLyogRGVjaWRlIGhvdyBHTUFDIGFuZCBTR01JSVNZUyBiZSBtYXBwZWQgKi8KKwlz aWQgPSAoTVRLX0hBU19DQVBTKGV0aC0+c29jLT5jYXBzLCBNVEtfU0hBUkVEX1NHTUlJKSkgPwor CSAgICAgICAwIDogbWFjX2lkOworCisJaWYgKCFzcy0+cmVnbWFwW3NpZF0pCisJCXJldHVybjsK KworCXJlZ21hcF9yZWFkKHNzLT5yZWdtYXBbc2lkXSwgU0dNU1lTX1BDU19DT05UUk9MXzEsICZ2 YWwpOworCXZhbCB8PSBTR01JSV9BTl9SRVNUQVJUOworCXJlZ21hcF93cml0ZShzcy0+cmVnbWFw W3NpZF0sIFNHTVNZU19QQ1NfQ09OVFJPTF8xLCB2YWwpOworfQotLSAKMi4yMC4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtbWVkaWF0ZWsg bWFpbGluZyBsaXN0CkxpbnV4LW1lZGlhdGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tZWRpYXRlawo=