Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753633AbaA0AeA (ORCPT ); Sun, 26 Jan 2014 19:34:00 -0500 Received: from multi.imgtec.com ([194.200.65.239]:6370 "EHLO multi.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753490AbaA0Adf (ORCPT ); Sun, 26 Jan 2014 19:33:35 -0500 From: Raghu Gandham To: Dmitry Torokhov CC: "aaro.koskinen@iki.fi" , "linux-input@vger.kernel.org" , "linux-mips@linux-mips.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] Input: i8042-io - Exclude mips platforms when allocating/deallocating IO regions. Thread-Topic: [PATCH] Input: i8042-io - Exclude mips platforms when allocating/deallocating IO regions. Thread-Index: AQHPGgBYG66oCx9jPE6mIF95ddBIvJqYEzKA//+fccA= Date: Mon, 27 Jan 2014 00:32:36 +0000 Message-ID: References: <1390676514-30880-1-git-send-email-raghu.gandham@imgtec.com> <20140126214952.GD18840@core.coreip.homeip.net> In-Reply-To: <20140126214952.GD18840@core.coreip.homeip.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [192.168.150.77] Content-Type: multipart/mixed; boundary="_002_E2EE47005FA75F44B80E1019FDD2EBBB6E38B06DBADAG02baimgtec_" MIME-Version: 1.0 X-SEF-Processed: 7_3_0_01192__2014_01_27_00_33_31 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --_002_E2EE47005FA75F44B80E1019FDD2EBBB6E38B06DBADAG02baimgtec_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Dmitry,=20 >=20 > On Sat, Jan 25, 2014 at 11:01:54AM -0800, Raghu Gandham wrote: > > The standard IO regions are already reserved by the platform code on > > most MIPS devices(malta, cobalt, sni). The Commit > > 197a1e96c8be5b6005145af3a4c0e45e2d651444 > > ("Input: i8042-io - fix up region handling on MIPS") introduced a bug > > on these MIPS platforms causing i8042 driver to fail when trying to res= erve > IO ports. > > Prior to the above mentioned commit request_region is skipped on MIPS > > but release_region is called. > > > > This patch reverts commit 197a1e96c8be5b6005145af3a4c0e45e2d651444 > and > > also avoids calling release_region for MIPS. >=20 > The problem is that IO regions are reserved on _most_, but not _all_ devi= ces. > MIPS should figure out what they want to do with i8042 registers and be > consistent on all devices. Please examine the attached patch which went upstream in April of 2004. Si= nce then it had been a convention not to call request_region routine in i8042 for MI= PS. The attached patch had a glitch that it guarded request_region in i8042-io.h bu= t skipped=20 guarding release_region in i8042-io.h. I believe that the issue Aaro saw wa= s due to this=20 glitch. Below is the error quoted in Aaro's commit message. [ 2.112000] Trying to free nonexistent resource <0000000000000060-00= 0000000000006f> My patch reinstates the convention followed on MIPS devices along with fixi= ng Aaro's issue. Thanks, Raghu --_002_E2EE47005FA75F44B80E1019FDD2EBBB6E38B06DBADAG02baimgtec_ Content-Type: text/plain; name="patch.txt" Content-Description: patch.txt Content-Disposition: attachment; filename="patch.txt"; size=10823; creation-date="Thu, 19 Dec 2013 18:38:15 GMT"; modification-date="Thu, 19 Dec 2013 18:17:04 GMT" Content-Transfer-Encoding: base64 Y29tbWl0IDJiNzA1OGIzMmMzZjE3MDZhODBkNTRiMDZhZDIzOGYzYzBiZDA5ZTkKQXV0aG9yOiBB bmRyZXcgTW9ydG9uIDxha3BtQG9zZGwub3JnPgpEYXRlOiAgIFdlZCBBcHIgMjEgMjM6Mzc6MTIg MjAwNCAtMDcwMAoKICAgIFtQQVRDSF0gTWVyZ2UgbWlzc2luZyBNSVBTIGk4MDQyIGJpdHMKICAg IAogICAgRnJvbTogUmFsZiBCYWVjaGxlIDxyYWxmQGxpbnV4LW1pcHMub3JnPgogICAgCiAgICAt IEFkZCBIUEMzIFBTLzIgZHJpdmVyIGJpdHMgZm9yIFNHSSBJUDIyIGFrYSBJbmR5CiAgICAtIEFk ZCBNYWNlIFBTLzIgZHJpdmVyIGJpdHMgZm9yIFNHSSBJUDMyIGFrYSBPMgogICAgLSBBZGQgUjQw MzAgUFMvMiBkcml2ZXIgYml0cyBmb3IgSmF6eiBmYW1pbHkKICAgIC0gRG9uJ3QgcmVnaXN0ZXIg SS9PIHBvcnRzIHdoZXJlIHdlJ3JlIHVzaW5nIHRoZSBJL08gcG9ydCBtZW1vcnkgd2luZG93CiAg ICAgICB0byBhY2Nlc3MgdGhlIGk4MDQyIHJlZ2lzdGVycwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW5wdXQvc2VyaW8vS2NvbmZpZyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vS2NvbmZpZwppbmRleCAx MGE1NGRkLi5jYWNkMWYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3NlcmlvL0tjb25maWcK KysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9LY29uZmlnCkBAIC0xMzAsMyArMTMwLDEzIEBAIGNv bmZpZyBTRVJJT19QQ0lQUzIKIAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVs ZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcGNpcHMyLgor Citjb25maWcgU0VSSU9fTUFDRVBTMgorCXRyaXN0YXRlICJTR0kgTzIgTUFDRSBQUy8yIGNvbnRy b2xsZXIiCisJZGVwZW5kcyBvbiBTR0lfSVAzMiAmJiBTRVJJTworCWhlbHAKKwkgIFNheSBZIGhl cmUgaWYgeW91IGhhdmUgU0dJIE8yIHdvcmtzdGF0aW9uIGFuZCB3YW50IHRvIHVzZSBpdHMKKwkg IFBTLzIgcG9ydHMuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNo b29zZSBNIGhlcmU6IHRoZQorCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIG1hY2VwczIuCmRpZmYg LS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL01ha2VmaWxlIGIvZHJpdmVycy9pbnB1dC9zZXJp by9NYWtlZmlsZQppbmRleCAyZWI4NmViLi5hNDdkZWMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lu cHV0L3NlcmlvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vTWFrZWZpbGUKQEAg LTE2LDMgKzE2LDQgQEAgb2JqLSQoQ09ORklHX1NFUklPX1E0MEtCRCkJKz0gcTQwa2JkLm8KIG9i ai0kKENPTkZJR19TRVJJT185OEtCRCkJKz0gOThrYmQtaW8ubwogb2JqLSQoQ09ORklHX1NFUklP X0dTQ1BTMikJKz0gZ3NjcHMyLm8KIG9iai0kKENPTkZJR19TRVJJT19QQ0lQUzIpCSs9IHBjaXBz Mi5vCitvYmotJChDT05GSUdfU0VSSU9fTUFDRVBTMikJKz0gbWFjZXBzMi5vCmRpZmYgLS1naXQg YS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLWlvLmggYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4 MDQyLWlvLmgKaW5kZXggNmI0MzRmOC4uOWIzNjQ4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1 dC9zZXJpby9pODA0Mi1pby5oCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDItaW8uaApA QCAtNjksNyArNjksNyBAQCBzdGF0aWMgaW5saW5lIGludCBpODA0Ml9wbGF0Zm9ybV9pbml0KHZv aWQpCiAgKiBPbiBpeDg2IHBsYXRmb3JtcyB0b3VjaGluZyB0aGUgaTgwNDIgZGF0YSByZWdpc3Rl ciByZWdpb24gY2FuIGRvIHJlYWxseQogICogYmFkIHRoaW5ncy4gQmVjYXVzZSBvZiB0aGlzIHRo ZSByZWdpb24gaXMgYWx3YXlzIHJlc2VydmVkIG9uIGl4ODYgYm94ZXMuCiAgKi8KLSNpZiAhZGVm aW5lZChfX2kzODZfXykgJiYgIWRlZmluZWQoX19zaF9fKSAmJiAhZGVmaW5lZChfX2FscGhhX18p ICYmICFkZWZpbmVkKF9feDg2XzY0X18pCisjaWYgIWRlZmluZWQoX19pMzg2X18pICYmICFkZWZp bmVkKF9fc2hfXykgJiYgIWRlZmluZWQoX19hbHBoYV9fKSAmJiAhZGVmaW5lZChfX3g4Nl82NF9f KSAmJiAhZGVmaW5lZChfX21pcHNfXykKIAlpZiAoIXJlcXVlc3RfcmVnaW9uKEk4MDQyX0RBVEFf UkVHLCAxNiwgImk4MDQyIikpCiAJCXJldHVybiAtMTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9pbnB1dC9zZXJpby9pODA0Mi1pcDIyaW8uaCBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgw NDItaXAyMmlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODYzYjljOQot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDItaXAyMmlvLmgKQEAg LTAsMCArMSw3NiBAQAorI2lmbmRlZiBfSTgwNDJfSVAyMl9ICisjZGVmaW5lIF9JODA0Ml9JUDIy X0gKKworI2luY2x1ZGUgPGFzbS9zZ2kvaW9jLmg+CisjaW5jbHVkZSA8YXNtL3NnaS9pcDIyLmg+ CisKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKy8qCisgKiBOYW1lcy4KKyAqLworCisj ZGVmaW5lIEk4MDQyX0tCRF9QSFlTX0RFU0MgImhwYzNwczIvc2VyaW8wIgorI2RlZmluZSBJODA0 Ml9BVVhfUEhZU19ERVNDICJocGMzcHMyL3NlcmlvMSIKKyNkZWZpbmUgSTgwNDJfTVVYX1BIWVNf REVTQyAiaHBjM3BzMi9zZXJpbyVkIgorCisvKgorICogSVJRcy4KKyAqLworCisjZGVmaW5lIEk4 MDQyX0tCRF9JUlEgU0dJX0tFWUJEX0lSUQorI2RlZmluZSBJODA0Ml9BVVhfSVJRIFNHSV9LRVlC RF9JUlEKKworLyoKKyAqIFJlZ2lzdGVyIG51bWJlcnMuCisgKi8KKworI2RlZmluZSBJODA0Ml9D T01NQU5EX1JFRwkoKHVuc2lnbmVkIGxvbmcpJnNnaW9jLT5rYmRtb3VzZS5jb21tYW5kKQorI2Rl ZmluZSBJODA0Ml9TVEFUVVNfUkVHCSgodW5zaWduZWQgbG9uZykmc2dpb2MtPmtiZG1vdXNlLmNv bW1hbmQpCisjZGVmaW5lIEk4MDQyX0RBVEFfUkVHCQkoKHVuc2lnbmVkIGxvbmcpJnNnaW9jLT5r YmRtb3VzZS5kYXRhKQorCitzdGF0aWMgaW5saW5lIGludCBpODA0Ml9yZWFkX2RhdGEodm9pZCkK K3sKKwlyZXR1cm4gc2dpb2MtPmtiZG1vdXNlLmRhdGE7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50 IGk4MDQyX3JlYWRfc3RhdHVzKHZvaWQpCit7CisJcmV0dXJuIHNnaW9jLT5rYmRtb3VzZS5jb21t YW5kOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaTgwNDJfd3JpdGVfZGF0YShpbnQgdmFsKQor eworCXNnaW9jLT5rYmRtb3VzZS5kYXRhID0gdmFsOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQg aTgwNDJfd3JpdGVfY29tbWFuZChpbnQgdmFsKQoreworCXNnaW9jLT5rYmRtb3VzZS5jb21tYW5k ID0gdmFsOworfQorCitzdGF0aWMgaW5saW5lIGludCBpODA0Ml9wbGF0Zm9ybV9pbml0KHZvaWQp Cit7CisjaWYgMAorCS8qIFhYWCBzZ2lfa2ggaXMgYSB2aXJ0dWFsIGFkZHJlc3MgKi8KKwlpZiAo IXJlcXVlc3RfbWVtX3JlZ2lvbihzZ2lfa2gsIHNpemVvZihzdHJ1Y3QgaHBjX2tleWIpLCAiaTgw NDIiKSkKKwkJcmV0dXJuIDE7CisjZW5kaWYKKworCWk4MDQyX3Jlc2V0ID0gMTsKKworCXJldHVy biAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaTgwNDJfcGxhdGZvcm1fZXhpdCh2b2lkKQor eworI2lmIDAKKwlyZWxlYXNlX21lbV9yZWdpb24oSkFaWl9LRVlCT0FSRF9BRERSRVNTLCBzaXpl b2Yoc3RydWN0IGhwY19rZXliKSk7CisjZW5kaWYKK30KKworI2VuZGlmIC8qIF9JODA0Ml9JUDIy X0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDItamF6emlvLmggYi9k cml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLWphenppby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjVjMjBhYjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2lucHV0L3Nl cmlvL2k4MDQyLWphenppby5oCkBAIC0wLDAgKzEsNjkgQEAKKyNpZm5kZWYgX0k4MDQyX0pBWlpf SAorI2RlZmluZSBfSTgwNDJfSkFaWl9ICisKKyNpbmNsdWRlIDxhc20vamF6ei5oPgorCisvKgor ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisvKgorICogTmFtZXMuCisgKi8KKworI2RlZmluZSBJ ODA0Ml9LQkRfUEhZU19ERVNDICJSNDAzMC9zZXJpbzAiCisjZGVmaW5lIEk4MDQyX0FVWF9QSFlT X0RFU0MgIlI0MDMwL3NlcmlvMSIKKyNkZWZpbmUgSTgwNDJfTVVYX1BIWVNfREVTQyAiUjQwMzAv c2VyaW8lZCIKKworLyoKKyAqIElSUXMuCisgKi8KKworI2RlZmluZSBJODA0Ml9LQkRfSVJRIEpB WlpfS0VZQk9BUkRfSVJRCisjZGVmaW5lIEk4MDQyX0FVWF9JUlEgSkFaWl9NT1VTRV9JUlEKKwor I2RlZmluZSBJODA0Ml9DT01NQU5EX1JFRwkoKHVuc2lnbmVkIGxvbmcpJmphenpfa2gtPmNvbW1h bmQpCisjZGVmaW5lIEk4MDQyX1NUQVRVU19SRUcJKCh1bnNpZ25lZCBsb25nKSZqYXp6X2toLT5j b21tYW5kKQorI2RlZmluZSBJODA0Ml9EQVRBX1JFRwkJKCh1bnNpZ25lZCBsb25nKSZqYXp6X2to LT5kYXRhKQorCitzdGF0aWMgaW5saW5lIGludCBpODA0Ml9yZWFkX2RhdGEodm9pZCkKK3sKKwly ZXR1cm4gamF6el9raC0+ZGF0YTsKK30KKworc3RhdGljIGlubGluZSBpbnQgaTgwNDJfcmVhZF9z dGF0dXModm9pZCkKK3sKKwlyZXR1cm4gamF6el9raC0+Y29tbWFuZDsKK30KKworc3RhdGljIGlu bGluZSB2b2lkIGk4MDQyX3dyaXRlX2RhdGEoaW50IHZhbCkKK3sKKwlqYXp6X2toLT5kYXRhID0g dmFsOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaTgwNDJfd3JpdGVfY29tbWFuZChpbnQgdmFs KQoreworCWphenpfa2gtPmNvbW1hbmQgPSB2YWw7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGk4 MDQyX3BsYXRmb3JtX2luaXQodm9pZCkKK3sKKyNpZiAwCisJLyogWFhYIEpBWlpfS0VZQk9BUkRf QUREUkVTUyBpcyBhIHZpcnR1YWwgYWRkcmVzcyAqLworCWlmICghcmVxdWVzdF9tZW1fcmVnaW9u KEpBWlpfS0VZQk9BUkRfQUREUkVTUywgMiwgImk4MDQyIikpCisJCXJldHVybiAxOworI2VuZGlm CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGk4MDQyX3BsYXRmb3JtX2V4 aXQodm9pZCkKK3sKKyNpZiAwCisJcmVsZWFzZV9tZW1fcmVnaW9uKEpBWlpfS0VZQk9BUkRfQURE UkVTUywgMik7CisjZW5kaWYKK30KKworI2VuZGlmIC8qIF9JODA0Ml9KQVpaX0ggKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuaCBiL2RyaXZlcnMvaW5wdXQvc2VyaW8v aTgwNDIuaAppbmRleCAzZDU5ZWIyLi5mMGY2Mzc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0 L3NlcmlvL2k4MDQyLmgKKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5oCkBAIC0xLDYg KzEsOCBAQAogI2lmbmRlZiBfSTgwNDJfSAogI2RlZmluZSBfSTgwNDJfSAogCisjaW5jbHVkZSA8 bGludXgvY29uZmlnLmg+CisKIC8qCiAgKiAgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgVm9qdGVj aCBQYXZsaWsKICAqCkBAIC0xMyw3ICsxNSwxMSBAQAogICogQXJjaC1kZXBlbmRlbnQgaW5saW5l IGZ1bmN0aW9ucyBhbmQgZGVmaW5lcy4KICAqLwogCi0jaWYgZGVmaW5lZChDT05GSUdfUFBDKQor I2lmIGRlZmluZWQoQ09ORklHX01JUFNfSkFaWikKKyNpbmNsdWRlICJpODA0Mi1qYXp6aW8uaCIK KyNlbGlmIGRlZmluZWQoQ09ORklHX1NHSV9JUDIyKQorI2luY2x1ZGUgImk4MDQyLWlwMjJpby5o IgorI2VsaWYgZGVmaW5lZChDT05GSUdfUFBDKQogI2luY2x1ZGUgImk4MDQyLXBwY2lvLmgiCiAj ZWxpZiBkZWZpbmVkKENPTkZJR19TUEFSQzMyKSB8fCBkZWZpbmVkKENPTkZJR19TUEFSQzY0KQog I2luY2x1ZGUgImk4MDQyLXNwYXJjaW8uaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvc2Vy aW8vbWFjZXBzMi5jIGIvZHJpdmVycy9pbnB1dC9zZXJpby9tYWNlcHMyLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdkYjFkZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvaW5wdXQvc2VyaW8vbWFjZXBzMi5jCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogU0dJIE8y IE1BQ0UgUFMyIGNvbnRyb2xsZXIgZHJpdmVyIGZvciBsaW51eAorICoKKyAqIENvcHlyaWdodCAo QykgMjAwMiBWaXZpZW4gQ2hhcHBlbGllcgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBh cworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqLworI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRl IDxsaW51eC9zZXJpby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGlu dXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGlu dXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9z bGFiLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKworI2luY2x1ZGUgPGFzbS9pby5o PgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVk ZSA8YXNtL2lwMzIvbWFjZS5oPgorI2luY2x1ZGUgPGFzbS9pcDMyL2lwMzJfaW50cy5oPgorCitN T0RVTEVfQVVUSE9SKCJWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgt bWlwcy5vcmciKTsKK01PRFVMRV9ERVNDUklQVElPTigiU0dJIE8yIE1BQ0UgUFMyIGNvbnRyb2xs ZXIgZHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKKyNkZWZpbmUgTUFDRV9QUzJf VElNRU9VVCAxMDAwMCAvKiBpbiA1MHVzIHVuaXQgKi8KKworI2RlZmluZSBQUzJfU1RBVFVTX0NM T0NLX1NJR05BTCAgQklUKDApIC8qIGV4dGVybmFsIGNsb2NrIHNpZ25hbCAqLworI2RlZmluZSBQ UzJfU1RBVFVTX0NMT0NLX0lOSElCSVQgQklUKDEpIC8qIGNsa2VuIG91dHB1dCBzaWduYWwgKi8K KyNkZWZpbmUgUFMyX1NUQVRVU19UWF9JTlBST0dSRVNTIEJJVCgyKSAvKiB0cmFuc21pc3Npb24g aW4gcHJvZ3Jlc3MgKi8KKyNkZWZpbmUgUFMyX1NUQVRVU19UWF9FTVBUWSAgICAgIEJJVCgzKSAv KiBlbXB0eSB0cmFuc21pdCBidWZmZXIgKi8KKyNkZWZpbmUgUFMyX1NUQVRVU19SWF9GVUxMICAg ICAgIEJJVCg0KSAvKiBmdWxsIHJlY2VpdmUgYnVmZmVyICovCisjZGVmaW5lIFBTMl9TVEFUVVNf UlhfSU5QUk9HUkVTUyBCSVQoNSkgLyogcmVjZXB0aW9uIGluIHByb2dyZXNzICovCisjZGVmaW5l IFBTMl9TVEFUVVNfRVJST1JfUEFSSVRZICBCSVQoNikgLyogcGFyaXR5IGVycm9yICovCisjZGVm aW5lIFBTMl9TVEFUVVNfRVJST1JfRlJBTUlORyBCSVQoNykgLyogZnJhbWluZyBlcnJvciAqLwor CisjZGVmaW5lIFBTMl9DT05UUk9MX1RYX0NMT0NLX0RJU0FCTEUgQklUKDApIC8qIGluaGliaXQg Y2xvY2sgc2lnbmFsIGFmdGVyIFRYICovCisjZGVmaW5lIFBTMl9DT05UUk9MX1RYX0VOQUJMRSAg ICAgICAgQklUKDEpIC8qIHRyYW5zbWl0IGVuYWJsZSAqLworI2RlZmluZSBQUzJfQ09OVFJPTF9U WF9JTlRfRU5BQkxFICAgIEJJVCgyKSAvKiBlbmFibGUgdHJhbnNtaXQgaW50ZXJydXB0ICovCisj ZGVmaW5lIFBTMl9DT05UUk9MX1JYX0lOVF9FTkFCTEUgICAgQklUKDMpIC8qIGVuYWJsZSByZWNl aXZlIGludGVycnVwdCAqLworI2RlZmluZSBQUzJfQ09OVFJPTF9SWF9DTE9DS19FTkFCTEUgIEJJ VCg0KSAvKiBwYXVzZSByZWNlcHRpb24gaWYgc2V0IHRvIDAgKi8KKyNkZWZpbmUgUFMyX0NPTlRS T0xfUkVTRVQgICAgICAgICAgICBCSVQoNSkgLyogcmVzZXQgKi8KKworCitzdHJ1Y3QgbWFjZXBz Ml9kYXRhIHsKKwlzdHJ1Y3QgbWFjZV9wczJwb3J0ICpwb3J0OworCWludCBpcnE7Cit9OworCitz dGF0aWMgaW50IG1hY2VwczJfd3JpdGUoc3RydWN0IHNlcmlvICpkZXYsIHVuc2lnbmVkIGNoYXIg dmFsKQoreworCXN0cnVjdCBtYWNlX3BzMnBvcnQgKnBvcnQgPSAoKHN0cnVjdCBtYWNlcHMyX2Rh dGEgKilkZXYtPmRyaXZlciktPnBvcnQ7CisJdW5zaWduZWQgaW50IHRpbWVvdXQgPSBNQUNFX1BT Ml9USU1FT1VUOworCisJZG8geworCQlpZiAobWFjZV9yZWFkKHBvcnQtPnN0YXR1cykgJiBQUzJf U1RBVFVTX1RYX0VNUFRZKSB7CisJCQltYWNlX3dyaXRlKHZhbCwgcG9ydC0+dHgpOworCQkJcmV0 dXJuIDA7CisJCX0KKwkJdWRlbGF5KDUwKTsKKwl9IHdoaWxlICh0aW1lb3V0LS0pOworCisJcmV0 dXJuIC0xOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgbWFjZXBzMl9pbnRlcnJ1cHQoaW50IGly cSwgdm9pZCAqZGV2X2lkLAorCQkJCSAgICAgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3Ry dWN0IHNlcmlvICpkZXYgPSBkZXZfaWQ7CisJc3RydWN0IG1hY2VfcHMycG9ydCAqcG9ydCA9ICgo c3RydWN0IG1hY2VwczJfZGF0YSAqKWRldi0+ZHJpdmVyKS0+cG9ydDsKKwl1bnNpZ25lZCBpbnQg Ynl0ZTsKKworCWlmIChtYWNlX3JlYWQocG9ydC0+c3RhdHVzKSAmIFBTMl9TVEFUVVNfUlhfRlVM TCkgeworCQlieXRlID0gbWFjZV9yZWFkKHBvcnQtPnJ4KTsKKwkJc2VyaW9faW50ZXJydXB0KGRl diwgYnl0ZSAmIDB4ZmYsIDAsIHJlZ3MpOworICAgICAgICB9CisKKwlyZXR1cm4gSVJRX0hBTkRM RUQ7Cit9CisKK3N0YXRpYyBpbnQgbWFjZXBzMl9vcGVuKHN0cnVjdCBzZXJpbyAqZGV2KQorewor CXN0cnVjdCBtYWNlcHMyX2RhdGEgKmRhdGEgPSAoc3RydWN0IG1hY2VwczJfZGF0YSAqKWRldi0+ ZHJpdmVyOworCisJaWYgKHJlcXVlc3RfaXJxKGRhdGEtPmlycSwgbWFjZXBzMl9pbnRlcnJ1cHQs IDAsICJQUy8yIHBvcnQiLCBkZXYpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGFs bG9jYXRlIFBTLzIgSVJRXG4iKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisKKwkvKiBSZXNldCBw b3J0ICovCisJbWFjZV93cml0ZShQUzJfQ09OVFJPTF9UWF9DTE9DS19ESVNBQkxFIHwgUFMyX0NP TlRST0xfUkVTRVQsCisJCSAgIGRhdGEtPnBvcnQtPmNvbnRyb2wpOworCXVkZWxheSgxMDApOwor CisgICAgICAgIC8qIEVuYWJsZSBpbnRlcnJ1cHRzICovCisJbWFjZV93cml0ZShQUzJfQ09OVFJP TF9SWF9DTE9DS19FTkFCTEUgfCBQUzJfQ09OVFJPTF9UWF9FTkFCTEUgfAorCQkgICBQUzJfQ09O VFJPTF9SWF9JTlRfRU5BQkxFLCBkYXRhLT5wb3J0LT5jb250cm9sKTsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgdm9pZCBtYWNlcHMyX2Nsb3NlKHN0cnVjdCBzZXJpbyAqZGV2KQoreworCXN0 cnVjdCBtYWNlcHMyX2RhdGEgKmRhdGEgPSAoc3RydWN0IG1hY2VwczJfZGF0YSAqKWRldi0+ZHJp dmVyOworCisJbWFjZV93cml0ZShQUzJfQ09OVFJPTF9UWF9DTE9DS19ESVNBQkxFIHwgUFMyX0NP TlRST0xfUkVTRVQsCisJCSAgIGRhdGEtPnBvcnQtPmNvbnRyb2wpOworCXVkZWxheSgxMDApOwor CWZyZWVfaXJxKGRhdGEtPmlycSwgZGV2KTsKK30KKworc3RhdGljIHN0cnVjdCBtYWNlcHMyX2Rh dGEgcG9ydDBfZGF0YSwgcG9ydDFfZGF0YTsKKworc3RhdGljIHN0cnVjdCBzZXJpbyBtYWNlcHMy X3BvcnQwID0KK3sKKwkudHlwZQk9IFNFUklPXzgwNDIsCisJLm9wZW4JPSBtYWNlcHMyX29wZW4s CisJLmNsb3NlCT0gbWFjZXBzMl9jbG9zZSwKKwkud3JpdGUJPSBtYWNlcHMyX3dyaXRlLAorCS5u YW1lCT0gIk1BQ0UgUFMvMiBwb3J0MCIsCisJLnBoeXMJPSAibWFjZS9zZXJpbzAiLAorCS5kcml2 ZXIgPSAmcG9ydDBfZGF0YSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc2VyaW8gbWFjZXBzMl9wb3J0 MSA9Cit7CisJLnR5cGUJPSBTRVJJT184MDQyLAorCS5vcGVuCT0gbWFjZXBzMl9vcGVuLAorCS5j bG9zZQk9IG1hY2VwczJfY2xvc2UsCisJLndyaXRlCT0gbWFjZXBzMl93cml0ZSwKKwkubmFtZQk9 ICJNQUNFIFBTLzIgcG9ydDEiLAorCS5waHlzCT0gIm1hY2Uvc2VyaW8xIiwKKwkuZHJpdmVyID0g JnBvcnQxX2RhdGEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBtYWNlcHMyX2luaXQodm9pZCkK K3sKKwlwb3J0MF9kYXRhLnBvcnQgPSAmbWFjZS0+cGVyaWYucHMyLmtleWI7CisJcG9ydDBfZGF0 YS5pcnEgID0gTUFDRUlTQV9LRVlCX0lSUTsKKwlwb3J0MV9kYXRhLnBvcnQgPSAmbWFjZS0+cGVy aWYucHMyLm1vdXNlOworCXBvcnQxX2RhdGEuaXJxICA9IE1BQ0VJU0FfTU9VU0VfSVJROworCXNl cmlvX3JlZ2lzdGVyX3BvcnQoJm1hY2VwczJfcG9ydDApOworCXNlcmlvX3JlZ2lzdGVyX3BvcnQo Jm1hY2VwczJfcG9ydDEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBt YWNlcHMyX2V4aXQodm9pZCkKK3sKKwlzZXJpb191bnJlZ2lzdGVyX3BvcnQoJm1hY2VwczJfcG9y dDApOworCXNlcmlvX3VucmVnaXN0ZXJfcG9ydCgmbWFjZXBzMl9wb3J0MSk7Cit9CisKK21vZHVs ZV9pbml0KG1hY2VwczJfaW5pdCk7Cittb2R1bGVfZXhpdChtYWNlcHMyX2V4aXQpOwo= --_002_E2EE47005FA75F44B80E1019FDD2EBBB6E38B06DBADAG02baimgtec_-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/