threads/180652: compat32 problem in clock_getcpuclockid2
Petr Salinger
Petr.Salinger at seznam.cz
Sun Jul 21 08:30:02 UTC 2013
The following reply was made to PR threads/180652; it has been noted by GNATS.
From: Petr Salinger <Petr.Salinger at seznam.cz>
To: Konstantin Belousov <kostikbel at gmail.com>
Cc: freebsd-gnats-submit at FreeBSD.org
Subject: Re: threads/180652: compat32 problem in clock_getcpuclockid2
Date: Sun, 21 Jul 2013 10:23:54 +0200 (CEST)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
--8323328-1230774450-1374395034=:23067
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
>> I only tested with adapted tst-timer2.c. I hope you would do the rest.
> I tried. The tst-timer4.c timed out. I will look at it later.
There have been two problems:
a) sigev_value.sival_ptr have not been copied
b) the code misshandles timer_create() with NULL struct sigevent
With attached patch, it passes our tests.
I think, that there is a similar bug in both new
freebsd32_kmq_notify() and sys_kmq_notify().
They do not handle NULL in struct sigevent, it might suffice to
- return (kern_kmq_notify(td, uap->mqd, &ev));
+ return (kern_kmq_notify(td, uap->mqd, uap->sigev == NULL ? NULL : &ev));
But this seems not be covered by our testsuite.
Petr
--8323328-1230774450-1374395034=:23067
Content-Type: TEXT/plain; name=kt2.diff
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.LNX.2.00.1307211023540.23067 at contest.felk.cvut.cz>
Content-Description:
Content-Disposition: attachment; filename=kt2.diff
ZGlmZiAtLWdpdCBhL3N5cy9jb21wYXQvZnJlZWJzZDMyL2ZyZWVic2QzMi5o
IGIvc3lzL2NvbXBhdC9mcmVlYnNkMzIvZnJlZWJzZDMyLmgNCmluZGV4IGE5
NWIwZTUuLjliMDQ5NjUgMTAwNjQ0DQotLS0gYS9zeXMvY29tcGF0L2ZyZWVi
c2QzMi9mcmVlYnNkMzIuaA0KKysrIGIvc3lzL2NvbXBhdC9mcmVlYnNkMzIv
ZnJlZWJzZDMyLmgNCkBAIC02OSw2ICs2OSwxNSBAQCBzdHJ1Y3QgdGltZXNw
ZWMzMiB7DQogCUNQKChzcmMpLmZsZCwoZHN0KS5mbGQsdHZfbnNlYyk7CVwN
CiB9IHdoaWxlICgwKQ0KIA0KK3N0cnVjdCBpdGltZXJzcGVjMzIgew0KKwlz
dHJ1Y3QgdGltZXNwZWMzMiAgaXRfaW50ZXJ2YWw7DQorCXN0cnVjdCB0aW1l
c3BlYzMyICBpdF92YWx1ZTsNCit9Ow0KKyNkZWZpbmUgSVRTX0NQKHNyYywg
ZHN0KSBkbyB7CQkJXA0KKwlUU19DUCgoc3JjKSwgKGRzdCksIGl0X2ludGVy
dmFsKTsJXA0KKwlUU19DUCgoc3JjKSwgKGRzdCksIGl0X3ZhbHVlKTsJCVwN
Cit9IHdoaWxlICgwKQ0KKw0KIHN0cnVjdCBydXNhZ2UzMiB7DQogCXN0cnVj
dCB0aW1ldmFsMzIgcnVfdXRpbWU7DQogCXN0cnVjdCB0aW1ldmFsMzIgcnVf
c3RpbWU7DQpkaWZmIC0tZ2l0IGEvc3lzL2NvbXBhdC9mcmVlYnNkMzIvZnJl
ZWJzZDMyX21pc2MuYyBiL3N5cy9jb21wYXQvZnJlZWJzZDMyL2ZyZWVic2Qz
Ml9taXNjLmMNCmluZGV4IGNmY2Q4M2IuLjNkODQ5NDEgMTAwNjQ0DQotLS0g
YS9zeXMvY29tcGF0L2ZyZWVic2QzMi9mcmVlYnNkMzJfbWlzYy5jDQorKysg
Yi9zeXMvY29tcGF0L2ZyZWVic2QzMi9mcmVlYnNkMzJfbWlzYy5jDQpAQCAt
MjMzMSw2ICsyMzMxLDcwIEBAIGZyZWVic2QzMl9jbG9ja19nZXRyZXMoc3Ry
dWN0IHRocmVhZCAqdGQsDQogCXJldHVybiAoZXJyb3IpOw0KIH0NCiANCitp
bnQgZnJlZWJzZDMyX2t0aW1lcl9jcmVhdGUoc3RydWN0IHRocmVhZCAqdGQs
DQorICAgIHN0cnVjdCBmcmVlYnNkMzJfa3RpbWVyX2NyZWF0ZV9hcmdzICp1
YXApDQorew0KKwlzdHJ1Y3Qgc2lnZXZlbnQzMiBldjMyOw0KKwlzdHJ1Y3Qg
c2lnZXZlbnQgZXYsICpldnA7DQorCWludCBlcnJvciwgaWQ7DQorDQorCWlm
ICh1YXAtPmV2cCA9PSBOVUxMKSB7DQorCQlldnAgPSBOVUxMOw0KKwl9IGVs
c2Ugew0KKwkJZXZwID0gJmV2Ow0KKwkJZXJyb3IgPSBjb3B5aW4odWFwLT5l
dnAsICZldjMyLCBzaXplb2YoZXYzMikpOw0KKwkJaWYgKGVycm9yICE9IDAp
DQorCQkJcmV0dXJuIChlcnJvcik7DQorCQllcnJvciA9IGNvbnZlcnRfc2ln
ZXZlbnQzMigmZXYzMiwgJmV2KTsNCisJCWlmIChlcnJvciAhPSAwKQ0KKwkJ
CXJldHVybiAoZXJyb3IpOw0KKwl9DQorCWVycm9yID0ga2Vybl9rdGltZXJf
Y3JlYXRlKHRkLCB1YXAtPmNsb2NrX2lkLCBldnAsICZpZCwgLTEpOw0KKwlp
ZiAoZXJyb3IgPT0gMCkgew0KKwkJZXJyb3IgPSBjb3B5b3V0KCZpZCwgdWFw
LT50aW1lcmlkLCBzaXplb2YoaW50KSk7DQorCQlpZiAoZXJyb3IgIT0gMCkN
CisJCQlrZXJuX2t0aW1lcl9kZWxldGUodGQsIGlkKTsNCisJfQ0KKwlyZXR1
cm4gKGVycm9yKTsNCit9DQorDQoraW50DQorZnJlZWJzZDMyX2t0aW1lcl9z
ZXR0aW1lKHN0cnVjdCB0aHJlYWQgKnRkLA0KKyAgICBzdHJ1Y3QgZnJlZWJz
ZDMyX2t0aW1lcl9zZXR0aW1lX2FyZ3MgKnVhcCkNCit7DQorCXN0cnVjdCBp
dGltZXJzcGVjMzIgdmFsMzIsIG92YWwzMjsNCisJc3RydWN0IGl0aW1lcnNw
ZWMgdmFsLCBvdmFsLCAqb3ZhbHA7DQorCWludCBlcnJvcjsNCisNCisJZXJy
b3IgPSBjb3B5aW4odWFwLT52YWx1ZSwgJnZhbDMyLCBzaXplb2YodmFsMzIp
KTsNCisJaWYgKGVycm9yICE9IDApDQorCQlyZXR1cm4gKGVycm9yKTsNCisJ
SVRTX0NQKHZhbDMyLCB2YWwpOw0KKwlvdmFscCA9IHVhcC0+b3ZhbHVlICE9
IE5VTEwgPyAmb3ZhbCA6IE5VTEw7DQorCWVycm9yID0ga2Vybl9rdGltZXJf
c2V0dGltZSh0ZCwgdWFwLT50aW1lcmlkLCB1YXAtPmZsYWdzLCAmdmFsLCBv
dmFscCk7DQorCWlmIChlcnJvciA9PSAwICYmIHVhcC0+b3ZhbHVlICE9IE5V
TEwpIHsNCisJCUlUU19DUChvdmFsLCBvdmFsMzIpOw0KKwkJZXJyb3IgPSBj
b3B5b3V0KCZvdmFsMzIsIHVhcC0+b3ZhbHVlLCBzaXplb2Yob3ZhbDMyKSk7
DQorCX0NCisJcmV0dXJuIChlcnJvcik7DQorfQ0KKw0KK2ludA0KK2ZyZWVi
c2QzMl9rdGltZXJfZ2V0dGltZShzdHJ1Y3QgdGhyZWFkICp0ZCwNCisgICAg
c3RydWN0IGZyZWVic2QzMl9rdGltZXJfZ2V0dGltZV9hcmdzICp1YXApDQor
ew0KKwlzdHJ1Y3QgaXRpbWVyc3BlYzMyIHZhbDMyOw0KKwlzdHJ1Y3QgaXRp
bWVyc3BlYyB2YWw7DQorCWludCBlcnJvcjsNCisNCisJZXJyb3IgPSBrZXJu
X2t0aW1lcl9nZXR0aW1lKHRkLCB1YXAtPnRpbWVyaWQsICZ2YWwpOw0KKwlp
ZiAoZXJyb3IgPT0gMCkgew0KKwkJSVRTX0NQKHZhbCwgdmFsMzIpOw0KKwkJ
ZXJyb3IgPSBjb3B5b3V0KCZ2YWwzMiwgdWFwLT52YWx1ZSwgc2l6ZW9mKHZh
bDMyKSk7DQorCX0NCisJcmV0dXJuIChlcnJvcik7DQorfQ0KKw0KIGludA0K
IGZyZWVic2QzMl9jbG9ja19nZXRjcHVjbG9ja2lkMihzdHJ1Y3QgdGhyZWFk
ICp0ZCwNCiAgICAgc3RydWN0IGZyZWVic2QzMl9jbG9ja19nZXRjcHVjbG9j
a2lkMl9hcmdzICp1YXApDQpAQCAtMjkxMiwzICsyOTc2LDI5IEBAIGZyZWVi
c2QzMl9wb3NpeF9mYWR2aXNlKHN0cnVjdCB0aHJlYWQgKnRkLA0KIAlyZXR1
cm4gKGtlcm5fcG9zaXhfZmFkdmlzZSh0ZCwgdWFwLT5mZCwgUEFJUjMyVE82
NChvZmZfdCwgdWFwLT5vZmZzZXQpLA0KIAkgICAgUEFJUjMyVE82NChvZmZf
dCwgdWFwLT5sZW4pLCB1YXAtPmFkdmljZSkpOw0KIH0NCisNCitpbnQNCitj
b252ZXJ0X3NpZ2V2ZW50MzIoc3RydWN0IHNpZ2V2ZW50MzIgKnNpZzMyLCBz
dHJ1Y3Qgc2lnZXZlbnQgKnNpZykNCit7DQorDQorCUNQKCpzaWczMiwgKnNp
Zywgc2lnZXZfbm90aWZ5KTsNCisJc3dpdGNoIChzaWctPnNpZ2V2X25vdGlm
eSkgew0KKwljYXNlIFNJR0VWX05PTkU6DQorCQlicmVhazsNCisJY2FzZSBT
SUdFVl9USFJFQURfSUQ6DQorCQlDUCgqc2lnMzIsICpzaWcsIHNpZ2V2X25v
dGlmeV90aHJlYWRfaWQpOw0KKwkJLyogRkFMTFRIUk9VR0ggKi8NCisJY2Fz
ZSBTSUdFVl9TSUdOQUw6DQorCQlDUCgqc2lnMzIsICpzaWcsIHNpZ2V2X3Np
Z25vKTsNCisJCVBUUklOX0NQKCpzaWczMiwgKnNpZywgc2lnZXZfdmFsdWUu
c2l2YWxfcHRyKTsNCisJCWJyZWFrOw0KKwljYXNlIFNJR0VWX0tFVkVOVDoN
CisJCUNQKCpzaWczMiwgKnNpZywgc2lnZXZfbm90aWZ5X2txdWV1ZSk7DQor
CQlDUCgqc2lnMzIsICpzaWcsIHNpZ2V2X25vdGlmeV9rZXZlbnRfZmxhZ3Mp
Ow0KKwkJUFRSSU5fQ1AoKnNpZzMyLCAqc2lnLCBzaWdldl92YWx1ZS5zaXZh
bF9wdHIpOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCQlyZXR1cm4gKEVJ
TlZBTCk7DQorCX0NCisJcmV0dXJuICgwKTsNCit9DQpkaWZmIC0tZ2l0IGEv
c3lzL2NvbXBhdC9mcmVlYnNkMzIvZnJlZWJzZDMyX3NpZ25hbC5oIGIvc3lz
L2NvbXBhdC9mcmVlYnNkMzIvZnJlZWJzZDMyX3NpZ25hbC5oDQppbmRleCBk
MzFhOGFlLi4xODg5OWY4IDEwMDY0NA0KLS0tIGEvc3lzL2NvbXBhdC9mcmVl
YnNkMzIvZnJlZWJzZDMyX3NpZ25hbC5oDQorKysgYi9zeXMvY29tcGF0L2Zy
ZWVic2QzMi9mcmVlYnNkMzJfc2lnbmFsLmgNCkBAIC05Nyw2ICs5Nyw4IEBA
IHN0cnVjdCBzaWdldmVudDMyIHsNCiAJfSBfc2lnZXZfdW47DQogfTsNCiAN
CitzdHJ1Y3Qgc2lnZXZlbnQ7DQoraW50IGNvbnZlcnRfc2lnZXZlbnQzMihz
dHJ1Y3Qgc2lnZXZlbnQzMiAqc2lnMzIsIHN0cnVjdCBzaWdldmVudCAqc2ln
KTsNCiB2b2lkIHNpZ2luZm9fdG9fc2lnaW5mbzMyKGNvbnN0IHNpZ2luZm9f
dCAqc3JjLCBzdHJ1Y3Qgc2lnaW5mbzMyICpkc3QpOw0KIA0KICNlbmRpZiAv
KiAhX0NPTVBBVF9GUkVFQlNEMzJfU0lHTkFMX0hfICovDQpkaWZmIC0tZ2l0
IGEvc3lzL2NvbXBhdC9mcmVlYnNkMzIvc3lzY2FsbHMubWFzdGVyIGIvc3lz
L2NvbXBhdC9mcmVlYnNkMzIvc3lzY2FsbHMubWFzdGVyDQppbmRleCA2Y2I2
NDlmLi5kYWVlNzJjIDEwMDY0NA0KLS0tIGEvc3lzL2NvbXBhdC9mcmVlYnNk
MzIvc3lzY2FsbHMubWFzdGVyDQorKysgYi9zeXMvY29tcGF0L2ZyZWVic2Qz
Mi9zeXNjYWxscy5tYXN0ZXINCkBAIC00NDEsMTEgKzQ0MSwxNyBAQA0KIAkJ
CQkgICAgY29uc3Qgc3RydWN0IHRpbWVzcGVjMzIgKnRwKTsgfQ0KIDIzNAlB
VUVfTlVMTAlTVEQJeyBpbnQgZnJlZWJzZDMyX2Nsb2NrX2dldHJlcyhjbG9j
a2lkX3QgY2xvY2tfaWQsIFwNCiAJCQkJICAgIHN0cnVjdCB0aW1lc3BlYzMy
ICp0cCk7IH0NCi0yMzUJQVVFX05VTEwJVU5JTVBMCXRpbWVyX2NyZWF0ZQ0K
LTIzNglBVUVfTlVMTAlVTklNUEwJdGltZXJfZGVsZXRlDQotMjM3CUFVRV9O
VUxMCVVOSU1QTAl0aW1lcl9zZXR0aW1lDQotMjM4CUFVRV9OVUxMCVVOSU1Q
TAl0aW1lcl9nZXR0aW1lDQotMjM5CUFVRV9OVUxMCVVOSU1QTAl0aW1lcl9n
ZXRvdmVycnVuDQorMjM1CUFVRV9OVUxMCVNURAl7IGludCBmcmVlYnNkMzJf
a3RpbWVyX2NyZWF0ZShcDQorCQkJCSAgICBjbG9ja2lkX3QgY2xvY2tfaWQs
IFwNCisJCQkJICAgIHN0cnVjdCBzaWdldmVudDMyICpldnAsIGludCAqdGlt
ZXJpZCk7IH0NCisyMzYJQVVFX05VTEwJTk9QUk9UTwl7IGludCBrdGltZXJf
ZGVsZXRlKGludCB0aW1lcmlkKTsgfQ0KKzIzNwlBVUVfTlVMTAlTVEQJeyBp
bnQgZnJlZWJzZDMyX2t0aW1lcl9zZXR0aW1lKGludCB0aW1lcmlkLFwNCisJ
CQkJICAgIGludCBmbGFncywgXA0KKwkJCQkgICAgY29uc3Qgc3RydWN0IGl0
aW1lcnNwZWMzMiAqdmFsdWUsIFwNCisJCQkJICAgIHN0cnVjdCBpdGltZXJz
cGVjMzIgKm92YWx1ZSk7IH0NCisyMzgJQVVFX05VTEwJU1RECXsgaW50IGZy
ZWVic2QzMl9rdGltZXJfZ2V0dGltZShpbnQgdGltZXJpZCxcDQorCQkJCSAg
ICBzdHJ1Y3QgaXRpbWVyc3BlYzMyICp2YWx1ZSk7IH0NCisyMzkJQVVFX05V
TEwJTk9QUk9UTwl7IGludCBrdGltZXJfZ2V0b3ZlcnJ1bihpbnQgdGltZXJp
ZCk7IH0NCiAyNDAJQVVFX05VTEwJU1RECXsgaW50IGZyZWVic2QzMl9uYW5v
c2xlZXAoIFwNCiAJCQkJICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzMyICpy
cXRwLCBcDQogCQkJCSAgICBzdHJ1Y3QgdGltZXNwZWMzMiAqcm10cCk7IH0N
CkBAIC00NzYsNyArNDgyLDcgQEANCiAJCQkJICAgIHN0cnVjdCBhaW9jYjMy
ICphaW9jYnApOyB9DQogMjU3CUFVRV9OVUxMCU5PU1RECXsgaW50IGZyZWVi
c2QzMl9saW9fbGlzdGlvKGludCBtb2RlLCBcDQogCQkJCSAgICBzdHJ1Y3Qg
YWlvY2IzMiAqIGNvbnN0ICphY2JfbGlzdCwgXA0KLQkJCQkgICAgaW50IG5l
bnQsIHN0cnVjdCBzaWdldmVudCAqc2lnKTsgfQ0KKwkJCQkgICAgaW50IG5l
bnQsIHN0cnVjdCBzaWdldmVudDMyICpzaWcpOyB9DQogMjU4CUFVRV9OVUxM
CVVOSU1QTAlub3N5cw0KIDI1OQlBVUVfTlVMTAlVTklNUEwJbm9zeXMNCiAy
NjAJQVVFX05VTEwJVU5JTVBMCW5vc3lzDQpAQCAtODI1LDggKzgzMSw4IEBA
DQogCQkJCSAgICBjb25zdCBjaGFyICptc2dfcHRyLCBzaXplX3QgbXNnX2xl
bixcDQogCQkJCSAgICB1bnNpZ25lZCBtc2dfcHJpbywJCQlcDQogCQkJCSAg
ICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMzMiAqYWJzX3RpbWVvdXQpO30NCi00
NjEJQVVFX05VTEwJTk9QUk9UT3xOT1NURAl7IGludCBrbXFfbm90aWZ5KGlu
dCBtcWQsCVwNCi0JCQkJICAgIGNvbnN0IHN0cnVjdCBzaWdldmVudCAqc2ln
ZXYpOyB9DQorNDYxCUFVRV9OVUxMCU5PU1RECXsgaW50IGZyZWVic2QzMl9r
bXFfbm90aWZ5KGludCBtcWQsCVwNCisJCQkJICAgIGNvbnN0IHN0cnVjdCBz
aWdldmVudDMyICpzaWdldik7IH0NCiA0NjIJQVVFX05VTEwJTk9QUk9UT3xO
T1NURAl7IGludCBrbXFfdW5saW5rKGNvbnN0IGNoYXIgKnBhdGgpOyB9DQog
NDYzCUFVRV9OVUxMCU5PUFJPVE8JeyBpbnQgYWJvcnQyKGNvbnN0IGNoYXIg
KndoeSwgaW50IG5hcmdzLCB2b2lkICoqYXJncyk7IH0NCiA0NjQJQVVFX05V
TEwgCU5PUFJPVE8JeyBpbnQgdGhyX3NldF9uYW1lKGxvbmcgaWQsIGNvbnN0
IGNoYXIgKm5hbWUpOyB9DQpkaWZmIC0tZ2l0IGEvc3lzL2tlcm4va2Vybl90
aW1lLmMgYi9zeXMva2Vybi9rZXJuX3RpbWUuYw0KaW5kZXggNmI5MDhhMC4u
NDE1MTg4YyAxMDA2NDQNCi0tLSBhL3N5cy9rZXJuL2tlcm5fdGltZS5jDQor
KysgYi9zeXMva2Vybi9rZXJuX3RpbWUuYw0KQEAgLTk4LDkgKzk4LDYgQEAg
c3RhdGljIGludAlyZWFsdGltZXJfc2V0dGltZShzdHJ1Y3QgaXRpbWVyICos
IGludCwNCiBzdGF0aWMgaW50CXJlYWx0aW1lcl9kZWxldGUoc3RydWN0IGl0
aW1lciAqKTsNCiBzdGF0aWMgdm9pZAlyZWFsdGltZXJfY2xvY2t0aW1lKGNs
b2NraWRfdCwgc3RydWN0IHRpbWVzcGVjICopOw0KIHN0YXRpYyB2b2lkCXJl
YWx0aW1lcl9leHBpcmUodm9pZCAqKTsNCi1zdGF0aWMgaW50CWtlcm5fdGlt
ZXJfY3JlYXRlKHN0cnVjdCB0aHJlYWQgKiwgY2xvY2tpZF90LA0KLQkJCXN0
cnVjdCBzaWdldmVudCAqLCBpbnQgKiwgaW50KTsNCi1zdGF0aWMgaW50CWtl
cm5fdGltZXJfZGVsZXRlKHN0cnVjdCB0aHJlYWQgKiwgaW50KTsNCiANCiBp
bnQJCXJlZ2lzdGVyX3Bvc2l4X2Nsb2NrKGludCwgc3RydWN0IGtjbG9jayAq
KTsNCiB2b2lkCQlpdGltZXJfZmlyZShzdHJ1Y3QgaXRpbWVyICppdCk7DQpA
QCAtMTA3OCwyMCArMTA3NSwxOCBAQCBzeXNfa3RpbWVyX2NyZWF0ZShzdHJ1
Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGt0aW1lcl9jcmVhdGVfYXJncyAqdWFw
KQ0KIAkJZXZwMSA9ICZldjsNCiAJfSBlbHNlDQogCQlldnAxID0gTlVMTDsN
Ci0NCi0JZXJyb3IgPSBrZXJuX3RpbWVyX2NyZWF0ZSh0ZCwgdWFwLT5jbG9j
a19pZCwgZXZwMSwgJmlkLCAtMSk7DQotDQorCWVycm9yID0ga2Vybl9rdGlt
ZXJfY3JlYXRlKHRkLCB1YXAtPmNsb2NrX2lkLCBldnAxLCAmaWQsIC0xKTsN
CiAJaWYgKGVycm9yID09IDApIHsNCiAJCWVycm9yID0gY29weW91dCgmaWQs
IHVhcC0+dGltZXJpZCwgc2l6ZW9mKGludCkpOw0KIAkJaWYgKGVycm9yICE9
IDApDQotCQkJa2Vybl90aW1lcl9kZWxldGUodGQsIGlkKTsNCisJCQlrZXJu
X2t0aW1lcl9kZWxldGUodGQsIGlkKTsNCiAJfQ0KIAlyZXR1cm4gKGVycm9y
KTsNCiB9DQogDQotc3RhdGljIGludA0KLWtlcm5fdGltZXJfY3JlYXRlKHN0
cnVjdCB0aHJlYWQgKnRkLCBjbG9ja2lkX3QgY2xvY2tfaWQsDQotCXN0cnVj
dCBzaWdldmVudCAqZXZwLCBpbnQgKnRpbWVyaWQsIGludCBwcmVzZXRfaWQp
DQoraW50DQora2Vybl9rdGltZXJfY3JlYXRlKHN0cnVjdCB0aHJlYWQgKnRk
LCBjbG9ja2lkX3QgY2xvY2tfaWQsIHN0cnVjdCBzaWdldmVudCAqZXZwLA0K
KyAgICBpbnQgKnRpbWVyaWQsIGludCBwcmVzZXRfaWQpDQogew0KIAlzdHJ1
Y3QgcHJvYyAqcCA9IHRkLT50ZF9wcm9jOw0KIAlzdHJ1Y3QgaXRpbWVyICpp
dDsNCkBAIC0xMjA2LDcgKzEyMDEsOCBAQCBzdHJ1Y3Qga3RpbWVyX2RlbGV0
ZV9hcmdzIHsNCiBpbnQNCiBzeXNfa3RpbWVyX2RlbGV0ZShzdHJ1Y3QgdGhy
ZWFkICp0ZCwgc3RydWN0IGt0aW1lcl9kZWxldGVfYXJncyAqdWFwKQ0KIHsN
Ci0JcmV0dXJuIChrZXJuX3RpbWVyX2RlbGV0ZSh0ZCwgdWFwLT50aW1lcmlk
KSk7DQorDQorCXJldHVybiAoa2Vybl9rdGltZXJfZGVsZXRlKHRkLCB1YXAt
PnRpbWVyaWQpKTsNCiB9DQogDQogc3RhdGljIHN0cnVjdCBpdGltZXIgKg0K
QEAgLTEyMjgsOCArMTIyNCw4IEBAIGl0aW1lcl9maW5kKHN0cnVjdCBwcm9j
ICpwLCBpbnQgdGltZXJpZCkNCiAJcmV0dXJuIChpdCk7DQogfQ0KIA0KLXN0
YXRpYyBpbnQNCi1rZXJuX3RpbWVyX2RlbGV0ZShzdHJ1Y3QgdGhyZWFkICp0
ZCwgaW50IHRpbWVyaWQpDQoraW50DQora2Vybl9rdGltZXJfZGVsZXRlKHN0
cnVjdCB0aHJlYWQgKnRkLCBpbnQgdGltZXJpZCkNCiB7DQogCXN0cnVjdCBw
cm9jICpwID0gdGQtPnRkX3Byb2M7DQogCXN0cnVjdCBpdGltZXIgKml0Ow0K
QEAgLTEyNzEsMzUgKzEyNjcsNDAgQEAgc3RydWN0IGt0aW1lcl9zZXR0aW1l
X2FyZ3Mgew0KIGludA0KIHN5c19rdGltZXJfc2V0dGltZShzdHJ1Y3QgdGhy
ZWFkICp0ZCwgc3RydWN0IGt0aW1lcl9zZXR0aW1lX2FyZ3MgKnVhcCkNCiB7
DQotCXN0cnVjdCBwcm9jICpwID0gdGQtPnRkX3Byb2M7DQotCXN0cnVjdCBp
dGltZXIgKml0Ow0KIAlzdHJ1Y3QgaXRpbWVyc3BlYyB2YWwsIG92YWwsICpv
dmFscDsNCiAJaW50IGVycm9yOw0KIA0KIAllcnJvciA9IGNvcHlpbih1YXAt
PnZhbHVlLCAmdmFsLCBzaXplb2YodmFsKSk7DQogCWlmIChlcnJvciAhPSAw
KQ0KIAkJcmV0dXJuIChlcnJvcik7DQotCQ0KLQlpZiAodWFwLT5vdmFsdWUg
IT0gTlVMTCkNCi0JCW92YWxwID0gJm92YWw7DQotCWVsc2UNCi0JCW92YWxw
ID0gTlVMTDsNCisJb3ZhbHAgPSB1YXAtPm92YWx1ZSAhPSBOVUxMID8gJm92
YWwgOiBOVUxMOw0KKwllcnJvciA9IGtlcm5fa3RpbWVyX3NldHRpbWUodGQs
IHVhcC0+dGltZXJpZCwgdWFwLT5mbGFncywgJnZhbCwgb3ZhbHApOw0KKwlp
ZiAoZXJyb3IgPT0gMCAmJiB1YXAtPm92YWx1ZSAhPSBOVUxMKQ0KKwkJZXJy
b3IgPSBjb3B5b3V0KG92YWxwLCB1YXAtPm92YWx1ZSwgc2l6ZW9mKCpvdmFs
cCkpOw0KKwlyZXR1cm4gKGVycm9yKTsNCit9DQogDQoraW50DQora2Vybl9r
dGltZXJfc2V0dGltZShzdHJ1Y3QgdGhyZWFkICp0ZCwgaW50IHRpbWVyX2lk
LCBpbnQgZmxhZ3MsDQorICAgIHN0cnVjdCBpdGltZXJzcGVjICp2YWwsIHN0
cnVjdCBpdGltZXJzcGVjICpvdmFsKQ0KK3sNCisJc3RydWN0IHByb2MgKnA7
DQorCXN0cnVjdCBpdGltZXIgKml0Ow0KKwlpbnQgZXJyb3I7DQorDQorCXAg
PSB0ZC0+dGRfcHJvYzsNCiAJUFJPQ19MT0NLKHApOw0KLQlpZiAodWFwLT50
aW1lcmlkIDwgMyB8fA0KLQkgICAgKGl0ID0gaXRpbWVyX2ZpbmQocCwgdWFw
LT50aW1lcmlkKSkgPT0gTlVMTCkgew0KKwlpZiAodGltZXJfaWQgPCAzIHx8
IChpdCA9IGl0aW1lcl9maW5kKHAsIHRpbWVyX2lkKSkgPT0gTlVMTCkgew0K
IAkJUFJPQ19VTkxPQ0socCk7DQogCQllcnJvciA9IEVJTlZBTDsNCiAJfSBl
bHNlIHsNCiAJCVBST0NfVU5MT0NLKHApOw0KIAkJaXRpbWVyX2VudGVyKGl0
KTsNCi0JCWVycm9yID0gQ0xPQ0tfQ0FMTChpdC0+aXRfY2xvY2tpZCwgdGlt
ZXJfc2V0dGltZSwNCi0JCQkJKGl0LCB1YXAtPmZsYWdzLCAmdmFsLCBvdmFs
cCkpOw0KKwkJZXJyb3IgPSBDTE9DS19DQUxMKGl0LT5pdF9jbG9ja2lkLCB0
aW1lcl9zZXR0aW1lLCAoaXQsDQorCQkgICAgZmxhZ3MsIHZhbCwgb3ZhbCkp
Ow0KIAkJaXRpbWVyX2xlYXZlKGl0KTsNCiAJCUlUSU1FUl9VTkxPQ0soaXQp
Ow0KIAl9DQotCWlmIChlcnJvciA9PSAwICYmIHVhcC0+b3ZhbHVlICE9IE5V
TEwpDQotCQllcnJvciA9IGNvcHlvdXQob3ZhbHAsIHVhcC0+b3ZhbHVlLCBz
aXplb2YoKm92YWxwKSk7DQogCXJldHVybiAoZXJyb3IpOw0KIH0NCiANCkBA
IC0xMzEyLDI2ICsxMzEzLDM0IEBAIHN0cnVjdCBrdGltZXJfZ2V0dGltZV9h
cmdzIHsNCiBpbnQNCiBzeXNfa3RpbWVyX2dldHRpbWUoc3RydWN0IHRocmVh
ZCAqdGQsIHN0cnVjdCBrdGltZXJfZ2V0dGltZV9hcmdzICp1YXApDQogew0K
LQlzdHJ1Y3QgcHJvYyAqcCA9IHRkLT50ZF9wcm9jOw0KLQlzdHJ1Y3QgaXRp
bWVyICppdDsNCiAJc3RydWN0IGl0aW1lcnNwZWMgdmFsOw0KIAlpbnQgZXJy
b3I7DQogDQorCWVycm9yID0ga2Vybl9rdGltZXJfZ2V0dGltZSh0ZCwgdWFw
LT50aW1lcmlkLCAmdmFsKTsNCisJaWYgKGVycm9yID09IDApDQorCQllcnJv
ciA9IGNvcHlvdXQoJnZhbCwgdWFwLT52YWx1ZSwgc2l6ZW9mKHZhbCkpOw0K
KwlyZXR1cm4gKGVycm9yKTsNCit9DQorDQoraW50DQora2Vybl9rdGltZXJf
Z2V0dGltZShzdHJ1Y3QgdGhyZWFkICp0ZCwgaW50IHRpbWVyX2lkLCBzdHJ1
Y3QgaXRpbWVyc3BlYyAqdmFsKQ0KK3sNCisJc3RydWN0IHByb2MgKnA7DQor
CXN0cnVjdCBpdGltZXIgKml0Ow0KKwlpbnQgZXJyb3I7DQorDQorCXAgPSB0
ZC0+dGRfcHJvYzsNCiAJUFJPQ19MT0NLKHApOw0KLQlpZiAodWFwLT50aW1l
cmlkIDwgMyB8fA0KLQkgICAoaXQgPSBpdGltZXJfZmluZChwLCB1YXAtPnRp
bWVyaWQpKSA9PSBOVUxMKSB7DQorCWlmICh0aW1lcl9pZCA8IDMgfHwgKGl0
ID0gaXRpbWVyX2ZpbmQocCwgdGltZXJfaWQpKSA9PSBOVUxMKSB7DQogCQlQ
Uk9DX1VOTE9DSyhwKTsNCiAJCWVycm9yID0gRUlOVkFMOw0KIAl9IGVsc2Ug
ew0KIAkJUFJPQ19VTkxPQ0socCk7DQogCQlpdGltZXJfZW50ZXIoaXQpOw0K
LQkJZXJyb3IgPSBDTE9DS19DQUxMKGl0LT5pdF9jbG9ja2lkLCB0aW1lcl9n
ZXR0aW1lLA0KLQkJCQkoaXQsICZ2YWwpKTsNCisJCWVycm9yID0gQ0xPQ0tf
Q0FMTChpdC0+aXRfY2xvY2tpZCwgdGltZXJfZ2V0dGltZSwgKGl0LCB2YWwp
KTsNCiAJCWl0aW1lcl9sZWF2ZShpdCk7DQogCQlJVElNRVJfVU5MT0NLKGl0
KTsNCiAJfQ0KLQlpZiAoZXJyb3IgPT0gMCkNCi0JCWVycm9yID0gY29weW91
dCgmdmFsLCB1YXAtPnZhbHVlLCBzaXplb2YodmFsKSk7DQogCXJldHVybiAo
ZXJyb3IpOw0KIH0NCiANCkBAIC0xNjI2LDcgKzE2MzUsNyBAQCBpdGltZXJz
X2V2ZW50X2hvb2tfZXhpdCh2b2lkICphcmcsIHN0cnVjdCBwcm9jICpwKQ0K
IAkJCXBhbmljKCJ1bmhhbmRsZWQgZXZlbnQiKTsNCiAJCWZvciAoOyBpIDwg
VElNRVJfTUFYOyArK2kpIHsNCiAJCQlpZiAoKGl0ID0gaXRzLT5pdHNfdGlt
ZXJzW2ldKSAhPSBOVUxMKQ0KLQkJCQlrZXJuX3RpbWVyX2RlbGV0ZShjdXJ0
aHJlYWQsIGkpOw0KKwkJCQlrZXJuX2t0aW1lcl9kZWxldGUoY3VydGhyZWFk
LCBpKTsNCiAJCX0NCiAJCWlmIChpdHMtPml0c190aW1lcnNbMF0gPT0gTlVM
TCAmJg0KIAkJICAgIGl0cy0+aXRzX3RpbWVyc1sxXSA9PSBOVUxMICYmDQpk
aWZmIC0tZ2l0IGEvc3lzL2tlcm4vdWlwY19tcXVldWUuYyBiL3N5cy9rZXJu
L3VpcGNfbXF1ZXVlLmMNCmluZGV4IDczNTc5ZDMuLmFlM2YxYTYgMTAwNjQ0
DQotLS0gYS9zeXMva2Vybi91aXBjX21xdWV1ZS5jDQorKysgYi9zeXMva2Vy
bi91aXBjX21xdWV1ZS5jDQpAQCAtMjIzNSwxMCArMjIzNSw5IEBAIHN5c19r
bXFfdGltZWRzZW5kKHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1Y3Qga21xX3Rp
bWVkc2VuZF9hcmdzICp1YXApDQogCXJldHVybiAoZXJyb3IpOw0KIH0NCiAN
Ci1pbnQNCi1zeXNfa21xX25vdGlmeShzdHJ1Y3QgdGhyZWFkICp0ZCwgc3Ry
dWN0IGttcV9ub3RpZnlfYXJncyAqdWFwKQ0KK3N0YXRpYyBpbnQNCitrZXJu
X2ttcV9ub3RpZnkoc3RydWN0IHRocmVhZCAqdGQsIGludCBtcWQsIHN0cnVj
dCBzaWdldmVudCAqc2lnZXYpDQogew0KLQlzdHJ1Y3Qgc2lnZXZlbnQgZXY7
DQogCXN0cnVjdCBmaWxlZGVzYyAqZmRwOw0KIAlzdHJ1Y3QgcHJvYyAqcDsN
CiAJc3RydWN0IG1xdWV1ZSAqbXE7DQpAQCAtMjI0NiwzNCArMjI0NSwzMSBA
QCBzeXNfa21xX25vdGlmeShzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGtt
cV9ub3RpZnlfYXJncyAqdWFwKQ0KIAlzdHJ1Y3QgbXF1ZXVlX25vdGlmaWVy
ICpudCwgKm5ld250ID0gTlVMTDsNCiAJaW50IGVycm9yOw0KIA0KLQlwID0g
dGQtPnRkX3Byb2M7DQotCWZkcCA9IHRkLT50ZF9wcm9jLT5wX2ZkOw0KLQlp
ZiAodWFwLT5zaWdldikgew0KLQkJZXJyb3IgPSBjb3B5aW4odWFwLT5zaWdl
diwgJmV2LCBzaXplb2YoZXYpKTsNCi0JCWlmIChlcnJvcikNCi0JCQlyZXR1
cm4gKGVycm9yKTsNCi0JCWlmIChldi5zaWdldl9ub3RpZnkgIT0gU0lHRVZf
U0lHTkFMICYmDQotCQkgICAgZXYuc2lnZXZfbm90aWZ5ICE9IFNJR0VWX1RI
UkVBRF9JRCAmJg0KLQkJICAgIGV2LnNpZ2V2X25vdGlmeSAhPSBTSUdFVl9O
T05FKQ0KKwlpZiAoc2lnZXYgIT0gTlVMTCkgew0KKwkJaWYgKHNpZ2V2LT5z
aWdldl9ub3RpZnkgIT0gU0lHRVZfU0lHTkFMICYmDQorCQkgICAgc2lnZXYt
PnNpZ2V2X25vdGlmeSAhPSBTSUdFVl9USFJFQURfSUQgJiYNCisJCSAgICBz
aWdldi0+c2lnZXZfbm90aWZ5ICE9IFNJR0VWX05PTkUpDQogCQkJcmV0dXJu
IChFSU5WQUwpOw0KLQkJaWYgKChldi5zaWdldl9ub3RpZnkgPT0gU0lHRVZf
U0lHTkFMIHx8DQotCQkgICAgIGV2LnNpZ2V2X25vdGlmeSA9PSBTSUdFVl9U
SFJFQURfSUQpICYmDQotCQkJIV9TSUdfVkFMSUQoZXYuc2lnZXZfc2lnbm8p
KQ0KKwkJaWYgKChzaWdldi0+c2lnZXZfbm90aWZ5ID09IFNJR0VWX1NJR05B
TCB8fA0KKwkJICAgIHNpZ2V2LT5zaWdldl9ub3RpZnkgPT0gU0lHRVZfVEhS
RUFEX0lEKSAmJg0KKwkJICAgICFfU0lHX1ZBTElEKHNpZ2V2LT5zaWdldl9z
aWdubykpDQogCQkJcmV0dXJuIChFSU5WQUwpOw0KIAl9DQotCWVycm9yID0g
Z2V0bXEodGQsIHVhcC0+bXFkLCAmZnAsIE5VTEwsICZtcSk7DQorCXAgPSB0
ZC0+dGRfcHJvYzsNCisJZmRwID0gdGQtPnRkX3Byb2MtPnBfZmQ7DQorCWVy
cm9yID0gZ2V0bXEodGQsIG1xZCwgJmZwLCBOVUxMLCAmbXEpOw0KIAlpZiAo
ZXJyb3IpDQogCQlyZXR1cm4gKGVycm9yKTsNCiBhZ2FpbjoNCiAJRklMRURF
U0NfU0xPQ0soZmRwKTsNCi0JZnAyID0gZmdldF9sb2NrZWQoZmRwLCB1YXAt
Pm1xZCk7DQorCWZwMiA9IGZnZXRfbG9ja2VkKGZkcCwgbXFkKTsNCiAJaWYg
KGZwMiA9PSBOVUxMKSB7DQogCQlGSUxFREVTQ19TVU5MT0NLKGZkcCk7DQog
CQllcnJvciA9IEVCQURGOw0KIAkJZ290byBvdXQ7DQogCX0NCiAjaWZkZWYg
Q0FQQUJJTElUSUVTDQotCWVycm9yID0gY2FwX2NoZWNrKGNhcF9yaWdodHMo
ZmRwLCB1YXAtPm1xZCksIENBUF9QT0xMX0VWRU5UKTsNCisJZXJyb3IgPSBj
YXBfY2hlY2soY2FwX3JpZ2h0cyhmZHAsIG1xZCksIENBUF9QT0xMX0VWRU5U
KTsNCiAJaWYgKGVycm9yKSB7DQogCQlGSUxFREVTQ19TVU5MT0NLKGZkcCk7
DQogCQlnb3RvIG91dDsNCkBAIC0yMjg2LDEyICsyMjgyLDEyIEBAIGFnYWlu
Og0KIAl9DQogCW10eF9sb2NrKCZtcS0+bXFfbXV0ZXgpOw0KIAlGSUxFREVT
Q19TVU5MT0NLKGZkcCk7DQotCWlmICh1YXAtPnNpZ2V2ICE9IE5VTEwpIHsN
CisJaWYgKHNpZ2V2ICE9IE5VTEwpIHsNCiAJCWlmIChtcS0+bXFfbm90aWZp
ZXIgIT0gTlVMTCkgew0KIAkJCWVycm9yID0gRUJVU1k7DQogCQl9IGVsc2Ug
ew0KIAkJCVBST0NfTE9DSyhwKTsNCi0JCQludCA9IG5vdGlmaWVyX3NlYXJj
aChwLCB1YXAtPm1xZCk7DQorCQkJbnQgPSBub3RpZmllcl9zZWFyY2gocCwg
bXFkKTsNCiAJCQlpZiAobnQgPT0gTlVMTCkgew0KIAkJCQlpZiAobmV3bnQg
PT0gTlVMTCkgew0KIAkJCQkJUFJPQ19VTkxPQ0socCk7DQpAQCAtMjMxNCwx
MCArMjMxMCwxMCBAQCBhZ2FpbjoNCiAJCQkJbnQtPm50X2tzaS5rc2lfZmxh
Z3MgfD0gS1NJX0lOUyB8IEtTSV9FWFQ7DQogCQkJCW50LT5udF9rc2kua3Np
X2NvZGUgPSBTSV9NRVNHUTsNCiAJCQkJbnQtPm50X3Byb2MgPSBwOw0KLQkJ
CQludC0+bnRfa3NpLmtzaV9tcWQgPSB1YXAtPm1xZDsNCisJCQkJbnQtPm50
X2tzaS5rc2lfbXFkID0gbXFkOw0KIAkJCQlub3RpZmllcl9pbnNlcnQocCwg
bnQpOw0KIAkJCX0NCi0JCQludC0+bnRfc2lnZXYgPSBldjsNCisJCQludC0+
bnRfc2lnZXYgPSAqc2lnZXY7DQogCQkJbXEtPm1xX25vdGlmaWVyID0gbnQ7
DQogCQkJUFJPQ19VTkxPQ0socCk7DQogCQkJLyoNCkBAIC0yMzMwLDcgKzIz
MjYsNyBAQCBhZ2FpbjoNCiAJCQkJbXF1ZXVlX3NlbmRfbm90aWZpY2F0aW9u
KG1xKTsNCiAJCX0NCiAJfSBlbHNlIHsNCi0JCW5vdGlmaWVyX3JlbW92ZShw
LCBtcSwgdWFwLT5tcWQpOw0KKwkJbm90aWZpZXJfcmVtb3ZlKHAsIG1xLCBt
cWQpOw0KIAl9DQogCW10eF91bmxvY2soJm1xLT5tcV9tdXRleCk7DQogDQpA
QCAtMjM0MSw2ICsyMzM3LDIwIEBAIG91dDoNCiAJcmV0dXJuIChlcnJvcik7
DQogfQ0KIA0KK2ludA0KK3N5c19rbXFfbm90aWZ5KHN0cnVjdCB0aHJlYWQg
KnRkLCBzdHJ1Y3Qga21xX25vdGlmeV9hcmdzICp1YXApDQorew0KKwlzdHJ1
Y3Qgc2lnZXZlbnQgZXY7DQorCWludCBlcnJvcjsNCisNCisJaWYgKHVhcC0+
c2lnZXYgIT0gTlVMTCkgew0KKwkJZXJyb3IgPSBjb3B5aW4odWFwLT5zaWdl
diwgJmV2LCBzaXplb2YoZXYpKTsNCisJCWlmIChlcnJvciAhPSAwKQ0KKwkJ
CXJldHVybiAoZXJyb3IpOw0KKwl9DQorCXJldHVybiAoa2Vybl9rbXFfbm90
aWZ5KHRkLCB1YXAtPm1xZCwgJmV2KSk7DQorfQ0KKw0KIHN0YXRpYyB2b2lk
DQogbXF1ZXVlX2ZkY2xvc2Uoc3RydWN0IHRocmVhZCAqdGQsIGludCBmZCwg
c3RydWN0IGZpbGUgKmZwKQ0KIHsNCkBAIC0yNjM3LDYgKzI2NDcsNyBAQCBz
dGF0aWMgc3RydWN0IHN5c2NhbGxfaGVscGVyX2RhdGEgbXFfc3lzY2FsbHNb
XSA9IHsNCiAjaWZkZWYgQ09NUEFUX0ZSRUVCU0QzMg0KICNpbmNsdWRlIDxj
b21wYXQvZnJlZWJzZDMyL2ZyZWVic2QzMi5oPg0KICNpbmNsdWRlIDxjb21w
YXQvZnJlZWJzZDMyL2ZyZWVic2QzMl9wcm90by5oPg0KKyNpbmNsdWRlIDxj
b21wYXQvZnJlZWJzZDMyL2ZyZWVic2QzMl9zaWduYWwuaD4NCiAjaW5jbHVk
ZSA8Y29tcGF0L2ZyZWVic2QzMi9mcmVlYnNkMzJfc3lzY2FsbC5oPg0KICNp
bmNsdWRlIDxjb21wYXQvZnJlZWJzZDMyL2ZyZWVic2QzMl91dGlsLmg+DQog
DQpAQCAtMjc2MywxMiArMjc3NCwzMCBAQCBmcmVlYnNkMzJfa21xX3RpbWVk
cmVjZWl2ZShzdHJ1Y3QgdGhyZWFkICp0ZCwNCiAJcmV0dXJuIChlcnJvcik7
DQogfQ0KIA0KK2ludA0KK2ZyZWVic2QzMl9rbXFfbm90aWZ5KHN0cnVjdCB0
aHJlYWQgKnRkLCBzdHJ1Y3QgZnJlZWJzZDMyX2ttcV9ub3RpZnlfYXJncyAq
dWFwKQ0KK3sNCisJc3RydWN0IHNpZ2V2ZW50IGV2Ow0KKwlzdHJ1Y3Qgc2ln
ZXZlbnQzMiBldjMyOw0KKwlpbnQgZXJyb3I7DQorDQorCWlmICh1YXAtPnNp
Z2V2ICE9IE5VTEwpIHsNCisJCWVycm9yID0gY29weWluKHVhcC0+c2lnZXYs
ICZldjMyLCBzaXplb2YoZXYzMikpOw0KKwkJaWYgKGVycm9yICE9IDApDQor
CQkJcmV0dXJuIChlcnJvcik7DQorCQllcnJvciA9IGNvbnZlcnRfc2lnZXZl
bnQzMigmZXYzMiwgJmV2KTsNCisJCWlmIChlcnJvciAhPSAwKQ0KKwkJCXJl
dHVybiAoZXJyb3IpOw0KKwl9DQorCXJldHVybiAoa2Vybl9rbXFfbm90aWZ5
KHRkLCB1YXAtPm1xZCwgJmV2KSk7DQorfQ0KKw0KIHN0YXRpYyBzdHJ1Y3Qg
c3lzY2FsbF9oZWxwZXJfZGF0YSBtcTMyX3N5c2NhbGxzW10gPSB7DQogCVNZ
U0NBTEwzMl9JTklUX0hFTFBFUihmcmVlYnNkMzJfa21xX29wZW4pLA0KIAlT
WVNDQUxMMzJfSU5JVF9IRUxQRVIoZnJlZWJzZDMyX2ttcV9zZXRhdHRyKSwN
CiAJU1lTQ0FMTDMyX0lOSVRfSEVMUEVSKGZyZWVic2QzMl9rbXFfdGltZWRz
ZW5kKSwNCiAJU1lTQ0FMTDMyX0lOSVRfSEVMUEVSKGZyZWVic2QzMl9rbXFf
dGltZWRyZWNlaXZlKSwNCi0JU1lTQ0FMTDMyX0lOSVRfSEVMUEVSX0NPTVBB
VChrbXFfbm90aWZ5KSwNCisJU1lTQ0FMTDMyX0lOSVRfSEVMUEVSKGZyZWVi
c2QzMl9rbXFfbm90aWZ5KSwNCiAJU1lTQ0FMTDMyX0lOSVRfSEVMUEVSX0NP
TVBBVChrbXFfdW5saW5rKSwNCiAJU1lTQ0FMTF9JTklUX0xBU1QNCiB9Ow0K
ZGlmZiAtLWdpdCBhL3N5cy9rZXJuL3Zmc19haW8uYyBiL3N5cy9rZXJuL3Zm
c19haW8uYw0KaW5kZXggNWZiOTM0MS4uODYyNDQzYyAxMDA2NDQNCi0tLSBh
L3N5cy9rZXJuL3Zmc19haW8uYw0KKysrIGIvc3lzL2tlcm4vdmZzX2Fpby5j
DQpAQCAtMjc1NSwzMSArMjc1NSw2IEBAIGFpb2NiMzJfY29weWluX29sZF9z
aWdldmVudChzdHJ1Y3QgYWlvY2IgKnVqb2IsIHN0cnVjdCBhaW9jYiAqa2pv
YikNCiB9DQogDQogc3RhdGljIGludA0KLWNvbnZlcnRfc2lnZXZlbnQzMihz
dHJ1Y3Qgc2lnZXZlbnQzMiAqc2lnMzIsIHN0cnVjdCBzaWdldmVudCAqc2ln
KQ0KLXsNCi0NCi0JQ1AoKnNpZzMyLCAqc2lnLCBzaWdldl9ub3RpZnkpOw0K
LQlzd2l0Y2ggKHNpZy0+c2lnZXZfbm90aWZ5KSB7DQotCWNhc2UgU0lHRVZf
Tk9ORToNCi0JCWJyZWFrOw0KLQljYXNlIFNJR0VWX1RIUkVBRF9JRDoNCi0J
CUNQKCpzaWczMiwgKnNpZywgc2lnZXZfbm90aWZ5X3RocmVhZF9pZCk7DQot
CQkvKiBGQUxMVEhST1VHSCAqLw0KLQljYXNlIFNJR0VWX1NJR05BTDoNCi0J
CUNQKCpzaWczMiwgKnNpZywgc2lnZXZfc2lnbm8pOw0KLQkJYnJlYWs7DQot
CWNhc2UgU0lHRVZfS0VWRU5UOg0KLQkJQ1AoKnNpZzMyLCAqc2lnLCBzaWdl
dl9ub3RpZnlfa3F1ZXVlKTsNCi0JCUNQKCpzaWczMiwgKnNpZywgc2lnZXZf
bm90aWZ5X2tldmVudF9mbGFncyk7DQotCQlQVFJJTl9DUCgqc2lnMzIsICpz
aWcsIHNpZ2V2X3ZhbHVlLnNpdmFsX3B0cik7DQotCQlicmVhazsNCi0JZGVm
YXVsdDoNCi0JCXJldHVybiAoRUlOVkFMKTsNCi0JfQ0KLQlyZXR1cm4gKDAp
Ow0KLX0NCi0NCi1zdGF0aWMgaW50DQogYWlvY2IzMl9jb3B5aW4oc3RydWN0
IGFpb2NiICp1am9iLCBzdHJ1Y3QgYWlvY2IgKmtqb2IpDQogew0KIAlzdHJ1
Y3QgYWlvY2IzMiBqb2IzMjsNCmRpZmYgLS1naXQgYS9zeXMvc3lzL3N5c2Nh
bGxzdWJyLmggYi9zeXMvc3lzL3N5c2NhbGxzdWJyLmgNCmluZGV4IDc1Mjc4
YzMuLmUxOGM3MzUgMTAwNjQ0DQotLS0gYS9zeXMvc3lzL3N5c2NhbGxzdWJy
LmgNCisrKyBiL3N5cy9zeXMvc3lzY2FsbHN1YnIuaA0KQEAgLTIyOCw2ICsy
MjgsMTMgQEAgaW50CWtlcm5fc3ltbGluayhzdHJ1Y3QgdGhyZWFkICp0ZCwg
Y2hhciAqcGF0aCwgY2hhciAqbGluaywNCiAJICAgIGVudW0gdWlvX3NlZyBz
ZWdmbGcpOw0KIGludAlrZXJuX3N5bWxpbmthdChzdHJ1Y3QgdGhyZWFkICp0
ZCwgY2hhciAqcGF0aDEsIGludCBmZCwgY2hhciAqcGF0aDIsDQogCSAgICBl
bnVtIHVpb19zZWcgc2VnZmxnKTsNCitpbnQJa2Vybl9rdGltZXJfY3JlYXRl
KHN0cnVjdCB0aHJlYWQgKnRkLCBjbG9ja2lkX3QgY2xvY2tfaWQsDQorCSAg
ICBzdHJ1Y3Qgc2lnZXZlbnQgKmV2cCwgaW50ICp0aW1lcmlkLCBpbnQgcHJl
c2V0X2lkKTsNCitpbnQJa2Vybl9rdGltZXJfZGVsZXRlKHN0cnVjdCB0aHJl
YWQgKiwgaW50KTsNCitpbnQJa2Vybl9rdGltZXJfc2V0dGltZShzdHJ1Y3Qg
dGhyZWFkICp0ZCwgaW50IHRpbWVyX2lkLCBpbnQgZmxhZ3MsDQorCSAgICBz
dHJ1Y3QgaXRpbWVyc3BlYyAqdmFsLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqb3Zh
bCk7DQoraW50CWtlcm5fa3RpbWVyX2dldHRpbWUoc3RydWN0IHRocmVhZCAq
dGQsIGludCB0aW1lcl9pZCwNCisJICAgIHN0cnVjdCBpdGltZXJzcGVjICp2
YWwpOw0KIGludAlrZXJuX3Rocl9uZXcoc3RydWN0IHRocmVhZCAqdGQsIHN0
cnVjdCB0aHJfcGFyYW0gKnBhcmFtKTsNCiBpbnQJa2Vybl90aHJfc3VzcGVu
ZChzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IHRpbWVzcGVjICp0c3ApOw0K
IGludAlrZXJuX3RydW5jYXRlKHN0cnVjdCB0aHJlYWQgKnRkLCBjaGFyICpw
YXRoLCBlbnVtIHVpb19zZWcgcGF0aHNlZywNCg==
--8323328-1230774450-1374395034=:23067--
More information about the freebsd-threads
mailing list