Skip site navigation (1)Skip section navigation (2)
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>