Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Nov 2011 16:07:36 -0800
From:      Adrian Chadd <adrian.chadd@gmail.com>
To:        freebsd-wireless@freebsd.org
Subject:   [patch] teach ath(4) to not flush frames during reset or run reset/tx/rx concurrently
Message-ID:  <CAJ-VmokEYWi=CWsbYN-RewU6noEmtjr0RxTGMzJJ_-CA3S=uFQ@mail.gmail.com>

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

Hi,

One of my major outstanding issues with the atheros 11n tx/rx support
is to not flush frames out of the tx and rx queue during a queue reset
(eg during fatal errors, stuck beacon, etc.)
I can't (yet) do much when operational changes occur. I'll work on
that in subsequent commits.

I'd appreciate testing and feedback before I merge this into -HEAD.

Thanks,


Adrian

--20cf307f30a25c138804b1bac652
Content-Type: application/octet-stream; name="freebsd-head-reset-noloss.diff"
Content-Disposition: attachment; filename="freebsd-head-reset-noloss.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gv0558hm0

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aC5jIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMK
aW5kZXggYzM0ODVlNC4uMzliYTRlZiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9hdGgvaWZfYXRoLmMK
KysrIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMKQEAgLTE4MTksNiArMTgxOSw0MiBAQCBhdGhfc3Rv
cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnApCiB9CiAKIHN0YXRpYyB2b2lkCithdGhfdHhyeF9z
dG9wKHN0cnVjdCBhdGhfc29mdGMgKnNjKQoreworCWludCBpID0gMTAwMDsKKworCUFUSF9VTkxP
Q0tfQVNTRVJUKHNjKTsKKworCS8qIFN0b3AgYW55IG5ldyBUWC9SWCBmcm9tIG9jY3VyaW5nICov
CisJdGFza3F1ZXVlX2Jsb2NrKHNjLT5zY190cSk7CisKKwlBVEhfTE9DSyhzYyk7CisKKwkvKgor
CSAqIFNsZWVwIHVudGlsIGFsbCB0aGUgcGVuZGluZyBvcGVyYXRpb25zIGhhdmUgY29tcGxldGVk
LgorCSAqCisJICogVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHJlc2V0IGhhcyBiZWVuIGlu
Y3JlbWVudGVkCisJICogb3IgdGhpcyB3b24ndCBldmVyIG9jY3VyLgorCSAqLworCXdoaWxlIChz
Yy0+c2Nfcnhwcm9jX2NudCB8fCBzYy0+c2NfdHhwcm9jX2NudCB8fAorCSAgICBzYy0+c2NfdHhz
dGFydF9jbnQpIHsKKwkgICAgCWlmIChpIDw9IDApCisJCQlicmVhazsKKwkJbXNsZWVwKHNjLCAm
c2MtPnNjX210eCwgMCwgImF0aF90eHJ4X3N0b3AiLCAxKTsKKwkJaS0tOworCX0KKworCUFUSF9V
TkxPQ0soc2MpOworfQorCitzdGF0aWMgdm9pZAorYXRoX3R4cnhfc3RhcnQoc3RydWN0IGF0aF9z
b2Z0YyAqc2MpCit7CisKKwl0YXNrcXVldWVfdW5ibG9jayhzYy0+c2NfdHEpOworfQorCitzdGF0
aWMgdm9pZAogYXRoX3N0b3Aoc3RydWN0IGlmbmV0ICppZnApCiB7CiAJc3RydWN0IGF0aF9zb2Z0
YyAqc2MgPSBpZnAtPmlmX3NvZnRjOwpAQCAtMTg0MiwxNyArMTg3OCw0MSBAQCBhdGhfcmVzZXQo
c3RydWN0IGlmbmV0ICppZnAsIEFUSF9SRVNFVF9UWVBFIHJlc2V0X3R5cGUpCiAJc3RydWN0IGll
ZWU4MDIxMWNvbSAqaWMgPSBpZnAtPmlmX2wyY29tOwogCXN0cnVjdCBhdGhfaGFsICphaCA9IHNj
LT5zY19haDsKIAlIQUxfU1RBVFVTIHN0YXR1czsKKwlpbnQgaTsKIAogCURQUklOVEYoc2MsIEFU
SF9ERUJVR19SRVNFVCwgIiVzOiBjYWxsZWRcbiIsIF9fZnVuY19fKTsKIAorCS8qIFhYWCBlbnN1
cmUgQVRIX0xPQ0sgaXNuJ3QgaGVsZDsgYXRoX3J4X3Byb2MgY2FuJ3QgYmUgbG9ja2VkICovCisJ
QVRIX1VOTE9DS19BU1NFUlQoc2MpOworCUFUSF9MT0NLKHNjKTsKKwkvKiBYWFggaWYgd2UncmUg
YWxyZWFkeSBpbnNpZGUgYSByZXNldCwgcHJpbnQgb3V0IGEgYmlnIHdhcm5pbmcgKi8KKwlpZiAo
c2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5zY19kZXYsCisJ
CSAgICAiJXM6IGNvbmN1cnJlbnQgYXRoX3Jlc2V0KCkhIERhbmdlciFcbiIsCisJCSAgICBfX2Z1
bmNfXyk7CisJfQorCXNjLT5zY19pbnJlc2V0X2NudCsrOworCUFUSF9VTkxPQ0soc2MpOworCisJ
LyoKKwkgKiBYWFggc2hvdWxkIG5vdyB3YWl0IGZvciBwZW5kaW5nIFRYL1JYIHRvIGNvbXBsZXRl
CisJICogYW5kIGJsb2NrIGZ1dHVyZSBvbmVzIGZyb20gb2NjdXJpbmcuCisJICovCisJYXRoX3R4
cnhfc3RvcChzYyk7CisKIAlhdGhfaGFsX2ludHJzZXQoYWgsIDApOwkJLyogZGlzYWJsZSBpbnRl
cnJ1cHRzICovCiAJYXRoX2RyYWludHhxKHNjLCByZXNldF90eXBlKTsJLyogc3RvcCB4bWl0IHNp
ZGUgKi8KIAkvKgotCSAqIFhYWCBEb24ndCBmbHVzaCBpZiBBVEhfUkVTRVRfTk9MT1NTO2J1dCB3
ZSBoYXZlIHRvIGZpcnN0Ci0JICogWFhYIG5lZWQgdG8gZW5zdXJlIHRoaXMgZG9lc24ndCByYWNl
IHdpdGggYW4gb3V0c3RhbmRpbmcKLQkgKiBYWFggdGFza3F1ZXVlIGNhbGwuCisJICogSWYgd2Un
cmUgZG9pbmcgYSBmbHVzaC1sZXNzIGRlcXVldWUsIHRoZW4gc3RvcCBQQ1UKKwkgKiByZWNlaXZl
IHNvIHRoZSBGSUZPIGlzbid0IG92ZXJydW4sIHRoZW4gaGFuZGxlCisJICogd2hhdGV2ZXIgZnJh
bWVzIGFyZSBpbiB0aGUgcXVldWUuCiAJICovCi0JYXRoX3N0b3ByZWN2KHNjKTsJCS8qIHN0b3Ag
cmVjdiBzaWRlICovCisJaWYgKHJlc2V0X3R5cGUgPT0gQVRIX1JFU0VUX05PTE9TUykgeworCQlh
dGhfaGFsX3N0b3BwY3VyZWN2KGFoKTsKKwkJYXRoX2hhbF9zZXRyeGZpbHRlcihhaCwgMCk7CisJ
CWF0aF9yeF9wcm9jKHNjLCAwKTsKKwl9IGVsc2UKKwkJYXRoX3N0b3ByZWN2KHNjKTsJCS8qIHN0
b3AgcmVjdiBzaWRlICovCiAJYXRoX3NldHRraXBtaWMoc2MpOwkJLyogY29uZmlndXJlIFRLSVAg
TUlDIGhhbmRsaW5nICovCiAJLyogTkI6IGluZGljYXRlIGNoYW5uZWwgY2hhbmdlIHNvIHdlIGRv
IGEgZnVsbCByZXNldCAqLwogCWlmICghYXRoX2hhbF9yZXNldChhaCwgc2MtPnNjX29wbW9kZSwg
aWMtPmljX2N1cmNoYW4sIEFIX1RSVUUsICZzdGF0dXMpKQpAQCAtMTg4MSw2ICsxOTQxLDI2IEBA
IGF0aF9yZXNldChzdHJ1Y3QgaWZuZXQgKmlmcCwgQVRIX1JFU0VUX1RZUEUgcmVzZXRfdHlwZSkK
IAl9CiAJYXRoX2hhbF9pbnRyc2V0KGFoLCBzYy0+c2NfaW1hc2spOwogCisJQVRIX0xPQ0soc2Mp
OworCXNjLT5zY19pbnJlc2V0X2NudC0tOworCUFUSF9VTkxPQ0soc2MpOworCisJLyogUmVzdGFy
dCBUWC9SWCBhcyBuZWVkZWQgKi8KKwlhdGhfdHhyeF9zdGFydChzYyk7CisKKwkvKiBYWFggUmVz
dGFydCBUWCBjb21wbGV0aW9uIGFuZCBwZW5kaW5nIFRYICovCisJaWYgKHJlc2V0X3R5cGUgPT0g
QVRIX1JFU0VUX05PTE9TUykgeworCQlmb3IgKGkgPSAwOyBpIDwgSEFMX05VTV9UWF9RVUVVRVM7
IGkrKykgeworCQkJaWYgKEFUSF9UWFFfU0VUVVAoc2MsIGkpKSB7CisJCQkJQVRIX1RYUV9MT0NL
KCZzYy0+c2NfdHhxW2ldKTsKKwkJCQlhdGhfdHhxX3Jlc3RhcnRfZG1hKHNjLCAmc2MtPnNjX3R4
cVtpXSk7CisJCQkJYXRoX3R4cV9zY2hlZChzYywgJnNjLT5zY190eHFbaV0pOworCQkJCUFUSF9U
WFFfVU5MT0NLKCZzYy0+c2NfdHhxW2ldKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIEhhbmRsZSBh
bnkgZnJhbWVzIGluIHRoZSBUWCBxdWV1ZSAqLwogCWF0aF9zdGFydChpZnApOwkJCS8qIHJlc3Rh
cnQgeG1pdCAqLwogCXJldHVybiAwOwogfQpAQCAtMjAyOCw2ICsyMTA4LDE4IEBAIGF0aF9zdGFy
dChzdHJ1Y3QgaWZuZXQgKmlmcCkKIAogCWlmICgoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJW
X1JVTk5JTkcpID09IDAgfHwgc2MtPnNjX2ludmFsaWQpCiAJCXJldHVybjsKKworCS8qIFhYWCBp
cyBpdCBvayB0byBob2xkIHRoZSBBVEhfTE9DSyBoZXJlPyAqLworCUFUSF9MT0NLKHNjKTsKKwlp
ZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5zY19kZXYs
CisJCSAgICAiJXM6IHNjX2lucmVzZXRfY250ID4gMDsgYmFpbGluZ1xuIiwgX19mdW5jX18pOwor
CQlBVEhfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwlzYy0+c2NfdHhzdGFydF9jbnQrKzsK
KwlBVEhfVU5MT0NLKHNjKTsKKwogCWZvciAoOzspIHsKIAkJLyoKIAkJICogR3JhYiBhIFRYIGJ1
ZmZlciBhbmQgYXNzb2NpYXRlZCByZXNvdXJjZXMuCkBAIC0yMTExLDYgKzIyMDMsMTAgQEAgYXRo
X3N0YXJ0KHN0cnVjdCBpZm5ldCAqaWZwKQogCiAJCXNjLT5zY193ZF90aW1lciA9IDU7CiAJfQor
CisJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHN0YXJ0X2NudC0tOworCUFUSF9VTkxPQ0soc2Mp
OwogfQogCiBzdGF0aWMgaW50CkBAIC0zNjg4LDYgKzM3ODQsMTQgQEAgYXRoX3J4X3Rhc2tsZXQo
dm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAKIAlDVFIxKEFUSF9LVFJfSU5UUiwgImF0aF9yeF9w
cm9jOiBwZW5kaW5nPSVkIiwgbnBlbmRpbmcpOwogCURQUklOVEYoc2MsIEFUSF9ERUJVR19SWF9Q
Uk9DLCAiJXM6IHBlbmRpbmcgJXVcbiIsIF9fZnVuY19fLCBucGVuZGluZyk7CisJQVRIX0xPQ0so
c2MpOworCWlmIChzYy0+c2NfaW5yZXNldF9jbnQgPiAwKSB7CisJCWRldmljZV9wcmludGYoc2Mt
PnNjX2RldiwKKwkJICAgICIlczogc2NfaW5yZXNldF9jbnQgPiAwOyBza2lwcGluZ1xuIiwgX19m
dW5jX18pOworCQlBVEhfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwlBVEhfVU5MT0NLKHNj
KTsKIAlhdGhfcnhfcHJvYyhzYywgMSk7CiB9CiAKQEAgLTM3MTEsNiArMzgxNSwxMyBAQCBhdGhf
cnhfcHJvYyhzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IHJlc2NoZWQpCiAJdV9pbnQ2NF90IHRz
ZjsKIAlpbnQgbnBrdHMgPSAwOwogCisJLyogWFhYIHdlIG11c3Qgbm90IGhvbGQgdGhlIEFUSF9M
T0NLIGhlcmUgKi8KKwlBVEhfVU5MT0NLX0FTU0VSVChzYyk7CisKKwlBVEhfTE9DSyhzYyk7CisJ
c2MtPnNjX3J4cHJvY19jbnQrKzsKKwlBVEhfVU5MT0NLKHNjKTsKKwogCURQUklOVEYoc2MsIEFU
SF9ERUJVR19SWF9QUk9DLCAiJXM6IGNhbGxlZFxuIiwgX19mdW5jX18pOwogCW5nb29kID0gMDsK
IAluZiA9IGF0aF9oYWxfZ2V0Y2hhbm5vaXNlKGFoLCBzYy0+c2NfY3VyY2hhbik7CkBAIC00MDgy
LDYgKzQxOTMsMTAgQEAgcnhfbmV4dDoKIAkJCWF0aF9zdGFydChpZnApOwogCX0KICN1bmRlZiBQ
QTJERVNDCisKKwlBVEhfTE9DSyhzYyk7CisJc2MtPnNjX3J4cHJvY19jbnQtLTsKKwlBVEhfVU5M
T0NLKHNjKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ1ODksNiArNDcwNCw3IEBAIGF0aF90eF9w
cm9jX3EwKHZvaWQgKmFyZywgaW50IG5wZW5kaW5nKQogCXVpbnQzMl90IHR4cXM7CiAKIAlBVEhf
TE9DSyhzYyk7CisJc2MtPnNjX3R4cHJvY19jbnQrKzsKIAl0eHFzID0gc2MtPnNjX3R4cV9hY3Rp
dmU7CiAJc2MtPnNjX3R4cV9hY3RpdmUgJj0gfnR4cXM7CiAJQVRIX1VOTE9DSyhzYyk7CkBAIC00
NjA0LDYgKzQ3MjAsMTAgQEAgYXRoX3R4X3Byb2NfcTAodm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcp
CiAJaWYgKHNjLT5zY19zb2Z0bGVkKQogCQlhdGhfbGVkX2V2ZW50KHNjLCBzYy0+c2NfdHhyaXgp
OwogCisJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHByb2NfY250LS07CisJQVRIX1VOTE9DSyhz
Yyk7CisKIAlhdGhfc3RhcnQoaWZwKTsKIH0KIApAQCAtNDYyMCw2ICs0NzQwLDcgQEAgYXRoX3R4
X3Byb2NfcTAxMjModm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAJdWludDMyX3QgdHhxczsKIAog
CUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhwcm9jX2NudCsrOwogCXR4cXMgPSBzYy0+c2NfdHhx
X2FjdGl2ZTsKIAlzYy0+c2NfdHhxX2FjdGl2ZSAmPSB+dHhxczsKIAlBVEhfVU5MT0NLKHNjKTsK
QEAgLTQ2NDcsNiArNDc2OCwxMCBAQCBhdGhfdHhfcHJvY19xMDEyMyh2b2lkICphcmcsIGludCBu
cGVuZGluZykKIAlpZiAoc2MtPnNjX3NvZnRsZWQpCiAJCWF0aF9sZWRfZXZlbnQoc2MsIHNjLT5z
Y190eHJpeCk7CiAKKwlBVEhfTE9DSyhzYyk7CisJc2MtPnNjX3R4cHJvY19jbnQtLTsKKwlBVEhf
VU5MT0NLKHNjKTsKKwogCWF0aF9zdGFydChpZnApOwogfQogCkBAIC00NjYyLDYgKzQ3ODcsNyBA
QCBhdGhfdHhfcHJvYyh2b2lkICphcmcsIGludCBucGVuZGluZykKIAl1aW50MzJfdCB0eHFzOwog
CiAJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHByb2NfY250Kys7CiAJdHhxcyA9IHNjLT5zY190
eHFfYWN0aXZlOwogCXNjLT5zY190eHFfYWN0aXZlICY9IH50eHFzOwogCUFUSF9VTkxPQ0soc2Mp
OwpAQCAtNDY4Miw2ICs0ODA4LDEwIEBAIGF0aF90eF9wcm9jKHZvaWQgKmFyZywgaW50IG5wZW5k
aW5nKQogCWlmIChzYy0+c2Nfc29mdGxlZCkKIAkJYXRoX2xlZF9ldmVudChzYywgc2MtPnNjX3R4
cml4KTsKIAorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhwcm9jX2NudC0tOworCUFUSF9VTkxP
Q0soc2MpOworCiAJYXRoX3N0YXJ0KGlmcCk7CiB9CiAjdW5kZWYJVFhRQUNUSVZFCkBAIC00ODYz
LDkgKzQ5OTMsMTQgQEAgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBBVEhfUkVT
RVRfVFlQRSByZXNldF90eXBlKQogCiAJKHZvaWQpIGF0aF9zdG9wdHhkbWEoc2MpOwogCi0JZm9y
IChpID0gMDsgaSA8IEhBTF9OVU1fVFhfUVVFVUVTOyBpKyspCi0JCWlmIChBVEhfVFhRX1NFVFVQ
KHNjLCBpKSkKLQkJCWF0aF90eF9kcmFpbnR4cShzYywgJnNjLT5zY190eHFbaV0pOworCWZvciAo
aSA9IDA7IGkgPCBIQUxfTlVNX1RYX1FVRVVFUzsgaSsrKSB7CisJCWlmIChBVEhfVFhRX1NFVFVQ
KHNjLCBpKSkgeworCQkJaWYgKHJlc2V0X3R5cGUgPT0gQVRIX1JFU0VUX05PTE9TUykKKwkJCQlh
dGhfdHhfcHJvY2Vzc3Eoc2MsICZzYy0+c2NfdHhxW2ldLCAwKTsKKwkJCWVsc2UKKwkJCQlhdGhf
dHhfZHJhaW50eHEoc2MsICZzYy0+c2NfdHhxW2ldKTsKKwkJfQorCX0KICNpZmRlZiBBVEhfREVC
VUcKIAlpZiAoc2MtPnNjX2RlYnVnICYgQVRIX0RFQlVHX1JFU0VUKSB7CiAJCXN0cnVjdCBhdGhf
YnVmICpiZiA9IFRBSUxRX0ZJUlNUKCZzYy0+c2NfYmJ1Zik7CkBAIC00OTg0LDYgKzUxMTksMTYg
QEAgYXRoX2NoYW5fc2V0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX2No
YW5uZWwgKmNoYW4pCiAJc3RydWN0IGlmbmV0ICppZnAgPSBzYy0+c2NfaWZwOwogCXN0cnVjdCBp
ZWVlODAyMTFjb20gKmljID0gaWZwLT5pZl9sMmNvbTsKIAlzdHJ1Y3QgYXRoX2hhbCAqYWggPSBz
Yy0+c2NfYWg7CisJaW50IHJldCA9IDA7CisKKwkvKiBUcmVhdCB0aGlzIGFzIGFuIGludGVyZmFj
ZSByZXNldCAqLworCUFUSF9MT0NLKHNjKTsKKwlpZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkK
KwkJZGV2aWNlX3ByaW50ZihzYy0+c2NfZGV2LCAiJXM6IGRhbmdlciEgY29uY3VycmVudCByZXNl
dCFcbiIsCisJCSAgICBfX2Z1bmNfXyk7CisJc2MtPnNjX2lucmVzZXRfY250Kys7CisJQVRIX1VO
TE9DSyhzYyk7CisJYXRoX3R4cnhfc3RvcChzYyk7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdf
UkVTRVQsICIlczogJXUgKCV1IE1IeiwgZmxhZ3MgMHgleClcbiIsCiAJICAgIF9fZnVuY19fLCBp
ZWVlODAyMTFfY2hhbjJpZWVlKGljLCBjaGFuKSwKQEAgLTUwMDQsNyArNTE0OSw4IEBAIGF0aF9j
aGFuX3NldChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpj
aGFuKQogCQkJICAgICJjaGFubmVsICV1ICgldSBNSHosIGZsYWdzIDB4JXgpLCBoYWwgc3RhdHVz
ICV1XG4iLAogCQkJICAgIF9fZnVuY19fLCBpZWVlODAyMTFfY2hhbjJpZWVlKGljLCBjaGFuKSwK
IAkJCSAgICBjaGFuLT5pY19mcmVxLCBjaGFuLT5pY19mbGFncywgc3RhdHVzKTsKLQkJCXJldHVy
biBFSU87CisJCQlyZXQgPSBFSU87CisJCQlnb3RvIGZpbmlzaDsKIAkJfQogCQlzYy0+c2NfZGl2
ZXJzaXR5ID0gYXRoX2hhbF9nZXRkaXZlcnNpdHkoYWgpOwogCkBAIC01MDE3LDcgKzUxNjMsOCBA
QCBhdGhfY2hhbl9zZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBpZWVlODAyMTFfY2hh
bm5lbCAqY2hhbikKIAkJaWYgKGF0aF9zdGFydHJlY3Yoc2MpICE9IDApIHsKIAkJCWlmX3ByaW50
ZihpZnAsICIlczogdW5hYmxlIHRvIHJlc3RhcnQgcmVjdiBsb2dpY1xuIiwKIAkJCSAgICBfX2Z1
bmNfXyk7Ci0JCQlyZXR1cm4gRUlPOworCQkJcmV0ID0gRUlPOworCQkJZ290byBmaW5pc2g7CiAJ
CX0KIAogCQkvKgpAQCAtNTA0NCw3ICs1MTkxLDE0IEBAIGF0aF9jaGFuX3NldChzdHJ1Y3QgYXRo
X3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKQogCQkgKi8KIAkJYXRo
X2hhbF9pbnRyc2V0KGFoLCBzYy0+c2NfaW1hc2spOwogCX0KLQlyZXR1cm4gMDsKKworZmluaXNo
OgorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfaW5yZXNldF9jbnQtLTsKKwlBVEhfVU5MT0NLKHNj
KTsKKwlhdGhfdHhyeF9zdGFydChzYyk7CisKKwlyZXR1cm4gcmV0OwogfQogCiAvKgpAQCAtNTA4
Nyw3ICs1MjQxLDE4IEBAIGF0aF9jYWxpYnJhdGUodm9pZCAqYXJnKQogCQkJRFBSSU5URihzYywg
QVRIX0RFQlVHX0NBTElCUkFURSwKIAkJCQkiJXM6IHJmZ2FpbiBjaGFuZ2VcbiIsIF9fZnVuY19f
KTsKIAkJCXNjLT5zY19zdGF0cy5hc3RfcGVyX3JmZ2FpbisrOworCQkJLyoKKwkJCSAqIERyb3Ag
bG9jayAtIHdlIGNhbid0IGhvbGQgaXQgYWNyb3NzIHRoZQorCQkJICogYXRoX3Jlc2V0KCkgY2Fs
bC4gSW5zdGVhZCwgd2UnbGwgZHJvcAorCQkJICogb3V0IGhlcmUsIGRvIGEgcmVzZXQsIHRoZW4g
cmVzY2hlZHVsZQorCQkJICogdGhlIGNhbGxvdXQuCisJCQkgKi8KKwkJCWNhbGxvdXRfcmVzZXQo
JnNjLT5zY19jYWxfY2gsIDEsIGF0aF9jYWxpYnJhdGUsIHNjKTsKKwkJCXNjLT5zY19yZXNldGNh
bCA9IDA7CisJCQlzYy0+c2NfZG9yZXNldGNhbCA9IEFIX1RSVUU7CisJCQlBVEhfVU5MT0NLKHNj
KTsKIAkJCWF0aF9yZXNldChpZnAsIEFUSF9SRVNFVF9OT0xPU1MpOworCQkJcmV0dXJuOwogCQl9
CiAJCS8qCiAJCSAqIElmIHRoaXMgbG9uZyBjYWwgaXMgYWZ0ZXIgYW4gaWRsZSBwZXJpb2QsIHRo
ZW4KQEAgLTU3NDIsNiArNTkwNyw3IEBAIHN0YXRpYyB2b2lkCiBhdGhfd2F0Y2hkb2codm9pZCAq
YXJnKQogewogCXN0cnVjdCBhdGhfc29mdGMgKnNjID0gYXJnOworCWludCBkb19yZXNldCA9IDA7
CiAKIAlpZiAoc2MtPnNjX3dkX3RpbWVyICE9IDAgJiYgLS1zYy0+c2Nfd2RfdGltZXIgPT0gMCkg
ewogCQlzdHJ1Y3QgaWZuZXQgKmlmcCA9IHNjLT5zY19pZnA7CkBAIC01NzUzLDEwICs1OTE5LDIw
IEBAIGF0aF93YXRjaGRvZyh2b2lkICphcmcpCiAJCQkgICAgaGFuZ3MgJiAweGZmID8gImJiIiA6
ICJtYWMiLCBoYW5ncyk7CiAJCX0gZWxzZQogCQkJaWZfcHJpbnRmKGlmcCwgImRldmljZSB0aW1l
b3V0XG4iKTsKLQkJYXRoX3Jlc2V0KGlmcCwgQVRIX1JFU0VUX05PTE9TUyk7CisJCWRvX3Jlc2V0
ID0gMTsKIAkJaWZwLT5pZl9vZXJyb3JzKys7CiAJCXNjLT5zY19zdGF0cy5hc3Rfd2F0Y2hkb2cr
KzsKIAl9CisKKwkvKgorCSAqIFdlIGNhbid0IGhvbGQgdGhlIGxvY2sgYWNyb3NzIHRoZSBhdGhf
cmVzZXQoKSBjYWxsLgorCSAqLworCWlmIChkb19yZXNldCkgeworCQlBVEhfVU5MT0NLKHNjKTsK
KwkJYXRoX3Jlc2V0KHNjLT5zY19pZnAsIEFUSF9SRVNFVF9OT0xPU1MpOworCQlBVEhfTE9DSyhz
Yyk7CisJfQorCiAJY2FsbG91dF9zY2hlZHVsZSgmc2MtPnNjX3dkX2NoLCBoeik7CiB9CiAKZGlm
ZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aF90eC5jIGIvc3lzL2Rldi9hdGgvaWZfYXRoX3R4
LmMKaW5kZXggYjhjNGM4MC4uMWE4Mzk3ZiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9hdGgvaWZfYXRo
X3R4LmMKKysrIGIvc3lzL2Rldi9hdGgvaWZfYXRoX3R4LmMKQEAgLTQ3Nyw4ICs0NzcsNiBAQCBh
dGhfdHhfaGFuZG9mZl9tY2FzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEg
KnR4cSwKIAl0eHEtPmF4cV9saW5rID0gJmJmLT5iZl9sYXN0ZHMtPmRzX2xpbms7CiB9CiAKLQot
CiAvKgogICogSGFuZC1vZmYgcGFja2V0IHRvIGEgaGFyZHdhcmUgcXVldWUuCiAgKi8KQEAgLTUw
MSw2ICs0OTksMjkgQEAgYXRoX3R4X2hhbmRvZmZfaHcoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0
cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBhdGhfYnVmICpiZikKIAlLQVNTRVJUKHR4cS0+YXhx
X3FudW0gIT0gQVRIX1RYUV9TV1EsCiAJICAgICAoImF0aF90eF9oYW5kb2ZmX2h3IGNhbGxlZCBm
b3IgbWNhc3QgcXVldWUiKSk7CiAKKwlBVEhfTE9DSyhzYyk7CisJaWYgKHNjLT5zY19pbnJlc2V0
X2NudCkgeworCQlBVEhfVU5MT0NLKHNjKTsKKwkJRFBSSU5URihzYywgQVRIX0RFQlVHX1JFU0VU
LAorCQkgICAgIiVzOiBjYWxsZWQgd2l0aCBzY19pbl9yZXNldCAhPSAwXG4iLAorCQkgICAgX19m
dW5jX18pOworCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdfWE1JVCwKKwkJICAgICIlczogcXVldWVk
OiBUWERQWyV1XSA9ICVwICglcCkgZGVwdGggJWRcbiIsCisJCSAgICBfX2Z1bmNfXywgdHhxLT5h
eHFfcW51bSwKKwkJICAgIChjYWRkcl90KWJmLT5iZl9kYWRkciwgYmYtPmJmX2Rlc2MsCisJCSAg
ICB0eHEtPmF4cV9kZXB0aCk7CisJCUFUSF9UWFFfSU5TRVJUX1RBSUwodHhxLCBiZiwgYmZfbGlz
dCk7CisJCWlmIChiZi0+YmZfc3RhdGUuYmZzX2FnZ3IpCisJCQl0eHEtPmF4cV9hZ2dyX2RlcHRo
Kys7CisJCS8qCisJCSAqIFRoZXJlJ3Mgbm8gbmVlZCB0byB1cGRhdGUgYXhxX2xpbms7IHRoZSBo
YXJkd2FyZQorCQkgKiBpcyBpbiByZXNldCBhbmQgb25jZSB0aGUgcmVzZXQgaXMgY29tcGxldGUs
IGFueQorCQkgKiBub24tZW1wdHkgcXVldWVzIHdpbGwgc2ltcGx5IGhhdmUgRE1BIHJlc3RhcnRl
ZC4KKwkJICovCisJCXJldHVybjsKKwl9CisJQVRIX1VOTE9DSyhzYyk7CisKIAkvKiBGb3Igbm93
LCBzbyBub3QgdG8gZ2VuZXJhdGUgd2hpdGVzcGFjZSBkaWZmcyAqLwogCWlmICgxKSB7CiAjaWZk
ZWYgSUVFRTgwMjExX1NVUFBPUlRfVERNQQpAQCAtMTY4OCw2ICsxNzA5LDE3IEBAIGF0aF9yYXdf
eG1pdChzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1Y3QgbWJ1ZiAqbSwKIAlzdHJ1Y3Qg
YXRoX2J1ZiAqYmY7CiAJaW50IGVycm9yOwogCisJQVRIX0xPQ0soc2MpOworCWlmIChzYy0+c2Nf
aW5yZXNldF9jbnQgPiAwKSB7CisJCWRldmljZV9wcmludGYoc2MtPnNjX2RldiwgIiVzOiBzY19p
bnJlc2V0X2NudCA+IDA7IGJhaWxpbmdcbiIsCisJCSAgICBfX2Z1bmNfXyk7CisJCWVycm9yID0g
RUlPOworCQlBVEhfVU5MT0NLKHNjKTsKKwkJZ290byBiYWQwOworCX0KKwlzYy0+c2NfdHhzdGFy
dF9jbnQrKzsKKwlBVEhfVU5MT0NLKHNjKTsKKwogCWlmICgoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJ
RkZfRFJWX1JVTk5JTkcpID09IDAgfHwgc2MtPnNjX2ludmFsaWQpIHsKIAkJRFBSSU5URihzYywg
QVRIX0RFQlVHX1hNSVQsICIlczogZGlzY2FyZCBmcmFtZSwgJXMiLCBfX2Z1bmNfXywKIAkJICAg
IChpZnAtPmlmX2Rydl9mbGFncyAmIElGRl9EUlZfUlVOTklORykgPT0gMCA/CkBAIC0xNzMwLDE1
ICsxNzYyLDI0IEBAIGF0aF9yYXdfeG1pdChzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1
Y3QgbWJ1ZiAqbSwKIAlpZnAtPmlmX29wYWNrZXRzKys7CiAJc2MtPnNjX3N0YXRzLmFzdF90eF9y
YXcrKzsKIAorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhzdGFydF9jbnQtLTsKKwlBVEhfVU5M
T0NLKHNjKTsKKwogCXJldHVybiAwOwogYmFkMjoKIAlBVEhfVFhCVUZfTE9DSyhzYyk7CiAJVEFJ
TFFfSU5TRVJUX0hFQUQoJnNjLT5zY190eGJ1ZiwgYmYsIGJmX2xpc3QpOwogCUFUSF9UWEJVRl9V
TkxPQ0soc2MpOwogYmFkOgorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhzdGFydF9jbnQtLTsK
KwlBVEhfVU5MT0NLKHNjKTsKK2JhZDA6CiAJaWZwLT5pZl9vZXJyb3JzKys7CiAJc2MtPnNjX3N0
YXRzLmFzdF90eF9yYXdfZmFpbCsrOwogCWllZWU4MDIxMV9mcmVlX25vZGUobmkpOworCiAJcmV0
dXJuIGVycm9yOwogfQogCmRpZmYgLS1naXQgYS9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaCBiL3N5
cy9kZXYvYXRoL2lmX2F0aHZhci5oCmluZGV4IDIxODI5YTYyLi40NDc2MmEwIDEwMDY0NAotLS0g
YS9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaAorKysgYi9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaApA
QCAtNDI0LDYgKzQyNCw3IEBAIHN0cnVjdCBhdGhfc29mdGMgewogCXVfaW50CQkJc2NfdHhhbnRl
bm5hOwkvKiB0eCBhbnRlbm5hIChmaXhlZCBvciBhdXRvKSAqLwogCiAJSEFMX0lOVAkJCXNjX2lt
YXNrOwkvKiBpbnRlcnJ1cHQgbWFzayBjb3B5ICovCisKIAkvKgogCSAqIFRoZXNlIGFyZSBtb2Rp
ZmllZCBpbiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgYXMgd2VsbCBhcwogCSAqIHRoZSB0YXNrIHF1
ZXVlcyBhbmQgb3RoZXIgY29udGV4dHMuIFRodXMgdGhlc2UgbXVzdCBiZQpAQCAtNDM0LDYgKzQz
NSwxMSBAQCBzdHJ1Y3QgYXRoX3NvZnRjIHsKIAkgKi8KIAl1aW50MzJfdAkJc2NfdHhxX2FjdGl2
ZTsJLyogYml0bWFwIG9mIGFjdGl2ZSBUWFFzICovCiAJdWludDMyX3QJCXNjX2tpY2twY3U7CS8q
IHdoZXRoZXIgdG8ga2ljayB0aGUgUENVICovCisJdWludDMyX3QJCXNjX3J4cHJvY19jbnQ7CS8q
IEluIFJYIHByb2Nlc3NpbmcgKi8KKwl1aW50MzJfdAkJc2NfdHhwcm9jX2NudDsJLyogSW4gVFgg
cHJvY2Vzc2luZyAqLworCXVpbnQzMl90CQlzY190eHN0YXJ0X2NudDsJLyogSW4gVFggb3V0cHV0
IChyYXcvc3RhcnQpICovCisJdWludDMyX3QJCXNjX2lucmVzZXRfY250OwkvKiBJbiBhY3RpdmUg
cmVzZXQvY2hhbmNoYW5nZSAqLworCXVpbnQzMl90CQlzY190eHJ4X2NudDsJLyogcmVmY291bnQg
b24gc3RvcC9zdGFydCdpbmcgVFggKi8KIAogCXVfaW50CQkJc2Nfa2V5bWF4OwkvKiBzaXplIG9m
IGtleSBjYWNoZSAqLwogCXVfaW50OF90CQlzY19rZXltYXBbQVRIX0tFWUJZVEVTXTsvKiBrZXkg
dXNlIGJpdCBtYXAgKi8KQEAgLTU1Myw2ICs1NTksNyBAQCBzdHJ1Y3QgYXRoX3NvZnRjIHsKICNk
ZWZpbmUJQVRIX0xPQ0soX3NjKQkJbXR4X2xvY2soJihfc2MpLT5zY19tdHgpCiAjZGVmaW5lCUFU
SF9VTkxPQ0soX3NjKQkJbXR4X3VubG9jaygmKF9zYyktPnNjX210eCkKICNkZWZpbmUJQVRIX0xP
Q0tfQVNTRVJUKF9zYykJbXR4X2Fzc2VydCgmKF9zYyktPnNjX210eCwgTUFfT1dORUQpCisjZGVm
aW5lCUFUSF9VTkxPQ0tfQVNTRVJUKF9zYykJbXR4X2Fzc2VydCgmKF9zYyktPnNjX210eCwgTUFf
Tk9UT1dORUQpCiAKIC8qCiAgKiBUaGUgUENVIGxvY2sgaXMgbm9uLXJlY3Vyc2l2ZSBhbmQgc2hv
dWxkIGJlIHRyZWF0ZWQgYXMgYSBzcGlubG9jay4K
--20cf307f30a25c138804b1bac652--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmokEYWi=CWsbYN-RewU6noEmtjr0RxTGMzJJ_-CA3S=uFQ>