Date: Tue, 10 Apr 2012 19:53:27 -0700 From: Adrian Chadd <adrian@freebsd.org> To: freebsd-wireless@freebsd.org Subject: [RFC] net80211/ath/iwn: move ni_tx_ampdu to be per-tid, rather than per WME AC Message-ID: <CAJ-Vmomx7VkfMgb-muZonehcW4ChGidjVTLKC=0oNxuyj5NSZA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--047d7b2e4820fdad7f04bd5e57a6 Content-Type: text/plain; charset=ISO-8859-1 Hi, This patch changes ni_tx_ampdu to be per-TID rather than per-AC. It includes: * changes to net80211 to use the QoS frame TID, rather than calculating it from the AC (which may have been calculated from the TID in the first place); * the one changes to ath(4) to use it; * a couple of changes to iwn which was using ni_tx_ampdu state. I'd like to commit this to -HEAD. Thanks, Adrian --047d7b2e4820fdad7f04bd5e57a6 Content-Type: application/octet-stream; name="net80211-ath-txagg-tid-fix-1.diff" Content-Disposition: attachment; filename="net80211-ath-txagg-tid-fix-1.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h0vsbleu0 SW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0 ODAyMTEvaWVlZTgwMjExX2h0LmMJKHJldmlzaW9uIDIzNDEwOCkKKysrIHN5cy9uZXQ4MDIxMS9p ZWVlODAyMTFfaHQuYwkod29ya2luZyBjb3B5KQpAQCAtMTAyMyw3ICsxMDIzLDcgQEAKIGllZWU4 MDIxMV9odF9ub2RlX2luaXQoc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSkKIHsKIAlzdHJ1Y3Qg aWVlZTgwMjExX3R4X2FtcGR1ICp0YXA7Ci0JaW50IGFjOworCWludCB0aWQ7CiAKIAlpZiAobmkt Pm5pX2ZsYWdzICYgSUVFRTgwMjExX05PREVfSFQpIHsKIAkJLyoKQEAgLTEwMzMsOSArMTAzMywx MCBAQAogCQkgKi8KIAkJaWVlZTgwMjExX2h0X25vZGVfY2xlYW51cChuaSk7CiAJfQotCWZvciAo YWMgPSAwOyBhYyA8IFdNRV9OVU1fQUM7IGFjKyspIHsKLQkJdGFwID0gJm5pLT5uaV90eF9hbXBk dVthY107Ci0JCXRhcC0+dHhhX2FjID0gYWM7CisJZm9yICh0aWQgPSAwOyB0aWQgPCBXTUVfTlVN X1RJRDsgdGlkKyspIHsKKwkJdGFwID0gJm5pLT5uaV90eF9hbXBkdVt0aWRdOworCQl0YXAtPnR4 YV9hYyA9IFRJRF9UT19XTUVfQUModGlkKTsKKwkJdGFwLT50eGFfdGlkID0gdGlkOwogCQl0YXAt PnR4YV9uaSA9IG5pOwogCQkvKiBOQjogZnVydGhlciBpbml0aWFsaXphdGlvbiBkZWZlcnJlZCAq LwogCX0KQEAgLTEwNTUsNyArMTA1Niw3IEBACiAJS0FTU0VSVChuaS0+bmlfZmxhZ3MgJiBJRUVF ODAyMTFfTk9ERV9IVCwgKCJub3QgYW4gSFQgbm9kZSIpKTsKIAogCS8qIFhYWCBvcHRpbWl6ZSB0 aGlzICovCi0JZm9yIChpID0gMDsgaSA8IFdNRV9OVU1fQUM7IGkrKykgeworCWZvciAoaSA9IDA7 IGkgPCBXTUVfTlVNX1RJRDsgaSsrKSB7CiAJCXN0cnVjdCBpZWVlODAyMTFfdHhfYW1wZHUgKnRh cCA9ICZuaS0+bmlfdHhfYW1wZHVbaV07CiAJCWlmICh0YXAtPnR4YV9mbGFncyAmIElFRUU4MDIx MV9BR0dSX1NFVFVQKQogCQkJYW1wZHVfdHhfc3RvcCh0YXApOwpAQCAtMTE2MCw3ICsxMTYxLDcg QEAKIHsKIAlzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAgPSBuaS0+bmlfdmFwOwogCXN0cnVjdCBp ZWVlODAyMTFfdHhfYW1wZHUgKnRhcDsKLQlpbnQgYWM7CisJaW50IHRpZDsKIAogCUtBU1NFUlQo dmFwLT5pdl9mbGFnc19odCAmIElFRUU4MDIxMV9GSFRfSFQsICgibm8gSFQgcmVxdWVzdGVkIikp OwogCkBAIC0xMTk4LDkgKzExOTksMTAgQEAKIAluaS0+bmlfaHRvcG1vZGUgPSAwOwkJLyogWFhY IG5lZWQgcHJvdGVjdGlvbiBzdGF0ZSAqLwogCW5pLT5uaV9odHN0YmMgPSAwOwkJLyogWFhYIG5l ZWQgaW5mbyAqLwogCi0JZm9yIChhYyA9IDA7IGFjIDwgV01FX05VTV9BQzsgYWMrKykgewotCQl0 YXAgPSAmbmktPm5pX3R4X2FtcGR1W2FjXTsKLQkJdGFwLT50eGFfYWMgPSBhYzsKKwlmb3IgKHRp ZCA9IDA7IHRpZCA8IFdNRV9OVU1fVElEOyB0aWQrKykgeworCQl0YXAgPSAmbmktPm5pX3R4X2Ft cGR1W3RpZF07CisJCXRhcC0+dHhhX2FjID0gVElEX1RPX1dNRV9BQyh0aWQpOworCQl0YXAtPnR4 YV90aWQgPSB0aWQ7CiAJfQogCS8qIE5COiBBTVBEVSB0eC9yeCBnb3Zlcm5lZCBieSBJRUVFODAy MTFfRkhUX0FNUERVX3tUWCxSWH0gKi8KIAluaS0+bmlfZmxhZ3MgfD0gSUVFRTgwMjExX05PREVf SFQgfCBJRUVFODAyMTFfTk9ERV9BTVBEVTsKQEAgLTE5MDksNyArMTkxMSw3IEBACiAJYmF0aW1l b3V0ID0gTEVfUkVBRF8yKGZybSs3KTsKIAogCWFjID0gVElEX1RPX1dNRV9BQyh0aWQpOwotCXRh cCA9ICZuaS0+bmlfdHhfYW1wZHVbYWNdOworCXRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbdGlkXTsK IAlpZiAoKHRhcC0+dHhhX2ZsYWdzICYgSUVFRTgwMjExX0FHR1JfWENIR1BFTkQpID09IDApIHsK IAkJSUVFRTgwMjExX0RJU0NBUkRfTUFDKHZhcCwKIAkJICAgIElFRUU4MDIxMV9NU0dfQUNUSU9O IHwgSUVFRTgwMjExX01TR18xMU4sCkBAIC0xOTg2LDcgKzE5ODgsNyBAQAogCiAJaWYgKChiYXBh cmFtc2V0ICYgSUVFRTgwMjExX0RFTEJBUFNfSU5JVCkgPT0gMCkgewogCQlhYyA9IFRJRF9UT19X TUVfQUModGlkKTsKLQkJdGFwID0gJm5pLT5uaV90eF9hbXBkdVthY107CisJCXRhcCA9ICZuaS0+ bmlfdHhfYW1wZHVbdGlkXTsKIAkJaWMtPmljX2FkZGJhX3N0b3AobmksIHRhcCk7CiAJfSBlbHNl IHsKIAkJcmFwID0gJm5pLT5uaV9yeF9hbXBkdVt0aWRdOwpAQCAtMjA5OSw3ICsyMTAxLDcgQEAK IAl0YXAtPnR4YV9mbGFncyAmPSB+SUVFRTgwMjExX0FHR1JfTkFLOwogCiAJZGlhbG9ndG9rZW4g PSAodG9rZW5zKzEpICUgNjM7CQkvKiBYWFggKi8KLQl0aWQgPSBXTUVfQUNfVE9fVElEKHRhcC0+ dHhhX2FjKTsKKwl0aWQgPSB0YXAtPnR4YV90aWQ7CiAJdGFwLT50eGFfc3RhcnQgPSBuaS0+bmlf dHhzZXFzW3RpZF07CiAKIAlhcmdzWzBdID0gZGlhbG9ndG9rZW47CkBAIC0yMTUyLDcgKzIxNTQs NyBAQAogCQl2YXAtPml2X3N0YXRzLmlzX2FtcGR1X3N0b3ArKzsKIAogCQlpYy0+aWNfYWRkYmFf c3RvcChuaSwgdGFwKTsKLQkJYXJnc1swXSA9IFdNRV9BQ19UT19USUQodGFwLT50eGFfYWMpOwor CQlhcmdzWzBdID0gdGFwLT50eGFfdGlkOwogCQlhcmdzWzFdID0gSUVFRTgwMjExX0RFTEJBUFNf SU5JVDsKIAkJYXJnc1syXSA9IHJlYXNvbjsJCQkvKiBYWFggcmVhc29uIGNvZGUgKi8KIAkJaWMt PmljX3NlbmRfYWN0aW9uKG5pLCBJRUVFODAyMTFfQUNUSU9OX0NBVF9CQSwKQEAgLTIyMzcsNyAr MjIzOSw3IEBACiAJCSAgICB0YXAtPnR4YV9zdGFydCwKIAkJICAgIElFRUU4MDIxMV9TRVFfQURE KHRhcC0+dHhhX3N0YXJ0LCB0YXAtPnR4YV93bmQtMSksCiAJCSAgICB0YXAtPnR4YV9xZnJhbWVz LCB0YXAtPnR4YV9zZXFwZW5kaW5nLAotCQkgICAgV01FX0FDX1RPX1RJRCh0YXAtPnR4YV9hYykp OworCQkgICAgdGFwLT50eGFfdGlkKTsKIAogCQkvKiBOQjogdGltZXIgYWxyZWFkeSBzdG9wcGVk IGluIGJhcl90eF9jb21wbGV0ZSAqLwogCQl0YXAtPnR4YV9zdGFydCA9IHRhcC0+dHhhX3NlcXBl bmRpbmc7CkBAIC0yMjkyLDcgKzIyOTQsNyBAQAogCUlFRUU4MDIxMV9BRERSX0NPUFkoYmFyLT5p X3JhLCBuaS0+bmlfbWFjYWRkcik7CiAJSUVFRTgwMjExX0FERFJfQ09QWShiYXItPmlfdGEsIHZh cC0+aXZfbXlhZGRyKTsKIAotCXRpZCA9IFdNRV9BQ19UT19USUQodGFwLT50eGFfYWMpOworCXRp ZCA9IHRhcC0+dHhhX3RpZDsKIAliYXJjdGwgCT0gKHRhcC0+dHhhX2ZsYWdzICYgSUVFRTgwMjEx X0FHR1JfSU1NRURJQVRFID8KIAkJCTAgOiBJRUVFODAyMTFfQkFSX05PQUNLKQogCQl8IElFRUU4 MDIxMV9CQVJfQ09NUApJbmRleDogc3lzL25ldDgwMjExL2llZWU4MDIxMV9odC5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHQuaAkocmV2aXNpb24gMjM0MTA4KQorKysg c3lzL25ldDgwMjExL2llZWU4MDIxMV9odC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3 IEBACiAjZGVmaW5lCUlFRUU4MDIxMV9BR0dSX05BSwkJMHgwMDEwCS8qIHBlZXIgTkFLJ2QgQURE QkEgcmVxdWVzdCAqLwogI2RlZmluZQlJRUVFODAyMTFfQUdHUl9CQVJQRU5ECQkweDAwMjAJLyog QkFSIHJlc3BvbnNlIHBlbmRpbmcgKi8KIAl1aW50OF90CQl0eGFfYWM7CisJdWludDhfdAkJdHhh X3RpZDsKIAl1aW50OF90CQl0eGFfdG9rZW47CS8qIGRpYWxvZyB0b2tlbiAqLwogCWludAkJdHhh X2xhc3RzYW1wbGU7CS8qIHRpY2tzIEAgbGFzdCB0cmFmZmljIHNhbXBsZSAqLwogCWludAkJdHhh X3BrdHM7CS8qIHBhY2tldHMgb3ZlciBsYXN0IHNhbXBsZSBpbnRlcnZhbCAqLwpJbmRleDogc3lz L25ldDgwMjExL2llZWU4MDIxMV9ub2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldDgwMjExL2ll ZWU4MDIxMV9ub2RlLmgJKHJldmlzaW9uIDIzNDEwOCkKKysrIHN5cy9uZXQ4MDIxMS9pZWVlODAy MTFfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNyArMjE0LDcgQEAKIAl1aW50OF90CQkJ bmlfaHRzdGJjOwkvKiBIVCAqLwogCXVpbnQ4X3QJCQluaV9jaHc7CQkvKiBuZWdvdGlhdGVkIGNo YW5uZWwgd2lkdGggKi8KIAlzdHJ1Y3QgaWVlZTgwMjExX2h0cmF0ZXNldCBuaV9odHJhdGVzOwkv KiBuZWdvdGlhdGVkIGh0IHJhdGUgc2V0ICovCi0Jc3RydWN0IGllZWU4MDIxMV90eF9hbXBkdSBu aV90eF9hbXBkdVtXTUVfTlVNX0FDXTsKKwlzdHJ1Y3QgaWVlZTgwMjExX3R4X2FtcGR1IG5pX3R4 X2FtcGR1W1dNRV9OVU1fVElEXTsKIAlzdHJ1Y3QgaWVlZTgwMjExX3J4X2FtcGR1IG5pX3J4X2Ft cGR1W1dNRV9OVU1fVElEXTsKIAogCS8qIG90aGVycyAqLwpJbmRleDogc3lzL25ldDgwMjExL2ll ZWU4MDIxMV9vdXRwdXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX291 dHB1dC5jCShyZXZpc2lvbiAyMzQxMDgpCisrKyBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX291dHB1 dC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsNyArMzI0LDggQEAKIAkJICAgICh2YXAtPml2X2Zs YWdzX2h0ICYgSUVFRTgwMjExX0ZIVF9BTVBEVV9UWCkgJiYKIAkJICAgIChtLT5tX2ZsYWdzICYg TV9FQVBPTCkgPT0gMCkgewogCQkJY29uc3QgaW50IGFjID0gTV9XTUVfR0VUQUMobSk7Ci0JCQlz dHJ1Y3QgaWVlZTgwMjExX3R4X2FtcGR1ICp0YXAgPSAmbmktPm5pX3R4X2FtcGR1W2FjXTsKKwkJ CWNvbnN0IGludCB0aWQgPSBXTUVfQUNfVE9fVElEKGFjKTsKKwkJCXN0cnVjdCBpZWVlODAyMTFf dHhfYW1wZHUgKnRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbdGlkXTsKIAogCQkJaWVlZTgwMjExX3R4 YW1wZHVfY291bnRfcGFja2V0KHRhcCk7CiAJCQlpZiAoSUVFRTgwMjExX0FNUERVX1JVTk5JTkco dGFwKSkgewpAQCAtNTg5LDcgKzU5MCw3IEBACiAJfQogCSoodWludDE2X3QgKikmd2gtPmlfZHVy WzBdID0gMDsKIAotCXRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbVElEX1RPX1dNRV9BQyh0aWQpXTsK Kwl0YXAgPSAmbmktPm5pX3R4X2FtcGR1W3RpZF07CiAJaWYgKHRpZCAhPSBJRUVFODAyMTFfTk9O UU9TX1RJRCAmJiBJRUVFODAyMTFfQU1QRFVfUlVOTklORyh0YXApKQogCQltLT5tX2ZsYWdzIHw9 IE1fQU1QRFVfTVBEVTsKIAllbHNlIHsKSW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfc3Vw ZXJnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldDgwMjExL2llZWU4MDIxMV9zdXBlcmcuYwkocmV2 aXNpb24gMjM0MTA4KQorKysgc3lzL25ldDgwMjExL2llZWU4MDIxMV9zdXBlcmcuYwkod29ya2lu ZyBjb3B5KQpAQCAtNTYyLDkgKzU2MiwxMSBAQAogCUlFRUU4MDIxMV9MT0NLKGljKTsKIAloZWFk ID0gc3EtPmhlYWQ7CiAJd2hpbGUgKChtID0gc3EtPmhlYWQpICE9IE5VTEwgJiYgTV9BR0VfR0VU KG0pIDwgcXVhbnRhKSB7CisJCWludCBhYyA9IE1fV01FX0dFVEFDKG0pOworCQlpbnQgdGlkID0g V01FX0FDX1RPX1RJRChhYyk7CiAJCS8qIGNsZWFyIHRhcCByZWYgdG8gZnJhbWUgKi8KIAkJbmkg PSAoc3RydWN0IGllZWU4MDIxMV9ub2RlICopIG0tPm1fcGt0aGRyLnJjdmlmOwotCQl0YXAgPSAm bmktPm5pX3R4X2FtcGR1W01fV01FX0dFVEFDKG0pXTsKKwkJdGFwID0gJm5pLT5uaV90eF9hbXBk dVt0aWRdOwogCQlLQVNTRVJUKHRhcC0+dHhhX3ByaXZhdGUgPT0gbSwgKCJzdGFnaW5nIHF1ZXVl IGVtcHR5IikpOwogCQl0YXAtPnR4YV9wcml2YXRlID0gTlVMTDsKIApAQCAtNjYxLDYgKzY2Myw3 IEBACiAJc3RydWN0IGllZWU4MDIxMV90eF9hbXBkdSAqdGFwOwogCXN0cnVjdCBtYnVmICptc3Rh Z2VkOwogCXVpbnQzMl90IHR4dGltZSwgbGltaXQ7CisJaW50IHRpZCA9IFdNRV9BQ19UT19USUQo cHJpKTsKIAogCS8qCiAJICogQ2hlY2sgaWYgdGhlIHN1cHBsaWVkIGZyYW1lIGNhbiBiZSBhZ2dy ZWdhdGVkLgpAQCAtNjcwLDcgKzY3Myw3IEBACiAJICogICAgIGJlIGFnZ3JlZ2F0ZWQgd2l0aCBv dGhlciB0eXBlcyBvZiBmcmFtZXMgd2hlbiBlbmNyeXB0aW9uIGlzIG9uPwogCSAqLwogCUlFRUU4 MDIxMV9MT0NLKGljKTsKLQl0YXAgPSAmbmktPm5pX3R4X2FtcGR1W3ByaV07CisJdGFwID0gJm5p LT5uaV90eF9hbXBkdVt0aWRdOwogCW1zdGFnZWQgPSB0YXAtPnR4YV9wcml2YXRlOwkJLyogTkI6 IHdlIHJldXNlIEFNUERVIHN0YXRlICovCiAJaWVlZTgwMjExX3R4YW1wZHVfY291bnRfcGFja2V0 KHRhcCk7CiAKQEAgLTc4MywxMiArNzg2LDEzIEBACiAJc3RydWN0IGllZWU4MDIxMV9zdXBlcmcg KnNnID0gaWMtPmljX3N1cGVyZzsKIAlzdHJ1Y3QgaWVlZTgwMjExX3R4X2FtcGR1ICp0YXA7CiAJ c3RydWN0IG1idWYgKm0sICpoZWFkOwotCWludCBhYzsKKwlpbnQgdGlkOwogCiAJSUVFRTgwMjEx X0xPQ0soaWMpOwogCWhlYWQgPSBOVUxMOwotCWZvciAoYWMgPSAwOyBhYyA8IFdNRV9OVU1fQUM7 IGFjKyspIHsKLQkJdGFwID0gJm5pLT5uaV90eF9hbXBkdVthY107CisJZm9yICh0aWQgPSAwOyB0 aWQgPCBXTUVfTlVNX1RJRDsgdGlkKyspIHsKKwkJaW50IGFjID0gVElEX1RPX1dNRV9BQyh0aWQp OworCQl0YXAgPSAmbmktPm5pX3R4X2FtcGR1W3RpZF07CiAJCW0gPSB0YXAtPnR4YV9wcml2YXRl OwogCQlpZiAobSAhPSBOVUxMKSB7CiAJCQl0YXAtPnR4YV9wcml2YXRlID0gTlVMTDsKSW5kZXg6 IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfZGRiLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldDgwMjEx L2llZWU4MDIxMV9kZGIuYwkocmV2aXNpb24gMjM0MTA4KQorKysgc3lzL25ldDgwMjExL2llZWU4 MDIxMV9kZGIuYwkod29ya2luZyBjb3B5KQpAQCAtMjkzLDcgKzI5Myw3IEBACiAJCW5pLT5uaV9o dG9wbW9kZSwgbmktPm5pX2h0c3RiYywgbmktPm5pX2Nodyk7CiAKIAkvKiBYWFggYW1wZHUgc3Rh dGUgKi8KLQlmb3IgKGkgPSAwOyBpIDwgV01FX05VTV9BQzsgaSsrKQorCWZvciAoaSA9IDA7IGkg PCBXTUVfTlVNX1RJRDsgaSsrKQogCQlpZiAobmktPm5pX3R4X2FtcGR1W2ldLnR4YV9mbGFncyAm IElFRUU4MDIxMV9BR0dSX1NFVFVQKQogCQkJX2RiX3Nob3dfdHhhbXBkdSgiXHQiLCBpLCAmbmkt Pm5pX3R4X2FtcGR1W2ldKTsKIAlmb3IgKGkgPSAwOyBpIDwgV01FX05VTV9USUQ7IGkrKykKSW5k ZXg6IHN5cy9tb2R1bGVzL3dsYW4vTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21vZHVsZXMv d2xhbi9NYWtlZmlsZQkocmV2aXNpb24gMjM0MTA4KQorKysgc3lzL21vZHVsZXMvd2xhbi9NYWtl ZmlsZQkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQAogCWllZWU4MDIxMV9yYXRlY3Rs X25vbmUuYyBpZWVlODAyMTFfcmVnZG9tYWluLmMgXAogCWllZWU4MDIxMV9odC5jIGllZWU4MDIx MV9od21wLmMgaWVlZTgwMjExX2FkaG9jLmMgaWVlZTgwMjExX2hvc3RhcC5jIFwKIAlpZWVlODAy MTFfbW9uaXRvci5jIGllZWU4MDIxMV9zdGEuYyBpZWVlODAyMTFfd2RzLmMgaWVlZTgwMjExX2Rk Yi5jIFwKLQlpZWVlODAyMTFfdGRtYS5jCisJaWVlZTgwMjExX3RkbWEuYyBpZWVlODAyMTFfYWxx LmMgaWVlZTgwMjExX3N1cGVyZy5jCiBTUkNTKz0JYnVzX2lmLmggZGV2aWNlX2lmLmggb3B0X2Rk Yi5oIG9wdF9pbmV0Lmggb3B0X2luZXQ2Lmggb3B0X2lweC5oIFwKIAlvcHRfdGRtYS5oIG9wdF93 bGFuLmgKIApJbmRleDogc3lzL2Rldi9hdGgvaWZfYXRoX3R4LmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz L2Rldi9hdGgvaWZfYXRoX3R4LmMJKHJldmlzaW9uIDIzNDEwOCkKKysrIHN5cy9kZXYvYXRoL2lm X2F0aF90eC5jCSh3b3JraW5nIGNvcHkpCkBAIC00MjE0LDE0ICs0MjE0LDExIEBACiB7CiAJc3Ry dWN0IGllZWU4MDIxMV9ub2RlICpuaSA9ICZhbi0+YW5fbm9kZTsKIAlzdHJ1Y3QgaWVlZTgwMjEx X3R4X2FtcGR1ICp0YXA7Ci0JaW50IGFjOwogCiAJaWYgKHRpZCA9PSBJRUVFODAyMTFfTk9OUU9T X1RJRCkKIAkJcmV0dXJuIE5VTEw7CiAKLQlhYyA9IFRJRF9UT19XTUVfQUModGlkKTsKLQotCXRh cCA9ICZuaS0+bmlfdHhfYW1wZHVbYWNdOworCXRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbdGlkXTsK IAlyZXR1cm4gdGFwOwogfQogCkluZGV4OiBzeXMvZGV2L2l3bi9pZl9pd24uYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBzeXMvZGV2L2l3bi9pZl9pd24uYwkocmV2aXNpb24gMjM0MTA4KQorKysgc3lzL2Rldi9p d24vaWZfaXduLmMJKHdvcmtpbmcgY29weSkKQEAgLTMzMDksOSArMzMwOSwxMiBAQAogCX0KIAlh YyA9IE1fV01FX0dFVEFDKG0pOwogCisJLyoKKwkgKiBYWFggd2hhdCBhYm91dCB0aGUgbm9uLVFv UyBUSUQ/CisJICovCiAJaWYgKElFRUU4MDIxMV9RT1NfSEFTX1NFUSh3aCkgJiYKLQkgICAgSUVF RTgwMjExX0FNUERVX1JVTk5JTkcoJm5pLT5uaV90eF9hbXBkdVthY10pKSB7Ci0JCXN0cnVjdCBp ZWVlODAyMTFfdHhfYW1wZHUgKnRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbYWNdOworCSAgICBJRUVF ODAyMTFfQU1QRFVfUlVOTklORygmbmktPm5pX3R4X2FtcGR1W3RpZF0pKSB7CisJCXN0cnVjdCBp ZWVlODAyMTFfdHhfYW1wZHUgKnRhcCA9ICZuaS0+bmlfdHhfYW1wZHVbdGlkXTsKIAogCQlyaW5n ID0gJnNjLT50eHFbKihpbnQgKil0YXAtPnR4YV9wcml2YXRlXTsKIAkJKih1aW50MTZfdCAqKXdo LT5pX3NlcSA9CkBAIC01NjEyLDcgKzU2MTUsNyBAQAogaXduX2FtcGR1X3R4X3N0YXJ0KHN0cnVj dCBpZWVlODAyMTFjb20gKmljLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogICAgIHVpbnQ4 X3QgdGlkKQogewotCXN0cnVjdCBpZWVlODAyMTFfdHhfYW1wZHUgKnRhcCA9ICZuaS0+bmlfdHhf YW1wZHVbVElEX1RPX1dNRV9BQyh0aWQpXTsKKwlzdHJ1Y3QgaWVlZTgwMjExX3R4X2FtcGR1ICp0 YXAgPSAmbmktPm5pX3R4X2FtcGR1W3RpZF07CiAJc3RydWN0IGl3bl9zb2Z0YyAqc2MgPSBuaS0+ bmlfaWMtPmljX2lmcC0+aWZfc29mdGM7CiAJc3RydWN0IGl3bl9vcHMgKm9wcyA9ICZzYy0+b3Bz OwogCXN0cnVjdCBpd25fbm9kZSAqd24gPSAodm9pZCAqKW5pOwo= --047d7b2e4820fdad7f04bd5e57a6--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmomx7VkfMgb-muZonehcW4ChGidjVTLKC=0oNxuyj5NSZA>