From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Laufer Date: Tue, 21 Mar 2000 01:53:10 +0000 Subject: Soundblaster ISAPnP cleanup patch MIME-Version: 1 Content-Type: multipart/mixed; boundary="-1463811838-803737336-953603590=:244" Message-Id: List-Id: To: linux-sound@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---1463811838-803737336-953603590=:244 Content-Type: TEXT/PLAIN; charset=US-ASCII This patch cleans up the ISAPnP detection code in the soundblaster driver. If you use the soundblaster driver please test this patch and let me know the results. Patch applies to 2.3.99pre1 through pre3-3 (which was the latest as of this writing). Thanks in advance, Paul Laufer ---1463811838-803737336-953603590=:244 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sb_card.99pre.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="sb_card.99pre.patch" LS0tIGxpbnV4LWRldmVsLXZpcmdpbi9kcml2ZXJzL3NvdW5kL3NiX2NhcmQu YwlNb24gTWFyIDEzIDEyOjI5OjAwIDIwMDANCisrKyBsaW51eC9kcml2ZXJz L3NvdW5kL3NiX2NhcmQuYwlUaHUgTWFyIDE2IDEyOjQ4OjUzIDIwMDANCkBA IC0yOSw2ICsyOSw4IEBADQogICogMTMtMDItMjAwMCBIb3BlZnVsbHkgZml4 ZWQgYXdlL3NiMTYgcmVsYXRlZCBidWdzLCBjb2RlIGNsZWFudXANCiAgKiAg QWxlc3NhbmRybyBadW1tbyA8YXp1bW1vQGl0YS5mbGFzaG5ldC5pdD4NCiAg Kg0KKyAqIDEzLTAzLTIwMDAgVW5pZmllZCBpc2FwbnAgY2FyZCBkZXRlY3Rp b24sIGNvZGUgY2xlYW51cC4NCisgKiAgUGF1bCBMYXVmZXIgPHBlbGF1ZmVy QGNzdXBvbW9uYS5lZHU+DQogICovDQogDQogI2luY2x1ZGUgPGxpbnV4L2Nv bmZpZy5oPg0KQEAgLTQyLDYgKzQ0LDcgQEANCiANCiAjaW5jbHVkZSAic2Jf bWl4ZXIuaCINCiAjaW5jbHVkZSAic2IuaCINCisjaW5jbHVkZSAic2JfY2Fy ZC5oIg0KIA0KIHN0YXRpYyBpbnQgc2JtcHUgPSAwOw0KIA0KQEAgLTIwNSw2 ICsyMDgsNDIgQEANCiANCiAjaWYgZGVmaW5lZCBDT05GSUdfSVNBUE5QIHx8 IGRlZmluZWQgQ09ORklHX0lTQVBOUF9NT0RVTEUNCiANCitzdGF0aWMgc3Ry dWN0IHsgdW5zaWduZWQgc2hvcnQgdmVuZG9yLCBkZXZpY2UsIGZ1bmN0aW9u OyBzdHJ1Y3QgcGNpX2RldiAqICgqaW5pdGZ1bmMpKHN0cnVjdCBwY2lfYnVz ICosIHN0cnVjdCBhZGRyZXNzX2luZm8gKiwgc3RydWN0IGFkZHJlc3NfaW5m byAqLCBpbnQpOyBjaGFyICpuYW1lOyB9DQoraXNhcG5wX3NiX2xpc3RbXSBf X2luaXRkYXRhID0gew0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyks IElTQVBOUF9ERVZJQ0UoMHgwMDI0KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDAz MSksICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBCbGFzdGVyIDE2IiB9LA0K Kwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0Uo MHgwMDI2KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDAzMSksICZzYl9pbml0X2dl bmVyaWMsICJTb3VuZCBCbGFzdGVyIDE2IiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0UoMHgwMDI3KSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MDAzMSksICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBC bGFzdGVyIDE2IiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyks IElTQVBOUF9ERVZJQ0UoMHgwMDI5KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDAz MSksICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBCbGFzdGVyIDE2IiB9LA0K Kwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0Uo MHgwMDJiKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDAzMSksICZzYl9pbml0X2dl bmVyaWMsICJTb3VuZCBCbGFzdGVyIDE2IiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0UoMHgwMDUxKSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MDAwMSksICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBC bGFzdGVyIFZpYnJhMTZTIiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ1Qn LCdMJyksIElTQVBOUF9ERVZJQ0UoMHgwMDcwKSwgSVNBUE5QX0ZVTkNUSU9O KDB4MDAwMSksICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBCbGFzdGVyIFZp YnJhMTZDIiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElT QVBOUF9ERVZJQ0UoMHgwMDgwKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDA0MSks ICZzYl9pbml0X2dlbmVyaWMsICJTb3VuZCBCbGFzdGVyIFZpYnJhMTZDTCIg fSwNCisJe0lTQVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfREVW SUNFKDB4MDBGMCksIElTQVBOUF9GVU5DVElPTigweDAwNDMpLCAmc2JfaW5p dF9nZW5lcmljLCAiU291bmQgQmxhc3RlciBWaWJyYTE2WCIgfSwNCisJe0lT QVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDAz OSksIElTQVBOUF9GVU5DVElPTigweDAwMzEpLCAmc2JfaW5pdF9hd2UsICJT b3VuZCBCbGFzdGVyIEFXRSAzMiIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0Mn LCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDA0MiksIElTQVBOUF9GVU5D VElPTigweDAwMzEpLCAmc2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFX RSAzMiIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQ TlBfREVWSUNFKDB4MDA0MyksIElTQVBOUF9GVU5DVElPTigweDAwMzEpLCAm c2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFXRSAzMiIgfSwNCisJe0lT QVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDA0 NCksIElTQVBOUF9GVU5DVElPTigweDAwMzEpLCAmc2JfaW5pdF9hd2UsICJT b3VuZCBCbGFzdGVyIEFXRSAzMiIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0Mn LCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDA0OCksIElTQVBOUF9GVU5D VElPTigweDAwMzEpLCAmc2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFX RSAzMiIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQ TlBfREVWSUNFKDB4MDA1NCksIElTQVBOUF9GVU5DVElPTigweDAwMzEpLCAm c2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFXRSAzMiIgfSwNCisJe0lT QVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDA5 QyksIElTQVBOUF9GVU5DVElPTigweDAwNDEpLCAmc2JfaW5pdF9hd2UsICJT b3VuZCBCbGFzdGVyIEFXRSAzMiIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0Mn LCdUJywnTCcpLCBJU0FQTlBfREVWSUNFKDB4MDA5RCksIElTQVBOUF9GVU5D VElPTigweDAwNDIpLCAmc2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFX RSA2NCIgfSwNCisJe0lTQVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQ TlBfREVWSUNFKDB4MDA5RSksIElTQVBOUF9GVU5DVElPTigweDAwNDQpLCAm c2JfaW5pdF9hd2UsICJTb3VuZCBCbGFzdGVyIEFXRSA2NCBHb2xkIiB9LA0K Kwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0Uo MHgwMEMxKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDA0MiksICZzYl9pbml0X2F3 ZSwgIlNvdW5kIEJsYXN0ZXIgQVdFIDY0IiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0UoMHgwMEMzKSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MDA0NSksICZzYl9pbml0X2F3ZSwgIlNvdW5kIEJsYXN0 ZXIgQVdFIDY0IiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyks IElTQVBOUF9ERVZJQ0UoMHgwMEM1KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDA0 NSksICZzYl9pbml0X2F3ZSwgIlNvdW5kIEJsYXN0ZXIgQVdFIDY0IiB9LA0K Kwl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0Uo MHgwMEM3KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDA0NSksICZzYl9pbml0X2F3 ZSwgIlNvdW5kIEJsYXN0ZXIgQVdFIDY0IiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignQycsJ1QnLCdMJyksIElTQVBOUF9ERVZJQ0UoMHgwMEU0KSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MDA0NSksICZzYl9pbml0X2F3ZSwgIlNvdW5kIEJsYXN0 ZXIgQVdFIDY0IiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignRScsJ1MnLCdTJyks IElTQVBOUF9ERVZJQ0UoMHgxODY4KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MTg2 OCksICZzYl9pbml0X2VzcywgIkVTUyAxODY4IiB9LA0KKwl7SVNBUE5QX1ZF TkRPUignRScsJ1MnLCdTJyksIElTQVBOUF9ERVZJQ0UoMHgxODY4KSwgSVNB UE5QX0ZVTkNUSU9OKDB4ODYxMSksICZzYl9pbml0X2VzcywgIkVTUyAxODY4 IiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignRScsJ1MnLCdTJyksIElTQVBOUF9E RVZJQ0UoMHgwMDAzKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MTg2OSksICZzYl9p bml0X2VzcywgIkVTUyAxODY5IFBuUCBBdWRpb0RyaXZlIiB9LA0KKwl7SVNB UE5QX1ZFTkRPUignRScsJ1MnLCdTJyksIElTQVBOUF9ERVZJQ0UoMHgxODY5 KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MTg2OSksICZzYl9pbml0X2VzcywgIkVT UyAxODY5IiB9LA0KKwl7SVNBUE5QX1ZFTkRPUignRScsJ1MnLCdTJyksIElT QVBOUF9ERVZJQ0UoMHgxODc4KSwgSVNBUE5QX0ZVTkNUSU9OKDB4MTg3OCks ICZzYl9pbml0X2VzcywgIkVTUyAxODc4IiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignRScsJ1MnLCdTJyksIElTQVBOUF9ERVZJQ0UoMHgxODc5KSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MTg3OSksICZzYl9pbml0X2VzcywgIkVTUyAxODc5IiB9 LA0KKwl7SVNBUE5QX1ZFTkRPUignQycsJ00nLCdJJyksIElTQVBOUF9ERVZJ Q0UoMHgwMDAxKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MDAwMSksICZzYl9pbml0 X2NtaSwgIkNNSSA4MzMwIFNvdW5kUFJPIiB9LA0KKwl7SVNBUE5QX1ZFTkRP UignUicsJ1cnLCdCJyksIElTQVBOUF9ERVZJQ0UoMHgxNjg4KSwgSVNBUE5Q X0ZVTkNUSU9OKDB4MDAwMSksICZzYl9pbml0X2RpYW1vbmQsICJEaWFtb25k IERUMDE5N0giIH0sDQorCXswfQ0KK307DQorDQogLyogVGhhdCdzIHVzZWZ1 bC4gKi8NCiANCiAjZGVmaW5lIHNob3dfYmFzZShkZXZuYW1lLCByZXNuYW1l LCByZXNwdHIpIHByaW50ayhLRVJOX0lORk8gInNiOiAlcyAlcyBiYXNlIGxv Y2F0ZWQgYXQgJSNseFxuIiwgZGV2bmFtZSwgcmVzbmFtZSwgKHJlc3B0cikt PnN0YXJ0KQ0KQEAgLTIzMyw5ICsyNzIsOSBAQA0KIC8qIENhcmQncyBzcGVj aWZpYyBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMNCiAgKi8NCiANCi1zdGF0 aWMgc3RydWN0IHBjaV9kZXYgKnNiX2luaXRfZ2VuZXJpYyhzdHJ1Y3QgcGNp X2J1cyAqYnVzLCBzdHJ1Y3QgcGNpX2RldiAqY2FyZCwgc3RydWN0IGFkZHJl c3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3QgYWRkcmVzc19pbmZvICptcHVf Y29uZmlnKQ0KK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldiAqc2JfaW5pdF9nZW5l cmljKHN0cnVjdCBwY2lfYnVzICpidXMsIHN0cnVjdCBhZGRyZXNzX2luZm8g Kmh3X2NvbmZpZywgc3RydWN0IGFkZHJlc3NfaW5mbyAqbXB1X2NvbmZpZywg aW50IHNsb3QpDQogew0KLQlpZigoc2JfZGV2ID0gaXNhcG5wX2ZpbmRfZGV2 KGJ1cywgY2FyZC0+dmVuZG9yLCBjYXJkLT5kZXZpY2UsIE5VTEwpKSkNCisJ aWYoKHNiX2RldiA9IGlzYXBucF9maW5kX2RldihidXMsIGlzYXBucF9zYl9s aXN0W3Nsb3RdLnZlbmRvciwgaXNhcG5wX3NiX2xpc3Rbc2xvdF0uZnVuY3Rp b24sIE5VTEwpKSkNCiAJew0KIAkJc2JfZGV2LT5wcmVwYXJlKHNiX2Rldik7 DQogDQpAQCAtMjUxLDkgKzI5MCw5IEBADQogCXJldHVybihzYl9kZXYpOw0K IH0NCiANCi1zdGF0aWMgc3RydWN0IHBjaV9kZXYgKnNiX2luaXRfZXNzKHN0 cnVjdCBwY2lfYnVzICpidXMsIHN0cnVjdCBwY2lfZGV2ICpjYXJkLCBzdHJ1 Y3QgYWRkcmVzc19pbmZvICpod19jb25maWcsIHN0cnVjdCBhZGRyZXNzX2lu Zm8gKm1wdV9jb25maWcpDQorc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpzYl9p bml0X2VzcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1Y3QgYWRkcmVzc19p bmZvICpod19jb25maWcsIHN0cnVjdCBhZGRyZXNzX2luZm8gKm1wdV9jb25m aWcsIGludCBzbG90KQ0KIHsNCi0JaWYoKHNiX2RldiA9IGlzYXBucF9maW5k X2RldihidXMsIGNhcmQtPnZlbmRvciwgY2FyZC0+ZGV2aWNlLCBOVUxMKSkp DQorCWlmKChzYl9kZXYgPSBpc2FwbnBfZmluZF9kZXYoYnVzLCBpc2FwbnBf c2JfbGlzdFtzbG90XS52ZW5kb3IsIGlzYXBucF9zYl9saXN0W3Nsb3RdLmZ1 bmN0aW9uLCBOVUxMKSkpDQogCXsNCiAJCXNiX2Rldi0+cHJlcGFyZShzYl9k ZXYpOw0KIA0KQEAgLTI2OSw3ICszMDgsNyBAQA0KIAlyZXR1cm4oc2JfZGV2 KTsNCiB9DQogDQotc3RhdGljIHN0cnVjdCBwY2lfZGV2ICpzYl9pbml0X2Nt aShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1Y3QgcGNpX2RldiAqY2FyZCwg c3RydWN0IGFkZHJlc3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3QgYWRkcmVz c19pbmZvICptcHVfY29uZmlnKQ0KK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldiAq c2JfaW5pdF9jbWkoc3RydWN0IHBjaV9idXMgKmJ1cywgc3RydWN0IGFkZHJl c3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3QgYWRkcmVzc19pbmZvICptcHVf Y29uZmlnLCBpbnQgc2xvdCkNCiB7DQogCS8qIA0KIAkgKiAgVGhlIENNSTgz MzAvQzNEIGlzIGEgdmVyeSAnc3R1cGlkJyBjaGlwLi4uIHdoZXJlIGRpZCB0 aGV5IGdldCBhbCB0aG9zZSBAQEAgPw0KQEAgLTM2NSw3ICs0MDQsNyBAQA0K IAlyZXR1cm4oc2JfZGV2KTsNCiB9DQogDQotc3RhdGljIHN0cnVjdCBwY2lf ZGV2ICpzYl9pbml0X2RpYW1vbmQoc3RydWN0IHBjaV9idXMgKmJ1cywgc3Ry dWN0IHBjaV9kZXYgKmNhcmQsIHN0cnVjdCBhZGRyZXNzX2luZm8gKmh3X2Nv bmZpZywgc3RydWN0IGFkZHJlc3NfaW5mbyAqbXB1X2NvbmZpZykNCitzdGF0 aWMgc3RydWN0IHBjaV9kZXYgKnNiX2luaXRfZGlhbW9uZChzdHJ1Y3QgcGNp X2J1cyAqYnVzLCBzdHJ1Y3QgYWRkcmVzc19pbmZvICpod19jb25maWcsIHN0 cnVjdCBhZGRyZXNzX2luZm8gKm1wdV9jb25maWcsIGludCBzbG90KQ0KIHsN CiAJLyogDQogCSAqIERpYW1vbmRzIERUMDE5N0gNCkBAIC00NTksMTYgKzQ5 OCwxNCBAQA0KICAqIGIpIFRoZSBqb3lzdGljayBkcml2ZXIgd2lsbCBzdXBw b3J0IFBuUCAtIGEgbGl0dGxlIHBhdGNoIGlzIGF2YWlsYWJsZSBmcm9tIG1l Li4uLmhpbnQsIGhpbnQgOi0pDQogICovDQogDQotc3RhdGljIHN0cnVjdCBw Y2lfZGV2ICpzYl9pbml0X2F3ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1 Y3QgcGNpX2RldiAqY2FyZCwgc3RydWN0IGFkZHJlc3NfaW5mbyAqaHdfY29u ZmlnLCBzdHJ1Y3QgYWRkcmVzc19pbmZvICptcHVfY29uZmlnKQ0KK3N0YXRp YyBzdHJ1Y3QgcGNpX2RldiAqc2JfaW5pdF9hd2Uoc3RydWN0IHBjaV9idXMg KmJ1cywgc3RydWN0IGFkZHJlc3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3Qg YWRkcmVzc19pbmZvICptcHVfY29uZmlnLCBpbnQgc2xvdCkNCiB7DQogCS8q ICBDVEwwMDQyOkF1ZGlvIFNCNjQNCiAJICogIENUTDAwMzE6QXVkaW8gU0Iz Mg0KIAkgKiAgQ1RMMDA0NTpBdWRpbyBTQjY0DQogCSAqLw0KIA0KLQlpZigJ KHNiX2RldiA9IGlzYXBucF9maW5kX2RldihidXMsIElTQVBOUF9WRU5ET1Io J0MnLCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04oMHgwMDQyKSwgTlVMTCkp IHx8IA0KLQkJKHNiX2RldiA9IGlzYXBucF9maW5kX2RldihidXMsIElTQVBO UF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04oMHgwMDMx KSwgTlVMTCkpIHx8DQotCQkoc2JfZGV2ID0gaXNhcG5wX2ZpbmRfZGV2KGJ1 cywgSVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9GVU5DVElP TigweDAwNDUpLCBOVUxMKSkJKQ0KKwlpZigoc2JfZGV2ID0gaXNhcG5wX2Zp bmRfZGV2KGJ1cywgaXNhcG5wX3NiX2xpc3Rbc2xvdF0udmVuZG9yLCBpc2Fw bnBfc2JfbGlzdFtzbG90XS5mdW5jdGlvbiwgTlVMTCkpKQ0KIAl7DQogCQlz Yl9kZXYtPnByZXBhcmUoc2JfZGV2KTsNCiAJCQ0KQEAgLTQ4OCw4ICs1MjUs MTAgQEANCiAJCWVsc2UNCiAJCQlyZXR1cm4oTlVMTCk7DQogCX0NCi0JZWxz ZQ0KKwllbHNlIHsNCiAJCXByaW50ayhLRVJOX0VSUiAic2I6IEFXRSBwYW5p Yzogc2IgYmFzZSBub3QgZm91bmRcbiIpOw0KKwkJcmV0dXJuKHNiX2Rldik7 IC8qIGZhaWxlZCB0byBmaW5kIGF1ZGlvIGRldmljZSwgZG8gbm90IGNvbnRp bnVlICovDQorCX0NCiANCiANCiAJLyogIENUTDcwMDI6R2FtZSBTQjY0DQpA QCAtNTM1LDM3ICs1NzQsOCBAQA0KIAlyZXR1cm4oc2JfZGV2KTsNCiB9DQog DQotI2RlZmluZSBTQkZfREVWCTB4MDENCi0NCi0NCi1zdGF0aWMgc3RydWN0 IHsgdW5zaWduZWQgc2hvcnQgdmVuZG9yLCBmdW5jdGlvbiwgZmxhZ3M7IHN0 cnVjdCBwY2lfZGV2ICogKCppbml0ZnVuYykoc3RydWN0IHBjaV9idXMgKiwg c3RydWN0IHBjaV9kZXYgKiwgc3RydWN0IGFkZHJlc3NfaW5mbyAqLCBzdHJ1 Y3QgYWRkcmVzc19pbmZvICopOyBjaGFyICpuYW1lOyB9DQotaXNhcG5wX3Ni X2xpc3RbXSBfX2luaXRkYXRhID0gew0KLQl7SVNBUE5QX1ZFTkRPUignQycs J1QnLCdMJyksIElTQVBOUF9GVU5DVElPTigweDAwMDEpLCBTQkZfREVWLAkm c2JfaW5pdF9nZW5lcmljLAkiU291bmQgQmxhc3RlciAxNiIgfSwNCi0Je0lT QVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04oMHgw MDMxKSwgU0JGX0RFViwJJnNiX2luaXRfZ2VuZXJpYywJIlNvdW5kIEJsYXN0 ZXIgMTYiIH0sDQotCXtJU0FQTlBfVkVORE9SKCdDJywnVCcsJ0wnKSwgSVNB UE5QX0ZVTkNUSU9OKDB4MDA0MSksIFNCRl9ERVYsCSZzYl9pbml0X2dlbmVy aWMsCSJTb3VuZCBCbGFzdGVyIDE2IiB9LA0KLQl7SVNBUE5QX1ZFTkRPUign QycsJ1QnLCdMJyksIElTQVBOUF9GVU5DVElPTigweDAwNDIpLCBTQkZfREVW LAkmc2JfaW5pdF9nZW5lcmljLAkiU291bmQgQmxhc3RlciAxNiIgfSwNCi0J e0lTQVBOUF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04o MHgwMDQzKSwgU0JGX0RFViwJJnNiX2luaXRfZ2VuZXJpYywJIlNvdW5kIEJs YXN0ZXIgMTYiIH0sDQotCXtJU0FQTlBfVkVORE9SKCdDJywnVCcsJ0wnKSwg SVNBUE5QX0ZVTkNUSU9OKDB4MDA0NSksIFNCRl9ERVYsCSZzYl9pbml0X2dl bmVyaWMsCSJTb3VuZCBCbGFzdGVyIDE2IiB9LA0KLQl7SVNBUE5QX1ZFTkRP UignQycsJ1QnLCdMJyksIElTQVBOUF9GVU5DVElPTigweDAwNDQpLCAwLAkm c2JfaW5pdF9hd2UsCQkiU291bmQgQmxhc3RlciAzMiIgfSwNCi0Je0lTQVBO UF9WRU5ET1IoJ0MnLCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04oMHgwMDM5 KSwgMCwJJnNiX2luaXRfYXdlLAkJIlNvdW5kIEJsYXN0ZXIgQVdFIDMyIiB9 LA0KLQl7SVNBUE5QX1ZFTkRPUignQycsJ1QnLCdMJyksIElTQVBOUF9GVU5D VElPTigweDAwOUQpLCAwLAkmc2JfaW5pdF9hd2UsCQkiU291bmQgQmxhc3Rl ciBBV0UgNjQiIH0sDQotCXtJU0FQTlBfVkVORE9SKCdDJywnVCcsJ0wnKSwg SVNBUE5QX0ZVTkNUSU9OKDB4MDBDNSksIDAsCSZzYl9pbml0X2F3ZSwJCSJT b3VuZCBCbGFzdGVyIEFXRSA2NCIgfSwNCi0Je0lTQVBOUF9WRU5ET1IoJ0Mn LCdUJywnTCcpLCBJU0FQTlBfRlVOQ1RJT04oMHgwMEU0KSwgMCwJJnNiX2lu aXRfYXdlLAkJIlNvdW5kIEJsYXN0ZXIgQVdFIDY0IiB9LA0KLQl7SVNBUE5Q X1ZFTkRPUignRScsJ1MnLCdTJyksIElTQVBOUF9GVU5DVElPTigweDA5Njgp LCBTQkZfREVWLAkmc2JfaW5pdF9lc3MsCQkiRVNTIDE2ODgiIH0sDQotCXtJ U0FQTlBfVkVORE9SKCdFJywnUycsJ1MnKSwgSVNBUE5QX0ZVTkNUSU9OKDB4 MTg2OCksIFNCRl9ERVYsCSZzYl9pbml0X2VzcywJCSJFU1MgMTg2OCIgfSwN Ci0Je0lTQVBOUF9WRU5ET1IoJ0UnLCdTJywnUycpLCBJU0FQTlBfRlVOQ1RJ T04oMHg4NjExKSwgU0JGX0RFViwJJnNiX2luaXRfZXNzLAkJIkVTUyAxODY4 IiB9LA0KLQl7SVNBUE5QX1ZFTkRPUignRScsJ1MnLCdTJyksIElTQVBOUF9G VU5DVElPTigweDE4NjkpLCBTQkZfREVWLAkmc2JfaW5pdF9lc3MsCQkiRVNT IDE4NjkiIH0sDQotCXtJU0FQTlBfVkVORE9SKCdFJywnUycsJ1MnKSwgSVNB UE5QX0ZVTkNUSU9OKDB4MTg3OCksIFNCRl9ERVYsCSZzYl9pbml0X2VzcywJ CSJFU1MgMTg3OCIgfSwNCi0Je0lTQVBOUF9WRU5ET1IoJ0UnLCdTJywnUycp LCBJU0FQTlBfRlVOQ1RJT04oMHgxODc5KSwgU0JGX0RFViwJJnNiX2luaXRf ZXNzLAkJIkVTUyAxODc5IiB9LA0KLQl7SVNBUE5QX1ZFTkRPUignQycsJ00n LCdJJyksIElTQVBOUF9GVU5DVElPTigweDAwMDEpLCAwLAkmc2JfaW5pdF9j bWksCQkiQ01JIDgzMzAgU291bmRQUk8iIH0sDQotCXtJU0FQTlBfVkVORE9S KCdSJywnVycsJ0InKSwgSVNBUE5QX0ZVTkNUSU9OKDB4MTY4OCksIDAsCSZz Yl9pbml0X2RpYW1vbmQsCSJEaWFtb25kIERUMDE5N0giIH0sDQotCXswfQ0K LX07DQotDQotc3RhdGljIGludCBfX2luaXQgc2JfaW5pdF9pc2FwbnAoc3Ry dWN0IGFkZHJlc3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3QgYWRkcmVzc19p bmZvICptcHVfY29uZmlnLCBzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1Y3Qg cGNpX2RldiAqY2FyZCwgaW50IHNsb3QpDQorc3RhdGljIGludCBfX2luaXQg c2JfaW5pdF9pc2FwbnAoc3RydWN0IGFkZHJlc3NfaW5mbyAqaHdfY29uZmln LCBzdHJ1Y3QgYWRkcmVzc19pbmZvICptcHVfY29uZmlnLCBzdHJ1Y3QgcGNp X2J1cyAqYnVzLCBpbnQgc2xvdCkNCiB7DQotCXN0cnVjdCBwY2lfZGV2ICpp ZGV2ID0gTlVMTDsNCi0NCiAJLyogWW91IG1pc3NlZCB0aGUgaW5pdCBmdW5j PyBUaGF0J3MgYmFkLiAqLw0KIAlpZihpc2FwbnBfc2JfbGlzdFtzbG90XS5p bml0ZnVuYykNCiAJew0KQEAgLTU3NSw3ICs1ODUsNyBAQA0KIA0KIAkJLyog SW5pdGlhbGl6ZSB0aGlzIGJhYnkuICovDQogDQotCQlpZigoaWRldiA9IGlz YXBucF9zYl9saXN0W3Nsb3RdLmluaXRmdW5jKGJ1cywgY2FyZCwgaHdfY29u ZmlnLCBtcHVfY29uZmlnKSkpDQorCQlpZihpc2FwbnBfc2JfbGlzdFtzbG90 XS5pbml0ZnVuYyhidXMsIGh3X2NvbmZpZywgbXB1X2NvbmZpZywgc2xvdCkp DQogCQl7DQogCQkJLyogV2UgZ290IGl0LiAqLw0KIA0KQEAgLTYxNSw0MCAr NjI1LDE1IEBADQogCX0NCiAJDQogCWZvciAoaSA9IGlzYXBucGp1bXA7IGlz YXBucF9zYl9saXN0W2ldLnZlbmRvciAhPSAwOyBpKyspIHsNCi0NCi0JCWlm KCEoaXNhcG5wX3NiX2xpc3RbaV0uZmxhZ3MgJiBTQkZfREVWKSkNCi0JCXsN Ci0JCQlzdHJ1Y3QgcGNpX2J1cyAqYnVzID0gTlVMTDsNCisJCXN0cnVjdCBw Y2lfYnVzICpidXMgPSBOVUxMOw0KIAkJCQkNCi0JCQl3aGlsZSAoKGJ1cyA9 IGlzYXBucF9maW5kX2NhcmQoDQotCQkJCQlpc2FwbnBfc2JfbGlzdFtpXS52 ZW5kb3IsDQotCQkJCQlpc2FwbnBfc2JfbGlzdFtpXS5mdW5jdGlvbiwNCi0J CQkJCWJ1cykpKSB7DQotCQ0KLQkJCQlpZihzYl9pbml0X2lzYXBucChod19j b25maWcsIG1wdV9jb25maWcsIGJ1cywgTlVMTCwgaSkpDQotCQkJCQlyZXR1 cm4gMDsNCi0JCQl9DQotCQl9DQotCX0NCi0NCi0JLyogIE5vIGNhcmRzIGZv dW5kLiBJJ2xsIHRyeSBub3cgdG8gc2VhcmNoIGluc2lkZSBldmVyeSBjYXJk IGZvciBhIGxvZ2ljYWwgZGV2aWNlDQotCSAqICB0aGF0IG1hdGNoZXMgYW55 IGVudHJ5IG1hcmtlZCB3aXRoIFNCRl9ERVYgaW4gdGhlIHRhYmxlLg0KLQkg Ki8NCisJCXdoaWxlICgoYnVzID0gaXNhcG5wX2ZpbmRfY2FyZCgNCisJCQkJ aXNhcG5wX3NiX2xpc3RbaV0udmVuZG9yLA0KKwkJCQlpc2FwbnBfc2JfbGlz dFtpXS5kZXZpY2UsDQorCQkJCWJ1cykpKSB7DQogDQotCWZvciAoaSA9IGlz YXBucGp1bXA7IGlzYXBucF9zYl9saXN0W2ldLnZlbmRvciAhPSAwOyBpKysp IHsNCi0NCi0JCWlmKGlzYXBucF9zYl9saXN0W2ldLmZsYWdzICYgU0JGX0RF VikNCi0JCXsNCi0JCQlzdHJ1Y3QgcGNpX2RldiAqY2FyZCA9IE5VTEw7DQot DQotCQkJd2hpbGUgKChjYXJkID0gaXNhcG5wX2ZpbmRfZGV2KE5VTEwsDQot CQkJCQlpc2FwbnBfc2JfbGlzdFtpXS52ZW5kb3IsDQotCQkJCQlpc2FwbnBf c2JfbGlzdFtpXS5mdW5jdGlvbiwNCi0JCQkJCWNhcmQpKSkgew0KLQ0KLQkJ CQlpZihzYl9pbml0X2lzYXBucChod19jb25maWcsIG1wdV9jb25maWcsIGNh cmQtPmJ1cywgY2FyZCwgaSkpDQotCQkJCQlyZXR1cm4gMDsNCi0JCQl9DQor CQkJaWYoc2JfaW5pdF9pc2FwbnAoaHdfY29uZmlnLCBtcHVfY29uZmlnLCBi dXMsIGkpKQ0KKwkJCQlyZXR1cm4gMDsNCiAJCX0NCiAJfQ0KIA0KLS0tIGxp bnV4LWRldmVsLXZpcmdpbi9kcml2ZXJzL3NvdW5kL3NiX2NhcmQuaAlUaHUg TWFyIDE2IDEyOjUwOjE2IDIwMDANCisrKyBsaW51eC9kcml2ZXJzL3NvdW5k L3NiX2NhcmQuaAlXZWQgTWFyIDE1IDIxOjQ4OjM4IDIwMDANCkBAIC0wLDAg KzEsOSBAQA0KKyNpZiBkZWZpbmVkIENPTkZJR19JU0FQTlAgfHwgZGVmaW5l ZCBDT05GSUdfSVNBUE5QX01PRFVMRQ0KKw0KK3N0YXRpYyBzdHJ1Y3QgcGNp X2RldiAqc2JfaW5pdF9nZW5lcmljKHN0cnVjdCBwY2lfYnVzICpidXMsIHN0 cnVjdCBhZGRyZXNzX2luZm8gKmh3X2NvbmZpZywgc3RydWN0IGFkZHJlc3Nf aW5mbyAqbXB1X2NvbmZpZywgaW50IHNsb3QpOw0KK3N0YXRpYyBzdHJ1Y3Qg cGNpX2RldiAqc2JfaW5pdF9jbWkoc3RydWN0IHBjaV9idXMgKmJ1cywgc3Ry dWN0IGFkZHJlc3NfaW5mbyAqaHdfY29uZmlnLCBzdHJ1Y3QgYWRkcmVzc19p bmZvICptcHVfY29uZmlnLCBpbnQgc2xvdCk7DQorc3RhdGljIHN0cnVjdCBw Y2lfZGV2ICpzYl9pbml0X2F3ZShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1 Y3QgYWRkcmVzc19pbmZvICpod19jb25maWcsIHN0cnVjdCBhZGRyZXNzX2lu Zm8gKm1wdV9jb25maWcsIGludCBzbG90KTsNCitzdGF0aWMgc3RydWN0IHBj aV9kZXYgKnNiX2luaXRfZXNzKHN0cnVjdCBwY2lfYnVzICpidXMsIHN0cnVj dCBhZGRyZXNzX2luZm8gKmh3X2NvbmZpZywgc3RydWN0IGFkZHJlc3NfaW5m byAqbXB1X2NvbmZpZywgaW50IHNsb3QpOw0KK3N0YXRpYyBzdHJ1Y3QgcGNp X2RldiAqc2JfaW5pdF9kaWFtb25kKHN0cnVjdCBwY2lfYnVzICpidXMsIHN0 cnVjdCBhZGRyZXNzX2luZm8gKmh3X2NvbmZpZywgc3RydWN0IGFkZHJlc3Nf aW5mbyAqbXB1X2NvbmZpZywgaW50IHNsb3QpOw0KKw0KKyNlbmRpZg0K ---1463811838-803737336-953603590=:244--