Date: Sun, 14 Feb 2016 08:23:17 +0000 From: "sepherosa_gmail.com (Sepherosa Ziehau)" <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] [Request, 374 lines] D5275: hyperv/hn: Split RX ring data structure out of softc Message-ID: <differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
--b1_1e3b8a4e66048739e50f18881b85d7a9 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit sepherosa_gmail.com created this revision. sepherosa_gmail.com added reviewers: network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com. sepherosa_gmail.com added subscribers: freebsd-net-list, freebsd-virtualization-list. REVISION SUMMARY This paves the way for upcoming vRSS stuffs and eases more code cleanup. REVISION DETAIL https://reviews.freebsd.org/D5275 AFFECTED FILES sys/dev/hyperv/netvsc/hv_net_vsc.h sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, network, adrian, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com Cc: freebsd-virtualization-list, freebsd-net-list --b1_1e3b8a4e66048739e50f18881b85d7a9 Content-Type: text/x-patch; charset=utf-8; name="D5275.13287.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5275.13287.patch" ZGlmZiAtLWdpdCBhL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2Qu YyBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXR2c2NfZHJ2X2ZyZWVic2QuYwotLS0gYS9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNkLmMKKysrIGIvc3lzL2Rl di9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJlZWJzZC5jCkBAIC0yNzUsMTIgKzI3NSwx NiBAQAogc3RhdGljIGludCBobl9scm9fYWNrY250X3N5c2N0bChTWVNDVExfSEFORExFUl9BUkdT KTsKIHN0YXRpYyBpbnQgaG5fdHJ1c3RfaGNzdW1fc3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FSR1Mp Owogc3RhdGljIGludCBobl90eF9jaGltbmV5X3NpemVfc3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FS R1MpOworc3RhdGljIGludCBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bChTWVNDVExfSEFORExFUl9B UkdTKTsKK3N0YXRpYyBpbnQgaG5fcnhfc3RhdF91NjRfc3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FS R1MpOwogc3RhdGljIGludCBobl9jaGVja19pcGxlbihjb25zdCBzdHJ1Y3QgbWJ1ZiAqLCBpbnQp Owogc3RhdGljIGludCBobl9jcmVhdGVfdHhfcmluZyhzdHJ1Y3QgaG5fc29mdGMgKnNjKTsKIHN0 YXRpYyB2b2lkIGhuX2Rlc3Ryb3lfdHhfcmluZyhzdHJ1Y3QgaG5fc29mdGMgKnNjKTsKIHN0YXRp YyB2b2lkIGhuX3N0YXJ0X3Rhc2tmdW5jKHZvaWQgKnhzYywgaW50IHBlbmRpbmcpOwogc3RhdGlj IHZvaWQgaG5fdHhlb2ZfdGFza2Z1bmModm9pZCAqeHNjLCBpbnQgcGVuZGluZyk7CiBzdGF0aWMg aW50IGhuX2VuY2FwKHN0cnVjdCBobl9zb2Z0YyAqLCBzdHJ1Y3QgaG5fdHhkZXNjICosIHN0cnVj dCBtYnVmICoqKTsKK3N0YXRpYyB2b2lkIGhuX2NyZWF0ZV9yeF9kYXRhKHN0cnVjdCBobl9zb2Z0 YyAqc2MpOworc3RhdGljIHZvaWQgaG5fZGVzdHJveV9yeF9kYXRhKHN0cnVjdCBobl9zb2Z0YyAq c2MpOwogCiBzdGF0aWMgaW50CiBobl9pZm1lZGlhX3VwZChzdHJ1Y3QgaWZuZXQgKmlmcCBfX3Vu dXNlZCkKQEAgLTM1MiwxMSArMzU2LDYgQEAKICNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAxMTAw MDQ1CiAJaW50IHRzb19tYXhsZW47CiAjZW5kaWYKLSNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmlu ZWQoSU5FVDYpCi0jaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQotCWludCBscm9lbnRf Y250OwotI2VuZGlmCi0jZW5kaWYKIAogCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwogCWlm IChzYyA9PSBOVUxMKSB7CkBAIC0zNjcsMTIgKzM2Niw2IEBACiAJc2MtPmhuX3VuaXQgPSB1bml0 OwogCXNjLT5obl9kZXYgPSBkZXY7CiAJc2MtPmhuX2RpcmVjdF90eF9zaXplID0gaG5fZGlyZWN0 X3R4X3NpemU7Ci0JaWYgKGhuX3RydXN0X2hvc3R0Y3ApCi0JCXNjLT5obl90cnVzdF9oY3N1bSB8 PSBITl9UUlVTVF9IQ1NVTV9UQ1A7Ci0JaWYgKGhuX3RydXN0X2hvc3R1ZHApCi0JCXNjLT5obl90 cnVzdF9oY3N1bSB8PSBITl9UUlVTVF9IQ1NVTV9VRFA7Ci0JaWYgKGhuX3RydXN0X2hvc3RpcCkK LQkJc2MtPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX0lQOwogCiAJaWYgKGhuX3R4 X3Rhc2txID09IE5VTEwpIHsKIAkJc2MtPmhuX3R4X3Rhc2txID0gdGFza3F1ZXVlX2NyZWF0ZV9m YXN0KCJobl90eCIsIE1fV0FJVE9LLApAQCAtMzk2LDYgKzM4OSw4IEBACiAJaWZwID0gc2MtPmhu X2lmcCA9IGlmX2FsbG9jKElGVF9FVEhFUik7CiAJaWZwLT5pZl9zb2Z0YyA9IHNjOwogCisJaG5f Y3JlYXRlX3J4X2RhdGEoc2MpOworCiAJaWZfaW5pdG5hbWUoaWZwLCBkZXZpY2VfZ2V0X25hbWUo ZGV2KSwgZGV2aWNlX2dldF91bml0KGRldikpOwogCWlmcC0+aWZfZHVuaXQgPSB1bml0OwogCWlm cC0+aWZfZG5hbWUgPSBORVRWU0NfREVWTkFNRTsKQEAgLTQ0MSwyMiArNDM2LDYgQEAKIAkJc2Mt PmhuX2NhcnJpZXIgPSAxOwogCX0KIAotI2lmIGRlZmluZWQoSU5FVCkgfHwgZGVmaW5lZChJTkVU NikKLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAxMTAwMDk1Ci0JbHJvZW50X2NudCA9IGhuX2xy b19lbnRyeV9jb3VudDsKLQlpZiAobHJvZW50X2NudCA8IFRDUF9MUk9fRU5UUklFUykKLQkJbHJv ZW50X2NudCA9IFRDUF9MUk9fRU5UUklFUzsKLQl0Y3BfbHJvX2luaXRfYXJncygmc2MtPmhuX2xy bywgaWZwLCBscm9lbnRfY250LCAwKTsKLQlkZXZpY2VfcHJpbnRmKGRldiwgIkxSTzogZW50cnkg Y291bnQgJWRcbiIsIGxyb2VudF9jbnQpOwotI2Vsc2UKLQl0Y3BfbHJvX2luaXQoJnNjLT5obl9s cm8pOwotCS8qIERyaXZlciBwcml2YXRlIExSTyBzZXR0aW5ncyAqLwotCXNjLT5obl9scm8uaWZw ID0gaWZwOwotI2VuZGlmCi0Jc2MtPmhuX2xyby5scm9fbGVuZ3RoX2xpbSA9IEhOX0xST19MRU5M SU1fREVGOwotCXNjLT5obl9scm8ubHJvX2Fja2NudF9saW0gPSBITl9MUk9fQUNLQ05UX0RFRjsK LSNlbmRpZgkvKiBJTkVUIHx8IElORVQ2ICovCi0KICNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAx MTAwMDQ1CiAJdHNvX21heGxlbiA9IGhuX3Rzb19tYXhsZW47CiAJaWYgKHRzb19tYXhsZW4gPD0g MCB8fCB0c29fbWF4bGVuID4gSVBfTUFYUEFDS0VUKQpAQCAtNDkxLDQ0ICs0NzAsNiBAQAogCWN0 eCA9IGRldmljZV9nZXRfc3lzY3RsX2N0eChkZXYpOwogCWNoaWxkID0gU1lTQ1RMX0NISUxEUkVO KGRldmljZV9nZXRfc3lzY3RsX3RyZWUoZGV2KSk7CiAKLQlTWVNDVExfQUREX1U2NChjdHgsIGNo aWxkLCBPSURfQVVUTywgImxyb19xdWV1ZWQiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2xy by5scm9fcXVldWVkLCAwLCAiTFJPIHF1ZXVlZCIpOwotCVNZU0NUTF9BRERfVTY0KGN0eCwgY2hp bGQsIE9JRF9BVVRPLCAibHJvX2ZsdXNoZWQiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2xy by5scm9fZmx1c2hlZCwgMCwgIkxSTyBmbHVzaGVkIik7Ci0JU1lTQ1RMX0FERF9VTE9ORyhjdHgs IGNoaWxkLCBPSURfQVVUTywgImxyb190cmllZCIsCi0JICAgIENUTEZMQUdfUlcsICZzYy0+aG5f bHJvX3RyaWVkLCAiIyBvZiBMUk8gdHJpZXMiKTsKLQlTWVNDVExfQUREX1BST0MoY3R4LCBjaGls ZCwgT0lEX0FVVE8sICJscm9fbGVuZ3RoX2xpbSIsCi0JICAgIENUTFRZUEVfVUlOVCB8IENUTEZM QUdfUlcsIHNjLCAwLCBobl9scm9fbGVubGltX3N5c2N0bCwgIklVIiwKLQkgICAgIk1heCAjIG9m IGRhdGEgYnl0ZXMgdG8gYmUgYWdncmVnYXRlZCBieSBMUk8iKTsKLQlTWVNDVExfQUREX1BST0Mo Y3R4LCBjaGlsZCwgT0lEX0FVVE8sICJscm9fYWNrY250X2xpbSIsCi0JICAgIENUTFRZUEVfSU5U IHwgQ1RMRkxBR19SVywgc2MsIDAsIGhuX2xyb19hY2tjbnRfc3lzY3RsLCAiSSIsCi0JICAgICJN YXggIyBvZiBBQ0tzIHRvIGJlIGFnZ3JlZ2F0ZWQgYnkgTFJPIik7Ci0JU1lTQ1RMX0FERF9QUk9D KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAidHJ1c3RfaG9zdHRjcCIsCi0JICAgIENUTFRZUEVfSU5U IHwgQ1RMRkxBR19SVywgc2MsIEhOX1RSVVNUX0hDU1VNX1RDUCwKLQkgICAgaG5fdHJ1c3RfaGNz dW1fc3lzY3RsLCAiSSIsCi0JICAgICJUcnVzdCB0Y3Agc2VnZW1lbnQgdmVyaWZpY2F0aW9uIG9u IGhvc3Qgc2lkZSwgIgotCSAgICAid2hlbiBjc3VtIGluZm8gaXMgbWlzc2luZyIpOwotCVNZU0NU TF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInRydXN0X2hvc3R1ZHAiLAotCSAgICBD VExUWVBFX0lOVCB8IENUTEZMQUdfUlcsIHNjLCBITl9UUlVTVF9IQ1NVTV9VRFAsCi0JICAgIGhu X3RydXN0X2hjc3VtX3N5c2N0bCwgIkkiLAotCSAgICAiVHJ1c3QgdWRwIGRhdGFncmFtIHZlcmlm aWNhdGlvbiBvbiBob3N0IHNpZGUsICIKLQkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1pc3Npbmci KTsKLQlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJ0cnVzdF9ob3N0aXAi LAotCSAgICBDVExUWVBFX0lOVCB8IENUTEZMQUdfUlcsIHNjLCBITl9UUlVTVF9IQ1NVTV9JUCwK LQkgICAgaG5fdHJ1c3RfaGNzdW1fc3lzY3RsLCAiSSIsCi0JICAgICJUcnVzdCBpcCBwYWNrZXQg dmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lkZSwgIgotCSAgICAid2hlbiBjc3VtIGluZm8gaXMgbWlz c2luZyIpOwotCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX2lw IiwKLQkgICAgQ1RMRkxBR19SVywgJnNjLT5obl9jc3VtX2lwLCAiUlhDU1VNIElQIik7Ci0JU1lT Q1RMX0FERF9VTE9ORyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImNzdW1fdGNwIiwKLQkgICAgQ1RM RkxBR19SVywgJnNjLT5obl9jc3VtX3RjcCwgIlJYQ1NVTSBUQ1AiKTsKLQlTWVNDVExfQUREX1VM T05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAiY3N1bV91ZHAiLAotCSAgICBDVExGTEFHX1JXLCAm c2MtPmhuX2NzdW1fdWRwLCAiUlhDU1VNIFVEUCIpOwotCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBj aGlsZCwgT0lEX0FVVE8sICJjc3VtX3RydXN0ZWQiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhu X2NzdW1fdHJ1c3RlZCwKLQkgICAgIiMgb2YgcGFja2V0cyB0aGF0IHdlIHRydXN0IGhvc3QncyBj c3VtIHZlcmlmaWNhdGlvbiIpOwotCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBjaGlsZCwgT0lEX0FV VE8sICJzbWFsbF9wa3RzIiwKLQkgICAgQ1RMRkxBR19SVywgJnNjLT5obl9zbWFsbF9wa3RzLCAi IyBvZiBzbWFsbCBwYWNrZXRzIHJlY2VpdmVkIik7CiAJU1lTQ1RMX0FERF9VTE9ORyhjdHgsIGNo aWxkLCBPSURfQVVUTywgIm5vX3R4ZGVzY3MiLAogCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX25v X3R4ZGVzY3MsICIjIG9mIHRpbWVzIHNob3J0IG9mIFRYIGRlc2NzIik7CiAJU1lTQ1RMX0FERF9V TE9ORyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInNlbmRfZmFpbGVkIiwKQEAgLTU5Niw5ICs1Mzcs NyBAQAogCQl0YXNrcXVldWVfZnJlZShzYy0+aG5fdHhfdGFza3EpOwogCiAJaWZtZWRpYV9yZW1v dmVhbGwoJnNjLT5obl9tZWRpYSk7Ci0jaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2 KQotCXRjcF9scm9fZnJlZSgmc2MtPmhuX2xybyk7Ci0jZW5kaWYKKwlobl9kZXN0cm95X3J4X2Rh dGEoc2MpOwogCWhuX2Rlc3Ryb3lfdHhfcmluZyhzYyk7CiAKIAlyZXR1cm4gKDApOwpAQCAtNzQ2 LDcgKzY4NSw4IEBACiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMo ZGV2aWNlX2N0eC0+ZGV2aWNlKTsKICNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYp Ci0Jc3RydWN0IGxyb19jdHJsICpscm8gPSAmc2MtPmhuX2xybzsKKwlzdHJ1Y3QgaG5fcnhfcmlu ZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nWzBdOyAvKiBUT0RPOiB2UlNTICovCisJc3RydWN0IGxy b19jdHJsICpscm8gPSAmcnhyLT5obl9scm87CiAJc3RydWN0IGxyb19lbnRyeSAqcXVldWVkOwog CiAJd2hpbGUgKChxdWV1ZWQgPSBTTElTVF9GSVJTVCgmbHJvLT5scm9fYWN0aXZlKSkgIT0gTlVM TCkgewpAQCAtMTE2MiwxMCArMTEwMiwxMCBAQAogbmV0dnNjX3JlY3Yoc3RydWN0IGh2X2Rldmlj ZSAqZGV2aWNlX2N0eCwgbmV0dnNjX3BhY2tldCAqcGFja2V0LAogICAgIHJuZGlzX3RjcF9pcF9j c3VtX2luZm8gKmNzdW1faW5mbykKIHsKLQlobl9zb2Z0Y190ICpzYyA9IChobl9zb2Z0Y190ICop ZGV2aWNlX2dldF9zb2Z0YyhkZXZpY2VfY3R4LT5kZXZpY2UpOworCXN0cnVjdCBobl9zb2Z0YyAq c2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldmljZV9jdHgtPmRldmljZSk7CisJc3RydWN0IGhuX3J4 X3JpbmcgKnJ4ciA9ICZzYy0+aG5fcnhfcmluZ1swXTsgLyogVE9ETzogdlJTUyAqLwogCXN0cnVj dCBtYnVmICptX25ldzsKIAlzdHJ1Y3QgaWZuZXQgKmlmcDsKLQlkZXZpY2VfdCBkZXYgPSBkZXZp Y2VfY3R4LT5kZXZpY2U7CiAJaW50IHNpemUsIGRvX2xybyA9IDAsIGRvX2NzdW0gPSAxOwogCiAJ aWYgKHNjID09IE5VTEwpIHsKQEAgLTExOTAsNyArMTEzMCw3IEBACiAJCW1lbWNweShtdG9kKG1f bmV3LCB2b2lkICopLCBwYWNrZXQtPmRhdGEsCiAJCSAgICBwYWNrZXQtPnRvdF9kYXRhX2J1Zl9s ZW4pOwogCQltX25ldy0+bV9wa3RoZHIubGVuID0gbV9uZXctPm1fbGVuID0gcGFja2V0LT50b3Rf ZGF0YV9idWZfbGVuOwotCQlzYy0+aG5fc21hbGxfcGt0cysrOworCQlyeHItPmhuX3NtYWxsX3Br dHMrKzsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBHZXQgYW4gbWJ1ZiB3aXRoIGEgY2x1c3Rlci4g IEZvciBwYWNrZXRzIDJLIG9yIGxlc3MsCkBAIC0xMjA2LDcgKzExNDYsNyBAQAogCiAJCW1fbmV3 ID0gbV9nZXRqY2woTV9OT1dBSVQsIE1UX0RBVEEsIE1fUEtUSERSLCBzaXplKTsKIAkJaWYgKG1f bmV3ID09IE5VTEwpIHsKLQkJCWRldmljZV9wcmludGYoZGV2LCAiYWxsb2MgbWJ1ZiBmYWlsZWQu XG4iKTsKKwkJCWlmX3ByaW50ZihpZnAsICJhbGxvYyBtYnVmIGZhaWxlZC5cbiIpOwogCQkJcmV0 dXJuICgwKTsKIAkJfQogCkBAIC0xMjIzLDcgKzExNjMsNyBAQAogCQlpZiAoY3N1bV9pbmZvLT5y ZWNlaXZlLmlwX2NzdW1fc3VjY2VlZGVkICYmIGRvX2NzdW0pIHsKIAkJCW1fbmV3LT5tX3BrdGhk ci5jc3VtX2ZsYWdzIHw9CiAJCQkgICAgKENTVU1fSVBfQ0hFQ0tFRCB8IENTVU1fSVBfVkFMSUQp OwotCQkJc2MtPmhuX2NzdW1faXArKzsKKwkJCXJ4ci0+aG5fY3N1bV9pcCsrOwogCQl9CiAKIAkJ LyogVENQL1VEUCBjc3VtIG9mZmxvYWQgKi8KQEAgLTEyMzMsOSArMTE3Myw5IEBACiAJCQkgICAg KENTVU1fREFUQV9WQUxJRCB8IENTVU1fUFNFVURPX0hEUik7CiAJCQltX25ldy0+bV9wa3RoZHIu Y3N1bV9kYXRhID0gMHhmZmZmOwogCQkJaWYgKGNzdW1faW5mby0+cmVjZWl2ZS50Y3BfY3N1bV9z dWNjZWVkZWQpCi0JCQkJc2MtPmhuX2NzdW1fdGNwKys7CisJCQkJcnhyLT5obl9jc3VtX3RjcCsr OwogCQkJZWxzZQotCQkJCXNjLT5obl9jc3VtX3VkcCsrOworCQkJCXJ4ci0+aG5fY3N1bV91ZHAr KzsKIAkJfQogCiAJCWlmIChjc3VtX2luZm8tPnJlY2VpdmUuaXBfY3N1bV9zdWNjZWVkZWQgJiYK QEAgLTEyNjcsOCArMTIwNyw5IEBACiAJCQlwciA9IGhuX2NoZWNrX2lwbGVuKG1fbmV3LCBob2Zm KTsKIAkJCWlmIChwciA9PSBJUFBST1RPX1RDUCkgewogCQkJCWlmIChkb19jc3VtICYmCi0JCQkJ ICAgIChzYy0+aG5fdHJ1c3RfaGNzdW0gJiBITl9UUlVTVF9IQ1NVTV9UQ1ApKSB7Ci0JCQkJCXNj LT5obl9jc3VtX3RydXN0ZWQrKzsKKwkJCQkgICAgKHJ4ci0+aG5fdHJ1c3RfaGNzdW0gJgorCQkJ CSAgICAgSE5fVFJVU1RfSENTVU1fVENQKSkgeworCQkJCQlyeHItPmhuX2NzdW1fdHJ1c3RlZCsr OwogCQkJCQltX25ldy0+bV9wa3RoZHIuY3N1bV9mbGFncyB8PQogCQkJCQkgICAoQ1NVTV9JUF9D SEVDS0VEIHwgQ1NVTV9JUF9WQUxJRCB8CiAJCQkJCSAgICBDU1VNX0RBVEFfVkFMSUQgfCBDU1VN X1BTRVVET19IRFIpOwpAQCAtMTI3OCwxNiArMTIxOSwxNyBAQAogCQkJCWRvX2xybyA9IDE7CiAJ CQl9IGVsc2UgaWYgKHByID09IElQUFJPVE9fVURQKSB7CiAJCQkJaWYgKGRvX2NzdW0gJiYKLQkJ CQkgICAgKHNjLT5obl90cnVzdF9oY3N1bSAmIEhOX1RSVVNUX0hDU1VNX1VEUCkpIHsKLQkJCQkJ c2MtPmhuX2NzdW1fdHJ1c3RlZCsrOworCQkJCSAgICAocnhyLT5obl90cnVzdF9oY3N1bSAmCisJ CQkJICAgICBITl9UUlVTVF9IQ1NVTV9VRFApKSB7CisJCQkJCXJ4ci0+aG5fY3N1bV90cnVzdGVk Kys7CiAJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2ZsYWdzIHw9CiAJCQkJCSAgIChDU1VNX0lQ X0NIRUNLRUQgfCBDU1VNX0lQX1ZBTElEIHwKIAkJCQkJICAgIENTVU1fREFUQV9WQUxJRCB8IENT VU1fUFNFVURPX0hEUik7CiAJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2RhdGEgPSAweGZmZmY7 CiAJCQkJfQogCQkJfSBlbHNlIGlmIChwciAhPSBJUFBST1RPX0RPTkUgJiYgZG9fY3N1bSAmJgot CQkJICAgIChzYy0+aG5fdHJ1c3RfaGNzdW0gJiBITl9UUlVTVF9IQ1NVTV9JUCkpIHsKLQkJCQlz Yy0+aG5fY3N1bV90cnVzdGVkKys7CisJCQkgICAgKHJ4ci0+aG5fdHJ1c3RfaGNzdW0gJiBITl9U UlVTVF9IQ1NVTV9JUCkpIHsKKwkJCQlyeHItPmhuX2NzdW1fdHJ1c3RlZCsrOwogCQkJCW1fbmV3 LT5tX3BrdGhkci5jc3VtX2ZsYWdzIHw9CiAJCQkJICAgIChDU1VNX0lQX0NIRUNLRUQgfCBDU1VN X0lQX1ZBTElEKTsKIAkJCX0KQEAgLTEzMDksMTAgKzEyNTEsMTAgQEAKIAogCWlmICgoaWZwLT5p Zl9jYXBlbmFibGUgJiBJRkNBUF9MUk8pICYmIGRvX2xybykgewogI2lmIGRlZmluZWQoSU5FVCkg fHwgZGVmaW5lZChJTkVUNikKLQkJc3RydWN0IGxyb19jdHJsICpscm8gPSAmc2MtPmhuX2xybzsK KwkJc3RydWN0IGxyb19jdHJsICpscm8gPSAmcnhyLT5obl9scm87CiAKIAkJaWYgKGxyby0+bHJv X2NudCkgewotCQkJc2MtPmhuX2xyb190cmllZCsrOworCQkJcnhyLT5obl9scm9fdHJpZWQrKzsK IAkJCWlmICh0Y3BfbHJvX3J4KGxybywgbV9uZXcsIDApID09IDApIHsKIAkJCQkvKiBET05FISAq LwogCQkJCXJldHVybiAwOwpAQCAtMTM5Miw4ICsxMzM0LDE3IEBACiAJCSAqIE1ha2Ugc3VyZSB0 aGF0IExSTyBhZ2dyZWdhdGlvbiBsZW5ndGggbGltaXQgaXMgc3RpbGwKIAkJICogdmFsaWQsIGFm dGVyIHRoZSBNVFUgY2hhbmdlLgogCQkgKi8KLQkJaWYgKHNjLT5obl9scm8ubHJvX2xlbmd0aF9s aW0gPCBITl9MUk9fTEVOTElNX01JTihpZnApKQotCQkJc2MtPmhuX2xyby5scm9fbGVuZ3RoX2xp bSA9IEhOX0xST19MRU5MSU1fTUlOKGlmcCk7CisJCU5WX0xPQ0soc2MpOworCQlpZiAoc2MtPmhu X3J4X3JpbmdbMF0uaG5fbHJvLmxyb19sZW5ndGhfbGltIDwKKwkJICAgIEhOX0xST19MRU5MSU1f TUlOKGlmcCkpIHsKKwkJCWludCBpOworCisJCQlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3Jp bmdfY250OyArK2kpIHsKKwkJCQlzYy0+aG5fcnhfcmluZ1tpXS5obl9scm8ubHJvX2xlbmd0aF9s aW0gPQorCQkJCSAgICBITl9MUk9fTEVOTElNX01JTihpZnApOworCQkJfQorCQl9CisJCU5WX1VO TE9DSyhzYyk7CiAKIAkJZG8gewogCQkJTlZfTE9DSyhzYyk7CkBAIC0xNzA1LDMyICsxNjU2LDM1 IEBACiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFyZzE7CiAJdW5zaWduZWQgaW50IGxlbmxp bTsKLQlpbnQgZXJyb3I7CisJaW50IGVycm9yLCBpOwogCi0JbGVubGltID0gc2MtPmhuX2xyby5s cm9fbGVuZ3RoX2xpbTsKKwlsZW5saW0gPSBzYy0+aG5fcnhfcmluZ1swXS5obl9scm8ubHJvX2xl bmd0aF9saW07CiAJZXJyb3IgPSBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmbGVubGltLCAwLCBy ZXEpOwogCWlmIChlcnJvciB8fCByZXEtPm5ld3B0ciA9PSBOVUxMKQogCQlyZXR1cm4gZXJyb3I7 CiAKIAlpZiAobGVubGltIDwgSE5fTFJPX0xFTkxJTV9NSU4oc2MtPmhuX2lmcCkgfHwKIAkgICAg bGVubGltID4gVENQX0xST19MRU5HVEhfTUFYKQogCQlyZXR1cm4gRUlOVkFMOwogCi0Jc2MtPmhu X2xyby5scm9fbGVuZ3RoX2xpbSA9IGxlbmxpbTsKKwlOVl9MT0NLKHNjKTsKKwlmb3IgKGkgPSAw OyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kpCisJCXNjLT5obl9yeF9yaW5nW2ldLmhuX2xy by5scm9fbGVuZ3RoX2xpbSA9IGxlbmxpbTsKKwlOVl9VTkxPQ0soc2MpOwogCXJldHVybiAwOwog fQogCiBzdGF0aWMgaW50CiBobl9scm9fYWNrY250X3N5c2N0bChTWVNDVExfSEFORExFUl9BUkdT KQogewogCXN0cnVjdCBobl9zb2Z0YyAqc2MgPSBhcmcxOwotCWludCBhY2tjbnQsIGVycm9yOwor CWludCBhY2tjbnQsIGVycm9yLCBpOwogCiAJLyoKIAkgKiBscm9fYWNrY250X2xpbSBpcyBhcHBl bmQgY291bnQgbGltaXQsCiAJICogKzEgdG8gdHVybiBpdCBpbnRvIGFnZ3JlZ2F0aW9uIGxpbWl0 LgogCSAqLwotCWFja2NudCA9IHNjLT5obl9scm8ubHJvX2Fja2NudF9saW0gKyAxOworCWFja2Nu dCA9IHNjLT5obl9yeF9yaW5nWzBdLmhuX2xyby5scm9fYWNrY250X2xpbSArIDE7CiAJZXJyb3Ig PSBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmYWNrY250LCAwLCByZXEpOwogCWlmIChlcnJvciB8 fCByZXEtPm5ld3B0ciA9PSBOVUxMKQogCQlyZXR1cm4gZXJyb3I7CkBAIC0xNzQyLDMwICsxNjk2 LDM4IEBACiAJICogQ29udmVydCBhZ2dyZWdhdGlvbiBsaW1pdCBiYWNrIHRvIGFwcGVuZAogCSAq IGNvdW50IGxpbWl0LgogCSAqLwotCXNjLT5obl9scm8ubHJvX2Fja2NudF9saW0gPSBhY2tjbnQg LSAxOworCS0tYWNrY250OworCU5WX0xPQ0soc2MpOworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5f cnhfcmluZ19jbnQ7ICsraSkKKwkJc2MtPmhuX3J4X3JpbmdbaV0uaG5fbHJvLmxyb19hY2tjbnRf bGltID0gYWNrY250OworCU5WX1VOTE9DSyhzYyk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBp bnQKIGhuX3RydXN0X2hjc3VtX3N5c2N0bChTWVNDVExfSEFORExFUl9BUkdTKQogewogCXN0cnVj dCBobl9zb2Z0YyAqc2MgPSBhcmcxOwogCWludCBoY3N1bSA9IGFyZzI7Ci0JaW50IG9uLCBlcnJv cjsKKwlpbnQgb24sIGVycm9yLCBpOwogCiAJb24gPSAwOwotCWlmIChzYy0+aG5fdHJ1c3RfaGNz dW0gJiBoY3N1bSkKKwlpZiAoc2MtPmhuX3J4X3JpbmdbMF0uaG5fdHJ1c3RfaGNzdW0gJiBoY3N1 bSkKIAkJb24gPSAxOwogCiAJZXJyb3IgPSBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmb24sIDAs IHJlcSk7CiAJaWYgKGVycm9yIHx8IHJlcS0+bmV3cHRyID09IE5VTEwpCiAJCXJldHVybiBlcnJv cjsKIAogCU5WX0xPQ0soc2MpOwotCWlmIChvbikKLQkJc2MtPmhuX3RydXN0X2hjc3VtIHw9IGhj c3VtOwotCWVsc2UKLQkJc2MtPmhuX3RydXN0X2hjc3VtICY9IH5oY3N1bTsKKwlmb3IgKGkgPSAw OyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kpIHsKKwkJc3RydWN0IGhuX3J4X3JpbmcgKnJ4 ciA9ICZzYy0+aG5fcnhfcmluZ1tpXTsKKworCQlpZiAob24pCisJCQlyeHItPmhuX3RydXN0X2hj c3VtIHw9IGhjc3VtOworCQllbHNlCisJCQlyeHItPmhuX3RydXN0X2hjc3VtICY9IH5oY3N1bTsK Kwl9CiAJTlZfVU5MT0NLKHNjKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTE3OTAsNiArMTc1Miw1OCBA QAogfQogCiBzdGF0aWMgaW50Citobl9yeF9zdGF0X3Vsb25nX3N5c2N0bChTWVNDVExfSEFORExF Ul9BUkdTKQoreworCXN0cnVjdCBobl9zb2Z0YyAqc2MgPSBhcmcxOworCWludCBvZnMgPSBhcmcy LCBpLCBlcnJvcjsKKwlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyOworCXVfbG9uZyBzdGF0OworCisJ c3RhdCA9IDA7CisJZm9yIChpID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKSB7CisJ CXJ4ciA9ICZzYy0+aG5fcnhfcmluZ1tpXTsKKwkJc3RhdCArPSAqKCh1X2xvbmcgKikoKHVpbnQ4 X3QgKilyeHIgKyBvZnMpKTsKKwl9CisKKwllcnJvciA9IHN5c2N0bF9oYW5kbGVfbG9uZyhvaWRw LCAmc3RhdCwgMCwgcmVxKTsKKwlpZiAoZXJyb3IgfHwgcmVxLT5uZXdwdHIgPT0gTlVMTCkKKwkJ cmV0dXJuIGVycm9yOworCisJLyogWmVybyBvdXQgdGhpcyBzdGF0LiAqLworCWZvciAoaSA9IDA7 IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQlyeHIgPSAmc2MtPmhuX3J4X3Jpbmdb aV07CisJCSooKHVfbG9uZyAqKSgodWludDhfdCAqKXJ4ciArIG9mcykpID0gMDsKKwl9CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2huX3J4X3N0YXRfdTY0X3N5c2N0bChTWVNDVExfSEFO RExFUl9BUkdTKQoreworCXN0cnVjdCBobl9zb2Z0YyAqc2MgPSBhcmcxOworCWludCBvZnMgPSBh cmcyLCBpLCBlcnJvcjsKKwlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyOworCXVpbnQ2NF90IHN0YXQ7 CisKKwlzdGF0ID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kp IHsKKwkJcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCQlzdGF0ICs9ICooKHVpbnQ2NF90ICop KCh1aW50OF90ICopcnhyICsgb2ZzKSk7CisJfQorCisJZXJyb3IgPSBzeXNjdGxfaGFuZGxlXzY0 KG9pZHAsICZzdGF0LCAwLCByZXEpOworCWlmIChlcnJvciB8fCByZXEtPm5ld3B0ciA9PSBOVUxM KQorCQlyZXR1cm4gZXJyb3I7CisKKwkvKiBaZXJvIG91dCB0aGlzIHN0YXQuICovCisJZm9yIChp ID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKSB7CisJCXJ4ciA9ICZzYy0+aG5fcnhf cmluZ1tpXTsKKwkJKigodWludDY0X3QgKikoKHVpbnQ4X3QgKilyeHIgKyBvZnMpKSA9IDA7CisJ fQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CiBobl9jaGVja19pcGxlbihjb25zdCBzdHJ1 Y3QgbWJ1ZiAqbSwgaW50IGhvZmYpCiB7CiAJY29uc3Qgc3RydWN0IGlwICppcDsKQEAgLTE4NzYs NiArMTg5MCwxMzYgQEAKIAkqcGFkZHIgPSBzZWdzLT5kc19hZGRyOwogfQogCitzdGF0aWMgdm9p ZAoraG5fY3JlYXRlX3J4X2RhdGEoc3RydWN0IGhuX3NvZnRjICpzYykKK3sKKwlzdHJ1Y3Qgc3lz Y3RsX29pZF9saXN0ICpjaGlsZDsKKwlzdHJ1Y3Qgc3lzY3RsX2N0eF9saXN0ICpjdHg7CisJZGV2 aWNlX3QgZGV2ID0gc2MtPmhuX2RldjsKKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5F VDYpCisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQorCWludCBscm9lbnRfY250Owor I2VuZGlmCisJaW50IGk7CisjZW5kaWYKKworCXNjLT5obl9yeF9yaW5nX2NudCA9IDE7IC8qIFRP RE86IHZSU1MgKi8KKwlzYy0+aG5fcnhfcmluZyA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGhuX3J4 X3JpbmcpICogc2MtPmhuX3J4X3JpbmdfY250LAorCSAgICBNX05FVFZTQywgTV9XQUlUT0sgfCBN X1pFUk8pOworCisjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQorI2lmIF9fRnJl ZUJTRF92ZXJzaW9uID49IDExMDAwOTUKKwlscm9lbnRfY250ID0gaG5fbHJvX2VudHJ5X2NvdW50 OworCWlmIChscm9lbnRfY250IDwgVENQX0xST19FTlRSSUVTKQorCQlscm9lbnRfY250ID0gVENQ X0xST19FTlRSSUVTOworCWRldmljZV9wcmludGYoZGV2LCAiTFJPOiBlbnRyeSBjb3VudCAlZFxu IiwgbHJvZW50X2NudCk7CisjZW5kaWYKKyNlbmRpZgkvKiBJTkVUIHx8IElORVQ2ICovCisKKwlm b3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kpIHsKKwkJc3RydWN0IGhuX3J4 X3JpbmcgKnJ4ciA9ICZzYy0+aG5fcnhfcmluZ1tpXTsKKworCQlpZiAoaG5fdHJ1c3RfaG9zdHRj cCkKKwkJCXJ4ci0+aG5fdHJ1c3RfaGNzdW0gfD0gSE5fVFJVU1RfSENTVU1fVENQOworCQlpZiAo aG5fdHJ1c3RfaG9zdHVkcCkKKwkJCXJ4ci0+aG5fdHJ1c3RfaGNzdW0gfD0gSE5fVFJVU1RfSENT VU1fVURQOworCQlpZiAoaG5fdHJ1c3RfaG9zdGlwKQorCQkJcnhyLT5obl90cnVzdF9oY3N1bSB8 PSBITl9UUlVTVF9IQ1NVTV9JUDsKKworCQkvKgorCQkgKiBJbml0aWFsaXplIExSTy4KKwkJICov CisjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQorI2lmIF9fRnJlZUJTRF92ZXJz aW9uID49IDExMDAwOTUKKwkJdGNwX2xyb19pbml0X2FyZ3MoJnJ4ci0+aG5fbHJvLCBzYy0+aG5f aWZwLCBscm9lbnRfY250LCAwKTsKKyNlbHNlCisJCXRjcF9scm9faW5pdCgmcnhyLT5obl9scm8p OworCQlyeHItPmhuX2xyby5pZnAgPSBzYy0+aG5faWZwOworI2VuZGlmCisJCXJ4ci0+aG5fbHJv Lmxyb19sZW5ndGhfbGltID0gSE5fTFJPX0xFTkxJTV9ERUY7CisJCXJ4ci0+aG5fbHJvLmxyb19h Y2tjbnRfbGltID0gSE5fTFJPX0FDS0NOVF9ERUY7CisjZW5kaWYJLyogSU5FVCB8fCBJTkVUNiAq LworCX0KKworCWN0eCA9IGRldmljZV9nZXRfc3lzY3RsX2N0eChkZXYpOworCWNoaWxkID0gU1lT Q1RMX0NISUxEUkVOKGRldmljZV9nZXRfc3lzY3RsX3RyZWUoZGV2KSk7CisKKwlTWVNDVExfQURE X1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJscm9fcXVldWVkIiwKKwkgICAgQ1RMVFlQRV9V NjQgfCBDVExGTEFHX1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywg aG5fbHJvLmxyb19xdWV1ZWQpLAorCSAgICBobl9yeF9zdGF0X3U2NF9zeXNjdGwsICJMVSIsICJM Uk8gcXVldWVkIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJv X2ZsdXNoZWQiLAorCSAgICBDVExUWVBFX1U2NCB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29m ZnNldG9mKHN0cnVjdCBobl9yeF9yaW5nLCBobl9scm8ubHJvX2ZsdXNoZWQpLAorCSAgICBobl9y eF9zdGF0X3U2NF9zeXNjdGwsICJMVSIsICJMUk8gZmx1c2hlZCIpOworCVNZU0NUTF9BRERfUFJP QyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb190cmllZCIsCisJICAgIENUTFRZUEVfVUxPTkcg fCBDVExGTEFHX1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywgaG5f bHJvX3RyaWVkKSwKKwkgICAgaG5fcnhfc3RhdF91bG9uZ19zeXNjdGwsICJMVSIsICIjIG9mIExS TyB0cmllcyIpOworCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19s ZW5ndGhfbGltIiwKKwkgICAgQ1RMVFlQRV9VSU5UIHwgQ1RMRkxBR19SVywgc2MsIDAsIGhuX2xy b19sZW5saW1fc3lzY3RsLCAiSVUiLAorCSAgICAiTWF4ICMgb2YgZGF0YSBieXRlcyB0byBiZSBh Z2dyZWdhdGVkIGJ5IExSTyIpOworCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVU TywgImxyb19hY2tjbnRfbGltIiwKKwkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywg MCwgaG5fbHJvX2Fja2NudF9zeXNjdGwsICJJIiwKKwkgICAgIk1heCAjIG9mIEFDS3MgdG8gYmUg YWdncmVnYXRlZCBieSBMUk8iKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FV VE8sICJ0cnVzdF9ob3N0dGNwIiwKKwkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywg SE5fVFJVU1RfSENTVU1fVENQLAorCSAgICBobl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKKwkg ICAgIlRydXN0IHRjcCBzZWdlbWVudCB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCisJICAg ICJ3aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5nIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hp bGQsIE9JRF9BVVRPLCAidHJ1c3RfaG9zdHVkcCIsCisJICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxB R19SVywgc2MsIEhOX1RSVVNUX0hDU1VNX1VEUCwKKwkgICAgaG5fdHJ1c3RfaGNzdW1fc3lzY3Rs LCAiSSIsCisJICAgICJUcnVzdCB1ZHAgZGF0YWdyYW0gdmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lk ZSwgIgorCSAgICAid2hlbiBjc3VtIGluZm8gaXMgbWlzc2luZyIpOworCVNZU0NUTF9BRERfUFJP QyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInRydXN0X2hvc3RpcCIsCisJICAgIENUTFRZUEVfSU5U IHwgQ1RMRkxBR19SVywgc2MsIEhOX1RSVVNUX0hDU1VNX0lQLAorCSAgICBobl90cnVzdF9oY3N1 bV9zeXNjdGwsICJJIiwKKwkgICAgIlRydXN0IGlwIHBhY2tldCB2ZXJpZmljYXRpb24gb24gaG9z dCBzaWRlLCAiCisJICAgICJ3aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5nIik7CisJU1lTQ1RMX0FE RF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAiY3N1bV9pcCIsCisJICAgIENUTFRZUEVfVUxP TkcgfCBDVExGTEFHX1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywg aG5fY3N1bV9pcCksCisJICAgIGhuX3J4X3N0YXRfdWxvbmdfc3lzY3RsLCAiTFUiLCAiUlhDU1VN IElQIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAiY3N1bV90Y3Ai LAorCSAgICBDVExUWVBFX1VMT05HIHwgQ1RMRkxBR19SVywgc2MsCisJICAgIF9fb2Zmc2V0b2Yo c3RydWN0IGhuX3J4X3JpbmcsIGhuX2NzdW1fdGNwKSwKKwkgICAgaG5fcnhfc3RhdF91bG9uZ19z eXNjdGwsICJMVSIsICJSWENTVU0gVENQIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQs IE9JRF9BVVRPLCAiY3N1bV91ZHAiLAorCSAgICBDVExUWVBFX1VMT05HIHwgQ1RMRkxBR19SVywg c2MsCisJICAgIF9fb2Zmc2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX2NzdW1fdWRwKSwKKwkg ICAgaG5fcnhfc3RhdF91bG9uZ19zeXNjdGwsICJMVSIsICJSWENTVU0gVURQIik7CisJU1lTQ1RM X0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAiY3N1bV90cnVzdGVkIiwKKwkgICAgQ1RM VFlQRV9VTE9ORyB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9mKHN0cnVjdCBobl9y eF9yaW5nLCBobl9jc3VtX3RydXN0ZWQpLAorCSAgICBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bCwg IkxVIiwKKwkgICAgIiMgb2YgcGFja2V0cyB0aGF0IHdlIHRydXN0IGhvc3QncyBjc3VtIHZlcmlm aWNhdGlvbiIpOworCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInNtYWxs X3BrdHMiLAorCSAgICBDVExUWVBFX1VMT05HIHwgQ1RMRkxBR19SVywgc2MsCisJICAgIF9fb2Zm c2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX3NtYWxsX3BrdHMpLAorCSAgICBobl9yeF9zdGF0 X3Vsb25nX3N5c2N0bCwgIkxVIiwgIiMgb2Ygc21hbGwgcGFja2V0cyByZWNlaXZlZCIpOworfQor CitzdGF0aWMgdm9pZAoraG5fZGVzdHJveV9yeF9kYXRhKHN0cnVjdCBobl9zb2Z0YyAqc2MpCit7 CisjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQorCWludCBpOworI2VuZGlmCisK KwlpZiAoc2MtPmhuX3J4X3JpbmdfY250ID09IDApCisJCXJldHVybjsKKworI2lmIGRlZmluZWQo SU5FVCkgfHwgZGVmaW5lZChJTkVUNikKKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3Jpbmdf Y250OyArK2kpCisJCXRjcF9scm9fZnJlZSgmc2MtPmhuX3J4X3JpbmdbaV0uaG5fbHJvKTsKKyNl bmRpZgorCWZyZWUoc2MtPmhuX3J4X3JpbmcsIE1fTkVUVlNDKTsKKwlzYy0+aG5fcnhfcmluZyA9 IE5VTEw7CisKKwlzYy0+aG5fcnhfcmluZ19jbnQgPSAwOworfQorCiBzdGF0aWMgaW50CiBobl9j cmVhdGVfdHhfcmluZyhzdHJ1Y3QgaG5fc29mdGMgKnNjKQogewpkaWZmIC0tZ2l0IGEvc3lzL2Rl di9oeXBlcnYvbmV0dnNjL2h2X25ldF92c2MuaCBiL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9u ZXRfdnNjLmgKLS0tIGEvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldF92c2MuaAorKysgYi9z eXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCkBAIC05OTMsNiArOTkzLDI0IEBACiBz dHJ1Y3QgaG5fdHhkZXNjOwogU0xJU1RfSEVBRChobl90eGRlc2NfbGlzdCwgaG5fdHhkZXNjKTsK IAorc3RydWN0IGhuX3J4X3JpbmcgeworCXN0cnVjdCBscm9fY3RybAlobl9scm87CisKKwkvKiBU cnVzdCBjc3VtIHZlcmlmaWNhdGlvbiBvbiBob3N0IHNpZGUgKi8KKwlpbnQJCWhuX3RydXN0X2hj c3VtOwkvKiBITl9UUlVTVF9IQ1NVTV8gKi8KKworCXVfbG9uZwkJaG5fY3N1bV9pcDsKKwl1X2xv bmcJCWhuX2NzdW1fdGNwOworCXVfbG9uZwkJaG5fY3N1bV91ZHA7CisJdV9sb25nCQlobl9jc3Vt X3RydXN0ZWQ7CisJdV9sb25nCQlobl9scm9fdHJpZWQ7CisJdV9sb25nCQlobl9zbWFsbF9wa3Rz OworfSBfX2FsaWduZWQoQ0FDSEVfTElORV9TSVpFKTsKKworI2RlZmluZSBITl9UUlVTVF9IQ1NV TV9JUAkweDAwMDEKKyNkZWZpbmUgSE5fVFJVU1RfSENTVU1fVENQCTB4MDAwMgorI2RlZmluZSBI Tl9UUlVTVF9IQ1NVTV9VRFAJMHgwMDA0CisKIC8qCiAgKiBEZXZpY2Utc3BlY2lmaWMgc29mdGMg c3RydWN0dXJlCiAgKi8KQEAgLTEwMjksMjggKzEwNDcsMTYgQEAKIAlzdHJ1Y3QgdGFzawlobl9z dGFydF90YXNrOwogCXN0cnVjdCB0YXNrCWhuX3R4ZW9mX3Rhc2s7CiAKLQlzdHJ1Y3QgbHJvX2N0 cmwJaG5fbHJvOwotCi0JLyogVHJ1c3QgY3N1bSB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlICov Ci0JaW50CQlobl90cnVzdF9oY3N1bTsJLyogSE5fVFJVU1RfSENTVU1fICovCisJaW50CQlobl9y eF9yaW5nX2NudDsKKwlzdHJ1Y3QgaG5fcnhfcmluZyAqaG5fcnhfcmluZzsKIAotCXVfbG9uZwkJ aG5fY3N1bV9pcDsKLQl1X2xvbmcJCWhuX2NzdW1fdGNwOwotCXVfbG9uZwkJaG5fY3N1bV91ZHA7 Ci0JdV9sb25nCQlobl9jc3VtX3RydXN0ZWQ7Ci0JdV9sb25nCQlobl9scm9fdHJpZWQ7Ci0JdV9s b25nCQlobl9zbWFsbF9wa3RzOwogCXVfbG9uZwkJaG5fbm9fdHhkZXNjczsKIAl1X2xvbmcJCWhu X3NlbmRfZmFpbGVkOwogCXVfbG9uZwkJaG5fdHhkbWFfZmFpbGVkOwogCXVfbG9uZwkJaG5fdHhf Y29sbGFwc2VkOwogCXVfbG9uZwkJaG5fdHhfY2hpbW5leTsKIH0gaG5fc29mdGNfdDsKIAotI2Rl ZmluZSBITl9UUlVTVF9IQ1NVTV9JUAkweDAwMDEKLSNkZWZpbmUgSE5fVFJVU1RfSENTVU1fVENQ CTB4MDAwMgotI2RlZmluZSBITl9UUlVTVF9IQ1NVTV9VRFAJMHgwMDA0Ci0KIC8qCiAgKiBFeHRl cm5zCiAgKi8KCg== --b1_1e3b8a4e66048739e50f18881b85d7a9--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req>