Date: Thu, 7 Jan 2016 03:10:02 +0000 From: "rpokala (Ravi Pokala)" <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] [Updated, 335 lines] D1986: Teach lagg(4) to change MTU Message-ID: <ae0c3951d155fc575d5ae5a13c002e93@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-i34kfg4qpajia7fo5u5l-req@FreeBSD.org> References: <differential-rev-PHID-DREV-i34kfg4qpajia7fo5u5l-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_ae0c3951d155fc575d5ae5a13c002e93 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit rpokala updated this revision to Diff 11984. rpokala marked 8 inline comments as done. rpokala added a comment. Address review comments from smh@, melifaro@, and hrs@. REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D1986?vs=11321&id=11984 BRANCH /head REVISION DETAIL https://reviews.freebsd.org/D1986 AFFECTED FILES sys/kern/kern_condvar.c sys/net/if_lagg.c sys/net/if_lagg.h sys/sys/condvar.h EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: rpokala, rstone, rpokala-panasas.com Cc: smh, imp, melifaro, hrs, sbruno, lakshmi.n_msystechnologies.com, emaste, ae, freebsd-net-list --b1_ae0c3951d155fc575d5ae5a13c002e93 Content-Type: text/x-patch; charset=utf-8; name="D1986.11984.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D1986.11984.patch" ZGlmZiAtLWdpdCBhL3N5cy9zeXMvY29uZHZhci5oIGIvc3lzL3N5cy9jb25kdmFyLmgKLS0tIGEv c3lzL3N5cy9jb25kdmFyLmgKKysrIGIvc3lzL3N5cy9jb25kdmFyLmgKQEAgLTYxLDYgKzYxLDcg QEAKIAkgICAgc2JpbnRpbWVfdCBzYnQsIHNiaW50aW1lX3QgcHIsIGludCBmbGFncyk7CiAKIHZv aWQJY3Zfc2lnbmFsKHN0cnVjdCBjdiAqY3ZwKTsKK2Jvb2wJY3ZfaGFzX3dhaXRlcnMoc3RydWN0 IGN2ICpjdnApOwogdm9pZAljdl9icm9hZGNhc3Rwcmkoc3RydWN0IGN2ICpjdnAsIGludCBwcmkp OwogCiAjZGVmaW5lCWN2X3dhaXQoY3ZwLCBsb2NrKQkJCQkJCVwKZGlmZiAtLWdpdCBhL3N5cy9u ZXQvaWZfbGFnZy5oIGIvc3lzL25ldC9pZl9sYWdnLmgKLS0tIGEvc3lzL25ldC9pZl9sYWdnLmgK KysrIGIvc3lzL25ldC9pZl9sYWdnLmgKQEAgLTIxLDYgKzIxLDggQEAKICNpZm5kZWYgX05FVF9M QUdHX0gKICNkZWZpbmUgX05FVF9MQUdHX0gKIAorI2luY2x1ZGUgPHN5cy9jb25kdmFyLmg+CisK IC8qCiAgKiBHbG9iYWwgZGVmaW5pdGlvbnMKICAqLwpAQCAtMjA2LDE4ICsyMDgsNTYgQEAKIAlM QUdHX0xMUVRZUEVfVklSVCwJLyogVGFzayByZWxhdGVkIHRvIGxhZ2cgaW50ZXJmYWNlIGl0c2Vs ZiAqLwogfSBsYWdnX2xscXR5cGU7CiAKLS8qIExpc3Qgb2YgaW50ZXJmYWNlcyB0byBoYXZlIHRo ZSBNQUMgYWRkcmVzcyBtb2RpZmllZCAqLwotc3RydWN0IGxhZ2dfbGxxIHsKKy8qIEFkZGluZyBu ZXcgZW50cnkgaGVyZSwgU0hPVUxEIGFsc28gaGF2ZSByZWxldmFudCBlbnRyeSBpbiBsbHFfYWN0 aW9uICovCit0eXBlZGVmIGVudW0geworCUxBR0dfTExRX01JTiA9IDAsCisJTEFHR19MTFFfTExB RERSID0gTEFHR19MTFFfTUlOLCAvKiBNQUMgQWRkcmVzcyBpbmRleCAqLworCUxBR0dfTExRX01U VSwgLyogIE1UVSBpbmRleCAqLworCisJTEFHR19MTFFfTUFYIC8qIFRoaXMgU0hPVUxEIGJlIHRo ZSBsYXN0IGVudHJ5ICovCit9IGxhZ2dfbGxxX2lkeDsKKworLyogQ29tbW9uIGxpc3QgZW50cnkg ZGVmaW5pdGlvbiBmb3IgZWFjaCB0YXNrcSBvcGVyYXRpb24gKi8KK3N0cnVjdCBsYWdnX2xscV9z bGlzdF9lbnRyeSB7CisJU0xJU1RfRU5UUlkobGFnZ19sbHFfc2xpc3RfZW50cnkpCWxscV9lbnRy aWVzOworfTsKKworLyogQ29udGV4dCBmb3IgbGxhZGRyIGxscSBvcGVyYXRpb24gcGFydCBvZiBs YWdnIHNvZnQgY29udGV4dCAqLworc3RydWN0IGxhZ2dfbGxhZGRyX2xscV9jdHh0IHsKKwlzdHJ1 Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkgbGxxX2NtbjsJLyogVGhpcyBTSE9VTEQgYmUgdGhlIGZp cnN0CisJCQkJCQkgICBtZW1iZXIgKi8KIAlzdHJ1Y3QgaWZuZXQJCSpsbHFfaWZwOwogCXVpbnQ4 X3QJCQlsbHFfbGxhZGRyW0VUSEVSX0FERFJfTEVOXTsKIAlsYWdnX2xscXR5cGUJCWxscV90eXBl OwotCVNMSVNUX0VOVFJZKGxhZ2dfbGxxKQlsbHFfZW50cmllczsKK307CisKKy8qIENvbnRleHQg Zm9yIG10dSBsbHEgb3BlcmF0aW9uIHBhcnQgb2YgbGFnZyBzb2Z0IGNvbnRleHQgKi8KK3N0cnVj dCBsYWdnX210dV9sbHFfY3R4dCB7CisJc3RydWN0IGxhZ2dfbGxxX3NsaXN0X2VudHJ5IGxscV9j bW47CS8qIFRoaXMgU0hPVUxEIGJlIHRoZSBmaXJzdAorCQkJCQkJICAgbWVtYmVyICovCisJc3Ry dWN0IGlmbmV0CQkqbGxxX2lmcDsKKwlzdHJ1Y3QgaWZyZXEJCWxscV9pZnI7CisJdWludDMyX3QJ CWxscV9vbGRfbXR1OworCWludAkJCSgqbGxxX2lvY3RsKShzdHJ1Y3QgaWZuZXQgKiwgdV9sb25n LCBjYWRkcl90KTsKIH07CiAKIHN0cnVjdCBsYWdnX2NvdW50ZXJzIHsKIAl1aW50NjRfdAl2YWxb SUZDT1VOVEVSU107CiB9OwogCisvKiBDb25kaXRpb25hbCB2YXJpYWJsZXMgY29udGV4dCBmb3Ig bGFnZyBvcGVyYXRpb25zICovCitzdHJ1Y3QgbGFnZ19zaWduYWwgeworCXN0cnVjdCBtdHgJCWxv Y2s7CisJc3RydWN0IGN2CQljdjsKK307CisKKy8qIExhZ2cgTVRVIGNvbnRleHQgKi8KK3N0cnVj dCBsYWdnX210dV9jdHh0IHsKKwlzdHJ1Y3QgbGFnZ19zaWduYWwJbXR1X3NlcmlhbDsJLyogU2Vy aWFsaXplIGJldHdlZW4gdGhlIGNvbW1hbmRzICovCisJc3RydWN0IGxhZ2dfc2lnbmFsCW10dV9z eW5jOwkvKiBTeW5jaHJvbml6ZSBmb3IgY29tbWFuZCBjb21wbGV0aW9uICovCisJaW50CQkJbXR1 X2NtZF9yZXQ7Cit9OworCiBzdHJ1Y3QgbGFnZ19zb2Z0YyB7CiAJc3RydWN0IGlmbmV0CQkJKnNj X2lmcDsJLyogdmlydHVhbCBpbnRlcmZhY2UgKi8KIAlzdHJ1Y3Qgcm1sb2NrCQkJc2NfbXR4OwpA QCAtMjM1LDkgKzI3NSwxMSBAQAogCVNMSVNUX0hFQUQoX190cGxoZCwgbGFnZ19wb3J0KQlzY19w b3J0czsJLyogbGlzdCBvZiBpbnRlcmZhY2VzICovCiAJU0xJU1RfRU5UUlkobGFnZ19zb2Z0YykJ c2NfZW50cmllczsKIAotCXN0cnVjdCB0YXNrCQkJc2NfbGxhZGRyX3Rhc2s7Ci0JU0xJU1RfSEVB RChfX2xscWhkLCBsYWdnX2xscSkJc2NfbGxxX2hlYWQ7CS8qIGludGVyZmFjZXMgdG8gcHJvZ3Jh bQotCQkJCQkJCSAgIHRoZSBsbGFkZHIgb24gKi8KKwlzdHJ1Y3QgdGFzawkJCXNjX2xscV90YXNr OwkvKiBTWU5DICYgQVNZTkMgb3BzIGVucXVldWVkIGhlcmUgKi8KKwlzdHJ1Y3QgbGFnZ19tdHVf Y3R4dAkJc2NfbXR1X2N0eHQ7CS8qIE1UVSBwcm9ncmFtbWluZyAqLworCS8qICBMaXN0IG9mIExM UXMgKi8KKwlTTElTVF9IRUFEKF9fbGxxaGQsIGxhZ2dfbGxxX3NsaXN0X2VudHJ5KQlzY19sbHFb TEFHR19MTFFfTUFYXTsKKwogCWV2ZW50aGFuZGxlcl90YWcgdmxhbl9hdHRhY2g7CiAJZXZlbnRo YW5kbGVyX3RhZyB2bGFuX2RldGFjaDsKIAlzdHJ1Y3QgY2FsbG91dAkJCXNjX2NhbGxvdXQ7CmRp ZmYgLS1naXQgYS9zeXMvbmV0L2lmX2xhZ2cuYyBiL3N5cy9uZXQvaWZfbGFnZy5jCi0tLSBhL3N5 cy9uZXQvaWZfbGFnZy5jCisrKyBiL3N5cy9uZXQvaWZfbGFnZy5jCkBAIC0xMDEsNyArMTAxLDEx IEBACiBzdGF0aWMgdm9pZAlsYWdnX2xsYWRkcihzdHJ1Y3QgbGFnZ19zb2Z0YyAqLCB1aW50OF90 ICopOwogc3RhdGljIHZvaWQJbGFnZ19jYXBhYmlsaXRpZXMoc3RydWN0IGxhZ2dfc29mdGMgKik7 CiBzdGF0aWMgdm9pZAlsYWdnX3BvcnRfbGxhZGRyKHN0cnVjdCBsYWdnX3BvcnQgKiwgdWludDhf dCAqLCBsYWdnX2xscXR5cGUpOwotc3RhdGljIHZvaWQJbGFnZ19wb3J0X3NldGxsYWRkcih2b2lk ICosIGludCk7CitzdGF0aWMgdm9pZAlsYWdnX3BvcnRfb3BzKHZvaWQgKiwgaW50KTsKK3N0YXRp YyB2b2lkCWxhZ2dfbGxxX2FjdGlvbl9tdHUoc3RydWN0IGxhZ2dfc29mdGMgKiwKKwkJc3RydWN0 IGxhZ2dfbGxxX3NsaXN0X2VudHJ5ICopOworc3RhdGljIHZvaWQJbGFnZ19sbHFfYWN0aW9uX2xs YWRkcihzdHJ1Y3QgbGFnZ19zb2Z0YyAqLAorCQlzdHJ1Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkg Kik7CiBzdGF0aWMgaW50CWxhZ2dfcG9ydF9jcmVhdGUoc3RydWN0IGxhZ2dfc29mdGMgKiwgc3Ry dWN0IGlmbmV0ICopOwogc3RhdGljIGludAlsYWdnX3BvcnRfZGVzdHJveShzdHJ1Y3QgbGFnZ19w b3J0ICosIGludCk7CiBzdGF0aWMgc3RydWN0IG1idWYgKmxhZ2dfaW5wdXQoc3RydWN0IGlmbmV0 ICosIHN0cnVjdCBtYnVmICopOwpAQCAtMTMwLDYgKzEzNCw5IEBACiBzdGF0aWMgdm9pZAlsYWdn X21lZGlhX3N0YXR1cyhzdHJ1Y3QgaWZuZXQgKiwgc3RydWN0IGlmbWVkaWFyZXEgKik7CiBzdGF0 aWMgc3RydWN0IGxhZ2dfcG9ydCAqbGFnZ19saW5rX2FjdGl2ZShzdHJ1Y3QgbGFnZ19zb2Z0YyAq LAogCSAgICBzdHJ1Y3QgbGFnZ19wb3J0ICopOworc3RhdGljIGludAlsYWdnX2NoYW5nZV9tdHUo c3RydWN0IGlmbmV0ICosIHN0cnVjdCBpZnJlcSAqKTsKK3N0YXRpYyB2b2lkCV9sYWdnX2xscV9j bGVhbnVwKHN0cnVjdCBsYWdnX2xscV9zbGlzdF9lbnRyeSAqKTsKK3N0YXRpYyB2b2lkCWxhZ2df bGxxX2NsZWFudXAoc3RydWN0IGxhZ2dfc29mdGMgKiwgbGFnZ19sbHFfaWR4KTsKIAogLyogU2lt cGxlIHJvdW5kIHJvYmluICovCiBzdGF0aWMgdm9pZAlsYWdnX3JyX2F0dGFjaChzdHJ1Y3QgbGFn Z19zb2Z0YyAqKTsKQEAgLTE2NSw2ICsxNzIsMjQgQEAKIAkJICAgIHN0cnVjdCBtYnVmICopOwog c3RhdGljIHZvaWQJbGFnZ19sYWNwX2xsYWRkcihzdHJ1Y3QgbGFnZ19zb2Z0YyAqKTsKIAorLyoK KyAqIFRoaXMgYWN0aW9uIGhhbmRsZXIgc2hhbGwgYmUgY2FsbGVkIGZyb20gdGFza3F1ZXVlIGhh bmRsZXIgZm9yIGVhY2gKKyAqIHN1Ym1pdHRlZCBvcGVyYXRpb24KKyAqLwordHlwZWRlZiB2b2lk ICgqbGFnZ19sbHFfYWN0aW9uKShzdHJ1Y3QgbGFnZ19zb2Z0YyAqLAorCQlzdHJ1Y3QgbGFnZ19s bHFfc2xpc3RfZW50cnkgKik7CisKKy8qCisgKiBsYWdnIGxscSBhY3Rpb24gVGFibGU6IENhbGxl ZCBhdCB0aGUgdGFza3F1ZXVlIGNvbnRleHQgZm9yIGVhY2gKKyAqIHN1Ym1pdHRlZCBvcGVyYXRp b25zLgorICogQ29udGVudHMgU0hPVUxEIGJlIGluIHN5bmMgd2l0aCBsYWdnX2xscV9pZHggaW5k ZXguCisgKiBOZXcgZW50cmllcyBzaGFsbCBiZSBhcHBlbmRlZC4KKyAqLworc3RhdGljIGNvbnN0 IGxhZ2dfbGxxX2FjdGlvbiBsbHFfYWN0aW9uW0xBR0dfTExRX01BWF0gPSB7CisJCWxhZ2dfbGxx X2FjdGlvbl9sbGFkZHIsIC8qIE1hcHMgdG8gTEFHR19MTFFfTExBRERSIGluZGV4ICovCisJCWxh Z2dfbGxxX2FjdGlvbl9tdHUsIC8qIE1hcHMgdG8gTEFHR19MTFFfTVRVIGluZGV4ICovCit9Owor CiAvKiBsYWdnIHByb3RvY29sIHRhYmxlICovCiBzdGF0aWMgY29uc3Qgc3RydWN0IGxhZ2dfcHJv dG8gewogCWxhZ2dfcHJvdG8JcHJfbnVtOwpAQCAtNDg3LDcgKzUxMiw3IEBACiAKIAlMQUdHX0xP Q0tfSU5JVChzYyk7CiAJU0xJU1RfSU5JVCgmc2MtPnNjX3BvcnRzKTsKLQlUQVNLX0lOSVQoJnNj LT5zY19sbGFkZHJfdGFzaywgMCwgbGFnZ19wb3J0X3NldGxsYWRkciwgc2MpOworCVRBU0tfSU5J VCgmc2MtPnNjX2xscV90YXNrLCAwLCBsYWdnX3BvcnRfb3BzLCBzYyk7CiAKIAkvKiBJbml0aWFs aXNlIHBzZXVkbyBtZWRpYSB0eXBlcyAqLwogCWlmbWVkaWFfaW5pdCgmc2MtPnNjX21lZGlhLCAw LCBsYWdnX21lZGlhX2NoYW5nZSwKQEAgLTUwNSw2ICs1MzAsMTMgQEAKIAlpZnAtPmlmX2ZsYWdz ID0gSUZGX1NJTVBMRVggfCBJRkZfQlJPQURDQVNUIHwgSUZGX01VTFRJQ0FTVDsKIAlpZnAtPmlm X2NhcGVuYWJsZSA9IGlmcC0+aWZfY2FwYWJpbGl0aWVzID0gSUZDQVBfSFdTVEFUUzsKIAorCW10 eF9pbml0KCZzYy0+c2NfbXR1X2N0eHQubXR1X3N5bmMubG9jaywgaWZwLT5pZl94bmFtZSwKKwkg ICAgIm10dV9zeW5jX2xvY2siLCBNVFhfREVGKTsKKwltdHhfaW5pdCgmc2MtPnNjX210dV9jdHh0 Lm10dV9zZXJpYWwubG9jaywgaWZwLT5pZl94bmFtZSwKKwkgICAgIm10dV9zZXJpYWxfbG9jayIs IE1UWF9ERUYpOworCWN2X2luaXQoJnNjLT5zY19tdHVfY3R4dC5tdHVfc3luYy5jdiwgIm10dV9z eW5jX2N2Iik7CisJY3ZfaW5pdCgmc2MtPnNjX210dV9jdHh0Lm10dV9zZXJpYWwuY3YsICJtdHVf c2VyaWFsX2N2Iik7CisKIAkvKgogCSAqIEF0dGFjaCBhcyBhbiBvcmRpbmFyeSBldGhlcm5ldCBk ZXZpY2UsIGNoaWxkcmVuIHdpbGwgYmUgYXR0YWNoZWQKIAkgKiBhcyBzcGVjaWFsIGRldmljZSBJ RlRfSUVFRTgwMjNBRExBRy4KQEAgLTU1Myw3ICs1ODUsMTEgQEAKIAlTTElTVF9SRU1PVkUoJlZf bGFnZ19saXN0LCBzYywgbGFnZ19zb2Z0Yywgc2NfZW50cmllcyk7CiAJTEFHR19MSVNUX1VOTE9D SygpOwogCi0JdGFza3F1ZXVlX2RyYWluKHRhc2txdWV1ZV9zd2ksICZzYy0+c2NfbGxhZGRyX3Rh c2spOworCXRhc2txdWV1ZV9kcmFpbih0YXNrcXVldWVfc3dpLCAmc2MtPnNjX2xscV90YXNrKTsK Kwljdl9kZXN0cm95KCZzYy0+c2NfbXR1X2N0eHQubXR1X3N5bmMuY3YpOworCWN2X2Rlc3Ryb3ko JnNjLT5zY19tdHVfY3R4dC5tdHVfc2VyaWFsLmN2KTsKKwltdHhfZGVzdHJveSgmc2MtPnNjX210 dV9jdHh0Lm10dV9zeW5jLmxvY2spOworCW10eF9kZXN0cm95KCZzYy0+c2NfbXR1X2N0eHQubXR1 X3NlcmlhbC5sb2NrKTsKIAlMQUdHX0xPQ0tfREVTVFJPWShzYyk7CiAJZnJlZShzYywgTV9ERVZC VUYpOwogfQpAQCAtNjQ1LDcgKzY4MSw4IEBACiB7CiAJc3RydWN0IGxhZ2dfc29mdGMgKnNjID0g bHAtPmxwX3NvZnRjOwogCXN0cnVjdCBpZm5ldCAqaWZwID0gbHAtPmxwX2lmcDsKLQlzdHJ1Y3Qg bGFnZ19sbHEgKmxscTsKKwlzdHJ1Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkgKmNtbl9sbHE7CisJ c3RydWN0IGxhZ2dfbGxhZGRyX2xscV9jdHh0ICpsbHFfY3R4dDsKIAogCUxBR0dfV0xPQ0tfQVNT RVJUKHNjKTsKIApAQCAtNjU4LDYyICs2OTUsMjIyIEBACiAJCXJldHVybjsKIAogCS8qIENoZWNr IHRvIG1ha2Ugc3VyZSBpdHMgbm90IGFscmVhZHkgcXVldWVkIHRvIGJlIGNoYW5nZWQgKi8KLQlT TElTVF9GT1JFQUNIKGxscSwgJnNjLT5zY19sbHFfaGVhZCwgbGxxX2VudHJpZXMpIHsKLQkJaWYg KGxscS0+bGxxX2lmcCA9PSBpZnApIHsKKwlTTElTVF9GT1JFQUNIKGNtbl9sbHEsICZzYy0+c2Nf bGxxW0xBR0dfTExRX0xMQUREUl0sIGxscV9lbnRyaWVzKSB7CisJCWxscV9jdHh0ID0gKHN0cnVj dCBsYWdnX2xsYWRkcl9sbHFfY3R4dCAqKWNtbl9sbHE7CisJCWlmIChsbHFfY3R4dC0+bGxxX2lm cCA9PSBpZnApIHsKIAkJCS8qIFVwZGF0ZSBsbGFkZHIsIGl0IG1heSBoYXZlIGNoYW5nZWQgKi8K LQkJCWJjb3B5KGxsYWRkciwgbGxxLT5sbHFfbGxhZGRyLCBFVEhFUl9BRERSX0xFTik7CisJCQli Y29weShsbGFkZHIsIGxscV9jdHh0LT5sbHFfbGxhZGRyLCBFVEhFUl9BRERSX0xFTik7CiAJCQly ZXR1cm47CiAJCX0KIAl9CiAKLQlsbHEgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBsYWdnX2xscSks IE1fREVWQlVGLCBNX05PV0FJVCB8IE1fWkVSTyk7Ci0JaWYgKGxscSA9PSBOVUxMKQkvKiBYWFgg d2hhdCB0byBkbyAqLworCWxscV9jdHh0ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGFnZ19sbGFk ZHJfbGxxX2N0eHQpLCBNX0RFVkJVRiwKKwkgICAgTV9OT1dBSVQgfCBNX1pFUk8pOworCWlmIChs bHFfY3R4dCA9PSBOVUxMKQkvKiBYWFggd2hhdCB0byBkbyAqLwogCQlyZXR1cm47CiAKLQlsbHEt PmxscV9pZnAgPSBpZnA7Ci0JbGxxLT5sbHFfdHlwZSA9IGxscV90eXBlOwotCWJjb3B5KGxsYWRk ciwgbGxxLT5sbHFfbGxhZGRyLCBFVEhFUl9BRERSX0xFTik7CisJbGxxX2N0eHQtPmxscV9pZnAg PSBpZnA7CisJbGxxX2N0eHQtPmxscV90eXBlID0gbGxxX3R5cGU7CisJYmNvcHkobGxhZGRyLCBs bHFfY3R4dC0+bGxxX2xsYWRkciwgRVRIRVJfQUREUl9MRU4pOwogCS8qIFhYWDogV2Ugc2hvdWxk IGluc2VydCB0byB0YWlsICovCi0JU0xJU1RfSU5TRVJUX0hFQUQoJnNjLT5zY19sbHFfaGVhZCwg bGxxLCBsbHFfZW50cmllcyk7CisJU0xJU1RfSU5TRVJUX0hFQUQoJnNjLT5zY19sbHFbTEFHR19M TFFfTExBRERSXSwKKwkgICAgKHN0cnVjdCBsYWdnX2xscV9zbGlzdF9lbnRyeSAqKWxscV9jdHh0 LCBsbHFfZW50cmllcyk7CiAKLQl0YXNrcXVldWVfZW5xdWV1ZSh0YXNrcXVldWVfc3dpLCAmc2Mt PnNjX2xsYWRkcl90YXNrKTsKKwl0YXNrcXVldWVfZW5xdWV1ZSh0YXNrcXVldWVfc3dpLCAmc2Mt PnNjX2xscV90YXNrKTsKIH0KIAogLyoKLSAqIFNldCB0aGUgaW50ZXJmYWNlIE1BQyBhZGRyZXNz IGZyb20gYSB0YXNrcXVldWUgdG8gYXZvaWQgYSBMT1IuCisgKiBTZXQgdGhlIGludGVyZmFjZSBN VFUsIE1BQyBhZGRyZXNzIGZyb20gYSB0YXNrcXVldWUgdG8gYXZvaWQgYSBMT1IuCiAgKgogICog U2V0IG5vaW5saW5lIHRvIGJlIGR0cmFjZS1mcmllbmRseQogICovCiBzdGF0aWMgX19ub2lubGlu ZSB2b2lkCi1sYWdnX3BvcnRfc2V0bGxhZGRyKHZvaWQgKmFyZywgaW50IHBlbmRpbmcpCitsYWdn X3BvcnRfb3BzKHZvaWQgKmFyZywgaW50IHBlbmRpbmcpCiB7CiAJc3RydWN0IGxhZ2dfc29mdGMg KnNjID0gKHN0cnVjdCBsYWdnX3NvZnRjICopYXJnOwotCXN0cnVjdCBsYWdnX2xscSAqbGxxLCAq aGVhZDsKLQlzdHJ1Y3QgaWZuZXQgKmlmcDsKKwlzdHJ1Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkg KmxscV9maXJzdDsKKwlsYWdnX2xscV9pZHggbGxxX2lkeDsKKworCWZvciAobGxxX2lkeCA9IExB R0dfTExRX01JTjsgbGxxX2lkeCA8IExBR0dfTExRX01BWDsgbGxxX2lkeCsrKSB7CisJCUxBR0df V0xPQ0soc2MpOworCQlsbHFfZmlyc3QgPSBTTElTVF9GSVJTVCgmc2MtPnNjX2xscVtsbHFfaWR4 XSk7CisJCVNMSVNUX0lOSVQoJnNjLT5zY19sbHFbbGxxX2lkeF0pOworCQlMQUdHX1dVTkxPQ0so c2MpOworCisJCWlmIChsbHFfZmlyc3QgIT0gTlVMTCkKKwkJCWxscV9hY3Rpb25bbGxxX2lkeF0o c2MsIGxscV9maXJzdCk7CisJfQorfQogCi0JLyogR3JhYiBhIGxvY2FsIHJlZmVyZW5jZSBvZiB0 aGUgcXVldWUgYW5kIHJlbW92ZSBpdCBmcm9tIHRoZSBzb2Z0YyAqLworc3RhdGljIHZvaWQKK2xh Z2dfbGxxX2FjdGlvbl9tdHUoc3RydWN0IGxhZ2dfc29mdGMgKnNjLCBzdHJ1Y3QgbGFnZ19sbHFf c2xpc3RfZW50cnkgKmZpcnN0KQoreworCXN0cnVjdCBsYWdnX2xscV9zbGlzdF9lbnRyeSAqbGxx OworCWludCBlcnI7CisKKwkvKiBTZXQgdGhlIG5ldyBNVFUgb24gdGhlIGxhZ2cgaW50ZXJmYWNl ICovCiAJTEFHR19XTE9DSyhzYyk7Ci0JaGVhZCA9IFNMSVNUX0ZJUlNUKCZzYy0+c2NfbGxxX2hl YWQpOwotCVNMSVNUX0ZJUlNUKCZzYy0+c2NfbGxxX2hlYWQpID0gTlVMTDsKKwlzYy0+c2NfaWZw LT5pZl9tdHUgPSAoKHN0cnVjdCBsYWdnX210dV9sbHFfY3R4dCAqKWZpcnN0KS0+bGxxX2lmci5p ZnJfbXR1OwogCUxBR0dfV1VOTE9DSyhzYyk7CiAKIAkvKgorCSAqIFRyYXZlcnNlIHRoZSBxdWV1 ZSBhbmQgc2V0IHRoZSBtdHUgb24gZWFjaCBpZnAuIEl0IGlzIHNhZmUgdG8gZG8KKwkgKiB1bmxv Y2tlZCBhcyB3ZSBoYXZlIHRoZSBvbmx5IHJlZmVyZW5jZSB0byBpdC4KKwkgKi8KKwlsbHEgPSBm aXJzdDsKKwlTTElTVF9GT1JFQUNIX0ZST00obGxxLCAoc3RydWN0IF9fbGxxaGQgKilOVUxMLCBs bHFfZW50cmllcykgeworCQlzdHJ1Y3QgbGFnZ19tdHVfbGxxX2N0eHQgKmxscV9jdHh0OworCQls bHFfY3R4dCA9IChzdHJ1Y3QgbGFnZ19tdHVfbGxxX2N0eHQgKilsbHE7CisJCS8qIFNldCB0aGUg bmV3IE1UVSBvbiB0aGUgcGh5c2ljYWwgaW50ZXJmYWNlICovCisJCWVyciA9ICgqbGxxX2N0eHQt PmxscV9pb2N0bCkobGxxX2N0eHQtPmxscV9pZnAsIFNJT0NTSUZNVFUsCisJCSAgICAoY2FkZHJf dCkmbGxxX2N0eHQtPmxscV9pZnIpOworCQlpZiAoZXJyKSB7CisJCQlpZl9wcmludGYobGxxX2N0 eHQtPmxscV9pZnAsCisJCQkgICAgIkZhaWxlZCB0byBjaGFuZ2UgTVRVIGZyb20gJWQgdG8gJWQg KGVyciAlZClcbiIsCisJCQkgICAgbGxxX2N0eHQtPmxscV9vbGRfbXR1LCBsbHFfY3R4dC0+bGxx X2lmci5pZnJfbXR1LCBlcnIpOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoZXJyKSB7CisJ CS8qIFJlc3RvcmUgdGhlIG9sZCBNVFUgb24gdGhlIGxhZ2cgaW50ZXJmYWNlICovCisJCUxBR0df V0xPQ0soc2MpOworCQlzYy0+c2NfaWZwLT5pZl9tdHUgPSAoKHN0cnVjdCBsYWdnX210dV9sbHFf Y3R4dCAqKWZpcnN0KS0+bGxxX29sZF9tdHU7CisJCUxBR0dfV1VOTE9DSyhzYyk7CisKKwkJLyog UmVzdG9yZSB0aGUgb2xkIE1UVSBvbiB0aGUgcGh5c2ljYWwgaW50ZXJmYWNlICovCisJCWxscSA9 IGZpcnN0OworCQlTTElTVF9GT1JFQUNIX0ZST00obGxxLCAoc3RydWN0IF9fbGxxaGQgKilOVUxM LCBsbHFfZW50cmllcykgeworCQkJc3RydWN0IGxhZ2dfbXR1X2xscV9jdHh0ICpsbHFfY3R4dDsK KwkJCWxscV9jdHh0ID0gKHN0cnVjdCBsYWdnX210dV9sbHFfY3R4dCAqKWxscTsKKwkJCWxscV9j dHh0LT5sbHFfaWZyLmlmcl9tdHUgPSBsbHFfY3R4dC0+bGxxX29sZF9tdHU7CisJCQllcnIgPSAo KmxscV9jdHh0LT5sbHFfaW9jdGwpCisJCQkgICAgKGxscV9jdHh0LT5sbHFfaWZwLCBTSU9DU0lG TVRVLCAoY2FkZHJfdCkmbGxxX2N0eHQtPmxscV9pZnIpOworCQkJaWYgKGVycikgeworCQkJCWlm X3ByaW50ZihsbHFfY3R4dC0+bGxxX2lmcCwKKwkJCQkgICAgIkZhaWxlZCB0byByZXN0b3JlIE1U VSB0byAlZCAoZXJyICVkKVxuIiwKKwkJCQkgICAgbGxxX2N0eHQtPmxscV9vbGRfbXR1LCBlcnIp OworCQkJfQorCQl9CisJfQorCisJLyogRnJlZSB0aGUgTVRVIExMUSBlbnRyaWVzICovCisJX2xh Z2dfbGxxX2NsZWFudXAoZmlyc3QpOworCisJbXR4X2xvY2soJnNjLT5zY19tdHVfY3R4dC5tdHVf c3luYy5sb2NrKTsKKwlzYy0+c2NfbXR1X2N0eHQubXR1X2NtZF9yZXQgPSBlcnI7CisJLyogU2ln bmFsIGZvciBjb21tYW5kIGNvbXBsZXRpb24gKi8KKwljdl9zaWduYWwoJnNjLT5zY19tdHVfY3R4 dC5tdHVfc3luYy5jdik7CisJbXR4X3VubG9jaygmc2MtPnNjX210dV9jdHh0Lm10dV9zeW5jLmxv Y2spOworfQorCitzdGF0aWMgdm9pZCBfbGFnZ19sbHFfY2xlYW51cChzdHJ1Y3QgbGFnZ19sbHFf c2xpc3RfZW50cnkgKmxscSkKK3sKKwlzdHJ1Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkgKnRtcF9s bHE7CisKKwlTTElTVF9GT1JFQUNIX0ZST01fU0FGRShsbHEsIChzdHJ1Y3QgX19sbHFoZCAqKU5V TEwsIGxscV9lbnRyaWVzLAorCSAgICB0bXBfbGxxKSB7CisJCWZyZWUobGxxLCBNX0RFVkJVRik7 CisJfQorfQorCitzdGF0aWMgdm9pZCBsYWdnX2xscV9jbGVhbnVwKHN0cnVjdCBsYWdnX3NvZnRj ICpzYywgbGFnZ19sbHFfaWR4IGlkeCkKK3sKKwlzdHJ1Y3QgbGFnZ19sbHFfc2xpc3RfZW50cnkg KmxscTsKKworCUxBR0dfV0xPQ0tfQVNTRVJUKHNjKTsKKworCWxscSA9IFNMSVNUX0ZJUlNUKCZz Yy0+c2NfbGxxW2lkeF0pOworCVNMSVNUX0lOSVQoJnNjLT5zY19sbHFbaWR4XSk7CisKKwlfbGFn Z19sbHFfY2xlYW51cChsbHEpOworfQorCitzdGF0aWMgaW50CitsYWdnX2NoYW5nZV9tdHUoc3Ry dWN0IGlmbmV0ICppZnAsIHN0cnVjdCBpZnJlcSAqaWZyKQoreworCXN0cnVjdCBsYWdnX3NvZnRj ICpzYzsKKwlzdHJ1Y3QgbGFnZ19wb3J0ICpscDsKKwlzdHJ1Y3QgbGFnZ19tdHVfbGxxX2N0eHQg KmxscV9jdHh0OworCWludCByZXQ7CisKKwlzYyA9IChzdHJ1Y3QgbGFnZ19zb2Z0YyAqKWlmcC0+ aWZfc29mdGM7CisKKwltdHhfbG9jaygmc2MtPnNjX210dV9jdHh0Lm10dV9zZXJpYWwubG9jayk7 CisJaWYgKGN2X2hhc193YWl0ZXJzKCZzYy0+c2NfbXR1X2N0eHQubXR1X3NlcmlhbC5jdikgPT0g VFJVRSkgeworCQkvKiBTZXJpYWxpemUgdGhlIGNvbW1hbmQgKi8KKwkJY3Zfd2FpdCgmc2MtPnNj X210dV9jdHh0Lm10dV9zZXJpYWwuY3YsCisJCSAgICAmc2MtPnNjX210dV9jdHh0Lm10dV9zZXJp YWwubG9jayk7CisJfQorCW10eF91bmxvY2soJnNjLT5zY19tdHVfY3R4dC5tdHVfc2VyaWFsLmxv Y2spOworCisJLyogTm8gY2hhbmdlIGluIE1UVSAqLworCWlmIChpZnAtPmlmX210dSA9PSBpZnIt Pmlmcl9tdHUpIHsKKwkJcmV0ID0gMDsKKwkJZ290byBvdXQ7CisJfQorCisJTEFHR19XTE9DSyhz Yyk7CisJLyogQWxsIGxhZ2cgcG9ydHMgKE1UVSBjaGFuZ2UpIHNoYWxsIGJlIHF1ZXVlZCBhdG9t aWMgKi8KKwlTTElTVF9GT1JFQUNIKGxwLCAmc2MtPnNjX3BvcnRzLCBscF9lbnRyaWVzKSB7CisJ CWxscV9jdHh0ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgbGFnZ19tdHVfbGxxX2N0eHQpLCBNX0RF VkJVRiwKKwkJICAgIE1fTk9XQUlUKTsKKwkJaWYgKGxscV9jdHh0ID09IE5VTEwpIHsKKwkJCWxh Z2dfbGxxX2NsZWFudXAoc2MsIExBR0dfTExRX01UVSk7CisJCQlMQUdHX1dVTkxPQ0soc2MpOwor CQkJcmV0ID0gRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKwkJU0xJU1RfSU5TRVJUX0hFQUQo JnNjLT5zY19sbHFbTEFHR19MTFFfTVRVXSwKKwkJICAgIChzdHJ1Y3QgbGFnZ19sbHFfc2xpc3Rf ZW50cnkgKilsbHFfY3R4dCwgbGxxX2VudHJpZXMpOworCisJCWJjb3B5KGlmciwgJmxscV9jdHh0 LT5sbHFfaWZyLCBzaXplb2Yoc3RydWN0IGlmcmVxKSk7CisJCWxscV9jdHh0LT5sbHFfb2xkX210 dSA9IGlmcC0+aWZfbXR1OworCQlsbHFfY3R4dC0+bGxxX2lmcCA9IGxwLT5scF9pZnA7CisJCWxs cV9jdHh0LT5sbHFfaW9jdGwgPSBscC0+bHBfaW9jdGw7CisJfQorCW10eF9sb2NrKCZzYy0+c2Nf bXR1X2N0eHQubXR1X3N5bmMubG9jayk7CisJdGFza3F1ZXVlX2VucXVldWUodGFza3F1ZXVlX3N3 aSwgJnNjLT5zY19sbHFfdGFzayk7CisJTEFHR19XVU5MT0NLKHNjKTsKKworCS8qIFdhaXQgZm9y IHRoZSBjb21tYW5kIGNvbXBsZXRpb24gKi8KKwljdl93YWl0KCZzYy0+c2NfbXR1X2N0eHQubXR1 X3N5bmMuY3YsICZzYy0+c2NfbXR1X2N0eHQubXR1X3N5bmMubG9jayk7CisJcmV0ID0gc2MtPnNj X210dV9jdHh0Lm10dV9jbWRfcmV0OworCW10eF91bmxvY2soJnNjLT5zY19tdHVfY3R4dC5tdHVf c3luYy5sb2NrKTsKKworb3V0OgorCW10eF9sb2NrKCZzYy0+c2NfbXR1X2N0eHQubXR1X3Nlcmlh bC5sb2NrKTsKKwkvKiBTaWduYWwgdG8gcHJvY2VzcyB0aGUgbmV4dCBjb21tYW5kICovCisJY3Zf c2lnbmFsKCZzYy0+c2NfbXR1X2N0eHQubXR1X3NlcmlhbC5jdik7CisJbXR4X3VubG9jaygmc2Mt PnNjX210dV9jdHh0Lm10dV9zZXJpYWwubG9jayk7CisKKwlyZXR1cm4gKHJldCk7Cit9CisKK3N0 YXRpYyB2b2lkCitsYWdnX2xscV9hY3Rpb25fbGxhZGRyKHN0cnVjdCBsYWdnX3NvZnRjICpzYywg c3RydWN0IGxhZ2dfbGxxX3NsaXN0X2VudHJ5ICpoZWFkKQoreworCXN0cnVjdCBsYWdnX2xsYWRk cl9sbHFfY3R4dCAqbGxxX2N0eHQ7CisJc3RydWN0IGxhZ2dfbGxxX3NsaXN0X2VudHJ5ICpsbHE7 CisJc3RydWN0IGlmbmV0ICppZnA7CisKKwkvKgogCSAqIFRyYXZlcnNlIHRoZSBxdWV1ZSBhbmQg c2V0IHRoZSBsbGFkZHIgb24gZWFjaCBpZnAuIEl0IGlzIHNhZmUgdG8gZG8KIAkgKiB1bmxvY2tl ZCBhcyB3ZSBoYXZlIHRoZSBvbmx5IHJlZmVyZW5jZSB0byBpdC4KIAkgKi8KIAlmb3IgKGxscSA9 IGhlYWQ7IGxscSAhPSBOVUxMOyBsbHEgPSBoZWFkKSB7Ci0JCWlmcCA9IGxscS0+bGxxX2lmcDsK KwkJbGxxX2N0eHQgPSAoc3RydWN0IGxhZ2dfbGxhZGRyX2xscV9jdHh0ICopbGxxOworCQlpZnAg PSBsbHFfY3R4dC0+bGxxX2lmcDsKIAogCQlDVVJWTkVUX1NFVChpZnAtPmlmX3ZuZXQpOwogCiAJ CS8qCiAJCSAqIFNldCB0aGUgbGluayBsYXllciBhZGRyZXNzIG9uIHRoZSBsYWdncG9ydCBpbnRl cmZhY2UuCiAJCSAqIE5vdGUgdGhhdCBpZl9zZXRsbGFkZHIoKSBvciBpZmxsYWRkcl9ldmVudCBo YW5kbGVyCiAJCSAqIG1heSByZXN1bHQgaW4gYXJwIHRyYW5zbWlzc2lvbiAvIGxsdGFibGUgdXBk YXRlcy4KIAkJICovCi0JCWlmIChsbHEtPmxscV90eXBlID09IExBR0dfTExRVFlQRV9QSFlTKQot CQkJaWZfc2V0bGxhZGRyKGlmcCwgbGxxLT5sbHFfbGxhZGRyLAotCQkJICAgIEVUSEVSX0FERFJf TEVOKTsKKwkJaWYgKGxscV9jdHh0LT5sbHFfdHlwZSA9PSBMQUdHX0xMUVRZUEVfUEhZUykKKwkJ CWlmX3NldGxsYWRkcihpZnAsIGxscV9jdHh0LT5sbHFfbGxhZGRyLCBFVEhFUl9BRERSX0xFTik7 CiAJCWVsc2UKIAkJCUVWRU5USEFORExFUl9JTlZPS0UoaWZsbGFkZHJfZXZlbnQsIGlmcCk7CiAJ CUNVUlZORVRfUkVTVE9SRSgpOwpAQCAtODc3LDcgKzEwNzQsOCBAQAogewogCXN0cnVjdCBsYWdn X3NvZnRjICpzYyA9IGxwLT5scF9zb2Z0YzsKIAlzdHJ1Y3QgbGFnZ19wb3J0ICpscF9wdHIsICps cDA7Ci0Jc3RydWN0IGxhZ2dfbGxxICpsbHE7CisJc3RydWN0IGxhZ2dfbGxxX3NsaXN0X2VudHJ5 ICpjbW5fbGxxOworCXN0cnVjdCBsYWdnX2xsYWRkcl9sbHFfY3R4dCAqbGxxX2N0eHQ7CiAJc3Ry dWN0IGlmbmV0ICppZnAgPSBscC0+bHBfaWZwOwogCXVpbnQ2NF90ICpwdmFsLCB2ZGlmZjsKIAlp bnQgaTsKQEAgLTk0MCwxMSArMTEzOCwxMiBAQAogCiAJLyogUmVtb3ZlIGFueSBwZW5kaW5nIGxs YWRkciBjaGFuZ2VzIGZyb20gdGhlIHF1ZXVlICovCiAJaWYgKGxwLT5scF9kZXRhY2hpbmcpIHsK LQkJU0xJU1RfRk9SRUFDSChsbHEsICZzYy0+c2NfbGxxX2hlYWQsIGxscV9lbnRyaWVzKSB7Ci0J CQlpZiAobGxxLT5sbHFfaWZwID09IGlmcCkgewotCQkJCVNMSVNUX1JFTU9WRSgmc2MtPnNjX2xs cV9oZWFkLCBsbHEsIGxhZ2dfbGxxLAotCQkJCSAgICBsbHFfZW50cmllcyk7Ci0JCQkJZnJlZShs bHEsIE1fREVWQlVGKTsKKwkJU0xJU1RfRk9SRUFDSChjbW5fbGxxLCAmc2MtPnNjX2xscVtMQUdH X0xMUV9MTEFERFJdLCBsbHFfZW50cmllcykgeworCQkJbGxxX2N0eHQgPSAoc3RydWN0IGxhZ2df bGxhZGRyX2xscV9jdHh0ICopY21uX2xscTsKKwkJCWlmIChsbHFfY3R4dC0+bGxxX2lmcCA9PSBp ZnApIHsKKwkJCQlTTElTVF9SRU1PVkUoJnNjLT5zY19sbHFbTEFHR19MTFFfTExBRERSXSwgY21u X2xscSwKKwkJCQkgICAgbGFnZ19sbHFfc2xpc3RfZW50cnksIGxscV9lbnRyaWVzKTsKKwkJCQlm cmVlKGNtbl9sbHEsIE1fREVWQlVGKTsKIAkJCQlicmVhazsJLyogT25seSBhcHBlYXJzIG9uY2Ug Ki8KIAkJCX0KIAkJfQpAQCAtMTUyOSwxMCArMTcyOCwxMiBAQAogCQlicmVhazsKIAogCWNhc2Ug U0lPQ1NJRkNBUDoKLQljYXNlIFNJT0NTSUZNVFU6Ci0JCS8qIERvIG5vdCBhbGxvdyB0aGUgTVRV IG9yIGNhcHMgdG8gYmUgZGlyZWN0bHkgY2hhbmdlZCAqLworCQkvKiBEbyBub3QgYWxsb3cgdGhl IENBUHMgdG8gYmUgZGlyZWN0bHkgY2hhbmdlZC4gKi8KIAkJZXJyb3IgPSBFSU5WQUw7CiAJCWJy ZWFrOworCWNhc2UgU0lPQ1NJRk1UVToKKwkJZXJyb3IgPSBsYWdnX2NoYW5nZV9tdHUoaWZwLCBp ZnIpOworCQlicmVhazsKIAogCWRlZmF1bHQ6CiAJCWVycm9yID0gZXRoZXJfaW9jdGwoaWZwLCBj bWQsIGRhdGEpOwpkaWZmIC0tZ2l0IGEvc3lzL2tlcm4va2Vybl9jb25kdmFyLmMgYi9zeXMva2Vy bi9rZXJuX2NvbmR2YXIuYwotLS0gYS9zeXMva2Vybi9rZXJuX2NvbmR2YXIuYworKysgYi9zeXMv a2Vybi9rZXJuX2NvbmR2YXIuYwpAQCAtNDU1LDMgKzQ1NSwxNiBAQAogCWlmICh3YWtldXBfc3dh cHBlcikKIAkJa2lja19wcm9jMCgpOwogfQorCisvKgorICogUmV0dXJuIHRydWUgaWYgb25lIG9y IG1vcmUgTFdQcyBhcmUgd2FpdGluZyBvbiB0aGUgc3BlY2lmaWVkCisgKiBjb25kaXRpb24gdmFy aWFibGUuCisgKi8KK2Jvb2wKK2N2X2hhc193YWl0ZXJzKHN0cnVjdCBjdiAqY3ZwKQoreworCWlm IChjdnAtPmN2X3dhaXRlcnMgPiAwKQorCQlyZXR1cm4gKFRSVUUpOworCWVsc2UKKwkJcmV0dXJu IChGQUxTRSk7Cit9Cgo= --b1_ae0c3951d155fc575d5ae5a13c002e93--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ae0c3951d155fc575d5ae5a13c002e93>