Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jul 2013 21:38:43 +0800
From:      Chenchong Qin <qinchenchong@gmail.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: Chenchong's work on net80211_ratectl
Message-ID:  <CAFnsE3eaOyRcO3LXSi3L=jbzpyMv5Nt_jRGKt_mmA0WV-EV5vA@mail.gmail.com>
In-Reply-To: <CAJ-Vmo=k8NddAYyAJCkx4eOaA_8XsSxg6uKrdddx%2BgmeT%2BX9KA@mail.gmail.com>
References:  <CAFnsE3dYdPf5yGTFH683Q1Zh0mc-g%2B_YtCTraNNt28z2vBoSKw@mail.gmail.com> <CAJ-Vmom4sY7jcNwWmJkrDwfWjsok2fk8UEwTi5A=egj1JyerLw@mail.gmail.com> <CAFnsE3cyg=msBfQqqKUMmLABSL=j24VoMBwbBjxQ6b7Dyy7Mqg@mail.gmail.com> <CAJ-Vmo=k8NddAYyAJCkx4eOaA_8XsSxg6uKrdddx%2BgmeT%2BX9KA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--089e013a08443fd10d04e24207d6
Content-Type: text/plain; charset=ISO-8859-1

My pleasure!

It's also against HEAD.

Thanks!


On Wed, Jul 24, 2013 at 9:15 PM, Adrian Chadd <adrian@freebsd.org> wrote:

> cool!
>
> Would you mind posting an updated diff?
>
>
>
> -adrian
>
> On 24 July 2013 01:39, Chenchong Qin <qinchenchong@gmail.com> wrote:
> >
> > Hi!
> >
> > Thanks for your constructive feedback!
> >
> > First, I've done some renaming things. IEEE80211_RATECTL_OPT_* became
> > IEEE80211_RATECTL_CAP_* and options in ieee80211_ratectl became
> > ir_capabilities.
> >
> > As for max4msframelen , I re-added this field and also ported
> > ath_max_4ms_framelen[4][32] to ieee80211_ratectl.
> >
> > An error is also corrected (about initialization of ir_capabilities).
> >
> >
> > On Tue, Jul 23, 2013 at 10:30 PM, Adrian Chadd <adrian@freebsd.org>
> wrote:
> >>
> >>
> >> * Why do you have IEEE80211_RATECTL_OPT_MULTXCHAIN ?
> >
> >
> > IEEE80211_RATECTL_OPT_MULTXCHAIN is used in
> ieee80211_ratectl_hascap_stbc()
> > to assist the determination of whether we can enable STBC.
> >
> >> * The reason why I check both the vap/ic and the node bits for HT
> >> capabilities is that they're negotiated. The node bits are what the
> >> remote peer supports. The vap/ic bits are what the local device/vap
> >> supports. So, if the remote node supports STBC and the local node
> >> doesn't, we shouldn't try transmitting short-GI.
> >
> >
> > uh... I also do the "double check" stuff. Do the
> ieee80211_ratectl_hascap_*
> > functions do
> > wrong things? And, I'm not very clear about the relation between STBC and
> > short-GI now.
> > It seems that I need some further reading. :)
> >
> >>
> >> * In ieee80211_ratectl_complete_rcflags(), enabling RTS/CTS but not
> >> transmitting an 11n rate isn't "right." The 11n hardware supports
> >> per-rate RTS/CTS for non-HT rates. You have to ensure that works.
> >> You've added a capability bit for this (IEEE80211_RATECTL_OPT_MRRPROT)
> >> so you should use it.
> >
> >
> > Yeah... here my logic messed up. It's corrected.
> >
> >>
> >> * the new rate field "options" should be "ir_options", like how the
> >> rest of the fields are prefixed with ir_
> >> * .. and, nitpicking, it should be "ir_capabilities".
> >>
> >
> > It's already done.
> >
> >
> > Thanks!
> >
> > Chenchong
> >
> >
>

--089e013a08443fd10d04e24207d6
Content-Type: application/octet-stream; 
	name="20130724-net80211-ratectl.diff"
Content-Disposition: attachment; filename="20130724-net80211-ratectl.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hjikuzy40

SW5kZXg6IG5ldDgwMjExL2llZWU4MDIxMV9yYXRlY3RsLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbmV0ODAy
MTEvaWVlZTgwMjExX3JhdGVjdGwuYwkocmV2aXNpb24gMjU0ODI2KQorKysgbmV0ODAyMTEvaWVl
ZTgwMjExX3JhdGVjdGwuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qLQogICog
Q29weXJpZ2h0IChjKSAyMDEwIFJ1aSBQYXVsbyA8cnBhdWxvQEZyZWVCU0Qub3JnPgorICogQ29w
eXJpZ2h0IChjKSAyMDEzIENoZW5jaG9uZyBRaW4gPGNjcWluQEZyZWVCU0Qub3JnPgogICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQ5LDYgKzUwLDMzIEBACiAK
IE1BTExPQ19ERUZJTkUoTV84MDIxMV9SQVRFQ1RMLCAiODAyMTFyYXRlY3RsIiwgIjgwMi4xMSBy
YXRlIGNvbnRyb2wiKTsKIAoraW50IG1heF80bXNfZnJhbWVsZW5bNF1bMzJdID0geworCVtNQ1Nf
SFQyMF0gPSB7CisJCTMyMTIsICA2NDMyLCAgOTY0OCwgIDEyODY0LCAgMTkzMDAsICAyNTczNiwg
IDI4OTUyLCAgMzIxNzIsCisJCTY0MjQsICAxMjg1MiwgMTkyODAsIDI1NzA4LCAgMzg1NjgsICA1
MTQyNCwgIDU3ODUyLCAgNjQyODAsCisJCTk2MjgsICAxOTI2MCwgMjg4OTYsIDM4NTI4LCAgNTc3
OTIsICA2NTUzMiwgIDY1NTMyLCAgNjU1MzIsCisJCTEyODI4LCAyNTY1NiwgMzg0ODgsIDUxMzIw
LCAgNjU1MzIsICA2NTUzMiwgIDY1NTMyLCAgNjU1MzIsCisJfSwKKwlbTUNTX0hUMjBfU0dJXSA9
IHsKKwkJMzU3MiwgIDcxNDQsICAxMDcyMCwgIDE0Mjk2LCAgMjE0NDQsICAyODU5NiwgIDMyMTcy
LCAgMzU3NDQsCisJCTcxNDAsICAxNDI4NCwgMjE0MjgsICAyODU2OCwgIDQyODU2LCAgNTcxNDQs
ICA2NDI4OCwgIDY1NTMyLAorCQkxMDcwMCwgMjE0MDgsIDMyMTEyLCAgNDI4MTYsICA2NDIyOCwg
IDY1NTMyLCAgNjU1MzIsICA2NTUzMiwKKwkJMTQyNTYsIDI4NTE2LCA0Mjc4MCwgIDU3MDQwLCAg
NjU1MzIsICA2NTUzMiwgIDY1NTMyLCAgNjU1MzIsCisJfSwKKwlbTUNTX0hUNDBdID0geworCQk2
NjgwLCAgMTMzNjAsICAyMDA0NCwgIDI2NzI0LCAgNDAwOTIsICA1MzQ1NiwgIDYwMTQwLCAgNjU1
MzIsCisJCTEzMzQ4LCAyNjcwMCwgIDQwMDUyLCAgNTM0MDAsICA2NTUzMiwgIDY1NTMyLCAgNjU1
MzIsICA2NTUzMiwKKwkJMjAwMDQsIDQwMDA4LCAgNjAwMTYsICA2NTUzMiwgIDY1NTMyLCAgNjU1
MzIsICA2NTUzMiwgIDY1NTMyLAorCQkyNjY0NCwgNTMyOTIsICA2NTUzMiwgIDY1NTMyLCAgNjU1
MzIsICA2NTUzMiwgIDY1NTMyLCAgNjU1MzIsCisJfSwKKwlbTUNTX0hUNDBfU0dJXSA9IHsKKwkJ
NzQyMCwgIDE0ODQ0LCAgMjIyNzIsICAyOTY5NiwgIDQ0NTQ0LCAgNTkzOTYsICA2NTUzMiwgIDY1
NTMyLAorCQkxNDgzMiwgMjk2NjgsICA0NDUwNCwgIDU5MzQwLCAgNjU1MzIsICA2NTUzMiwgIDY1
NTMyLCAgNjU1MzIsCisJCTIyMjMyLCA0NDQ2NCwgIDY1NTMyLCAgNjU1MzIsICA2NTUzMiwgIDY1
NTMyLCAgNjU1MzIsICA2NTUzMiwKKwkJMjk2MTYsIDU5MjMyLCAgNjU1MzIsICA2NTUzMiwgIDY1
NTMyLCAgNjU1MzIsICA2NTUzMiwgIDY1NTMyLAorCX0KK307CisKIHZvaWQKIGllZWU4MDIxMV9y
YXRlY3RsX3JlZ2lzdGVyKGludCB0eXBlLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3JhdGVjdGwg
KnJhdGVjdGwpCiB7CkBAIC02NiwxMCArOTQsMTEgQEAKIH0KIAogdm9pZAotaWVlZTgwMjExX3Jh
dGVjdGxfaW5pdChzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXApCitpZWVlODAyMTFfcmF0ZWN0bF9p
bml0KHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwgdWludDMyX3QgY2FwYWJpbGl0aWVzKQogewog
CWlmICh2YXAtPml2X3JhdGUgPT0gcmF0ZWN0bHNbSUVFRTgwMjExX1JBVEVDVExfTk9ORV0pCiAJ
CWllZWU4MDIxMV9yYXRlY3RsX3NldCh2YXAsIElFRUU4MDIxMV9SQVRFQ1RMX0FNUlIpOworCXZh
cC0+aXZfcmF0ZS5pcl9jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXM7CiAJdmFwLT5pdl9yYXRl
LT5pcl9pbml0KHZhcCk7CiB9CiAKQEAgLTkwLDMgKzExOSw5NSBAQAogCX0KIAl2YXAtPml2X3Jh
dGUgPSByYXRlY3Rsc1t0eXBlXTsKIH0KKwordm9pZAoraWVlZTgwMjExX3JhdGVjdGxfY29tcGxl
dGVfcmNmbGFncyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAorCQlzdHJ1Y3QgaWVl
ZTgwMjExX3JjX3NlcmllcyAqcmMsIGludCBzaG9ydFByZWFtYmxlKQoreworCWNvbnN0IHN0cnVj
dCBpZWVlODAyMTFjb20gKmljID0gbmktPm5pX2ljOworCWNvbnN0IHN0cnVjdCBpZWVlODAyMTF2
YXAgKnZhcCA9IG5pLT5uaV92YXA7CisJY29uc3Qgc3RydWN0IGllZWU4MDIxMV9yYXRlX3RhYmxl
ICogcnQgPSBpYy0+aWNfcnQ7CisJdWludDhfdCByYXRlOworCWludCBpOworCisJLyogTWFrZSBz
dXJlIHRoYXQgcmF0ZSBjb250cm9sIGNvZGUgZG9lc24ndCBtZXNzIGl0IHVwLgorCSAqIElmIGVu
YWJsZSBydHMvY3RzIGFuZCBpcyBwcmUtODAyLjExbiwgYmxhbmsgdHJpZXMgMSwgMiwgMyAKKwkg
Ki8KKworCWlmICghICh2YXAtPml2X3JhdGUtPmlyX2NhcGFiaWxpdGllcyAmIElFRUU4MDIxMV9S
QVRFQ1RMX0NBUF9NUlJQUk9UKSkKKwl7CisJCWZvciAoaSA9IDE7IGkgPCBJRUVFODAyMTFfUkFU
RUNUTF9OVU07IGkrKykKKwkJeworCQkJaWYgKHJjWzBdLmZsYWdzICYgSUVFRTgwMjExX1JBVEVD
VExfUlRTQ1RTX0ZMQUcpCisJCQkJcmNbaV0udHJpZXMgPSAwOworCQkJcmNbaV0uZmxhZ3MgJj0g
fklFRUU4MDIxMV9SQVRFQ1RMX1JUU0NUU19GTEFHOyAKKwkJfQorCX0KKworCWZvciAoaSA9IDA7
IGkgPCBJRUVFODAyMTFfUkFURUNUTF9OVU07IGkrKykgeworCQkKKwkJaWYgKHJjW2ldLnRyaWVz
ID09IDApCisJCQljb250aW51ZTsKKworCQlyYXRlID0gcnQtPmluZm9bcmNbaV0ucml4XS5yYXRl
Q29kZTsKKworCQkvKgorCQkgKiBPbmx5IGVuYWJsZSBzaG9ydCBwcmVhbWJsZSBmb3IgbGVnYWN5
IHJhdGVzCisJCSAqLworCQlpZiAoKCEgSVNfSFRfUkFURShyYXRlKSkgJiYgc2hvcnRQcmVhbWJs
ZSkKKwkJCXJhdGUgfD0gcnQtPmluZm9bcmNbaV0ucml4XS5zaG9ydFByZWFtYmxlOworCisJCS8q
CisJCSAqIFNhdmUgdGhpcywgdXNlZCBieSB0aGUgVFggYW5kIGNvbXBsZXRpb24gY29kZQorCQkg
Ki8KKwkJcmNbaV0ucmF0ZWNvZGUgPSByYXRlOworCisJCS8qIE9ubHkgZW5hYmxlIHNob3J0Z2ks
IDIwNDAsIGR1YWwtc3RyZWFtIGlmIEhUIGlzIHNldCAqLworCQlpZiAoSVNfSFRfUkFURShyYXRl
KSkgeworCQkJcmNbaV0uZmxhZ3MgfD0gSUVFRTgwMjExX1JBVEVDVExfSFRfRkxBRzsKKworCQkJ
LyoKKwkJCSAqIFhYWCBUT0RPOiBMRFBDCisJCQkgKi8KKworCQkJLyoKKwkJCSAqIER1YWwgLyBU
cmlwbGUgc3RyZWFtIHJhdGU/CisJCQkgKi8KKwkJCWlmIChIVF9SQ18yX1NUUkVBTVMocmF0ZSkg
PT0gMikKKwkJCQlyY1tpXS5mbGFncyB8PSBJRUVFODAyMTFfUkFURUNUTF9EU19GTEFHOworCQkJ
ZWxzZSBpZiAoSFRfUkNfMl9TVFJFQU1TKHJhdGUpID09IDMpCisJCQkJcmNbaV0uZmxhZ3MgfD0g
SUVFRTgwMjExX1JBVEVDVExfVFNfRkxBRzsKKwkJfQorCisJCS8qCisJCSAqIENhbGN1bGF0ZSB0
aGUgbWF4aW11bSBUWCBwb3dlciBjYXAgZm9yIHRoZSBjdXJyZW50CisJCSAqIG5vZGUuIAorCQkg
KiBSYXRlIGNvbnRyb2wgYWxnbyBjYW4ndCBjb250cm9sIFRYIHBvd2VyIGJ5IG5vdy4KKwkJICov
CisJCXJjW2ldLnR4X3Bvd2VyX2NhcCA9IGllZWU4MDIxMV9nZXRfbm9kZV90eHBvd2VyKG5pKTsK
KwkJCisJCS8qCisJCSAqIENhbGN1bGF0ZSB0aGUgbWF4aW11bSA0bXMgZnJhbWUgbGVuZ3RoIGJh
c2VkCisJCSAqIG9uIHRoZSBNQ1MgcmF0ZSwgU0dJIGFuZCBjaGFubmVsIHdpZHRoIGZsYWdzLgor
CQkgKi8KKwkJaWYgKChyY1tpXS5mbGFncyAmIElFRUU4MDIxMV9SQVRFQ1RMX0hUX0ZMQUcpICYm
CisJCSAgICAoSFRfUkNfMl9NQ1MocmF0ZSkgPCAzMikpIHsKKwkJCWludCBqOworCQkJaWYgKHJj
W2ldLmZsYWdzICYgSUVFRTgwMjExX1JBVEVDVExfQ1c0MF9GTEFHKSB7CisJCQkJaWYgKHJjW2ld
LmZsYWdzICYgSUVFRTgwMjExX1JBVEVDVExfU0dJX0ZMQUcpCisJCQkJCWogPSBNQ1NfSFQ0MF9T
R0k7CisJCQkJZWxzZQorCQkJCQlqID0gTUNTX0hUNDA7CisJCQl9IGVsc2UgeworCQkJCWlmIChy
Y1tpXS5mbGFncyAmIElFRUU4MDIxMV9SQVRFQ1RMX1NHSV9GTEFHKQorCQkJCQlqID0gTUNTX0hU
MjBfU0dJOworCQkJCWVsc2UKKwkJCQkJaiA9IE1DU19IVDIwOworCQkJfQorCQkJcmNbaV0ubWF4
NG1zZnJhbWVsZW4gPQorCQkJICAgIG1heF80bXNfZnJhbWVsZW5bal1bSFRfUkNfMl9NQ1MocmF0
ZSldOworCQl9IGVsc2UKKwkJCXJjW2ldLm1heDRtc2ZyYW1lbGVuID0gMDsKKwl9Cit9CisKSW5k
ZXg6IG5ldDgwMjExL2llZWU4MDIxMV9yYXRlY3RsLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbmV0ODAyMTEv
aWVlZTgwMjExX3JhdGVjdGwuaAkocmV2aXNpb24gMjU0ODI2KQorKysgbmV0ODAyMTEvaWVlZTgw
MjExX3JhdGVjdGwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qLQogICogQ29w
eXJpZ2h0IChjKSAyMDEwIFJ1aSBQYXVsbyA8cnBhdWxvQEZyZWVCU0Qub3JnPgorICogQ29weXJp
Z2h0IChjKSAyMDEzIENoZW5jaG9uZyBRaW4gPGNjcWluQEZyZWVCU0Qub3JnPgogICogQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI0LDYgKzI1LDggQEAKICAqCiAg
KiAkRnJlZUJTRCQKICAqLworI2lmbmRlZiBfTkVUODAyMTFfSUVFRTgwMjExX1JBVEVDVExfSF8K
KyNkZWZpbmUgX05FVDgwMjExX0lFRUU4MDIxMV9SQVRFQ1RMX0hfCiAKIGVudW0gaWVlZTgwMjEx
X3JhdGVhbGdzIHsKIAlJRUVFODAyMTFfUkFURUNUTF9BTVJSCQk9IDAsCkBAIC0zNCwxMSArMzcs
NTYgQEAKIAlJRUVFODAyMTFfUkFURUNUTF9NQVgKIH07CiAKK2VudW0geworCU1DU19IVDIwLAor
CU1DU19IVDIwX1NHSSwKKwlNQ1NfSFQ0MCwKKwlNQ1NfSFQ0MF9TR0ksCit9OworCiAjZGVmaW5l
CUlFRUU4MDIxMV9SQVRFQ1RMX1RYX1NVQ0NFU1MJMQogI2RlZmluZQlJRUVFODAyMTFfUkFURUNU
TF9UWF9GQUlMVVJFCTAKIAorI2RlZmluZQlJRUVFODAyMTFfUkFURUNUTF9UUlVFCQkxCisjZGVm
aW5lCUlFRUU4MDIxMV9SQVRFQ1RMX0ZBTFNFCQkwCisKKyNkZWZpbmUJSUVFRTgwMjExX1JBVEVD
VExfTlVNCQk0CisKKyNkZWZpbmUJSUVFRTgwMjExX1JBVEVDVExfRFNfRkxBRwkJMHgwMQkvKiBk
dWFsLXN0cmVhbSByYXRlICovCisjZGVmaW5lCUlFRUU4MDIxMV9SQVRFQ1RMX0NXNDBfRkxBRwkJ
MHgwMgkvKiB1c2UgSFQ0MCAqLworI2RlZmluZQlJRUVFODAyMTFfUkFURUNUTF9TR0lfRkxBRwkJ
MHgwNAkvKiB1c2Ugc2hvcnQtR0kgKi8KKyNkZWZpbmUJSUVFRTgwMjExX1JBVEVDVExfSFRfRkxB
RwkJMHgwOAkvKiB1c2UgSFQgKi8KKyNkZWZpbmUJSUVFRTgwMjExX1JBVEVDVExfUlRTQ1RTX0ZM
QUcJMHgxMAkvKiBlbmFibGUgUlRTL0NUUyBwcm90ZWN0aW9uICovCisjZGVmaW5lCUlFRUU4MDIx
MV9SQVRFQ1RMX1NUQkNfRkxBRwkJMHgyMAkvKiBlbmFibGUgU1RCQyAqLworI2RlZmluZQlJRUVF
ODAyMTFfUkFURUNUTF9UU19GTEFHCQkweDQwCS8qIHRyaXBsZS1zdHJlYW0gcmF0ZSAqLworCisv
KiBIYXJkd2FyZSBDQVBzIGNoaXAgb2ZmZXJlZCB0byByYXRlIGNvbnRyb2wgY29kZSAqLworI2Rl
ZmluZQlJRUVFODAyMTFfUkFURUNUTF9DQVBfTVJSCQkJMHgwMQkvKiBzdXBwb3J0IE1SUiAqLwor
I2RlZmluZQlJRUVFODAyMTFfUkFURUNUTF9DQVBfTVJSUFJPVAkJMHgwMgkvKiBzdXBwb3J0IE1S
UiArIHByb3RlY3QgKi8KKyNkZWZpbmUJSUVFRTgwMjExX1JBVEVDVExfQ0FQX01VTFRYQ0hBSU4J
MHgwNAkvKiBoYXMgbW9yZSB0aGFuIDEgdHhjaGFpbiAqLworCisjZGVmaW5lIElTX1ZBUF9IVCh2
YXApCSgodmFwKS0+aXZfaHRjYXBzICYgSUVFRTgwMjExX0hUQ19IVCkKKworI2RlZmluZSBJU19I
VF9SQVRFKF9yYXRlKSAgICgoX3JhdGUpICYgMHg4MCkKKyNkZWZpbmUgSFRfUkNfMl9NQ1MoX3Jj
KSAgICAoKF9yYykgJiAweDdmKQorI2RlZmluZSBIVF9SQ18yX1NUUkVBTVMoX3JjKSAgICAoKCgo
X3JjKSAmIDB4NzgpID4+IDMpICsgMSkKKworCitleHRlcm4gaW50IG1heF80bXNfZnJhbWVsZW5b
NF1bMzJdOworCitzdHJ1Y3QgaWVlZTgwMjExX3JjX3NlcmllcyB7CisJdWludDhfdCByaXg7CQkv
KiByYXRldGFibGUgaW5kZXgsIG5vdCByYXRlIGNvZGUgKi8KKwl1aW50OF90IHJhdGVjb2RlOwkv
KiBoYXJkd2FyZSByYXRlIGNvZGUgKi8KKwl1aW50OF90IHRyaWVzOworCXVpbnQ4X3QgdHhfcG93
ZXJfY2FwOworCXVpbnQxNl90IGZsYWdzOworCXVpbnQxNl90IG1heDRtc2ZyYW1lbGVuOworfTsK
Kwogc3RydWN0IGllZWU4MDIxMV9yYXRlY3RsIHsKIAljb25zdCBjaGFyICppcl9uYW1lOworCXVp
bnQzMl90IGlyX2NhcGFiaWxpdGllczsJCS8qIGhhcmR3YXJlIGNhcGFiaWxpdGllcyBvZmZlcmVk
IHRvIHJjICovCisKIAlpbnQJKCppcl9hdHRhY2gpKGNvbnN0IHN0cnVjdCBpZWVlODAyMTF2YXAg
Kik7CiAJdm9pZAkoKmlyX2RldGFjaCkoY29uc3Qgc3RydWN0IGllZWU4MDIxMXZhcCAqKTsKIAl2
b2lkCSgqaXJfaW5pdCkoc3RydWN0IGllZWU4MDIxMXZhcCAqKTsKQEAgLTQ2LDYgKzk0LDggQEAK
IAl2b2lkCSgqaXJfbm9kZV9pbml0KShzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKik7CiAJdm9pZAko
KmlyX25vZGVfZGVpbml0KShzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKik7CiAJaW50CSgqaXJfcmF0
ZSkoc3RydWN0IGllZWU4MDIxMV9ub2RlICosIHZvaWQgKiwgdWludDMyX3QpOworCXZvaWQJKCpp
cl9yYXRlcykoc3RydWN0IGllZWU4MDIxMV9ub2RlICosIHN0cnVjdCBpZWVlODAyMTFfcmNfc2Vy
aWVzICosIAorCQkJCQkgIGludCwgc2l6ZV90KTsKIAl2b2lkCSgqaXJfdHhfY29tcGxldGUpKGNv
bnN0IHN0cnVjdCBpZWVlODAyMTF2YXAgKiwKIAkgICAgCQkJICBjb25zdCBzdHJ1Y3QgaWVlZTgw
MjExX25vZGUgKiwgaW50LAogCSAgICAJCQkgIHZvaWQgKiwgdm9pZCAqKTsKQEAgLTU3LDggKzEw
NywxMCBAQAogCiB2b2lkCWllZWU4MDIxMV9yYXRlY3RsX3JlZ2lzdGVyKGludCwgY29uc3Qgc3Ry
dWN0IGllZWU4MDIxMV9yYXRlY3RsICopOwogdm9pZAlpZWVlODAyMTFfcmF0ZWN0bF91bnJlZ2lz
dGVyKGludCk7Ci12b2lkCWllZWU4MDIxMV9yYXRlY3RsX2luaXQoc3RydWN0IGllZWU4MDIxMXZh
cCAqKTsKK3ZvaWQJaWVlZTgwMjExX3JhdGVjdGxfaW5pdChzdHJ1Y3QgaWVlZTgwMjExdmFwICos
IHVpbnQzMl90KTsKIHZvaWQJaWVlZTgwMjExX3JhdGVjdGxfc2V0KHN0cnVjdCBpZWVlODAyMTF2
YXAgKiwgaW50KTsKK3ZvaWQJaWVlZTgwMjExX3JhdGVjdGxfY29tcGxldGVfcmNmbGFncyhjb25z
dCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKiwgCisJCXN0cnVjdCBpZWVlODAyMTFfcmNfc2VyaWVz
ICosIGludCkKIAogTUFMTE9DX0RFQ0xBUkUoTV84MDIxMV9SQVRFQ1RMKTsKIApAQCAtOTMsNiAr
MTQ1LDE3IEBACiB9CiAKIHN0YXRpYyB2b2lkIF9faW5saW5lCitpZWVlODAyMTFfcmF0ZWN0bF9y
YXRlcyhzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1Y3QgaWVlZTgwMjExX3JjX3Nlcmll
cyAqcmMsCisJCWludCBzaG9ydFByZWFtYmxlLCBzaXplX3QgZnJhbWVMZW4pCit7CisJY29uc3Qg
c3RydWN0IGllZWU4MDIxMXZhcCAqdmFwID0gbmktPm5pX3ZhcDsKKworCXZhcC0+aXZfcmF0ZS0+
aXJfcmF0ZXMobmksIHJjLCBzaG9ydFByZWFtYmxlLCBmcmFtZUxlbik7CisJCisJaWVlZTgwMjEx
X3JhdGVjdGxfY29tcGxldGVfcmNmbGFncyhuaSwgcmMsIHNob3J0UHJlYW1ibGUpOworfQorCitz
dGF0aWMgdm9pZCBfX2lubGluZQogaWVlZTgwMjExX3JhdGVjdGxfdHhfY29tcGxldGUoY29uc3Qg
c3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLAogICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfbm9k
ZSAqbmksIGludCBzdGF0dXMsIHZvaWQgKmFyZzEsIHZvaWQgKmFyZzIpCiB7CkBAIC0xMTUsMyAr
MTc4LDQwIEBACiAJCXJldHVybjsKIAl2YXAtPml2X3JhdGUtPmlyX3NldGludGVydmFsKHZhcCwg
bXNlY3MpOwogfQorCitzdGF0aWMgaW50IF9faW5saW5lCitpZWVlODAyMTFfcmF0ZWN0bF9oYXNj
YXBfY3c0MChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsCisJCWNvbnN0IHN0cnVjdCBp
ZWVlODAyMTFfbm9kZSAqbmkpCit7CisJcmV0dXJuIElTX1ZBUF9IVCh2YXApICYmIChuaS0+bmlf
Y2h3ID09IDQwKTsKK30KKworc3RhdGljIGludCBfX2lubGluZQoraWVlZTgwMjExX3JhdGVjdGxf
aGFzY2FwX3Nob3J0Z2koY29uc3Qgc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLAorCQljb25zdCBz
dHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pKQoreworCWlmICghIElTX1ZBUF9IVCh2YXApKQorCQly
ZXR1cm4gSUVFRTgwMjExX1JBVEVDVExfRkFMU0U7CisKKwlpZiAobmktPm5pX2NodyA9PSA0MCAm
JgorCQkJdmFwLT5pdl9odGNhcHMgJiBJRUVFODAyMTFfSFRDQVBfU0hPUlRHSTQwICYmCisJCQlu
aS0+bmlfaHRjYXAgJiBJRUVFODAyMTFfSFRDQVBfU0hPUlRHSTQwKQorCQlyZXR1cm4gSUVFRTgw
MjExX1JBVEVDVExfVFJVRTsKKworCWlmIChuaS0+bmlfY2h3ID09IDIwICYmCisJCQl2YXAtPml2
X2h0Y2FwcyAmIElFRUU4MDIxMV9IVENBUF9TSE9SVEdJMjAgJiYKKwkJCW5pLT5uaV9odGNhcCAm
IElFRUU4MDIxMV9IVENBUF9TSE9SVEdJMjApCisJCXJldHVybiBJRUVFODAyMTFfUkFURUNUTF9U
UlVFOworfQorCisKK3N0YXRpYyBpbnQgX19pbmxpbmUKK2llZWU4MDIxMV9yYXRlY3RsX2hhc2Nh
cF9zdGJjKGNvbnN0IHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwKKwkJY29uc3Qgc3RydWN0IGll
ZWU4MDIxMV9ub2RlICpuaSkKK3sKKyAgIHJldHVybiBJU19WQVBfSFQodmFwKSAmJiAodmFwLT5p
dl9odGNhcHMgJiBJRUVFODAyMTFfSFRDQVBfVFhTVEJDKSAmJgorCQkJICAgIChuaS0+bmlfaHRj
YXAgJiBJRUVFODAyMTFfSFRDQVBfUlhTVEJDXzFTVFJFQU0pICYmCisJCQkgICAgKHZhcC0+aXZf
cmF0ZS0+aXJfY2FwYWJpbGl0aWVzICYgSUVFRTgwMjExX1JBVEVDVExfQ0FQX01VTFRYQ0hBSU4p
OworfQorCisjZW5kaWYK
--089e013a08443fd10d04e24207d6--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFnsE3eaOyRcO3LXSi3L=jbzpyMv5Nt_jRGKt_mmA0WV-EV5vA>