Date: Thu, 18 Feb 2016 07:16:56 +0000 From: Phabricator <phabric-noreply@FreeBSD.org> To: freebsd-virtualization@freebsd.org Subject: [Differential] [Closed] D5275: hyperv/hn: Split RX ring data structure out of softc Message-ID: <c7fd9e765186f2a1317a0a5c23ff65d7@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req@FreeBSD.org> References: <differential-rev-PHID-DREV-vvrzzurifi3ornziedve-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_c7fd9e765186f2a1317a0a5c23ff65d7 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit This revision was automatically updated to reflect the committed changes. Closed by commit rS295744: hyperv/hn: Split RX ring data structure out of softc (authored by sephe). CHANGED PRIOR TO COMMIT https://reviews.freebsd.org/D5275?vs=13287&id=13402#toc REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5275?vs=13287&id=13402 REVISION DETAIL https://reviews.freebsd.org/D5275 AFFECTED FILES head/sys/dev/hyperv/netvsc/hv_net_vsc.h head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: sepherosa_gmail.com, delphij, royger, decui_microsoft.com, honzhan_microsoft.com, howard0su_gmail.com, adrian, network Cc: freebsd-virtualization-list, freebsd-net-list --b1_c7fd9e765186f2a1317a0a5c23ff65d7 Content-Type: text/x-patch; charset=utf-8; name="D5275.13402.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5275.13402.patch" ZGlmZiAtLWdpdCBhL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0dnNjL2h2X25ldHZzY19kcnZfZnJl ZWJzZC5jIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKLS0tIGEvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKKysrIGIvaGVhZC9zeXMvZGV2L2h5cGVydi9uZXR2c2MvaHZfbmV0dnNjX2Rydl9mcmVlYnNk LmMKQEAgLTI3NSwxMiArMjc1LDE2IEBACiBzdGF0aWMgaW50IGhuX2xyb19hY2tjbnRfc3lzY3Rs KFNZU0NUTF9IQU5ETEVSX0FSR1MpOwogc3RhdGljIGludCBobl90cnVzdF9oY3N1bV9zeXNjdGwo U1lTQ1RMX0hBTkRMRVJfQVJHUyk7CiBzdGF0aWMgaW50IGhuX3R4X2NoaW1uZXlfc2l6ZV9zeXNj dGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7CitzdGF0aWMgaW50IGhuX3J4X3N0YXRfdWxvbmdfc3lz Y3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpOworc3RhdGljIGludCBobl9yeF9zdGF0X3U2NF9zeXNj dGwoU1lTQ1RMX0hBTkRMRVJfQVJHUyk7CiBzdGF0aWMgaW50IGhuX2NoZWNrX2lwbGVuKGNvbnN0 IHN0cnVjdCBtYnVmICosIGludCk7CiBzdGF0aWMgaW50IGhuX2NyZWF0ZV90eF9yaW5nKHN0cnVj dCBobl9zb2Z0YyAqc2MpOwogc3RhdGljIHZvaWQgaG5fZGVzdHJveV90eF9yaW5nKHN0cnVjdCBo bl9zb2Z0YyAqc2MpOwogc3RhdGljIHZvaWQgaG5fc3RhcnRfdGFza2Z1bmModm9pZCAqeHNjLCBp bnQgcGVuZGluZyk7CiBzdGF0aWMgdm9pZCBobl90eGVvZl90YXNrZnVuYyh2b2lkICp4c2MsIGlu dCBwZW5kaW5nKTsKIHN0YXRpYyBpbnQgaG5fZW5jYXAoc3RydWN0IGhuX3NvZnRjICosIHN0cnVj dCBobl90eGRlc2MgKiwgc3RydWN0IG1idWYgKiopOworc3RhdGljIHZvaWQgaG5fY3JlYXRlX3J4 X2RhdGEoc3RydWN0IGhuX3NvZnRjICpzYyk7CitzdGF0aWMgdm9pZCBobl9kZXN0cm95X3J4X2Rh dGEoc3RydWN0IGhuX3NvZnRjICpzYyk7CiAKIHN0YXRpYyBpbnQKIGhuX2lmbWVkaWFfdXBkKHN0 cnVjdCBpZm5ldCAqaWZwIF9fdW51c2VkKQpAQCAtMzUyLDExICszNTYsNiBAQAogI2lmIF9fRnJl ZUJTRF92ZXJzaW9uID49IDExMDAwNDUKIAlpbnQgdHNvX21heGxlbjsKICNlbmRpZgotI2lmIGRl ZmluZWQoSU5FVCkgfHwgZGVmaW5lZChJTkVUNikKLSNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAx MTAwMDk1Ci0JaW50IGxyb2VudF9jbnQ7Ci0jZW5kaWYKLSNlbmRpZgogCiAJc2MgPSBkZXZpY2Vf Z2V0X3NvZnRjKGRldik7CiAJaWYgKHNjID09IE5VTEwpIHsKQEAgLTM2NywxMiArMzY2LDYgQEAK IAlzYy0+aG5fdW5pdCA9IHVuaXQ7CiAJc2MtPmhuX2RldiA9IGRldjsKIAlzYy0+aG5fZGlyZWN0 X3R4X3NpemUgPSBobl9kaXJlY3RfdHhfc2l6ZTsKLQlpZiAoaG5fdHJ1c3RfaG9zdHRjcCkKLQkJ c2MtPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX1RDUDsKLQlpZiAoaG5fdHJ1c3Rf aG9zdHVkcCkKLQkJc2MtPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX1VEUDsKLQlp ZiAoaG5fdHJ1c3RfaG9zdGlwKQotCQlzYy0+aG5fdHJ1c3RfaGNzdW0gfD0gSE5fVFJVU1RfSENT VU1fSVA7CiAKIAlpZiAoaG5fdHhfdGFza3EgPT0gTlVMTCkgewogCQlzYy0+aG5fdHhfdGFza3Eg PSB0YXNrcXVldWVfY3JlYXRlX2Zhc3QoImhuX3R4IiwgTV9XQUlUT0ssCkBAIC0zOTYsNiArMzg5 LDggQEAKIAlpZnAgPSBzYy0+aG5faWZwID0gaWZfYWxsb2MoSUZUX0VUSEVSKTsKIAlpZnAtPmlm X3NvZnRjID0gc2M7CiAKKwlobl9jcmVhdGVfcnhfZGF0YShzYyk7CisKIAlpZl9pbml0bmFtZShp ZnAsIGRldmljZV9nZXRfbmFtZShkZXYpLCBkZXZpY2VfZ2V0X3VuaXQoZGV2KSk7CiAJaWZwLT5p Zl9kdW5pdCA9IHVuaXQ7CiAJaWZwLT5pZl9kbmFtZSA9IE5FVFZTQ19ERVZOQU1FOwpAQCAtNDQx LDIyICs0MzYsNiBAQAogCQlzYy0+aG5fY2FycmllciA9IDE7CiAJfQogCi0jaWYgZGVmaW5lZChJ TkVUKSB8fCBkZWZpbmVkKElORVQ2KQotI2lmIF9fRnJlZUJTRF92ZXJzaW9uID49IDExMDAwOTUK LQlscm9lbnRfY250ID0gaG5fbHJvX2VudHJ5X2NvdW50OwotCWlmIChscm9lbnRfY250IDwgVENQ X0xST19FTlRSSUVTKQotCQlscm9lbnRfY250ID0gVENQX0xST19FTlRSSUVTOwotCXRjcF9scm9f aW5pdF9hcmdzKCZzYy0+aG5fbHJvLCBpZnAsIGxyb2VudF9jbnQsIDApOwotCWRldmljZV9wcmlu dGYoZGV2LCAiTFJPOiBlbnRyeSBjb3VudCAlZFxuIiwgbHJvZW50X2NudCk7Ci0jZWxzZQotCXRj cF9scm9faW5pdCgmc2MtPmhuX2xybyk7Ci0JLyogRHJpdmVyIHByaXZhdGUgTFJPIHNldHRpbmdz ICovCi0Jc2MtPmhuX2xyby5pZnAgPSBpZnA7Ci0jZW5kaWYKLQlzYy0+aG5fbHJvLmxyb19sZW5n dGhfbGltID0gSE5fTFJPX0xFTkxJTV9ERUY7Ci0Jc2MtPmhuX2xyby5scm9fYWNrY250X2xpbSA9 IEhOX0xST19BQ0tDTlRfREVGOwotI2VuZGlmCS8qIElORVQgfHwgSU5FVDYgKi8KLQogI2lmIF9f RnJlZUJTRF92ZXJzaW9uID49IDExMDAwNDUKIAl0c29fbWF4bGVuID0gaG5fdHNvX21heGxlbjsK IAlpZiAodHNvX21heGxlbiA8PSAwIHx8IHRzb19tYXhsZW4gPiBJUF9NQVhQQUNLRVQpCkBAIC00 OTEsNDQgKzQ3MCw2IEBACiAJY3R4ID0gZGV2aWNlX2dldF9zeXNjdGxfY3R4KGRldik7CiAJY2hp bGQgPSBTWVNDVExfQ0hJTERSRU4oZGV2aWNlX2dldF9zeXNjdGxfdHJlZShkZXYpKTsKIAotCVNZ U0NUTF9BRERfVTY0KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3F1ZXVlZCIsCi0JICAgIENU TEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19xdWV1ZWQsIDAsICJMUk8gcXVldWVkIik7Ci0JU1lT Q1RMX0FERF9VNjQoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJscm9fZmx1c2hlZCIsCi0JICAgIENU TEZMQUdfUlcsICZzYy0+aG5fbHJvLmxyb19mbHVzaGVkLCAwLCAiTFJPIGZsdXNoZWQiKTsKLQlT WVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3RyaWVkIiwKLQkgICAg Q1RMRkxBR19SVywgJnNjLT5obl9scm9fdHJpZWQsICIjIG9mIExSTyB0cmllcyIpOwotCVNZU0NU TF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19sZW5ndGhfbGltIiwKLQkgICAg Q1RMVFlQRV9VSU5UIHwgQ1RMRkxBR19SVywgc2MsIDAsIGhuX2xyb19sZW5saW1fc3lzY3RsLCAi SVUiLAotCSAgICAiTWF4ICMgb2YgZGF0YSBieXRlcyB0byBiZSBhZ2dyZWdhdGVkIGJ5IExSTyIp OwotCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19hY2tjbnRfbGlt IiwKLQkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgMCwgaG5fbHJvX2Fja2NudF9z eXNjdGwsICJJIiwKLQkgICAgIk1heCAjIG9mIEFDS3MgdG8gYmUgYWdncmVnYXRlZCBieSBMUk8i KTsKLQlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJ0cnVzdF9ob3N0dGNw IiwKLQkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fVENQ LAotCSAgICBobl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKLQkgICAgIlRydXN0IHRjcCBzZWdl bWVudCB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCi0JICAgICJ3aGVuIGNzdW0gaW5mbyBp cyBtaXNzaW5nIik7Ci0JU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAidHJ1 c3RfaG9zdHVkcCIsCi0JICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywgc2MsIEhOX1RSVVNU X0hDU1VNX1VEUCwKLQkgICAgaG5fdHJ1c3RfaGNzdW1fc3lzY3RsLCAiSSIsCi0JICAgICJUcnVz dCB1ZHAgZGF0YWdyYW0gdmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lkZSwgIgotCSAgICAid2hlbiBj c3VtIGluZm8gaXMgbWlzc2luZyIpOwotCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURf QVVUTywgInRydXN0X2hvc3RpcCIsCi0JICAgIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywgc2Ms IEhOX1RSVVNUX0hDU1VNX0lQLAotCSAgICBobl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKLQkg ICAgIlRydXN0IGlwIHBhY2tldCB2ZXJpZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCi0JICAgICJ3 aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5nIik7Ci0JU1lTQ1RMX0FERF9VTE9ORyhjdHgsIGNoaWxk LCBPSURfQVVUTywgImNzdW1faXAiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2NzdW1faXAs ICJSWENTVU0gSVAiKTsKLQlTWVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAi Y3N1bV90Y3AiLAotCSAgICBDVExGTEFHX1JXLCAmc2MtPmhuX2NzdW1fdGNwLCAiUlhDU1VNIFRD UCIpOwotCVNZU0NUTF9BRERfVUxPTkcoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX3VkcCIs Ci0JICAgIENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV91ZHAsICJSWENTVU0gVURQIik7Ci0JU1lT Q1RMX0FERF9VTE9ORyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImNzdW1fdHJ1c3RlZCIsCi0JICAg IENUTEZMQUdfUlcsICZzYy0+aG5fY3N1bV90cnVzdGVkLAotCSAgICAiIyBvZiBwYWNrZXRzIHRo YXQgd2UgdHJ1c3QgaG9zdCdzIGNzdW0gdmVyaWZpY2F0aW9uIik7Ci0JU1lTQ1RMX0FERF9VTE9O RyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInNtYWxsX3BrdHMiLAotCSAgICBDVExGTEFHX1JXLCAm c2MtPmhuX3NtYWxsX3BrdHMsICIjIG9mIHNtYWxsIHBhY2tldHMgcmVjZWl2ZWQiKTsKIAlTWVND VExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibm9fdHhkZXNjcyIsCiAJICAgIENU TEZMQUdfUlcsICZzYy0+aG5fbm9fdHhkZXNjcywgIiMgb2YgdGltZXMgc2hvcnQgb2YgVFggZGVz Y3MiKTsKIAlTWVNDVExfQUREX1VMT05HKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAic2VuZF9mYWls ZWQiLApAQCAtNTk2LDkgKzUzNyw3IEBACiAJCXRhc2txdWV1ZV9mcmVlKHNjLT5obl90eF90YXNr cSk7CiAKIAlpZm1lZGlhX3JlbW92ZWFsbCgmc2MtPmhuX21lZGlhKTsKLSNpZiBkZWZpbmVkKElO RVQpIHx8IGRlZmluZWQoSU5FVDYpCi0JdGNwX2xyb19mcmVlKCZzYy0+aG5fbHJvKTsKLSNlbmRp ZgorCWhuX2Rlc3Ryb3lfcnhfZGF0YShzYyk7CiAJaG5fZGVzdHJveV90eF9yaW5nKHNjKTsKIAog CXJldHVybiAoMCk7CkBAIC03NDYsNyArNjg1LDggQEAKIHsKIAlzdHJ1Y3QgaG5fc29mdGMgKnNj ID0gZGV2aWNlX2dldF9zb2Z0YyhkZXZpY2VfY3R4LT5kZXZpY2UpOwogI2lmIGRlZmluZWQoSU5F VCkgfHwgZGVmaW5lZChJTkVUNikKLQlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZzYy0+aG5fbHJv OworCXN0cnVjdCBobl9yeF9yaW5nICpyeHIgPSAmc2MtPmhuX3J4X3JpbmdbMF07IC8qIFRPRE86 IHZSU1MgKi8KKwlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZyeHItPmhuX2xybzsKIAlzdHJ1Y3Qg bHJvX2VudHJ5ICpxdWV1ZWQ7CiAKIAl3aGlsZSAoKHF1ZXVlZCA9IFNMSVNUX0ZJUlNUKCZscm8t Pmxyb19hY3RpdmUpKSAhPSBOVUxMKSB7CkBAIC0xMTYyLDEwICsxMTAyLDEwIEBACiBuZXR2c2Nf cmVjdihzdHJ1Y3QgaHZfZGV2aWNlICpkZXZpY2VfY3R4LCBuZXR2c2NfcGFja2V0ICpwYWNrZXQs CiAgICAgcm5kaXNfdGNwX2lwX2NzdW1faW5mbyAqY3N1bV9pbmZvKQogewotCWhuX3NvZnRjX3Qg KnNjID0gKGhuX3NvZnRjX3QgKilkZXZpY2VfZ2V0X3NvZnRjKGRldmljZV9jdHgtPmRldmljZSk7 CisJc3RydWN0IGhuX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2aWNlX2N0eC0+ZGV2 aWNlKTsKKwlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nWzBdOyAvKiBU T0RPOiB2UlNTICovCiAJc3RydWN0IG1idWYgKm1fbmV3OwogCXN0cnVjdCBpZm5ldCAqaWZwOwot CWRldmljZV90IGRldiA9IGRldmljZV9jdHgtPmRldmljZTsKIAlpbnQgc2l6ZSwgZG9fbHJvID0g MCwgZG9fY3N1bSA9IDE7CiAKIAlpZiAoc2MgPT0gTlVMTCkgewpAQCAtMTE5MCw3ICsxMTMwLDcg QEAKIAkJbWVtY3B5KG10b2QobV9uZXcsIHZvaWQgKiksIHBhY2tldC0+ZGF0YSwKIAkJICAgIHBh Y2tldC0+dG90X2RhdGFfYnVmX2xlbik7CiAJCW1fbmV3LT5tX3BrdGhkci5sZW4gPSBtX25ldy0+ bV9sZW4gPSBwYWNrZXQtPnRvdF9kYXRhX2J1Zl9sZW47Ci0JCXNjLT5obl9zbWFsbF9wa3RzKys7 CisJCXJ4ci0+aG5fc21hbGxfcGt0cysrOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAqIEdldCBhbiBt YnVmIHdpdGggYSBjbHVzdGVyLiAgRm9yIHBhY2tldHMgMksgb3IgbGVzcywKQEAgLTEyMDYsNyAr MTE0Niw3IEBACiAKIAkJbV9uZXcgPSBtX2dldGpjbChNX05PV0FJVCwgTVRfREFUQSwgTV9QS1RI RFIsIHNpemUpOwogCQlpZiAobV9uZXcgPT0gTlVMTCkgewotCQkJZGV2aWNlX3ByaW50ZihkZXYs ICJhbGxvYyBtYnVmIGZhaWxlZC5cbiIpOworCQkJaWZfcHJpbnRmKGlmcCwgImFsbG9jIG1idWYg ZmFpbGVkLlxuIik7CiAJCQlyZXR1cm4gKDApOwogCQl9CiAKQEAgLTEyMjMsNyArMTE2Myw3IEBA CiAJCWlmIChjc3VtX2luZm8tPnJlY2VpdmUuaXBfY3N1bV9zdWNjZWVkZWQgJiYgZG9fY3N1bSkg ewogCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3MgfD0KIAkJCSAgICAoQ1NVTV9JUF9DSEVD S0VEIHwgQ1NVTV9JUF9WQUxJRCk7Ci0JCQlzYy0+aG5fY3N1bV9pcCsrOworCQkJcnhyLT5obl9j c3VtX2lwKys7CiAJCX0KIAogCQkvKiBUQ1AvVURQIGNzdW0gb2ZmbG9hZCAqLwpAQCAtMTIzMyw5 ICsxMTczLDkgQEAKIAkJCSAgICAoQ1NVTV9EQVRBX1ZBTElEIHwgQ1NVTV9QU0VVRE9fSERSKTsK IAkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2RhdGEgPSAweGZmZmY7CiAJCQlpZiAoY3N1bV9pbmZv LT5yZWNlaXZlLnRjcF9jc3VtX3N1Y2NlZWRlZCkKLQkJCQlzYy0+aG5fY3N1bV90Y3ArKzsKKwkJ CQlyeHItPmhuX2NzdW1fdGNwKys7CiAJCQllbHNlCi0JCQkJc2MtPmhuX2NzdW1fdWRwKys7CisJ CQkJcnhyLT5obl9jc3VtX3VkcCsrOwogCQl9CiAKIAkJaWYgKGNzdW1faW5mby0+cmVjZWl2ZS5p cF9jc3VtX3N1Y2NlZWRlZCAmJgpAQCAtMTI2Nyw4ICsxMjA3LDkgQEAKIAkJCXByID0gaG5fY2hl Y2tfaXBsZW4obV9uZXcsIGhvZmYpOwogCQkJaWYgKHByID09IElQUFJPVE9fVENQKSB7CiAJCQkJ aWYgKGRvX2NzdW0gJiYKLQkJCQkgICAgKHNjLT5obl90cnVzdF9oY3N1bSAmIEhOX1RSVVNUX0hD U1VNX1RDUCkpIHsKLQkJCQkJc2MtPmhuX2NzdW1fdHJ1c3RlZCsrOworCQkJCSAgICAocnhyLT5o bl90cnVzdF9oY3N1bSAmCisJCQkJICAgICBITl9UUlVTVF9IQ1NVTV9UQ1ApKSB7CisJCQkJCXJ4 ci0+aG5fY3N1bV90cnVzdGVkKys7CiAJCQkJCW1fbmV3LT5tX3BrdGhkci5jc3VtX2ZsYWdzIHw9 CiAJCQkJCSAgIChDU1VNX0lQX0NIRUNLRUQgfCBDU1VNX0lQX1ZBTElEIHwKIAkJCQkJICAgIENT VU1fREFUQV9WQUxJRCB8IENTVU1fUFNFVURPX0hEUik7CkBAIC0xMjc4LDE2ICsxMjE5LDE3IEBA CiAJCQkJZG9fbHJvID0gMTsKIAkJCX0gZWxzZSBpZiAocHIgPT0gSVBQUk9UT19VRFApIHsKIAkJ CQlpZiAoZG9fY3N1bSAmJgotCQkJCSAgICAoc2MtPmhuX3RydXN0X2hjc3VtICYgSE5fVFJVU1Rf SENTVU1fVURQKSkgewotCQkJCQlzYy0+aG5fY3N1bV90cnVzdGVkKys7CisJCQkJICAgIChyeHIt PmhuX3RydXN0X2hjc3VtICYKKwkJCQkgICAgIEhOX1RSVVNUX0hDU1VNX1VEUCkpIHsKKwkJCQkJ cnhyLT5obl9jc3VtX3RydXN0ZWQrKzsKIAkJCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3Mg fD0KIAkJCQkJICAgKENTVU1fSVBfQ0hFQ0tFRCB8IENTVU1fSVBfVkFMSUQgfAogCQkJCQkgICAg Q1NVTV9EQVRBX1ZBTElEIHwgQ1NVTV9QU0VVRE9fSERSKTsKIAkJCQkJbV9uZXctPm1fcGt0aGRy LmNzdW1fZGF0YSA9IDB4ZmZmZjsKIAkJCQl9CiAJCQl9IGVsc2UgaWYgKHByICE9IElQUFJPVE9f RE9ORSAmJiBkb19jc3VtICYmCi0JCQkgICAgKHNjLT5obl90cnVzdF9oY3N1bSAmIEhOX1RSVVNU X0hDU1VNX0lQKSkgewotCQkJCXNjLT5obl9jc3VtX3RydXN0ZWQrKzsKKwkJCSAgICAocnhyLT5o bl90cnVzdF9oY3N1bSAmIEhOX1RSVVNUX0hDU1VNX0lQKSkgeworCQkJCXJ4ci0+aG5fY3N1bV90 cnVzdGVkKys7CiAJCQkJbV9uZXctPm1fcGt0aGRyLmNzdW1fZmxhZ3MgfD0KIAkJCQkgICAgKENT VU1fSVBfQ0hFQ0tFRCB8IENTVU1fSVBfVkFMSUQpOwogCQkJfQpAQCAtMTMwOSwxMCArMTI1MSwx MCBAQAogCiAJaWYgKChpZnAtPmlmX2NhcGVuYWJsZSAmIElGQ0FQX0xSTykgJiYgZG9fbHJvKSB7 CiAjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQotCQlzdHJ1Y3QgbHJvX2N0cmwg KmxybyA9ICZzYy0+aG5fbHJvOworCQlzdHJ1Y3QgbHJvX2N0cmwgKmxybyA9ICZyeHItPmhuX2xy bzsKIAogCQlpZiAobHJvLT5scm9fY250KSB7Ci0JCQlzYy0+aG5fbHJvX3RyaWVkKys7CisJCQly eHItPmhuX2xyb190cmllZCsrOwogCQkJaWYgKHRjcF9scm9fcngobHJvLCBtX25ldywgMCkgPT0g MCkgewogCQkJCS8qIERPTkUhICovCiAJCQkJcmV0dXJuIDA7CkBAIC0xMzkyLDggKzEzMzQsMTcg QEAKIAkJICogTWFrZSBzdXJlIHRoYXQgTFJPIGFnZ3JlZ2F0aW9uIGxlbmd0aCBsaW1pdCBpcyBz dGlsbAogCQkgKiB2YWxpZCwgYWZ0ZXIgdGhlIE1UVSBjaGFuZ2UuCiAJCSAqLwotCQlpZiAoc2Mt PmhuX2xyby5scm9fbGVuZ3RoX2xpbSA8IEhOX0xST19MRU5MSU1fTUlOKGlmcCkpCi0JCQlzYy0+ aG5fbHJvLmxyb19sZW5ndGhfbGltID0gSE5fTFJPX0xFTkxJTV9NSU4oaWZwKTsKKwkJTlZfTE9D SyhzYyk7CisJCWlmIChzYy0+aG5fcnhfcmluZ1swXS5obl9scm8ubHJvX2xlbmd0aF9saW0gPAor CQkgICAgSE5fTFJPX0xFTkxJTV9NSU4oaWZwKSkgeworCQkJaW50IGk7CisKKwkJCWZvciAoaSA9 IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQkJCXNjLT5obl9yeF9yaW5nW2ld LmhuX2xyby5scm9fbGVuZ3RoX2xpbSA9CisJCQkJICAgIEhOX0xST19MRU5MSU1fTUlOKGlmcCk7 CisJCQl9CisJCX0KKwkJTlZfVU5MT0NLKHNjKTsKIAogCQlkbyB7CiAJCQlOVl9MT0NLKHNjKTsK QEAgLTE3MDUsMzIgKzE2NTYsMzUgQEAKIHsKIAlzdHJ1Y3QgaG5fc29mdGMgKnNjID0gYXJnMTsK IAl1bnNpZ25lZCBpbnQgbGVubGltOwotCWludCBlcnJvcjsKKwlpbnQgZXJyb3IsIGk7CiAKLQls ZW5saW0gPSBzYy0+aG5fbHJvLmxyb19sZW5ndGhfbGltOworCWxlbmxpbSA9IHNjLT5obl9yeF9y aW5nWzBdLmhuX2xyby5scm9fbGVuZ3RoX2xpbTsKIAllcnJvciA9IHN5c2N0bF9oYW5kbGVfaW50 KG9pZHAsICZsZW5saW0sIDAsIHJlcSk7CiAJaWYgKGVycm9yIHx8IHJlcS0+bmV3cHRyID09IE5V TEwpCiAJCXJldHVybiBlcnJvcjsKIAogCWlmIChsZW5saW0gPCBITl9MUk9fTEVOTElNX01JTihz Yy0+aG5faWZwKSB8fAogCSAgICBsZW5saW0gPiBUQ1BfTFJPX0xFTkdUSF9NQVgpCiAJCXJldHVy biBFSU5WQUw7CiAKLQlzYy0+aG5fbHJvLmxyb19sZW5ndGhfbGltID0gbGVubGltOworCU5WX0xP Q0soc2MpOworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkKKwkJc2Mt PmhuX3J4X3JpbmdbaV0uaG5fbHJvLmxyb19sZW5ndGhfbGltID0gbGVubGltOworCU5WX1VOTE9D SyhzYyk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKIGhuX2xyb19hY2tjbnRfc3lzY3Rs KFNZU0NUTF9IQU5ETEVSX0FSR1MpCiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFyZzE7Ci0J aW50IGFja2NudCwgZXJyb3I7CisJaW50IGFja2NudCwgZXJyb3IsIGk7CiAKIAkvKgogCSAqIGxy b19hY2tjbnRfbGltIGlzIGFwcGVuZCBjb3VudCBsaW1pdCwKIAkgKiArMSB0byB0dXJuIGl0IGlu dG8gYWdncmVnYXRpb24gbGltaXQuCiAJICovCi0JYWNrY250ID0gc2MtPmhuX2xyby5scm9fYWNr Y250X2xpbSArIDE7CisJYWNrY250ID0gc2MtPmhuX3J4X3JpbmdbMF0uaG5fbHJvLmxyb19hY2tj bnRfbGltICsgMTsKIAllcnJvciA9IHN5c2N0bF9oYW5kbGVfaW50KG9pZHAsICZhY2tjbnQsIDAs IHJlcSk7CiAJaWYgKGVycm9yIHx8IHJlcS0+bmV3cHRyID09IE5VTEwpCiAJCXJldHVybiBlcnJv cjsKQEAgLTE3NDIsMzAgKzE2OTYsMzggQEAKIAkgKiBDb252ZXJ0IGFnZ3JlZ2F0aW9uIGxpbWl0 IGJhY2sgdG8gYXBwZW5kCiAJICogY291bnQgbGltaXQuCiAJICovCi0Jc2MtPmhuX2xyby5scm9f YWNrY250X2xpbSA9IGFja2NudCAtIDE7CisJLS1hY2tjbnQ7CisJTlZfTE9DSyhzYyk7CisJZm9y IChpID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKQorCQlzYy0+aG5fcnhfcmluZ1tp XS5obl9scm8ubHJvX2Fja2NudF9saW0gPSBhY2tjbnQ7CisJTlZfVU5MT0NLKHNjKTsKIAlyZXR1 cm4gMDsKIH0KIAogc3RhdGljIGludAogaG5fdHJ1c3RfaGNzdW1fc3lzY3RsKFNZU0NUTF9IQU5E TEVSX0FSR1MpCiB7CiAJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFyZzE7CiAJaW50IGhjc3VtID0g YXJnMjsKLQlpbnQgb24sIGVycm9yOworCWludCBvbiwgZXJyb3IsIGk7CiAKIAlvbiA9IDA7Ci0J aWYgKHNjLT5obl90cnVzdF9oY3N1bSAmIGhjc3VtKQorCWlmIChzYy0+aG5fcnhfcmluZ1swXS5o bl90cnVzdF9oY3N1bSAmIGhjc3VtKQogCQlvbiA9IDE7CiAKIAllcnJvciA9IHN5c2N0bF9oYW5k bGVfaW50KG9pZHAsICZvbiwgMCwgcmVxKTsKIAlpZiAoZXJyb3IgfHwgcmVxLT5uZXdwdHIgPT0g TlVMTCkKIAkJcmV0dXJuIGVycm9yOwogCiAJTlZfTE9DSyhzYyk7Ci0JaWYgKG9uKQotCQlzYy0+ aG5fdHJ1c3RfaGNzdW0gfD0gaGNzdW07Ci0JZWxzZQotCQlzYy0+aG5fdHJ1c3RfaGNzdW0gJj0g fmhjc3VtOworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQlz dHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCisJCWlmIChvbikK KwkJCXJ4ci0+aG5fdHJ1c3RfaGNzdW0gfD0gaGNzdW07CisJCWVsc2UKKwkJCXJ4ci0+aG5fdHJ1 c3RfaGNzdW0gJj0gfmhjc3VtOworCX0KIAlOVl9VTkxPQ0soc2MpOwogCXJldHVybiAwOwogfQpA QCAtMTc5MCw2ICsxNzUyLDU4IEBACiB9CiAKIHN0YXRpYyBpbnQKK2huX3J4X3N0YXRfdWxvbmdf c3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJc3RydWN0IGhuX3NvZnRjICpzYyA9IGFy ZzE7CisJaW50IG9mcyA9IGFyZzIsIGksIGVycm9yOworCXN0cnVjdCBobl9yeF9yaW5nICpyeHI7 CisJdV9sb25nIHN0YXQ7CisKKwlzdGF0ID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4 X3JpbmdfY250OyArK2kpIHsKKwkJcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCQlzdGF0ICs9 ICooKHVfbG9uZyAqKSgodWludDhfdCAqKXJ4ciArIG9mcykpOworCX0KKworCWVycm9yID0gc3lz Y3RsX2hhbmRsZV9sb25nKG9pZHAsICZzdGF0LCAwLCByZXEpOworCWlmIChlcnJvciB8fCByZXEt Pm5ld3B0ciA9PSBOVUxMKQorCQlyZXR1cm4gZXJyb3I7CisKKwkvKiBaZXJvIG91dCB0aGlzIHN0 YXQuICovCisJZm9yIChpID0gMDsgaSA8IHNjLT5obl9yeF9yaW5nX2NudDsgKytpKSB7CisJCXJ4 ciA9ICZzYy0+aG5fcnhfcmluZ1tpXTsKKwkJKigodV9sb25nICopKCh1aW50OF90ICopcnhyICsg b2ZzKSkgPSAwOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraG5fcnhfc3RhdF91 NjRfc3lzY3RsKFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJc3RydWN0IGhuX3NvZnRjICpzYyA9 IGFyZzE7CisJaW50IG9mcyA9IGFyZzIsIGksIGVycm9yOworCXN0cnVjdCBobl9yeF9yaW5nICpy eHI7CisJdWludDY0X3Qgc3RhdDsKKworCXN0YXQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBzYy0+ aG5fcnhfcmluZ19jbnQ7ICsraSkgeworCQlyeHIgPSAmc2MtPmhuX3J4X3JpbmdbaV07CisJCXN0 YXQgKz0gKigodWludDY0X3QgKikoKHVpbnQ4X3QgKilyeHIgKyBvZnMpKTsKKwl9CisKKwllcnJv ciA9IHN5c2N0bF9oYW5kbGVfNjQob2lkcCwgJnN0YXQsIDAsIHJlcSk7CisJaWYgKGVycm9yIHx8 IHJlcS0+bmV3cHRyID09IE5VTEwpCisJCXJldHVybiBlcnJvcjsKKworCS8qIFplcm8gb3V0IHRo aXMgc3RhdC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc2MtPmhuX3J4X3JpbmdfY250OyArK2kpIHsK KwkJcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCQkqKCh1aW50NjRfdCAqKSgodWludDhfdCAq KXJ4ciArIG9mcykpID0gMDsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKIGhuX2No ZWNrX2lwbGVuKGNvbnN0IHN0cnVjdCBtYnVmICptLCBpbnQgaG9mZikKIHsKIAljb25zdCBzdHJ1 Y3QgaXAgKmlwOwpAQCAtMTg3Niw2ICsxODkwLDEzNiBAQAogCSpwYWRkciA9IHNlZ3MtPmRzX2Fk ZHI7CiB9CiAKK3N0YXRpYyB2b2lkCitobl9jcmVhdGVfcnhfZGF0YShzdHJ1Y3QgaG5fc29mdGMg KnNjKQoreworCXN0cnVjdCBzeXNjdGxfb2lkX2xpc3QgKmNoaWxkOworCXN0cnVjdCBzeXNjdGxf Y3R4X2xpc3QgKmN0eDsKKwlkZXZpY2VfdCBkZXYgPSBzYy0+aG5fZGV2OworI2lmIGRlZmluZWQo SU5FVCkgfHwgZGVmaW5lZChJTkVUNikKKyNpZiBfX0ZyZWVCU0RfdmVyc2lvbiA+PSAxMTAwMDk1 CisJaW50IGxyb2VudF9jbnQ7CisjZW5kaWYKKyNlbmRpZgorCWludCBpOworCisJc2MtPmhuX3J4 X3JpbmdfY250ID0gMTsgLyogVE9ETzogdlJTUyAqLworCXNjLT5obl9yeF9yaW5nID0gbWFsbG9j KHNpemVvZihzdHJ1Y3QgaG5fcnhfcmluZykgKiBzYy0+aG5fcnhfcmluZ19jbnQsCisJICAgIE1f TkVUVlNDLCBNX1dBSVRPSyB8IE1fWkVSTyk7CisKKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmlu ZWQoSU5FVDYpCisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQorCWxyb2VudF9jbnQg PSBobl9scm9fZW50cnlfY291bnQ7CisJaWYgKGxyb2VudF9jbnQgPCBUQ1BfTFJPX0VOVFJJRVMp CisJCWxyb2VudF9jbnQgPSBUQ1BfTFJPX0VOVFJJRVM7CisJZGV2aWNlX3ByaW50ZihkZXYsICJM Uk86IGVudHJ5IGNvdW50ICVkXG4iLCBscm9lbnRfY250KTsKKyNlbmRpZgorI2VuZGlmCS8qIElO RVQgfHwgSU5FVDYgKi8KKworCWZvciAoaSA9IDA7IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsr aSkgeworCQlzdHJ1Y3QgaG5fcnhfcmluZyAqcnhyID0gJnNjLT5obl9yeF9yaW5nW2ldOworCisJ CWlmIChobl90cnVzdF9ob3N0dGNwKQorCQkJcnhyLT5obl90cnVzdF9oY3N1bSB8PSBITl9UUlVT VF9IQ1NVTV9UQ1A7CisJCWlmIChobl90cnVzdF9ob3N0dWRwKQorCQkJcnhyLT5obl90cnVzdF9o Y3N1bSB8PSBITl9UUlVTVF9IQ1NVTV9VRFA7CisJCWlmIChobl90cnVzdF9ob3N0aXApCisJCQly eHItPmhuX3RydXN0X2hjc3VtIHw9IEhOX1RSVVNUX0hDU1VNX0lQOworCisJCS8qCisJCSAqIElu aXRpYWxpemUgTFJPLgorCQkgKi8KKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYp CisjaWYgX19GcmVlQlNEX3ZlcnNpb24gPj0gMTEwMDA5NQorCQl0Y3BfbHJvX2luaXRfYXJncygm cnhyLT5obl9scm8sIHNjLT5obl9pZnAsIGxyb2VudF9jbnQsIDApOworI2Vsc2UKKwkJdGNwX2xy b19pbml0KCZyeHItPmhuX2xybyk7CisJCXJ4ci0+aG5fbHJvLmlmcCA9IHNjLT5obl9pZnA7Cisj ZW5kaWYKKwkJcnhyLT5obl9scm8ubHJvX2xlbmd0aF9saW0gPSBITl9MUk9fTEVOTElNX0RFRjsK KwkJcnhyLT5obl9scm8ubHJvX2Fja2NudF9saW0gPSBITl9MUk9fQUNLQ05UX0RFRjsKKyNlbmRp ZgkvKiBJTkVUIHx8IElORVQ2ICovCisJfQorCisJY3R4ID0gZGV2aWNlX2dldF9zeXNjdGxfY3R4 KGRldik7CisJY2hpbGQgPSBTWVNDVExfQ0hJTERSRU4oZGV2aWNlX2dldF9zeXNjdGxfdHJlZShk ZXYpKTsKKworCVNZU0NUTF9BRERfUFJPQyhjdHgsIGNoaWxkLCBPSURfQVVUTywgImxyb19xdWV1 ZWQiLAorCSAgICBDVExUWVBFX1U2NCB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9m KHN0cnVjdCBobl9yeF9yaW5nLCBobl9scm8ubHJvX3F1ZXVlZCksCisJICAgIGhuX3J4X3N0YXRf dTY0X3N5c2N0bCwgIkxVIiwgIkxSTyBxdWV1ZWQiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBj aGlsZCwgT0lEX0FVVE8sICJscm9fZmx1c2hlZCIsCisJICAgIENUTFRZUEVfVTY0IHwgQ1RMRkxB R19SVywgc2MsCisJICAgIF9fb2Zmc2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX2xyby5scm9f Zmx1c2hlZCksCisJICAgIGhuX3J4X3N0YXRfdTY0X3N5c2N0bCwgIkxVIiwgIkxSTyBmbHVzaGVk Iik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX3RyaWVkIiwK KwkgICAgQ1RMVFlQRV9VTE9ORyB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9mKHN0 cnVjdCBobl9yeF9yaW5nLCBobl9scm9fdHJpZWQpLAorCSAgICBobl9yeF9zdGF0X3Vsb25nX3N5 c2N0bCwgIkxVIiwgIiMgb2YgTFJPIHRyaWVzIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hp bGQsIE9JRF9BVVRPLCAibHJvX2xlbmd0aF9saW0iLAorCSAgICBDVExUWVBFX1VJTlQgfCBDVExG TEFHX1JXLCBzYywgMCwgaG5fbHJvX2xlbmxpbV9zeXNjdGwsICJJVSIsCisJICAgICJNYXggIyBv ZiBkYXRhIGJ5dGVzIHRvIGJlIGFnZ3JlZ2F0ZWQgYnkgTFJPIik7CisJU1lTQ1RMX0FERF9QUk9D KGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAibHJvX2Fja2NudF9saW0iLAorCSAgICBDVExUWVBFX0lO VCB8IENUTEZMQUdfUlcsIHNjLCAwLCBobl9scm9fYWNrY250X3N5c2N0bCwgIkkiLAorCSAgICAi TWF4ICMgb2YgQUNLcyB0byBiZSBhZ2dyZWdhdGVkIGJ5IExSTyIpOworCVNZU0NUTF9BRERfUFJP QyhjdHgsIGNoaWxkLCBPSURfQVVUTywgInRydXN0X2hvc3R0Y3AiLAorCSAgICBDVExUWVBFX0lO VCB8IENUTEZMQUdfUlcsIHNjLCBITl9UUlVTVF9IQ1NVTV9UQ1AsCisJICAgIGhuX3RydXN0X2hj c3VtX3N5c2N0bCwgIkkiLAorCSAgICAiVHJ1c3QgdGNwIHNlZ2VtZW50IHZlcmlmaWNhdGlvbiBv biBob3N0IHNpZGUsICIKKwkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1pc3NpbmciKTsKKwlTWVND VExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJ0cnVzdF9ob3N0dWRwIiwKKwkgICAg Q1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fVURQLAorCSAgICBo bl90cnVzdF9oY3N1bV9zeXNjdGwsICJJIiwKKwkgICAgIlRydXN0IHVkcCBkYXRhZ3JhbSB2ZXJp ZmljYXRpb24gb24gaG9zdCBzaWRlLCAiCisJICAgICJ3aGVuIGNzdW0gaW5mbyBpcyBtaXNzaW5n Iik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hpbGQsIE9JRF9BVVRPLCAidHJ1c3RfaG9zdGlw IiwKKwkgICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLCBzYywgSE5fVFJVU1RfSENTVU1fSVAs CisJICAgIGhuX3RydXN0X2hjc3VtX3N5c2N0bCwgIkkiLAorCSAgICAiVHJ1c3QgaXAgcGFja2V0 IHZlcmlmaWNhdGlvbiBvbiBob3N0IHNpZGUsICIKKwkgICAgIndoZW4gY3N1bSBpbmZvIGlzIG1p c3NpbmciKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX2lw IiwKKwkgICAgQ1RMVFlQRV9VTE9ORyB8IENUTEZMQUdfUlcsIHNjLAorCSAgICBfX29mZnNldG9m KHN0cnVjdCBobl9yeF9yaW5nLCBobl9jc3VtX2lwKSwKKwkgICAgaG5fcnhfc3RhdF91bG9uZ19z eXNjdGwsICJMVSIsICJSWENTVU0gSVAiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwg T0lEX0FVVE8sICJjc3VtX3RjcCIsCisJICAgIENUTFRZUEVfVUxPTkcgfCBDVExGTEFHX1JXLCBz YywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywgaG5fY3N1bV90Y3ApLAorCSAg ICBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bCwgIkxVIiwgIlJYQ1NVTSBUQ1AiKTsKKwlTWVNDVExf QUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3VtX3VkcCIsCisJICAgIENUTFRZUEVf VUxPTkcgfCBDVExGTEFHX1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmlu ZywgaG5fY3N1bV91ZHApLAorCSAgICBobl9yeF9zdGF0X3Vsb25nX3N5c2N0bCwgIkxVIiwgIlJY Q1NVTSBVRFAiKTsKKwlTWVNDVExfQUREX1BST0MoY3R4LCBjaGlsZCwgT0lEX0FVVE8sICJjc3Vt X3RydXN0ZWQiLAorCSAgICBDVExUWVBFX1VMT05HIHwgQ1RMRkxBR19SVywgc2MsCisJICAgIF9f b2Zmc2V0b2Yoc3RydWN0IGhuX3J4X3JpbmcsIGhuX2NzdW1fdHJ1c3RlZCksCisJICAgIGhuX3J4 X3N0YXRfdWxvbmdfc3lzY3RsLCAiTFUiLAorCSAgICAiIyBvZiBwYWNrZXRzIHRoYXQgd2UgdHJ1 c3QgaG9zdCdzIGNzdW0gdmVyaWZpY2F0aW9uIik7CisJU1lTQ1RMX0FERF9QUk9DKGN0eCwgY2hp bGQsIE9JRF9BVVRPLCAic21hbGxfcGt0cyIsCisJICAgIENUTFRZUEVfVUxPTkcgfCBDVExGTEFH X1JXLCBzYywKKwkgICAgX19vZmZzZXRvZihzdHJ1Y3QgaG5fcnhfcmluZywgaG5fc21hbGxfcGt0 cyksCisJICAgIGhuX3J4X3N0YXRfdWxvbmdfc3lzY3RsLCAiTFUiLCAiIyBvZiBzbWFsbCBwYWNr ZXRzIHJlY2VpdmVkIik7Cit9CisKK3N0YXRpYyB2b2lkCitobl9kZXN0cm95X3J4X2RhdGEoc3Ry dWN0IGhuX3NvZnRjICpzYykKK3sKKyNpZiBkZWZpbmVkKElORVQpIHx8IGRlZmluZWQoSU5FVDYp CisJaW50IGk7CisjZW5kaWYKKworCWlmIChzYy0+aG5fcnhfcmluZ19jbnQgPT0gMCkKKwkJcmV0 dXJuOworCisjaWYgZGVmaW5lZChJTkVUKSB8fCBkZWZpbmVkKElORVQ2KQorCWZvciAoaSA9IDA7 IGkgPCBzYy0+aG5fcnhfcmluZ19jbnQ7ICsraSkKKwkJdGNwX2xyb19mcmVlKCZzYy0+aG5fcnhf cmluZ1tpXS5obl9scm8pOworI2VuZGlmCisJZnJlZShzYy0+aG5fcnhfcmluZywgTV9ORVRWU0Mp OworCXNjLT5obl9yeF9yaW5nID0gTlVMTDsKKworCXNjLT5obl9yeF9yaW5nX2NudCA9IDA7Cit9 CisKIHN0YXRpYyBpbnQKIGhuX2NyZWF0ZV90eF9yaW5nKHN0cnVjdCBobl9zb2Z0YyAqc2MpCiB7 CmRpZmYgLS1naXQgYS9oZWFkL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmggYi9o ZWFkL3N5cy9kZXYvaHlwZXJ2L25ldHZzYy9odl9uZXRfdnNjLmgKLS0tIGEvaGVhZC9zeXMvZGV2 L2h5cGVydi9uZXR2c2MvaHZfbmV0X3ZzYy5oCisrKyBiL2hlYWQvc3lzL2Rldi9oeXBlcnYvbmV0 dnNjL2h2X25ldF92c2MuaApAQCAtOTkzLDYgKzk5MywyNCBAQAogc3RydWN0IGhuX3R4ZGVzYzsK IFNMSVNUX0hFQUQoaG5fdHhkZXNjX2xpc3QsIGhuX3R4ZGVzYyk7CiAKK3N0cnVjdCBobl9yeF9y aW5nIHsKKwlzdHJ1Y3QgbHJvX2N0cmwJaG5fbHJvOworCisJLyogVHJ1c3QgY3N1bSB2ZXJpZmlj YXRpb24gb24gaG9zdCBzaWRlICovCisJaW50CQlobl90cnVzdF9oY3N1bTsJLyogSE5fVFJVU1Rf SENTVU1fICovCisKKwl1X2xvbmcJCWhuX2NzdW1faXA7CisJdV9sb25nCQlobl9jc3VtX3RjcDsK Kwl1X2xvbmcJCWhuX2NzdW1fdWRwOworCXVfbG9uZwkJaG5fY3N1bV90cnVzdGVkOworCXVfbG9u ZwkJaG5fbHJvX3RyaWVkOworCXVfbG9uZwkJaG5fc21hbGxfcGt0czsKK30gX19hbGlnbmVkKENB Q0hFX0xJTkVfU0laRSk7CisKKyNkZWZpbmUgSE5fVFJVU1RfSENTVU1fSVAJMHgwMDAxCisjZGVm aW5lIEhOX1RSVVNUX0hDU1VNX1RDUAkweDAwMDIKKyNkZWZpbmUgSE5fVFJVU1RfSENTVU1fVURQ CTB4MDAwNAorCiAvKgogICogRGV2aWNlLXNwZWNpZmljIHNvZnRjIHN0cnVjdHVyZQogICovCkBA IC0xMDI5LDI4ICsxMDQ3LDE2IEBACiAJc3RydWN0IHRhc2sJaG5fc3RhcnRfdGFzazsKIAlzdHJ1 Y3QgdGFzawlobl90eGVvZl90YXNrOwogCi0Jc3RydWN0IGxyb19jdHJsCWhuX2xybzsKLQotCS8q IFRydXN0IGNzdW0gdmVyaWZpY2F0aW9uIG9uIGhvc3Qgc2lkZSAqLwotCWludAkJaG5fdHJ1c3Rf aGNzdW07CS8qIEhOX1RSVVNUX0hDU1VNXyAqLworCWludAkJaG5fcnhfcmluZ19jbnQ7CisJc3Ry dWN0IGhuX3J4X3JpbmcgKmhuX3J4X3Jpbmc7CiAKLQl1X2xvbmcJCWhuX2NzdW1faXA7Ci0JdV9s b25nCQlobl9jc3VtX3RjcDsKLQl1X2xvbmcJCWhuX2NzdW1fdWRwOwotCXVfbG9uZwkJaG5fY3N1 bV90cnVzdGVkOwotCXVfbG9uZwkJaG5fbHJvX3RyaWVkOwotCXVfbG9uZwkJaG5fc21hbGxfcGt0 czsKIAl1X2xvbmcJCWhuX25vX3R4ZGVzY3M7CiAJdV9sb25nCQlobl9zZW5kX2ZhaWxlZDsKIAl1 X2xvbmcJCWhuX3R4ZG1hX2ZhaWxlZDsKIAl1X2xvbmcJCWhuX3R4X2NvbGxhcHNlZDsKIAl1X2xv bmcJCWhuX3R4X2NoaW1uZXk7CiB9IGhuX3NvZnRjX3Q7CiAKLSNkZWZpbmUgSE5fVFJVU1RfSENT VU1fSVAJMHgwMDAxCi0jZGVmaW5lIEhOX1RSVVNUX0hDU1VNX1RDUAkweDAwMDIKLSNkZWZpbmUg SE5fVFJVU1RfSENTVU1fVURQCTB4MDAwNAotCiAvKgogICogRXh0ZXJucwogICovCgo= --b1_c7fd9e765186f2a1317a0a5c23ff65d7--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c7fd9e765186f2a1317a0a5c23ff65d7>