From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from crystal.sipsolutions.net ([195.210.38.204]:40692 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753276AbXHPO4H (ORCPT ); Thu, 16 Aug 2007 10:56:07 -0400 Subject: Re: [RFC 2/2 v2] mac80211: revamp interface and filter configuration From: Johannes Berg To: linux-wireless@vger.kernel.org Cc: Michael Wu , Zhu Yi , Michael Buesch In-Reply-To: <1187275819.23489.9.camel@johannes.berg> References: <20070815152557.221351000@sipsolutions.net> <20070815152658.587906000@sipsolutions.net> <1187275819.23489.9.camel@johannes.berg> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-Enf2+Rj4jbgGjs/NjzSG" Date: Thu, 16 Aug 2007 16:58:50 +0200 Message-Id: <1187276330.23489.14.camel@johannes.berg> Mime-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: --=-Enf2+Rj4jbgGjs/NjzSG Content-Type: multipart/mixed; boundary="=-wIrGxo3XYvGgwtIIY9al" --=-wIrGxo3XYvGgwtIIY9al Content-Type: text/plain Content-Transfer-Encoding: quoted-printable For convenience, here are the patches for each driver. johannes --=-wIrGxo3XYvGgwtIIY9al Content-Disposition: attachment; filename=adm8211.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=adm8211.patch; charset=utf-8 LS0tIHdpcmVsZXNzLWRldi5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2FkbTgyMTEuYwkyMDA3 LTA4LTE2IDE2OjUxOjIwLjQ5MzQ2ODk1MCArMDIwMA0KKysrIHdpcmVsZXNzLWRldi9kcml2ZXJz L25ldC93aXJlbGVzcy9hZG04MjExLmMJMjAwNy0wOC0xNiAxNjo1NjoxMy4xNTM0Njg5NTAgKzAy MDANCkBAIC0zNDksMjUgKzM0OSw0NyBAQCBzdGF0aWMgaW50IGFkbTgyMTFfZ2V0X3N0YXRzKHN0 cnVjdCBpZWVlDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBhZG04MjExX3NldF9y eF9tb2RlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmRldiwNCi0JCQkJdW5zaWduZWQgc2hvcnQgZmxh Z3MsIGludCBtY19jb3VudCkNCitzdGF0aWMgdm9pZCBhZG04MjExX3NldF9ic3NpZChzdHJ1Y3Qg aWVlZTgwMjExX2h3ICpkZXYsIHU4ICpic3NpZCkNCit7DQorCXN0cnVjdCBhZG04MjExX3ByaXYg KnByaXYgPSBkZXYtPnByaXY7DQorCXUzMiByZWc7DQorDQorCXJlZyA9IGJzc2lkWzBdIHwgKGJz c2lkWzFdIDw8IDgpIHwgKGJzc2lkWzJdIDw8IDE2KSB8IChic3NpZFszXSA8PCAyNCk7DQorCUFE TTgyMTFfQ1NSX1dSSVRFKEJTU0lEMCwgcmVnKTsNCisJcmVnID0gQURNODIxMV9DU1JfUkVBRChB QkRBMSk7DQorCXJlZyAmPSAweDAwMDBmZmZmOw0KKwlyZWcgfD0gKGJzc2lkWzRdIDw8IDE2KSB8 IChic3NpZFs1XSA8PCAyNCk7DQorCUFETTgyMTFfQ1NSX1dSSVRFKEFCREExLCByZWcpOw0KK30N CisNCitzdGF0aWMgdm9pZCBhZG04MjExX2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIx MV9odyAqZGV2LA0KKwkJCQkgICAgIGludCBtdWx0aV9jb3VudCwNCisJCQkJICAgICB1bnNpZ25l ZCBpbnQgY2hhbmdlZCwNCisJCQkJICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQ0KIHsNCiAJc3Ry dWN0IGFkbTgyMTFfcHJpdiAqcHJpdiA9IGRldi0+cHJpdjsNCiAJdW5zaWduZWQgaW50IGJpdF9u cjsNCiAJX19sZTMyIG1jX2ZpbHRlclsyXTsNCiAJc3RydWN0IGRldl9tY19saXN0ICptY2xpc3Q7 DQogCXZvaWQgKnRtcDsNCisJaW50IGNoYW5nZSA9IDA7DQorCXU4IGJjYXN0X2FkZHJbRVRIX0FM RU5dID0gezB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZ9Ow0KIA0KLQkJbWNfZmls dGVyWzFdID0gbWNfZmlsdGVyWzBdID0gMDsNCi0JaWYgKGZsYWdzICYgSUZGX1BST01JU0MpIHsN CisJLyogVE9ETzogaG9ub3VyIG1vcmUgZmxhZ3MgKi8NCisNCisJbWNfZmlsdGVyWzFdID0gbWNf ZmlsdGVyWzBdID0gMDsNCisNCisJaWYgKCpmbGFncyAmIEZJRl9QUk9NSVNDX0lOX0JTUykgew0K IAkJcHJpdi0+bmFyIHw9IEFETTgyMTFfTkFSX1BSOw0KIAkJcHJpdi0+bmFyICY9IH5BRE04MjEx X05BUl9NTTsNCiAJCW1jX2ZpbHRlclsxXSA9IG1jX2ZpbHRlclswXSA9IGNwdV90b19sZTMyKH4w KTsNCi0JfSBlbHNlIGlmICgoZmxhZ3MgJiBJRkZfQUxMTVVMVEkpIHx8IChtY19jb3VudCA+IC0x KSkgew0KKwkJY2hhbmdlID0gMTsNCisJfSBlbHNlIGlmICgqZmxhZ3MgJiBGSUZfQUxMTVVMVEkp IHsNCiAJCXByaXYtPm5hciAmPSB+QURNODIxMV9OQVJfUFI7DQogCQlwcml2LT5uYXIgfD0gQURN ODIxMV9OQVJfTU07DQogCQltY19maWx0ZXJbMV0gPSBtY19maWx0ZXJbMF0gPSBjcHVfdG9fbGUz Mih+MCk7DQotCX0gZWxzZSB7DQorCQljaGFuZ2UgPSAxOw0KKwl9IGVsc2UgaWYgKG11bHRpX2Nv dW50ID49IDApIHsNCiAJCXByaXYtPm5hciAmPSB+KEFETTgyMTFfTkFSX01NIHwgQURNODIxMV9O QVJfUFIpOw0KIAkJbWNfZmlsdGVyWzFdID0gbWNfZmlsdGVyWzBdID0gMDsNCiAJCW1jbGlzdCA9 IE5VTEw7DQpAQCAtMzc3LDE1ICszOTksMjcgQEAgc3RhdGljIHZvaWQgYWRtODIxMV9zZXRfcnhf bW9kZShzdHJ1Y3QgaQ0KIAkJCWJpdF9uciAmPSAweDNGOw0KIAkJCW1jX2ZpbHRlcltiaXRfbnIg Pj4gNV0gfD0gY3B1X3RvX2xlMzIoMSA8PCAoYml0X25yICYgMzEpKTsNCiAJCX0NCisJCWNoYW5n ZSA9IDE7DQogCX0NCiANCi0JQURNODIxMV9JRExFX1JYKCk7DQorCSpmbGFncyAmPSBGSUZfUFJP TUlTQ19JTl9CU1MgfCBGSUZfQUxMTVVMVEkgfCBGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQzsNCiAN Ci0JQURNODIxMV9DU1JfV1JJVEUoTUFSMCwgbWNfZmlsdGVyWzBdKTsNCi0JQURNODIxMV9DU1Jf V1JJVEUoTUFSMSwgbWNfZmlsdGVyWzFdKTsNCi0JQURNODIxMV9DU1JfUkVBRChOQVIpOw0KKwlp ZiAoY2hhbmdlICYgRklGX0JDTl9QUkJSRVNQX1BST01JU0MpIHsNCisJCWlmICgqZmxhZ3MgJiBG SUZfQkNOX1BSQlJFU1BfUFJPTUlTQykNCisJCQlhZG04MjExX3NldF9ic3NpZChkZXYsIGJjYXN0 X2FkZHIpOw0KKwkJZWxzZQ0KKwkJCWFkbTgyMTFfc2V0X2Jzc2lkKGRldiwgcHJpdi0+YnNzaWQp Ow0KKwl9DQogDQotCUFETTgyMTFfUkVTVE9SRSgpOw0KKwlpZiAoY2hhbmdlKSB7DQorCQlBRE04 MjExX0lETEVfUlgoKTsNCisNCisJCUFETTgyMTFfQ1NSX1dSSVRFKE1BUjAsIG1jX2ZpbHRlclsw XSk7DQorCQlBRE04MjExX0NTUl9XUklURShNQVIxLCBtY19maWx0ZXJbMV0pOw0KKwkJQURNODIx MV9DU1JfUkVBRChOQVIpOw0KKw0KKwkJQURNODIxMV9SRVNUT1JFKCk7DQorCX0NCiB9DQogDQog c3RhdGljIGludCBhZG04MjExX2dldF90eF9zdGF0cyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpkZXYs DQpAQCAtMTQxNCwxOSArMTQ0OCw2IEBAIHN0YXRpYyB2b2lkIGFkbTgyMTFfc2V0X2ludGVydmFs KHN0cnVjdCANCiAJQURNODIxMV9DU1JfV1JJVEUoQlBMSSwgcmVnKTsNCiB9DQogDQotc3RhdGlj IHZvaWQgYWRtODIxMV9zZXRfYnNzaWQoc3RydWN0IGllZWU4MDIxMV9odyAqZGV2LCB1OCAqYnNz aWQpDQotew0KLQlzdHJ1Y3QgYWRtODIxMV9wcml2ICpwcml2ID0gZGV2LT5wcml2Ow0KLQl1MzIg cmVnOw0KLQ0KLQlyZWcgPSBic3NpZFswXSB8IChic3NpZFsxXSA8PCA4KSB8IChic3NpZFsyXSA8 PCAxNikgfCAoYnNzaWRbM10gPDwgMjQpOw0KLQlBRE04MjExX0NTUl9XUklURShCU1NJRDAsIHJl Zyk7DQotCXJlZyA9IEFETTgyMTFfQ1NSX1JFQUQoQUJEQTEpOw0KLQlyZWcgJj0gMHgwMDAwZmZm ZjsNCi0JcmVnIHw9IChic3NpZFs0XSA8PCAxNikgfCAoYnNzaWRbNV0gPDwgMjQpOw0KLQlBRE04 MjExX0NTUl9XUklURShBQkRBMSwgcmVnKTsNCi19DQotDQogc3RhdGljIGludCBhZG04MjExX3Nl dF9zc2lkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmRldiwgdTggKnNzaWQsIHNpemVfdCBzc2lkX2xl bikNCiB7DQogCXN0cnVjdCBhZG04MjExX3ByaXYgKnByaXYgPSBkZXYtPnByaXY7DQpAQCAtMTUw Miw2ICsxNTIzLDggQEAgc3RhdGljIHZvaWQgYWRtODIxMV9yZW1vdmVfaW50ZXJmYWNlKHN0cg0K IHsNCiAJc3RydWN0IGFkbTgyMTFfcHJpdiAqcHJpdiA9IGRldi0+cHJpdjsNCiAJcHJpdi0+bW9k ZSA9IElFRUU4MDIxMV9JRl9UWVBFX01HTVQ7DQorDQorCS8qIFRPRE86IGNsZWFyIE1BQyBhZGRy ZXNzICovDQogfQ0KIA0KIHN0YXRpYyBpbnQgYWRtODIxMV9pbml0X3JpbmdzKHN0cnVjdCBpZWVl ODAyMTFfaHcgKmRldikNCkBAIC0xNTg1LDcgKzE2MDgsNyBAQCBzdGF0aWMgdm9pZCBhZG04MjEx X2ZyZWVfcmluZ3Moc3RydWN0IGllDQogCX0NCiB9DQogDQotc3RhdGljIGludCBhZG04MjExX29w ZW4oc3RydWN0IGllZWU4MDIxMV9odyAqZGV2KQ0KK3N0YXRpYyBpbnQgYWRtODIxMV9zdGFydChz dHJ1Y3QgaWVlZTgwMjExX2h3ICpkZXYpDQogew0KIAlzdHJ1Y3QgYWRtODIxMV9wcml2ICpwcml2 ID0gZGV2LT5wcml2Ow0KIAlpbnQgcmV0dmFsOw0KQEAgLTE2MjgsNyArMTY1MSw3IEBAIGZhaWw6 DQogCXJldHVybiByZXR2YWw7DQogfQ0KIA0KLXN0YXRpYyBpbnQgYWRtODIxMV9zdG9wKHN0cnVj dCBpZWVlODAyMTFfaHcgKmRldikNCitzdGF0aWMgdm9pZCBhZG04MjExX3N0b3Aoc3RydWN0IGll ZWU4MDIxMV9odyAqZGV2KQ0KIHsNCiAJc3RydWN0IGFkbTgyMTFfcHJpdiAqcHJpdiA9IGRldi0+ cHJpdjsNCiANCkBAIC0xNjQwLDcgKzE2NjMsNiBAQCBzdGF0aWMgaW50IGFkbTgyMTFfc3RvcChz dHJ1Y3QgaWVlZTgwMjExDQogCWZyZWVfaXJxKHByaXYtPnBkZXYtPmlycSwgZGV2KTsNCiANCiAJ YWRtODIxMV9mcmVlX3JpbmdzKGRldik7DQotCXJldHVybiAwOw0KIH0NCiANCiBzdGF0aWMgdm9p ZCBhZG04MjExX2NhbGNfZHVyYXRpb25zKGludCAqZHVyLCBpbnQgKnBsY3AsIHNpemVfdCBwYXls b2FkX2xlbiwgaW50IGxlbiwNCkBAIC0xODQxLDEzICsxODYzLDEzIEBAIHN0YXRpYyBpbnQgYWRt ODIxMV9hbGxvY19yaW5ncyhzdHJ1Y3QgaWUNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4 MDIxMV9vcHMgYWRtODIxMV9vcHMgPSB7DQogCS50eAkJCT0gYWRtODIxMV90eCwNCi0JLm9wZW4J CQk9IGFkbTgyMTFfb3BlbiwNCisJLnN0YXJ0CQkJPSBhZG04MjExX3N0YXJ0LA0KIAkuc3RvcAkJ CT0gYWRtODIxMV9zdG9wLA0KIAkuYWRkX2ludGVyZmFjZQkJPSBhZG04MjExX2FkZF9pbnRlcmZh Y2UsDQogCS5yZW1vdmVfaW50ZXJmYWNlCT0gYWRtODIxMV9yZW1vdmVfaW50ZXJmYWNlLA0KIAku Y29uZmlnCQkJPSBhZG04MjExX2NvbmZpZywNCiAJLmNvbmZpZ19pbnRlcmZhY2UJPSBhZG04MjEx X2NvbmZpZ19pbnRlcmZhY2UsDQotCS5zZXRfbXVsdGljYXN0X2xpc3QJPSBhZG04MjExX3NldF9y eF9tb2RlLA0KKwkuY29uZmlndXJlX2ZpbHRlcgk9IGFkbTgyMTFfY29uZmlndXJlX2ZpbHRlciwN CiAJLmdldF9zdGF0cwkJPSBhZG04MjExX2dldF9zdGF0cywNCiAJLmdldF90eF9zdGF0cwkJPSBh ZG04MjExX2dldF90eF9zdGF0cywNCiAJLmdldF90c2YJCT0gYWRtODIxMV9nZXRfdHNmdA0KQEAg LTE5NTMsNyArMTk3NSw4IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGFkbTgyMTFfcHJvYmUoc3Ry dWMNCiAJU0VUX0lFRUU4MDIxMV9QRVJNX0FERFIoZGV2LCBwZXJtX2FkZHIpOw0KIA0KIAlkZXYt PmV4dHJhX3R4X2hlYWRyb29tID0gc2l6ZW9mKHN0cnVjdCBhZG04MjExX3R4X2hkcik7DQotCWRl di0+ZmxhZ3MgPSBJRUVFODAyMTFfSFdfV0VQX0lOQ0xVREVfSVYgfCBJRUVFODAyMTFfSFdfTk9f VEtJUF9XTU1fSFdBQ0NFTDsNCisJZGV2LT5mbGFncyA9IElFRUU4MDIxMV9IV19XRVBfSU5DTFVE RV9JViB8IElFRUU4MDIxMV9IV19OT19US0lQX1dNTV9IV0FDQ0VMIHwNCisJCSAgICAgSUVFRTgw MjExX0hXX01VTFRJQ0FTVF9GSUxURVI7DQogCS8vIGhvd2V2ZXIsIElFRUU4MDIxMV9IV19SWF9J TkNMVURFU19GQ1MgaW4gcHJvbWlzYyBtb2RlDQogDQogCWRldi0+Y2hhbm5lbF9jaGFuZ2VfdGlt ZSA9IDEwMDA7DQpAQCAtMjA4Miw3ICsyMTA1LDcgQEAgc3RhdGljIGludCBhZG04MjExX3Jlc3Vt ZShzdHJ1Y3QgcGNpX2Rldg0KIAlwY2lfcmVzdG9yZV9zdGF0ZShwZGV2KTsNCiANCiAJaWYgKHBy aXYtPm1vZGUgIT0gSUVFRTgwMjExX0lGX1RZUEVfTUdNVCkgew0KLQkJYWRtODIxMV9vcGVuKGRl dik7DQorCQlhZG04MjExX3N0YXJ0KGRldik7DQogCQlpZWVlODAyMTFfc3RhcnRfcXVldWVzKGRl dik7DQogCX0NCiANCg== --=-wIrGxo3XYvGgwtIIY9al Content-Disposition: attachment; filename=b43.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=b43.patch; charset=utf-8 LS0tIHdpcmVsZXNzLWRldi5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaAkyMDA3 LTA4LTE2IDE2OjUxOjIwLjM3MzQ2ODk1MCArMDIwMA0KKysrIHdpcmVsZXNzLWRldi9kcml2ZXJz L25ldC93aXJlbGVzcy9iNDMvYjQzLmgJMjAwNy0wOC0xNiAxNjo1NjoxMy4xMjM0Njg5NTAgKzAy MDANCkBAIC01NzIsOSArNTcyLDggQEAgc3RydWN0IGI0M193bCB7DQogCSAqIGF0IGEgdGltZS4g R2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGludGVyZmFjZSBmb2xsb3dzLg0KIAkgKi8N CiANCi0JLyogT3BhcXVlIElEIG9mIHRoZSBvcGVyYXRpbmcgaW50ZXJmYWNlICghPSBtb25pdG9y DQotCSAqIGludGVyZmFjZSkgZnJvbSB0aGUgaWVlZTgwMjExIHN1YnN5c3RlbS4NCi0JICogRG8g bm90IG1vZGlmeS4NCisJLyogT3BhcXVlIElEIG9mIHRoZSBvcGVyYXRpbmcgaW50ZXJmYWNlIGZy b20gdGhlIGllZWU4MDIxMQ0KKwkgKiBzdWJzeXN0ZW0uIERvIG5vdCBtb2RpZnkuDQogCSAqLw0K IAlpbnQgaWZfaWQ7DQogCS8qIE1BQyBhZGRyZXNzIChjYW4gYmUgTlVMTCkuICovDQpAQCAtNTgz LDE0ICs1ODIsMTAgQEAgc3RydWN0IGI0M193bCB7DQogCWNvbnN0IHU4ICpic3NpZDsNCiAJLyog SW50ZXJmYWNlIHR5cGUuIChJRUVFODAyMTFfSUZfVFlQRV9YWFgpICovDQogCWludCBpZl90eXBl Ow0KLQkvKiBDb3VudGVyIG9mIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZXMuICovDQotCWludCBt b25pdG9yOw0KIAkvKiBJcyB0aGUgY2FyZCBvcGVyYXRpbmcgaW4gQVAsIFNUQSBvciBJQlNTIG1v ZGU/ICovDQogCWJvb2wgb3BlcmF0aW5nOw0KLQkvKiBQcm9taXNjIG1vZGUgYWN0aXZlPw0KLQkg KiBOb3RlIHRoYXQgKG1vbml0b3IgIT0gMCkgaW1wbGllcyBwcm9taXNjLg0KLQkgKi8NCi0JYm9v bCBwcm9taXNjOw0KKwkvKiBmaWx0ZXIgZmxhZ3MgKi8NCisJdW5zaWduZWQgaW50IGZpbHRlcl9m bGFnczsNCiAJLyogU3RhdHMgYWJvdXQgdGhlIHdpcmVsZXNzIGludGVyZmFjZSAqLw0KIAlzdHJ1 Y3QgaWVlZTgwMjExX2xvd19sZXZlbF9zdGF0cyBpZWVlX3N0YXRzOw0KIA0KQEAgLTc0Nyw4ICs3 NDIsNiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBiNDNfd2xkZXYgKmRldl90b19iDQogLyogSXMg dGhlIGRldmljZSBvcGVyYXRpbmcgaW4gYSBzcGVjaWZpZWQgbW9kZSAoSUVFRTgwMjExX0lGX1RZ UEVfWFhYKS4gKi8NCiBzdGF0aWMgaW5saW5lIGludCBiNDNfaXNfbW9kZShzdHJ1Y3QgYjQzX3ds ICp3bCwgaW50IHR5cGUpDQogew0KLQlpZiAodHlwZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9NTlRS KQ0KLQkJcmV0dXJuICEhKHdsLT5tb25pdG9yKTsNCiAJcmV0dXJuICh3bC0+b3BlcmF0aW5nICYm IHdsLT5pZl90eXBlID09IHR5cGUpOw0KIH0NCiANCi0tLSB3aXJlbGVzcy1kZXYub3JpZy9kcml2 ZXJzL25ldC93aXJlbGVzcy9iNDMvbWFpbi5jCTIwMDctMDgtMTYgMTY6NTE6MjAuNDAzNDY4OTUw ICswMjAwDQorKysgd2lyZWxlc3MtZGV2L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMJ MjAwNy0wOC0xNiAxNjo1NzoxNy41NzM0Njg5NTAgKzAyMDANCkBAIC05MSwxNCArOTEsNiBAQCBz dGF0aWMgY2hhciBtb2RwYXJhbV9md3Bvc3RmaXhbMTZdOw0KIG1vZHVsZV9wYXJhbV9zdHJpbmco Zndwb3N0Zml4LCBtb2RwYXJhbV9md3Bvc3RmaXgsIDE2LCAwNDQ0KTsNCiBNT0RVTEVfUEFSTV9E RVNDKGZ3cG9zdGZpeCwgIlBvc3RmaXggZm9yIHRoZSAuZncgZmlsZXMgdG8gbG9hZC4iKTsNCiAN Ci1zdGF0aWMgaW50IG1vZHBhcmFtX21vbl9rZWVwX2JhZDsNCi1tb2R1bGVfcGFyYW1fbmFtZWQo bW9uX2tlZXBfYmFkLCBtb2RwYXJhbV9tb25fa2VlcF9iYWQsIGludCwgMDQ0NCk7DQotTU9EVUxF X1BBUk1fREVTQyhtb25fa2VlcF9iYWQsICJLZWVwIGJhZCBmcmFtZXMgaW4gbW9uaXRvciBtb2Rl Iik7DQotDQotc3RhdGljIGludCBtb2RwYXJhbV9tb25fa2VlcF9iYWRwbGNwOw0KLW1vZHVsZV9w YXJhbV9uYW1lZChtb25fa2VlcF9iYWRwbGNwLCBtb2RwYXJhbV9tb25fa2VlcF9iYWQsIGludCwg MDQ0NCk7DQotTU9EVUxFX1BBUk1fREVTQyhtb25fa2VlcF9iYWRwbGNwLCAiS2VlcCBmcmFtZXMg d2l0aCBiYWQgUExDUCBpbiBtb25pdG9yIG1vZGUiKTsNCi0NCiBzdGF0aWMgaW50IG1vZHBhcmFt X2h3cGN0bDsNCiBtb2R1bGVfcGFyYW1fbmFtZWQoaHdwY3RsLCBtb2RwYXJhbV9od3BjdGwsIGlu dCwgMDQ0NCk7DQogTU9EVUxFX1BBUk1fREVTQyhod3BjdGwsICJFbmFibGUgaGFyZHdhcmUtc2lk ZSBwb3dlciBjb250cm9sIChkZWZhdWx0IG9mZikiKTsNCkBAIC01NjEsMTIgKzU1MywxMCBAQCBz dGF0aWMgdm9pZCBiNDNfd3JpdGVfbWFjX2Jzc2lkX3RlbXBsYXRlDQogCX0NCiB9DQogDQotc3Rh dGljIHZvaWQgYjQzX3VwbG9hZF9jYXJkX21hY2FkZHJlc3Moc3RydWN0IGI0M193bGRldiAqZGV2 LA0KLQkJCQkgICAgICAgY29uc3QgdTggKiBtYWNfYWRkcikNCitzdGF0aWMgdm9pZCBiNDNfdXBs b2FkX2NhcmRfbWFjYWRkcmVzcyhzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYpDQogew0KLQlkZXYtPnds LT5tYWNfYWRkciA9IG1hY19hZGRyOw0KIAliNDNfd3JpdGVfbWFjX2Jzc2lkX3RlbXBsYXRlcyhk ZXYpOw0KLQliNDNfbWFjZmlsdGVyX3NldChkZXYsIEI0M19NQUNGSUxURVJfU0VMRiwgbWFjX2Fk ZHIpOw0KKwliNDNfbWFjZmlsdGVyX3NldChkZXYsIEI0M19NQUNGSUxURVJfU0VMRiwgZGV2LT53 bC0+bWFjX2FkZHIpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBiNDNfc2V0X3Nsb3RfdGltZShzdHJ1 Y3QgYjQzX3dsZGV2ICpkZXYsIHUxNiBzbG90X3RpbWUpDQpAQCAtMTk1NywzMyArMTk0NywyNSBA QCBzdGF0aWMgdm9pZCBiNDNfYWRqdXN0X29wbW9kZShzdHJ1Y3QgYjQzDQogCWN0bCAmPSB+QjQz X01BQ0NUTF9LRUVQX0JBRFBMQ1A7DQogCWN0bCAmPSB+QjQzX01BQ0NUTF9LRUVQX0JBRDsNCiAJ Y3RsICY9IH5CNDNfTUFDQ1RMX1BST01JU0M7DQorCWN0bCAmPSB+QjQzX01BQ0NUTF9CRUFDUFJP TUlTQzsNCiAJY3RsIHw9IEI0M19NQUNDVExfSU5GUkE7DQogDQotCWlmICh3bC0+b3BlcmF0aW5n KSB7DQotCQlzd2l0Y2ggKHdsLT5pZl90eXBlKSB7DQotCQljYXNlIElFRUU4MDIxMV9JRl9UWVBF X0FQOg0KLQkJCWN0bCB8PSBCNDNfTUFDQ1RMX0FQOw0KLQkJCWJyZWFrOw0KLQkJY2FzZSBJRUVF ODAyMTFfSUZfVFlQRV9JQlNTOg0KLQkJCWN0bCAmPSB+QjQzX01BQ0NUTF9JTkZSQTsNCi0JCQli cmVhazsNCi0JCWNhc2UgSUVFRTgwMjExX0lGX1RZUEVfU1RBOg0KLQkJY2FzZSBJRUVFODAyMTFf SUZfVFlQRV9NTlRSOg0KLQkJY2FzZSBJRUVFODAyMTFfSUZfVFlQRV9XRFM6DQotCQkJYnJlYWs7 DQotCQlkZWZhdWx0Og0KLQkJCUI0M19XQVJOX09OKDEpOw0KLQkJfQ0KLQl9DQotCWlmICh3bC0+ bW9uaXRvcikgew0KKwlpZiAoYjQzX2lzX21vZGUod2wsIElFRUU4MDIxMV9JRl9UWVBFX0FQKSkN CisJCWN0bCB8PSBCNDNfTUFDQ1RMX0FQOw0KKwllbHNlIGlmIChiNDNfaXNfbW9kZSh3bCwgSUVF RTgwMjExX0lGX1RZUEVfSUJTUykpDQorCQljdGwgJj0gfkI0M19NQUNDVExfSU5GUkE7DQorDQor CWlmICh3bC0+ZmlsdGVyX2ZsYWdzICYgRklGX0NPTlRST0wpDQogCQljdGwgfD0gQjQzX01BQ0NU TF9LRUVQX0NUTDsNCi0JCWlmIChtb2RwYXJhbV9tb25fa2VlcF9iYWQpDQotCQkJY3RsIHw9IEI0 M19NQUNDVExfS0VFUF9CQUQ7DQotCQlpZiAobW9kcGFyYW1fbW9uX2tlZXBfYmFkcGxjcCkNCi0J CQljdGwgfD0gQjQzX01BQ0NUTF9LRUVQX0JBRFBMQ1A7DQotCX0NCi0JaWYgKHdsLT5wcm9taXNj KQ0KKwlpZiAod2wtPmZpbHRlcl9mbGFncyAmIEZJRl9GQ1NGQUlMKQ0KKwkJY3RsIHw9IEI0M19N QUNDVExfS0VFUF9CQUQ7DQorCWlmICh3bC0+ZmlsdGVyX2ZsYWdzICYgRklGX1BMQ1BGQUlMKQ0K KwkJY3RsIHw9IEI0M19NQUNDVExfS0VFUF9CQURQTENQOw0KKwlpZiAod2wtPmZpbHRlcl9mbGFn cyAmIEZJRl9QUk9NSVNDX0lOX0JTUykNCiAJCWN0bCB8PSBCNDNfTUFDQ1RMX1BST01JU0M7DQor CWlmICh3bC0+ZmlsdGVyX2ZsYWdzICYgRklGX0JDTl9QUkJSRVNQX1BST01JU0MpDQorCQljdGwg fD0gQjQzX01BQ0NUTF9CRUFDUFJPTUlTQzsNCisNCiAJLyogV29ya2Fyb3VuZDogT24gb2xkIGhh cmR3YXJlIHRoZSBIVy1NQUMtYWRkcmVzcy1maWx0ZXINCiAJICogZG9lc24ndCB3b3JrIHByb3Bl cmx5LCBzbyBhbHdheXMgcnVuIHByb21pc2MgaW4gZmlsdGVyDQogCSAqIGl0IGluIHNvZnR3YXJl LiAqLw0KQEAgLTIxNDcsOSArMjEyOSw2IEBAIHN0YXRpYyBpbnQgYjQzX2NoaXBfaW5pdChzdHJ1 Y3QgYjQzX3dsZGUNCiAJCSAgICAmIH5CNDNfTUFDQ1RMX0lORlJBKTsNCiAJYjQzX3dyaXRlMzIo ZGV2LCBCNDNfTU1JT19NQUNDVEwsIGI0M19yZWFkMzIoZGV2LCBCNDNfTU1JT19NQUNDVEwpDQog CQkgICAgfCBCNDNfTUFDQ1RMX0lORlJBKTsNCi0JLyogTGV0IGJlYWNvbnMgY29tZSB0aHJvdWdo ICovDQotCWI0M193cml0ZTMyKGRldiwgQjQzX01NSU9fTUFDQ1RMLCBiNDNfcmVhZDMyKGRldiwg QjQzX01NSU9fTUFDQ1RMKQ0KLQkJICAgIHwgQjQzX01BQ0NUTF9CRUFDUFJPTUlTQyk7DQogDQog CWlmIChiNDNfdXNpbmdfcGlvKGRldikpIHsNCiAJCWI0M193cml0ZTMyKGRldiwgMHgwMjEwLCAw eDAwMDAwMTAwKTsNCkBAIC0yODkzLDIxICsyODcyLDQxIEBAIG91dDoNCiAJcmV0dXJuIGVycjsN CiB9DQogDQotc3RhdGljIHZvaWQgYjQzX3NldF9tdWx0aWNhc3RfbGlzdChzdHJ1Y3QgaWVlZTgw MjExX2h3ICpodywNCi0JCQkJICAgdW5zaWduZWQgc2hvcnQgbmV0ZmxhZ3MsIGludCBtY19jb3Vu dCkNCitzdGF0aWMgdm9pZCBiNDNfY29uZmlndXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3 ICpodywNCisJCQkJIGludCBtdWx0aV9jb3VudCwNCisJCQkJIHVuc2lnbmVkIGludCBjaGFuZ2Vk LA0KKwkJCQkgdW5zaWduZWQgaW50ICpmZmxhZ3MpDQogew0KIAlzdHJ1Y3QgYjQzX3dsICp3bCA9 IGh3X3RvX2I0M193bChodyk7DQogCXN0cnVjdCBiNDNfd2xkZXYgKmRldiA9IHdsLT5jdXJyZW50 X2RldjsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiANCi0JaWYgKCFkZXYpDQorCWlmICghZGV2 KSB7DQorCQkqZmZsYWdzID0gMDsNCiAJCXJldHVybjsNCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnds LT5pcnFfbG9jaywgZmxhZ3MpOw0KLQlpZiAod2wtPnByb21pc2MgIT0gISEobmV0ZmxhZ3MgJiBJ RkZfUFJPTUlTQykpIHsNCi0JCXdsLT5wcm9taXNjID0gISEobmV0ZmxhZ3MgJiBJRkZfUFJPTUlT Qyk7DQotCQlpZiAoYjQzX3N0YXR1cyhkZXYpID49IEI0M19TVEFUX0lOSVRJQUxJWkVEKQ0KLQkJ CWI0M19hZGp1c3Rfb3Btb2RlKGRldik7DQogCX0NCisNCisJc3Bpbl9sb2NrX2lycXNhdmUoJnds LT5pcnFfbG9jaywgZmxhZ3MpOw0KKwkqZmZsYWdzICY9IEZJRl9QUk9NSVNDX0lOX0JTUyB8DQor CQkgIEZJRl9BTExNVUxUSSB8DQorCQkgIEZJRl9GQ1NGQUlMIHwNCisJCSAgRklGX1BMQ1BGQUlM IHwNCisJCSAgRklGX0NPTlRST0wgfA0KKwkJICBGSUZfT1RIRVJfQlNTIHwNCisJCSAgRklGX0JD Tl9QUkJSRVNQX1BST01JU0M7DQorDQorCWNoYW5nZWQgJj0gRklGX1BST01JU0NfSU5fQlNTIHwN CisJCSAgIEZJRl9BTExNVUxUSSB8DQorCQkgICBGSUZfRkNTRkFJTCB8DQorCQkgICBGSUZfUExD UEZBSUwgfA0KKwkJICAgRklGX0NPTlRST0wgfA0KKwkJICAgRklGX09USEVSX0JTUyB8DQorCQkg ICBGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQzsNCisNCisJd2wtPmZpbHRlcl9mbGFncyA9ICpmZmxh Z3M7DQorDQorCWlmIChjaGFuZ2VkICYmIGI0M19zdGF0dXMoZGV2KSA+PSBCNDNfU1RBVF9JTklU SUFMSVpFRCkNCisJCWI0M19hZGp1c3Rfb3Btb2RlKGRldik7DQogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJndsLT5pcnFfbG9jaywgZmxhZ3MpOw0KIH0NCiANCkBAIC0yOTIyLDE4ICsyOTIxLDE2 IEBAIHN0YXRpYyBpbnQgYjQzX2NvbmZpZ19pbnRlcmZhY2Uoc3RydWN0IGkNCiAJCXJldHVybiAt RU5PREVWOw0KIAltdXRleF9sb2NrKCZ3bC0+bXV0ZXgpOw0KIAlzcGluX2xvY2tfaXJxc2F2ZSgm d2wtPmlycV9sb2NrLCBmbGFncyk7DQotCWlmIChjb25mLT50eXBlICE9IElFRUU4MDIxMV9JRl9U WVBFX01OVFIpIHsNCi0JCUI0M19XQVJOX09OKHdsLT5pZl9pZCAhPSBpZl9pZCk7DQotCQl3bC0+ YnNzaWQgPSBjb25mLT5ic3NpZDsNCi0JCWlmIChiNDNfc3RhdHVzKGRldikgPj0gQjQzX1NUQVRf SU5JVElBTElaRUQpIHsNCi0JCQlpZiAoYjQzX2lzX21vZGUod2wsIElFRUU4MDIxMV9JRl9UWVBF X0FQKSkgew0KLQkJCQlCNDNfV0FSTl9PTihjb25mLT50eXBlICE9IElFRUU4MDIxMV9JRl9UWVBF X0FQKTsNCi0JCQkJYjQzX3NldF9zc2lkKGRldiwgY29uZi0+c3NpZCwgY29uZi0+c3NpZF9sZW4p Ow0KLQkJCQlpZiAoY29uZi0+YmVhY29uKQ0KLQkJCQkJYjQzX3JlZnJlc2hfdGVtcGxhdGVzKGRl diwgY29uZi0+YmVhY29uKTsNCi0JCQl9DQotCQkJYjQzX3dyaXRlX21hY19ic3NpZF90ZW1wbGF0 ZXMoZGV2KTsNCisJQjQzX1dBUk5fT04od2wtPmlmX2lkICE9IGlmX2lkKTsNCisJd2wtPmJzc2lk ID0gY29uZi0+YnNzaWQ7DQorCWlmIChiNDNfc3RhdHVzKGRldikgPj0gQjQzX1NUQVRfSU5JVElB TElaRUQpIHsNCisJCWlmIChiNDNfaXNfbW9kZSh3bCwgSUVFRTgwMjExX0lGX1RZUEVfQVApKSB7 DQorCQkJQjQzX1dBUk5fT04oY29uZi0+dHlwZSAhPSBJRUVFODAyMTFfSUZfVFlQRV9BUCk7DQor CQkJYjQzX3NldF9zc2lkKGRldiwgY29uZi0+c3NpZCwgY29uZi0+c3NpZF9sZW4pOw0KKwkJCWlm IChjb25mLT5iZWFjb24pDQorCQkJCWI0M19yZWZyZXNoX3RlbXBsYXRlcyhkZXYsIGNvbmYtPmJl YWNvbik7DQogCQl9DQorCQliNDNfd3JpdGVfbWFjX2Jzc2lkX3RlbXBsYXRlcyhkZXYpOw0KIAl9 DQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndsLT5pcnFfbG9jaywgZmxhZ3MpOw0KIAltdXRl eF91bmxvY2soJndsLT5tdXRleCk7DQpAQCAtMzM1Myw3ICszMzUwLDggQEAgc3RhdGljIGludCBi NDNfd2lyZWxlc3NfY29yZV9pbml0KHN0cnVjdA0KIA0KIAlzc2JfYnVzX3Bvd2VydXAoYnVzLCAx KTsJLyogRW5hYmxlIGR5bmFtaWMgUENUTCAqLw0KIAl3bC0+YnNzaWQgPSBOVUxMOw0KLQliNDNf dXBsb2FkX2NhcmRfbWFjYWRkcmVzcyhkZXYsIE5VTEwpOw0KKwl3bC0+bWFjX2FkZHIgPSBOVUxM Ow0KKwliNDNfdXBsb2FkX2NhcmRfbWFjYWRkcmVzcyhkZXYpOw0KIAliNDNfc2VjdXJpdHlfaW5p dChkZXYpOw0KIAliNDNfcm5nX2luaXQod2wpOw0KIA0KQEAgLTMzODMsMjEgKzMzODEsODAgQEAg c3RhdGljIGludCBiNDNfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZQ0KIAlzdHJ1Y3QgYjQzX3ds ZGV2ICpkZXY7DQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogCWludCBlcnIgPSAtRU9QTk9UU1VQ UDsNCi0JaW50IGRpZF9pbml0ID0gMDsNCisNCisJLyogVE9ETzogYWxsb3cgV0RTL0FQIGRldmlj ZXMgdG8gY29leGlzdCAqLw0KKw0KKwlpZiAoY29uZi0+dHlwZSAhPSBJRUVFODAyMTFfSUZfVFlQ RV9BUCAmJg0KKwkgICAgY29uZi0+dHlwZSAhPSBJRUVFODAyMTFfSUZfVFlQRV9TVEEgJiYNCisJ ICAgIGNvbmYtPnR5cGUgIT0gSUVFRTgwMjExX0lGX1RZUEVfV0RTICYmDQorCSAgICBjb25mLT50 eXBlICE9IElFRUU4MDIxMV9JRl9UWVBFX0lCU1MpDQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQog DQogCW11dGV4X2xvY2soJndsLT5tdXRleCk7DQotCWlmICgoY29uZi0+dHlwZSAhPSBJRUVFODAy MTFfSUZfVFlQRV9NTlRSKSAmJiB3bC0+b3BlcmF0aW5nKQ0KKwlpZiAod2wtPm9wZXJhdGluZykN CiAJCWdvdG8gb3V0X211dGV4X3VubG9jazsNCiANCiAJYmNtZGJnKHdsLCAiQWRkaW5nIEludGVy ZmFjZSB0eXBlICVkXG4iLCBjb25mLT50eXBlKTsNCiANCiAJZGV2ID0gd2wtPmN1cnJlbnRfZGV2 Ow0KKwl3bC0+b3BlcmF0aW5nID0gMTsNCisJd2wtPmlmX2lkID0gY29uZi0+aWZfaWQ7DQorCXds LT5pZl90eXBlID0gY29uZi0+dHlwZTsNCisJd2wtPm1hY19hZGRyID0gY29uZi0+bWFjX2FkZHI7 DQorDQorCXNwaW5fbG9ja19pcnFzYXZlKCZ3bC0+aXJxX2xvY2ssIGZsYWdzKTsNCisJYjQzX2Fk anVzdF9vcG1vZGUoZGV2KTsNCisJYjQzX3VwbG9hZF9jYXJkX21hY2FkZHJlc3MoZGV2KTsNCisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPmlycV9sb2NrLCBmbGFncyk7DQorDQorCWVyciA9 IDA7DQorIG91dF9tdXRleF91bmxvY2s6DQorCW11dGV4X3VubG9jaygmd2wtPm11dGV4KTsNCisN CisJcmV0dXJuIGVycjsNCit9DQorDQorc3RhdGljIHZvaWQgYjQzX3JlbW92ZV9pbnRlcmZhY2Uo c3RydWN0IGllZWU4MDIxMV9odyAqaHcsDQorCQkJCSBzdHJ1Y3QgaWVlZTgwMjExX2lmX2luaXRf Y29uZiAqY29uZikNCit7DQorCXN0cnVjdCBiNDNfd2wgKndsID0gaHdfdG9fYjQzX3dsKGh3KTsN CisJc3RydWN0IGI0M193bGRldiAqZGV2ID0gd2wtPmN1cnJlbnRfZGV2Ow0KKwl1bnNpZ25lZCBs b25nIGZsYWdzOw0KKw0KKwliY21kYmcod2wsICJSZW1vdmluZyBJbnRlcmZhY2UgdHlwZSAlZFxu IiwgY29uZi0+dHlwZSk7DQorDQorCW11dGV4X2xvY2soJndsLT5tdXRleCk7DQorDQorCUI0M19X QVJOX09OKCF3bC0+b3BlcmF0aW5nKTsNCisJQjQzX1dBUk5fT04od2wtPmlmX2lkICE9IGNvbmYt PmlmX2lkKTsNCisNCisJd2wtPm9wZXJhdGluZyA9IDA7DQorDQorCXNwaW5fbG9ja19pcnFzYXZl KCZ3bC0+aXJxX2xvY2ssIGZsYWdzKTsNCisJYjQzX2FkanVzdF9vcG1vZGUoZGV2KTsNCisJd2wt Pm1hY19hZGRyID0gTlVMTDsNCisJYjQzX3VwbG9hZF9jYXJkX21hY2FkZHJlc3MoZGV2KTsNCisJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPmlycV9sb2NrLCBmbGFncyk7DQorDQorCW11dGV4 X3VubG9jaygmd2wtPm11dGV4KTsNCit9DQorDQorc3RhdGljIGludCBiNDNfc3RhcnQoc3RydWN0 IGllZWU4MDIxMV9odyAqaHcpDQorew0KKwlzdHJ1Y3QgYjQzX3dsICp3bCA9IGh3X3RvX2I0M193 bChodyk7DQorCXN0cnVjdCBiNDNfd2xkZXYgKmRldiA9IHdsLT5jdXJyZW50X2RldjsNCisJaW50 IGRpZF9pbml0ID0gMDsNCisJaW50IGVycjsNCisNCisJbXV0ZXhfbG9jaygmd2wtPm11dGV4KTsN CisNCiAJaWYgKGI0M19zdGF0dXMoZGV2KSA8IEI0M19TVEFUX0lOSVRJQUxJWkVEKSB7DQogCQll cnIgPSBiNDNfd2lyZWxlc3NfY29yZV9pbml0KGRldik7DQogCQlpZiAoZXJyKQ0KIAkJCWdvdG8g b3V0X211dGV4X3VubG9jazsNCiAJCWRpZF9pbml0ID0gMTsNCiAJfQ0KKw0KIAlpZiAoYjQzX3N0 YXR1cyhkZXYpIDwgQjQzX1NUQVRfU1RBUlRFRCkgew0KIAkJZXJyID0gYjQzX3dpcmVsZXNzX2Nv cmVfc3RhcnQoZGV2KTsNCiAJCWlmIChlcnIpIHsNCkBAIC0zNDA3LDU5ICszNDY0LDIxIEBAIHN0 YXRpYyBpbnQgYjQzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWUNCiAJCX0NCiAJfQ0KIA0KLQlz cGluX2xvY2tfaXJxc2F2ZSgmd2wtPmlycV9sb2NrLCBmbGFncyk7DQotCXN3aXRjaCAoY29uZi0+ dHlwZSkgew0KLQljYXNlIElFRUU4MDIxMV9JRl9UWVBFX01OVFI6DQotCQl3bC0+bW9uaXRvcisr Ow0KLQkJYnJlYWs7DQotCWRlZmF1bHQ6DQotCQl3bC0+b3BlcmF0aW5nID0gMTsNCi0JCXdsLT5p Zl9pZCA9IGNvbmYtPmlmX2lkOw0KLQkJd2wtPmlmX3R5cGUgPSBjb25mLT50eXBlOw0KLQkJYjQz X3VwbG9hZF9jYXJkX21hY2FkZHJlc3MoZGV2LCBjb25mLT5tYWNfYWRkcik7DQotCX0NCi0JYjQz X2FkanVzdF9vcG1vZGUoZGV2KTsNCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPmlycV9s b2NrLCBmbGFncyk7DQotDQotCWVyciA9IDA7DQotICAgICAgb3V0X211dGV4X3VubG9jazoNCisg b3V0X211dGV4X3VubG9jazoNCiAJbXV0ZXhfdW5sb2NrKCZ3bC0+bXV0ZXgpOw0KIA0KIAlyZXR1 cm4gZXJyOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBiNDNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3Qg aWVlZTgwMjExX2h3ICpodywNCi0JCQkJIHN0cnVjdCBpZWVlODAyMTFfaWZfaW5pdF9jb25mICpj b25mKQ0KK3ZvaWQgYjQzX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpDQogew0KIAlzdHJ1 Y3QgYjQzX3dsICp3bCA9IGh3X3RvX2I0M193bChodyk7DQotCXN0cnVjdCBiNDNfd2xkZXYgKmRl djsNCi0JdW5zaWduZWQgbG9uZyBmbGFnczsNCi0NCi0JYmNtZGJnKHdsLCAiUmVtb3ZpbmcgSW50 ZXJmYWNlIHR5cGUgJWRcbiIsIGNvbmYtPnR5cGUpOw0KKwlzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYg PSB3bC0+Y3VycmVudF9kZXY7DQogDQogCW11dGV4X2xvY2soJndsLT5tdXRleCk7DQotCWlmIChj b25mLT50eXBlID09IElFRUU4MDIxMV9JRl9UWVBFX01OVFIpIHsNCi0JCXdsLT5tb25pdG9yLS07 DQotCQlCNDNfV0FSTl9PTih3bC0+bW9uaXRvciA8IDApOw0KLQl9IGVsc2Ugew0KLQkJQjQzX1dB Uk5fT04oIXdsLT5vcGVyYXRpbmcpOw0KLQkJd2wtPm9wZXJhdGluZyA9IDA7DQotCX0NCi0NCi0J ZGV2ID0gd2wtPmN1cnJlbnRfZGV2Ow0KLQlpZiAoIXdsLT5vcGVyYXRpbmcgJiYgd2wtPm1vbml0 b3IgPT0gMCkgew0KLQkJLyogTm8gaW50ZXJmYWNlIGxlZnQuICovDQotCQlpZiAoYjQzX3N0YXR1 cyhkZXYpID49IEI0M19TVEFUX1NUQVJURUQpDQotCQkJYjQzX3dpcmVsZXNzX2NvcmVfc3RvcChk ZXYpOw0KLQkJYjQzX3dpcmVsZXNzX2NvcmVfZXhpdChkZXYpOw0KLQl9IGVsc2Ugew0KLQkJLyog SnVzdCBtb25pdG9yIGludGVyZmFjZXMgbGVmdC4gKi8NCi0JCXNwaW5fbG9ja19pcnFzYXZlKCZ3 bC0+aXJxX2xvY2ssIGZsYWdzKTsNCi0JCWI0M19hZGp1c3Rfb3Btb2RlKGRldik7DQotCQlpZiAo IXdsLT5vcGVyYXRpbmcpDQotCQkJYjQzX3VwbG9hZF9jYXJkX21hY2FkZHJlc3MoZGV2LCBOVUxM KTsNCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndsLT5pcnFfbG9jaywgZmxhZ3MpOw0KLQl9 DQorCWlmIChiNDNfc3RhdHVzKGRldikgPj0gQjQzX1NUQVRfU1RBUlRFRCkNCisJCWI0M193aXJl bGVzc19jb3JlX3N0b3AoZGV2KTsNCisJYjQzX3dpcmVsZXNzX2NvcmVfZXhpdChkZXYpOw0KIAlt dXRleF91bmxvY2soJndsLT5tdXRleCk7DQogfQ0KIA0KQEAgLTM0NzAsMTAgKzM0ODksMTIgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIGI0M19odw0KIAkucmVtb3ZlX2ludGVy ZmFjZSA9IGI0M19yZW1vdmVfaW50ZXJmYWNlLA0KIAkuY29uZmlnID0gYjQzX2Rldl9jb25maWcs DQogCS5jb25maWdfaW50ZXJmYWNlID0gYjQzX2NvbmZpZ19pbnRlcmZhY2UsDQotCS5zZXRfbXVs dGljYXN0X2xpc3QgPSBiNDNfc2V0X211bHRpY2FzdF9saXN0LA0KKwkuY29uZmlndXJlX2ZpbHRl ciA9IGI0M19jb25maWd1cmVfZmlsdGVyLA0KIAkuc2V0X2tleSA9IGI0M19kZXZfc2V0X2tleSwN CiAJLmdldF9zdGF0cyA9IGI0M19nZXRfc3RhdHMsDQogCS5nZXRfdHhfc3RhdHMgPSBiNDNfZ2V0 X3R4X3N0YXRzLA0KKwkuc3RhcnQgPSBiNDNfc3RhcnQsDQorCS5zdG9wID0gYjQzX3N0b3AsDQog fTsNCiANCiAvKiBIYXJkLXJlc2V0IHRoZSBjaGlwLiBEbyBub3QgY2FsbCB0aGlzIGRpcmVjdGx5 Lg0KQEAgLTM4MTEsNyArMzgzMiw2IEBAIHN0YXRpYyBpbnQgYjQzX3dpcmVsZXNzX2luaXQoc3Ry dWN0IHNzYl8NCiANCiAJLyogZmlsbCBodyBpbmZvICovDQogCWh3LT5mbGFncyA9IElFRUU4MDIx MV9IV19IT1NUX0dFTl9CRUFDT05fVEVNUExBVEUgfA0KLQkgICAgSUVFRTgwMjExX0hXX01PTklU T1JfRFVSSU5HX09QRVIgfA0KIAkgICAgSUVFRTgwMjExX0hXX0RFVklDRV9ISURFU19XRVAgfCBJ RUVFODAyMTFfSFdfV0VQX0lOQ0xVREVfSVY7DQogCWh3LT5tYXhfc2lnbmFsID0gMTAwOw0KIAlo dy0+bWF4X3Jzc2kgPSAtMTEwOw0K --=-wIrGxo3XYvGgwtIIY9al Content-Disposition: attachment; filename=iwlwifi.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=iwlwifi.patch; charset=utf-8 LS0tIHdpcmVsZXNzLWRldi5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bC1iYXNlLmMJMjAw Ny0wOC0xNiAxNjo1MToyMC40MzM0Njg5NTAgKzAyMDANCisrKyB3aXJlbGVzcy1kZXYvZHJpdmVy cy9uZXQvd2lyZWxlc3MvaXdsLWJhc2UuYwkyMDA3LTA4LTE2IDE2OjU3OjE3LjY1MzQ2ODk1MCAr MDIwMA0KQEAgLTI1OTEsNiArMjU5MSw4IEBAIHN0YXRpYyB2b2lkIGl3bF9zZXRfZmxhZ3NfZm9y X3BoeW1vZGUoc3QNCiANCiAvKg0KICAqIGluaXRpbGl6ZSByeG9uIHN0cnVjdHVyZSB3aXRoIGRl ZmF1bHQgdmFsdWVzIGZyb21tIGVlcHJvbQ0KKyAqDQorICogWFhYOiBUaGlzIGZ1bmN0aW9uIHNo b3VsZCB1c2UgdGhlIGZpbHRlciBmbGFncyBpbnN0ZWFkIQ0KICAqLw0KIHN0YXRpYyB2b2lkIGl3 bF9jb25uZWN0aW9uX2luaXRfcnhfY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdikNCiB7DQpA QCAtNzUwMiw3ICs3NTA0LDcgQEAgc3RhdGljIHZvaWQgaXdsX2JnX3NjYW5fY29tcGxldGVkKHN0 cnVjdA0KICAqDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIA0KLXN0YXRpYyBpbnQgaXdsX21h Y19vcGVuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQ0KK3N0YXRpYyBpbnQgaXdsX21hY19zdGFy dChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiB7DQogCXN0cnVjdCBpd2xfcHJpdiAqcHJpdiA9 IGh3LT5wcml2Ow0KIA0KQEAgLTc1MjEsNyArNzUyMyw3IEBAIHN0YXRpYyBpbnQgaXdsX21hY19v cGVuKHN0cnVjdCBpZWVlODAyMTENCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBpbnQgaXds X21hY19zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQ0KK3N0YXRpYyB2b2lkIGl3bF9tYWNf c3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiB7DQogCXN0cnVjdCBpd2xfcHJpdiAqcHJp diA9IGh3LT5wcml2Ow0KIA0KQEAgLTc1MzAsOCArNzUzMiwxOCBAQCBzdGF0aWMgaW50IGl3bF9t YWNfc3RvcChzdHJ1Y3QgaWVlZTgwMjExDQogCS8qbmV0aWZfc3RvcF9xdWV1ZShkZXYpOyAqLw0K IAlmbHVzaF93b3JrcXVldWUocHJpdi0+d29ya3F1ZXVlKTsNCiAJSVdMX0RFQlVHX01BQzgwMjEx KCJsZWF2ZVxuIik7DQorfQ0KIA0KLQlyZXR1cm4gMDsNCitzdGF0aWMgdm9pZCBpd2xfY29uZmln dXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCisJCQkJIGludCBtdWx0aV9jb3Vu dCwNCisJCQkJIHVuc2lnbmVkIGludCBjaGFuZ2VkX2ZsYWdzLA0KKwkJCQkgdW5zaWduZWQgaW50 ICp0b3RhbF9mbGFncykNCit7DQorCS8qDQorCSAqIFhYWDogZHVtbXkNCisJICogc2VlIGFsc28g aXdsX2Nvbm5lY3Rpb25faW5pdF9yeF9jb25maWcNCisJICovDQorCSp0b3RhbF9mbGFncyA9IDA7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgaXdsX21hY190eChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywg c3RydWN0IHNrX2J1ZmYgKnNrYiwNCkBAIC03NzAwLDYgKzc3MTIsOCBAQCBzdGF0aWMgaW50IGl3 bF9tYWNfY29uZmlnX2ludGVyZmFjZShzdHJ1DQogCWlmIChjb25mID09IE5VTEwpDQogCQlyZXR1 cm4gLUVJTzsNCiANCisJLyogVE9ETzogdXNlIGNvbmYtPm1hY19hZGRyICovDQorDQogCWlmICgo cHJpdi0+aXdfbW9kZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9BUCkgJiYNCiAJICAgICghY29uZi0+ YmVhY29uIHx8ICFjb25mLT5zc2lkX2xlbikpIHsNCiAJCUlXTF9ERUJVR19NQUM4MDIxMQ0KQEAg LTc3MTQsOCArNzcyOCwxNCBAQCBzdGF0aWMgaW50IGl3bF9tYWNfY29uZmlnX2ludGVyZmFjZShz dHJ1DQogCQlJV0xfREVCVUdfTUFDODAyMTEoImJzc2lkOiAiIE1BQ19GTVQgIlxuIiwNCiAJCQkJ ICAgTUFDX0FSRyhjb25mLT5ic3NpZCkpOw0KIA0KKwkvKg0KKwkgKiBYWFg6IHRoZXJlIHdhcyBh IHRlc3QgZm9yIElFRUU4MDIxMV9IV19OT19QUk9CRV9GSUxURVJJTkcgaGVyZQ0KKwkgKgl3aGlj aCBtdXN0IGhhdmUgYmVlbiB3cm9uZyBzaW5jZSBpdCB3YXMgYWx3YXlzIHRydWUuDQorCSAqCXRo ZSB0ZXN0IHdhczoNCiAJaWYgKHVubGlrZWx5KHByaXYtPnN0YXR1cyAmIFNUQVRVU19TQ0FOTklO RykgJiYNCiAJICAgICEocHJpdi0+aHctPmZsYWdzICYgSUVFRTgwMjExX0hXX05PX1BST0JFX0ZJ TFRFUklORykpIHsNCisJICovDQorCWlmICh1bmxpa2VseShwcml2LT5zdGF0dXMgJiBTVEFUVVNf U0NBTk5JTkcpKSB7DQogCQlJV0xfREVCVUdfTUFDODAyMTEoImxlYXZlIC0gc2Nhbm5pbmdcbiIp Ow0KIAkJbXV0ZXhfdW5sb2NrKCZwcml2LT5tdXRleCk7DQogCQlyZXR1cm4gMDsNCkBAIC03ODA4 LDYgKzc4MjgsOCBAQCBzdGF0aWMgdm9pZCBpd2xfbWFjX3JlbW92ZV9pbnRlcmZhY2Uoc3RyDQog CX0NCiAJbXV0ZXhfdW5sb2NrKCZwcml2LT5tdXRleCk7DQogDQorCS8qIFRPRE86IGNsZWFyIE1B QyBhZGRyZXNzIGluIGhhcmR3YXJlICovDQorDQogCUlXTF9ERUJVR19NQUM4MDIxMSgibGVhdmVc biIpOw0KIA0KIH0NCkBAIC05MDU2LDEwICs5MDc4LDExIEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlX2dyb3VwIGl3bF9hdHRyaWINCiANCiBzdGF0aWMgc3RydWN0IGllZWU4MDIxMV9vcHMgaXds X2h3X29wcyA9IHsNCiAJLnR4ID0gaXdsX21hY190eCwNCi0JLm9wZW4gPSBpd2xfbWFjX29wZW4s DQorCS5zdGFydCA9IGl3bF9tYWNfc3RhcnQsDQogCS5zdG9wID0gaXdsX21hY19zdG9wLA0KIAku YWRkX2ludGVyZmFjZSA9IGl3bF9tYWNfYWRkX2ludGVyZmFjZSwNCiAJLnJlbW92ZV9pbnRlcmZh Y2UgPSBpd2xfbWFjX3JlbW92ZV9pbnRlcmZhY2UsDQorCS5jb25maWd1cmVfZmlsdGVyID0gaXds X2NvbmZpZ3VyZV9maWx0ZXIsDQogCS5jb25maWcgPSBpd2xfbWFjX2NvbmZpZywNCiAJLmNvbmZp Z19pbnRlcmZhY2UgPSBpd2xfbWFjX2NvbmZpZ19pbnRlcmZhY2UsDQogCS5zZXRfa2V5ID0gaXds X21hY19zZXRfa2V5LA0K --=-wIrGxo3XYvGgwtIIY9al Content-Disposition: attachment; filename=rtl8187.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=rtl8187.patch; charset=utf-8 LS0tIHdpcmVsZXNzLWRldi5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxODdfZGV2LmMJ MjAwNy0wOC0xNiAxNjo1MToyMC40NjM0Njg5NTAgKzAyMDANCisrKyB3aXJlbGVzcy1kZXYvZHJp dmVycy9uZXQvd2lyZWxlc3MvcnRsODE4N19kZXYuYwkyMDA3LTA4LTE2IDE2OjU2OjEzLjE1MzQ2 ODk1MCArMDIwMA0KQEAgLTM2NSw3ICszNjUsNyBAQCBzdGF0aWMgdm9pZCBydGw4MTg3X3NldF9j aGFubmVsKHN0cnVjdCBpDQogCXJ0bDgxOHhfaW93cml0ZTMyKHByaXYsICZwcml2LT5tYXAtPlRY X0NPTkYsIHJlZyk7DQogfQ0KIA0KLXN0YXRpYyBpbnQgcnRsODE4N19vcGVuKHN0cnVjdCBpZWVl ODAyMTFfaHcgKmRldikNCitzdGF0aWMgaW50IHJ0bDgxODdfc3RhcnQoc3RydWN0IGllZWU4MDIx MV9odyAqZGV2KQ0KIHsNCiAJc3RydWN0IHJ0bDgxODdfcHJpdiAqcHJpdiA9IGRldi0+cHJpdjsN CiAJdTMyIHJlZzsNCkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIGludCBydGw4MTg3X29wZW4o c3RydWN0IGllZWU4MDIxMQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBydGw4MTg3 X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqZGV2KQ0KK3N0YXRpYyB2b2lkIHJ0bDgxODdfc3Rv cChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpkZXYpDQogew0KIAlzdHJ1Y3QgcnRsODE4N19wcml2ICpw cml2ID0gZGV2LT5wcml2Ow0KIAlzdHJ1Y3QgcnRsODE4N19yeF9pbmZvICppbmZvOw0KQEAgLTQ0 NSw3ICs0NDUsNiBAQCBzdGF0aWMgaW50IHJ0bDgxODdfc3RvcChzdHJ1Y3QgaWVlZTgwMjExDQog CQl1c2Jfa2lsbF91cmIoaW5mby0+dXJiKTsNCiAJCWtmcmVlX3NrYihza2IpOw0KIAl9DQotCXJl dHVybiAwOw0KIH0NCiANCiBzdGF0aWMgaW50IHJ0bDgxODdfYWRkX2ludGVyZmFjZShzdHJ1Y3Qg aWVlZTgwMjExX2h3ICpkZXYsDQpAQCAtNDc2LDYgKzQ3NSw4IEBAIHN0YXRpYyB2b2lkIHJ0bDgx ODdfcmVtb3ZlX2ludGVyZmFjZShzdHINCiB7DQogCXN0cnVjdCBydGw4MTg3X3ByaXYgKnByaXYg PSBkZXYtPnByaXY7DQogCXByaXYtPm1vZGUgPSBJRUVFODAyMTFfSUZfVFlQRV9NR01UOw0KKw0K KwkvKiBUT0RPOiByZXNldCBNQUMgYWRkcmVzcyB0byB6ZXJvZXMgKi8NCiB9DQogDQogc3RhdGlj IGludCBydGw4MTg3X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpkZXYsIHN0cnVjdCBpZWVl ODAyMTFfY29uZiAqY29uZikNCkBAIC01MjMsMTQgKzUyNCwyOCBAQCBzdGF0aWMgaW50IHJ0bDgx ODdfY29uZmlnX2ludGVyZmFjZShzdHJ1DQogCXJldHVybiAwOw0KIH0NCiANCitzdGF0aWMgdm9p ZCBydGw4MTg3X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqZGV2LA0KKwkJ CQkgICAgIGludCBtdWx0aV9jb3VudCwNCisJCQkJICAgICB1bnNpZ25lZCBpbnQgY2hhbmdlZCwN CisJCQkJICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQ0KK3sNCisJLyoNCisJICogWFhYOiBkdW1t eQ0KKwkgKg0KKwkgKiBUT0RPOiBjaGFuZ2UgZmlsdGVyIGZsYWdzDQorCSAqLw0KKwkqZmxhZ3Mg PSAwOw0KK30NCisNCiBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9vcHMgcnRsODE4N19v cHMgPSB7DQogCS50eAkJCT0gcnRsODE4N190eCwNCi0JLm9wZW4JCQk9IHJ0bDgxODdfb3BlbiwN CisJLnN0YXJ0CQkJPSBydGw4MTg3X3N0YXJ0LA0KIAkuc3RvcAkJCT0gcnRsODE4N19zdG9wLA0K IAkuYWRkX2ludGVyZmFjZQkJPSBydGw4MTg3X2FkZF9pbnRlcmZhY2UsDQogCS5yZW1vdmVfaW50 ZXJmYWNlCT0gcnRsODE4N19yZW1vdmVfaW50ZXJmYWNlLA0KIAkuY29uZmlnCQkJPSBydGw4MTg3 X2NvbmZpZywNCiAJLmNvbmZpZ19pbnRlcmZhY2UJPSBydGw4MTg3X2NvbmZpZ19pbnRlcmZhY2Us DQorCS5jb25maWd1cmVfZmlsdGVyCT0gcnRsODE4N19jb25maWd1cmVfZmlsdGVyLA0KIH07DQog DQogc3RhdGljIHZvaWQgcnRsODE4N19lZXByb21fcmVnaXN0ZXJfcmVhZChzdHJ1Y3QgZWVwcm9t XzkzY3g2ICplZXByb20pDQo= --=-wIrGxo3XYvGgwtIIY9al Content-Disposition: attachment; filename=zd1211.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=zd1211.patch; charset=utf-8 LS0tIHdpcmVsZXNzLWRldi5vcmlnL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIxMXJ3LW1hYzgw MjExL3pkX21hYy5jCTIwMDctMDgtMTYgMTY6NTE6MjAuNTMzNDY4OTUwICswMjAwDQorKysgd2ly ZWxlc3MtZGV2L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIxMXJ3LW1hYzgwMjExL3pkX21hYy5j CTIwMDctMDgtMTYgMTY6NTY6MTMuMTUzNDY4OTUwICswMjAwDQpAQCAtMTcwLDI5ICsxNzAsMTgg QEAgdm9pZCB6ZF9tYWNfY2xlYXIoc3RydWN0IHpkX21hYyAqbWFjKQ0KIAlaRF9NRU1DTEVBUiht YWMsIHNpemVvZihzdHJ1Y3QgemRfbWFjKSk7DQogfQ0KIA0KLS8qKg0KLSAqIGhhc19tb25pdG9y X2ludGVyZmFjZXMgLSBoYXZlIG1vbml0b3IgaW50ZXJmYWNlcyBiZWVuIGVuYWJsZWQ/DQotICog QG1hYzogdGhlIHN0cnVjdCB6ZF9tYWMgcG9pbnRlcg0KLSAqDQotICogVGhlIGZ1bmN0aW9uIHJl dHVybnMsIHdoZXRoZXIgdGhlIGRldmljZSBoYXMgbW9uaXRvciBpbnRlcmZhY2VzIGF0dGFjaGVk Lg0KLSAqLw0KLXN0YXRpYyBpbnQgaGFzX21vbml0b3JfaW50ZXJmYWNlcyhzdHJ1Y3QgemRfbWFj ICptYWMpDQotew0KLQlyZXR1cm4gbWFjLT50eXBlID09IElFRUU4MDIxMV9JRl9UWVBFX01OVFI7 DQotfQ0KLQ0KIHN0YXRpYyBpbnQgc2V0X3J4X2ZpbHRlcihzdHJ1Y3QgemRfbWFjICptYWMpDQog ew0KLQl1MzIgZmlsdGVyID0gaGFzX21vbml0b3JfaW50ZXJmYWNlcyhtYWMpID8gfjAgOiBTVEFf UlhfRklMVEVSOw0KKwkvKiBYWFg6IG5lZWQgdG8gd29yayBvZmYgdGhlIGZpbHRlciBmbGFncyEg Ki8NCisJdTMyIGZpbHRlciA9IFNUQV9SWF9GSUxURVI7DQogDQogCXJldHVybiB6ZF9pb3dyaXRl MzIoJm1hYy0+Y2hpcCwgQ1JfUlhfRklMVEVSLCBmaWx0ZXIpOw0KIH0NCiANCiBzdGF0aWMgaW50 IHNldF9zbmlmZmVyKHN0cnVjdCB6ZF9tYWMgKm1hYykNCiB7DQotCXJldHVybiB6ZF9pb3dyaXRl MzIoJm1hYy0+Y2hpcCwgQ1JfU05JRkZFUl9PTiwNCi0JCWhhc19tb25pdG9yX2ludGVyZmFjZXMo bWFjKSA/IDEgOiAwKTsNCi0JcmV0dXJuIDA7DQorCS8qIFhYWDogbmVlZCB0byB3b3JrIG9mZiB0 aGUgZmlsdGVyIGZsYWdzISAqLw0KKwlyZXR1cm4gemRfaW93cml0ZTMyKCZtYWMtPmNoaXAsIENS X1NOSUZGRVJfT04sIDApOw0KIH0NCiANCiBzdGF0aWMgaW50IHNldF9tY19oYXNoKHN0cnVjdCB6 ZF9tYWMgKm1hYykNCkBAIC0yMDAsMTMgKzE4OSwxMyBAQCBzdGF0aWMgaW50IHNldF9tY19oYXNo KHN0cnVjdCB6ZF9tYWMgKm1hDQogCXN0cnVjdCB6ZF9tY19oYXNoIGhhc2g7DQogDQogCXpkX21j X2NsZWFyKCZoYXNoKTsNCi0JaWYgKGhhc19tb25pdG9yX2ludGVyZmFjZXMobWFjKSkNCisJaWYg KDApIC8qIFhYWDogbmVlZCB0byB3b3JrIG9mZiB0aGUgZmlsdGVyIGZsYWdzISAqLw0KIAkJemRf bWNfYWRkX2FsbCgmaGFzaCk7DQogDQogCXJldHVybiB6ZF9jaGlwX3NldF9tdWx0aWNhc3RfaGFz aCgmbWFjLT5jaGlwLCAmaGFzaCk7DQogfQ0KIA0KLXN0YXRpYyBpbnQgemRfb3Bfb3BlbihzdHJ1 Y3QgaWVlZTgwMjExX2h3ICpodykNCitzdGF0aWMgaW50IHpkX29wX3N0YXJ0KHN0cnVjdCBpZWVl ODAyMTFfaHcgKmh3KQ0KIHsNCiAJc3RydWN0IHpkX21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsN CiAJc3RydWN0IHpkX2NoaXAgKmNoaXAgPSAmbWFjLT5jaGlwOw0KQEAgLTI5MCw3ICsyNzksNyBA QCBzdGF0aWMgdm9pZCBrZnJlZV90eF9za2Ioc3RydWN0IHNrX2J1ZmYgDQogCWRldl9rZnJlZV9z a2JfYW55KHNrYik7DQogfQ0KIA0KLXN0YXRpYyBpbnQgemRfb3Bfc3RvcChzdHJ1Y3QgaWVlZTgw MjExX2h3ICpodykNCitzdGF0aWMgdm9pZCB6ZF9vcF9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcg Kmh3KQ0KIHsNCiAJc3RydWN0IHpkX21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsNCiAJc3RydWN0 IHpkX2NoaXAgKmNoaXAgPSAmbWFjLT5jaGlwOw0KQEAgLTMxMyw4ICszMDIsNiBAQCBzdGF0aWMg aW50IHpkX29wX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9oDQogDQogCXdoaWxlICgoc2tiID0gc2ti X2RlcXVldWUoYWNrX3dhaXRfcXVldWUpKSkNCiAJCWtmcmVlX3R4X3NrYihza2IpOw0KLQ0KLQly ZXR1cm4gMDsNCiB9DQogDQogLyoqDQpAQCAtNjkzLDcgKzY4MCw3IEBAIGludCB6ZF9tYWNfcngo c3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGMNCiAJYnVmZmVyICs9IFpEX1BMQ1BfSEVBREVSX1NJ WkU7DQogDQogCWlmIChmaWx0ZXJfYWNrKGh3LCAoc3RydWN0IGllZWU4MDIxMV9oZHIgKilidWZm ZXIsICZzdGF0cykgJiYNCi0JICAgICFoYXNfbW9uaXRvcl9pbnRlcmZhY2VzKG1hYykpDQorCSAg ICAwIC8qIFhYWDogbmVlZCB0byB3b3JrIG9mZiB0aGUgZmlsdGVyIGZsYWdzISAqLykNCiAJCXJl dHVybiAwOw0KIA0KIAlza2IgPSBkZXZfYWxsb2Nfc2tiKGxlbmd0aCk7DQpAQCAtNzE1LDcgKzcw Miw2IEBAIHN0YXRpYyBpbnQgemRfb3BfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWUNCiAJCXJldHVy biAtMTsNCiANCiAJc3dpdGNoIChjb25mLT50eXBlKSB7DQotCWNhc2UgSUVFRTgwMjExX0lGX1RZ UEVfTU5UUjoNCiAJY2FzZSBJRUVFODAyMTFfSUZfVFlQRV9TVEE6DQogCQltYWMtPnR5cGUgPSBj b25mLT50eXBlOw0KIAkJYnJlYWs7DQpAQCAtNzY1LDE4ICs3NTEsMTkgQEAgc3RhdGljIHZvaWQg c2V0X211bHRpY2FzdF9oYXNoX2hhbmRsZXIocw0KIAl6ZF9jaGlwX3NldF9tdWx0aWNhc3RfaGFz aCgmbWFjLT5jaGlwLCAmaGFzaCk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHpkX29wX3NldF9tdWx0 aWNhc3RfbGlzdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCi0JCQkJICAgICAgdW5zaWduZWQg c2hvcnQgZGV2X2ZsYWdzLCBpbnQgbWNfY291bnQpDQorc3RhdGljIHZvaWQgemRfb3BfY29uZmln dXJlX2ZpbHRlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCisJCQkJICAgaW50IG11bHRpX2Nv dW50LA0KKwkJCQkgICB1bnNpZ25lZCBpbnQgY2hhbmdlLA0KKwkJCQkgICB1bnNpZ25lZCBpbnQg KmZpbHRlcmZsYWdzKQ0KIHsNCiAJc3RydWN0IHpkX21jX2hhc2ggaGFzaDsNCiAJc3RydWN0IHpk X21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiANCi0J aWYgKChkZXZfZmxhZ3MgJiAoSUZGX1BST01JU0N8SUZGX0FMTE1VTFRJKSkgfHwNCi0JICAgICBo YXNfbW9uaXRvcl9pbnRlcmZhY2VzKG1hYykpDQotCXsNCisJaWYgKCpmaWx0ZXJmbGFncyAmIChG SUZfUFJPTUlTQ19JTl9CU1MgfCBGSUZfQUxMTVVMVEkpKSB7DQorCQkvKiBYWFg6IGNhbiB3ZSBk byBiZXR0ZXIsIHdpdGggZmluZXIgZ3JhbnVsYXJpdHk/ICovDQogCQl6ZF9tY19hZGRfYWxsKCZo YXNoKTsNCi0JfSBlbHNlIHsNCisJfSBlbHNlIGlmIChtdWx0aV9jb3VudCA+PSAwKSB7DQogCQlz dHJ1Y3QgZGV2X21jX2xpc3QgKm1jID0gTlVMTDsNCiAJCXZvaWQgKnRtcCA9IE5VTEw7DQogCQl6 ZF9tY19jbGVhcigmaGFzaCk7DQpAQCAtNzg3LDEwICs3NzQsMTggQEAgc3RhdGljIHZvaWQgemRf b3Bfc2V0X211bHRpY2FzdF9saXN0KHN0cg0KIAkJfQ0KIAl9DQogDQotCXNwaW5fbG9ja19pcnFz YXZlKCZtYWMtPmxvY2ssIGZsYWdzKTsNCi0JbWFjLT5tdWx0aWNhc3RfaGFzaCA9IGhhc2g7DQot CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hYy0+bG9jaywgZmxhZ3MpOw0KLQlxdWV1ZV93b3Jr KHpkX3dvcmtxdWV1ZSwgJm1hYy0+c2V0X211bHRpY2FzdF9oYXNoX3dvcmspOw0KKwkvKg0KKwkg KiBYWFg6IHByb2JhYmx5IG5vdCByaWdodCwgd2UgcHJvYmFibHkgc2VlIG1hbnkgb3RoZXINCisJ ICogZnJhbWVzIGFzIHdlbGwuLi4NCisJICovDQorCSpmaWx0ZXJmbGFncyAmPSBGSUZfUFJPTUlT Q19JTl9CU1MgfCBGSUZfQUxMTVVMVEk7DQorDQorCWlmIChtdWx0aV9jb3VudCA+PSAwKSB7DQor CQlzcGluX2xvY2tfaXJxc2F2ZSgmbWFjLT5sb2NrLCBmbGFncyk7DQorCQltYWMtPm11bHRpY2Fz dF9oYXNoID0gaGFzaDsNCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hYy0+bG9jaywgZmxh Z3MpOw0KKwkJcXVldWVfd29yayh6ZF93b3JrcXVldWUsICZtYWMtPnNldF9tdWx0aWNhc3RfaGFz aF93b3JrKTsNCisJfQ0KIH0NCiANCiBzdGF0aWMgdm9pZCBzZXRfcnRzX2N0c193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykNCkBAIC04MzQsMTMgKzgyOSwxMyBAQCBzdGF0aWMgdm9pZCB6 ZF9vcF9lcnBfaWVfY2hhbmdlZChzdHJ1Y3QgDQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVl ODAyMTFfb3BzIHpkX29wcyA9IHsNCiAJLnR4CQkJPSB6ZF9vcF90eCwNCi0JLm9wZW4JCQk9IHpk X29wX29wZW4sDQorCS5zdGFydAkJCT0gemRfb3Bfc3RhcnQsDQogCS5zdG9wCQkJPSB6ZF9vcF9z dG9wLA0KIAkuYWRkX2ludGVyZmFjZQkJPSB6ZF9vcF9hZGRfaW50ZXJmYWNlLA0KIAkucmVtb3Zl X2ludGVyZmFjZQk9IHpkX29wX3JlbW92ZV9pbnRlcmZhY2UsDQogCS5jb25maWcJCQk9IHpkX29w X2NvbmZpZywNCiAJLmNvbmZpZ19pbnRlcmZhY2UJPSB6ZF9vcF9jb25maWdfaW50ZXJmYWNlLA0K LQkuc2V0X211bHRpY2FzdF9saXN0CT0gemRfb3Bfc2V0X211bHRpY2FzdF9saXN0LA0KKwkuY29u ZmlndXJlX2ZpbHRlcgk9IHpkX29wX2NvbmZpZ3VyZV9maWx0ZXIsDQogCS5lcnBfaWVfY2hhbmdl ZAkJPSB6ZF9vcF9lcnBfaWVfY2hhbmdlZCwNCiB9Ow0KIA0KQEAgLTg4MCw3ICs4NzUsOCBAQCBz dHJ1Y3QgaWVlZTgwMjExX2h3ICp6ZF9tYWNfYWxsb2NfaHcoc3RyDQogDQogCWh3LT5mbGFncyA9 IElFRUU4MDIxMV9IV19SWF9JTkNMVURFU19GQ1MgfA0KIAkJICAgICBJRUVFODAyMTFfSFdfV0VQ X0lOQ0xVREVfSVYgfA0KLQkJICAgICBJRUVFODAyMTFfSFdfREVGQVVMVF9SRUdfRE9NQUlOX0NP TkZJR1VSRUQ7DQorCQkgICAgIElFRUU4MDIxMV9IV19ERUZBVUxUX1JFR19ET01BSU5fQ09ORklH VVJFRCB8DQorCQkgICAgIElFRUU4MDIxMV9IV19NVUxUSUNBU1RfRklMVEVSOw0KIAlody0+bWF4 X3Jzc2kgPSAxMDA7DQogCWh3LT5tYXhfc2lnbmFsID0gMTAwOw0KIA0K --=-wIrGxo3XYvGgwtIIY9al-- --=-Enf2+Rj4jbgGjs/NjzSG Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Comment: Johannes Berg (powerbook) iD8DBQBGxGYp/ETPhpq3jKURAiZ7AJ9hVr0efmQ8ERZQbl1tYsaGFQCO1gCdG5YP /YShvSQz7SUBbMDb5ZpBUbU= =g5Nf -----END PGP SIGNATURE----- --=-Enf2+Rj4jbgGjs/NjzSG--