Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Sep 2005 13:07:43 +0100
From:      Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
To:        John Baldwin <jhb@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: [PATCH] Locking fixes for tl(4)
Message-ID:  <1125922064.75892.20.camel@buffy.york.ac.uk>
In-Reply-To: <20050904235509.J31032@ury.york.ac.uk>
References:  <200508311636.49278.jhb@FreeBSD.org> <20050904234626.H31032@ury.york.ac.uk> <20050904235509.J31032@ury.york.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-XZnn/oKYOU/5FzRkHJ9Y
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

On Mon, 2005-09-05 at 00:01 +0100, Gavin Atkinson wrote:
> On Sun, 4 Sep 2005, Gavin Atkinson wrote:
> > On Wed, 31 Aug 2005, John Baldwin wrote:
> >
> >> Patch fixes locking for tl(4) and marks it MPSAFE.  Please test, thanks!
> >> 
> >> http://www.FreeBSD.org/~jhb/patches/tl_locking.patch
> >
> > Doesn't work, I'm afraid.  Panic on attach:
> 
> ... because tl_hardreset() is called before sc->tl_ifp is allocated.  I'm 
> recompiling now, having moved the if_alloc and related code to before the 
> first hardreset() call.

The attached patch has survived pan average amount of network activity
overnight.  It's basically your original patch, but with a slight
rearrangement in tl_attach() to move the if_alloc() call earlier.

Gavin

--=-XZnn/oKYOU/5FzRkHJ9Y
Content-Disposition: attachment; filename=tl_locking_new.patch
Content-Type: text/x-patch; name=tl_locking_new.patch; charset=us-ascii
Content-Transfer-Encoding: base64

SW5kZXg6IHNyYy9zeXMvcGNpL2lmX3RsLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvdXNyL2N2
cy9zcmMvc3lzL3BjaS9pZl90bC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDENCmRpZmYg
LXUgLXIxLjEwMSBpZl90bC5jDQotLS0gc3JjL3N5cy9wY2kvaWZfdGwuYwk5IEF1ZyAyMDA1IDEw
OjIwOjAyIC0wMDAwCTEuMTAxDQorKysgc3JjL3N5cy9wY2kvaWZfdGwuYwk1IFNlcCAyMDA1IDA3
OjUyOjAzIC0wMDAwDQpAQCAtMjc2LDggKzI3NiwxMCBAQA0KIA0KIHN0YXRpYyB2b2lkIHRsX2lu
dHIodm9pZCAqKTsNCiBzdGF0aWMgdm9pZCB0bF9zdGFydChzdHJ1Y3QgaWZuZXQgKik7DQorc3Rh
dGljIHZvaWQgdGxfc3RhcnRfbG9ja2VkKHN0cnVjdCBpZm5ldCAqKTsNCiBzdGF0aWMgaW50IHRs
X2lvY3RsKHN0cnVjdCBpZm5ldCAqLCB1X2xvbmcsIGNhZGRyX3QpOw0KIHN0YXRpYyB2b2lkIHRs
X2luaXQodm9pZCAqKTsNCitzdGF0aWMgdm9pZCB0bF9pbml0X2xvY2tlZChzdHJ1Y3QgdGxfc29m
dGMgKik7DQogc3RhdGljIHZvaWQgdGxfc3RvcChzdHJ1Y3QgdGxfc29mdGMgKik7DQogc3RhdGlj
IHZvaWQgdGxfd2F0Y2hkb2coc3RydWN0IGlmbmV0ICopOw0KIHN0YXRpYyB2b2lkIHRsX3NodXRk
b3duKGRldmljZV90KTsNCkBAIC02NTAsNyArNjUyLDggQEANCiAJaW50CQkJaSwgYWNrOw0KIAlp
bnQJCQltaW50ZW4gPSAwOw0KIA0KLQlUTF9MT0NLKHNjKTsNCisJaWYgKHNjLT50bF9pZnAtPmlm
X2lucHV0ICE9IE5VTEwpDQorCQlUTF9MT0NLX0FTU0VSVChzYyk7DQogDQogCXRsX21paV9zeW5j
KHNjKTsNCiANCkBAIC03MzAsOCArNzMzLDYgQEANCiAJCXRsX2Rpb19zZXRiaXQoc2MsIFRMX05F
VFNJTywgVExfU0lPX01JTlRFTik7DQogCX0NCiANCi0JVExfVU5MT0NLKHNjKTsNCi0NCiAJaWYg
KGFjaykNCiAJCXJldHVybigxKTsNCiAJcmV0dXJuKDApOw0KQEAgLTc0NSw3ICs3NDYsOCBAQA0K
IHsNCiAJaW50CQkJbWludGVuOw0KIA0KLQlUTF9MT0NLKHNjKTsNCisJaWYgKHNjLT50bF9pZnAt
PmlmX2lucHV0ICE9IE5VTEwpDQorCQlUTF9MT0NLX0FTU0VSVChzYyk7DQogDQogCXRsX21paV9z
eW5jKHNjKTsNCiANCkBAIC03ODksOCArNzkxLDYgQEANCiAJaWYgKG1pbnRlbikNCiAJCXRsX2Rp
b19zZXRiaXQoc2MsIFRMX05FVFNJTywgVExfU0lPX01JTlRFTik7DQogDQotCVRMX1VOTE9DSyhz
Yyk7DQotDQogCXJldHVybigwKTsNCiB9DQogDQpAQCAtODQwLDcgKzg0MCw4IEBADQogCXN0cnVj
dCBtaWlfZGF0YQkJKm1paTsNCiANCiAJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7DQotCVRM
X0xPQ0soc2MpOw0KKwlpZiAoc2MtPnRsX2lmcC0+aWZfaW5wdXQgIT0gTlVMTCkNCisJCVRMX0xP
Q0tfQVNTRVJUKHNjKTsNCiAJbWlpID0gZGV2aWNlX2dldF9zb2Z0YyhzYy0+dGxfbWlpYnVzKTsN
CiANCiAJaWYgKChtaWktPm1paV9tZWRpYV9hY3RpdmUgJiBJRk1fR01BU0spID09IElGTV9GRFgp
IHsNCkBAIC04NDgsNyArODQ5LDYgQEANCiAJfSBlbHNlIHsNCiAJCXRsX2Rpb19jbHJiaXQoc2Ms
IFRMX05FVENNRCwgVExfQ01EX0RVUExFWCk7DQogCX0NCi0JVExfVU5MT0NLKHNjKTsNCiANCiAJ
cmV0dXJuOw0KIH0NCkBAIC0xMTM4LDcgKzExMzgsNyBAQA0KIAl9DQogDQogCW10eF9pbml0KCZz
Yy0+dGxfbXR4LCBkZXZpY2VfZ2V0X25hbWV1bml0KGRldiksIE1UWF9ORVRXT1JLX0xPQ0ssDQot
CSAgICBNVFhfREVGIHwgTVRYX1JFQ1VSU0UpOw0KKwkgICAgTVRYX0RFRik7DQogDQogCS8qDQog
CSAqIE1hcCBjb250cm9sL3N0YXR1cyByZWdpc3RlcnMuDQpAQCAtMTIyMyw2ICsxMjIzLDEzIEBA
DQogCWlmICh0LT50bF92aWQgPT0gT0xJQ09NX1ZFTkRPUklEKQ0KIAkJc2MtPnRsX2VlYWRkciA9
IFRMX0VFUFJPTV9FQUREUl9PQzsNCiANCisJaWZwID0gc2MtPnRsX2lmcCA9IGlmX2FsbG9jKElG
VF9FVEhFUik7DQorCWlmIChpZnAgPT0gTlVMTCkgew0KKwkJZGV2aWNlX3ByaW50ZihkZXYsICJj
YW4gbm90IGlmX2FsbG9jKClcbiIpOw0KKwkJZXJyb3IgPSBFTk9TUEM7DQorCQlnb3RvIGZhaWw7
DQorCX0NCisNCiAJLyogUmVzZXQgdGhlIGFkYXB0ZXIuICovDQogCXRsX3NvZnRyZXNldChzYywg
MSk7DQogCXRsX2hhcmRyZXNldChkZXYpOw0KQEAgLTEyMzQsNiArMTI0MSw3IEBADQogCWlmICh0
bF9yZWFkX2VlcHJvbShzYywgZWFkZHIsIHNjLT50bF9lZWFkZHIsIEVUSEVSX0FERFJfTEVOKSkg
ew0KIAkJZGV2aWNlX3ByaW50ZihkZXYsICJmYWlsZWQgdG8gcmVhZCBzdGF0aW9uIGFkZHJlc3Nc
biIpOw0KIAkJZXJyb3IgPSBFTlhJTzsNCisJCWlmX2ZyZWUoaWZwKTsNCiAJCWdvdG8gZmFpbDsN
CiAJfQ0KIA0KQEAgLTEyNTksMjMgKzEyNjcsMTYgQEANCiAgICAgICAgICAgICAgICAgfQ0KICAg
ICAgICAgfQ0KIA0KLQlpZnAgPSBzYy0+dGxfaWZwID0gaWZfYWxsb2MoSUZUX0VUSEVSKTsNCi0J
aWYgKGlmcCA9PSBOVUxMKSB7DQotCQlkZXZpY2VfcHJpbnRmKGRldiwgImNhbiBub3QgaWZfYWxs
b2MoKVxuIik7DQotCQllcnJvciA9IEVOT1NQQzsNCi0JCWdvdG8gZmFpbDsNCi0JfQ0KIAlpZnAt
PmlmX3NvZnRjID0gc2M7DQogCWlmX2luaXRuYW1lKGlmcCwgZGV2aWNlX2dldF9uYW1lKGRldiks
IGRldmljZV9nZXRfdW5pdChkZXYpKTsNCi0JaWZwLT5pZl9mbGFncyA9IElGRl9CUk9BRENBU1Qg
fCBJRkZfU0lNUExFWCB8IElGRl9NVUxUSUNBU1QgfA0KLQkgICAgSUZGX05FRURTR0lBTlQ7DQor
CWlmcC0+aWZfZmxhZ3MgPSBJRkZfQlJPQURDQVNUIHwgSUZGX1NJTVBMRVggfCBJRkZfTVVMVElD
QVNUOw0KIAlpZnAtPmlmX2lvY3RsID0gdGxfaW9jdGw7DQogCWlmcC0+aWZfc3RhcnQgPSB0bF9z
dGFydDsNCiAJaWZwLT5pZl93YXRjaGRvZyA9IHRsX3dhdGNoZG9nOw0KIAlpZnAtPmlmX2luaXQg
PSB0bF9pbml0Ow0KIAlpZnAtPmlmX210dSA9IEVUSEVSTVRVOw0KIAlpZnAtPmlmX3NuZC5pZnFf
bWF4bGVuID0gVExfVFhfTElTVF9DTlQgLSAxOw0KLQljYWxsb3V0X2hhbmRsZV9pbml0KCZzYy0+
dGxfc3RhdF9jaCk7DQorCWNhbGxvdXRfaW5pdF9tdHgoJnNjLT50bF9zdGF0X2NhbGxvdXQsICZz
Yy0+dGxfbXR4LCAwKTsNCiANCiAJLyogUmVzZXQgdGhlIGFkYXB0ZXIgYWdhaW4uICovDQogCXRs
X3NvZnRyZXNldChzYywgMSk7DQpAQCAtMTMxMCw3ICsxMzExLDcgQEANCiAJZXRoZXJfaWZhdHRh
Y2goaWZwLCBlYWRkcik7DQogDQogCS8qIEhvb2sgaW50ZXJydXB0IGxhc3QgdG8gYXZvaWQgaGF2
aW5nIHRvIGxvY2sgc29mdGMgKi8NCi0JZXJyb3IgPSBidXNfc2V0dXBfaW50cihkZXYsIHNjLT50
bF9pcnEsIElOVFJfVFlQRV9ORVQsDQorCWVycm9yID0gYnVzX3NldHVwX2ludHIoZGV2LCBzYy0+
dGxfaXJxLCBJTlRSX1RZUEVfTkVUIHwgSU5UUl9NUFNBRkUsDQogCSAgICB0bF9pbnRyLCBzYywg
JnNjLT50bF9pbnRyaGFuZCk7DQogDQogCWlmIChlcnJvcikgew0KQEAgLTEzNDMsMTIgKzEzNDQs
MTQgQEANCiANCiAJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7DQogCUtBU1NFUlQobXR4X2lu
aXRpYWxpemVkKCZzYy0+dGxfbXR4KSwgKCJ0bCBtdXRleCBub3QgaW5pdGlhbGl6ZWQiKSk7DQot
CVRMX0xPQ0soc2MpOw0KIAlpZnAgPSBzYy0+dGxfaWZwOw0KIA0KIAkvKiBUaGVzZSBzaG91bGQg
b25seSBiZSBhY3RpdmUgaWYgYXR0YWNoIHN1Y2NlZWRlZCAqLw0KIAlpZiAoZGV2aWNlX2lzX2F0
dGFjaGVkKGRldikpIHsNCisJCVRMX0xPQ0soc2MpOw0KIAkJdGxfc3RvcChzYyk7DQorCQlUTF9V
TkxPQ0soc2MpOw0KKwkJY2FsbG91dF9kcmFpbigmc2MtPnRsX3N0YXRfY2FsbG91dCk7DQogCQll
dGhlcl9pZmRldGFjaChpZnApOw0KIAkJaWZfZnJlZShpZnApOw0KIAl9DQpAQCAtMTM2OCw3ICsx
MzcxLDYgQEANCiAJaWYgKHNjLT50bF9yZXMpDQogCQlidXNfcmVsZWFzZV9yZXNvdXJjZShkZXYs
IFRMX1JFUywgVExfUklELCBzYy0+dGxfcmVzKTsNCiANCi0JVExfVU5MT0NLKHNjKTsNCiAJbXR4
X2Rlc3Ryb3koJnNjLT50bF9tdHgpOw0KIA0KIAlyZXR1cm4oMCk7DQpAQCAtMTQ0NCwxNiArMTQ0
NiwxMCBAQA0KIHsNCiAJc3RydWN0IG1idWYJCSptX25ldyA9IE5VTEw7DQogDQotCU1HRVRIRFIo
bV9uZXcsIE1fRE9OVFdBSVQsIE1UX0RBVEEpOw0KKwltX25ldyA9IG1fZ2V0Y2woTV9ET05UV0FJ
VCwgTVRfREFUQSwgTV9QS1RIRFIpOw0KIAlpZiAobV9uZXcgPT0gTlVMTCkNCiAJCXJldHVybihF
Tk9CVUZTKTsNCiANCi0JTUNMR0VUKG1fbmV3LCBNX0RPTlRXQUlUKTsNCi0JaWYgKCEobV9uZXct
Pm1fZmxhZ3MgJiBNX0VYVCkpIHsNCi0JCW1fZnJlZW0obV9uZXcpOw0KLQkJcmV0dXJuKEVOT0JV
RlMpOw0KLQl9DQotDQogI2lmZGVmIF9fYWxwaGFfXw0KIAltX25ldy0+bV9kYXRhICs9IDI7DQog
I2VuZGlmDQpAQCAtMTY5MSw3ICsxNjg3LDcgQEANCiANCiAJdGxfc29mdHJlc2V0KHNjLCAxKTsN
CiAJdGxfc3RvcChzYyk7DQotCXRsX2luaXQoc2MpOw0KKwl0bF9pbml0X2xvY2tlZChzYyk7DQog
CUNNRF9TRVQoc2MsIFRMX0NNRF9JTlRTT04pOw0KIA0KIAlyZXR1cm4oMCk7DQpAQCAtMTc4NCw3
ICsxNzgwLDcgQEANCiAJfQ0KIA0KIAlpZiAoaWZwLT5pZl9zbmQuaWZxX2hlYWQgIT0gTlVMTCkN
Ci0JCXRsX3N0YXJ0KGlmcCk7DQorCQl0bF9zdGFydF9sb2NrZWQoaWZwKTsNCiANCiAJVExfVU5M
T0NLKHNjKTsNCiANCkBAIC0xODA0LDcgKzE4MDAsNyBAQA0KIAliemVybygoY2hhciAqKSZ0bF9z
dGF0cywgc2l6ZW9mKHN0cnVjdCB0bF9zdGF0cykpOw0KIA0KIAlzYyA9IHhzYzsNCi0JVExfTE9D
SyhzYyk7DQorCVRMX0xPQ0tfQVNTRVJUKHNjKTsNCiAJaWZwID0gc2MtPnRsX2lmcDsNCiANCiAJ
cCA9ICh1X2ludDMyX3QgKikmdGxfc3RhdHM7DQpAQCAtMTgzOCwxNSArMTgzNCwxMyBAQA0KIAkJ
fQ0KIAl9DQogDQotCXNjLT50bF9zdGF0X2NoID0gdGltZW91dCh0bF9zdGF0c191cGRhdGUsIHNj
LCBoeik7DQorCWNhbGxvdXRfcmVzZXQoJnNjLT50bF9zdGF0X2NhbGxvdXQsIGh6LCB0bF9zdGF0
c191cGRhdGUsIHNjKTsNCiANCiAJaWYgKCFzYy0+dGxfYml0cmF0ZSkgew0KIAkJbWlpID0gZGV2
aWNlX2dldF9zb2Z0YyhzYy0+dGxfbWlpYnVzKTsNCiAJCW1paV90aWNrKG1paSk7DQogCX0NCiAN
Ci0JVExfVU5MT0NLKHNjKTsNCi0NCiAJcmV0dXJuOw0KIH0NCiANCkBAIC0xOTU3LDEyICsxOTUx
LDI0IEBADQogCXN0cnVjdCBpZm5ldAkJKmlmcDsNCiB7DQogCXN0cnVjdCB0bF9zb2Z0YwkJKnNj
Ow0KKw0KKwlzYyA9IGlmcC0+aWZfc29mdGM7DQorCVRMX0xPQ0soc2MpOw0KKwl0bF9zdGFydF9s
b2NrZWQoaWZwKTsNCisJVExfVU5MT0NLKHNjKTsNCit9DQorDQorc3RhdGljIHZvaWQNCit0bF9z
dGFydF9sb2NrZWQoaWZwKQ0KKwlzdHJ1Y3QgaWZuZXQJCSppZnA7DQorew0KKwlzdHJ1Y3QgdGxf
c29mdGMJCSpzYzsNCiAJc3RydWN0IG1idWYJCSptX2hlYWQgPSBOVUxMOw0KIAl1X2ludDMyX3QJ
CWNtZDsNCiAJc3RydWN0IHRsX2NoYWluCQkqcHJldiA9IE5VTEwsICpjdXJfdHggPSBOVUxMLCAq
c3RhcnRfdHg7DQogDQogCXNjID0gaWZwLT5pZl9zb2Z0YzsNCi0JVExfTE9DSyhzYyk7DQorCVRM
X0xPQ0tfQVNTRVJUKHNjKTsNCiANCiAJLyoNCiAJICogQ2hlY2sgZm9yIGFuIGF2YWlsYWJsZSBx
dWV1ZSBzbG90LiBJZiB0aGVyZSBhcmUgbm9uZSwNCkBAIC0xOTcwLDcgKzE5NzYsNiBAQA0KIAkg
Ki8NCiAJaWYgKHNjLT50bF9jZGF0YS50bF90eF9mcmVlID09IE5VTEwpIHsNCiAJCWlmcC0+aWZf
ZHJ2X2ZsYWdzIHw9IElGRl9EUlZfT0FDVElWRTsNCi0JCVRMX1VOTE9DSyhzYyk7DQogCQlyZXR1
cm47DQogCX0NCiANCkBAIC0yMDA3LDEwICsyMDEyLDggQEANCiAJLyoNCiAJICogSWYgdGhlcmUg
YXJlIG5vIHBhY2tldHMgcXVldWVkLCBiYWlsLg0KIAkgKi8NCi0JaWYgKGN1cl90eCA9PSBOVUxM
KSB7DQotCQlUTF9VTkxPQ0soc2MpOw0KKwlpZiAoY3VyX3R4ID09IE5VTEwpDQogCQlyZXR1cm47
DQotCX0NCiANCiAJLyoNCiAJICogVGhhdCdzIGFsbCB3ZSBjYW4gc3RhbmRzLCB3ZSBjYW4ndCBz
dGFuZHMgbm8gbW9yZS4NCkBAIC0yMDQwLDcgKzIwNDMsNiBAQA0KIAkgKiBTZXQgYSB0aW1lb3V0
IGluIGNhc2UgdGhlIGNoaXAgZ29lcyBvdXQgdG8gbHVuY2guDQogCSAqLw0KIAlpZnAtPmlmX3Rp
bWVyID0gNTsNCi0JVExfVU5MT0NLKHNjKTsNCiANCiAJcmV0dXJuOw0KIH0NCkBAIC0yMDUwLDEw
ICsyMDUyLDIwIEBADQogCXZvaWQJCQkqeHNjOw0KIHsNCiAJc3RydWN0IHRsX3NvZnRjCQkqc2Mg
PSB4c2M7DQorDQorCVRMX0xPQ0soc2MpOw0KKwl0bF9pbml0X2xvY2tlZChzYyk7DQorCVRMX1VO
TE9DSyhzYyk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQordGxfaW5pdF9sb2NrZWQoc2MpDQorCXN0
cnVjdCB0bF9zb2Z0YwkJKnNjOw0KK3sNCiAJc3RydWN0IGlmbmV0CQkqaWZwID0gc2MtPnRsX2lm
cDsNCiAJc3RydWN0IG1paV9kYXRhCQkqbWlpOw0KIA0KLQlUTF9MT0NLKHNjKTsNCisJVExfTE9D
S19BU1NFUlQoc2MpOw0KIA0KIAlpZnAgPSBzYy0+dGxfaWZwOw0KIA0KQEAgLTIwOTgsNyArMjEx
MCw2IEBADQogCQlpZl9wcmludGYoaWZwLA0KIAkJICAgICJpbml0aWFsaXphdGlvbiBmYWlsZWQ6
IG5vIG1lbW9yeSBmb3IgcnggYnVmZmVyc1xuIik7DQogCQl0bF9zdG9wKHNjKTsNCi0JCVRMX1VO
TE9DSyhzYyk7DQogCQlyZXR1cm47DQogCX0NCiANCkBAIC0yMTI4LDggKzIxMzksNyBAQA0KIAlp
ZnAtPmlmX2Rydl9mbGFncyAmPSB+SUZGX0RSVl9PQUNUSVZFOw0KIA0KIAkvKiBTdGFydCB0aGUg
c3RhdHMgdXBkYXRlIGNvdW50ZXIgKi8NCi0Jc2MtPnRsX3N0YXRfY2ggPSB0aW1lb3V0KHRsX3N0
YXRzX3VwZGF0ZSwgc2MsIGh6KTsNCi0JVExfVU5MT0NLKHNjKTsNCisJY2FsbG91dF9yZXNldCgm
c2MtPnRsX3N0YXRfY2FsbG91dCwgaHosIHRsX3N0YXRzX3VwZGF0ZSwgc2MpOw0KIA0KIAlyZXR1
cm47DQogfQ0KQEAgLTIxNDYsMTIgKzIxNTYsMTQgQEANCiANCiAJc2MgPSBpZnAtPmlmX3NvZnRj
Ow0KIA0KKwlUTF9MT0NLKHNjKTsNCiAJaWYgKHNjLT50bF9iaXRyYXRlKQ0KIAkJdGxfc2V0bW9k
ZShzYywgc2MtPmlmbWVkaWEuaWZtX21lZGlhKTsNCiAJZWxzZSB7DQogCQltaWkgPSBkZXZpY2Vf
Z2V0X3NvZnRjKHNjLT50bF9taWlidXMpOw0KIAkJbWlpX21lZGlhY2hnKG1paSk7DQogCX0NCisJ
VExfVU5MT0NLKHNjKTsNCiANCiAJcmV0dXJuKDApOw0KIH0NCkBAIC0yMTY5LDYgKzIxODEsNyBA
QA0KIA0KIAlzYyA9IGlmcC0+aWZfc29mdGM7DQogDQorCVRMX0xPQ0soc2MpOw0KIAlpZm1yLT5p
Zm1fYWN0aXZlID0gSUZNX0VUSEVSOw0KIA0KIAlpZiAoc2MtPnRsX2JpdHJhdGUpIHsNCkBAIC0y
MTg3LDYgKzIyMDAsNyBAQA0KIAkJaWZtci0+aWZtX2FjdGl2ZSA9IG1paS0+bWlpX21lZGlhX2Fj
dGl2ZTsNCiAJCWlmbXItPmlmbV9zdGF0dXMgPSBtaWktPm1paV9tZWRpYV9zdGF0dXM7DQogCX0N
CisJVExfVU5MT0NLKHNjKTsNCiANCiAJcmV0dXJuOw0KIH0NCkBAIC0yMTk5LDEyICsyMjEzLDEx
IEBADQogew0KIAlzdHJ1Y3QgdGxfc29mdGMJCSpzYyA9IGlmcC0+aWZfc29mdGM7DQogCXN0cnVj
dCBpZnJlcQkJKmlmciA9IChzdHJ1Y3QgaWZyZXEgKikgZGF0YTsNCi0JaW50CQkJcywgZXJyb3Ig
PSAwOw0KLQ0KLQlzID0gc3BsaW1wKCk7DQorCWludAkJCWVycm9yID0gMDsNCiANCiAJc3dpdGNo
KGNvbW1hbmQpIHsNCiAJY2FzZSBTSU9DU0lGRkxBR1M6DQorCQlUTF9MT0NLKHNjKTsNCiAJCWlm
IChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKSB7DQogCQkJaWYgKGlmcC0+aWZfZHJ2X2ZsYWdzICYg
SUZGX0RSVl9SVU5OSU5HICYmDQogCQkJICAgIGlmcC0+aWZfZmxhZ3MgJiBJRkZfUFJPTUlTQyAm
Jg0KQEAgLTIyMTcsMTggKzIyMzAsMjEgQEANCiAJCQkJdGxfZGlvX2NscmJpdChzYywgVExfTkVU
Q01ELCBUTF9DTURfQ0FGKTsNCiAJCQkJdGxfc2V0bXVsdGkoc2MpOw0KIAkJCX0gZWxzZQ0KLQkJ
CQl0bF9pbml0KHNjKTsNCisJCQkJdGxfaW5pdF9sb2NrZWQoc2MpOw0KIAkJfSBlbHNlIHsNCiAJ
CQlpZiAoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJWX1JVTk5JTkcpIHsNCiAJCQkJdGxfc3Rv
cChzYyk7DQogCQkJfQ0KIAkJfQ0KIAkJc2MtPnRsX2lmX2ZsYWdzID0gaWZwLT5pZl9mbGFnczsN
CisJCVRMX1VOTE9DSyhzYyk7DQogCQllcnJvciA9IDA7DQogCQlicmVhazsNCiAJY2FzZSBTSU9D
QURETVVMVEk6DQogCWNhc2UgU0lPQ0RFTE1VTFRJOg0KKwkJVExfTE9DSyhzYyk7DQogCQl0bF9z
ZXRtdWx0aShzYyk7DQorCQlUTF9VTkxPQ0soc2MpOw0KIAkJZXJyb3IgPSAwOw0KIAkJYnJlYWs7
DQogCWNhc2UgU0lPQ1NJRk1FRElBOg0KQEAgLTIyNDcsOCArMjI2Myw2IEBADQogCQlicmVhazsN
CiAJfQ0KIA0KLQkodm9pZClzcGx4KHMpOw0KLQ0KIAlyZXR1cm4oZXJyb3IpOw0KIH0NCiANCkBA
IC0yMjYyLDEwICsyMjc2LDEyIEBADQogDQogCWlmX3ByaW50ZihpZnAsICJkZXZpY2UgdGltZW91
dFxuIik7DQogDQorCVRMX0xPQ0soc2MpOw0KIAlpZnAtPmlmX29lcnJvcnMrKzsNCiANCiAJdGxf
c29mdHJlc2V0KHNjLCAxKTsNCi0JdGxfaW5pdChzYyk7DQorCXRsX2luaXRfbG9ja2VkKHNjKTsN
CisJVExfVU5MT0NLKHNjKTsNCiANCiAJcmV0dXJuOw0KIH0NCkBAIC0yMjgxLDEyICsyMjk3LDEy
IEBADQogCXJlZ2lzdGVyIGludAkJaTsNCiAJc3RydWN0IGlmbmV0CQkqaWZwOw0KIA0KLQlUTF9M
T0NLKHNjKTsNCisJVExfTE9DS19BU1NFUlQoc2MpOw0KIA0KIAlpZnAgPSBzYy0+dGxfaWZwOw0K
IA0KIAkvKiBTdG9wIHRoZSBzdGF0cyB1cGRhdGVyLiAqLw0KLQl1bnRpbWVvdXQodGxfc3RhdHNf
dXBkYXRlLCBzYywgc2MtPnRsX3N0YXRfY2gpOw0KKwljYWxsb3V0X3N0b3AoJnNjLT50bF9zdGF0
X2NhbGxvdXQpOw0KIA0KIAkvKiBTdG9wIHRoZSB0cmFuc21pdHRlciAqLw0KIAlDTURfQ0xSKHNj
LCBUTF9DTURfUlQpOw0KQEAgLTIzMzMsNyArMjM0OSw2IEBADQogCQlzaXplb2Yoc2MtPnRsX2xk
YXRhLT50bF90eF9saXN0KSk7DQogDQogCWlmcC0+aWZfZHJ2X2ZsYWdzICY9IH4oSUZGX0RSVl9S
VU5OSU5HIHwgSUZGX0RSVl9PQUNUSVZFKTsNCi0JVExfVU5MT0NLKHNjKTsNCiANCiAJcmV0dXJu
Ow0KIH0NCkBAIC0yMzUwLDcgKzIzNjUsOSBAQA0KIA0KIAlzYyA9IGRldmljZV9nZXRfc29mdGMo
ZGV2KTsNCiANCisJVExfTE9DSyhzYyk7DQogCXRsX3N0b3Aoc2MpOw0KKwlUTF9VTkxPQ0soc2Mp
Ow0KIA0KIAlyZXR1cm47DQogfQ0KSW5kZXg6IHNyYy9zeXMvcGNpL2lmX3RscmVnLmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NClJDUyBmaWxlOiAvdXNyL2N2cy9zcmMvc3lzL3BjaS9pZl90bHJlZy5oLHYNCnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yMQ0KZGlmZiAtdSAtcjEuMjEgaWZfdGxyZWcuaA0KLS0tIHNyYy9z
eXMvcGNpL2lmX3RscmVnLmgJMTAgSnVuIDIwMDUgMTY6NDk6MjMgLTAwMDAJMS4yMQ0KKysrIHNy
Yy9zeXMvcGNpL2lmX3RscmVnLmgJNSBTZXAgMjAwNSAwNzo1MjowMyAtMDAwMA0KQEAgLTEyNCw3
ICsxMjQsNyBAQA0KIAl1X2ludDhfdAkJdGxfdHhlb2M7DQogCXVfaW50OF90CQl0bF9iaXRyYXRl
Ow0KIAlpbnQJCQl0bF9pZl9mbGFnczsNCi0Jc3RydWN0IGNhbGxvdXRfaGFuZGxlCXRsX3N0YXRf
Y2g7DQorCXN0cnVjdCBjYWxsb3V0CQl0bF9zdGF0X2NhbGxvdXQ7DQogCXN0cnVjdCBtdHgJCXRs
X210eDsNCiB9Ow0KIA0K


--=-XZnn/oKYOU/5FzRkHJ9Y--



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