Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Dec 2016 13:26:58 +0000
From:      "oleg (Oleg Bulyzhin)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] D8637: buf_ring.h: fix memory order issues.
Message-ID:  <97fc3e89e8a20806270e7ab7134d7e0e@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-7phoe4ltzb7cywaexwdr-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-7phoe4ltzb7cywaexwdr-req@FreeBSD.org>

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

--b1_97fc3e89e8a20806270e7ab7134d7e0e
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

b2xlZyB1cGRhdGVkIHRoaXMgcmV2aXNpb24gdG8gRGlmZiAyMjcyOC4Kb2xlZyBhZGRlZCBhIGNv
bW1lbnQuCgoKICAxLiBmaXggaXNzdWVzIHJlcG9ydGVkIGJ5IHNiYWhyYV9yZXBub3Aub3JnIGhl
cmU6IGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EMTk0NQogIDIuIGZpeCBzeW5jaHJvbml6
YXRpb24gY2hhaW4gKHByb2R1Y2VyIC0+IHByb2R1Y2VyIC0+IGNvbnN1bWVyKSBub3RlZCBieSBh
bGMuCiAgMy4gbWFzc2l2ZSBjb21tZW50cy4KCkNIQU5HRVMgU0lOQ0UgTEFTVCBVUERBVEUKICBo
dHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDg2Mzc/dnM9MjI1MDcmaWQ9MjI3MjgKClJFVklT
SU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EODYzNwoKQUZGRUNURUQg
RklMRVMKICBzeXMvc3lzL2J1Zl9yaW5nLmgKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9y
ZXZpZXdzLmZyZWVic2Qub3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzog
b2xlZywga21hY3ksIGtpYiwgYWxjCkNjOiBlbWFzdGUsIGZyZWVic2QtbmV0LWxpc3QK

--b1_97fc3e89e8a20806270e7ab7134d7e0e
Content-Type: text/x-patch; charset=utf-8; name="D8637.22728.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D8637.22728.patch"

ZGlmZiAtLWdpdCBhL3N5cy9zeXMvYnVmX3JpbmcuaCBiL3N5cy9zeXMvYnVmX3JpbmcuaAotLS0g
YS9zeXMvc3lzL2J1Zl9yaW5nLmgKKysrIGIvc3lzL3N5cy9idWZfcmluZy5oCkBAIC03NSwzNSAr
NzUsNjkgQEAKICNlbmRpZgkKIAljcml0aWNhbF9lbnRlcigpOwogCWRvIHsKLQkJcHJvZF9oZWFk
ID0gYnItPmJyX3Byb2RfaGVhZDsKKwkJLyoKKwkJICogbG9hZF9hY3EocHJvZF9oZWFkKSBwcmVj
ZWRpbmcgbG9hZChjb25zX3RhaWwpIGlzCisJCSAqIG1hbmRhdG9yeTogY29uc190YWlsIE1VU1Qg
YmUgbm90ICdvbGRlcicgdGhhbiBwcm9kX2hlYWQuCisJCSAqIE90aGVyd2lzZSBmb2xsb3dpbmcg
Y2FuIGhhcHBlbjoKKwkJICogYSkgaW5pdGlhbCBzdGF0ZTogY29uc190YWlsOiAxIHByb2RfaGVh
ZDogMCByaW5nIGlzIGZ1bGwuCisJCSAqIGIpIGNwdTA6IHJlYWRzIGNvbnNfdGFpbDogMQorCQkg
KiBjKSBjcHUxOiBydW5zIGNvbnN1bWVyIGFuZCBzZXRzIGNvbnNfdGFpbDogMgorCQkgKiBkKSBj
cHUxOiBydW5zIHByb2R1Y2VyIGFuZCBzZXRzIHByb2RfaGVhZDogMQorCQkgKiAgICAgICAgICBy
aW5nIGlzIGZ1bGwgYWdhaW4uCisJCSAqIGUpIGNwdTA6IHJlYWRzIHByb2RfaGVhZDogMSwgJ3Jp
bmcgaXMgZnVsbCcgY2hlY2sgd2lsbCBmYWlsLgorCQkgKiBmKSBjcHUwOiBjbXBzZXQocHJvZF9o
ZWFkKSB3aWxsIGJlIHN1Y2Nlc3NmdWwuCisJCSAqIGcpIHJpbmcgaXMgY29ycnVwdGVkLgorCQkg
Ki8KKwkJcHJvZF9oZWFkID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF9oZWFkKTsK
IAkJcHJvZF9uZXh0ID0gKHByb2RfaGVhZCArIDEpICYgYnItPmJyX3Byb2RfbWFzazsKLQkJY29u
c190YWlsID0gYnItPmJyX2NvbnNfdGFpbDsKLQotCQlpZiAocHJvZF9uZXh0ID09IGNvbnNfdGFp
bCkgewotCQkJcm1iKCk7Ci0JCQlpZiAocHJvZF9oZWFkID09IGJyLT5icl9wcm9kX2hlYWQgJiYK
LQkJCSAgICBjb25zX3RhaWwgPT0gYnItPmJyX2NvbnNfdGFpbCkgewotCQkJCWJyLT5icl9kcm9w
cysrOwotCQkJCWNyaXRpY2FsX2V4aXQoKTsKLQkJCQlyZXR1cm4gKEVOT0JVRlMpOwotCQkJfQot
CQkJY29udGludWU7CisJCS8qCisJCSAqIGxvYWRfYWNxKGNvbnNfdGFpbCkgaXMgcmVxdWlyZWQ6
IHRodXMgd2Ugc3luY2hyb25pemUgd2l0aAorCQkgKiBjb25zdW1lcnMuCisJCSAqLworCQljb25z
X3RhaWwgPSBhdG9taWNfbG9hZF9hY3FfMzIoJmJyLT5icl9jb25zX3RhaWwpOworCisJCWlmIChw
cm9kX25leHQgPT0gY29uc190YWlsKSB7CS8qIHJpbmcgaXMgZnVsbCAqLworCQkJLyoKKwkJCSAq
IHByb2RfaGVhZCBjYW4gYmUgJ29sZGVyJyB0aGFuIGNvbnNfdGFpbCAoc2VlIGFib3ZlKSwKKwkJ
CSAqIHNvIHRoaXMgY2FuIGJlIGZhbHNlIHBvc2l0aXZlICdyaW5nIGlzIGZ1bGwnIGVycm9yLgor
CQkJICogY2hlY2sgaXQuCisJCQkgKi8KKwkJCWlmIChwcm9kX2hlYWQgIT0gYXRvbWljX2xvYWRf
YWNxXzMyKCZici0+YnJfcHJvZF9oZWFkKSkKKwkJCQljb250aW51ZTsKKwkJCWJyLT5icl9kcm9w
cysrOworCQkJY3JpdGljYWxfZXhpdCgpOworCQkJcmV0dXJuIChFTk9CVUZTKTsKIAkJfQotCX0g
d2hpbGUgKCFhdG9taWNfY21wc2V0X2FjcV9pbnQoJmJyLT5icl9wcm9kX2hlYWQsIHByb2RfaGVh
ZCwgcHJvZF9uZXh0KSk7CisJfSB3aGlsZSAoIWF0b21pY19jbXBzZXRfMzIoJmJyLT5icl9wcm9k
X2hlYWQsIHByb2RfaGVhZCwgcHJvZF9uZXh0KSk7CiAjaWZkZWYgREVCVUdfQlVGUklORwogCWlm
IChici0+YnJfcmluZ1twcm9kX2hlYWRdICE9IE5VTEwpCiAJCXBhbmljKCJkYW5nbGluZyB2YWx1
ZSBpbiBlbnF1ZXVlIik7CiAjZW5kaWYJCiAJYnItPmJyX3JpbmdbcHJvZF9oZWFkXSA9IGJ1ZjsK
LQogCS8qCi0JICogSWYgdGhlcmUgYXJlIG90aGVyIGVucXVldWVzIGluIHByb2dyZXNzCi0JICog
dGhhdCBwcmVjZWRlZCB1cywgd2UgbmVlZCB0byB3YWl0IGZvciB0aGVtCi0JICogdG8gY29tcGxl
dGUgCisJICogSWYgdGhlcmUgYXJlIG90aGVyIGVucXVldWVzIGluIHByb2dyZXNzIHRoYXQgcHJl
Y2VkZWQgdXMsIHdlIG5lZWQKKwkgKiB0byB3YWl0IGZvciB0aGVtIHRvIGNvbXBsZXRlLgorCSAq
IGxvYWRfYWNxKHByb2RfdGFpbCkgaXMgcmVxdWlyZWQgZm9yIHByb3BlciBzeW5jaHJvbml6YXRp
b24gY2hhaW4KKwkgKiBhbW9uZyBjb25zdW1lciBhbmQgbXVsdGlwbGUgcHJvZHVjZXJzLgorCSAq
IENvbnNpZGVyIGZvbGxvd2luZyBzY2VuYXJpbzoKKwkgKiBhKSBpbml0aWFsIHN0YXRlOiBwcm9k
X2hlYWQscHJvZF90YWlsLGNvbnNfaGVhZCxjb25zX3RhaWwgYXJlIDAuCisJICogICAgcmluZyBp
cyBlbXB0eS4KKwkgKiBiKSBjcHUwOiBydW5zIHByb2R1Y2VyLCBncmFicyBwcm9kX2hlYWQ6IDAg
YW5kIHNldHMgcHJvZF9oZWFkOiAxCisJICogYykgY3B1MTogcnVucyBwcm9kdWNlciwgZ3JhYnMg
cHJvZF9oZWFkOiAxIGFuZCBzZXRzIHByb2RfaGVhZDogMgorCSAqIGQpIGNwdTE6IHN0b3JlcyBk
YXRhIHRvIHJpbmdbMV0gYW5kIHdhaXRzIGZvciBwcm9kX3RhaWw6IDEKKwkgKiBlKSBjcHUwOiBz
dG9yZXMgZGF0YSB0byByaW5nWzBdLCBzZXRzIHByb2RfdGFpbDogMQorCSAqIGYpIGNwdTE6IHNl
ZXMgcHJvZF90YWlsOiAxLiBJZiBsb2FkKHByb2RfdGFpbCkgd2FzIGRvbmUgd2l0aG91dCBfYWNx
CisJICogICAgYmFycmllciB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBzdG9yZSB0byByaW5n
WzBdIGlzIHZpc2libGUuCisJICogZykgY3B1MTogZXhlY3V0ZXMgc3RvcmVfcmVsKHByb2RfdGFp
bDogMikKKwkgKiBoKSBjcHUyOiBydW5zIGNvbnN1bWVyLCBleGVjdXRlcyBsb2FkX2FjcShwcm9k
X3RhaWwpIGFuZCBzZWVzCisJICogICAgcHJvZF90YWlsOiAyLiBhY3EvcmVsIHNlbWFudGljIGlu
IGNvbnN1bWVyL3Byb2R1Y2VyIGd1YXJhbnRlZXMKKwkgKiAgICBjb25zaXN0ZW50IHJlYWQgZnJv
bSByaW5nWzFdIGFuZCBfZG9lcyBub3QgZ3VhcmFudGVlXyBjb25zaXN0ZW50CisJICogICAgcmVh
ZCBmcm9tIHJpbmdbMF0gKGlmIHdlIGhhZCB1bm9yZGVyZWQgbG9hZChwcm9kX3RhaWwpIGluIGYp
LgorCSAqIGkpIGNwdTI6IHJlYWRzIGp1bmsgZnJvbSByaW5nWzBdCiAJICovICAgCi0Jd2hpbGUg
KGJyLT5icl9wcm9kX3RhaWwgIT0gcHJvZF9oZWFkKQorCXdoaWxlIChhdG9taWNfbG9hZF9hY3Ff
MzIoJmJyLT5icl9wcm9kX3RhaWwpICE9IHByb2RfaGVhZCkKIAkJY3B1X3NwaW53YWl0KCk7Ci0J
YXRvbWljX3N0b3JlX3JlbF9pbnQoJmJyLT5icl9wcm9kX3RhaWwsIHByb2RfbmV4dCk7CisJYXRv
bWljX3N0b3JlX3JlbF8zMigmYnItPmJyX3Byb2RfdGFpbCwgcHJvZF9uZXh0KTsKIAljcml0aWNh
bF9leGl0KCk7CiAJcmV0dXJuICgwKTsKIH0KQEAgLTExNSwxOSArMTQ5LDQ1IEBACiBzdGF0aWMg
X19pbmxpbmUgdm9pZCAqCiBidWZfcmluZ19kZXF1ZXVlX21jKHN0cnVjdCBidWZfcmluZyAqYnIp
CiB7Ci0JdWludDMyX3QgY29uc19oZWFkLCBjb25zX25leHQ7CisJdWludDMyX3QgY29uc19oZWFk
LCBjb25zX25leHQsIHByb2RfdGFpbDsKIAl2b2lkICpidWY7CiAKIAljcml0aWNhbF9lbnRlcigp
OwogCWRvIHsKLQkJY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKLQkJY29uc19uZXh0ID0g
KGNvbnNfaGVhZCArIDEpICYgYnItPmJyX2NvbnNfbWFzazsKLQotCQlpZiAoY29uc19oZWFkID09
IGJyLT5icl9wcm9kX3RhaWwpIHsKKwkJLyoKKwkJICogbG9hZF9hY3EoY29uc19oZWFkKSBwcmVj
ZWRpbmcgbG9hZChwcm9kX3RhaWwpIGlzCisJCSAqIG1hbmRhdG9yeTogcHJvZF90YWlsIE1VU1Qg
YmUgbm90ICdvbGRlcicgdGhhbiBjb25zX2hlYWQuCisJCSAqIE90aGVyd2lzZSBmb2xsb3dpbmcg
Y2FuIGhhcHBlbjoKKwkJICogYSkgaW5pdGlhbCBzdGF0ZTogcHJvZF90YWlsOiAwIGNvbnNfaGVh
ZDogMCByaW5nIGlzIGVtcHR5LgorCQkgKiBiKSBjcHUwOiByZWFkcyBwcm9kX3RhaWw6IDAKKwkJ
ICogYykgY3B1MTogcnVucyBwcm9kdWNlciBhbmQgc2V0cyBwcm9kX3RhaWw6IDEKKwkJICogZCkg
Y3B1MTogcnVucyBjb25zdW1lciBhbmQgc2V0cyBjb25zX2hlYWQ6IDEKKwkJICogICAgICAgICAg
cmluZyBpcyBlbXB0eSBhZ2Fpbi4KKwkJICogZSkgY3B1MDogcmVhZHMgY29uc19oZWFkOiAxLCAn
cmluZyBpcyBlbXB0eScgY2hlY2sgd2lsbCBmYWlsLgorCQkgKiBmKSBjcHUwOiBjbXBzZXQoY29u
c19oZWFkKSB3aWxsIGJlIHN1Y2Nlc3NmdWwuCisJCSAqIGcpIGNwdTA6IHJlYWRzIGp1bmsgZnJv
bSBlbXB0eSByaW5nCisJCSAqLworCQljb25zX2hlYWQgPSBhdG9taWNfbG9hZF9hY3FfMzIoJmJy
LT5icl9jb25zX2hlYWQpOworCQkvKgorCQkgKiBsb2FkX2FjcShwcm9kX3RhaWwpIGlzIHJlcXVp
cmVkOiB0aHVzIHdlIHN5bmNocm9uaXplIHdpdGgKKwkJICogcHJvZHVjZXJzIGFuZCBsYXRlciBi
ci0+YnJfcmluZ1tjb25zX2hlYWRdIGxvYWQgd2lsbCBiZQorCQkgKiBjb25zaXN0ZW50LgorCQkg
Ki8KKwkJcHJvZF90YWlsID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90YWlsKTsK
KworCQlpZiAoY29uc19oZWFkID09IHByb2RfdGFpbCkgewkvKiByaW5nIGlzIGVtcHR5ICovCisJ
CQkvKgorCQkJICogU2luY2UgY29uc19oZWFkIGNhbiBiZSAnb2xkZXInIHRoYW4gcHJvZF90YWls
IHRoaXMKKwkJCSAqIGNhbiBiZSBmYWxzZSBwb3NpdGl2ZSAncmluZyBpcyBlbXB0eScuCisJCQkg
KiBXZSBjYW4gY2hlY2sgaXQgaGVyZSBvciBqdXN0IHdhaXQgZm9yIG5leHQKKwkJCSAqIGJ1Zl9y
aW5nX2RlcXVldWVfbWMoKSBjYWxsLgorCQkJICovCiAJCQljcml0aWNhbF9leGl0KCk7CiAJCQly
ZXR1cm4gKE5VTEwpOwogCQl9Ci0JfSB3aGlsZSAoIWF0b21pY19jbXBzZXRfYWNxX2ludCgmYnIt
PmJyX2NvbnNfaGVhZCwgY29uc19oZWFkLCBjb25zX25leHQpKTsKKworCQljb25zX25leHQgPSAo
Y29uc19oZWFkICsgMSkgJiBici0+YnJfY29uc19tYXNrOworCX0gd2hpbGUgKCFhdG9taWNfY21w
c2V0XzMyKCZici0+YnJfY29uc19oZWFkLCBjb25zX2hlYWQsIGNvbnNfbmV4dCkpOwogCiAJYnVm
ID0gYnItPmJyX3JpbmdbY29uc19oZWFkXTsKICNpZmRlZiBERUJVR19CVUZSSU5HCkBAIC0xNDAs
MTAgKzIwMCw4IEBACiAJICovICAgCiAJd2hpbGUgKGJyLT5icl9jb25zX3RhaWwgIT0gY29uc19o
ZWFkKQogCQljcHVfc3BpbndhaXQoKTsKLQotCWF0b21pY19zdG9yZV9yZWxfaW50KCZici0+YnJf
Y29uc190YWlsLCBjb25zX25leHQpOworCWF0b21pY19zdG9yZV9yZWxfMzIoJmJyLT5icl9jb25z
X3RhaWwsIGNvbnNfbmV4dCk7CiAJY3JpdGljYWxfZXhpdCgpOwotCiAJcmV0dXJuIChidWYpOwog
fQogCkBAIC0xNTUsNjIgKzIxMyw0MSBAQAogc3RhdGljIF9faW5saW5lIHZvaWQgKgogYnVmX3Jp
bmdfZGVxdWV1ZV9zYyhzdHJ1Y3QgYnVmX3JpbmcgKmJyKQogewotCXVpbnQzMl90IGNvbnNfaGVh
ZCwgY29uc19uZXh0OworCXVpbnQzMl90IGNvbnNfaGVhZCwgY29uc19uZXh0LCBwcm9kX3RhaWw7
CiAjaWZkZWYgUFJFRkVUQ0hfREVGSU5FRAogCXVpbnQzMl90IGNvbnNfbmV4dF9uZXh0OwogI2Vu
ZGlmCi0JdWludDMyX3QgcHJvZF90YWlsOwogCXZvaWQgKmJ1ZjsKIAogCS8qCi0JICogVGhpcyBp
cyBhIHdvcmthcm91bmQgdG8gYWxsb3cgdXNpbmcgYnVmX3Jpbmcgb24gQVJNIGFuZCBBUk02NC4K
LQkgKiBBUk02NFRPRE86IEZpeCBidWZfcmluZyBpbiBhIGdlbmVyaWMgd2F5LgotCSAqIFJFTUFS
S1M6IEl0IGlzIHN1c3BlY3RlZCB0aGF0IGJyX2NvbnNfaGVhZCBkb2VzIG5vdCByZXF1aXJlCi0J
ICogICBsb2FkX2FjcSBvcGVyYXRpb24sIGJ1dCB0aGlzIGNoYW5nZSB3YXMgZXh0ZW5zaXZlbHkg
dGVzdGVkCi0JICogICBhbmQgY29uZmlybWVkIGl0J3Mgd29ya2luZy4gVG8gYmUgcmV2aWV3ZWQg
b25jZSBhZ2FpbiBpbgotCSAqICAgRnJlZUJTRC0xMi4KLQkgKgotCSAqIFByZXZlbnRpbmcgZm9s
bG93aW5nIHNpdHVhdGlvbjoKLQotCSAqIENvcmUoMCkgLSBidWZfcmluZ19lbnF1ZXVlKCkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlKDEpIC0gYnVmX3JpbmdfZGVx
dWV1ZV9zYygpCi0JICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JICoKLQkgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKLQkgKiBhdG9taWNfY21wc2V0X2FjcV8z
MigmYnItPmJyX3Byb2RfaGVhZCwgLi4uKSk7Ci0JICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1
ZiA9IGJyLT5icl9yaW5nW2NvbnNfaGVhZF07ICAgICA8c2VlIDwxPj4KLQkgKiBici0+YnJfcmlu
Z1twcm9kX2hlYWRdID0gYnVmOwotCSAqIGF0b21pY19zdG9yZV9yZWxfMzIoJmJyLT5icl9wcm9k
X3RhaWwsIC4uLik7Ci0JICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2RfdGFpbCA9IGJyLT5i
cl9wcm9kX3RhaWw7Ci0JICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25zX2hlYWQgPT0g
cHJvZF90YWlsKSAKLQkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKE5V
TEwpOwotCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29uZGl0aW9uIGlzIGZhbHNlIGFuZCBj
b2RlIHVzZXMgaW52YWxpZChvbGQpIGJ1Zj5gCQotCSAqCi0JICogPDE+IExvYWQgKG9uIGNvcmUg
MSkgZnJvbSBici0+YnJfcmluZ1tjb25zX2hlYWRdIGNhbiBiZSByZW9yZGVyZWQgKHNwZWN1bGF0
aXZlIHJlYWRlZCkgYnkgQ1BVLgotCSAqLwkKLSNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmlu
ZWQoX19hYXJjaDY0X18pCi0JY29uc19oZWFkID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJf
Y29uc19oZWFkKTsKLSNlbHNlCi0JY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKLSNlbmRp
ZgorCSAqIGJ1Zl9yaW5nX2RlcXVldWVfbWMoKSBmYXRhbCBzY2VuYXJpbyAoc2VlIGFib3ZlKSBp
cyBub3QgcG9zc2libGUKKwkgKiBmb3Igc2luZ2xlIGNvbnN1bWVyLiBTbyB3ZSByZWFkIHByb2Rf
dGFpbCBmaXJzdCBpbiBvcmRlciB0bworCSAqIGF2b2lkIGZhbHNlIHBvc2l0aXZlICdyaW5nIGlz
IGVtcHR5JyBjaGVjay4KKwkgKiBsb2FkX2FjcShwcm9kX3RhaWwpIGlzIG5lY2Vzc2FyeSBmb3Ig
bGF0ZXIgYnItPmJyX3JpbmdbY29uc19oZWFkXQorCSAqIGxvYWQuCisJICovCiAJcHJvZF90YWls
ID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90YWlsKTsKLQkKLQljb25zX25leHQg
PSAoY29uc19oZWFkICsgMSkgJiBici0+YnJfY29uc19tYXNrOwotI2lmZGVmIFBSRUZFVENIX0RF
RklORUQKLQljb25zX25leHRfbmV4dCA9IChjb25zX2hlYWQgKyAyKSAmIGJyLT5icl9jb25zX21h
c2s7Ci0jZW5kaWYKKwljb25zX2hlYWQgPSBici0+YnJfY29uc19oZWFkOwogCQogCWlmIChjb25z
X2hlYWQgPT0gcHJvZF90YWlsKSAKIAkJcmV0dXJuIChOVUxMKTsKIAotI2lmZGVmIFBSRUZFVENI
X0RFRklORUQJCisJY29uc19uZXh0ID0gKGNvbnNfaGVhZCArIDEpICYgYnItPmJyX2NvbnNfbWFz
azsKKyNpZmRlZiBQUkVGRVRDSF9ERUZJTkVECiAJaWYgKGNvbnNfbmV4dCAhPSBwcm9kX3RhaWwp
IHsJCQogCQlwcmVmZXRjaChici0+YnJfcmluZ1tjb25zX25leHRdKTsKKwkJY29uc19uZXh0X25l
eHQgPSAoY29uc19oZWFkICsgMikgJiBici0+YnJfY29uc19tYXNrOwogCQlpZiAoY29uc19uZXh0
X25leHQgIT0gcHJvZF90YWlsKSAKIAkJCXByZWZldGNoKGJyLT5icl9yaW5nW2NvbnNfbmV4dF9u
ZXh0XSk7CiAJfQogI2VuZGlmCi0JYnItPmJyX2NvbnNfaGVhZCA9IGNvbnNfbmV4dDsKKwkvKgor
CSAqIFRoZSBvcmRlciBhbmQgYXRvbWljaXR5IG9mIG5leHQgdHdvIG9wZXJhdGlvbnMgYXJlIHVu
aW1wb3J0YW50OgorCSAqIHN0b3JlKGNvbnNfaGVhZCkgaXMgcHJvdGVjdGVkIGJ5IGxvY2sgKHNp
bmdsZSBjb25zdW1lciBjYXNlKSwKKwkgKiBsb2FkKHJpbmdbY29uc19oZWFkXSkgaXMgb3JkZXJl
ZCBieSBsYXRlciBzdG9yZV9yZWwoY29uc190YWlsKS4KKwkgKi8KIAlidWYgPSBici0+YnJfcmlu
Z1tjb25zX2hlYWRdOworCWJyLT5icl9jb25zX2hlYWQgPSBjb25zX25leHQ7CiAKICNpZmRlZiBE
RUJVR19CVUZSSU5HCiAJYnItPmJyX3JpbmdbY29uc19oZWFkXSA9IE5VTEw7CkBAIC0yMjAsNyAr
MjU3LDcgQEAKIAkJcGFuaWMoImluY29uc2lzdGVudCBsaXN0IGNvbnNfdGFpbD0lZCBjb25zX2hl
YWQ9JWQiLAogCQkgICAgYnItPmJyX2NvbnNfdGFpbCwgY29uc19oZWFkKTsKICNlbmRpZgotCWJy
LT5icl9jb25zX3RhaWwgPSBjb25zX25leHQ7CisJYXRvbWljX3N0b3JlX3JlbF8zMigmYnItPmJy
X2NvbnNfdGFpbCwgY29uc19uZXh0KTsKIAlyZXR1cm4gKGJ1Zik7CiB9CiAKQEAgLTIzMywxOSAr
MjcwLDI1IEBACiBidWZfcmluZ19hZHZhbmNlX3NjKHN0cnVjdCBidWZfcmluZyAqYnIpCiB7CiAJ
dWludDMyX3QgY29uc19oZWFkLCBjb25zX25leHQ7Ci0JdWludDMyX3QgcHJvZF90YWlsOwogCQor
CS8qCisJICogYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90YWlsKSBpcyBzdXBlcmZs
dW91cyBoZXJlLgorCSAqIChhY3R1YWxseSBpdCB3YXMgZG9uZSBpbiBwcmVjZWRpbmcgYnVmX3Jp
bmdfcGVlaykKKwkgKi8KIAljb25zX2hlYWQgPSBici0+YnJfY29uc19oZWFkOwotCXByb2RfdGFp
bCA9IGJyLT5icl9wcm9kX3RhaWw7Ci0JCi0JY29uc19uZXh0ID0gKGNvbnNfaGVhZCArIDEpICYg
YnItPmJyX2NvbnNfbWFzazsKLQlpZiAoY29uc19oZWFkID09IHByb2RfdGFpbCkgCisJaWYgKGNv
bnNfaGVhZCA9PSBici0+YnJfcHJvZF90YWlsKSB7CisjaWZkZWYgREVCVUdfQlVGUklORworCQlw
YW5pYygiYWR2YW5jZSBvbiBlbXB0eSByaW5nLiBubyBwcmV2aW91cyBwZWVrPyIpOworI2VuZGlm
CiAJCXJldHVybjsKKwl9CisKKwljb25zX25leHQgPSAoY29uc19oZWFkICsgMSkgJiBici0+YnJf
Y29uc19tYXNrOwogCWJyLT5icl9jb25zX2hlYWQgPSBjb25zX25leHQ7CiAjaWZkZWYgREVCVUdf
QlVGUklORwogCWJyLT5icl9yaW5nW2NvbnNfaGVhZF0gPSBOVUxMOwogI2VuZGlmCi0JYnItPmJy
X2NvbnNfdGFpbCA9IGNvbnNfbmV4dDsKKwlhdG9taWNfc3RvcmVfcmVsXzMyKCZici0+YnJfY29u
c190YWlsLCBjb25zX25leHQpOwogfQogCiAvKgpAQCAtMjgwLDQ4ICszMjMsNDYgQEAKIHN0YXRp
YyBfX2lubGluZSB2b2lkICoKIGJ1Zl9yaW5nX3BlZWsoc3RydWN0IGJ1Zl9yaW5nICpicikKIHsK
Kwl1aW50MzJfdCBjb25zX2hlYWQsIHByb2RfdGFpbDsKIAogI2lmZGVmIERFQlVHX0JVRlJJTkcK
IAlpZiAoKGJyLT5icl9sb2NrICE9IE5VTEwpICYmICFtdHhfb3duZWQoYnItPmJyX2xvY2spKQog
CQlwYW5pYygibG9jayBub3QgaGVsZCBvbiBzaW5nbGUgY29uc3VtZXIgZGVxdWV1ZSIpOwogI2Vu
ZGlmCQotCS8qCi0JICogSSBiZWxpZXZlIGl0IGlzIHNhZmUgdG8gbm90IGhhdmUgYSBtZW1vcnkg
YmFycmllcgotCSAqIGhlcmUgYmVjYXVzZSB3ZSBjb250cm9sIGNvbnMgYW5kIHRhaWwgaXMgd29y
c3QgY2FzZQotCSAqIGEgbGFnZ2luZyBpbmRpY2F0b3Igc28gd2Ugd29yc3QgY2FzZSB3ZSBtaWdo
dAotCSAqIHJldHVybiBOVUxMIGltbWVkaWF0ZWx5IGFmdGVyIGEgYnVmZmVyIGhhcyBiZWVuIGVu
cXVldWVkCi0JICovCi0JaWYgKGJyLT5icl9jb25zX2hlYWQgPT0gYnItPmJyX3Byb2RfdGFpbCkK
KwkvKiBzZWUgYnVmX3JpbmdfZGVxdWV1ZV9zYygpIGNvbW1lbnQgKi8KKwlwcm9kX3RhaWwgPSBh
dG9taWNfbG9hZF9hY3FfMzIoJmJyLT5icl9wcm9kX3RhaWwpOworCWNvbnNfaGVhZCA9IGJyLT5i
cl9jb25zX2hlYWQ7CisKKwlpZiAoY29uc19oZWFkID09IHByb2RfdGFpbCkKIAkJcmV0dXJuIChO
VUxMKTsKIAkKLQlyZXR1cm4gKGJyLT5icl9yaW5nW2JyLT5icl9jb25zX2hlYWRdKTsKKwlyZXR1
cm4gKGJyLT5icl9yaW5nW2NvbnNfaGVhZF0pOwogfQogCiBzdGF0aWMgX19pbmxpbmUgdm9pZCAq
CiBidWZfcmluZ19wZWVrX2NsZWFyX3NjKHN0cnVjdCBidWZfcmluZyAqYnIpCiB7CisJdWludDMy
X3QgY29uc19oZWFkLCBwcm9kX3RhaWw7CisKICNpZmRlZiBERUJVR19CVUZSSU5HCiAJdm9pZCAq
cmV0OwogCiAJaWYgKCFtdHhfb3duZWQoYnItPmJyX2xvY2spKQogCQlwYW5pYygibG9jayBub3Qg
aGVsZCBvbiBzaW5nbGUgY29uc3VtZXIgZGVxdWV1ZSIpOwogI2VuZGlmCQotCS8qCi0JICogSSBi
ZWxpZXZlIGl0IGlzIHNhZmUgdG8gbm90IGhhdmUgYSBtZW1vcnkgYmFycmllcgotCSAqIGhlcmUg
YmVjYXVzZSB3ZSBjb250cm9sIGNvbnMgYW5kIHRhaWwgaXMgd29yc3QgY2FzZQotCSAqIGEgbGFn
Z2luZyBpbmRpY2F0b3Igc28gd2Ugd29yc3QgY2FzZSB3ZSBtaWdodAotCSAqIHJldHVybiBOVUxM
IGltbWVkaWF0ZWx5IGFmdGVyIGEgYnVmZmVyIGhhcyBiZWVuIGVucXVldWVkCi0JICovCi0JaWYg
KGJyLT5icl9jb25zX2hlYWQgPT0gYnItPmJyX3Byb2RfdGFpbCkKLQkJcmV0dXJuIChOVUxMKTsK
KwkvKiBzZWUgYnVmX3JpbmdfZGVxdWV1ZV9zYygpIGNvbW1lbnQgKi8KKwlwcm9kX3RhaWwgPSBh
dG9taWNfbG9hZF9hY3FfMzIoJmJyLT5icl9wcm9kX3RhaWwpOworCWNvbnNfaGVhZCA9IGJyLT5i
cl9jb25zX2hlYWQ7CiAKKwlpZiAoY29uc19oZWFkID09IHByb2RfdGFpbCkKKwkJcmV0dXJuIChO
VUxMKTsKICNpZmRlZiBERUJVR19CVUZSSU5HCiAJLyoKIAkgKiBTaW5nbGUgY29uc3VtZXIsIGku
ZS4gY29uc19oZWFkIHdpbGwgbm90IG1vdmUgd2hpbGUgd2UgYXJlCiAJICogcnVubmluZywgc28g
YXRvbWljX3N3YXBfcHRyKCkgaXMgbm90IG5lY2Vzc2FyeSBoZXJlLgogCSAqLwotCXJldCA9IGJy
LT5icl9yaW5nW2JyLT5icl9jb25zX2hlYWRdOwotCWJyLT5icl9yaW5nW2JyLT5icl9jb25zX2hl
YWRdID0gTlVMTDsKKwlyZXQgPSBici0+YnJfcmluZ1tjb25zX2hlYWRdOworCWJyLT5icl9yaW5n
W2NvbnNfaGVhZF0gPSBOVUxMOwogCXJldHVybiAocmV0KTsKICNlbHNlCiAJcmV0dXJuIChici0+
YnJfcmluZ1tici0+YnJfY29uc19oZWFkXSk7CkBAIC0zNTQsNiArMzk1LDQgQEAKICAgICBzdHJ1
Y3QgbXR4ICopOwogdm9pZCBidWZfcmluZ19mcmVlKHN0cnVjdCBidWZfcmluZyAqYnIsIHN0cnVj
dCBtYWxsb2NfdHlwZSAqdHlwZSk7CiAKLQotCiAjZW5kaWYKCg==


--b1_97fc3e89e8a20806270e7ab7134d7e0e--



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