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>