From owner-freebsd-net@freebsd.org Fri Nov 25 11:57:54 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C9C0EC54B12 for ; Fri, 25 Nov 2016 11:57:54 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mx1.freebsd.org (Postfix) with ESMTP id 8C9972F5 for ; Fri, 25 Nov 2016 11:57:54 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id 4C77133AF8; Fri, 25 Nov 2016 11:57:54 +0000 (UTC) Date: Fri, 25 Nov 2016 11:57:54 +0000 To: freebsd-net@freebsd.org From: "oleg (Oleg Bulyzhin)" Reply-to: D8637+325+4a3b3c6133fb39c2@reviews.freebsd.org Subject: [Differential] D8637: buf_ring.h: fix memory order issues. Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , , Thread-Topic: D8637: buf_ring.h: fix memory order issues. X-Herald-Rules: none X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-To: X-Phabricator-Cc: Precedence: bulk Thread-Index: MTU4NzczNmYxMjUyY2VhODkxYTIyZGM3NmJi MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_37c236226999541e942ec1d434603cdf" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.23 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 25 Nov 2016 11:57:54 -0000 --b1_37c236226999541e942ec1d434603cdf Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 b2xlZyBjcmVhdGVkIHRoaXMgcmV2aXNpb24uCm9sZWcgYWRkZWQgcmV2aWV3ZXJzOiBrbWFjeSwg YWxjLCBraWIuCm9sZWcgYWRkZWQgYSBzdWJzY3JpYmVyOiBmcmVlYnNkLW5ldC1saXN0LgoKUkVW SVNJT04gU1VNTUFSWQogIFByb3Blcmx5IHVzZSBhY3F1cmUvcmVsZWFzZSBhdG9taWNzLgoKUkVW SVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q4NjM3CgpBRkZFQ1RF RCBGSUxFUwogIHN5cy9zeXMvYnVmX3JpbmcuaAoKRU1BSUwgUFJFRkVSRU5DRVMKICBodHRwczov L3Jldmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3MvcGFuZWwvZW1haWxwcmVmZXJlbmNlcy8KClRv OiBvbGVnLCBrbWFjeSwgYWxjLCBraWIKQ2M6IGZyZWVic2QtbmV0LWxpc3QK --b1_37c236226999541e942ec1d434603cdf Content-Type: text/x-patch; charset=utf-8; name="D8637.22507.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D8637.22507.patch" ZGlmZiAtLWdpdCBhL3N5cy9zeXMvYnVmX3JpbmcuaCBiL3N5cy9zeXMvYnVmX3JpbmcuaAotLS0g YS9zeXMvc3lzL2J1Zl9yaW5nLmgKKysrIGIvc3lzL3N5cy9idWZfcmluZy5oCkBAIC03NSwzNSAr NzUsMjkgQEAKICNlbmRpZgkKIAljcml0aWNhbF9lbnRlcigpOwogCWRvIHsKKwkJY29uc190YWls ID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfY29uc190YWlsKTsKIAkJcHJvZF9oZWFkID0g YnItPmJyX3Byb2RfaGVhZDsKIAkJcHJvZF9uZXh0ID0gKHByb2RfaGVhZCArIDEpICYgYnItPmJy X3Byb2RfbWFzazsKLQkJY29uc190YWlsID0gYnItPmJyX2NvbnNfdGFpbDsKIAogCQlpZiAocHJv ZF9uZXh0ID09IGNvbnNfdGFpbCkgewotCQkJcm1iKCk7Ci0JCQlpZiAocHJvZF9oZWFkID09IGJy LT5icl9wcm9kX2hlYWQgJiYKLQkJCSAgICBjb25zX3RhaWwgPT0gYnItPmJyX2NvbnNfdGFpbCkg ewotCQkJCWJyLT5icl9kcm9wcysrOwotCQkJCWNyaXRpY2FsX2V4aXQoKTsKLQkJCQlyZXR1cm4g KEVOT0JVRlMpOwotCQkJfQotCQkJY29udGludWU7CisJCQlici0+YnJfZHJvcHMrKzsKKwkJCWNy aXRpY2FsX2V4aXQoKTsKKwkJCXJldHVybiAoRU5PQlVGUyk7CiAJCX0KLQl9IHdoaWxlICghYXRv bWljX2NtcHNldF9hY3FfaW50KCZici0+YnJfcHJvZF9oZWFkLCBwcm9kX2hlYWQsIHByb2RfbmV4 dCkpOworCX0gd2hpbGUgKCFhdG9taWNfY21wc2V0XzMyKCZici0+YnJfcHJvZF9oZWFkLCBwcm9k X2hlYWQsIHByb2RfbmV4dCkpOwogI2lmZGVmIERFQlVHX0JVRlJJTkcKIAlpZiAoYnItPmJyX3Jp bmdbcHJvZF9oZWFkXSAhPSBOVUxMKQogCQlwYW5pYygiZGFuZ2xpbmcgdmFsdWUgaW4gZW5xdWV1 ZSIpOwogI2VuZGlmCQogCWJyLT5icl9yaW5nW3Byb2RfaGVhZF0gPSBidWY7Ci0KIAkvKgogCSAq IElmIHRoZXJlIGFyZSBvdGhlciBlbnF1ZXVlcyBpbiBwcm9ncmVzcwogCSAqIHRoYXQgcHJlY2Vk ZWQgdXMsIHdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlbQogCSAqIHRvIGNvbXBsZXRlIAogCSAqLyAg IAogCXdoaWxlIChici0+YnJfcHJvZF90YWlsICE9IHByb2RfaGVhZCkKIAkJY3B1X3NwaW53YWl0 KCk7Ci0JYXRvbWljX3N0b3JlX3JlbF9pbnQoJmJyLT5icl9wcm9kX3RhaWwsIHByb2RfbmV4dCk7 CisJYXRvbWljX3N0b3JlX3JlbF8zMigmYnItPmJyX3Byb2RfdGFpbCwgcHJvZF9uZXh0KTsKIAlj cml0aWNhbF9leGl0KCk7CiAJcmV0dXJuICgwKTsKIH0KQEAgLTExNSwxOSArMTA5LDIxIEBACiBz dGF0aWMgX19pbmxpbmUgdm9pZCAqCiBidWZfcmluZ19kZXF1ZXVlX21jKHN0cnVjdCBidWZfcmlu ZyAqYnIpCiB7Ci0JdWludDMyX3QgY29uc19oZWFkLCBjb25zX25leHQ7CisJdWludDMyX3QgY29u c19oZWFkLCBjb25zX25leHQsIHByb2RfdGFpbDsKIAl2b2lkICpidWY7CiAKIAljcml0aWNhbF9l bnRlcigpOwogCWRvIHsKKwkJcHJvZF90YWlsID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJf cHJvZF90YWlsKTsKIAkJY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKLQkJY29uc19uZXh0 ID0gKGNvbnNfaGVhZCArIDEpICYgYnItPmJyX2NvbnNfbWFzazsKIAotCQlpZiAoY29uc19oZWFk ID09IGJyLT5icl9wcm9kX3RhaWwpIHsKKwkJaWYgKGNvbnNfaGVhZCA9PSBwcm9kX3RhaWwpIHsK IAkJCWNyaXRpY2FsX2V4aXQoKTsKIAkJCXJldHVybiAoTlVMTCk7CiAJCX0KLQl9IHdoaWxlICgh YXRvbWljX2NtcHNldF9hY3FfaW50KCZici0+YnJfY29uc19oZWFkLCBjb25zX2hlYWQsIGNvbnNf bmV4dCkpOworCisJCWNvbnNfbmV4dCA9IChjb25zX2hlYWQgKyAxKSAmIGJyLT5icl9jb25zX21h c2s7CisJfSB3aGlsZSAoIWF0b21pY19jbXBzZXRfMzIoJmJyLT5icl9jb25zX2hlYWQsIGNvbnNf aGVhZCwgY29uc19uZXh0KSk7CiAKIAlidWYgPSBici0+YnJfcmluZ1tjb25zX2hlYWRdOwogI2lm ZGVmIERFQlVHX0JVRlJJTkcKQEAgLTE0MCwxMCArMTM2LDggQEAKIAkgKi8gICAKIAl3aGlsZSAo YnItPmJyX2NvbnNfdGFpbCAhPSBjb25zX2hlYWQpCiAJCWNwdV9zcGlud2FpdCgpOwotCi0JYXRv bWljX3N0b3JlX3JlbF9pbnQoJmJyLT5icl9jb25zX3RhaWwsIGNvbnNfbmV4dCk7CisJYXRvbWlj X3N0b3JlX3JlbF8zMigmYnItPmJyX2NvbnNfdGFpbCwgY29uc19uZXh0KTsKIAljcml0aWNhbF9l eGl0KCk7Ci0KIAlyZXR1cm4gKGJ1Zik7CiB9CiAKQEAgLTE1NSw2MiArMTQ5LDI5IEBACiBzdGF0 aWMgX19pbmxpbmUgdm9pZCAqCiBidWZfcmluZ19kZXF1ZXVlX3NjKHN0cnVjdCBidWZfcmluZyAq YnIpCiB7Ci0JdWludDMyX3QgY29uc19oZWFkLCBjb25zX25leHQ7CisJdWludDMyX3QgY29uc19o ZWFkLCBjb25zX25leHQsIHByb2RfdGFpbDsKICNpZmRlZiBQUkVGRVRDSF9ERUZJTkVECiAJdWlu dDMyX3QgY29uc19uZXh0X25leHQ7CiAjZW5kaWYKLQl1aW50MzJfdCBwcm9kX3RhaWw7CiAJdm9p ZCAqYnVmOwogCi0JLyoKLQkgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBhbGxvdyB1c2luZyBi dWZfcmluZyBvbiBBUk0gYW5kIEFSTTY0LgotCSAqIEFSTTY0VE9ETzogRml4IGJ1Zl9yaW5nIGlu IGEgZ2VuZXJpYyB3YXkuCi0JICogUkVNQVJLUzogSXQgaXMgc3VzcGVjdGVkIHRoYXQgYnJfY29u c19oZWFkIGRvZXMgbm90IHJlcXVpcmUKLQkgKiAgIGxvYWRfYWNxIG9wZXJhdGlvbiwgYnV0IHRo aXMgY2hhbmdlIHdhcyBleHRlbnNpdmVseSB0ZXN0ZWQKLQkgKiAgIGFuZCBjb25maXJtZWQgaXQn cyB3b3JraW5nLiBUbyBiZSByZXZpZXdlZCBvbmNlIGFnYWluIGluCi0JICogICBGcmVlQlNELTEy LgotCSAqCi0JICogUHJldmVudGluZyBmb2xsb3dpbmcgc2l0dWF0aW9uOgotCi0JICogQ29yZSgw KSAtIGJ1Zl9yaW5nX2VucXVldWUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvcmUoMSkgLSBidWZfcmluZ19kZXF1ZXVlX3NjKCkKLQkgKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQkg KgotCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zX2hlYWQgPSBici0+YnJfY29uc19oZWFk OwotCSAqIGF0b21pY19jbXBzZXRfYWNxXzMyKCZici0+YnJfcHJvZF9oZWFkLCAuLi4pKTsKLQkg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnVmID0gYnItPmJyX3JpbmdbY29uc19oZWFkXTsgICAg IDxzZWUgPDE+PgotCSAqIGJyLT5icl9yaW5nW3Byb2RfaGVhZF0gPSBidWY7Ci0JICogYXRvbWlj X3N0b3JlX3JlbF8zMigmYnItPmJyX3Byb2RfdGFpbCwgLi4uKTsKLQkgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvZF90YWlsID0gYnItPmJyX3Byb2RfdGFpbDsKLQkgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKGNvbnNfaGVhZCA9PSBwcm9kX3RhaWwpIAotCSAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7Ci0JICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxjb25kaXRpb24gaXMgZmFsc2UgYW5kIGNvZGUgdXNlcyBpbnZhbGlkKG9sZCkgYnVmPmAJCi0J ICoKLQkgKiA8MT4gTG9hZCAob24gY29yZSAxKSBmcm9tIGJyLT5icl9yaW5nW2NvbnNfaGVhZF0g Y2FuIGJlIHJlb3JkZXJlZCAoc3BlY3VsYXRpdmUgcmVhZGVkKSBieSBDUFUuCi0JICovCQotI2lm IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKLQljb25zX2hlYWQgPSBh dG9taWNfbG9hZF9hY3FfMzIoJmJyLT5icl9jb25zX2hlYWQpOwotI2Vsc2UKLQljb25zX2hlYWQg PSBici0+YnJfY29uc19oZWFkOwotI2VuZGlmCiAJcHJvZF90YWlsID0gYXRvbWljX2xvYWRfYWNx XzMyKCZici0+YnJfcHJvZF90YWlsKTsKLQkKLQljb25zX25leHQgPSAoY29uc19oZWFkICsgMSkg JiBici0+YnJfY29uc19tYXNrOwotI2lmZGVmIFBSRUZFVENIX0RFRklORUQKLQljb25zX25leHRf bmV4dCA9IChjb25zX2hlYWQgKyAyKSAmIGJyLT5icl9jb25zX21hc2s7Ci0jZW5kaWYKKwljb25z X2hlYWQgPSBici0+YnJfY29uc19oZWFkOwogCQogCWlmIChjb25zX2hlYWQgPT0gcHJvZF90YWls KSAKIAkJcmV0dXJuIChOVUxMKTsKIAotI2lmZGVmIFBSRUZFVENIX0RFRklORUQJCisJY29uc19u ZXh0ID0gKGNvbnNfaGVhZCArIDEpICYgYnItPmJyX2NvbnNfbWFzazsKKyNpZmRlZiBQUkVGRVRD SF9ERUZJTkVECiAJaWYgKGNvbnNfbmV4dCAhPSBwcm9kX3RhaWwpIHsJCQogCQlwcmVmZXRjaChi ci0+YnJfcmluZ1tjb25zX25leHRdKTsKKwkJY29uc19uZXh0X25leHQgPSAoY29uc19oZWFkICsg MikgJiBici0+YnJfY29uc19tYXNrOwogCQlpZiAoY29uc19uZXh0X25leHQgIT0gcHJvZF90YWls KSAKIAkJCXByZWZldGNoKGJyLT5icl9yaW5nW2NvbnNfbmV4dF9uZXh0XSk7CiAJfQogI2VuZGlm Ci0JYnItPmJyX2NvbnNfaGVhZCA9IGNvbnNfbmV4dDsKIAlidWYgPSBici0+YnJfcmluZ1tjb25z X2hlYWRdOworCWJyLT5icl9jb25zX2hlYWQgPSBjb25zX25leHQ7CiAKICNpZmRlZiBERUJVR19C VUZSSU5HCiAJYnItPmJyX3JpbmdbY29uc19oZWFkXSA9IE5VTEw7CkBAIC0yMjAsNyArMTgxLDcg QEAKIAkJcGFuaWMoImluY29uc2lzdGVudCBsaXN0IGNvbnNfdGFpbD0lZCBjb25zX2hlYWQ9JWQi LAogCQkgICAgYnItPmJyX2NvbnNfdGFpbCwgY29uc19oZWFkKTsKICNlbmRpZgotCWJyLT5icl9j b25zX3RhaWwgPSBjb25zX25leHQ7CisJYXRvbWljX3N0b3JlX3JlbF8zMigmYnItPmJyX2NvbnNf dGFpbCwgY29uc19uZXh0KTsKIAlyZXR1cm4gKGJ1Zik7CiB9CiAKQEAgLTIzMywxOSArMTk0LDI1 IEBACiBidWZfcmluZ19hZHZhbmNlX3NjKHN0cnVjdCBidWZfcmluZyAqYnIpCiB7CiAJdWludDMy X3QgY29uc19oZWFkLCBjb25zX25leHQ7Ci0JdWludDMyX3QgcHJvZF90YWlsOwogCQorCS8qCisJ ICogYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90YWlsKSBpcyBzdXBlcmZsdW91cyBo ZXJlLgorCSAqIChhY3R1YWxseSBpdCB3YXMgZG9uZSBpbiBwcmVjZWVkaW5nIGJ1Zl9yaW5nX3Bl ZWspCisJICovCiAJY29uc19oZWFkID0gYnItPmJyX2NvbnNfaGVhZDsKLQlwcm9kX3RhaWwgPSBi ci0+YnJfcHJvZF90YWlsOwotCQotCWNvbnNfbmV4dCA9IChjb25zX2hlYWQgKyAxKSAmIGJyLT5i cl9jb25zX21hc2s7Ci0JaWYgKGNvbnNfaGVhZCA9PSBwcm9kX3RhaWwpIAorCWlmIChjb25zX2hl YWQgPT0gYnItPmJyX3Byb2RfdGFpbCkgeworI2lmZGVmIERFQlVHX0JVRlJJTkcKKwkJcGFuaWMo ImFkdmFuY2Ugb24gZW1wdHkgcmluZy4gbm8gcHJldmlvdXMgcGVlaz8iKTsKKyNlbmRpZgogCQly ZXR1cm47CisJfQorCisJY29uc19uZXh0ID0gKGNvbnNfaGVhZCArIDEpICYgYnItPmJyX2NvbnNf bWFzazsKIAlici0+YnJfY29uc19oZWFkID0gY29uc19uZXh0OwogI2lmZGVmIERFQlVHX0JVRlJJ TkcKIAlici0+YnJfcmluZ1tjb25zX2hlYWRdID0gTlVMTDsKICNlbmRpZgotCWJyLT5icl9jb25z X3RhaWwgPSBjb25zX25leHQ7CisJYXRvbWljX3N0b3JlX3JlbF8zMigmYnItPmJyX2NvbnNfdGFp bCwgY29uc19uZXh0KTsKIH0KIAogLyoKQEAgLTI4MCw0OCArMjQ3LDQ0IEBACiBzdGF0aWMgX19p bmxpbmUgdm9pZCAqCiBidWZfcmluZ19wZWVrKHN0cnVjdCBidWZfcmluZyAqYnIpCiB7CisJdWlu dDMyX3QgY29uc19oZWFkLCBwcm9kX3RhaWw7CiAKICNpZmRlZiBERUJVR19CVUZSSU5HCiAJaWYg KChici0+YnJfbG9jayAhPSBOVUxMKSAmJiAhbXR4X293bmVkKGJyLT5icl9sb2NrKSkKIAkJcGFu aWMoImxvY2sgbm90IGhlbGQgb24gc2luZ2xlIGNvbnN1bWVyIGRlcXVldWUiKTsKICNlbmRpZgkK LQkvKgotCSAqIEkgYmVsaWV2ZSBpdCBpcyBzYWZlIHRvIG5vdCBoYXZlIGEgbWVtb3J5IGJhcnJp ZXIKLQkgKiBoZXJlIGJlY2F1c2Ugd2UgY29udHJvbCBjb25zIGFuZCB0YWlsIGlzIHdvcnN0IGNh c2UKLQkgKiBhIGxhZ2dpbmcgaW5kaWNhdG9yIHNvIHdlIHdvcnN0IGNhc2Ugd2UgbWlnaHQKLQkg KiByZXR1cm4gTlVMTCBpbW1lZGlhdGVseSBhZnRlciBhIGJ1ZmZlciBoYXMgYmVlbiBlbnF1ZXVl ZAotCSAqLwotCWlmIChici0+YnJfY29uc19oZWFkID09IGJyLT5icl9wcm9kX3RhaWwpCisJcHJv ZF90YWlsID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90YWlsKTsKKwljb25zX2hl YWQgPSBici0+YnJfY29uc19oZWFkOworCisJaWYgKGNvbnNfaGVhZCA9PSBwcm9kX3RhaWwpCiAJ CXJldHVybiAoTlVMTCk7CiAJCi0JcmV0dXJuIChici0+YnJfcmluZ1tici0+YnJfY29uc19oZWFk XSk7CisJcmV0dXJuIChici0+YnJfcmluZ1tjb25zX2hlYWRdKTsKIH0KIAogc3RhdGljIF9faW5s aW5lIHZvaWQgKgogYnVmX3JpbmdfcGVla19jbGVhcl9zYyhzdHJ1Y3QgYnVmX3JpbmcgKmJyKQog eworCXVpbnQzMl90IGNvbnNfaGVhZCwgcHJvZF90YWlsOworCiAjaWZkZWYgREVCVUdfQlVGUklO RwogCXZvaWQgKnJldDsKIAogCWlmICghbXR4X293bmVkKGJyLT5icl9sb2NrKSkKIAkJcGFuaWMo ImxvY2sgbm90IGhlbGQgb24gc2luZ2xlIGNvbnN1bWVyIGRlcXVldWUiKTsKICNlbmRpZgkKLQkv KgotCSAqIEkgYmVsaWV2ZSBpdCBpcyBzYWZlIHRvIG5vdCBoYXZlIGEgbWVtb3J5IGJhcnJpZXIK LQkgKiBoZXJlIGJlY2F1c2Ugd2UgY29udHJvbCBjb25zIGFuZCB0YWlsIGlzIHdvcnN0IGNhc2UK LQkgKiBhIGxhZ2dpbmcgaW5kaWNhdG9yIHNvIHdlIHdvcnN0IGNhc2Ugd2UgbWlnaHQKLQkgKiBy ZXR1cm4gTlVMTCBpbW1lZGlhdGVseSBhZnRlciBhIGJ1ZmZlciBoYXMgYmVlbiBlbnF1ZXVlZAot CSAqLwotCWlmIChici0+YnJfY29uc19oZWFkID09IGJyLT5icl9wcm9kX3RhaWwpCi0JCXJldHVy biAoTlVMTCk7CisJcHJvZF90YWlsID0gYXRvbWljX2xvYWRfYWNxXzMyKCZici0+YnJfcHJvZF90 YWlsKTsKKwljb25zX2hlYWQgPSBici0+YnJfY29uc19oZWFkOwogCisJaWYgKGNvbnNfaGVhZCA9 PSBwcm9kX3RhaWwpCisJCXJldHVybiAoTlVMTCk7CiAjaWZkZWYgREVCVUdfQlVGUklORwogCS8q CiAJICogU2luZ2xlIGNvbnN1bWVyLCBpLmUuIGNvbnNfaGVhZCB3aWxsIG5vdCBtb3ZlIHdoaWxl IHdlIGFyZQogCSAqIHJ1bm5pbmcsIHNvIGF0b21pY19zd2FwX3B0cigpIGlzIG5vdCBuZWNlc3Nh cnkgaGVyZS4KIAkgKi8KLQlyZXQgPSBici0+YnJfcmluZ1tici0+YnJfY29uc19oZWFkXTsKLQli ci0+YnJfcmluZ1tici0+YnJfY29uc19oZWFkXSA9IE5VTEw7CisJcmV0ID0gYnItPmJyX3Jpbmdb Y29uc19oZWFkXTsKKwlici0+YnJfcmluZ1tjb25zX2hlYWRdID0gTlVMTDsKIAlyZXR1cm4gKHJl dCk7CiAjZWxzZQogCXJldHVybiAoYnItPmJyX3JpbmdbYnItPmJyX2NvbnNfaGVhZF0pOwpAQCAt MzU0LDYgKzMxNyw0IEBACiAgICAgc3RydWN0IG10eCAqKTsKIHZvaWQgYnVmX3JpbmdfZnJlZShz dHJ1Y3QgYnVmX3JpbmcgKmJyLCBzdHJ1Y3QgbWFsbG9jX3R5cGUgKnR5cGUpOwogCi0KLQogI2Vu ZGlmCgo= --b1_37c236226999541e942ec1d434603cdf--