Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Nov 2006 18:16:33 -0800
From:      "Jack Vogel" <jfvogel@gmail.com>
To:        freebsd-stable@freebsd.org, freebsd-net <freebsd-net@freebsd.org>
Subject:   New em patch for 6.2 BETA 3
Message-ID:  <2a41acea0611031816n1af99819rdc6b99e9dd2deb7c@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
------=_Part_43447_15205892.1162606593613
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

I have been hard at work trying to understand and fix the
remaining issues with the em driver. What I have here is
a patch that has gotten rid of any issues that I can reproduce.

It solves the intermittent watchdogs that have been happening.
It also fixes the problem noted with jumbo frame tx

I, and re, would very much appreciate any test feedback you can
give on this code. I am happy with the changes, I hope these get
rid of everyone's issues.

Thanks to Gleb and Scott and John for all the help!

Jack

------=_Part_43447_15205892.1162606593613
Content-Type: text/x-patch; name=em-stable.patch; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: base64
X-Attachment-Id: f_eu3t3js5
Content-Disposition: attachment; filename="em-stable.patch"

ZGlmZiAtTmF1ciBzdGFibGUvZGV2L2VtL2lmX2VtLmMgamZ2L2Rldi9lbS9pZl9lbS5jCi0tLSBz
dGFibGUvZGV2L2VtL2lmX2VtLmMJRnJpIE5vdiAgMyAwMjowMjoyOSAyMDA2CisrKyBqZnYvZGV2
L2VtL2lmX2VtLmMJU2F0IE5vdiAgNCAwOToxODo0OCAyMDA2CkBAIC0yMDQsNyArMjA0LDcgQEAK
IHN0YXRpYyB2b2lkCWVtX3N0YXJ0KHN0cnVjdCBpZm5ldCAqKTsKIHN0YXRpYyB2b2lkCWVtX3N0
YXJ0X2xvY2tlZChzdHJ1Y3QgaWZuZXQgKmlmcCk7CiBzdGF0aWMgaW50CWVtX2lvY3RsKHN0cnVj
dCBpZm5ldCAqLCB1X2xvbmcsIGNhZGRyX3QpOwotc3RhdGljIHZvaWQJZW1fd2F0Y2hkb2coc3Ry
dWN0IGlmbmV0ICopOworc3RhdGljIHZvaWQJZW1fd2F0Y2hkb2codm9pZCAqKTsKIHN0YXRpYyB2
b2lkCWVtX2luaXQodm9pZCAqKTsKIHN0YXRpYyB2b2lkCWVtX2luaXRfbG9ja2VkKHN0cnVjdCBh
ZGFwdGVyICopOwogc3RhdGljIHZvaWQJZW1fc3RvcCh2b2lkICopOwpAQCAtMjUzLDggKzI1Myw3
IEBACiBzdGF0aWMgaW50CWVtXzgyNTQ3X2ZpZm9fd29ya2Fyb3VuZChzdHJ1Y3QgYWRhcHRlciAq
LCBpbnQpOwogc3RhdGljIHZvaWQJZW1fODI1NDdfdXBkYXRlX2ZpZm9faGVhZChzdHJ1Y3QgYWRh
cHRlciAqLCBpbnQpOwogc3RhdGljIGludAllbV84MjU0N190eF9maWZvX3Jlc2V0KHN0cnVjdCBh
ZGFwdGVyICopOwotc3RhdGljIHZvaWQJZW1fODI1NDdfbW92ZV90YWlsKHZvaWQgKmFyZyk7Ci1z
dGF0aWMgdm9pZAllbV84MjU0N19tb3ZlX3RhaWxfbG9ja2VkKHN0cnVjdCBhZGFwdGVyICopOwor
c3RhdGljIHZvaWQJZW1fODI1NDdfbW92ZV90YWlsKHZvaWQgKik7CiBzdGF0aWMgaW50CWVtX2Rt
YV9tYWxsb2Moc3RydWN0IGFkYXB0ZXIgKiwgYnVzX3NpemVfdCwKIAkJc3RydWN0IGVtX2RtYV9h
bGxvYyAqLCBpbnQpOwogc3RhdGljIHZvaWQJZW1fZG1hX2ZyZWUoc3RydWN0IGFkYXB0ZXIgKiwg
c3RydWN0IGVtX2RtYV9hbGxvYyAqKTsKQEAgLTQwNiw4ICs0MDUsOSBAQAogCSAgICBPSURfQVVU
TywgInN0YXRzIiwgQ1RMVFlQRV9JTlR8Q1RMRkxBR19SVywgYWRhcHRlciwgMCwKIAkgICAgZW1f
c3lzY3RsX3N0YXRzLCAiSSIsICJTdGF0aXN0aWNzIik7CiAKLQljYWxsb3V0X2luaXQoJmFkYXB0
ZXItPnRpbWVyLCBDQUxMT1VUX01QU0FGRSk7Ci0JY2FsbG91dF9pbml0KCZhZGFwdGVyLT50eF9m
aWZvX3RpbWVyLCBDQUxMT1VUX01QU0FGRSk7CisJY2FsbG91dF9pbml0X210eCgmYWRhcHRlci0+
dGltZXIsICZhZGFwdGVyLT5tdHgsIDApOworCWNhbGxvdXRfaW5pdF9tdHgoJmFkYXB0ZXItPndh
dGNoZG9nLCAmYWRhcHRlci0+bXR4LCAwKTsKKwljYWxsb3V0X2luaXRfbXR4KCZhZGFwdGVyLT50
eF9maWZvX3RpbWVyLCAmYWRhcHRlci0+bXR4LCAwKTsKIAogCS8qIERldGVybWluZSBoYXJkd2Fy
ZSByZXZpc2lvbiAqLwogCWVtX2lkZW50aWZ5X2hhcmR3YXJlKGFkYXB0ZXIpOwpAQCAtNjIyLDYg
KzYyMiw5IEBACiAJRU1fVU5MT0NLKGFkYXB0ZXIpOwogCWV0aGVyX2lmZGV0YWNoKGFkYXB0ZXIt
PmlmcCk7CiAKKwljYWxsb3V0X2RyYWluKCZhZGFwdGVyLT50aW1lcik7CisJY2FsbG91dF9kcmFp
bigmYWRhcHRlci0+dHhfZmlmb190aW1lcik7CisKIAllbV9mcmVlX3BjaV9yZXNvdXJjZXMoYWRh
cHRlcik7CiAJYnVzX2dlbmVyaWNfZGV0YWNoKGRldik7CiAJaWZfZnJlZShpZnApOwpAQCAtNzM5
LDcgKzc0Miw3IEBACiAJCUJQRl9NVEFQKGlmcCwgbV9oZWFkKTsKIAogCQkvKiBTZXQgdGltZW91
dCBpbiBjYXNlIGhhcmR3YXJlIGhhcyBwcm9ibGVtcyB0cmFuc21pdHRpbmcuICovCi0JCWlmcC0+
aWZfdGltZXIgPSBFTV9UWF9USU1FT1VUOworCQljYWxsb3V0X3Jlc2V0KCZhZGFwdGVyLT53YXRj
aGRvZywgNSAqIGh6LCBlbV93YXRjaGRvZywgYWRhcHRlcik7CiAJfQogfQogCkBAIC05NDcsMTcg
Kzk1MCwyOCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIHN0YXRpYyB2b2lkCi1lbV93YXRjaGRvZyhz
dHJ1Y3QgaWZuZXQgKmlmcCkKK2VtX3dhdGNoZG9nKHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgYWRh
cHRlciAqYWRhcHRlciA9IGlmcC0+aWZfc29mdGM7CisJc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIg
PSBhcmc7CisJc3RydWN0IGlmbmV0CSppZnAgPSBhZGFwdGVyLT5pZnA7CisKKwkvKgorCSoqIElm
IHdlIGFyZSBhYm92ZSB0aGUgY2xlYW4gdGhyZXNob2xkIGRpc2FybSBjYWxsYmFjaworCSoqIGVs
c2UgcmVhcm0gZm9yIDUgc2Vjcy4KKwkqLworCWlmIChhZGFwdGVyLT5udW1fdHhfZGVzY19hdmFp
bCA+IEVNX1RYX0NMRUFOVVBfVEhSRVNIT0xEKSB7CisJCWNhbGxvdXRfc3RvcCgmYWRhcHRlci0+
d2F0Y2hkb2cpOworCQlyZXR1cm47CisJfSBlbHNlIGlmIChhZGFwdGVyLT5udW1fdHhfZGVzY19h
dmFpbCA+IEVNX1RYX09QX1RIUkVTSE9MRCkgeworCQljYWxsb3V0X3Jlc2V0KCZhZGFwdGVyLT53
YXRjaGRvZywgNSAqIGh6LCBlbV93YXRjaGRvZywgYWRhcHRlcik7CisJCXJldHVybjsKKwl9CiAK
LQlFTV9MT0NLKGFkYXB0ZXIpOwogCS8qIElmIHdlIGFyZSBpbiB0aGlzIHJvdXRpbmUgYmVjYXVz
ZSBvZiBwYXVzZSBmcmFtZXMsIHRoZW4KIAkgKiBkb24ndCByZXNldCB0aGUgaGFyZHdhcmUuCiAJ
ICovCiAJaWYgKEUxMDAwX1JFQURfUkVHKCZhZGFwdGVyLT5odywgU1RBVFVTKSAmIEUxMDAwX1NU
QVRVU19UWE9GRikgewotCQlpZnAtPmlmX3RpbWVyID0gRU1fVFhfVElNRU9VVDsKLQkJRU1fVU5M
T0NLKGFkYXB0ZXIpOworCQljYWxsb3V0X3N0b3AoJmFkYXB0ZXItPndhdGNoZG9nKTsKIAkJcmV0
dXJuOwogCX0KIApAQCAtOTY4LDcgKzk4Miw2IEBACiAJYWRhcHRlci0+d2F0Y2hkb2dfZXZlbnRz
Kys7CiAKIAllbV9pbml0X2xvY2tlZChhZGFwdGVyKTsKLQlFTV9VTkxPQ0soYWRhcHRlcik7CiB9
CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioKQEAgLTExNTQsNiArMTE2Nyw4IEBACiAgKiAgSW50ZXJydXB0IFNl
cnZpY2Ugcm91dGluZSAgCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgRU1fTUFYX0lOVFIg
MTAKKwogc3RhdGljIHZvaWQKIGVtX2ludHIodm9pZCAqYXJnKQogewpAQCAtMTE2Miw3ICsxMTc3
LDYgQEAKIAl1aW50MzJfdAlyZWdfaWNyOwogCiAJRU1fTE9DSyhhZGFwdGVyKTsKLQogCWlmcCA9
IGFkYXB0ZXItPmlmcDsKIAogI2lmZGVmIERFVklDRV9QT0xMSU5HCkBAIC0xMTcyLDI4ICsxMTg2
LDI0IEBACiAJfQogI2VuZGlmIC8qIERFVklDRV9QT0xMSU5HICovCiAKLQlmb3IgKDs7KSB7Ci0J
CXJlZ19pY3IgPSBFMTAwMF9SRUFEX1JFRygmYWRhcHRlci0+aHcsIElDUik7Ci0JCWlmIChhZGFw
dGVyLT5ody5tYWNfdHlwZSA+PSBlbV84MjU3MSAmJgotCQkgICAgKHJlZ19pY3IgJiBFMTAwMF9J
Q1JfSU5UX0FTU0VSVEVEKSA9PSAwKQotCQkJYnJlYWs7Ci0JCWVsc2UgaWYgKHJlZ19pY3IgPT0g
MCkKLQkJCWJyZWFrOworCXJlZ19pY3IgPSBFMTAwMF9SRUFEX1JFRygmYWRhcHRlci0+aHcsIElD
Uik7CiAKLQkJLyoKLQkJICogWFhYOiBzb21lIGxhcHRvcHMgdHJpZ2dlciBzZXZlcmFsIHNwdXJp
b3VzIGludGVycnVwdHMKLQkJICogb24gZW0oNCkgd2hlbiBpbiB0aGUgcmVzdW1lIGN5Y2xlLiBU
aGUgSUNSIHJlZ2lzdGVyCi0JCSAqIHJlcG9ydHMgYWxsLW9uZXMgdmFsdWUgaW4gdGhpcyBjYXNl
LiBQcm9jZXNzaW5nIHN1Y2gKLQkJICogaW50ZXJydXB0cyB3b3VsZCBsZWFkIHRvIGEgZnJlZXpl
LiBJIGRvbid0IGtub3cgd2h5LgotCQkgKi8KLQkJaWYgKHJlZ19pY3IgPT0gMHhmZmZmZmZmZikK
LQkJCWJyZWFrOworCWlmICgocmVnX2ljciA9PSAwKSB8fCAoYWRhcHRlci0+aHcubWFjX3R5cGUg
Pj0gZW1fODI1NzEgJiYKKwkgICAgKHJlZ19pY3IgJiBFMTAwMF9JQ1JfSU5UX0FTU0VSVEVEKSA9
PSAwKSB8fAorCS8qCisJICogWFhYOiBzb21lIGxhcHRvcHMgdHJpZ2dlciBzZXZlcmFsIHNwdXJp
b3VzIGludGVycnVwdHMKKwkgKiBvbiBlbSg0KSB3aGVuIGluIHRoZSByZXN1bWUgY3ljbGUuIFRo
ZSBJQ1IgcmVnaXN0ZXIKKwkgKiByZXBvcnRzIGFsbC1vbmVzIHZhbHVlIGluIHRoaXMgY2FzZS4g
UHJvY2Vzc2luZyBzdWNoCisJICogaW50ZXJydXB0cyB3b3VsZCBsZWFkIHRvIGEgZnJlZXplLiBJ
IGRvbid0IGtub3cgd2h5LgorCSAqLworCSAgICAocmVnX2ljciA9PSAweGZmZmZmZmZmKSkKKwkJ
Z290byBsZWF2aW5nOwogCisJZm9yIChpbnQgaSA9IDA7aSA8IEVNX01BWF9JTlRSOyArK2kpIHsK
IAkJaWYgKGlmcC0+aWZfZHJ2X2ZsYWdzICYgSUZGX0RSVl9SVU5OSU5HKSB7Ci0JCQllbV9yeGVv
ZihhZGFwdGVyLCAtMSk7CisJCQllbV9yeGVvZihhZGFwdGVyLCAxMDApOwogCQkJZW1fdHhlb2Yo
YWRhcHRlcik7CiAJCX0KLQogCQkvKiBMaW5rIHN0YXR1cyBjaGFuZ2UgKi8KIAkJaWYgKHJlZ19p
Y3IgJiAoRTEwMDBfSUNSX1JYU0VRIHwgRTEwMDBfSUNSX0xTQykpIHsKIAkJCWNhbGxvdXRfc3Rv
cCgmYWRhcHRlci0+dGltZXIpOwpAQCAtMTIwOCwxMCArMTIxOCwxMCBAQAogCQkJYWRhcHRlci0+
cnhfb3ZlcnJ1bnMrKzsKIAl9CiAKK2xlYXZpbmc6CiAJaWYgKGlmcC0+aWZfZHJ2X2ZsYWdzICYg
SUZGX0RSVl9SVU5OSU5HICYmCiAJICAgICFJRlFfRFJWX0lTX0VNUFRZKCZpZnAtPmlmX3NuZCkp
CiAJCWVtX3N0YXJ0X2xvY2tlZChpZnApOwotCiAJRU1fVU5MT0NLKGFkYXB0ZXIpOwogfQogCkBA
IC0xMzY4LDIwICsxMzc4LDEzIEBACiAgICAgICAgICAqLwogCWlmIChhZGFwdGVyLT5udW1fdHhf
ZGVzY19hdmFpbCA8PSBFTV9UWF9DTEVBTlVQX1RIUkVTSE9MRCkgewogCQllbV90eGVvZihhZGFw
dGVyKTsKLQkJaWYgKGFkYXB0ZXItPm51bV90eF9kZXNjX2F2YWlsIDw9IEVNX1RYX0NMRUFOVVBf
VEhSRVNIT0xEKSB7CisJCS8qIE5vdyBkbyB3ZSBhdCBsZWFzdCBoYXZlIGEgbWluaW1hbD8gKi8K
KwkJaWYgKGFkYXB0ZXItPm51bV90eF9kZXNjX2F2YWlsIDw9IEVNX1RYX09QX1RIUkVTSE9MRCkg
ewogCQkJYWRhcHRlci0+bm9fdHhfZGVzY19hdmFpbDErKzsKIAkJCXJldHVybihFTk9CVUZTKTsK
IAkJfQogICAgICAgICB9CiAKLQkvKgotCSAqIENhcHR1cmUgdGhlIGZpcnN0IGRlc2NyaXB0b3Ig
aW5kZXgsCi0JICogdGhpcyBkZXNjcmlwdG9yIHdpbGwgaGF2ZSB0aGUgaW5kZXgKLQkgKiBvZiB0
aGUgRU9QIHdoaWNoIGlzIHRoZSBvbmx5IG9uZSB0aGF0Ci0JICogbm93IGdldHMgYSBET05FIGJp
dCB3cml0ZWJhY2suCi0JICovCi0JZmlyc3QgPSBhZGFwdGVyLT5uZXh0X2F2YWlsX3R4X2Rlc2M7
Ci0KICAgICAgICAgLyogRmluZCBvdXQgaWYgd2UgYXJlIGluIHZsYW4gbW9kZSAqLwogICAgICAg
ICBtdGFnID0gVkxBTl9PVVRQVVRfVEFHKGlmcCwgbV9oZWFkKTsKIApAQCAtMTQzMyw2ICsxNDM2
LDE0IEBACiAJCQlyZXR1cm4gKEVOT0JVRlMpOwogCX0KIAorCS8qCisJICogQ2FwdHVyZSB0aGUg
Zmlyc3QgZGVzY3JpcHRvciBpbmRleCwKKwkgKiB0aGlzIGRlc2NyaXB0b3Igd2lsbCBoYXZlIHRo
ZSBpbmRleAorCSAqIG9mIHRoZSBFT1Agd2hpY2ggaXMgdGhlIG9ubHkgb25lIHRoYXQKKwkgKiBu
b3cgZ2V0cyBhIERPTkUgYml0IHdyaXRlYmFjay4KKwkgKi8KKwlmaXJzdCA9IGFkYXB0ZXItPm5l
eHRfYXZhaWxfdHhfZGVzYzsKKwogICAgICAgICAvKgogICAgICAgICAgKiBNYXAgdGhlIHBhY2tl
dCBmb3IgRE1BLgogICAgICAgICAgKi8KQEAgLTE0NTIsNiArMTQ2Myw3IEBACiAJCQlyZXR1cm4g
KEVOT0JVRlMpOwogCQl9CiAJCSptX2hlYWRwID0gbTsKKwogCQkvKiBUcnkgaXQgYWdhaW4gKi8K
IAkJZXJyb3IgPSBidXNfZG1hbWFwX2xvYWRfbWJ1Zl9zZyhhZGFwdGVyLT50eHRhZywgdHhfYnVm
ZmVyLT5tYXAsCiAJCSAgICAqbV9oZWFkcCwgc2VncywgJm5zZWdzLCBCVVNfRE1BX05PV0FJVCk7
CkBAIC0xNjM4LDcgKzE2NTAsNyBAQAogCSAgICBCVVNfRE1BU1lOQ19QUkVSRUFEIHwgQlVTX0RN
QVNZTkNfUFJFV1JJVEUpOwogCWlmIChhZGFwdGVyLT5ody5tYWNfdHlwZSA9PSBlbV84MjU0NyAm
JgogCSAgICBhZGFwdGVyLT5saW5rX2R1cGxleCA9PSBIQUxGX0RVUExFWCkKLQkJZW1fODI1NDdf
bW92ZV90YWlsX2xvY2tlZChhZGFwdGVyKTsKKwkJZW1fODI1NDdfbW92ZV90YWlsKGFkYXB0ZXIp
OwogCWVsc2UgewogCQlFMTAwMF9XUklURV9SRUcoJmFkYXB0ZXItPmh3LCBURFQsIGkpOwogCQlp
ZiAoYWRhcHRlci0+aHcubWFjX3R5cGUgPT0gZW1fODI1NDcpCkBAIC0xNjYyLDggKzE2NzQsOSBA
QAogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHZvaWQKLWVtXzgyNTQ3X21vdmVfdGFpbF9s
b2NrZWQoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpCitlbV84MjU0N19tb3ZlX3RhaWwodm9pZCAq
YXJnKQogeworCXN0cnVjdCBhZGFwdGVyICphZGFwdGVyID0gYXJnOwogCXVpbnQxNl90IGh3X3Rk
dDsKIAl1aW50MTZfdCBzd190ZHQ7CiAJc3RydWN0IGVtX3R4X2Rlc2MgKnR4X2Rlc2M7CkBAIC0x
Njk2LDE1ICsxNzA5LDYgQEAKIAl9CQogfQogCi1zdGF0aWMgdm9pZAotZW1fODI1NDdfbW92ZV90
YWlsKHZvaWQgKmFyZykKLXsKLQlzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciA9IGFyZzsKLQotCUVN
X0xPQ0soYWRhcHRlcik7Ci0JZW1fODI1NDdfbW92ZV90YWlsX2xvY2tlZChhZGFwdGVyKTsKLQlF
TV9VTkxPQ0soYWRhcHRlcik7Ci19CiAKIHN0YXRpYyBpbnQKIGVtXzgyNTQ3X2ZpZm9fd29ya2Fy
b3VuZChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlciwgaW50IGxlbikKQEAgLTE4OTMsNyArMTg5Nyw3
IEBACiAJc3RydWN0IGFkYXB0ZXIJKmFkYXB0ZXIgPSBhcmc7CiAJc3RydWN0IGlmbmV0CSppZnAg
PSBhZGFwdGVyLT5pZnA7CiAKLQlFTV9MT0NLKGFkYXB0ZXIpOworCUVNX0xPQ0tfQVNTRVJUKGFk
YXB0ZXIpOwogCiAJZW1fY2hlY2tfZm9yX2xpbmsoJmFkYXB0ZXItPmh3KTsKIAllbV91cGRhdGVf
bGlua19zdGF0dXMoYWRhcHRlcik7CkBAIC0xOTA0LDcgKzE5MDgsNiBAQAogCiAJY2FsbG91dF9y
ZXNldCgmYWRhcHRlci0+dGltZXIsIGh6LCBlbV9sb2NhbF90aW1lciwgYWRhcHRlcik7CiAKLQlF
TV9VTkxPQ0soYWRhcHRlcik7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0yMjI5LDcgKzIyMzIsOCBA
QAogCWlmcC0+aWZfZmxhZ3MgPSBJRkZfQlJPQURDQVNUIHwgSUZGX1NJTVBMRVggfCBJRkZfTVVM
VElDQVNUOwogCWlmcC0+aWZfaW9jdGwgPSBlbV9pb2N0bDsKIAlpZnAtPmlmX3N0YXJ0ID0gZW1f
c3RhcnQ7Ci0JaWZwLT5pZl93YXRjaGRvZyA9IGVtX3dhdGNoZG9nOworCWlmcC0+aWZfdGltZXIg
PSAwOwkvKiBEaXNhYmxlIG5ldCBsYXllciB3YXRjaGRvZyAqLworCWlmcC0+aWZfd2F0Y2hkb2cg
PSBOVUxMOwogCUlGUV9TRVRfTUFYTEVOKCZpZnAtPmlmX3NuZCwgYWRhcHRlci0+bnVtX3R4X2Rl
c2MgLSAxKTsKIAlpZnAtPmlmX3NuZC5pZnFfZHJ2X21heGxlbiA9IGFkYXB0ZXItPm51bV90eF9k
ZXNjIC0gMTsKIAlJRlFfU0VUX1JFQURZKCZpZnAtPmlmX3NuZCk7CkBAIC0yNDUzLDI2ICsyNDU3
LDE5IEBACiB7CiAJZGV2aWNlX3QgZGV2ID0gYWRhcHRlci0+ZGV2OwogCXN0cnVjdCBlbV9idWZm
ZXIgKnR4X2J1ZmZlcjsKLQlidXNfc2l6ZV90IHNpemUsIHNlZ3NpemU7CiAJaW50IGVycm9yLCBp
OwogCi0jaWZkZWYgRU1fVFNPCi0Jc2l6ZSA9IEVNX1RTT19TSVpFOwotCXNlZ3NpemUgPSBQQUdF
X1NJWkU7Ci0jZWxzZQotCXNlZ3NpemUgPSBzaXplID0gcm91bmR1cDIoYWRhcHRlci0+aHcubWF4
X2ZyYW1lX3NpemUsIE1DTEJZVEVTKTsKLSNlbmRpZgogCS8qCi0JICogU2V0dXAgRE1BIGRlc2Ny
aXB0b3IgYXJlYXMuCisJICogQ3JlYXRlIERNQSB0YWdzIGZvciB0eCBkZXNjcmlwdG9ycwogCSAq
LwogCWlmICgoZXJyb3IgPSBidXNfZG1hX3RhZ19jcmVhdGUoTlVMTCwJCS8qIHBhcmVudCAqLwog
CQkJCTEsIDAsCQkJLyogYWxpZ25tZW50LCBib3VuZHMgKi8KIAkJCQlCVVNfU1BBQ0VfTUFYQURE
UiwJLyogbG93YWRkciAqLwogCQkJCUJVU19TUEFDRV9NQVhBRERSLAkvKiBoaWdoYWRkciAqLwog
CQkJCU5VTEwsIE5VTEwsCQkvKiBmaWx0ZXIsIGZpbHRlcmFyZyAqLwotCQkJCXNpemUsCQkJLyog
bWF4c2l6ZSAqLworCQkJCUVNX1RTT19TSVpFLAkJLyogbWF4c2l6ZSAqLwogCQkJCUVNX01BWF9T
Q0FUVEVSLAkJLyogbnNlZ21lbnRzICovCi0JCQkJc2Vnc2l6ZSwJCS8qIG1heHNlZ3NpemUgKi8K
KwkJCQlQQUdFX1NJWkUsCQkvKiBtYXhzZWdzaXplICovCiAJCQkJMCwJCQkvKiBmbGFncyAqLwog
CQkJCU5VTEwsCQkvKiBsb2NrZnVuYyAqLwogCQkJCU5VTEwsCQkvKiBsb2NrYXJnICovCkBAIC0y
NDg5LDYgKzI0ODYsNyBAQAogCQlnb3RvIGZhaWw7CiAJfQogCisJLyogQ3JlYXRlIHRoZSBkZXNj
cmlwdG9yIGJ1ZmZlciBkbWEgbWFwcyAqLwogCXR4X2J1ZmZlciA9IGFkYXB0ZXItPnR4X2J1ZmZl
cl9hcmVhOwogCWZvciAoaSA9IDA7IGkgPCBhZGFwdGVyLT5udW1fdHhfZGVzYzsgaSsrKSB7CiAJ
CWVycm9yID0gYnVzX2RtYW1hcF9jcmVhdGUoYWRhcHRlci0+dHh0YWcsIDAsICZ0eF9idWZmZXIt
Pm1hcCk7CkBAIC0yNTE3LDYgKzI1MTUsNyBAQAogCXN0cnVjdCBlbV9idWZmZXIgKnR4X2J1ZmZl
cjsKIAlpbnQgaTsKIAorCS8qIENsZWFyIHRoZSBvbGQgcmluZyBjb250ZW50cyAqLwogCWJ6ZXJv
KGFkYXB0ZXItPnR4X2Rlc2NfYmFzZSwKIAkgICAgKHNpemVvZihzdHJ1Y3QgZW1fdHhfZGVzYykp
ICogYWRhcHRlci0+bnVtX3R4X2Rlc2MpOwogCkBAIC0yODU3LDggKzI4NTYsMTAgQEAKICAgICAg
ICAgZW9wX2Rlc2MgPSAmYWRhcHRlci0+dHhfZGVzY19iYXNlW2xhc3RdOwogCiAJLyoKLQkgKiBO
b3cgY2FjdWxhdGUgdGhlIHRlcm1pbmF0aW5nIGluZGV4Ci0JICogZm9yIHRoZSBjbGVhbnVwIGxv
b3AgYmVsb3cKKwkgKiBXaGF0IHRoaXMgZG9lcyBpcyBnZXQgdGhlIGluZGV4IG9mIHRoZQorCSAq
IGZpcnN0IGRlc2NyaXB0b3IgQUZURVIgdGhlIEVPUCBvZiB0aGUgCisJICogZmlyc3QgcGFja2V0
LCB0aGF0IHdheSB3ZSBjYW4gZG8gdGhlCisJICogc2ltcGxlIGNvbXBhcmlzb24gb24gdGhlIGlu
bmVyIHdoaWxlIGxvb3AuCiAJICovCiAJaWYgKCsrbGFzdCA9PSBhZGFwdGVyLT5udW1fdHhfZGVz
YykgbGFzdCA9IDA7CiAJZG9uZSA9IGxhc3Q7CkBAIC0yOTE2LDkgKzI5MTcsMTAgQEAKICAgICAg
ICAgaWYgKG51bV9hdmFpbCA+IEVNX1RYX0NMRUFOVVBfVEhSRVNIT0xEKSB7ICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmcC0+aWZfZHJ2X2ZsYWdzICY9IH5JRkZfRFJWX09BQ1RJ
VkU7CiAgICAgICAgICAgICAgICAgaWYgKG51bV9hdmFpbCA9PSBhZGFwdGVyLT5udW1fdHhfZGVz
YykKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfdGltZXIgPSAwOworCQkJY2FsbG91
dF9zdG9wKCZhZGFwdGVyLT53YXRjaGRvZyk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAobnVt
X2F2YWlsICE9IGFkYXB0ZXItPm51bV90eF9kZXNjX2F2YWlsKQotICAgICAgICAgICAgICAgICAg
ICAgICAgaWZwLT5pZl90aW1lciA9IEVNX1RYX1RJTUVPVVQ7CisJCQljYWxsb3V0X3Jlc2V0KCZh
ZGFwdGVyLT53YXRjaGRvZywgNSAqIGh6LAorCQkJICAgIGVtX3dhdGNoZG9nLCBhZGFwdGVyKTsK
ICAgICAgICAgfQogICAgICAgICBhZGFwdGVyLT5udW1fdHhfZGVzY19hdmFpbCA9IG51bV9hdmFp
bDsKICAgICAgICAgcmV0dXJuOwpAQCAtMzc5Niw2ICszNzk4LDggQEAKIAkgICAgYWRhcHRlci0+
bWJ1Zl9jbHVzdGVyX2ZhaWxlZCk7CiAJZGV2aWNlX3ByaW50ZihkZXYsICJEcml2ZXIgZHJvcHBl
ZCBwYWNrZXRzID0gJWxkXG4iLAogCSAgICBhZGFwdGVyLT5kcm9wcGVkX3BrdHMpOworCWRldmlj
ZV9wcmludGYoZGV2LCAiRHJpdmVyIHR4IGRtYSBmYWlsdXJlIGluIGVuY2FwID0gJWxkXG4iLAor
CQlhZGFwdGVyLT5ub190eF9kbWFfc2V0dXApOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC1OYXVy
IHN0YWJsZS9kZXYvZW0vaWZfZW0uaCBqZnYvZGV2L2VtL2lmX2VtLmgKLS0tIHN0YWJsZS9kZXYv
ZW0vaWZfZW0uaAlGcmkgTm92ICAzIDAyOjAyOjM5IDIwMDYKKysrIGpmdi9kZXYvZW0vaWZfZW0u
aAlTYXQgTm92ICA0IDA2OjI2OjU4IDIwMDYKQEAgLTE1NCw2ICsxNTQsNyBAQAogICogdHJhbnNt
aXQgZGVzY3JpcHRvcnMuCiAgKi8KICNkZWZpbmUgRU1fVFhfQ0xFQU5VUF9USFJFU0hPTEQJCShh
ZGFwdGVyLT5udW1fdHhfZGVzYyAvIDgpCisjZGVmaW5lIEVNX1RYX09QX1RIUkVTSE9MRAkJOAog
CiAvKgogICogVGhpcyBwYXJhbWV0ZXIgY29udHJvbHMgd2hldGhlciBvciBub3QgYXV0b25lZ290
YXRpb24gaXMgZW5hYmxlZC4KQEAgLTMyOCw2ICszMjksNyBAQAogCXN0cnVjdCBpZm1lZGlhCW1l
ZGlhOwogCXN0cnVjdCBjYWxsb3V0CXRpbWVyOwogCXN0cnVjdCBjYWxsb3V0CXR4X2ZpZm9fdGlt
ZXI7CisJc3RydWN0IGNhbGxvdXQJd2F0Y2hkb2c7CiAJaW50CQlpb19yaWQ7CiAJaW50CQlpZl9m
bGFnczsKIAlzdHJ1Y3QgbXR4CW10eDsK
------=_Part_43447_15205892.1162606593613--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2a41acea0611031816n1af99819rdc6b99e9dd2deb7c>