From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Luis R. Rodriguez" Subject: [PATCH v6 12/14] kprobes: port .kprobes.text to section range Date: Mon, 9 Jan 2017 06:58:30 -0800 Message-ID: <20170109145833.11502-13-mcgrof@kernel.org> References: <20161222023811.21246-1-mcgrof@kernel.org> <20170109145833.11502-1-mcgrof@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170109145833.11502-1-mcgrof@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: hpa@zytor.com, acme@redhat.com, tglx@linutronix.de, mingo@redhat.com, jpoimboe@redhat.com, bp@alien8.de, npiggin@gmail.com, mhiramat@kernel.org, masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com, heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, realmz6@gmail.com, dalias@libc.org, linux@arm.linux.org.uk Cc: gnomes@lxorguk.ukuu.org.uk, linux-ia64@vger.kernel.org, jkosina@suse.cz, benh@kernel.crashing.org, ming.lei@canonical.com, linux@rasmusvillemoes.dk, platform-driver-x86@vger.kernel.org, James.Bottomley@HansenPartnership.com, paul.gortmaker@windriver.com, paulus@samba.org, sparclinux@vger.kernel.org, wangnan0@huawei.com, mchehab@osg.samsung.com, linux-arch@vger.kernel.org, markus.heiser@darmarit.de, xen-devel@lists.xensource.com, msalter@redhat.com, linux-sh@vger.kernel.org, mpe@ellerman.id.au, joro@8bytes.org, x86@kernel.org, fontana@sharpeleven.org, dsahern@gmail.com, linux-arm-kernel@lists.infradead.org, catalin.marinas@arm.com, dvhart@infradead.org, dwmw2@infradead.org, linux@roeck-us.net, linux-xtensa@linux-xtensa.org, pali.rohar@gmail.com, keescook@chromium.org, arnd@arndb.de, jani.nikula@intel.com, will.deacon@arm.com, rusty@rustcorp.com.au, rostedt@goodmis.org, ak@ List-Id: linux-arch.vger.kernel.org a3Byb2JlIG1ha2VzIHVzZSBvZiB0d28gY3VzdG9tIHNlY3Rpb25zLCBlYWNoIGN1c3RvbSBzZWN0 aW9uCmlzIGZvbGRlZCBpbnRvIG9uZSBvZiB0aGUgc3RhbmRhcmQgTGludXggc2VjdGlvbnMgdHlw ZXMgYXMgZm9sbG93cywKaXQgY3VycmVudGx5IHJlbGllcyBvbiB0aGUgbGlua2VyIHNjcmlwdCB0 byBmb2xkIHRoZSBjdXN0b20gc2VjdGlvbgpvbnRvIHRoZSByZXNwZWN0aXZlIExpbnV4IHNlY3Rp b246Cgp0eXBlICBMaW51eC1zZWN0aW9uIGN1c3RvbSBzZWN0aW9uIG5hbWUgIGJlZ2luICAgICAg ICAgICAgICAgICAgICBlbmQKdGFibGUgLmluaXQuZGF0YSAgICBfa3Byb2JlX2JsYWNrbGlzdCAg ICBfX3N0YXJ0X2twcm9iZV9ibGFja2xpc3QgX19zdG9wX2twcm9iZV9ibGFja2xpc3QKcmFuZ2Ug LnRleHQgICAgICAgICAua3Byb2Jlcy50ZXh0ICAgICAgICBfX2twcm9iZXNfdGV4dF9zdGFydCAg ICAgX19rcHJvYmVzX3RleHRfZW5kCgpUaGlzIHBvcnRzIHRoZSAua3Byb2Jlcy50ZXh0IGN1c3Rv bSBzZWN0aW9uIHRvIHRoZSBzdGFuZGFyZApMaW51eCByYW5nZXMgQVBJIGFsbG93aW5nIHVzIHJl bW92ZSBhbGwgdGhlIGN1c3RvbSBrcHJvYmUgc2VjdGlvbgpkZWNsYXJhdGlvbnMgZnJvbSB0aGUg bGlua2VyIHNjcmlwdC4KClRlc3RlZCB3aXRoIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNULCBp dCBwYXNzZXMgd2l0aDoKCktwcm9iZSBzbW9rZSB0ZXN0OiBzdGFydGVkCktwcm9iZSBzbW9rZSB0 ZXN0OiBwYXNzZWQgc3VjY2Vzc2Z1bGx5CgpUaGVuIHRlc3RlZCBDT05GSUdfU0FNUExFX0tQUk9C RVMgb24gZG9fZm9yaywgYW5kIHRoZSBrcHJvYmUgYml0ZXMKYW5kIGtpY2tzIGFzIGV4cGVjdGVk LgoKQWxzbyByYW4gLi9mdHJhY2V0ZXN0IHdpdGggbm8gaXNzdWVzOgoKc3VkbyAuL2Z0cmFjZXRl c3QKPT09IEZ0cmFjZSB1bml0IHRlc3RzID09PQpbMV0gQmFzaWMgdHJhY2UgZmlsZSBjaGVjawlb UEFTU10KWzJdIEJhc2ljIHRlc3QgZm9yIHRyYWNlcnMJW1BBU1NdClszXSBCYXNpYyB0cmFjZSBj bG9jayB0ZXN0CVtQQVNTXQpbNF0gQmFzaWMgZXZlbnQgdHJhY2luZyBjaGVjawlbUEFTU10KWzVd IGV2ZW50IHRyYWNpbmcgLSBlbmFibGUvZGlzYWJsZSB3aXRoIGV2ZW50IGxldmVsIGZpbGVzCVtQ QVNTXQpbNl0gZXZlbnQgdHJhY2luZyAtIHJlc3RyaWN0cyBldmVudHMgYmFzZWQgb24gcGlkCVtQ QVNTXQpbN10gZXZlbnQgdHJhY2luZyAtIGVuYWJsZS9kaXNhYmxlIHdpdGggc3Vic3lzdGVtIGxl dmVsIGZpbGVzCVtQQVNTXQpbOF0gZXZlbnQgdHJhY2luZyAtIGVuYWJsZS9kaXNhYmxlIHdpdGgg dG9wIGxldmVsIGZpbGVzCVtQQVNTXQpbOV0gZnRyYWNlIC0gZnVuY3Rpb24gZ3JhcGggZmlsdGVy cyB3aXRoIHN0YWNrIHRyYWNlcglbUEFTU10KWzEwXSBmdHJhY2UgLSBmdW5jdGlvbiBncmFwaCBm aWx0ZXJzCVtQQVNTXQpbMTFdIGZ0cmFjZSAtIGZ1bmN0aW9uIGdsb2IgZmlsdGVycwlbUEFTU10K WzEyXSBmdHJhY2UgLSBmdW5jdGlvbiBwcm9maWxlciB3aXRoIGZ1bmN0aW9uIHRyYWNpbmcJW1BB U1NdClsxM10gVGVzdCBjcmVhdGlvbiBhbmQgZGVsZXRpb24gb2YgdHJhY2UgaW5zdGFuY2VzIHdo aWxlIHNldHRpbmcgYW4gZXZlbnQJW1BBU1NdClsxNF0gVGVzdCBjcmVhdGlvbiBhbmQgZGVsZXRp b24gb2YgdHJhY2UgaW5zdGFuY2VzCVtQQVNTXQpbMTVdIEtwcm9iZSBkeW5hbWljIGV2ZW50IC0g YWRkaW5nIGFuZCByZW1vdmluZwlbUEFTU10KWzE2XSBLcHJvYmUgZHluYW1pYyBldmVudCAtIGJ1 c3kgZXZlbnQgY2hlY2sJW1BBU1NdClsxN10gS3Byb2JlIGR5bmFtaWMgZXZlbnQgd2l0aCBhcmd1 bWVudHMJW1BBU1NdClsxOF0gS3Byb2JlcyBldmVudCBhcmd1bWVudHMgd2l0aCB0eXBlcwlbUEFT U10KWzE5XSBLcHJvYmUgZHluYW1pYyBldmVudCB3aXRoIGZ1bmN0aW9uIHRyYWNlcglbUEFTU10K WzIwXSBLcmV0cHJvYmUgZHluYW1pYyBldmVudCB3aXRoIGFyZ3VtZW50cwlbUEFTU10KWzIxXSBl dmVudCB0cmlnZ2VyIC0gdGVzdCBldmVudCBlbmFibGUvZGlzYWJsZSB0cmlnZ2VyCVtQQVNTXQpb MjJdIGV2ZW50IHRyaWdnZXIgLSB0ZXN0IHRyaWdnZXIgZmlsdGVyCVtQQVNTXQpbMjNdIGV2ZW50 IHRyaWdnZXIgLSB0ZXN0IGhpc3RvZ3JhbSBtb2RpZmllcnMJW1BBU1NdClsyNF0gZXZlbnQgdHJp Z2dlciAtIHRlc3QgaGlzdG9ncmFtIHRyaWdnZXIJW1BBU1NdClsyNV0gZXZlbnQgdHJpZ2dlciAt IHRlc3QgbXVsdGlwbGUgaGlzdG9ncmFtIHRyaWdnZXJzCVtQQVNTXQpbMjZdIGV2ZW50IHRyaWdn ZXIgLSB0ZXN0IHNuYXBzaG90LXRyaWdnZXIJW1BBU1NdClsyN10gZXZlbnQgdHJpZ2dlciAtIHRl c3Qgc3RhY2t0cmFjZS10cmlnZ2VyCVtQQVNTXQpbMjhdIGV2ZW50IHRyaWdnZXIgLSB0ZXN0IHRy YWNlb24vb2ZmIHRyaWdnZXIJW1BBU1NdCgp2NToKCm8gVXNlIC4ucm5nLiogaW5zdGVhZCBvZiAu cm5nLiogYXMgc3VnZ2VzdGVkIGJ5IE5pY2hvbGFzIFBpZ2dpbi4KICBUaGlzIGlzIHRoZSB0eXBp Y2FsIHdheSB0byBhdm9pZCBjbGFzaCB3aXRoIGNvbXBpbGVyIGdlbmVyYXRlZAogIHNlY3Rpb24u CgpvIFJlcGxhY2Ugc2VjdGlvbiBtYWNyb3Mgd2l0aCBzZWN0aW9uIG5hbWVzCgp2NDoKCm8gYXJt NjQgYnVpbGQgZml4ZXMgd2l0aCBhbGxtb2Rjb25maWcKCm8gYnVpbGQgZml4IHN1Z2dlc3RlZCBm b3IgYXZyMzIgd2l0aCBhbGxub2NvbmZpZywgb3RoZXJ3aXNlIHdlIGVuZCB1cCB3aXRoOgoKYXJj aC9hdnIzMi9rZXJuZWwvYnVpbHQtaW4ubzogSW4gZnVuY3Rpb24gYHNhdmVfZnVsbF9jb250ZXh0 X2V4JzoKKC5leC50ZXh0KzB4MWM0KTogcmVsb2NhdGlvbiB0cnVuY2F0ZWQgdG8gZml0OiBSX0FW UjMyXzE2Tl9QQ1JFTCBhZ2FpbnN0CnN5bWJvbCBgZGVidWdfdHJhbXBvbGluZScgZGVmaW5lZCBp biAudGV4dC5ybmcua3Byb2Jlcy5hbnkgc2VjdGlvbiBpbgphcmNoL2F2cjMyL2tlcm5lbC9idWls dC1pbi5vCmFyY2gvYXZyMzIva2VybmVsL2J1aWx0LWluLm86IEluIGZ1bmN0aW9uIGBkZWJ1Z19l eGl0X3dvcmsnOgooLnRleHQucm5nLmtwcm9iZXMuYW55KzB4YTgpOiByZWxvY2F0aW9uIHRydW5j YXRlZCB0byBmaXQ6ClJfQVZSMzJfMTZOX1BDUkVMIGFnYWluc3QgYC5leC50ZXh0JyszYWEKbWFr ZTogKioqIFtNYWtlZmlsZTo5NTM6IHZtbGludXhdIEVycm9yIDEKCm8gb3Blbi1jb2RlIHNlY3Rp b24gdXNlIG9uIHNjcmlwdHMvIGNvZGUgLS0gZm9sa3MgdG8gcHJlZmVyIHRoZQogIHNpbXBsaWNp dHkgb3ZlciBkZWFsaW5nIHdpdGggaGF2aW5nIG1vcmUgdG9vbCBjb2RlIGFjY2VzcyBrZXJuZWwK ICBoZWFkZXJzLgoKbyBOT1BFOiBpbmNsdWRlICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9yYW5nZXMu aD4gb24gY29tcGlsZXIuaCAtLSBzb2x2ZXMKICBhIGZldyAwLWRheSBjb21waWxhdGlvbiBpc3N1 ZXMKCnYzOgoKbyBhZnRlciB2MiBhcmNoL2FybS9rZXJuZWwvdm1saW51eC14aXAubGRzLlMgZ290 IGtwcm9iZSBzdXBwb3J0LAogIHRoaXMganVzdCByZW1vdmVzIHRoZSBjdXN0b20gbGlua2VyIHNj cmlwdCByZWZlcmVuY2UgdG8ga3Byb2JlcyBhcwogIHRoYXQgaXMgbm8gbG9uZ2VyIG5lZWRlZCB3 aXRoIGxpbmtlciB0YWJsZXMuCgpvIHNwbGl0IGtwcm9iZSBsaW5rZXIgdGFibGUgYW5kIGtwcm9i ZSBzZWN0aW9uIHJhbmdlcyB1c2UgaW50bwogIHR3byBzZXBhcmF0ZSBwYXRjaGVzLiBUaGlzIHNo b3VsZCBtYWtlIGl0IGVhc2llciB0byByZXZpZXcgYW5kCiAgYWxzbyBkZW1vcyBib3RoIGRpc3Rp bmN0IHVzZSB0eXBlcywgb25lIGEgbGlua2VyIHRhYmxlIGFub3RoZXIKICBhIHNpbXBsZSBzZWN0 aW9uIHJhbmdlLgoKdjI6IGludHJvZHVjZWQgdGhpcyBwYXRjaCBpbiB0aGlzIHNlcmllcwoKU2ln bmVkLW9mZi1ieTogTHVpcyBSLiBSb2RyaWd1ZXogPG1jZ3JvZkBrZXJuZWwub3JnPgotLS0KIGFy Y2gvYXJjL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgICAgICB8ICAxIC0KIGFyY2gvYXJtL2tlcm5l bC9lbnRyeS1hcm12LlMgICAgICAgICB8ICAzICsrLQogYXJjaC9hcm0va2VybmVsL3ZtbGludXgt eGlwLmxkcy5TICAgIHwgIDEgLQogYXJjaC9hcm0va2VybmVsL3ZtbGludXgubGRzLlMgICAgICAg IHwgIDEgLQogYXJjaC9hcm02NC9rZXJuZWwvYXJtdjhfZGVwcmVjYXRlZC5jIHwgIDEgKwogYXJj aC9hcm02NC9rZXJuZWwvcHJvYmVzL2twcm9iZXMuYyAgIHwgIDQgKystLQogYXJjaC9hcm02NC9r ZXJuZWwvdm1saW51eC5sZHMuUyAgICAgIHwgIDEgLQogYXJjaC9hdnIzMi9rZXJuZWwvZW50cnkt YXZyMzJiLlMgICAgIHwgMTMgKysrKysrKysrKystLQogYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51 eC5sZHMuUyAgICAgIHwgIDEgLQogYXJjaC9ibGFja2Zpbi9rZXJuZWwvdm1saW51eC5sZHMuUyAg IHwgIDEgLQogYXJjaC9jNngva2VybmVsL3ZtbGludXgubGRzLlMgICAgICAgIHwgIDEgLQogYXJj aC9oZXhhZ29uL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgIHwgIDEgLQogYXJjaC9pYTY0L2tlcm5l bC9qcHJvYmVzLlMgICAgICAgICAgIHwgIDMgKystCiBhcmNoL2lhNjQva2VybmVsL3ZtbGludXgu bGRzLlMgICAgICAgfCAgMSAtCiBhcmNoL2lhNjQvbGliL2ZsdXNoLlMgICAgICAgICAgICAgICAg fCAgNiArKystLS0KIGFyY2gvbWV0YWcva2VybmVsL3ZtbGludXgubGRzLlMgICAgICB8ICAxIC0K IGFyY2gvbWljcm9ibGF6ZS9rZXJuZWwvdm1saW51eC5sZHMuUyB8ICAxIC0KIGFyY2gvbWlwcy9r ZXJuZWwvdm1saW51eC5sZHMuUyAgICAgICB8ICAxIC0KIGFyY2gvbW4xMDMwMC9rZXJuZWwvdm1s aW51eC5sZHMuUyAgICB8ICAxIC0KIGFyY2gvbmlvczIva2VybmVsL3ZtbGludXgubGRzLlMgICAg ICB8ICAxIC0KIGFyY2gvb3BlbnJpc2Mva2VybmVsL3ZtbGludXgubGRzLlMgICB8ICAxIC0KIGFy Y2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgICB8ICAxIC0KIGFyY2gvcG93ZXJwYy9p bmNsdWRlL2FzbS9wcGNfYXNtLmggICB8ICAxICsKIGFyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51 eC5sZHMuUyAgICB8ICAxIC0KIGFyY2gvczM5MC9rZXJuZWwvZW50cnkuUyAgICAgICAgICAgICB8 ICA1ICsrKy0tCiBhcmNoL3MzOTAva2VybmVsL2twcm9iZXMuYyAgICAgICAgICAgfCAgNiArKyst LS0KIGFyY2gvczM5MC9rZXJuZWwvbWNvdW50LlMgICAgICAgICAgICB8ICAzICsrLQogYXJjaC9z MzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TICAgICAgIHwgIDEgLQogYXJjaC9zY29yZS9rZXJuZWwv dm1saW51eC5sZHMuUyAgICAgIHwgIDEgLQogYXJjaC9zaC9rZXJuZWwvdm1saW51eC5sZHMuUyAg ICAgICAgIHwgIDEgLQogYXJjaC9zcGFyYy9rZXJuZWwvdm1saW51eC5sZHMuUyAgICAgIHwgIDEg LQogYXJjaC9zcGFyYy9tbS91bHRyYS5TICAgICAgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3Rp bGUva2VybmVsL3ZtbGludXgubGRzLlMgICAgICAgfCAgMSAtCiBhcmNoL3g4Ni9rZXJuZWwva3By b2Jlcy9jb3JlLmMgICAgICAgfCAxMSArKysrKy0tLS0tLQogYXJjaC94ODYva2VybmVsL3ZtbGlu dXgubGRzLlMgICAgICAgIHwgIDEgLQogaW5jbHVkZS9hc20tZ2VuZXJpYy9rcHJvYmVzLmggICAg ICAgIHwgIDMgKystCiBpbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb25zLmggICAgICAgfCAgMiAt LQogaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oICAgIHwgIDIgKy0KIGluY2x1ZGUv bGludXgva3Byb2Jlcy5oICAgICAgICAgICAgICB8ICAzICsrKwoga2VybmVsL2twcm9iZXMuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKy0tCiBzY3JpcHRzL21vZC9tb2Rwb3N0LmMgICAg ICAgICAgICAgICAgfCAgMiArLQogc2NyaXB0cy9yZWNvcmRtY291bnQuYyAgICAgICAgICAgICAg IHwgIDIgKy0KIHNjcmlwdHMvcmVjb3JkbWNvdW50LnBsICAgICAgICAgICAgICB8ICAyICstCiA0 MyBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9hcmNoL2FyYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvYXJjL2tlcm5lbC92 bWxpbnV4Lmxkcy5TCmluZGV4IGYzNWVkNTc4ZTAwNy4uZGQwNWM4NmViOTZlIDEwMDY0NAotLS0g YS9hcmNoL2FyYy9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL2FyYy9rZXJuZWwvdm1s aW51eC5sZHMuUwpAQCAtOTEsNyArOTEsNiBAQCBTRUNUSU9OUwogCQlTQ0hFRF9URVhUCiAJCUNQ VUlETEVfVEVYVAogCQlMT0NLX1RFWFQKLQkJS1BST0JFU19URVhUCiAJCSooLmZpeHVwKQogCQkq KC5nbnUud2FybmluZykKIAl9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZW50cnktYXJt di5TIGIvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUwppbmRleCA5ZjE1N2U3YzUxZTcuLmM0 NTViNDkxYjZkMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWFybXYuUworKysg Yi9hcmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk ZSAiZW50cnktaGVhZGVyLlMiCiAjaW5jbHVkZSA8YXNtL2VudHJ5LW1hY3JvLW11bHRpLlM+CiAj aW5jbHVkZSA8YXNtL3Byb2Jlcy5oPgorI2luY2x1ZGUgPGFzbS9yYW5nZXMuaD4KIAogLyoKICAq IEludGVycnVwdCBoYW5kbGluZy4KQEAgLTgzLDcgKzg0LDcgQEAKIAkuZW5kbQogCiAjaWZkZWYg Q09ORklHX0tQUk9CRVMKLQkuc2VjdGlvbgkua3Byb2Jlcy50ZXh0LCJheCIsJXByb2diaXRzCisJ c2V0X3NlY3Rpb25fcm5nX3R5cGUoLnRleHQsIGtwcm9iZXMsIGF4LCAlcHJvZ2JpdHMpCiAjZWxz ZQogCS50ZXh0CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC92bWxpbnV4LXhp cC5sZHMuUyBiL2FyY2gvYXJtL2tlcm5lbC92bWxpbnV4LXhpcC5sZHMuUwppbmRleCAzN2IyYTEx YWYzNDUuLjFhODRmODRiODE2NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL3ZtbGludXgt eGlwLmxkcy5TCisrKyBiL2FyY2gvYXJtL2tlcm5lbC92bWxpbnV4LXhpcC5sZHMuUwpAQCAtMTAz LDcgKzEwMyw2IEBAIFNFQ1RJT05TCiAJCQlTQ0hFRF9URVhUCiAJCQlDUFVJRExFX1RFWFQKIAkJ CUxPQ0tfVEVYVAotCQkJS1BST0JFU19URVhUCiAJCQkqKC5nbnUud2FybmluZykKIAkJCSooLmds dWVfNykKIAkJCSooLmdsdWVfN3QpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvdm1saW51 eC5sZHMuUyBiL2FyY2gvYXJtL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGY3ZjU1ZGYwYmY3 Yi4uMWUyNzhlNmMzNTA2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwvdm1saW51eC5sZHMu UworKysgYi9hcmNoL2FybS9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtMTE0LDcgKzExNCw2IEBA IFNFQ1RJT05TCiAJCQlDUFVJRExFX1RFWFQKIAkJCUxPQ0tfVEVYVAogCQkJSFlQRVJWSVNPUl9U RVhUCi0JCQlLUFJPQkVTX1RFWFQKIAkJCSooLmdudS53YXJuaW5nKQogCQkJKiguZ2x1ZV83KQog CQkJKiguZ2x1ZV83dCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJl Y2F0ZWQuYyBiL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQuYwppbmRleCBlY2Y5 Mjk4YTEyZDQuLjM1NTc0YjlmZTZkNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvYXJt djhfZGVwcmVjYXRlZC5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL2FybXY4X2RlcHJlY2F0ZWQu YwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1ZGUgPGxp bnV4L3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgorI2luY2x1ZGUgPGFz bS9rcHJvYmVzLmg+CiAKICNkZWZpbmUgQ1JFQVRFX1RSQUNFX1BPSU5UUwogI2luY2x1ZGUgInRy YWNlLWV2ZW50cy1lbXVsYXRpb24uaCIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3By b2Jlcy9rcHJvYmVzLmMgYi9hcmNoL2FybTY0L2tlcm5lbC9wcm9iZXMva3Byb2Jlcy5jCmluZGV4 IGYwNTkzYzkyMjc5Yi4uZWMyODhkZDE2NWNiIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2tlcm5l bC9wcm9iZXMva3Byb2Jlcy5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3Byb2Jlcy9rcHJvYmVz LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8 bGludXgvc3RvcF9tYWNoaW5lLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5naWZ5Lmg+CisjaW5j bHVkZSA8bGludXgvcmFuZ2VzLmg+CiAjaW5jbHVkZSA8YXNtL3RyYXBzLmg+CiAjaW5jbHVkZSA8 YXNtL3B0cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CkBAIC01NDAsOCArNTQx LDcgQEAgaW50IF9fa3Byb2JlcyBsb25nam1wX2JyZWFrX2hhbmRsZXIoc3RydWN0IGtwcm9iZSAq cCwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAKIGJvb2wgYXJjaF93aXRoaW5fa3Byb2JlX2JsYWNr bGlzdCh1bnNpZ25lZCBsb25nIGFkZHIpCiB7Ci0JaWYgKChhZGRyID49ICh1bnNpZ25lZCBsb25n KV9fa3Byb2Jlc190ZXh0X3N0YXJ0ICYmCi0JICAgIGFkZHIgPCAodW5zaWduZWQgbG9uZylfX2tw cm9iZXNfdGV4dF9lbmQpIHx8CisJaWYgKFNFQ1RJT05fUkFOR0VfQUREUl9XSVRISU4oa3Byb2Jl cywgYWRkcikgfHwKIAkgICAgKGFkZHIgPj0gKHVuc2lnbmVkIGxvbmcpX19lbnRyeV90ZXh0X3N0 YXJ0ICYmCiAJICAgIGFkZHIgPCAodW5zaWduZWQgbG9uZylfX2VudHJ5X3RleHRfZW5kKSB8fAog CSAgICAoYWRkciA+PSAodW5zaWduZWQgbG9uZylfX2lkbWFwX3RleHRfc3RhcnQgJiYKZGlmZiAt LWdpdCBhL2FyY2gvYXJtNjQva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2FybTY0L2tlcm5l bC92bWxpbnV4Lmxkcy5TCmluZGV4IGI4ZGVmZmE5ZTFiZi4uYzY4ZTVkNTI4NzA2IDEwMDY0NAot LS0gYS9hcmNoL2FybTY0L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvYXJtNjQva2Vy bmVsL3ZtbGludXgubGRzLlMKQEAgLTEyNCw3ICsxMjQsNiBAQCBTRUNUSU9OUwogCQkJU0NIRURf VEVYVAogCQkJQ1BVSURMRV9URVhUCiAJCQlMT0NLX1RFWFQKLQkJCUtQUk9CRVNfVEVYVAogCQkJ SFlQRVJWSVNPUl9URVhUCiAJCQlJRE1BUF9URVhUCiAJCQlISUJFUk5BVEVfVEVYVApkaWZmIC0t Z2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvZW50cnktYXZyMzJiLlMgYi9hcmNoL2F2cjMyL2tlcm5l bC9lbnRyeS1hdnIzMmIuUwppbmRleCA3MzAxZjQ4MDZiYmUuLjdiMmE1YzVlZjA0NyAxMDA2NDQK LS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvZW50cnktYXZyMzJiLlMKKysrIGIvYXJjaC9hdnIzMi9r ZXJuZWwvZW50cnktYXZyMzJiLlMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxhc20vc3lz cmVnLmg+CiAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+CiAjaW5jbHVkZSA8YXNtL3VuaXN0 ZC5oPgorI2luY2x1ZGUgPGFzbS9yYW5nZXMuaD4KIAogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAj IGRlZmluZSBwcmVlbXB0X3N0b3AJCW1hc2tfaW50ZXJydXB0cwpAQCAtNjA1LDcgKzYwNiwxMSBA QCBmYXVsdF9leGl0X3dvcms6CiAJYnJjYwlmYXVsdF9yZXN1bWVfdXNlcgogCXJqbXAJZW50ZXJf bW9uaXRvcl9tb2RlCiAKLQkuc2VjdGlvbiAua3Byb2Jlcy50ZXh0LCAiYXgiLCBAcHJvZ2JpdHMK KyNpZmRlZiBDT05GSUdfS1BST0JFUworCXNldF9zZWN0aW9uX3JuZ190eXBlKC50ZXh0LCBrcHJv YmVzLCBheCwgQHByb2diaXRzKQorI2Vsc2UKKwkudGV4dAorI2VuZGlmCiAJLnR5cGUJaGFuZGxl X2RlYnVnLCBAZnVuY3Rpb24KIGhhbmRsZV9kZWJ1ZzoKIAlzdWIJc3AsIDQJCS8qIHIxMl9vcmln ICovCkBAIC04MjYsNyArODMxLDExIEBAIGlycV9sZXZlbFxsZXZlbDoKIAlJUlFfTEVWRUwgMgog CUlSUV9MRVZFTCAzCiAKLQkuc2VjdGlvbiAua3Byb2Jlcy50ZXh0LCAiYXgiLCBAcHJvZ2JpdHMK KyNpZmRlZiBDT05GSUdfS1BST0JFUworCXNldF9zZWN0aW9uX3JuZ190eXBlKC50ZXh0LCBrcHJv YmVzLCBheCwgQHByb2diaXRzKQorI2Vsc2UKKwkudGV4dAorI2VuZGlmCiAJLnR5cGUJZW50ZXJf bW9uaXRvcl9tb2RlLCBAZnVuY3Rpb24KIGVudGVyX21vbml0b3JfbW9kZToKIAkvKgpkaWZmIC0t Z2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvYXZyMzIva2VybmVs L3ZtbGludXgubGRzLlMKaW5kZXggMTdmMjczMGViNDk3Li4wNDYyN2E5YzE3OGUgMTAwNjQ0Ci0t LSBhL2FyY2gvYXZyMzIva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9hdnIzMi9rZXJu ZWwvdm1saW51eC5sZHMuUwpAQCAtNDksNyArNDksNiBAQCBTRUNUSU9OUwogCQlfc3RleHQgPSAu OwogCQkqKC5leC50ZXh0KQogCQkqKC5pcnEudGV4dCkKLQkJS1BST0JFU19URVhUCiAJCVRFWFRf VEVYVAogCQlTQ0hFRF9URVhUCiAJCUNQVUlETEVfVEVYVApkaWZmIC0tZ2l0IGEvYXJjaC9ibGFj a2Zpbi9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL3ZtbGludXgu bGRzLlMKaW5kZXggNjgwNjlhMTIwMDU1Li45MzIyMGZmNjUwMTQgMTAwNjQ0Ci0tLSBhL2FyY2gv YmxhY2tmaW4va2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwv dm1saW51eC5sZHMuUwpAQCAtMzcsNyArMzcsNiBAQCBTRUNUSU9OUwogCQlMT0NLX1RFWFQKIAkJ SVJRRU5UUllfVEVYVAogCQlTT0ZUSVJRRU5UUllfVEVYVAotCQlLUFJPQkVTX1RFWFQKICNpZmRl ZiBDT05GSUdfUk9NS0VSTkVMCiAJCV9fc2luaXR0ZXh0ID0gLjsKIAkJSU5JVF9URVhUCmRpZmYg LS1naXQgYS9hcmNoL2M2eC9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvYzZ4L2tlcm5lbC92 bWxpbnV4Lmxkcy5TCmluZGV4IGExYTVjMTY2YmM5Yi4uYTQxZDQzYjgyNTRiIDEwMDY0NAotLS0g YS9hcmNoL2M2eC9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL2M2eC9rZXJuZWwvdm1s aW51eC5sZHMuUwpAQCAtNzQsNyArNzQsNiBAQCBTRUNUSU9OUwogCQlMT0NLX1RFWFQKIAkJSVJR RU5UUllfVEVYVAogCQlTT0ZUSVJRRU5UUllfVEVYVAotCQlLUFJPQkVTX1RFWFQKIAkJKiguZml4 dXApCiAJCSooLmdudS53YXJuaW5nKQogCX0KZGlmZiAtLWdpdCBhL2FyY2gvaGV4YWdvbi9rZXJu ZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRl eCBlYzg3ZTY3ZmViMTkuLjdlNmY2ODU4NGI1NSAxMDA2NDQKLS0tIGEvYXJjaC9oZXhhZ29uL2tl cm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdm1saW51eC5sZHMu UwpAQCAtNTIsNyArNTIsNiBAQCBTRUNUSU9OUwogCQlTQ0hFRF9URVhUCiAJCUNQVUlETEVfVEVY VAogCQlMT0NLX1RFWFQKLQkJS1BST0JFU19URVhUCiAJCSooLmZpeHVwKQogCX0KIAlfZXRleHQg PSAuOwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9qcHJvYmVzLlMgYi9hcmNoL2lhNjQv a2VybmVsL2pwcm9iZXMuUwppbmRleCBmNjkzODljN2JlMWQuLjcxYWRjNzEzMmUyMiAxMDA2NDQK LS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9qcHJvYmVzLlMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9q cHJvYmVzLlMKQEAgLTQ2LDExICs0NiwxMiBAQAogICovCiAjaW5jbHVkZSA8YXNtL2FzbW1hY3Jv Lmg+CiAjaW5jbHVkZSA8YXNtL2JyZWFrLmg+CisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogCiAJ LyoKIAkgKiB2b2lkIGpwcm9iZV9icmVhayh2b2lkKQogCSAqLwotCS5zZWN0aW9uIC5rcHJvYmVz LnRleHQsICJheCIKKwlzZXRfc2VjdGlvbl9ybmcoLnRleHQsIGtwcm9iZXMsIGF4KQogRU5UUlko anByb2JlX2JyZWFrKQogCWJyZWFrLm0gX19JQTY0X0JSRUFLX0pQUk9CRQogRU5EKGpwcm9iZV9i cmVhaykKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gv aWE2NC9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCBmODlkMjBjOTc0MTIuLjNmZjZlZGY5MTNk MiAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gv aWE2NC9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNDgsNyArNDgsNiBAQCBTRUNUSU9OUyB7CiAJ CVNDSEVEX1RFWFQKIAkJQ1BVSURMRV9URVhUCiAJCUxPQ0tfVEVYVAotCQlLUFJPQkVTX1RFWFQK IAkJKiguZ251LmxpbmtvbmNlLnQqKQogCX0KIApkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2xpYi9m bHVzaC5TIGIvYXJjaC9pYTY0L2xpYi9mbHVzaC5TCmluZGV4IDlhNWEyZjlmYWQxMy4uZGVjMWIx ODBkNjE4IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvbGliL2ZsdXNoLlMKKysrIGIvYXJjaC9pYTY0 L2xpYi9mbHVzaC5TCkBAIC05LDcgKzksNyBAQAogCiAjaW5jbHVkZSA8YXNtL2FzbW1hY3JvLmg+ CiAjaW5jbHVkZSA8YXNtL2V4cG9ydC5oPgotCisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogCiAJ LyoKIAkgKiBmbHVzaF9pY2FjaGVfcmFuZ2Uoc3RhcnQsZW5kKQpAQCAtMjEsNyArMjEsNyBAQAog CSAqCiAJICoJTm90ZTogImluMCIgYW5kICJpbjEiIGFyZSBwcmVzZXJ2ZWQgZm9yIGRlYnVnZ2lu ZyBwdXJwb3Nlcy4KIAkgKi8KLQkuc2VjdGlvbiAua3Byb2Jlcy50ZXh0LCJheCIKKwlzZXRfc2Vj dGlvbl9ybmcoLnRleHQsIGtwcm9iZXMsIGF4KQogR0xPQkFMX0VOVFJZKGZsdXNoX2ljYWNoZV9y YW5nZSkKIAogCS5wcm9sb2d1ZQpAQCAtNzQsNyArNzQsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChm bHVzaF9pY2FjaGVfcmFuZ2UpCiAJICoKIAkgKglOb3RlOiAiaW4wIiBhbmQgImluMSIgYXJlIHBy ZXNlcnZlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgogCSAqLwotCS5zZWN0aW9uIC5rcHJvYmVz LnRleHQsImF4IgorCXNldF9zZWN0aW9uX3JuZygudGV4dCwga3Byb2JlcywgYXgpCiBHTE9CQUxf RU5UUlkoY2xmbHVzaF9jYWNoZV9yYW5nZSkKIAogCS5wcm9sb2d1ZQpkaWZmIC0tZ2l0IGEvYXJj aC9tZXRhZy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvbWV0YWcva2VybmVsL3ZtbGludXgu bGRzLlMKaW5kZXggZTZjNzAwZWFmMjA3Li5iMTgzODZkMjI1MGYgMTAwNjQ0Ci0tLSBhL2FyY2gv bWV0YWcva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9tZXRhZy9rZXJuZWwvdm1saW51 eC5sZHMuUwpAQCAtMjMsNyArMjMsNiBAQCBTRUNUSU9OUwogCVNDSEVEX1RFWFQKIAlDUFVJRExF X1RFWFQKIAlMT0NLX1RFWFQKLQlLUFJPQkVTX1RFWFQKIAlJUlFFTlRSWV9URVhUCiAJU09GVElS UUVOVFJZX1RFWFQKIAkqKC50ZXh0LiopCmRpZmYgLS1naXQgYS9hcmNoL21pY3JvYmxhemUva2Vy bmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL21pY3JvYmxhemUva2VybmVsL3ZtbGludXgubGRzLlMK aW5kZXggMjg5ZDBlN2YzZTNhLi5hYWRlZTIyMjlhYzYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9i bGF6ZS9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL21pY3JvYmxhemUva2VybmVsL3Zt bGludXgubGRzLlMKQEAgLTM1LDcgKzM1LDYgQEAgU0VDVElPTlMgewogCQlTQ0hFRF9URVhUCiAJ CUNQVUlETEVfVEVYVAogCQlMT0NLX1RFWFQKLQkJS1BST0JFU19URVhUCiAJCUlSUUVOVFJZX1RF WFQKIAkJU09GVElSUUVOVFJZX1RFWFQKIAkJLiA9IEFMSUdOICg0KSA7CmRpZmYgLS1naXQgYS9h cmNoL21pcHMva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL21pcHMva2VybmVsL3ZtbGludXgu bGRzLlMKaW5kZXggZjBhMGU2ZDYyYmUzLi40NGUyMTgxMmM1NDQgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL21pcHMva2VybmVsL3ZtbGludXgu bGRzLlMKQEAgLTU3LDcgKzU3LDYgQEAgU0VDVElPTlMKIAkJU0NIRURfVEVYVAogCQlDUFVJRExF X1RFWFQKIAkJTE9DS19URVhUCi0JCUtQUk9CRVNfVEVYVAogCQlJUlFFTlRSWV9URVhUCiAJCVNP RlRJUlFFTlRSWV9URVhUCiAJCSooLnRleHQuKikKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9r ZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvdm1saW51eC5sZHMuUwpp bmRleCAyZDVmMWMzZjFhZmIuLjU1MmVmMDBhM2RhNSAxMDA2NDQKLS0tIGEvYXJjaC9tbjEwMzAw L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvdm1saW51eC5s ZHMuUwpAQCAtMzIsNyArMzIsNiBAQCBTRUNUSU9OUwogCVNDSEVEX1RFWFQKIAlDUFVJRExFX1RF WFQKIAlMT0NLX1RFWFQKLQlLUFJPQkVTX1RFWFQKIAkqKC5maXh1cCkKIAkqKC5nbnUud2Fybmlu ZykKIAl9ID0gMHhjYgpkaWZmIC0tZ2l0IGEvYXJjaC9uaW9zMi9rZXJuZWwvdm1saW51eC5sZHMu UyBiL2FyY2gvbmlvczIva2VybmVsL3ZtbGludXgubGRzLlMKaW5kZXggNmE4MDQ1YmIxYTc3Li5h YWU0YTAwYzQwNTYgMTAwNjQ0Ci0tLSBhL2FyY2gvbmlvczIva2VybmVsL3ZtbGludXgubGRzLlMK KysrIGIvYXJjaC9uaW9zMi9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNDEsNyArNDEsNiBAQCBT RUNUSU9OUwogCQlMT0NLX1RFWFQKIAkJSVJRRU5UUllfVEVYVAogCQlTT0ZUSVJRRU5UUllfVEVY VAotCQlLUFJPQkVTX1RFWFQKIAl9ID0wCiAJX2V0ZXh0ID0gLjsKIApkaWZmIC0tZ2l0IGEvYXJj aC9vcGVucmlzYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvb3BlbnJpc2Mva2VybmVsL3Zt bGludXgubGRzLlMKaW5kZXggMDBkZGI3ODA0YmU0Li44YWRlNmNjY2E2YWMgMTAwNjQ0Ci0tLSBh L2FyY2gvb3BlbnJpc2Mva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9vcGVucmlzYy9r ZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNTcsNyArNTcsNiBAQCBTRUNUSU9OUwogCSAgU0NIRURf VEVYVAogCSAgQ1BVSURMRV9URVhUCiAJICBMT0NLX1RFWFQKLQkgIEtQUk9CRVNfVEVYVAogCSAg SVJRRU5UUllfVEVYVAogCSAgU09GVElSUUVOVFJZX1RFWFQKIAkgICooLmZpeHVwKQpkaWZmIC0t Z2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL3BhcmlzYy9rZXJu ZWwvdm1saW51eC5sZHMuUwppbmRleCAzZDZlZjFiMjljNmEuLmVkYmQ2ZDk0ODdkYyAxMDA2NDQK LS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9wYXJpc2Mv a2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTcxLDcgKzcxLDYgQEAgU0VDVElPTlMKIAkJU0NIRURf VEVYVAogCQlDUFVJRExFX1RFWFQKIAkJTE9DS19URVhUCi0JCUtQUk9CRVNfVEVYVAogCQlJUlFF TlRSWV9URVhUCiAJCVNPRlRJUlFFTlRSWV9URVhUCiAJCSooLnRleHQuZG9fc29mdGlycSkKZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wcGNfYXNtLmggYi9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vcHBjX2FzbS5oCmluZGV4IDAyNTgzM2I4ZGY5Zi4uMDg0NjQxM2IzYTJl IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcHBjX2FzbS5oCisrKyBiL2Fy Y2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9wcGNfYXNtLmgKQEAgLTksNiArOSw3IEBACiAjaW5jbHVk ZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9wcGMtb3Bjb2RlLmg+CiAjaW5jbHVk ZSA8YXNtL2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogCiAjaWZkZWYgX19B U1NFTUJMWV9fCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMu UyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCA4Y2Q5NDBjNzI4OTUu LjIyODU2NjRhYmI1MiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92bWxpbnV4Lmxk cy5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtMTEyLDcgKzEx Miw2IEBAIFNFQ1RJT05TCiAJCVNDSEVEX1RFWFQKIAkJQ1BVSURMRV9URVhUCiAJCUxPQ0tfVEVY VAotCQlLUFJPQkVTX1RFWFQKIAkJSVJRRU5UUllfVEVYVAogCQlTT0ZUSVJRRU5UUllfVEVYVAog CQlNRU1fS0VFUChpbml0LnRleHQpCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2VudHJ5 LlMgYi9hcmNoL3MzOTAva2VybmVsL2VudHJ5LlMKaW5kZXggOTcyOThjNThiMmJlLi44NDdlMmUx ZGY4OWMgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZW50cnkuUworKysgYi9hcmNoL3Mz OTAva2VybmVsL2VudHJ5LlMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxhc20vc2V0dXAu aD4KICNpbmNsdWRlIDxhc20vbm1pLmg+CiAjaW5jbHVkZSA8YXNtL2V4cG9ydC5oPgorI2luY2x1 ZGUgPGFzbS9yYW5nZXMuaD4KIAogX19QVF9SMCAgICAgID0JX19QVF9HUFJTCiBfX1BUX1IxICAg ICAgPQlfX1BUX0dQUlMgKyA4CkBAIC0xNjksNyArMTcwLDcgQEAgX1BJRl9XT1JLCT0gKF9QSUZf UEVSX1RSQVApCiAJCXRtCW9mZitcYWRkciwgXG1hc2sKIAkuZW5kbQogCi0JLnNlY3Rpb24gLmtw cm9iZXMudGV4dCwgImF4IgorCXNldF9zZWN0aW9uX3JuZygudGV4dCwga3Byb2JlcywgYXgpCiAu TGR1bW15OgogCS8qCiAJICogVGhpcyBub3AgZXhpc3RzIG9ubHkgaW4gb3JkZXIgdG8gYXZvaWQg dGhhdCBfX3N3aXRjaF90byBzdGFydHMgYXQKQEAgLTk4Niw3ICs5ODcsNyBAQCBFTlRSWShyZXN0 YXJ0X2ludF9oYW5kbGVyKQogCWJyYwkyLDJiCiAzOglqCTNiCiAKLQkuc2VjdGlvbiAua3Byb2Jl cy50ZXh0LCAiYXgiCisJc2V0X3NlY3Rpb25fcm5nKC50ZXh0LCBrcHJvYmVzLCBheCkKIAogI2lm ZGVmIENPTkZJR19DSEVDS19TVEFDSwogLyoKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwv a3Byb2Jlcy5jIGIvYXJjaC9zMzkwL2tlcm5lbC9rcHJvYmVzLmMKaW5kZXggODRlMDU1N2IxNmZl Li45NGE0OTE4YjU5NjggMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCisr KyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCkBAIC0yODksOSArMjg5LDkgQEAgc3RhdGlj IHZvaWQga3Byb2JlX3JlZW50ZXJfY2hlY2soc3RydWN0IGtwcm9iZV9jdGxibGsgKmtjYiwgc3Ry dWN0IGtwcm9iZSAqcCkKIAljYXNlIEtQUk9CRV9SRUVOVEVSOgogCWRlZmF1bHQ6CiAJCS8qCi0J CSAqIEEga3Byb2JlIG9uIHRoZSBjb2RlIHBhdGggdG8gc2luZ2xlIHN0ZXAgYW4gaW5zdHJ1Y3Rp b24KLQkJICogaXMgYSBCVUcuIFRoZSBjb2RlIHBhdGggcmVzaWRlcyBpbiB0aGUgLmtwcm9iZXMu dGV4dAotCQkgKiBzZWN0aW9uIGFuZCBpcyBleGVjdXRlZCB3aXRoIGludGVycnVwdHMgZGlzYWJs ZWQuCisJCSAqIEEga3Byb2JlIG9uIHRoZSBjb2RlIHBhdGggdG8gc2luZ2xlIHN0ZXAgYW4gaW5z dHJ1Y3Rpb24gaXMgYQorCQkgKiBCVUcuIFRoZSBjb2RlIHBhdGggcmVzaWRlcyBpbiB0aGUga3By b2JlcyBzZWN0aW9uIHJhbmdlIGFuZAorCQkgKiBpcyBleGVjdXRlZCB3aXRoIGludGVycnVwdHMg ZGlzYWJsZWQuCiAJCSAqLwogCQlwcmludGsoS0VSTl9FTUVSRyAiSW52YWxpZCBrcHJvYmUgZGV0 ZWN0ZWQgYXQgJXAuXG4iLCBwLT5hZGRyKTsKIAkJZHVtcF9rcHJvYmUocCk7CmRpZmYgLS1naXQg YS9hcmNoL3MzOTAva2VybmVsL21jb3VudC5TIGIvYXJjaC9zMzkwL2tlcm5lbC9tY291bnQuUwpp bmRleCA5YTE3ZTQ0NzVkMjcuLjlkNzYwNTY2MDlmNyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tl cm5lbC9tY291bnQuUworKysgYi9hcmNoL3MzOTAva2VybmVsL21jb3VudC5TCkBAIC0xMCw4ICsx MCw5IEBACiAjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4K ICNpbmNsdWRlIDxhc20vZXhwb3J0Lmg+CisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogCi0JLnNl Y3Rpb24gLmtwcm9iZXMudGV4dCwgImF4IgorCXNldF9zZWN0aW9uX3JuZygudGV4dCwga3Byb2Jl cywgYXgpCiAKIEVOVFJZKGZ0cmFjZV9zdHViKQogCWJyCSVyMTQKZGlmZiAtLWdpdCBhL2FyY2gv czM5MC9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvczM5MC9rZXJuZWwvdm1saW51eC5sZHMu UwppbmRleCAzNjY3ZDIwZTk5N2YuLmIyZGY2ZDliYWIwOSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkw L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdm1saW51eC5sZHMu UwpAQCAtMzcsNyArMzcsNiBAQCBTRUNUSU9OUwogCQlTQ0hFRF9URVhUCiAJCUNQVUlETEVfVEVY VAogCQlMT0NLX1RFWFQKLQkJS1BST0JFU19URVhUCiAJCUlSUUVOVFJZX1RFWFQKIAkJU09GVElS UUVOVFJZX1RFWFQKIAkJKiguZml4dXApCmRpZmYgLS1naXQgYS9hcmNoL3Njb3JlL2tlcm5lbC92 bWxpbnV4Lmxkcy5TIGIvYXJjaC9zY29yZS9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCA0MTE3 ODkwYjFkYjEuLmE4YjE0ZjNlZDQ3NCAxMDA2NDQKLS0tIGEvYXJjaC9zY29yZS9rZXJuZWwvdm1s aW51eC5sZHMuUworKysgYi9hcmNoL3Njb3JlL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC00Miw3 ICs0Miw2IEBAIFNFQ1RJT05TCiAJCVNDSEVEX1RFWFQKIAkJQ1BVSURMRV9URVhUCiAJCUxPQ0tf VEVYVAotCQlLUFJPQkVTX1RFWFQKIAkJKigudGV4dC4qKQogCQkqKC5maXh1cCkKIAkJLiA9IEFM SUdOICg0KSA7CmRpZmYgLS1naXQgYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJj aC9zaC9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCA1YjlhM2NjOTBjNTguLjU4ZDliYTc5NmY3 YSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3No L2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC0zOCw3ICszOCw2IEBAIFNFQ1RJT05TCiAJCVNDSEVE X1RFWFQKIAkJQ1BVSURMRV9URVhUCiAJCUxPQ0tfVEVYVAotCQlLUFJPQkVTX1RFWFQKIAkJSVJR RU5UUllfVEVYVAogCQlTT0ZUSVJRRU5UUllfVEVYVAogCQkqKC5maXh1cCkKZGlmZiAtLWdpdCBh L2FyY2gvc3BhcmMva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL3NwYXJjL2tlcm5lbC92bWxp bnV4Lmxkcy5TCmluZGV4IDU3MmRiNjg2Zjg0NS4uMGVlNDFiMDA3MWU1IDEwMDY0NAotLS0gYS9h cmNoL3NwYXJjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3Zt bGludXgubGRzLlMKQEAgLTUxLDcgKzUxLDYgQEAgU0VDVElPTlMKIAkJU0NIRURfVEVYVAogCQlD UFVJRExFX1RFWFQKIAkJTE9DS19URVhUCi0JCUtQUk9CRVNfVEVYVAogCQlJUlFFTlRSWV9URVhU CiAJCVNPRlRJUlFFTlRSWV9URVhUCiAJCSooLmdudS53YXJuaW5nKQpkaWZmIC0tZ2l0IGEvYXJj aC9zcGFyYy9tbS91bHRyYS5TIGIvYXJjaC9zcGFyYy9tbS91bHRyYS5TCmluZGV4IDVkMmZkNmNk MzE4OS4uZWU5ZjY0ODU0OWMwIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL3VsdHJhLlMKKysr IGIvYXJjaC9zcGFyYy9tbS91bHRyYS5TCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8YXNt L2NhY2hlZmx1c2guaD4KICNpbmNsdWRlIDxhc20vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFz bS9jcHVkYXRhLmg+CisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogCiAJLyogQmFzaWNhbGx5LCBt b3N0IG9mIHRoZSBTcGl0ZmlyZSB2cy4gQ2hlZXRhaCBtYWRuZXNzCiAJICogaGFzIHRvIGRvIHdp dGggdGhlIGZhY3QgdGhhdCBDaGVldGFoIGRvZXMgbm90IHN1cHBvcnQKQEAgLTE4NSw3ICsxODYs NyBAQCBfX3NwaXRmaXJlX2ZsdXNoX3RsYl9tbV9zbG93OgogLyoKICAqIFRoZSBmb2xsb3dpbmcg Y29kZSBmbHVzaGVzIG9uZSBwYWdlX3NpemUgd29ydGguCiAgKi8KLQkuc2VjdGlvbiAua3Byb2Jl cy50ZXh0LCAiYXgiCisJc2V0X3NlY3Rpb25fcm5nKC50ZXh0LCBrcHJvYmVzLCBheCkKIAkuYWxp Z24JCTMyCiAJLmdsb2JsCQlfX2ZsdXNoX2ljYWNoZV9wYWdlCiBfX2ZsdXNoX2ljYWNoZV9wYWdl OgkvKiAlbzAgPSBwaHlzX3BhZ2UgKi8KZGlmZiAtLWdpdCBhL2FyY2gvdGlsZS9rZXJuZWwvdm1s aW51eC5sZHMuUyBiL2FyY2gvdGlsZS9rZXJuZWwvdm1saW51eC5sZHMuUwppbmRleCBlMWJhZjA5 NGZiYTQuLjg1ZDAzY2U2YzBhMCAxMDA2NDQKLS0tIGEvYXJjaC90aWxlL2tlcm5lbC92bWxpbnV4 Lmxkcy5TCisrKyBiL2FyY2gvdGlsZS9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNDQsNyArNDQs NiBAQCBTRUNUSU9OUwogICAgIFNDSEVEX1RFWFQKICAgICBDUFVJRExFX1RFWFQKICAgICBMT0NL X1RFWFQKLSAgICBLUFJPQkVTX1RFWFQKICAgICBJUlFFTlRSWV9URVhUCiAgICAgU09GVElSUUVO VFJZX1RFWFQKICAgICBfX2ZpeF90ZXh0X2VuZCA9IC47ICAgLyogdGlsZS1jcGFjayB3b24ndCBy ZWFycmFuZ2UgYmVmb3JlIHRoaXMgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rcHJv YmVzL2NvcmUuYyBiL2FyY2gveDg2L2tlcm5lbC9rcHJvYmVzL2NvcmUuYwppbmRleCBlYjM1MDkz MzhhZTAuLjk1ZTRiMTcyZTkyMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2twcm9iZXMv Y29yZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9rcHJvYmVzL2NvcmUuYwpAQCAtNTgwLDkgKzU4 MCw5IEBAIHN0YXRpYyBpbnQgcmVlbnRlcl9rcHJvYmUoc3RydWN0IGtwcm9iZSAqcCwgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MsCiAJY2FzZSBLUFJPQkVfUkVFTlRFUjoKIAkJLyogQSBwcm9iZSBoYXMg YmVlbiBoaXQgaW4gdGhlIGNvZGVwYXRoIGxlYWRpbmcgdXAgdG8sIG9yIGp1c3QKIAkJICogYWZ0 ZXIsIHNpbmdsZS1zdGVwcGluZyBvZiBhIHByb2JlZCBpbnN0cnVjdGlvbi4gVGhpcyBlbnRpcmUK LQkJICogY29kZXBhdGggc2hvdWxkIHN0cmljdGx5IHJlc2lkZSBpbiAua3Byb2Jlcy50ZXh0IHNl Y3Rpb24uCi0JCSAqIFJhaXNlIGEgQlVHIG9yIHdlJ2xsIGNvbnRpbnVlIGluIGFuIGVuZGxlc3Mg cmVlbnRlcmluZyBsb29wCi0JCSAqIGFuZCBldmVudHVhbGx5IGEgc3RhY2sgb3ZlcmZsb3cuCisJ CSAqIGNvZGVwYXRoIHNob3VsZCBzdHJpY3RseSByZXNpZGUgaW4gdGhlIGtwcm9iZXMgc2VjdGlv bgorCQkgKiByYW5nZS4gUmFpc2UgYSBCVUcgb3Igd2UnbGwgY29udGludWUgaW4gYW4gZW5kbGVz cworCQkgKiByZWVudGVyaW5nIGxvb3AgYW5kIGV2ZW50dWFsbHkgYSBzdGFjayBvdmVyZmxvdy4K IAkJICovCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVucmVjb3ZlcmFibGUga3Byb2JlIGRldGVj dGVkIGF0ICVwLlxuIiwKIAkJICAgICAgIHAtPmFkZHIpOwpAQCAtMTEzMywxMCArMTEzMyw5IEBA IE5PS1BST0JFX1NZTUJPTChsb25nam1wX2JyZWFrX2hhbmRsZXIpOwogCiBib29sIGFyY2hfd2l0 aGluX2twcm9iZV9ibGFja2xpc3QodW5zaWduZWQgbG9uZyBhZGRyKQogewotCXJldHVybiAgKGFk ZHIgPj0gKHVuc2lnbmVkIGxvbmcpX19rcHJvYmVzX3RleHRfc3RhcnQgJiYKLQkJIGFkZHIgPCAo dW5zaWduZWQgbG9uZylfX2twcm9iZXNfdGV4dF9lbmQpIHx8CisJcmV0dXJuICAoU0VDVElPTl9S QU5HRV9BRERSX1dJVEhJTihrcHJvYmVzLCBhZGRyKSB8fAogCQkoYWRkciA+PSAodW5zaWduZWQg bG9uZylfX2VudHJ5X3RleHRfc3RhcnQgJiYKLQkJIGFkZHIgPCAodW5zaWduZWQgbG9uZylfX2Vu dHJ5X3RleHRfZW5kKTsKKwkJIGFkZHIgPCAodW5zaWduZWQgbG9uZylfX2VudHJ5X3RleHRfZW5k KSk7CiB9CiAKIGludCBfX2luaXQgYXJjaF9pbml0X2twcm9iZXModm9pZCkKZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC94ODYva2VybmVsL3ZtbGludXgu bGRzLlMKaW5kZXggZTc5ZjE1ZjEwOGE4Li40YzE2ZmFkYjlhYzYgMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4Lmxk cy5TCkBAIC05OSw3ICs5OSw2IEBAIFNFQ1RJT05TCiAJCVNDSEVEX1RFWFQKIAkJQ1BVSURMRV9U RVhUCiAJCUxPQ0tfVEVYVAotCQlLUFJPQkVTX1RFWFQKIAkJRU5UUllfVEVYVAogCQlJUlFFTlRS WV9URVhUCiAJCVNPRlRJUlFFTlRSWV9URVhUCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5l cmljL2twcm9iZXMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMva3Byb2Jlcy5oCmluZGV4IDU3YWY5 ZjIxZDE0OC4uMDJhMjZiOTc1MTg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL2tw cm9iZXMuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2twcm9iZXMuaApAQCAtMyw2ICszLDcg QEAKIAogI2lmIGRlZmluZWQoX19LRVJORUxfXykgJiYgIWRlZmluZWQoX19BU1NFTUJMWV9fKQog I2lmZGVmIENPTkZJR19LUFJPQkVTCisjaW5jbHVkZSA8YXNtL3Jhbmdlcy5oPgogLyoKICAqIEJs YWNrbGlzdCBnYW5lcmF0aW5nIG1hY3JvLiBTcGVjaWZ5IGZ1bmN0aW9ucyB3aGljaCBpcyBub3Qg cHJvYmVkCiAgKiBieSB1c2luZyB0aGlzIG1hY3JvLgpAQCAtMTMsNyArMTQsNyBAQCBzdGF0aWMg dW5zaWduZWQgbG9uZyBfX3VzZWQJCQkJCVwKIAlfa2JsX2FkZHJfIyNmbmFtZSA9ICh1bnNpZ25l ZCBsb25nKWZuYW1lOwogIyBkZWZpbmUgTk9LUFJPQkVfU1lNQk9MKGZuYW1lKQlfX05PS1BST0JF X1NZTUJPTChmbmFtZSkKIC8qIFVzZSB0aGlzIHRvIGZvcmJpZCBhIGtwcm9iZXMgYXR0YWNoIG9u IHZlcnkgbG93IGxldmVsIGZ1bmN0aW9ucyAqLwotIyBkZWZpbmUgX19rcHJvYmVzCV9fYXR0cmli dXRlX18oKF9fc2VjdGlvbl9fKCIua3Byb2Jlcy50ZXh0IikpKQorIyBkZWZpbmUgX19rcHJvYmVz CV9fTElOVVhfUkFOR0UoLnRleHQsIGtwcm9iZXMpCiAjIGRlZmluZSBub2twcm9iZV9pbmxpbmUJ X19hbHdheXNfaW5saW5lCiAjZWxzZQogIyBkZWZpbmUgTk9LUFJPQkVfU1lNQk9MKGZuYW1lKQpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9zZWN0aW9ucy5oIGIvaW5jbHVkZS9hc20t Z2VuZXJpYy9zZWN0aW9ucy5oCmluZGV4IGIxNDVhZThkOWNiZS4uZjMzNDBmMjc3MmJiIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL3NlY3Rpb25zLmgKKysrIGIvaW5jbHVkZS9hc20t Z2VuZXJpYy9zZWN0aW9ucy5oCkBAIC0yNiw3ICsyNiw2IEBACiAgKiBGb2xsb3dpbmcgZ2xvYmFs IHZhcmlhYmxlcyBhcmUgb3B0aW9uYWwgYW5kIG1heSBiZSB1bmF2YWlsYWJsZSBvbiBzb21lCiAg KiBhcmNoaXRlY3R1cmVzIGFuZC9vciBrZXJuZWwgY29uZmlndXJhdGlvbnMuCiAgKglfdGV4dCwg X2RhdGEKLSAqCV9fa3Byb2Jlc190ZXh0X3N0YXJ0LCBfX2twcm9iZXNfdGV4dF9lbmQKICAqCV9f ZW50cnlfdGV4dF9zdGFydCwgX19lbnRyeV90ZXh0X2VuZAogICoJX19jdG9yc19zdGFydCwgX19j dG9yc19lbmQKICAqLwpAQCAtMzgsNyArMzcsNiBAQCBleHRlcm4gY2hhciBfc2luaXR0ZXh0W10s IF9laW5pdHRleHRbXTsKIGV4dGVybiBjaGFyIF9fc3RhcnRfZGF0YV9yb19hZnRlcl9pbml0W10s IF9fZW5kX2RhdGFfcm9fYWZ0ZXJfaW5pdFtdOwogZXh0ZXJuIGNoYXIgX2VuZFtdOwogZXh0ZXJu IGNoYXIgX19wZXJfY3B1X2xvYWRbXSwgX19wZXJfY3B1X3N0YXJ0W10sIF9fcGVyX2NwdV9lbmRb XTsKLWV4dGVybiBjaGFyIF9fa3Byb2Jlc190ZXh0X3N0YXJ0W10sIF9fa3Byb2Jlc190ZXh0X2Vu ZFtdOwogZXh0ZXJuIGNoYXIgX19lbnRyeV90ZXh0X3N0YXJ0W10sIF9fZW50cnlfdGV4dF9lbmRb XTsKIGV4dGVybiBjaGFyIF9fc3RhcnRfcm9kYXRhW10sIF9fZW5kX3JvZGF0YVtdOwogCmRpZmYg LS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmggYi9pbmNsdWRlL2FzbS1n ZW5lcmljL3ZtbGludXgubGRzLmgKaW5kZXggMzdiOTk1MzdkNWE5Li40OTljYWY1YjQzNjEgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaAorKysgYi9pbmNsdWRl L2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmgKQEAgLTQ3MSw3ICs0NzEsNyBAQAogI2RlZmluZSBL UFJPQkVTX1RFWFQJCQkJCQkJXAogCQlBTElHTl9GVU5DVElPTigpOwkJCQkJXAogCQlWTUxJTlVY X1NZTUJPTChfX2twcm9iZXNfdGV4dF9zdGFydCkgPSAuOwkJXAotCQkqKC5rcHJvYmVzLnRleHQp CQkJCQlcCisJCSooLnRleHQuLnJuZy5rcHJvYmVzLmFueSkJCQkJXAogCQlWTUxJTlVYX1NZTUJP TChfX2twcm9iZXNfdGV4dF9lbmQpID0gLjsKIAogI2RlZmluZSBFTlRSWV9URVhUCQkJCQkJCVwK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oIGIvaW5jbHVkZS9saW51eC9rcHJv YmVzLmgKaW5kZXggOTg1ZWQ3OWVmNDMxLi40NDVjYzZmZTdhZmEgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvbGludXgva3Byb2Jlcy5oCisrKyBiL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCkBAIC00Myw2 ICs0Myw5IEBACiAjaW5jbHVkZSA8YXNtL2twcm9iZXMuaD4KIAogI2lmZGVmIENPTkZJR19LUFJP QkVTCisjaW5jbHVkZSA8bGludXgvcmFuZ2VzLmg+CisKK0RFQ0xBUkVfU0VDVElPTl9SQU5HRShr cHJvYmVzKTsKIAogLyoga3Byb2JlX3N0YXR1cyBzZXR0aW5ncyAqLwogI2RlZmluZSBLUFJPQkVf SElUX0FDVElWRQkweDAwMDAwMDAxCmRpZmYgLS1naXQgYS9rZXJuZWwva3Byb2Jlcy5jIGIva2Vy bmVsL2twcm9iZXMuYwppbmRleCA0MzQ2MDEwNGYxMTkuLjgyMTkxZjMyOGUyMSAxMDA2NDQKLS0t IGEva2VybmVsL2twcm9iZXMuYworKysgYi9rZXJuZWwva3Byb2Jlcy5jCkBAIC0xMzI4LDggKzEz MjgsNyBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX2FnZ3Jfa3Byb2JlKHN0cnVjdCBrcHJvYmUgKm9y aWdfcCwgc3RydWN0IGtwcm9iZSAqcCkKIGJvb2wgX193ZWFrIGFyY2hfd2l0aGluX2twcm9iZV9i bGFja2xpc3QodW5zaWduZWQgbG9uZyBhZGRyKQogewogCS8qIFRoZSBfX2twcm9iZXMgbWFya2Vk IGZ1bmN0aW9ucyBhbmQgZW50cnkgY29kZSBtdXN0IG5vdCBiZSBwcm9iZWQgKi8KLQlyZXR1cm4g YWRkciA+PSAodW5zaWduZWQgbG9uZylfX2twcm9iZXNfdGV4dF9zdGFydCAmJgotCSAgICAgICBh ZGRyIDwgKHVuc2lnbmVkIGxvbmcpX19rcHJvYmVzX3RleHRfZW5kOworCXJldHVybiBTRUNUSU9O X1JBTkdFX0FERFJfV0lUSElOKGtwcm9iZXMsIGFkZHIpOwogfQogCiBib29sIHdpdGhpbl9rcHJv YmVfYmxhY2tsaXN0KHVuc2lnbmVkIGxvbmcgYWRkcikKQEAgLTIxMjksNiArMjEyOCw5IEBAIHN0 YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sga3Byb2JlX21vZHVsZV9uYiA9IHsKIGV4dGVybiB1 bnNpZ25lZCBsb25nIF9fc3RhcnRfa3Byb2JlX2JsYWNrbGlzdFtdOwogZXh0ZXJuIHVuc2lnbmVk IGxvbmcgX19zdG9wX2twcm9iZV9ibGFja2xpc3RbXTsKIAorLyogQWN0dWFsIGtwcm9iZXMgc2Vj dGlvbiByYW5nZSAqLworREVGSU5FX1NFQ1RJT05fUkFOR0Uoa3Byb2JlcywgLnRleHQpOworCiBz dGF0aWMgaW50IF9faW5pdCBpbml0X2twcm9iZXModm9pZCkKIHsKIAlpbnQgaSwgZXJyID0gMDsK ZGlmZiAtLWdpdCBhL3NjcmlwdHMvbW9kL21vZHBvc3QuYyBiL3NjcmlwdHMvbW9kL21vZHBvc3Qu YwppbmRleCAyOWM4OWE2YmFkM2QuLjJiNDQyMjM0YzY5YiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9t b2QvbW9kcG9zdC5jCisrKyBiL3NjcmlwdHMvbW9kL21vZHBvc3QuYwpAQCAtODk0LDcgKzg5NCw3 IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3NlY3Rpb24oY29uc3QgY2hhciAqbW9kbmFtZSwgc3RydWN0 IGVsZl9pbmZvICplbGYsCiAKICNkZWZpbmUgREFUQV9TRUNUSU9OUyAiLmRhdGEiLCAiLmRhdGEu cmVsIgogI2RlZmluZSBURVhUX1NFQ1RJT05TICIudGV4dCIsICIudGV4dC51bmxpa2VseSIsICIu c2NoZWQudGV4dCIsIFwKLQkJIi5rcHJvYmVzLnRleHQiLCAiLmNwdWlkbGUudGV4dCIKKwkJIi50 ZXh0Li5ybmcua3Byb2Jlcy5hbnkiLCAiLmNwdWlkbGUudGV4dCIKICNkZWZpbmUgT1RIRVJfVEVY VF9TRUNUSU9OUyAiLnJlZi50ZXh0IiwgIi5oZWFkLnRleHQiLCAiLnNwaW5sb2NrLnRleHQiLCBc CiAJCSIuZml4dXAiLCAiLmVudHJ5LnRleHQiLCAiLmV4Y2VwdGlvbi50ZXh0IiwgIi50ZXh0Lioi LCBcCiAJCSIuY29sZHRleHQiCmRpZmYgLS1naXQgYS9zY3JpcHRzL3JlY29yZG1jb3VudC5jIGIv c2NyaXB0cy9yZWNvcmRtY291bnQuYwppbmRleCBhZWIzNDIyMzE2N2MuLjZlOTVmM2Y4N2RiMSAx MDA2NDQKLS0tIGEvc2NyaXB0cy9yZWNvcmRtY291bnQuYworKysgYi9zY3JpcHRzL3JlY29yZG1j b3VudC5jCkBAIC00MTcsNyArNDE3LDcgQEAgaXNfbWNvdW50ZWRfc2VjdGlvbl9uYW1lKGNoYXIg Y29uc3QgKmNvbnN0IHR4dG5hbWUpCiAJCXN0cmNtcCgiLnNwaW5sb2NrLnRleHQiLCB0eHRuYW1l KSA9PSAwIHx8CiAJCXN0cmNtcCgiLmlycWVudHJ5LnRleHQiLCB0eHRuYW1lKSA9PSAwIHx8CiAJ CXN0cmNtcCgiLnNvZnRpcnFlbnRyeS50ZXh0IiwgdHh0bmFtZSkgPT0gMCB8fAotCQlzdHJjbXAo Ii5rcHJvYmVzLnRleHQiLCB0eHRuYW1lKSA9PSAwIHx8CisJCXN0cmNtcCgiLnRleHQuLnJuZy5r cHJvYmVzLmFueSIsIHR4dG5hbWUpID09IDAgfHwKIAkJc3RyY21wKCIuY3B1aWRsZS50ZXh0Iiwg dHh0bmFtZSkgPT0gMCB8fAogCQlzdHJjbXAoIi50ZXh0LnVubGlrZWx5IiwgdHh0bmFtZSkgPT0g MDsKIH0KZGlmZiAtLWdpdCBhL3NjcmlwdHMvcmVjb3JkbWNvdW50LnBsIGIvc2NyaXB0cy9yZWNv cmRtY291bnQucGwKaW5kZXggMGI2MDAyYjM2ZjIwLi4xNWUyZmEzN2M0ODkgMTAwNzU1Ci0tLSBh L3NjcmlwdHMvcmVjb3JkbWNvdW50LnBsCisrKyBiL3NjcmlwdHMvcmVjb3JkbWNvdW50LnBsCkBA IC0xMzUsNyArMTM1LDcgQEAgbXkgJXRleHRfc2VjdGlvbnMgPSAoCiAgICAgICIuc3BpbmxvY2su dGV4dCIgPT4gMSwKICAgICAgIi5pcnFlbnRyeS50ZXh0IiA9PiAxLAogICAgICAiLnNvZnRpcnFl bnRyeS50ZXh0IiA9PiAxLAotICAgICAiLmtwcm9iZXMudGV4dCIgPT4gMSwKKyAgICAgIi50ZXh0 Li5ybmcua3Byb2Jlcy5hbnkiID0+IDEsCiAgICAgICIuY3B1aWRsZS50ZXh0IiA9PiAxLAogICAg ICAiLnRleHQudW5saWtlbHkiID0+IDEsCiApOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kernel.org ([198.145.29.136]:53600 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936586AbdAIO7o (ORCPT ); Mon, 9 Jan 2017 09:59:44 -0500 From: "Luis R. Rodriguez" Subject: [PATCH v6 12/14] kprobes: port .kprobes.text to section range Date: Mon, 9 Jan 2017 06:58:30 -0800 Message-ID: <20170109145833.11502-13-mcgrof@kernel.org> In-Reply-To: <20170109145833.11502-1-mcgrof@kernel.org> References: <20161222023811.21246-1-mcgrof@kernel.org> <20170109145833.11502-1-mcgrof@kernel.org> Sender: linux-arch-owner@vger.kernel.org List-ID: To: hpa@zytor.com, acme@redhat.com, tglx@linutronix.de, mingo@redhat.com, jpoimboe@redhat.com, bp@alien8.de, npiggin@gmail.com, mhiramat@kernel.org, masami.hiramatsu.pt@hitachi.com, jbaron@akamai.com, heiko.carstens@de.ibm.com, ananth@linux.vnet.ibm.com, anil.s.keshavamurthy@intel.com, davem@davemloft.net, realmz6@gmail.com, dalias@libc.org, linux@arm.linux.org.uk Cc: x86@kernel.org, luto@amacapital.net, keescook@chromium.org, linux@roeck-us.net, torvalds@linux-foundation.org, gregkh@linuxfoundation.org, rusty@rustcorp.com.au, gnomes@lxorguk.ukuu.org.uk, alan@linux.intel.com, dwmw2@infradead.org, arnd@arndb.de, ming.lei@canonical.com, linux-arch@vger.kernel.org, benh@kernel.crashing.org, pebolle@tiscali.nl, fontana@sharpeleven.org, david.vrabel@citrix.com, konrad.wilk@oracle.com, mcb30@ipxe.org, jgross@suse.com, andrew.cooper3@citrix.com, andriy.shevchenko@linux.intel.com, paul.gortmaker@windriver.com, xen-devel@lists.xensource.com, ak@linux.intel.com, pali.rohar@gmail.com, dvhart@infradead.org, platform-driver-x86@vger.kernel.org, mmarek@suse.com, linux@rasmusvillemoes.dk, jkosina@suse.cz, korea.drzix@gmail.com, linux-kbuild@vger.kernel.org, tony.luck@intel.com, akpm@linux-foundation.org, linux-ia64@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, catalin.marinas@arm.com, will.deacon@arm.com, rostedt@goodmis.org, jani.nikula@intel.com, mchehab@osg.samsung.com, markus.heiser@darmarit.de, jolsa@kernel.org, msalter@redhat.com, chris@zankel.net, jcmvbkbc@gmail.com, linux-xtensa@linux-xtensa.org, adrian.hunter@intel.com, dsahern@gmail.com, namhyung@kernel.org, wangnan0@huawei.com, dmitry.torokhov@gmail.com, joro@8bytes.org, paulus@samba.org, mpe@ellerman.id.au, James.Bottomley@HansenPartnership.com, "Luis R. Rodriguez" Message-ID: <20170109145830.lGByP5UVu7nMlEnwwmdscmTHMpVXZZJopvfjI1X7OEo@z> kprobe makes use of two custom sections, each custom section is folded into one of the standard Linux sections types as follows, it currently relies on the linker script to fold the custom section onto the respective Linux section: type Linux-section custom section name begin end table .init.data _kprobe_blacklist __start_kprobe_blacklist __stop_kprobe_blacklist range .text .kprobes.text __kprobes_text_start __kprobes_text_end This ports the .kprobes.text custom section to the standard Linux ranges API allowing us remove all the custom kprobe section declarations from the linker script. Tested with CONFIG_KPROBES_SANITY_TEST, it passes with: Kprobe smoke test: started Kprobe smoke test: passed successfully Then tested CONFIG_SAMPLE_KPROBES on do_fork, and the kprobe bites and kicks as expected. Also ran ./ftracetest with no issues: sudo ./ftracetest === Ftrace unit tests === [1] Basic trace file check [PASS] [2] Basic test for tracers [PASS] [3] Basic trace clock test [PASS] [4] Basic event tracing check [PASS] [5] event tracing - enable/disable with event level files [PASS] [6] event tracing - restricts events based on pid [PASS] [7] event tracing - enable/disable with subsystem level files [PASS] [8] event tracing - enable/disable with top level files [PASS] [9] ftrace - function graph filters with stack tracer [PASS] [10] ftrace - function graph filters [PASS] [11] ftrace - function glob filters [PASS] [12] ftrace - function profiler with function tracing [PASS] [13] Test creation and deletion of trace instances while setting an event [PASS] [14] Test creation and deletion of trace instances [PASS] [15] Kprobe dynamic event - adding and removing [PASS] [16] Kprobe dynamic event - busy event check [PASS] [17] Kprobe dynamic event with arguments [PASS] [18] Kprobes event arguments with types [PASS] [19] Kprobe dynamic event with function tracer [PASS] [20] Kretprobe dynamic event with arguments [PASS] [21] event trigger - test event enable/disable trigger [PASS] [22] event trigger - test trigger filter [PASS] [23] event trigger - test histogram modifiers [PASS] [24] event trigger - test histogram trigger [PASS] [25] event trigger - test multiple histogram triggers [PASS] [26] event trigger - test snapshot-trigger [PASS] [27] event trigger - test stacktrace-trigger [PASS] [28] event trigger - test traceon/off trigger [PASS] v5: o Use ..rng.* instead of .rng.* as suggested by Nicholas Piggin. This is the typical way to avoid clash with compiler generated section. o Replace section macros with section names v4: o arm64 build fixes with allmodconfig o build fix suggested for avr32 with allnoconfig, otherwise we end up with: arch/avr32/kernel/built-in.o: In function `save_full_context_ex': (.ex.text+0x1c4): relocation truncated to fit: R_AVR32_16N_PCREL against symbol `debug_trampoline' defined in .text.rng.kprobes.any section in arch/avr32/kernel/built-in.o arch/avr32/kernel/built-in.o: In function `debug_exit_work': (.text.rng.kprobes.any+0xa8): relocation truncated to fit: R_AVR32_16N_PCREL against `.ex.text'+3aa make: *** [Makefile:953: vmlinux] Error 1 o open-code section use on scripts/ code -- folks to prefer the simplicity over dealing with having more tool code access kernel headers. o NOPE: include #include on compiler.h -- solves a few 0-day compilation issues v3: o after v2 arch/arm/kernel/vmlinux-xip.lds.S got kprobe support, this just removes the custom linker script reference to kprobes as that is no longer needed with linker tables. o split kprobe linker table and kprobe section ranges use into two separate patches. This should make it easier to review and also demos both distinct use types, one a linker table another a simple section range. v2: introduced this patch in this series Signed-off-by: Luis R. Rodriguez --- arch/arc/kernel/vmlinux.lds.S | 1 - arch/arm/kernel/entry-armv.S | 3 ++- arch/arm/kernel/vmlinux-xip.lds.S | 1 - arch/arm/kernel/vmlinux.lds.S | 1 - arch/arm64/kernel/armv8_deprecated.c | 1 + arch/arm64/kernel/probes/kprobes.c | 4 ++-- arch/arm64/kernel/vmlinux.lds.S | 1 - arch/avr32/kernel/entry-avr32b.S | 13 +++++++++++-- arch/avr32/kernel/vmlinux.lds.S | 1 - arch/blackfin/kernel/vmlinux.lds.S | 1 - arch/c6x/kernel/vmlinux.lds.S | 1 - arch/hexagon/kernel/vmlinux.lds.S | 1 - arch/ia64/kernel/jprobes.S | 3 ++- arch/ia64/kernel/vmlinux.lds.S | 1 - arch/ia64/lib/flush.S | 6 +++--- arch/metag/kernel/vmlinux.lds.S | 1 - arch/microblaze/kernel/vmlinux.lds.S | 1 - arch/mips/kernel/vmlinux.lds.S | 1 - arch/mn10300/kernel/vmlinux.lds.S | 1 - arch/nios2/kernel/vmlinux.lds.S | 1 - arch/openrisc/kernel/vmlinux.lds.S | 1 - arch/parisc/kernel/vmlinux.lds.S | 1 - arch/powerpc/include/asm/ppc_asm.h | 1 + arch/powerpc/kernel/vmlinux.lds.S | 1 - arch/s390/kernel/entry.S | 5 +++-- arch/s390/kernel/kprobes.c | 6 +++--- arch/s390/kernel/mcount.S | 3 ++- arch/s390/kernel/vmlinux.lds.S | 1 - arch/score/kernel/vmlinux.lds.S | 1 - arch/sh/kernel/vmlinux.lds.S | 1 - arch/sparc/kernel/vmlinux.lds.S | 1 - arch/sparc/mm/ultra.S | 3 ++- arch/tile/kernel/vmlinux.lds.S | 1 - arch/x86/kernel/kprobes/core.c | 11 +++++------ arch/x86/kernel/vmlinux.lds.S | 1 - include/asm-generic/kprobes.h | 3 ++- include/asm-generic/sections.h | 2 -- include/asm-generic/vmlinux.lds.h | 2 +- include/linux/kprobes.h | 3 +++ kernel/kprobes.c | 6 ++++-- scripts/mod/modpost.c | 2 +- scripts/recordmcount.c | 2 +- scripts/recordmcount.pl | 2 +- 43 files changed, 50 insertions(+), 54 deletions(-) diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S index f35ed578e007..dd05c86eb96e 100644 --- a/arch/arc/kernel/vmlinux.lds.S +++ b/arch/arc/kernel/vmlinux.lds.S @@ -91,7 +91,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.fixup) *(.gnu.warning) } diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 9f157e7c51e7..c455b491b6d3 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -34,6 +34,7 @@ #include "entry-header.S" #include #include +#include /* * Interrupt handling. @@ -83,7 +84,7 @@ .endm #ifdef CONFIG_KPROBES - .section .kprobes.text,"ax",%progbits + set_section_rng_type(.text, kprobes, ax, %progbits) #else .text #endif diff --git a/arch/arm/kernel/vmlinux-xip.lds.S b/arch/arm/kernel/vmlinux-xip.lds.S index 37b2a11af345..1a84f84b8165 100644 --- a/arch/arm/kernel/vmlinux-xip.lds.S +++ b/arch/arm/kernel/vmlinux-xip.lds.S @@ -103,7 +103,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.gnu.warning) *(.glue_7) *(.glue_7t) diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index f7f55df0bf7b..1e278e6c3506 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S @@ -114,7 +114,6 @@ SECTIONS CPUIDLE_TEXT LOCK_TEXT HYPERVISOR_TEXT - KPROBES_TEXT *(.gnu.warning) *(.glue_7) *(.glue_7t) diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c index ecf9298a12d4..35574b9fe6d4 100644 --- a/arch/arm64/kernel/armv8_deprecated.c +++ b/arch/arm64/kernel/armv8_deprecated.c @@ -21,6 +21,7 @@ #include #include #include +#include #define CREATE_TRACE_POINTS #include "trace-events-emulation.h" diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c index f0593c92279b..ec288dd165cb 100644 --- a/arch/arm64/kernel/probes/kprobes.c +++ b/arch/arm64/kernel/probes/kprobes.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -540,8 +541,7 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) bool arch_within_kprobe_blacklist(unsigned long addr) { - if ((addr >= (unsigned long)__kprobes_text_start && - addr < (unsigned long)__kprobes_text_end) || + if (SECTION_RANGE_ADDR_WITHIN(kprobes, addr) || (addr >= (unsigned long)__entry_text_start && addr < (unsigned long)__entry_text_end) || (addr >= (unsigned long)__idmap_text_start && diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S index b8deffa9e1bf..c68e5d528706 100644 --- a/arch/arm64/kernel/vmlinux.lds.S +++ b/arch/arm64/kernel/vmlinux.lds.S @@ -124,7 +124,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT HYPERVISOR_TEXT IDMAP_TEXT HIBERNATE_TEXT diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S index 7301f4806bbe..7b2a5c5ef047 100644 --- a/arch/avr32/kernel/entry-avr32b.S +++ b/arch/avr32/kernel/entry-avr32b.S @@ -23,6 +23,7 @@ #include #include #include +#include #ifdef CONFIG_PREEMPT # define preempt_stop mask_interrupts @@ -605,7 +606,11 @@ fault_exit_work: brcc fault_resume_user rjmp enter_monitor_mode - .section .kprobes.text, "ax", @progbits +#ifdef CONFIG_KPROBES + set_section_rng_type(.text, kprobes, ax, @progbits) +#else + .text +#endif .type handle_debug, @function handle_debug: sub sp, 4 /* r12_orig */ @@ -826,7 +831,11 @@ irq_level\level: IRQ_LEVEL 2 IRQ_LEVEL 3 - .section .kprobes.text, "ax", @progbits +#ifdef CONFIG_KPROBES + set_section_rng_type(.text, kprobes, ax, @progbits) +#else + .text +#endif .type enter_monitor_mode, @function enter_monitor_mode: /* diff --git a/arch/avr32/kernel/vmlinux.lds.S b/arch/avr32/kernel/vmlinux.lds.S index 17f2730eb497..04627a9c178e 100644 --- a/arch/avr32/kernel/vmlinux.lds.S +++ b/arch/avr32/kernel/vmlinux.lds.S @@ -49,7 +49,6 @@ SECTIONS _stext = .; *(.ex.text) *(.irq.text) - KPROBES_TEXT TEXT_TEXT SCHED_TEXT CPUIDLE_TEXT diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 68069a120055..93220ff65014 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S @@ -37,7 +37,6 @@ SECTIONS LOCK_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT - KPROBES_TEXT #ifdef CONFIG_ROMKERNEL __sinittext = .; INIT_TEXT diff --git a/arch/c6x/kernel/vmlinux.lds.S b/arch/c6x/kernel/vmlinux.lds.S index a1a5c166bc9b..a41d43b8254b 100644 --- a/arch/c6x/kernel/vmlinux.lds.S +++ b/arch/c6x/kernel/vmlinux.lds.S @@ -74,7 +74,6 @@ SECTIONS LOCK_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT - KPROBES_TEXT *(.fixup) *(.gnu.warning) } diff --git a/arch/hexagon/kernel/vmlinux.lds.S b/arch/hexagon/kernel/vmlinux.lds.S index ec87e67feb19..7e6f68584b55 100644 --- a/arch/hexagon/kernel/vmlinux.lds.S +++ b/arch/hexagon/kernel/vmlinux.lds.S @@ -52,7 +52,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.fixup) } _etext = .; diff --git a/arch/ia64/kernel/jprobes.S b/arch/ia64/kernel/jprobes.S index f69389c7be1d..71adc7132e22 100644 --- a/arch/ia64/kernel/jprobes.S +++ b/arch/ia64/kernel/jprobes.S @@ -46,11 +46,12 @@ */ #include #include +#include /* * void jprobe_break(void) */ - .section .kprobes.text, "ax" + set_section_rng(.text, kprobes, ax) ENTRY(jprobe_break) break.m __IA64_BREAK_JPROBE END(jprobe_break) diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index f89d20c97412..3ff6edf913d2 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S @@ -48,7 +48,6 @@ SECTIONS { SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.gnu.linkonce.t*) } diff --git a/arch/ia64/lib/flush.S b/arch/ia64/lib/flush.S index 9a5a2f9fad13..dec1b180d618 100644 --- a/arch/ia64/lib/flush.S +++ b/arch/ia64/lib/flush.S @@ -9,7 +9,7 @@ #include #include - +#include /* * flush_icache_range(start,end) @@ -21,7 +21,7 @@ * * Note: "in0" and "in1" are preserved for debugging purposes. */ - .section .kprobes.text,"ax" + set_section_rng(.text, kprobes, ax) GLOBAL_ENTRY(flush_icache_range) .prologue @@ -74,7 +74,7 @@ EXPORT_SYMBOL_GPL(flush_icache_range) * * Note: "in0" and "in1" are preserved for debugging purposes. */ - .section .kprobes.text,"ax" + set_section_rng(.text, kprobes, ax) GLOBAL_ENTRY(clflush_cache_range) .prologue diff --git a/arch/metag/kernel/vmlinux.lds.S b/arch/metag/kernel/vmlinux.lds.S index e6c700eaf207..b18386d2250f 100644 --- a/arch/metag/kernel/vmlinux.lds.S +++ b/arch/metag/kernel/vmlinux.lds.S @@ -23,7 +23,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.text.*) diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S index 289d0e7f3e3a..aadee2229ac6 100644 --- a/arch/microblaze/kernel/vmlinux.lds.S +++ b/arch/microblaze/kernel/vmlinux.lds.S @@ -35,7 +35,6 @@ SECTIONS { SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT . = ALIGN (4) ; diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index f0a0e6d62be3..44e21812c544 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S @@ -57,7 +57,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.text.*) diff --git a/arch/mn10300/kernel/vmlinux.lds.S b/arch/mn10300/kernel/vmlinux.lds.S index 2d5f1c3f1afb..552ef00a3da5 100644 --- a/arch/mn10300/kernel/vmlinux.lds.S +++ b/arch/mn10300/kernel/vmlinux.lds.S @@ -32,7 +32,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.fixup) *(.gnu.warning) } = 0xcb diff --git a/arch/nios2/kernel/vmlinux.lds.S b/arch/nios2/kernel/vmlinux.lds.S index 6a8045bb1a77..aae4a00c4056 100644 --- a/arch/nios2/kernel/vmlinux.lds.S +++ b/arch/nios2/kernel/vmlinux.lds.S @@ -41,7 +41,6 @@ SECTIONS LOCK_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT - KPROBES_TEXT } =0 _etext = .; diff --git a/arch/openrisc/kernel/vmlinux.lds.S b/arch/openrisc/kernel/vmlinux.lds.S index 00ddb7804be4..8ade6ccca6ac 100644 --- a/arch/openrisc/kernel/vmlinux.lds.S +++ b/arch/openrisc/kernel/vmlinux.lds.S @@ -57,7 +57,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.fixup) diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index 3d6ef1b29c6a..edbd6d9487dc 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S @@ -71,7 +71,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.text.do_softirq) diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h index 025833b8df9f..0846413b3a2e 100644 --- a/arch/powerpc/include/asm/ppc_asm.h +++ b/arch/powerpc/include/asm/ppc_asm.h @@ -9,6 +9,7 @@ #include #include #include +#include #ifdef __ASSEMBLY__ diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 8cd940c72895..2285664abb52 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -112,7 +112,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT MEM_KEEP(init.text) diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 97298c58b2be..847e2e1df89c 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S @@ -24,6 +24,7 @@ #include #include #include +#include __PT_R0 = __PT_GPRS __PT_R1 = __PT_GPRS + 8 @@ -169,7 +170,7 @@ _PIF_WORK = (_PIF_PER_TRAP) tm off+\addr, \mask .endm - .section .kprobes.text, "ax" + set_section_rng(.text, kprobes, ax) .Ldummy: /* * This nop exists only in order to avoid that __switch_to starts at @@ -986,7 +987,7 @@ ENTRY(restart_int_handler) brc 2,2b 3: j 3b - .section .kprobes.text, "ax" + set_section_rng(.text, kprobes, ax) #ifdef CONFIG_CHECK_STACK /* diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 84e0557b16fe..94a4918b5968 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c @@ -289,9 +289,9 @@ static void kprobe_reenter_check(struct kprobe_ctlblk *kcb, struct kprobe *p) case KPROBE_REENTER: default: /* - * A kprobe on the code path to single step an instruction - * is a BUG. The code path resides in the .kprobes.text - * section and is executed with interrupts disabled. + * A kprobe on the code path to single step an instruction is a + * BUG. The code path resides in the kprobes section range and + * is executed with interrupts disabled. */ printk(KERN_EMERG "Invalid kprobe detected at %p.\n", p->addr); dump_kprobe(p); diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S index 9a17e4475d27..9d76056609f7 100644 --- a/arch/s390/kernel/mcount.S +++ b/arch/s390/kernel/mcount.S @@ -10,8 +10,9 @@ #include #include #include +#include - .section .kprobes.text, "ax" + set_section_rng(.text, kprobes, ax) ENTRY(ftrace_stub) br %r14 diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 3667d20e997f..b2df6d9bab09 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S @@ -37,7 +37,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.fixup) diff --git a/arch/score/kernel/vmlinux.lds.S b/arch/score/kernel/vmlinux.lds.S index 4117890b1db1..a8b14f3ed474 100644 --- a/arch/score/kernel/vmlinux.lds.S +++ b/arch/score/kernel/vmlinux.lds.S @@ -42,7 +42,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT *(.text.*) *(.fixup) . = ALIGN (4) ; diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S index 5b9a3cc90c58..58d9ba796f7a 100644 --- a/arch/sh/kernel/vmlinux.lds.S +++ b/arch/sh/kernel/vmlinux.lds.S @@ -38,7 +38,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.fixup) diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 572db686f845..0ee41b0071e5 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S @@ -51,7 +51,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT *(.gnu.warning) diff --git a/arch/sparc/mm/ultra.S b/arch/sparc/mm/ultra.S index 5d2fd6cd3189..ee9f648549c0 100644 --- a/arch/sparc/mm/ultra.S +++ b/arch/sparc/mm/ultra.S @@ -16,6 +16,7 @@ #include #include #include +#include /* Basically, most of the Spitfire vs. Cheetah madness * has to do with the fact that Cheetah does not support @@ -185,7 +186,7 @@ __spitfire_flush_tlb_mm_slow: /* * The following code flushes one page_size worth. */ - .section .kprobes.text, "ax" + set_section_rng(.text, kprobes, ax) .align 32 .globl __flush_icache_page __flush_icache_page: /* %o0 = phys_page */ diff --git a/arch/tile/kernel/vmlinux.lds.S b/arch/tile/kernel/vmlinux.lds.S index e1baf094fba4..85d03ce6c0a0 100644 --- a/arch/tile/kernel/vmlinux.lds.S +++ b/arch/tile/kernel/vmlinux.lds.S @@ -44,7 +44,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT __fix_text_end = .; /* tile-cpack won't rearrange before this */ diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c index eb3509338ae0..95e4b172e923 100644 --- a/arch/x86/kernel/kprobes/core.c +++ b/arch/x86/kernel/kprobes/core.c @@ -580,9 +580,9 @@ static int reenter_kprobe(struct kprobe *p, struct pt_regs *regs, case KPROBE_REENTER: /* A probe has been hit in the codepath leading up to, or just * after, single-stepping of a probed instruction. This entire - * codepath should strictly reside in .kprobes.text section. - * Raise a BUG or we'll continue in an endless reentering loop - * and eventually a stack overflow. + * codepath should strictly reside in the kprobes section + * range. Raise a BUG or we'll continue in an endless + * reentering loop and eventually a stack overflow. */ printk(KERN_WARNING "Unrecoverable kprobe detected at %p.\n", p->addr); @@ -1133,10 +1133,9 @@ NOKPROBE_SYMBOL(longjmp_break_handler); bool arch_within_kprobe_blacklist(unsigned long addr) { - return (addr >= (unsigned long)__kprobes_text_start && - addr < (unsigned long)__kprobes_text_end) || + return (SECTION_RANGE_ADDR_WITHIN(kprobes, addr) || (addr >= (unsigned long)__entry_text_start && - addr < (unsigned long)__entry_text_end); + addr < (unsigned long)__entry_text_end)); } int __init arch_init_kprobes(void) diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index e79f15f108a8..4c16fadb9ac6 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S @@ -99,7 +99,6 @@ SECTIONS SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT - KPROBES_TEXT ENTRY_TEXT IRQENTRY_TEXT SOFTIRQENTRY_TEXT diff --git a/include/asm-generic/kprobes.h b/include/asm-generic/kprobes.h index 57af9f21d148..02a26b975187 100644 --- a/include/asm-generic/kprobes.h +++ b/include/asm-generic/kprobes.h @@ -3,6 +3,7 @@ #if defined(__KERNEL__) && !defined(__ASSEMBLY__) #ifdef CONFIG_KPROBES +#include /* * Blacklist ganerating macro. Specify functions which is not probed * by using this macro. @@ -13,7 +14,7 @@ static unsigned long __used \ _kbl_addr_##fname = (unsigned long)fname; # define NOKPROBE_SYMBOL(fname) __NOKPROBE_SYMBOL(fname) /* Use this to forbid a kprobes attach on very low level functions */ -# define __kprobes __attribute__((__section__(".kprobes.text"))) +# define __kprobes __LINUX_RANGE(.text, kprobes) # define nokprobe_inline __always_inline #else # define NOKPROBE_SYMBOL(fname) diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index b145ae8d9cbe..f3340f2772bb 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h @@ -26,7 +26,6 @@ * Following global variables are optional and may be unavailable on some * architectures and/or kernel configurations. * _text, _data - * __kprobes_text_start, __kprobes_text_end * __entry_text_start, __entry_text_end * __ctors_start, __ctors_end */ @@ -38,7 +37,6 @@ extern char _sinittext[], _einittext[]; extern char __start_data_ro_after_init[], __end_data_ro_after_init[]; extern char _end[]; extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[]; -extern char __kprobes_text_start[], __kprobes_text_end[]; extern char __entry_text_start[], __entry_text_end[]; extern char __start_rodata[], __end_rodata[]; diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 37b99537d5a9..499caf5b4361 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -471,7 +471,7 @@ #define KPROBES_TEXT \ ALIGN_FUNCTION(); \ VMLINUX_SYMBOL(__kprobes_text_start) = .; \ - *(.kprobes.text) \ + *(.text..rng.kprobes.any) \ VMLINUX_SYMBOL(__kprobes_text_end) = .; #define ENTRY_TEXT \ diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 985ed79ef431..445cc6fe7afa 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h @@ -43,6 +43,9 @@ #include #ifdef CONFIG_KPROBES +#include + +DECLARE_SECTION_RANGE(kprobes); /* kprobe_status settings */ #define KPROBE_HIT_ACTIVE 0x00000001 diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 43460104f119..82191f328e21 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -1328,8 +1328,7 @@ static int register_aggr_kprobe(struct kprobe *orig_p, struct kprobe *p) bool __weak arch_within_kprobe_blacklist(unsigned long addr) { /* The __kprobes marked functions and entry code must not be probed */ - return addr >= (unsigned long)__kprobes_text_start && - addr < (unsigned long)__kprobes_text_end; + return SECTION_RANGE_ADDR_WITHIN(kprobes, addr); } bool within_kprobe_blacklist(unsigned long addr) @@ -2129,6 +2128,9 @@ static struct notifier_block kprobe_module_nb = { extern unsigned long __start_kprobe_blacklist[]; extern unsigned long __stop_kprobe_blacklist[]; +/* Actual kprobes section range */ +DEFINE_SECTION_RANGE(kprobes, .text); + static int __init init_kprobes(void) { int i, err = 0; diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 29c89a6bad3d..2b442234c69b 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -894,7 +894,7 @@ static void check_section(const char *modname, struct elf_info *elf, #define DATA_SECTIONS ".data", ".data.rel" #define TEXT_SECTIONS ".text", ".text.unlikely", ".sched.text", \ - ".kprobes.text", ".cpuidle.text" + ".text..rng.kprobes.any", ".cpuidle.text" #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \ ".fixup", ".entry.text", ".exception.text", ".text.*", \ ".coldtext" diff --git a/scripts/recordmcount.c b/scripts/recordmcount.c index aeb34223167c..6e95f3f87db1 100644 --- a/scripts/recordmcount.c +++ b/scripts/recordmcount.c @@ -417,7 +417,7 @@ is_mcounted_section_name(char const *const txtname) strcmp(".spinlock.text", txtname) == 0 || strcmp(".irqentry.text", txtname) == 0 || strcmp(".softirqentry.text", txtname) == 0 || - strcmp(".kprobes.text", txtname) == 0 || + strcmp(".text..rng.kprobes.any", txtname) == 0 || strcmp(".cpuidle.text", txtname) == 0 || strcmp(".text.unlikely", txtname) == 0; } diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl index 0b6002b36f20..15e2fa37c489 100755 --- a/scripts/recordmcount.pl +++ b/scripts/recordmcount.pl @@ -135,7 +135,7 @@ my %text_sections = ( ".spinlock.text" => 1, ".irqentry.text" => 1, ".softirqentry.text" => 1, - ".kprobes.text" => 1, + ".text..rng.kprobes.any" => 1, ".cpuidle.text" => 1, ".text.unlikely" => 1, ); -- 2.11.0