Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268791AbUJKLHC (ORCPT ); Mon, 11 Oct 2004 07:07:02 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S268786AbUJKLHB (ORCPT ); Mon, 11 Oct 2004 07:07:01 -0400 Received: from wproxy.gmail.com ([64.233.184.206]:63135 "EHLO mproxy.gmail.com") by vger.kernel.org with ESMTP id S268781AbUJKLFu (ORCPT ); Mon, 11 Oct 2004 07:05:50 -0400 Message-ID: <1a50bd370410110405253e915c@mail.gmail.com> Date: Mon, 11 Oct 2004 16:35:49 +0530 From: Ricky lloyd Reply-To: Ricky lloyd To: linux-kernel@vger.kernel.org Subject: [PATCH]:2.6.9-rc4: Fixes a bunch of compiler warnings Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_704_15219098.1097492749667" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 45670 Lines: 608 ------=_Part_704_15219098.1097492749667 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline attaching a patch diff'ed against 2.6.9-rc4. Fixes a whole bunch of compiler warnings of the kind, "warning: passing arg 1 of `readl' makes pointer from integer without a cast" -- -> Ricky ------=_Part_704_15219098.1097492749667 Content-Type: application/octet-stream; name="typecast-fixes.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="typecast-fixes.patch" ZGlmZiAtcHVyTiBkcml2ZXJzL25ldC90dWxpcC9kbWZlLmMgZHJpdmVycy1maXgvbmV0L3R1bGlw L2RtZmUuYwotLS0gZHJpdmVycy9uZXQvdHVsaXAvZG1mZS5jCTIwMDQtMTAtMTEgMTM6Mjc6NTku Mjg5Nzg4NDE2ICswNTMwCisrKyBkcml2ZXJzLWZpeC9uZXQvdHVsaXAvZG1mZS5jCTIwMDQtMTAt MTEgMTQ6MzY6MjIuNzc4OTYzMjQwICswNTMwCkBAIC0xODA1LDcgKzE4MDUsNyBAQCBzdGF0aWMg dm9pZCBkbWZlX3BhcnNlX3Nyb20oc3RydWN0IGRtZmVfCiAJaWYgKCAoIChpbnQpIHNyb21bMThd ICYgMHhmZikgPT0gU1JPTV9WNDFfQ09ERSkgewogCQkvKiBTUk9NIFY0LjAxICovCiAJCS8qIEdl dCBOSUMgc3VwcG9ydCBtZWRpYSBtb2RlICovCi0JCWRiLT5OSUNfY2FwYWJpbGl0eSA9IGxlMTZf dG9fY3B1cChzcm9tICsgMzQpOworCQlkYi0+TklDX2NhcGFiaWxpdHkgPSBsZTE2X3RvX2NwdXAo KF9fbGUxNiAqKShzcm9tICsgMzQpKTsKIAkJZGItPlBIWV9yZWc0ID0gMDsKIAkJZm9yICh0bXBf cmVnID0gMTsgdG1wX3JlZyA8IDB4MTA7IHRtcF9yZWcgPDw9IDEpIHsKIAkJCXN3aXRjaCggZGIt Pk5JQ19jYXBhYmlsaXR5ICYgdG1wX3JlZyApIHsKQEAgLTE4MTcsNyArMTgxNyw3IEBAIHN0YXRp YyB2b2lkIGRtZmVfcGFyc2Vfc3JvbShzdHJ1Y3QgZG1mZV8KIAkJfQogCiAJCS8qIE1lZGlhIE1v ZGUgRm9yY2Ugb3Igbm90IGNoZWNrICovCi0JCWRtZmVfbW9kZSA9IGxlMzJfdG9fY3B1cChzcm9t ICsgMzQpICYgbGUzMl90b19jcHVwKHNyb20gKyAzNik7CisJCWRtZmVfbW9kZSA9IGxlMzJfdG9f Y3B1cCgoX19sZTMyICopKHNyb20gKyAzNCkpICYgbGUzMl90b19jcHVwKChfX2xlMzIgKikoc3Jv bSArIDM2KSk7CiAJCXN3aXRjaChkbWZlX21vZGUpIHsKIAkJY2FzZSAweDQ6IGRtZmVfbWVkaWFf bW9kZSA9IERNRkVfMTAwTUhGOyBicmVhazsJLyogMTAwTUhGICovCiAJCWNhc2UgMHgyOiBkbWZl X21lZGlhX21vZGUgPSBETUZFXzEwTUZEOyBicmVhazsJLyogMTBNRkQgKi8KZGlmZiAtcHVyTiBk cml2ZXJzL25ldC90dWxpcC93aW5ib25kLTg0MC5jIGRyaXZlcnMtZml4L25ldC90dWxpcC93aW5i b25kLTg0MC5jCi0tLSBkcml2ZXJzL25ldC90dWxpcC93aW5ib25kLTg0MC5jCTIwMDQtMTAtMTEg MTM6Mjc6NTkuMjUwNzk0MzQ0ICswNTMwCisrKyBkcml2ZXJzLWZpeC9uZXQvdHVsaXAvd2luYm9u ZC04NDAuYwkyMDA0LTEwLTExIDE2OjI0OjE0Ljg1MTA1ODcyOCArMDUzMApAQCAtNDM0LDcgKzQz NCw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHc4NDBfcHJvYmUxIChzdHJ1Y3QKIAogCS8qIFJl c2V0IHRoZSBjaGlwIHRvIGVyYXNlIHByZXZpb3VzIG1pc2NvbmZpZ3VyYXRpb24uCiAJICAgTm8g aG9sZCB0aW1lIHJlcXVpcmVkISAqLwotCXdyaXRlbCgweDAwMDAwMDAxLCBpb2FkZHIgKyBQQ0lC dXNDZmcpOworCXdyaXRlbCgweDAwMDAwMDAxLCAodm9pZCBfX2lvbWVtICopaW9hZGRyICsgUENJ QnVzQ2ZnKTsKIAogCWRldi0+YmFzZV9hZGRyID0gaW9hZGRyOwogCWRldi0+aXJxID0gaXJxOwpA QCAtNTM3LDcgKzUzNyw3IEBAIGVycl9vdXRfbmV0ZGV2OgogICAgVGhlIG9sZCBtZXRob2Qgb2Yg dXNpbmcgYW4gSVNBIGFjY2VzcyBhcyBhIGRlbGF5LCBfX1NMT1dfRE9XTl9JT19fLCBpcwogICAg ZGVwcmljYXRlZC4KICovCi0jZGVmaW5lIGVlcHJvbV9kZWxheShlZV9hZGRyKQlyZWFkbChlZV9h ZGRyKQorI2RlZmluZSBlZXByb21fZGVsYXkoZWVfYWRkcikJcmVhZGwoKHZvaWQgX19pb21lbSAq KShlZV9hZGRyKSkKIAogZW51bSBFRVBST01fQ3RybF9CaXRzIHsKIAlFRV9TaGlmdENsaz0weDAy LCBFRV9Xcml0ZTA9MHg4MDEsIEVFX1dyaXRlMT0weDgwNSwKQEAgLTU1NSwyOSArNTU1LDI5IEBA IHN0YXRpYyBpbnQgZWVwcm9tX3JlYWQobG9uZyBhZGRyLCBpbnQgbG8KIAlpbnQgcmV0dmFsID0g MDsKIAlsb25nIGVlX2FkZHIgPSBhZGRyICsgRUVDdHJsOwogCWludCByZWFkX2NtZCA9IGxvY2F0 aW9uIHwgRUVfUmVhZENtZDsKLQl3cml0ZWwoRUVfQ2hpcFNlbGVjdCwgZWVfYWRkcik7CisJd3Jp dGVsKEVFX0NoaXBTZWxlY3QsICh2b2lkIF9faW9tZW0gKillZV9hZGRyKTsKIAogCS8qIFNoaWZ0 IHRoZSByZWFkIGNvbW1hbmQgYml0cyBvdXQuICovCiAJZm9yIChpID0gMTA7IGkgPj0gMDsgaS0t KSB7CiAJCXNob3J0IGRhdGF2YWwgPSAocmVhZF9jbWQgJiAoMSA8PCBpKSkgPyBFRV9Xcml0ZTEg OiBFRV9Xcml0ZTA7Ci0JCXdyaXRlbChkYXRhdmFsLCBlZV9hZGRyKTsKKwkJd3JpdGVsKGRhdGF2 YWwsICh2b2lkIF9faW9tZW0gKillZV9hZGRyKTsKIAkJZWVwcm9tX2RlbGF5KGVlX2FkZHIpOwot CQl3cml0ZWwoZGF0YXZhbCB8IEVFX1NoaWZ0Q2xrLCBlZV9hZGRyKTsKKwkJd3JpdGVsKGRhdGF2 YWwgfCBFRV9TaGlmdENsaywgKHZvaWQgX19pb21lbSAqKWVlX2FkZHIpOwogCQllZXByb21fZGVs YXkoZWVfYWRkcik7CiAJfQotCXdyaXRlbChFRV9DaGlwU2VsZWN0LCBlZV9hZGRyKTsKKwl3cml0 ZWwoRUVfQ2hpcFNlbGVjdCwgKHZvaWQgX19pb21lbSAqKWVlX2FkZHIpOwogCWVlcHJvbV9kZWxh eShlZV9hZGRyKTsKIAogCWZvciAoaSA9IDE2OyBpID4gMDsgaS0tKSB7Ci0JCXdyaXRlbChFRV9D aGlwU2VsZWN0IHwgRUVfU2hpZnRDbGssIGVlX2FkZHIpOworCQl3cml0ZWwoRUVfQ2hpcFNlbGVj dCB8IEVFX1NoaWZ0Q2xrLCAodm9pZCBfX2lvbWVtICopZWVfYWRkcik7CiAJCWVlcHJvbV9kZWxh eShlZV9hZGRyKTsKLQkJcmV0dmFsID0gKHJldHZhbCA8PCAxKSB8ICgocmVhZGwoZWVfYWRkcikg JiBFRV9EYXRhSW4pID8gMSA6IDApOwotCQl3cml0ZWwoRUVfQ2hpcFNlbGVjdCwgZWVfYWRkcik7 CisJCXJldHZhbCA9IChyZXR2YWwgPDwgMSkgfCAoKHJlYWRsKCh2b2lkIF9faW9tZW0gKillZV9h ZGRyKSAmIEVFX0RhdGFJbikgPyAxIDogMCk7CisJCXdyaXRlbChFRV9DaGlwU2VsZWN0LCAodm9p ZCBfX2lvbWVtICopZWVfYWRkcik7CiAJCWVlcHJvbV9kZWxheShlZV9hZGRyKTsKIAl9CiAKIAkv KiBUZXJtaW5hdGUgdGhlIEVFUFJPTSBhY2Nlc3MuICovCi0Jd3JpdGVsKDAsIGVlX2FkZHIpOwor CXdyaXRlbCgwLCAodm9pZCBfX2lvbWVtICopZWVfYWRkcik7CiAJcmV0dXJuIHJldHZhbDsKIH0K IApAQCAtNTg4LDcgKzU4OCw3IEBAIHN0YXRpYyBpbnQgZWVwcm9tX3JlYWQobG9uZyBhZGRyLCBp bnQgbG8KIAogCVRoZSBtYXhpbXVtIGRhdGEgY2xvY2sgcmF0ZSBpcyAyLjUgTWh6LiAgVGhlIG1p bmltdW0gdGltaW5nIGlzIHVzdWFsbHkKIAltZXQgYnkgYmFjay10by1iYWNrIDMzTWh6IFBDSSBj eWNsZXMuICovCi0jZGVmaW5lIG1kaW9fZGVsYXkobWRpb19hZGRyKSByZWFkbChtZGlvX2FkZHIp CisjZGVmaW5lIG1kaW9fZGVsYXkobWRpb19hZGRyKSByZWFkbCgodm9pZCBfX2lvbWVtICopKG1k aW9fYWRkcikpCiAKIC8qIFNldCBpZmYgYSBNSUkgdHJhbnNjZWl2ZXIgb24gYW55IGludGVyZmFj ZSByZXF1aXJlcyBtZGlvIHByZWFtYmxlLgogICAgVGhpcyBvbmx5IHNldCB3aXRoIG9sZGVyIHRy YW5zY2VpdmVycywgc28gdGhlIGV4dHJhCkBAIC02MDYsOSArNjA2LDkgQEAgc3RhdGljIHZvaWQg bWRpb19zeW5jKGxvbmcgbWRpb19hZGRyKQogCiAJLyogRXN0YWJsaXNoIHN5bmMgYnkgc2VuZGlu ZyBhdCBsZWFzdCAzMiBsb2dpYyBvbmVzLiAqLwogCXdoaWxlICgtLWJpdHMgPj0gMCkgewotCQl3 cml0ZWwoTURJT19XUklURTEsIG1kaW9fYWRkcik7CisJCXdyaXRlbChNRElPX1dSSVRFMSwgKHZv aWQgX19pb21lbSAqKW1kaW9fYWRkcik7CiAJCW1kaW9fZGVsYXkobWRpb19hZGRyKTsKLQkJd3Jp dGVsKE1ESU9fV1JJVEUxIHwgTURJT19TaGlmdENsaywgbWRpb19hZGRyKTsKKwkJd3JpdGVsKE1E SU9fV1JJVEUxIHwgTURJT19TaGlmdENsaywgKHZvaWQgX19pb21lbSAqKW1kaW9fYWRkcik7CiAJ CW1kaW9fZGVsYXkobWRpb19hZGRyKTsKIAl9CiB9CkBAIC02MjYsMTcgKzYyNiwxNyBAQCBzdGF0 aWMgaW50IG1kaW9fcmVhZChzdHJ1Y3QgbmV0X2RldmljZSAqCiAJZm9yIChpID0gMTU7IGkgPj0g MDsgaS0tKSB7CiAJCWludCBkYXRhdmFsID0gKG1paV9jbWQgJiAoMSA8PCBpKSkgPyBNRElPX1dS SVRFMSA6IE1ESU9fV1JJVEUwOwogCi0JCXdyaXRlbChkYXRhdmFsLCBtZGlvX2FkZHIpOworCQl3 cml0ZWwoZGF0YXZhbCwgKHZvaWQgX19pb21lbSAqKW1kaW9fYWRkcik7CiAJCW1kaW9fZGVsYXko bWRpb19hZGRyKTsKLQkJd3JpdGVsKGRhdGF2YWwgfCBNRElPX1NoaWZ0Q2xrLCBtZGlvX2FkZHIp OworCQl3cml0ZWwoZGF0YXZhbCB8IE1ESU9fU2hpZnRDbGssICh2b2lkIF9faW9tZW0gKiltZGlv X2FkZHIpOwogCQltZGlvX2RlbGF5KG1kaW9fYWRkcik7CiAJfQogCS8qIFJlYWQgdGhlIHR3byB0 cmFuc2l0aW9uLCAxNiBkYXRhLCBhbmQgd2lyZS1pZGxlIGJpdHMuICovCiAJZm9yIChpID0gMjA7 IGkgPiAwOyBpLS0pIHsKLQkJd3JpdGVsKE1ESU9fRW5iSW4sIG1kaW9fYWRkcik7CisJCXdyaXRl bChNRElPX0VuYkluLCAodm9pZCBfX2lvbWVtICopbWRpb19hZGRyKTsKIAkJbWRpb19kZWxheSht ZGlvX2FkZHIpOwotCQlyZXR2YWwgPSAocmV0dmFsIDw8IDEpIHwgKChyZWFkbChtZGlvX2FkZHIp ICYgTURJT19EYXRhSW4pID8gMSA6IDApOwotCQl3cml0ZWwoTURJT19FbmJJbiB8IE1ESU9fU2hp ZnRDbGssIG1kaW9fYWRkcik7CisJCXJldHZhbCA9IChyZXR2YWwgPDwgMSkgfCAoKHJlYWRsKCh2 b2lkIF9faW9tZW0gKiltZGlvX2FkZHIpICYgTURJT19EYXRhSW4pID8gMSA6IDApOworCQl3cml0 ZWwoTURJT19FbmJJbiB8IE1ESU9fU2hpZnRDbGssICh2b2lkIF9faW9tZW0gKiltZGlvX2FkZHIp OwogCQltZGlvX2RlbGF5KG1kaW9fYWRkcik7CiAJfQogCXJldHVybiAocmV0dmFsPj4xKSAmIDB4 ZmZmZjsKQEAgLTY1OSwxNiArNjU5LDE2IEBAIHN0YXRpYyB2b2lkIG1kaW9fd3JpdGUoc3RydWN0 IG5ldF9kZXZpY2UKIAlmb3IgKGkgPSAzMTsgaSA+PSAwOyBpLS0pIHsKIAkJaW50IGRhdGF2YWwg PSAobWlpX2NtZCAmICgxIDw8IGkpKSA/IE1ESU9fV1JJVEUxIDogTURJT19XUklURTA7CiAKLQkJ d3JpdGVsKGRhdGF2YWwsIG1kaW9fYWRkcik7CisJCXdyaXRlbChkYXRhdmFsLCAodm9pZCBfX2lv bWVtICopbWRpb19hZGRyKTsKIAkJbWRpb19kZWxheShtZGlvX2FkZHIpOwotCQl3cml0ZWwoZGF0 YXZhbCB8IE1ESU9fU2hpZnRDbGssIG1kaW9fYWRkcik7CisJCXdyaXRlbChkYXRhdmFsIHwgTURJ T19TaGlmdENsaywgKHZvaWQgX19pb21lbSAqKW1kaW9fYWRkcik7CiAJCW1kaW9fZGVsYXkobWRp b19hZGRyKTsKIAl9CiAJLyogQ2xlYXIgb3V0IGV4dHJhIGJpdHMuICovCiAJZm9yIChpID0gMjsg aSA+IDA7IGktLSkgewotCQl3cml0ZWwoTURJT19FbmJJbiwgbWRpb19hZGRyKTsKKwkJd3JpdGVs KE1ESU9fRW5iSW4sICh2b2lkIF9faW9tZW0gKiltZGlvX2FkZHIpOwogCQltZGlvX2RlbGF5KG1k aW9fYWRkcik7Ci0JCXdyaXRlbChNRElPX0VuYkluIHwgTURJT19TaGlmdENsaywgbWRpb19hZGRy KTsKKwkJd3JpdGVsKE1ESU9fRW5iSW4gfCBNRElPX1NoaWZ0Q2xrLCAodm9pZCBfX2lvbWVtICop bWRpb19hZGRyKTsKIAkJbWRpb19kZWxheShtZGlvX2FkZHIpOwogCX0KIAlyZXR1cm47CkBAIC02 ODEsNyArNjgxLDcgQEAgc3RhdGljIGludCBuZXRkZXZfb3BlbihzdHJ1Y3QgbmV0X2RldmljZQog CWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7CiAJaW50IGk7CiAKLQl3cml0ZWwoMHgwMDAw MDAwMSwgaW9hZGRyICsgUENJQnVzQ2ZnKTsJCS8qIFJlc2V0ICovCisJd3JpdGVsKDB4MDAwMDAw MDEsICh2b2lkIF9faW9tZW0gKikoaW9hZGRyICsgUENJQnVzQ2ZnKSk7CQkvKiBSZXNldCAqLwog CiAJbmV0aWZfZGV2aWNlX2RldGFjaChkZXYpOwogCWkgPSByZXF1ZXN0X2lycShkZXYtPmlycSwg JmludHJfaGFuZGxlciwgU0FfU0hJUlEsIGRldi0+bmFtZSwgZGV2KTsKQEAgLTc5MiwxMCArNzky LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVfY3NyNihzdHJ1Y3QgbmUKIAlpZiAobmV3 PT1ucC0+Y3NyNikKIAkJcmV0dXJuOwogCS8qIHN0b3AgYm90aCBUeCBhbmQgUnggcHJvY2Vzc2Vz ICovCi0Jd3JpdGVsKG5wLT5jc3I2ICYgfjB4MjAwMiwgaW9hZGRyICsgTmV0d29ya0NvbmZpZyk7 CisJd3JpdGVsKG5wLT5jc3I2ICYgfjB4MjAwMiwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBO ZXR3b3JrQ29uZmlnKSk7CiAJLyogd2FpdCB1bnRpbCB0aGV5IGhhdmUgcmVhbGx5IHN0b3BwZWQg Ki8KIAlmb3IgKDs7KSB7Ci0JCWludCBjc3I1ID0gcmVhZGwoaW9hZGRyICsgSW50clN0YXR1cyk7 CisJCWludCBjc3I1ID0gcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBJbnRyU3RhdHVz KSk7CiAJCWludCB0OwogCiAJCXQgPSAoY3NyNSA+PiAxNykgJiAweDA3OwpAQCAtODE2LDcgKzgx Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVfY3NyNihzdHJ1Y3QgbmUKIAl9CiAJbnAt PmNzcjYgPSBuZXc7CiAJLyogYW5kIHJlc3RhcnQgdGhlbSB3aXRoIHRoZSBuZXcgY29uZmlndXJh dGlvbiAqLwotCXdyaXRlbChucC0+Y3NyNiwgaW9hZGRyICsgTmV0d29ya0NvbmZpZyk7CisJd3Jp dGVsKG5wLT5jc3I2LCAodm9pZCBfX2lvbWVtICopKGlvYWRkciArIE5ldHdvcmtDb25maWcpKTsK IAlpZiAobmV3ICYgMHgyMDApCiAJCW5wLT5taWlfaWYuZnVsbF9kdXBsZXggPSAxOwogfQpAQCAt ODMwLDggKzgzMCw4IEBAIHN0YXRpYyB2b2lkIG5ldGRldl90aW1lcih1bnNpZ25lZCBsb25nIGQK IAlpZiAoZGVidWcgPiAyKQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IE1lZGlhIHNlbGVjdGlv biB0aW1lciB0aWNrLCBzdGF0dXMgJTguOHggIgogCQkJICAgImNvbmZpZyAlOC44eC5cbiIsCi0J CQkgICBkZXYtPm5hbWUsIChpbnQpcmVhZGwoaW9hZGRyICsgSW50clN0YXR1cyksCi0JCQkgICAo aW50KXJlYWRsKGlvYWRkciArIE5ldHdvcmtDb25maWcpKTsKKwkJCSAgIGRldi0+bmFtZSwgKGlu dClyZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYWRkciArIEludHJTdGF0dXMpKSwKKwkJCSAgIChp bnQpcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBOZXR3b3JrQ29uZmlnKSkpOwogCXNw aW5fbG9ja19pcnEoJm5wLT5sb2NrKTsKIAl1cGRhdGVfY3NyNihkZXYsIHVwZGF0ZV9saW5rKGRl dikpOwogCXNwaW5fdW5sb2NrX2lycSgmbnAtPmxvY2spOwpAQCAtODgxLDkgKzg4MSw5IEBAIHN0 YXRpYyB2b2lkIGluaXRfcnh0eF9yaW5ncyhzdHJ1Y3QgbmV0X2QKIAlucC0+dHhfZnVsbCA9IDA7 CiAJbnAtPnR4X3FfYnl0ZXMgPSBucC0+ZGlydHlfdHggPSBucC0+Y3VyX3R4ID0gMDsKIAotCXdy aXRlbChucC0+cmluZ19kbWFfYWRkciwgZGV2LT5iYXNlX2FkZHIgKyBSeFJpbmdQdHIpOworCXdy aXRlbChucC0+cmluZ19kbWFfYWRkciwgKHZvaWQgX19pb21lbSAqKShkZXYtPmJhc2VfYWRkciAr IFJ4UmluZ1B0cikpOwogCXdyaXRlbChucC0+cmluZ19kbWFfYWRkcitzaXplb2Yoc3RydWN0IHc4 NDBfcnhfZGVzYykqUlhfUklOR19TSVpFLAotCQlkZXYtPmJhc2VfYWRkciArIFR4UmluZ1B0cik7 CisJCSh2b2lkIF9faW9tZW0gKikoZGV2LT5iYXNlX2FkZHIgKyBUeFJpbmdQdHIpKTsKIAogfQog CkBAIC05MjEsNyArOTIxLDcgQEAgc3RhdGljIHZvaWQgaW5pdF9yZWdpc3RlcnMoc3RydWN0IG5l dF9kZQogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IDY7IGkrKykKLQkJd3JpdGViKGRldi0+ ZGV2X2FkZHJbaV0sIGlvYWRkciArIFN0YXRpb25BZGRyICsgaSk7CisJCXdyaXRlYihkZXYtPmRl dl9hZGRyW2ldLCAodm9pZCBfX2lvbWVtICopKGlvYWRkciArIFN0YXRpb25BZGRyICsgaSkpOwog CiAJLyogSW5pdGlhbGl6ZSBvdGhlciByZWdpc3RlcnMuICovCiAjaWZkZWYgX19CSUdfRU5ESUFO CkBAIC05NTgsNyArOTU4LDcgQEAgc3RhdGljIHZvaWQgaW5pdF9yZWdpc3RlcnMoc3RydWN0IG5l dF9kZQogI3dhcm5pbmcgUHJvY2Vzc29yIGFyY2hpdGVjdHVyZSB1bmRlZmluZWQKIAlpIHw9IDB4 NDgwMDsKICNlbmRpZgotCXdyaXRlbChpLCBpb2FkZHIgKyBQQ0lCdXNDZmcpOworCXdyaXRlbChp LCAodm9pZCBfX2lvbWVtICopKGlvYWRkciArIFBDSUJ1c0NmZykpOwogCiAJbnAtPmNzcjYgPSAw OwogCS8qIDEyOCBieXRlIFR4IHRocmVzaG9sZDsgCkBAIC05NjYsMTAgKzk2NiwxMCBAQCBzdGF0 aWMgdm9pZCBpbml0X3JlZ2lzdGVycyhzdHJ1Y3QgbmV0X2RlCiAJdXBkYXRlX2NzcjYoZGV2LCAw eDAwMDIyMDAyIHwgdXBkYXRlX2xpbmsoZGV2KSB8IF9fc2V0X3J4X21vZGUoZGV2KSk7CiAKIAkv KiBDbGVhciBhbmQgRW5hYmxlIGludGVycnVwdHMgYnkgc2V0dGluZyB0aGUgaW50ZXJydXB0IG1h c2suICovCi0Jd3JpdGVsKDB4MUEwRjUsIGlvYWRkciArIEludHJTdGF0dXMpOwotCXdyaXRlbCgw eDFBMEY1LCBpb2FkZHIgKyBJbnRyRW5hYmxlKTsKKwl3cml0ZWwoMHgxQTBGNSwgKHZvaWQgX19p b21lbSAqKShpb2FkZHIgKyBJbnRyU3RhdHVzKSk7CisJd3JpdGVsKDB4MUEwRjUsICh2b2lkIF9f aW9tZW0gKikoaW9hZGRyICsgSW50ckVuYWJsZSkpOwogCi0Jd3JpdGVsKDAsIGlvYWRkciArIFJ4 U3RhcnREZW1hbmQpOworCXdyaXRlbCgwLCAodm9pZCBfX2lvbWVtICopKGlvYWRkciArIFJ4U3Rh cnREZW1hbmQpKTsKIH0KIAogc3RhdGljIHZvaWQgdHhfdGltZW91dChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQpAQCAtOTc4LDcgKzk3OCw3IEBAIHN0YXRpYyB2b2lkIHR4X3RpbWVvdXQoc3RydWN0 IG5ldF9kZXZpY2UKIAlsb25nIGlvYWRkciA9IGRldi0+YmFzZV9hZGRyOwogCiAJcHJpbnRrKEtF Uk5fV0FSTklORyAiJXM6IFRyYW5zbWl0IHRpbWVkIG91dCwgc3RhdHVzICU4Ljh4LCIKLQkJICAg IiByZXNldHRpbmcuLi5cbiIsIGRldi0+bmFtZSwgKGludClyZWFkbChpb2FkZHIgKyBJbnRyU3Rh dHVzKSk7CisJCSAgICIgcmVzZXR0aW5nLi4uXG4iLCBkZXYtPm5hbWUsIChpbnQpcmVhZGwoKHZv aWQgX19pb21lbSAqKShpb2FkZHIgKyBJbnRyU3RhdHVzKSkpOwogCiAJewogCQlpbnQgaTsKQEAg LTk5Miw3ICs5OTIsNyBAQCBzdGF0aWMgdm9pZCB0eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNl CiAJfQogCXByaW50ayhLRVJOX0RFQlVHICJUeCBjdXIgJWQgVHggZGlydHkgJWQgVHggRnVsbCAl ZCwgcSBieXRlcyAlZC5cbiIsCiAJCQkJbnAtPmN1cl90eCwgbnAtPmRpcnR5X3R4LCBucC0+dHhf ZnVsbCwgbnAtPnR4X3FfYnl0ZXMpOwotCXByaW50ayhLRVJOX0RFQlVHICJUeCBEZXNjcmlwdG9y IGFkZHIgJXhoLlxuIixyZWFkbChpb2FkZHIrMHg0QykpOworCXByaW50ayhLRVJOX0RFQlVHICJU eCBEZXNjcmlwdG9yIGFkZHIgJXhoLlxuIixyZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYWRkcisw eDRDKSkpOwogCiAJZGlzYWJsZV9pcnEoZGV2LT5pcnEpOwogCXNwaW5fbG9ja19pcnEoJm5wLT5s b2NrKTsKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHN0YXRpYyB2b2lkIHR4X3RpbWVvdXQoc3RydWN0 IG5ldF9kZXZpY2UKIAkgKiBldmVyeXRoaW5nLgogCSAqLwogCi0Jd3JpdGVsKDEsIGRldi0+YmFz ZV9hZGRyK1BDSUJ1c0NmZyk7CisJd3JpdGVsKDEsICh2b2lkIF9faW9tZW0gKikoZGV2LT5iYXNl X2FkZHIrUENJQnVzQ2ZnKSk7CiAJdWRlbGF5KDEpOwogCiAJZnJlZV9yeHR4X3JpbmdzKG5wKTsK QEAgLTEwODYsNyArMTA4Niw3IEBAIHN0YXRpYyBpbnQgc3RhcnRfdHgoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAl3bWIoKTsgLyogZmx1c2ggbGVuZ3RoLCBidWZmZXIxLCBidWZmZXIyICovCiAJbnAt PnR4X3JpbmdbZW50cnldLnN0YXR1cyA9IERlc2NPd247CiAJd21iKCk7IC8qIGZsdXNoIHN0YXR1 cyBhbmQga2ljayB0aGUgaGFyZHdhcmUgKi8KLQl3cml0ZWwoMCwgZGV2LT5iYXNlX2FkZHIgKyBU eFN0YXJ0RGVtYW5kKTsKKwl3cml0ZWwoMCwgKHZvaWQgX19pb21lbSAqKShkZXYtPmJhc2VfYWRk ciArIFR4U3RhcnREZW1hbmQpKTsKIAlucC0+dHhfcV9ieXRlcyArPSBza2ItPmxlbjsKIAkvKiBX b3JrIGFyb3VuZCBob3JyaWJsZSBidWcgaW4gdGhlIGNoaXAgYnkgbWFya2luZyB0aGUgcXVldWUg YXMgZnVsbAogCSAgIHdoZW4gd2UgZG8gbm90IGhhdmUgRklGTyByb29tIGZvciBhIG1heGltdW0g c2l6ZWQgcGFja2V0LiAqLwpAQCAtMTE3MCwxMCArMTE3MCwxMCBAQCBzdGF0aWMgaXJxcmV0dXJu X3QgaW50cl9oYW5kbGVyKGludCBpcnEsCiAJaWYgKCFuZXRpZl9kZXZpY2VfcHJlc2VudChkZXYp KQogCQlyZXR1cm4gSVJRX05PTkU7CiAJZG8gewotCQl1MzIgaW50cl9zdGF0dXMgPSByZWFkbChp b2FkZHIgKyBJbnRyU3RhdHVzKTsKKwkJdTMyIGludHJfc3RhdHVzID0gcmVhZGwoKHZvaWQgX19p b21lbSAqKShpb2FkZHIgKyBJbnRyU3RhdHVzKSk7CiAKIAkJLyogQWNrbm93bGVkZ2UgYWxsIG9m IHRoZSBjdXJyZW50IGludGVycnVwdCBzb3VyY2VzIEFTQVAuICovCi0JCXdyaXRlbChpbnRyX3N0 YXR1cyAmIDB4MDAxZmZmZiwgaW9hZGRyICsgSW50clN0YXR1cyk7CisJCXdyaXRlbChpbnRyX3N0 YXR1cyAmIDB4MDAxZmZmZiwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBJbnRyU3RhdHVzKSk7 CiAKIAkJaWYgKGRlYnVnID4gNCkKIAkJCXByaW50ayhLRVJOX0RFQlVHICIlczogSW50ZXJydXB0 LCBzdGF0dXMgJTQuNHguXG4iLApAQCAtMTE4Nyw3ICsxMTg3LDcgQEAgc3RhdGljIGlycXJldHVy bl90IGludHJfaGFuZGxlcihpbnQgaXJxLAogCQlpZiAoaW50cl9zdGF0dXMgJiAoSW50clJ4RG9u ZSB8IFJ4Tm9CdWYpKQogCQkJbmV0ZGV2X3J4KGRldik7CiAJCWlmIChpbnRyX3N0YXR1cyAmIFJ4 Tm9CdWYpCi0JCQl3cml0ZWwoMCwgaW9hZGRyICsgUnhTdGFydERlbWFuZCk7CisJCQl3cml0ZWwo MCwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBSeFN0YXJ0RGVtYW5kKSk7CiAKIAkJaWYgKGlu dHJfc3RhdHVzICYgKFR4SWRsZSB8IEludHJUeERvbmUpICYmCiAJCQlucC0+Y3VyX3R4ICE9IG5w LT5kaXJ0eV90eCkgewpAQCAtMTIwOCw4ICsxMjA4LDggQEAgc3RhdGljIGlycXJldHVybl90IGlu dHJfaGFuZGxlcihpbnQgaXJxLAogCQkJICAgMTAqODJ1c2VjIHRpY2tzLiAqLwogCQkJc3Bpbl9s b2NrKCZucC0+bG9jayk7CiAJCQlpZiAobmV0aWZfZGV2aWNlX3ByZXNlbnQoZGV2KSkgewotCQkJ CXdyaXRlbChBYm5vcm1hbEludHIgfCBUaW1lckludCwgaW9hZGRyICsgSW50ckVuYWJsZSk7Ci0J CQkJd3JpdGVsKDEwLCBpb2FkZHIgKyBHUFRpbWVyKTsKKwkJCQl3cml0ZWwoQWJub3JtYWxJbnRy IHwgVGltZXJJbnQsICh2b2lkIF9faW9tZW0gKikoaW9hZGRyICsgSW50ckVuYWJsZSkpOworCQkJ CXdyaXRlbCgxMCwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBHUFRpbWVyKSk7CiAJCQl9CiAJ CQlzcGluX3VubG9jaygmbnAtPmxvY2spOwogCQkJYnJlYWs7CkBAIC0xMjE4LDcgKzEyMTgsNyBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgaW50cl9oYW5kbGVyKGludCBpcnEsCiAKIAlpZiAoZGVidWcg PiAzKQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IGV4aXRpbmcgaW50ZXJydXB0LCBzdGF0dXM9 JSM0LjR4LlxuIiwKLQkJCSAgIGRldi0+bmFtZSwgKGludClyZWFkbChpb2FkZHIgKyBJbnRyU3Rh dHVzKSk7CisJCQkgICBkZXYtPm5hbWUsIChpbnQpcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2Fk ZHIgKyBJbnRyU3RhdHVzKSkpOwogCXJldHVybiBJUlFfUkVUVkFMKGhhbmRsZWQpOwogfQogCkBA IC0xMzc3LDEwICsxMzc3LDEwIEBAIHN0YXRpYyB2b2lkIG5ldGRldl9lcnJvcihzdHJ1Y3QgbmV0 X2RldmkKIAlpZiAoaW50cl9zdGF0dXMgJiBUaW1lckludCkgewogCQkvKiBSZS1lbmFibGUgb3Ro ZXIgaW50ZXJydXB0cy4gKi8KIAkJaWYgKG5ldGlmX2RldmljZV9wcmVzZW50KGRldikpCi0JCQl3 cml0ZWwoMHgxQTBGNSwgaW9hZGRyICsgSW50ckVuYWJsZSk7CisJCQl3cml0ZWwoMHgxQTBGNSwg KHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBJbnRyRW5hYmxlKSk7CiAJfQotCW5wLT5zdGF0cy5y eF9taXNzZWRfZXJyb3JzICs9IHJlYWRsKGlvYWRkciArIFJ4TWlzc2VkKSAmIDB4ZmZmZjsKLQl3 cml0ZWwoMCwgaW9hZGRyICsgUnhTdGFydERlbWFuZCk7CisJbnAtPnN0YXRzLnJ4X21pc3NlZF9l cnJvcnMgKz0gcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBSeE1pc3NlZCkpICYgMHhm ZmZmOworCXdyaXRlbCgwLCAodm9pZCBfX2lvbWVtICopKGlvYWRkciArIFJ4U3RhcnREZW1hbmQp KTsKIAlzcGluX3VubG9jaygmbnAtPmxvY2spOwogfQogCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCBz dGF0aWMgc3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKmdldF9zdGF0CiAJLyogVGhlIGNoaXAgb25s eSBuZWVkIHJlcG9ydCBmcmFtZSBzaWxlbnRseSBkcm9wcGVkLiAqLwogCXNwaW5fbG9ja19pcnEo Jm5wLT5sb2NrKTsKIAlpZiAobmV0aWZfcnVubmluZyhkZXYpICYmIG5ldGlmX2RldmljZV9wcmVz ZW50KGRldikpCi0JCW5wLT5zdGF0cy5yeF9taXNzZWRfZXJyb3JzICs9IHJlYWRsKGlvYWRkciAr IFJ4TWlzc2VkKSAmIDB4ZmZmZjsKKwkJbnAtPnN0YXRzLnJ4X21pc3NlZF9lcnJvcnMgKz0gcmVh ZGwoKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBSeE1pc3NlZCkpICYgMHhmZmZmOwogCXNwaW5f dW5sb2NrX2lycSgmbnAtPmxvY2spOwogCiAJcmV0dXJuICZucC0+c3RhdHM7CkBAIC0xNDI4LDgg KzE0MjgsOCBAQCBzdGF0aWMgdTMyIF9fc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpCiAJCX0K IAkJcnhfbW9kZSA9IEFjY2VwdEJyb2FkY2FzdCB8IEFjY2VwdE11bHRpY2FzdCB8IEFjY2VwdE15 UGh5czsKIAl9Ci0Jd3JpdGVsKG1jX2ZpbHRlclswXSwgaW9hZGRyICsgTXVsdGljYXN0RmlsdGVy MCk7Ci0Jd3JpdGVsKG1jX2ZpbHRlclsxXSwgaW9hZGRyICsgTXVsdGljYXN0RmlsdGVyMSk7CisJ d3JpdGVsKG1jX2ZpbHRlclswXSwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBNdWx0aWNhc3RG aWx0ZXIwKSk7CisJd3JpdGVsKG1jX2ZpbHRlclsxXSwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIg KyBNdWx0aWNhc3RGaWx0ZXIxKSk7CiAJcmV0dXJuIHJ4X21vZGU7CiB9CiAKQEAgLTE1NDYsOCAr MTU0Niw4IEBAIHN0YXRpYyBpbnQgbmV0ZGV2X2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWMKIAogCWlm IChkZWJ1ZyA+IDEpIHsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBTaHV0dGluZyBkb3duIGV0 aGVyY2FyZCwgc3RhdHVzIHdhcyAlOC44eCAiCi0JCQkgICAiQ29uZmlnICU4Ljh4LlxuIiwgZGV2 LT5uYW1lLCAoaW50KXJlYWRsKGlvYWRkciArIEludHJTdGF0dXMpLAotCQkJICAgKGludClyZWFk bChpb2FkZHIgKyBOZXR3b3JrQ29uZmlnKSk7CisJCQkgICAiQ29uZmlnICU4Ljh4LlxuIiwgZGV2 LT5uYW1lLCAoaW50KXJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9hZGRyICsgSW50clN0YXR1cykp LAorCQkJICAgKGludClyZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYWRkciArIE5ldHdvcmtDb25m aWcpKSk7CiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogUXVldWUgcG9pbnRlcnMgd2VyZSBUeCAl ZCAvICVkLCAgUnggJWQgLyAlZC5cbiIsCiAJCQkgICBkZXYtPm5hbWUsIG5wLT5jdXJfdHgsIG5w LT5kaXJ0eV90eCwgbnAtPmN1cl9yeCwgbnAtPmRpcnR5X3J4KTsKIAl9CkBAIC0xNTU2LDE1ICsx NTU2LDE1IEBAIHN0YXRpYyBpbnQgbmV0ZGV2X2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWMKIAlzcGlu X2xvY2tfaXJxKCZucC0+bG9jayk7CiAJbmV0aWZfZGV2aWNlX2RldGFjaChkZXYpOwogCXVwZGF0 ZV9jc3I2KGRldiwgMCk7Ci0Jd3JpdGVsKDB4MDAwMCwgaW9hZGRyICsgSW50ckVuYWJsZSk7CisJ d3JpdGVsKDB4MDAwMCwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIgKyBJbnRyRW5hYmxlKSk7CiAJ c3Bpbl91bmxvY2tfaXJxKCZucC0+bG9jayk7CiAKIAlmcmVlX2lycShkZXYtPmlycSwgZGV2KTsK IAl3bWIoKTsKIAluZXRpZl9kZXZpY2VfYXR0YWNoKGRldik7CiAKLQlpZiAocmVhZGwoaW9hZGRy ICsgTmV0d29ya0NvbmZpZykgIT0gMHhmZmZmZmZmZikKLQkJbnAtPnN0YXRzLnJ4X21pc3NlZF9l cnJvcnMgKz0gcmVhZGwoaW9hZGRyICsgUnhNaXNzZWQpICYgMHhmZmZmOworCWlmIChyZWFkbCgo dm9pZCBfX2lvbWVtICopKGlvYWRkciArIE5ldHdvcmtDb25maWcpKSAhPSAweGZmZmZmZmZmKQor CQlucC0+c3RhdHMucnhfbWlzc2VkX2Vycm9ycyArPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlv YWRkciArIFJ4TWlzc2VkKSkgJiAweGZmZmY7CiAKICNpZmRlZiBfX2kzODZfXwogCWlmIChkZWJ1 ZyA+IDIpIHsKQEAgLTE2NDgsMTkgKzE2NDgsMTkgQEAgc3RhdGljIGludCB3ODQwX3N1c3BlbmQg KHN0cnVjdCBwY2lfZGV2IAogCQlzcGluX2xvY2tfaXJxKCZucC0+bG9jayk7CiAJCW5ldGlmX2Rl dmljZV9kZXRhY2goZGV2KTsKIAkJdXBkYXRlX2NzcjYoZGV2LCAwKTsKLQkJd3JpdGVsKDAsIGlv YWRkciArIEludHJFbmFibGUpOworCQl3cml0ZWwoMCwgKHZvaWQgX19pb21lbSAqKShpb2FkZHIg KyBJbnRyRW5hYmxlKSk7CiAJCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKIAkJc3Bpbl91bmxvY2tf aXJxKCZucC0+bG9jayk7CiAKIAkJc3Bpbl91bmxvY2tfd2FpdCgmZGV2LT54bWl0X2xvY2spOwog CQlzeW5jaHJvbml6ZV9pcnEoZGV2LT5pcnEpOwogCQotCQlucC0+c3RhdHMucnhfbWlzc2VkX2Vy cm9ycyArPSByZWFkbChpb2FkZHIgKyBSeE1pc3NlZCkgJiAweGZmZmY7CisJCW5wLT5zdGF0cy5y eF9taXNzZWRfZXJyb3JzICs9IHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9hZGRyICsgUnhNaXNz ZWQpKSAmIDB4ZmZmZjsKIAogCQkvKiBubyBtb3JlIGhhcmR3YXJlIGFjY2Vzc2VzIGJlaGluZCB0 aGlzIGxpbmUuICovCiAKIAkJaWYgKG5wLT5jc3I2KSBCVUcoKTsKLQkJaWYgKHJlYWRsKGlvYWRk ciArIEludHJFbmFibGUpKSBCVUcoKTsKKwkJaWYgKHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9h ZGRyICsgSW50ckVuYWJsZSkpKSBCVUcoKTsKIAogCQkvKiBwY2lfcG93ZXJfb2ZmKHBkZXYsIC0x KTsgKi8KIApAQCAtMTY4NSw4ICsxNjg1LDggQEAgc3RhdGljIGludCB3ODQwX3Jlc3VtZSAoc3Ry dWN0IHBjaV9kZXYgKgogCS8qCXBjaV9wb3dlcl9vbihwZGV2KTsgKi8KIAogCQlzcGluX2xvY2tf aXJxKCZucC0+bG9jayk7Ci0JCXdyaXRlbCgxLCBkZXYtPmJhc2VfYWRkcitQQ0lCdXNDZmcpOwot CQlyZWFkbChkZXYtPmJhc2VfYWRkcitQQ0lCdXNDZmcpOworCQl3cml0ZWwoMSwgKHZvaWQgX19p b21lbSAqKShkZXYtPmJhc2VfYWRkcitQQ0lCdXNDZmcpKTsKKwkJcmVhZGwoKHZvaWQgX19pb21l bSAqKShkZXYtPmJhc2VfYWRkcitQQ0lCdXNDZmcpKTsKIAkJdWRlbGF5KDEpOwogCQluZXRpZl9k ZXZpY2VfYXR0YWNoKGRldik7CiAJCWluaXRfcnh0eF9yaW5ncyhkZXYpOwpkaWZmIC1wdXJOIGRy aXZlcnMvc2NzaS9mZG9tYWluLmMgZHJpdmVycy1maXgvc2NzaS9mZG9tYWluLmMKLS0tIGRyaXZl cnMvc2NzaS9mZG9tYWluLmMJMjAwNC0xMC0xMSAxMzoyODoxMC4wMDAwMDAwMDAgKzA1MzAKKysr IGRyaXZlcnMtZml4L3Njc2kvZmRvbWFpbi5jCTIwMDQtMTAtMTEgMTU6MTI6NDkuOTM5NDY0MzA0 ICswNTMwCkBAIC0xNjU4LDcgKzE2NTgsNyBAQCBzdGF0aWMgaW50IGZkb21haW5fMTZ4MF9iaW9z cGFyYW0oc3RydWN0CiAgICB9IGVsc2UgaWYgKGJpb3NfbWFqb3IgPT0gMwogCSAgICAgICYmIGJp b3NfbWlub3IgPj0gMAogCSAgICAgICYmIGJpb3NfbWlub3IgPCA0KSB7IC8qIDMuMCBhbmQgMy4y IEJJT1MgKi8KLSAgICAgIG1lbWNweV9mcm9taW8oICZpLCBiaW9zX2Jhc2UgKyAweDFmNzEgKyBk cml2ZSAqIDEwLAorICAgICAgbWVtY3B5X2Zyb21pbyggJmksICh2b2lkIF9faW9tZW0gKikoYmlv c19iYXNlICsgMHgxZjcxICsgZHJpdmUgKiAxMCksCiAJCSAgICAgc2l6ZW9mKCBzdHJ1Y3QgZHJp dmVfaW5mbyApICk7CiAgICAgICBpbmZvX2FycmF5WzBdID0gaS5oZWFkcyArIDE7CiAgICAgICBp bmZvX2FycmF5WzFdID0gaS5zZWN0b3JzOwpkaWZmIC1wdXJOIGRyaXZlcnMvc2NzaS9pcHIuYyBk cml2ZXJzLWZpeC9zY3NpL2lwci5jCi0tLSBkcml2ZXJzL3Njc2kvaXByLmMJMjAwNC0xMC0xMSAx MzoyODoxMS4wMDAwMDAwMDAgKzA1MzAKKysrIGRyaXZlcnMtZml4L3Njc2kvaXByLmMJMjAwNC0x MC0xMSAxNToyODoxMS4yMDA0MTEzNTIgKzA1MzAKQEAgLTUxOSwxMSArNTE5LDExIEBAIHN0YXRp YyB2b2lkIGlwcl9tYXNrX2FuZF9jbGVhcl9pbnRlcnJ1cHQKIAlpb2FfY2ZnLT5hbGxvd19pbnRl cnJ1cHRzID0gMDsKIAogCS8qIFNldCBpbnRlcnJ1cHQgbWFzayB0byBzdG9wIGFsbCBuZXcgaW50 ZXJydXB0cyAqLwotCXdyaXRlbCh+MCwgaW9hX2NmZy0+cmVncy5zZXRfaW50ZXJydXB0X21hc2tf cmVnKTsKKwl3cml0ZWwofjAsICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5zZXRfaW50 ZXJydXB0X21hc2tfcmVnKSk7CiAKIAkvKiBDbGVhciBhbnkgcGVuZGluZyBpbnRlcnJ1cHRzICov Ci0Jd3JpdGVsKGNscl9pbnRzLCBpb2FfY2ZnLT5yZWdzLmNscl9pbnRlcnJ1cHRfcmVnKTsKLQlp bnRfcmVnID0gcmVhZGwoaW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfcmVnKTsKKwl3cml0 ZWwoY2xyX2ludHMsICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5jbHJfaW50ZXJydXB0 X3JlZykpOworCWludF9yZWcgPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYV9jZmctPnJlZ3Mu c2Vuc2VfaW50ZXJydXB0X3JlZykpOwogfQogCiAvKioKQEAgLTY2NCw3ICs2NjQsNyBAQCBzdGF0 aWMgdm9pZCBpcHJfZG9fcmVxKHN0cnVjdCBpcHJfY21uZCAqCiAKIAltYigpOwogCXdyaXRlbChi ZTMyX3RvX2NwdShpcHJfY21kLT5pb2FyY2IuaW9hcmNiX2hvc3RfcGNpX2FkZHIpLAotCSAgICAg ICBpb2FfY2ZnLT5yZWdzLmlvYXJyaW5fcmVnKTsKKwkgICAgICAgKHZvaWQgX19pb21lbSAqKShp b2FfY2ZnLT5yZWdzLmlvYXJyaW5fcmVnKSk7CiB9CiAKIC8qKgpAQCAtNzU3LDcgKzc1Nyw3IEBA IHN0YXRpYyB2b2lkIGlwcl9zZW5kX2hjYW0oc3RydWN0IGlwcl9pb2EKIAogCQltYigpOwogCQl3 cml0ZWwoYmUzMl90b19jcHUoaXByX2NtZC0+aW9hcmNiLmlvYXJjYl9ob3N0X3BjaV9hZGRyKSwK LQkJICAgICAgIGlvYV9jZmctPnJlZ3MuaW9hcnJpbl9yZWcpOworCQkgICAgICAgKHZvaWQgX19p b21lbSAqKShpb2FfY2ZnLT5yZWdzLmlvYXJyaW5fcmVnKSk7CiAJfSBlbHNlIHsKIAkJbGlzdF9h ZGRfdGFpbCgmaG9zdHJjYi0+cXVldWUsICZpb2FfY2ZnLT5ob3N0cmNiX2ZyZWVfcSk7CiAJfQpA QCAtMTM2MCw3ICsxMzYwLDcgQEAgc3RhdGljIGludCBpcHJfd2FpdF9pb2RiZ19hY2soc3RydWN0 IGlwcgogCiAJLyogUmVhZCBpbnRlcnJ1cHQgcmVnIHVudGlsIElPQSBzaWduYWxzIElPIERlYnVn IEFja25vd2xlZGdlICovCiAJd2hpbGUgKGRlbGF5IDwgbWF4X2RlbGF5KSB7Ci0JCXBjaWlfcmVn ID0gcmVhZGwoaW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfcmVnKTsKKwkJcGNpaV9yZWcg PSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYV9jZmctPnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3Jl ZykpOwogCiAJCWlmIChwY2lpX3JlZyAmIElQUl9QQ0lJX0lPX0RFQlVHX0FDS05PV0xFREdFKQog CQkJcmV0dXJuIDA7CkBAIC0xMzk1LDcgKzEzOTUsNyBAQCBzdGF0aWMgaW50IGlwcl9nZXRfbGR1 bXBfZGF0YV9zZWN0aW9uKHN0CiAKIAkvKiBXcml0ZSBJT0EgaW50ZXJydXB0IHJlZyBzdGFydGlu ZyBMRFVNUCBzdGF0ZSAgKi8KIAl3cml0ZWwoKElQUl9VUFJPQ0lfUkVTRVRfQUxFUlQgfCBJUFJf VVBST0NJX0lPX0RFQlVHX0FMRVJUKSwKLQkgICAgICAgaW9hX2NmZy0+cmVncy5zZXRfdXByb2Nf aW50ZXJydXB0X3JlZyk7CisJICAgICAgICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5z ZXRfdXByb2NfaW50ZXJydXB0X3JlZykpOwogCiAJLyogV2FpdCBmb3IgSU8gZGVidWcgYWNrbm93 bGVkZ2UgKi8KIAlpZiAoaXByX3dhaXRfaW9kYmdfYWNrKGlvYV9jZmcsCkBAIC0xNDA3LDE0ICsx NDA3LDE0IEBAIHN0YXRpYyBpbnQgaXByX2dldF9sZHVtcF9kYXRhX3NlY3Rpb24oc3QKIAogCS8q IFNpZ25hbCBMRFVNUCBpbnRlcmxvY2tlZCAtIGNsZWFyIElPIGRlYnVnIGFjayAqLwogCXdyaXRl bChJUFJfUENJSV9JT19ERUJVR19BQ0tOT1dMRURHRSwKLQkgICAgICAgaW9hX2NmZy0+cmVncy5j bHJfaW50ZXJydXB0X3JlZyk7CisJICAgICAgICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVn cy5jbHJfaW50ZXJydXB0X3JlZykpOwogCiAJLyogV3JpdGUgTWFpbGJveCB3aXRoIHN0YXJ0aW5n IGFkZHJlc3MgKi8KLQl3cml0ZWwoc3RhcnRfYWRkciwgaW9hX2NmZy0+aW9hX21haWxib3gpOwor CXdyaXRlbChzdGFydF9hZGRyLCAodm9pZCBfX2lvbWVtICopKGlvYV9jZmctPmlvYV9tYWlsYm94 KSk7CiAKIAkvKiBTaWduYWwgYWRkcmVzcyB2YWxpZCAtIGNsZWFyIElPQSBSZXNldCBhbGVydCAq LwogCXdyaXRlbChJUFJfVVBST0NJX1JFU0VUX0FMRVJULAotCSAgICAgICBpb2FfY2ZnLT5yZWdz LmNscl91cHJvY19pbnRlcnJ1cHRfcmVnKTsKKwkgICAgICAgKHZvaWQgX19pb21lbSAqKShpb2Ff Y2ZnLT5yZWdzLmNscl91cHJvY19pbnRlcnJ1cHRfcmVnKSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg bGVuZ3RoX2luX3dvcmRzOyBpKyspIHsKIAkJLyogV2FpdCBmb3IgSU8gZGVidWcgYWNrbm93bGVk Z2UgKi8KQEAgLTE0MjYsMzIgKzE0MjYsMzIgQEAgc3RhdGljIGludCBpcHJfZ2V0X2xkdW1wX2Rh dGFfc2VjdGlvbihzdAogCQl9CiAKIAkJLyogUmVhZCBkYXRhIGZyb20gbWFpbGJveCBhbmQgaW5j cmVtZW50IGRlc3RpbmF0aW9uIHBvaW50ZXIgKi8KLQkJKmRlc3QgPSBjcHVfdG9fYmUzMihyZWFk bChpb2FfY2ZnLT5pb2FfbWFpbGJveCkpOworCQkqZGVzdCA9IGNwdV90b19iZTMyKHJlYWRsKCh2 b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+aW9hX21haWxib3gpKSk7CiAJCWRlc3QrKzsKIAogCQkv KiBGb3IgYWxsIGJ1dCB0aGUgbGFzdCB3b3JkIG9mIGRhdGEsIHNpZ25hbCBkYXRhIHJlY2VpdmVk ICovCiAJCWlmIChpIDwgKGxlbmd0aF9pbl93b3JkcyAtIDEpKSB7CiAJCQkvKiBTaWduYWwgZHVt cCBkYXRhIHJlY2VpdmVkIC0gQ2xlYXIgSU8gZGVidWcgQWNrICovCiAJCQl3cml0ZWwoSVBSX1BD SUlfSU9fREVCVUdfQUNLTk9XTEVER0UsCi0JCQkgICAgICAgaW9hX2NmZy0+cmVncy5jbHJfaW50 ZXJydXB0X3JlZyk7CisJCQkgICAgICAgKHZvaWQgX19pb21lbSAqKShpb2FfY2ZnLT5yZWdzLmNs cl9pbnRlcnJ1cHRfcmVnKSk7CiAJCX0KIAl9CiAKIAkvKiBTaWduYWwgZW5kIG9mIGJsb2NrIHRy YW5zZmVyLiBTZXQgcmVzZXQgYWxlcnQgdGhlbiBjbGVhciBJTyBkZWJ1ZyBhY2sgKi8KIAl3cml0 ZWwoSVBSX1VQUk9DSV9SRVNFVF9BTEVSVCwKLQkgICAgICAgaW9hX2NmZy0+cmVncy5zZXRfdXBy b2NfaW50ZXJydXB0X3JlZyk7CisJICAgICAgICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVn cy5zZXRfdXByb2NfaW50ZXJydXB0X3JlZykpOwogCiAJd3JpdGVsKElQUl9VUFJPQ0lfSU9fREVC VUdfQUxFUlQsCi0JICAgICAgIGlvYV9jZmctPnJlZ3MuY2xyX3Vwcm9jX2ludGVycnVwdF9yZWcp OworCSAgICAgICAodm9pZCBfX2lvbWVtICopKGlvYV9jZmctPnJlZ3MuY2xyX3Vwcm9jX2ludGVy cnVwdF9yZWcpKTsKIAogCS8qIFNpZ25hbCBkdW1wIGRhdGEgcmVjZWl2ZWQgLSBDbGVhciBJTyBk ZWJ1ZyBBY2sgKi8KIAl3cml0ZWwoSVBSX1BDSUlfSU9fREVCVUdfQUNLTk9XTEVER0UsCi0JICAg ICAgIGlvYV9jZmctPnJlZ3MuY2xyX2ludGVycnVwdF9yZWcpOworCSAgICAgICAodm9pZCBfX2lv bWVtICopKGlvYV9jZmctPnJlZ3MuY2xyX2ludGVycnVwdF9yZWcpKTsKIAogCS8qIFdhaXQgZm9y IElPQSB0byBzaWduYWwgTERVTVAgZXhpdCAtIElPQSByZXNldCBhbGVydCB3aWxsIGJlIGNsZWFy ZWQgKi8KIAl3aGlsZSAoZGVsYXkgPCBJUFJfTERVTVBfTUFYX1NIT1JUX0FDS19ERUxBWV9JTl9V U0VDKSB7CiAJCXRlbXBfcGNpaV9yZWcgPQotCQkgICAgcmVhZGwoaW9hX2NmZy0+cmVncy5zZW5z ZV91cHJvY19pbnRlcnJ1cHRfcmVnKTsKKwkJICAgIHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9h X2NmZy0+cmVncy5zZW5zZV91cHJvY19pbnRlcnJ1cHRfcmVnKSk7CiAKIAkJaWYgKCEodGVtcF9w Y2lpX3JlZyAmIElQUl9VUFJPQ0lfUkVTRVRfQUxFUlQpKQogCQkJcmV0dXJuIDA7CkBAIC0xNjYx LDcgKzE2NjEsNyBAQCBzdGF0aWMgdm9pZCBpcHJfZ2V0X2lvYV9kdW1wKHN0cnVjdCBpcHJfCiAJ CXJldHVybjsKIAl9CiAKLQlzdGFydF9hZGRyID0gcmVhZGwoaW9hX2NmZy0+aW9hX21haWxib3gp OworCXN0YXJ0X2FkZHIgPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYV9jZmctPmlvYV9tYWls Ym94KSk7CiAKIAlpZiAoIWlwcl9zZHRfaXNfZm10MihzdGFydF9hZGRyKSkgewogCQlkZXZfZXJy KCZpb2FfY2ZnLT5wZGV2LT5kZXYsCkBAIC0zMTY5LDExICszMTY5LDExIEBAIHN0YXRpYyBpcnFy ZXR1cm5fdCBpcHJfaGFuZGxlX290aGVyX2ludGUKIAogCWlmIChpbnRfcmVnICYgSVBSX1BDSUlf SU9BX1RSQU5TX1RPX09QRVIpIHsKIAkJLyogTWFzayB0aGUgaW50ZXJydXB0ICovCi0JCXdyaXRl bChJUFJfUENJSV9JT0FfVFJBTlNfVE9fT1BFUiwgaW9hX2NmZy0+cmVncy5zZXRfaW50ZXJydXB0 X21hc2tfcmVnKTsKKwkJd3JpdGVsKElQUl9QQ0lJX0lPQV9UUkFOU19UT19PUEVSLCAodm9pZCBf X2lvbWVtICopKGlvYV9jZmctPnJlZ3Muc2V0X2ludGVycnVwdF9tYXNrX3JlZykpOwogCiAJCS8q IENsZWFyIHRoZSBpbnRlcnJ1cHQgKi8KLQkJd3JpdGVsKElQUl9QQ0lJX0lPQV9UUkFOU19UT19P UEVSLCBpb2FfY2ZnLT5yZWdzLmNscl9pbnRlcnJ1cHRfcmVnKTsKLQkJaW50X3JlZyA9IHJlYWRs KGlvYV9jZmctPnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3JlZyk7CisJCXdyaXRlbChJUFJfUENJSV9J T0FfVFJBTlNfVE9fT1BFUiwgKHZvaWQgX19pb21lbSAqKShpb2FfY2ZnLT5yZWdzLmNscl9pbnRl cnJ1cHRfcmVnKSk7CisJCWludF9yZWcgPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlvYV9jZmct PnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3JlZykpOwogCiAJCWxpc3RfZGVsKCZpb2FfY2ZnLT5yZXNl dF9jbWQtPnF1ZXVlKTsKIAkJZGVsX3RpbWVyKCZpb2FfY2ZnLT5yZXNldF9jbWQtPnRpbWVyKTsK QEAgLTMyMjIsOCArMzIyMiw4IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpcHJfaXNyKGludCBpcnEs IHZvaWQKIAkJcmV0dXJuIElSUV9OT05FOwogCX0KIAotCWludF9tYXNrX3JlZyA9IHJlYWRsKGlv YV9jZmctPnJlZ3Muc2Vuc2VfaW50ZXJydXB0X21hc2tfcmVnKTsKLQlpbnRfcmVnID0gcmVhZGwo aW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfcmVnKSAmIH5pbnRfbWFza19yZWc7CisJaW50 X21hc2tfcmVnID0gcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2FfY2ZnLT5yZWdzLnNlbnNlX2lu dGVycnVwdF9tYXNrX3JlZykpOworCWludF9yZWcgPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlv YV9jZmctPnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3JlZykpICYgfmludF9tYXNrX3JlZzsKIAogCS8q IElmIGFuIGludGVycnVwdCBvbiB0aGUgYWRhcHRlciBkaWQgbm90IG9jY3VyLCBpZ25vcmUgaXQg Ki8KIAlpZiAodW5saWtlbHkoKGludF9yZWcgJiBJUFJfUENJSV9PUEVSX0lOVEVSUlVQVFMpID09 IDApKSB7CkBAIC0zMjc0LDggKzMyNzQsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXByX2lzcihp bnQgaXJxLCB2b2lkCiAKIAkJaWYgKGlwcl9jbWQgIT0gTlVMTCkgewogCQkJLyogQ2xlYXIgdGhl IFBDSSBpbnRlcnJ1cHQgKi8KLQkJCXdyaXRlbChJUFJfUENJSV9IUlJRX1VQREFURUQsIGlvYV9j ZmctPnJlZ3MuY2xyX2ludGVycnVwdF9yZWcpOwotCQkJaW50X3JlZyA9IHJlYWRsKGlvYV9jZmct PnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3JlZykgJiB+aW50X21hc2tfcmVnOworCQkJd3JpdGVsKElQ Ul9QQ0lJX0hSUlFfVVBEQVRFRCwgKHZvaWQgX19pb21lbSAqKShpb2FfY2ZnLT5yZWdzLmNscl9p bnRlcnJ1cHRfcmVnKSk7CisJCQlpbnRfcmVnID0gcmVhZGwoKHZvaWQgX19pb21lbSAqKShpb2Ff Y2ZnLT5yZWdzLnNlbnNlX2ludGVycnVwdF9yZWcpKSAmIH5pbnRfbWFza19yZWc7CiAJCX0gZWxz ZQogCQkJYnJlYWs7CiAJfQpAQCAtMzkxNiw3ICszOTE2LDcgQEAgc3RhdGljIGludCBpcHJfcXVl dWVjb21tYW5kKHN0cnVjdCBzY3NpXwogCWlmIChsaWtlbHkocmMgPT0gMCkpIHsKIAkJbWIoKTsK IAkJd3JpdGVsKGJlMzJfdG9fY3B1KGlwcl9jbWQtPmlvYXJjYi5pb2FyY2JfaG9zdF9wY2lfYWRk ciksCi0JCSAgICAgICBpb2FfY2ZnLT5yZWdzLmlvYXJyaW5fcmVnKTsKKwkJICAgICAgICh2b2lk IF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5pb2FycmluX3JlZykpOwogCX0gZWxzZSB7CiAJCSBs aXN0X21vdmVfdGFpbCgmaXByX2NtZC0+cXVldWUsICZpb2FfY2ZnLT5mcmVlX3EpOwogCQkgcmV0 dXJuIFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7CkBAIC00Nzk2LDIwICs0Nzk2LDIwIEBAIHN0YXRp YyBpbnQgaXByX3Jlc2V0X2VuYWJsZV9pb2Eoc3RydWN0IGkKIAlpcHJfaW5pdF9pb2FfbWVtKGlv YV9jZmcpOwogCiAJaW9hX2NmZy0+YWxsb3dfaW50ZXJydXB0cyA9IDE7Ci0JaW50X3JlZyA9IHJl YWRsKGlvYV9jZmctPnJlZ3Muc2Vuc2VfaW50ZXJydXB0X3JlZyk7CisJaW50X3JlZyA9IHJlYWRs KCh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfcmVnKSk7CiAK IAlpZiAoaW50X3JlZyAmIElQUl9QQ0lJX0lPQV9UUkFOU19UT19PUEVSKSB7CiAJCXdyaXRlbCgo SVBSX1BDSUlfRVJST1JfSU5URVJSVVBUUyB8IElQUl9QQ0lJX0hSUlFfVVBEQVRFRCksCi0JCSAg ICAgICBpb2FfY2ZnLT5yZWdzLmNscl9pbnRlcnJ1cHRfbWFza19yZWcpOwotCQlpbnRfcmVnID0g cmVhZGwoaW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfbWFza19yZWcpOworCQkgICAgICAg KHZvaWQgX19pb21lbSAqKShpb2FfY2ZnLT5yZWdzLmNscl9pbnRlcnJ1cHRfbWFza19yZWcpKTsK KwkJaW50X3JlZyA9IHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5zZW5zZV9p bnRlcnJ1cHRfbWFza19yZWcpKTsKIAkJcmV0dXJuIElQUl9SQ19KT0JfQ09OVElOVUU7CiAJfQog CiAJLyogRW5hYmxlIGRlc3RydWN0aXZlIGRpYWdub3N0aWNzIG9uIElPQSAqLwotCXdyaXRlbChJ UFJfRE9PUkJFTEwsIGlvYV9jZmctPnJlZ3Muc2V0X3Vwcm9jX2ludGVycnVwdF9yZWcpOworCXdy aXRlbChJUFJfRE9PUkJFTEwsICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5zZXRfdXBy b2NfaW50ZXJydXB0X3JlZykpOwogCi0Jd3JpdGVsKElQUl9QQ0lJX09QRVJfSU5URVJSVVBUUywg aW9hX2NmZy0+cmVncy5jbHJfaW50ZXJydXB0X21hc2tfcmVnKTsKLQlpbnRfcmVnID0gcmVhZGwo aW9hX2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfbWFza19yZWcpOworCXdyaXRlbChJUFJfUENJ SV9PUEVSX0lOVEVSUlVQVFMsICh2b2lkIF9faW9tZW0gKikoaW9hX2NmZy0+cmVncy5jbHJfaW50 ZXJydXB0X21hc2tfcmVnKSk7CisJaW50X3JlZyA9IHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9h X2NmZy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfbWFza19yZWcpKTsKIAogCWRldl9pbmZvKCZpb2Ff Y2ZnLT5wZGV2LT5kZXYsICJJbml0aWFsaXppbmcgSU9BLlxuIik7CiAKQEAgLTQ4NzksNyArNDg3 OSw3IEBAIHN0YXRpYyB2b2lkIGlwcl9nZXRfdW5pdF9jaGVja19idWZmZXIoc3QKIAlzdHJ1Y3Qg aXByX3VjX3NkdCBzZHQ7CiAJaW50IHJjLCBsZW5ndGg7CiAKLQltYWlsYm94ID0gcmVhZGwoaW9h X2NmZy0+aW9hX21haWxib3gpOworCW1haWxib3ggPSByZWFkbCgodm9pZCBfX2lvbWVtICopKGlv YV9jZmctPmlvYV9tYWlsYm94KSk7CiAKIAlpZiAoIWlwcl9zZHRfaXNfZm10MihtYWlsYm94KSkg ewogCQlpcHJfdW5pdF9jaGVja19ub19kYXRhKGlvYV9jZmcpOwpAQCAtNTAxNSw3ICs1MDE1LDcg QEAgc3RhdGljIGludCBpcHJfcmVzZXRfYWxsb3dlZChzdHJ1Y3QgaXByXwogewogCXZvbGF0aWxl IHUzMiB0ZW1wX3JlZzsKIAotCXRlbXBfcmVnID0gcmVhZGwoaW9hX2NmZy0+cmVncy5zZW5zZV9p bnRlcnJ1cHRfcmVnKTsKKwl0ZW1wX3JlZyA9IHJlYWRsKCh2b2lkIF9faW9tZW0gKikoaW9hX2Nm Zy0+cmVncy5zZW5zZV9pbnRlcnJ1cHRfcmVnKSk7CiAJcmV0dXJuICgodGVtcF9yZWcgJiBJUFJf UENJSV9DUklUSUNBTF9PUEVSQVRJT04pID09IDApOwogfQogCkBAIC01MDczLDcgKzUwNzMsNyBA QCBzdGF0aWMgaW50IGlwcl9yZXNldF9hbGVydChzdHJ1Y3QgaXByX2NtCiAKIAlpZiAoKHJjID09 IFBDSUJJT1NfU1VDQ0VTU0ZVTCkgJiYgKGNtZF9yZWcgJiBQQ0lfQ09NTUFORF9NRU1PUlkpKSB7 CiAJCWlwcl9tYXNrX2FuZF9jbGVhcl9pbnRlcnJ1cHRzKGlvYV9jZmcsIH4wKTsKLQkJd3JpdGVs KElQUl9VUFJPQ0lfUkVTRVRfQUxFUlQsIGlvYV9jZmctPnJlZ3Muc2V0X3Vwcm9jX2ludGVycnVw dF9yZWcpOworCQl3cml0ZWwoSVBSX1VQUk9DSV9SRVNFVF9BTEVSVCwgKHZvaWQgX19pb21lbSAq KShpb2FfY2ZnLT5yZWdzLnNldF91cHJvY19pbnRlcnJ1cHRfcmVnKSk7CiAJCWlwcl9jbWQtPmpv Yl9zdGVwID0gaXByX3Jlc2V0X3dhaXRfdG9fc3RhcnRfYmlzdDsKIAl9IGVsc2UgewogCQlpcHJf Y21kLT5qb2Jfc3RlcCA9IGlwcl9yZXNldF9zdGFydF9iaXN0OwpkaWZmIC1wdXJOIGRyaXZlcnMv c2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tYm94LmggZHJpdmVycy1maXgvc2NzaS9tZWdhcmFpZC9t ZWdhcmFpZF9tYm94LmgKLS0tIGRyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tYm94LmgJ MjAwNC0xMC0xMSAxMzoyODoxMS4wMDAwMDAwMDAgKzA1MzAKKysrIGRyaXZlcnMtZml4L3Njc2kv bWVnYXJhaWQvbWVnYXJhaWRfbWJveC5oCTIwMDQtMTAtMTEgMTU6MTA6NTQuNjI4OTk0MTYwICsw NTMwCkBAIC0yNTgsMTAgKzI1OCwxMCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIElTX1JB SURfQ0gocmRldiwgY2gpCSgoKHJkZXYpLT5jaGFubmVsX2NsYXNzID4+IChjaCkpICYgMHgwMSkK IAogCi0jZGVmaW5lIFJESU5ET09SKHJkZXYpCQlyZWFkbCgocmRldiktPmJhc2VhZGRyICsgMHgy MCkKLSNkZWZpbmUgUkRPVVRET09SKHJkZXYpCQlyZWFkbCgocmRldiktPmJhc2VhZGRyICsgMHgy QykKLSNkZWZpbmUgV1JJTkRPT1IocmRldiwgdmFsdWUpCXdyaXRlbCh2YWx1ZSwgKHJkZXYpLT5i YXNlYWRkciArIDB4MjApCi0jZGVmaW5lIFdST1VURE9PUihyZGV2LCB2YWx1ZSkJd3JpdGVsKHZh bHVlLCAocmRldiktPmJhc2VhZGRyICsgMHgyQykKKyNkZWZpbmUgUkRJTkRPT1IocmRldikJCXJl YWRsKCh2b2lkIF9faW9tZW0gKikoKHJkZXYpLT5iYXNlYWRkciArIDB4MjApKQorI2RlZmluZSBS RE9VVERPT1IocmRldikJCXJlYWRsKCh2b2lkIF9faW9tZW0gKikoKHJkZXYpLT5iYXNlYWRkciAr IDB4MkMpKQorI2RlZmluZSBXUklORE9PUihyZGV2LCB2YWx1ZSkJd3JpdGVsKHZhbHVlLCAodm9p ZCBfX2lvbWVtICopKChyZGV2KS0+YmFzZWFkZHIgKyAweDIwKSkKKyNkZWZpbmUgV1JPVVRET09S KHJkZXYsIHZhbHVlKQl3cml0ZWwodmFsdWUsICh2b2lkIF9faW9tZW0gKikoKHJkZXYpLT5iYXNl YWRkciArIDB4MkMpKQogCiAjZW5kaWYgLy8gX01FR0FSQUlEX0hfCiAKZGlmZiAtcHVyTiBkcml2 ZXJzL3Njc2kvcWxvZ2ljaXNwLmMgZHJpdmVycy1maXgvc2NzaS9xbG9naWNpc3AuYwotLS0gZHJp dmVycy9zY3NpL3Fsb2dpY2lzcC5jCTIwMDQtMTAtMTEgMTM6Mjg6MTAuMDAwMDAwMDAwICswNTMw CisrKyBkcml2ZXJzLWZpeC9zY3NpL3Fsb2dpY2lzcC5jCTIwMDQtMTAtMTEgMTU6MTM6NTAuODM1 MjA2NzQ0ICswNTMwCkBAIC02MjksNyArNjI5LDcgQEAgc3RhdGljIGlubGluZSB1X3Nob3J0IGlz cF9pbncoc3RydWN0IFNjcwogewogCXN0cnVjdCBpc3AxMDIwX2hvc3RkYXRhICpoID0gKHN0cnVj dCBpc3AxMDIwX2hvc3RkYXRhICopaG9zdC0+aG9zdGRhdGE7CiAJaWYgKGgtPm1lbWFkZHIpCi0J CXJldHVybiByZWFkdyhoLT5tZW1hZGRyICsgb2Zmc2V0KTsKKwkJcmV0dXJuIHJlYWR3KCh2b2lk IF9faW9tZW0gKikoaC0+bWVtYWRkciArIG9mZnNldCkpOwogCWVsc2UKIAkJcmV0dXJuIGludyho b3N0LT5pb19wb3J0ICsgb2Zmc2V0KTsKIH0KQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgaXNwX291dHcodV9zaG9ydCB2YWwsCiB7CiAJc3RydWN0IGlzcDEwMjBfaG9zdGRh dGEgKmggPSAoc3RydWN0IGlzcDEwMjBfaG9zdGRhdGEgKilob3N0LT5ob3N0ZGF0YTsKIAlpZiAo aC0+bWVtYWRkcikKLQkJd3JpdGV3KHZhbCwgaC0+bWVtYWRkciArIG9mZnNldCk7CisJCXdyaXRl dyh2YWwsICh2b2lkIF9faW9tZW0gKikoaC0+bWVtYWRkciArIG9mZnNldCkpOwogCWVsc2UKIAkJ b3V0dyh2YWwsIGhvc3QtPmlvX3BvcnQgKyBvZmZzZXQpOwogfQpkaWZmIC1wdXJOIGRyaXZlcnMv c2NzaS9zYXRhX3N2dy5jIGRyaXZlcnMtZml4L3Njc2kvc2F0YV9zdncuYwotLS0gZHJpdmVycy9z Y3NpL3NhdGFfc3Z3LmMJMjAwNC0xMC0xMSAxMzoyODoxMC4wMDAwMDAwMDAgKzA1MzAKKysrIGRy aXZlcnMtZml4L3Njc2kvc2F0YV9zdncuYwkyMDA0LTEwLTExIDE1OjU1OjE4LjMzMTA0OTg5NiAr MDUzMApAQCAtMTAzLDI2ICsxMDMsMjYgQEAgc3RhdGljIHZvaWQgazJfc2F0YV90Zl9sb2FkKHN0 cnVjdCBhdGFfcAogCXVuc2lnbmVkIGludCBpc19hZGRyID0gdGYtPmZsYWdzICYgQVRBX1RGTEFH X0lTQUREUjsKIAogCWlmICh0Zi0+Y3RsICE9IGFwLT5sYXN0X2N0bCkgewotCQl3cml0ZWIodGYt PmN0bCwgaW9hZGRyLT5jdGxfYWRkcik7CisJCXdyaXRlYih0Zi0+Y3RsLCAodm9pZCBfX2lvbWVt ICopKGlvYWRkci0+Y3RsX2FkZHIpKTsKIAkJYXAtPmxhc3RfY3RsID0gdGYtPmN0bDsKIAkJYXRh X3dhaXRfaWRsZShhcCk7CiAJfQogCWlmIChpc19hZGRyICYmICh0Zi0+ZmxhZ3MgJiBBVEFfVEZM QUdfTEJBNDgpKSB7Ci0JCXdyaXRldyh0Zi0+ZmVhdHVyZSB8ICgoKHUxNil0Zi0+aG9iX2ZlYXR1 cmUpIDw8IDgpLCBpb2FkZHItPmZlYXR1cmVfYWRkcik7Ci0JCXdyaXRldyh0Zi0+bnNlY3QgfCAo KCh1MTYpdGYtPmhvYl9uc2VjdCkgPDwgOCksIGlvYWRkci0+bnNlY3RfYWRkcik7Ci0JCXdyaXRl dyh0Zi0+bGJhbCB8ICgoKHUxNil0Zi0+aG9iX2xiYWwpIDw8IDgpLCBpb2FkZHItPmxiYWxfYWRk cik7Ci0JCXdyaXRldyh0Zi0+bGJhbSB8ICgoKHUxNil0Zi0+aG9iX2xiYW0pIDw8IDgpLCBpb2Fk ZHItPmxiYW1fYWRkcik7Ci0JCXdyaXRldyh0Zi0+bGJhaCB8ICgoKHUxNil0Zi0+aG9iX2xiYWgp IDw8IDgpLCBpb2FkZHItPmxiYWhfYWRkcik7CisJCXdyaXRldyh0Zi0+ZmVhdHVyZSB8ICgoKHUx Nil0Zi0+aG9iX2ZlYXR1cmUpIDw8IDgpLCAodm9pZCBfX2lvbWVtICopKGlvYWRkci0+ZmVhdHVy ZV9hZGRyKSk7CisJCXdyaXRldyh0Zi0+bnNlY3QgfCAoKCh1MTYpdGYtPmhvYl9uc2VjdCkgPDwg OCksICh2b2lkIF9faW9tZW0gKikoaW9hZGRyLT5uc2VjdF9hZGRyKSk7CisJCXdyaXRldyh0Zi0+ bGJhbCB8ICgoKHUxNil0Zi0+aG9iX2xiYWwpIDw8IDgpLCAodm9pZCBfX2lvbWVtICopKGlvYWRk ci0+bGJhbF9hZGRyKSk7CisJCXdyaXRldyh0Zi0+bGJhbSB8ICgoKHUxNil0Zi0+aG9iX2xiYW0p IDw8IDgpLCAodm9pZCBfX2lvbWVtICopKGlvYWRkci0+bGJhbV9hZGRyKSk7CisJCXdyaXRldyh0 Zi0+bGJhaCB8ICgoKHUxNil0Zi0+aG9iX2xiYWgpIDw8IDgpLCAodm9pZCBfX2lvbWVtICopKGlv YWRkci0+bGJhaF9hZGRyKSk7CiAJfSBlbHNlIGlmIChpc19hZGRyKSB7Ci0JCXdyaXRldyh0Zi0+ ZmVhdHVyZSwgaW9hZGRyLT5mZWF0dXJlX2FkZHIpOwotCQl3cml0ZXcodGYtPm5zZWN0LCBpb2Fk ZHItPm5zZWN0X2FkZHIpOwotCQl3cml0ZXcodGYtPmxiYWwsIGlvYWRkci0+bGJhbF9hZGRyKTsK LQkJd3JpdGV3KHRmLT5sYmFtLCBpb2FkZHItPmxiYW1fYWRkcik7Ci0JCXdyaXRldyh0Zi0+bGJh aCwgaW9hZGRyLT5sYmFoX2FkZHIpOworCQl3cml0ZXcodGYtPmZlYXR1cmUsICh2b2lkIF9faW9t ZW0gKikoaW9hZGRyLT5mZWF0dXJlX2FkZHIpKTsKKwkJd3JpdGV3KHRmLT5uc2VjdCwgKHZvaWQg X19pb21lbSAqKShpb2FkZHItPm5zZWN0X2FkZHIpKTsKKwkJd3JpdGV3KHRmLT5sYmFsLCAodm9p ZCBfX2lvbWVtICopKGlvYWRkci0+bGJhbF9hZGRyKSk7CisJCXdyaXRldyh0Zi0+bGJhbSwgKHZv aWQgX19pb21lbSAqKShpb2FkZHItPmxiYW1fYWRkcikpOworCQl3cml0ZXcodGYtPmxiYWgsICh2 b2lkIF9faW9tZW0gKikoaW9hZGRyLT5sYmFoX2FkZHIpKTsKIAl9CiAKIAlpZiAodGYtPmZsYWdz ICYgQVRBX1RGTEFHX0RFVklDRSkKLQkJd3JpdGViKHRmLT5kZXZpY2UsIGlvYWRkci0+ZGV2aWNl X2FkZHIpOworCQl3cml0ZWIodGYtPmRldmljZSwgKHZvaWQgX19pb21lbSAqKShpb2FkZHItPmRl dmljZV9hZGRyKSk7CiAKIAlhdGFfd2FpdF9pZGxlKGFwKTsKIH0KQEAgLTEzMywxNCArMTMzLDE0 IEBAIHN0YXRpYyB2b2lkIGsyX3NhdGFfdGZfcmVhZChzdHJ1Y3QgYXRhX3AKIAlzdHJ1Y3QgYXRh X2lvcG9ydHMgKmlvYWRkciA9ICZhcC0+aW9hZGRyOwogCXUxNiBuc2VjdCwgbGJhbCwgbGJhbSwg bGJhaDsKIAotCW5zZWN0ID0gdGYtPm5zZWN0ID0gcmVhZHcoaW9hZGRyLT5uc2VjdF9hZGRyKTsK LQlsYmFsID0gdGYtPmxiYWwgPSByZWFkdyhpb2FkZHItPmxiYWxfYWRkcik7Ci0JbGJhbSA9IHRm LT5sYmFtID0gcmVhZHcoaW9hZGRyLT5sYmFtX2FkZHIpOwotCWxiYWggPSB0Zi0+bGJhaCA9IHJl YWR3KGlvYWRkci0+bGJhaF9hZGRyKTsKLQl0Zi0+ZGV2aWNlID0gcmVhZHcoaW9hZGRyLT5kZXZp Y2VfYWRkcik7CisJbnNlY3QgPSB0Zi0+bnNlY3QgPSByZWFkdygodm9pZCBfX2lvbWVtICopaW9h ZGRyLT5uc2VjdF9hZGRyKTsKKwlsYmFsID0gdGYtPmxiYWwgPSByZWFkdygodm9pZCBfX2lvbWVt ICopaW9hZGRyLT5sYmFsX2FkZHIpOworCWxiYW0gPSB0Zi0+bGJhbSA9IHJlYWR3KCh2b2lkIF9f aW9tZW0gKilpb2FkZHItPmxiYW1fYWRkcik7CisJbGJhaCA9IHRmLT5sYmFoID0gcmVhZHcoKHZv aWQgX19pb21lbSAqKWlvYWRkci0+bGJhaF9hZGRyKTsKKwl0Zi0+ZGV2aWNlID0gcmVhZHcoKHZv aWQgX19pb21lbSAqKWlvYWRkci0+ZGV2aWNlX2FkZHIpOwogCiAJaWYgKHRmLT5mbGFncyAmIEFU QV9URkxBR19MQkE0OCkgewotCQl0Zi0+aG9iX2ZlYXR1cmUgPSByZWFkdyhpb2FkZHItPmVycm9y X2FkZHIpID4+IDg7CisJCXRmLT5ob2JfZmVhdHVyZSA9IHJlYWR3KCh2b2lkIF9faW9tZW0gKilp b2FkZHItPmVycm9yX2FkZHIpID4+IDg7CiAJCXRmLT5ob2JfbnNlY3QgPSBuc2VjdCA+PiA4Owog CQl0Zi0+aG9iX2xiYWwgPSBsYmFsID4+IDg7CiAJCXRmLT5ob2JfbGJhbSA9IGxiYW0gPj4gODsK ZGlmZiAtcHVyTiBkcml2ZXJzL3Njc2kvc2F0YV92c2MuYyBkcml2ZXJzLWZpeC9zY3NpL3NhdGFf dnNjLmMKLS0tIGRyaXZlcnMvc2NzaS9zYXRhX3ZzYy5jCTIwMDQtMTAtMTEgMTM6Mjg6MTAuMDAw MDAwMDAwICswNTMwCisrKyBkcml2ZXJzLWZpeC9zY3NpL3NhdGFfdnNjLmMJMjAwNC0xMC0xMSAx NDozMjo0MS4wMDAwMDAwMDAgKzA1MzAKQEAgLTg1LDEyICs4NSwxMiBAQCBzdGF0aWMgdm9pZCB2 c2NfaW50cl9tYXNrX3VwZGF0ZShzdHJ1Y3QgCiAKIAltYXNrX2FkZHIgPSAodW5zaWduZWQgbG9u ZykgYXAtPmhvc3Rfc2V0LT5tbWlvX2Jhc2UgKwogCQlWU0NfU0FUQV9JTlRfTUFTS19PRkZTRVQg KyBhcC0+cG9ydF9ubzsKLQltYXNrID0gcmVhZGIobWFza19hZGRyKTsKKwltYXNrID0gcmVhZGIo KHZvaWQgX19pb21lbSAqKW1hc2tfYWRkcik7CiAJaWYgKGN0bCAmIEFUQV9OSUVOKQogCQltYXNr IHw9IDB4ODA7CiAJZWxzZQogCQltYXNrICY9IDB4N0Y7Ci0Jd3JpdGViKG1hc2ssIG1hc2tfYWRk cik7CisJd3JpdGViKG1hc2ssICh2b2lkIF9faW9tZW0gKiltYXNrX2FkZHIpOwogfQogCiAKQEAg LTEwOSwyMSArMTA5LDIxIEBAIHN0YXRpYyB2b2lkIHZzY19zYXRhX3RmX2xvYWQoc3RydWN0IGF0 YV8KIAkJdnNjX2ludHJfbWFza191cGRhdGUoYXAsIHRmLT5jdGwgJiBBVEFfTklFTik7CiAJfQog CWlmIChpc19hZGRyICYmICh0Zi0+ZmxhZ3MgJiBBVEFfVEZMQUdfTEJBNDgpKSB7Ci0JCXdyaXRl dyh0Zi0+ZmVhdHVyZSB8ICgoKHUxNil0Zi0+aG9iX2ZlYXR1cmUpIDw8IDgpLCBpb2FkZHItPmZl YXR1cmVfYWRkcik7Ci0JCXdyaXRldyh0Zi0+bnNlY3QgfCAoKCh1MTYpdGYtPmhvYl9uc2VjdCkg PDwgOCksIGlvYWRkci0+bnNlY3RfYWRkcik7Ci0JCXdyaXRldyh0Zi0+bGJhbCB8ICgoKHUxNil0 Zi0+aG9iX2xiYWwpIDw8IDgpLCBpb2FkZHItPmxiYWxfYWRkcik7Ci0JCXdyaXRldyh0Zi0+bGJh bSB8ICgoKHUxNil0Zi0+aG9iX2xiYW0pIDw8IDgpLCBpb2FkZHItPmxiYW1fYWRkcik7Ci0JCXdy aXRldyh0Zi0+bGJhaCB8ICgoKHUxNil0Zi0+aG9iX2xiYWgpIDw8IDgpLCBpb2FkZHItPmxiYWhf YWRkcik7CisJCXdyaXRldyh0Zi0+ZmVhdHVyZSB8ICgoKHUxNil0Zi0+aG9iX2ZlYXR1cmUpIDw8 IDgpLCAodm9pZCBfX2lvbWVtICopaW9hZGRyLT5mZWF0dXJlX2FkZHIpOworCQl3cml0ZXcodGYt Pm5zZWN0IHwgKCgodTE2KXRmLT5ob2JfbnNlY3QpIDw8IDgpLCAodm9pZCBfX2lvbWVtICopaW9h ZGRyLT5uc2VjdF9hZGRyKTsKKwkJd3JpdGV3KHRmLT5sYmFsIHwgKCgodTE2KXRmLT5ob2JfbGJh bCkgPDwgOCksICh2b2lkIF9faW9tZW0gKilpb2FkZHItPmxiYWxfYWRkcik7CisJCXdyaXRldyh0 Zi0+bGJhbSB8ICgoKHUxNil0Zi0+aG9iX2xiYW0pIDw8IDgpLCAodm9pZCBfX2lvbWVtICopaW9h ZGRyLT5sYmFtX2FkZHIpOworCQl3cml0ZXcodGYtPmxiYWggfCAoKCh1MTYpdGYtPmhvYl9sYmFo KSA8PCA4KSwgKHZvaWQgX19pb21lbSAqKWlvYWRkci0+bGJhaF9hZGRyKTsKIAl9IGVsc2UgaWYg KGlzX2FkZHIpIHsKLQkJd3JpdGV3KHRmLT5mZWF0dXJlLCBpb2FkZHItPmZlYXR1cmVfYWRkcik7 Ci0JCXdyaXRldyh0Zi0+bnNlY3QsIGlvYWRkci0+bnNlY3RfYWRkcik7Ci0JCXdyaXRldyh0Zi0+ bGJhbCwgaW9hZGRyLT5sYmFsX2FkZHIpOwotCQl3cml0ZXcodGYtPmxiYW0sIGlvYWRkci0+bGJh bV9hZGRyKTsKLQkJd3JpdGV3KHRmLT5sYmFoLCBpb2FkZHItPmxiYWhfYWRkcik7CisJCXdyaXRl dyh0Zi0+ZmVhdHVyZSwgKHZvaWQgX19pb21lbSAqKWlvYWRkci0+ZmVhdHVyZV9hZGRyKTsKKwkJ d3JpdGV3KHRmLT5uc2VjdCwgKHZvaWQgX19pb21lbSAqKWlvYWRkci0+bnNlY3RfYWRkcik7CisJ CXdyaXRldyh0Zi0+bGJhbCwgKHZvaWQgX19pb21lbSAqKWlvYWRkci0+bGJhbF9hZGRyKTsKKwkJ d3JpdGV3KHRmLT5sYmFtLCAodm9pZCBfX2lvbWVtICopaW9hZGRyLT5sYmFtX2FkZHIpOworCQl3 cml0ZXcodGYtPmxiYWgsICh2b2lkIF9faW9tZW0gKilpb2FkZHItPmxiYWhfYWRkcik7CiAJfQog CiAJaWYgKHRmLT5mbGFncyAmIEFUQV9URkxBR19ERVZJQ0UpCi0JCXdyaXRlYih0Zi0+ZGV2aWNl LCBpb2FkZHItPmRldmljZV9hZGRyKTsKKwkJd3JpdGViKHRmLT5kZXZpY2UsICh2b2lkIF9faW9t ZW0gKilpb2FkZHItPmRldmljZV9hZGRyKTsKIAogCWF0YV93YWl0X2lkbGUoYXApOwogfQpAQCAt MTM0LDE0ICsxMzQsMTQgQEAgc3RhdGljIHZvaWQgdnNjX3NhdGFfdGZfcmVhZChzdHJ1Y3QgYXRh XwogCXN0cnVjdCBhdGFfaW9wb3J0cyAqaW9hZGRyID0gJmFwLT5pb2FkZHI7CiAJdTE2IG5zZWN0 LCBsYmFsLCBsYmFtLCBsYmFoOwogCi0JbnNlY3QgPSB0Zi0+bnNlY3QgPSByZWFkdyhpb2FkZHIt Pm5zZWN0X2FkZHIpOwotCWxiYWwgPSB0Zi0+bGJhbCA9IHJlYWR3KGlvYWRkci0+bGJhbF9hZGRy KTsKLQlsYmFtID0gdGYtPmxiYW0gPSByZWFkdyhpb2FkZHItPmxiYW1fYWRkcik7Ci0JbGJhaCA9 IHRmLT5sYmFoID0gcmVhZHcoaW9hZGRyLT5sYmFoX2FkZHIpOwotCXRmLT5kZXZpY2UgPSByZWFk dyhpb2FkZHItPmRldmljZV9hZGRyKTsKKwluc2VjdCA9IHRmLT5uc2VjdCA9IHJlYWR3KCh2b2lk IF9faW9tZW0gKilpb2FkZHItPm5zZWN0X2FkZHIpOworCWxiYWwgPSB0Zi0+bGJhbCA9IHJlYWR3 KCh2b2lkIF9faW9tZW0gKilpb2FkZHItPmxiYWxfYWRkcik7CisJbGJhbSA9IHRmLT5sYmFtID0g cmVhZHcoKHZvaWQgX19pb21lbSAqKWlvYWRkci0+bGJhbV9hZGRyKTsKKwlsYmFoID0gdGYtPmxi YWggPSByZWFkdygodm9pZCBfX2lvbWVtICopaW9hZGRyLT5sYmFoX2FkZHIpOworCXRmLT5kZXZp Y2UgPSByZWFkdygodm9pZCBfX2lvbWVtICopaW9hZGRyLT5kZXZpY2VfYWRkcik7CiAKIAlpZiAo dGYtPmZsYWdzICYgQVRBX1RGTEFHX0xCQTQ4KSB7Ci0JCXRmLT5ob2JfZmVhdHVyZSA9IHJlYWRi KGlvYWRkci0+ZXJyb3JfYWRkcik7CisJCXRmLT5ob2JfZmVhdHVyZSA9IHJlYWRiKCh2b2lkIF9f aW9tZW0gKilpb2FkZHItPmVycm9yX2FkZHIpOwogCQl0Zi0+aG9iX25zZWN0ID0gbnNlY3QgPj4g ODsKIAkJdGYtPmhvYl9sYmFsID0gbGJhbCA+PiA4OwogCQl0Zi0+aG9iX2xiYW0gPSBsYmFtID4+ IDg7CkBAIC0yNDUsOCArMjQ1LDggQEAgc3RhdGljIHZvaWQgX19kZXZpbml0IHZzY19zYXRhX3Nl dHVwX3BvcgogCXBvcnQtPmN0bF9hZGRyCQk9IGJhc2UgKyBWU0NfU0FUQV9URl9DVExfT0ZGU0VU OwogCXBvcnQtPmJtZG1hX2FkZHIJPSBiYXNlICsgVlNDX1NBVEFfRE1BX0NNRF9PRkZTRVQ7CiAJ cG9ydC0+c2NyX2FkZHIJCT0gYmFzZSArIFZTQ19TQVRBX1NDUl9TVEFUVVNfT0ZGU0VUOwotCXdy aXRlbCgwLCBiYXNlICsgVlNDX1NBVEFfVVBfREVTQ1JJUFRPUl9PRkZTRVQpOwotCXdyaXRlbCgw LCBiYXNlICsgVlNDX1NBVEFfVVBfREFUQV9CVUZGRVJfT0ZGU0VUKTsKKwl3cml0ZWwoMCwgKHZv aWQgX19pb21lbSAqKShiYXNlICsgVlNDX1NBVEFfVVBfREVTQ1JJUFRPUl9PRkZTRVQpKTsKKwl3 cml0ZWwoMCwgKHZvaWQgX19pb21lbSAqKShiYXNlICsgVlNDX1NBVEFfVVBfREFUQV9CVUZGRVJf T0ZGU0VUKSk7CiB9CiAKIAo= ------=_Part_704_15219098.1097492749667-- - 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/