From: "Jose R. Santos" Subject: Re: [PATCH 10/14] Make e2fsck uninit block group aware. Date: Mon, 22 Oct 2007 11:02:02 -0500 Message-ID: <20071022110202.57dc2984@rx8> References: <20071022020308.23849.98773.stgit@toolssf2> <20071022020403.23849.79537.stgit@toolssf2> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/Pgt1i2E1eTKCdml9nGCN=Se" To: "Theodore Ts'o" , linux-ext4@vger.kernel.org Return-path: Received: from e31.co.us.ibm.com ([32.97.110.149]:42445 "EHLO e31.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750891AbXJVQFu (ORCPT ); Mon, 22 Oct 2007 12:05:50 -0400 Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e31.co.us.ibm.com (8.13.8/8.13.8) with ESMTP id l9MG5g0O010434 for ; Mon, 22 Oct 2007 12:05:42 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v8.5) with ESMTP id l9MG5ghE023334 for ; Mon, 22 Oct 2007 10:05:42 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id l9MG5fla002671 for ; Mon, 22 Oct 2007 10:05:41 -0600 In-Reply-To: <20071022020403.23849.79537.stgit@toolssf2> Sender: linux-ext4-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org --MP_/Pgt1i2E1eTKCdml9nGCN=Se Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Ted, Aneesh was nice enough to explain how to checkout the next branch. This is the only patch that broke so I'm attaching one that applies cleanly. -JRS --MP_/Pgt1i2E1eTKCdml9nGCN=Se Content-Type: application/octet-stream; name=uninit_e2fsck_support Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=uninit_e2fsck_support TWFrZSBlMmZzY2sgdW5pbml0IGJsb2NrIGdyb3VwIGF3YXJlLgoKRnJvbTogSm9zZSBSLiBTYW50 b3MgPGpyc0B1cy5pYm0uY29tPgoKVGhpcyBwYXRjaCBoYXMgYWxsIHRoZSBuZWNlc2FyeSBwaWVj ZXMgdG8gb3BlbiBhbmQgZml4IGZpbGVzeXN0ZW1zIGNyZWF0ZWQKd2l0aCB0aGUgdW5pbml0IGJs b2NrIGdyb3VwIGZlYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBKb3NlIFIuIFNhbnRvcyA8anJzQHVz LmlibS5jb20+ClNpZ25lZC1PZmYtQnk6IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2VyQGNsdXN0ZXJm cy5jb20+Ci0tLQoKIGUyZnNjay9lMmZzY2suaCAgfCAgICAyICsKIGUyZnNjay9qb3VybmFsLmMg fCAgICAyICsKIGUyZnNjay9wYXNzMi5jICAgfCAgIDc3ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZTJmc2NrL3Bhc3M1LmMgICB8ICAgNjEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogZTJmc2NrL3Byb2Js ZW0uYyB8ICAgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGUyZnNjay9wcm9ibGVt LmggfCAgIDI2ICsrKysrKysrKysrKysrKysrKwogZTJmc2NrL3N1cGVyLmMgICB8ICAgNDEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIGUyZnNjay91bml4LmMgICAgfCAgIDExICsrKysr Ky0tCiBlMmZzY2svdXRpbC5jICAgIHwgICA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiA5IGZpbGVzIGNoYW5nZWQsIDI5MyBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9lMmZzY2svZTJmc2NrLmggYi9lMmZzY2svZTJmc2Nr LmgKaW5kZXggOWNjZmZkOC4uYTY3MzIyZCAxMDA2NDQKLS0tIGEvZTJmc2NrL2UyZnNjay5oCisr KyBiL2UyZnNjay9lMmZzY2suaApAQCAtNDY4LDYgKzQ2OCw4IEBAIGV4dGVybiB2b2lkIGUyZnNj a19yZWFkX2JpdG1hcHMoZTJmc2NrX3QgY3R4KTsKIGV4dGVybiB2b2lkIGUyZnNja193cml0ZV9i aXRtYXBzKGUyZnNja190IGN0eCk7CiBleHRlcm4gdm9pZCBwcmVlbmhhbHQoZTJmc2NrX3QgY3R4 KTsKIGV4dGVybiBjaGFyICpzdHJpbmdfY29weShlMmZzY2tfdCBjdHgsIGNvbnN0IGNoYXIgKnN0 ciwgaW50IGxlbik7CitleHRlcm4gZXJyY29kZV90IGUyZnNja196ZXJvX2Jsb2NrcyhleHQyX2Zp bHN5cyBmcywgYmxrX3QgYmxrLCBpbnQgbnVtLAorCQkJCSAgICBibGtfdCAqcmV0X2JsaywgaW50 ICpyZXRfY291bnQpOwogI2lmZGVmIFJFU09VUkNFX1RSQUNLCiBleHRlcm4gdm9pZCBwcmludF9y ZXNvdXJjZV90cmFjayhjb25zdCBjaGFyICpkZXNjLAogCQkJCSBzdHJ1Y3QgcmVzb3VyY2VfdHJh Y2sgKnRyYWNrLApkaWZmIC0tZ2l0IGEvZTJmc2NrL2pvdXJuYWwuYyBiL2UyZnNjay9qb3VybmFs LmMKaW5kZXggZjVmNDY0Ny4uY2VhZGU5MyAxMDA2NDQKLS0tIGEvZTJmc2NrL2pvdXJuYWwuYwor KysgYi9lMmZzY2svam91cm5hbC5jCkBAIC05ODgsNiArOTg4LDggQEAgdm9pZCBlMmZzY2tfbW92 ZV9leHQzX2pvdXJuYWwoZTJmc2NrX3QgY3R4KQogCWV4dDJmc191bm1hcmtfaW5vZGVfYml0bWFw KGZzLT5pbm9kZV9tYXAsIGlubyk7CiAJZXh0MmZzX21hcmtfaWJfZGlydHkoZnMpOwogCWZzLT5n cm91cF9kZXNjW2dyb3VwXS5iZ19mcmVlX2lub2Rlc19jb3VudCsrOworCWZzLT5ncm91cF9kZXNj W2dyb3VwXS5iZ19jaGVja3N1bSA9CisJCWV4dDJmc19ncm91cF9kZXNjX2NzdW0oZnMtPnN1cGVy LCBncm91cCwmZnMtPmdyb3VwX2Rlc2NbZ3JvdXBdKTsKIAlmcy0+c3VwZXItPnNfZnJlZV9pbm9k ZXNfY291bnQrKzsKIAlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2UyZnNjay9wYXNzMi5jIGIvZTJm c2NrL3Bhc3MyLmMKaW5kZXggMjdmNzEzNi4uMDQ3YjVjYSAxMDA2NDQKLS0tIGEvZTJmc2NrL3Bh c3MyLmMKKysrIGIvZTJmc2NrL3Bhc3MyLmMKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIGUyZnNj a19wYXNzMihlMmZzY2tfdCBjdHgpCiAJCiAJY2QucGN0eC5lcnJjb2RlID0gZXh0MmZzX2RibGlz dF9pdGVyYXRlKGZzLT5kYmxpc3QsIGNoZWNrX2Rpcl9ibG9jaywKIAkJCQkJCSZjZCk7Ci0JaWYg KGN0eC0+ZmxhZ3MgJiBFMkZfRkxBR19TSUdOQUxfTUFTSykKKwlpZiAoY3R4LT5mbGFncyAmIEUy Rl9GTEFHX1NJR05BTF9NQVNLIHx8IGN0eC0+ZmxhZ3MgJiBFMkZfRkxBR19SRVNUQVJUKQogCQly ZXR1cm47CiAJaWYgKGNkLnBjdHguZXJyY29kZSkgewogCQlmaXhfcHJvYmxlbShjdHgsIFBSXzJf REJMSVNUX0lURVJBVEUsICZjZC5wY3R4KTsKQEAgLTczNiw3ICs3MzYsNyBAQCBzdGF0aWMgaW50 IGNoZWNrX2Rpcl9ibG9jayhleHQyX2ZpbHN5cyBmcywKIAlidWYgPSBjZC0+YnVmOwogCWN0eCA9 IGNkLT5jdHg7CiAKLQlpZiAoY3R4LT5mbGFncyAmIEUyRl9GTEFHX1NJR05BTF9NQVNLKQorCWlm IChjdHgtPmZsYWdzICYgRTJGX0ZMQUdfU0lHTkFMX01BU0sgfHwgY3R4LT5mbGFncyAmIEUyRl9G TEFHX1JFU1RBUlQpCiAJCXJldHVybiBESVJFTlRfQUJPUlQ7CiAJCiAJaWYgKGN0eC0+cHJvZ3Jl c3MgJiYgKGN0eC0+cHJvZ3Jlc3MpKGN0eCwgMiwgY2QtPmNvdW50KyssIGNkLT5tYXgpKQpAQCAt ODMzLDYgKzgzMyw5IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlyX2Jsb2NrKGV4dDJfZmlsc3lzIGZz LAogCWRpY3RfaW5pdCgmZGVfZGljdCwgRElDVENPVU5UX1RfTUFYLCBkaWN0X2RlX2NtcCk7CiAJ cHJldiA9IDA7CiAJZG8geworCQlpbnQgZ3JvdXA7CisJCWV4dDJfaW5vX3QgZmlyc3RfdW51c2Vk X2lub2RlOworCiAJCXByb2JsZW0gPSAwOwogCQlkaXJlbnQgPSAoc3RydWN0IGV4dDJfZGlyX2Vu dHJ5ICopIChidWYgKyBvZmZzZXQpOwogCQljZC0+cGN0eC5kaXJlbnQgPSBkaXJlbnQ7CkBAIC04 ODIsMTIgKzg4NSw2IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlyX2Jsb2NrKGV4dDJfZmlsc3lzIGZz LAogCQkgICAgIChkaXJlbnQtPmlub2RlIDwgRVhUMl9GSVJTVF9JTk9ERShmcy0+c3VwZXIpKSkg fHwKIAkJICAgIChkaXJlbnQtPmlub2RlID4gZnMtPnN1cGVyLT5zX2lub2Rlc19jb3VudCkpIHsK IAkJCXByb2JsZW0gPSBQUl8yX0JBRF9JTk87Ci0JCX0gZWxzZSBpZiAoIShleHQyZnNfdGVzdF9p bm9kZV9iaXRtYXAoY3R4LT5pbm9kZV91c2VkX21hcCwKLQkJCQkJICAgICAgIGRpcmVudC0+aW5v ZGUpKSkgewotCQkJLyoKLQkJCSAqIElmIHRoZSBpbm9kZSBpcyB1bnVzZWQsIG9mZmVyIHRvIGNs ZWFyIGl0LgotCQkJICovCi0JCQlwcm9ibGVtID0gUFJfMl9VTlVTRURfSU5PREU7CiAJCX0gZWxz ZSBpZiAoY3R4LT5pbm9kZV9iYl9tYXAgJiYKIAkJCSAgIChleHQyZnNfdGVzdF9pbm9kZV9iaXRt YXAoY3R4LT5pbm9kZV9iYl9tYXAsCiAJCQkJCQkgICAgIGRpcmVudC0+aW5vZGUpKSkgewpAQCAt OTY0LDYgKzk2MSw2NyBAQCBzdGF0aWMgaW50IGNoZWNrX2Rpcl9ibG9jayhleHQyX2ZpbHN5cyBm cywKIAkJCQlyZXR1cm4gRElSRU5UX0FCT1JUOwogCQl9CiAKKwkJZ3JvdXAgPSBleHQyZnNfZ3Jv dXBfb2ZfaW5vKGZzLCBkaXJlbnQtPmlub2RlKTsKKwkJZmlyc3RfdW51c2VkX2lub2RlID0gZ3Jv dXAgKiBmcy0+c3VwZXItPnNfaW5vZGVzX3Blcl9ncm91cCArCisJCQkJCTEgKyBmcy0+c3VwZXIt PnNfaW5vZGVzX3Blcl9ncm91cCAtCisJCQkJCWZzLT5ncm91cF9kZXNjW2dyb3VwXS5iZ19pdGFi bGVfdW51c2VkOworCQljZC0+cGN0eC5ncm91cCA9IGdyb3VwOworCisJCS8qCisJCSAqIENoZWNr IGlmIHRoZSBpbm9kZSB3YXMgbWlzc2VkIG91dCBiZWNhdXNlIF9JTk9ERV9VTklOSVQKKwkJICog ZmxhZyB3YXMgc2V0IG9yIGJnX2l0YWJsZV91bnVzZWQgd2FzIGluY29ycmVjdC4KKwkJICogSWYg dGhhdCBpcyB0aGUgY2FzZSByZXN0YXJ0IGUyZnNjay4KKwkJICogWFhYIE9wdGltaXNhdGlvbnMg VE9ETzoKKwkJICogMS4gb25seSByZXN0YXJ0IGUyZnNjayBvbmNlCisJCSAqIDIuIG9ubHkgZXhw b3NlZCBpbm9kZXMgYXJlIGNoZWNrZWQgYWdhaW4uCisJCSAqLworCQlpZiAoZnMtPmdyb3VwX2Rl c2NbZ3JvdXBdLmJnX2ZsYWdzICYgRVhUMl9CR19JTk9ERV9VTklOSVQpIHsKKwkJCWlmIChmaXhf cHJvYmxlbShjdHgsIFBSXzJfSU5PUkVGX0JHX0lOT19VTklOSVQsCisJCQkJCSZjZC0+cGN0eCkp eworCQkJCWZzLT5ncm91cF9kZXNjW2dyb3VwXS5iZ19mbGFncyAmPQorCQkJCQl+RVhUMl9CR19J Tk9ERV9VTklOSVQ7CisJCQkJY3R4LT5mbGFncyB8PSBFMkZfRkxBR19SRVNUQVJUIHwKKwkJCQkJ RTJGX0ZMQUdfU0lHTkFMX01BU0s7CisJCQl9IGVsc2UgeworCQkJCWV4dDJmc191bm1hcmtfdmFs aWQoZnMpOworCQkJCWlmIChwcm9ibGVtID09IFBSXzJfQkFEX0lOTykKKwkJCQkJZ290byBuZXh0 OworCQkJfQorCQl9IGVsc2UgaWYgKGRpcmVudC0+aW5vZGUgPj0gZmlyc3RfdW51c2VkX2lub2Rl KSB7CisJCQlpZiAoZml4X3Byb2JsZW0oY3R4LCBQUl8yX0lOT1JFRl9JTl9VTlVTRUQsICZjZC0+ cGN0eCkpeworCQkJCWZzLT5ncm91cF9kZXNjW2dyb3VwXS5iZ19pdGFibGVfdW51c2VkID0gMDsK KwkJCQlmcy0+Z3JvdXBfZGVzY1tncm91cF0uYmdfZmxhZ3MgJj0KKwkJCQkJfkVYVDJfQkdfSU5P REVfVU5JTklUOworCQkJCWV4dDJmc19tYXJrX3N1cGVyX2RpcnR5KGZzKTsKKwkJCQljdHgtPmZs YWdzIHw9IEUyRl9GTEFHX1JFU1RBUlQ7CisJCQkJZ290byByZXN0YXJ0X2ZzY2s7CisJCQl9IGVs c2UgeworCQkJCWV4dDJmc191bm1hcmtfdmFsaWQoZnMpOworCQkJCWlmIChwcm9ibGVtID09IFBS XzJfQkFEX0lOTykKKwkJCQkJZ290byBuZXh0OworCQkJfQorCQl9CisKKwkJaWYgKCEoZXh0MmZz X3Rlc3RfaW5vZGVfYml0bWFwKGN0eC0+aW5vZGVfdXNlZF9tYXAsCisJCQkJCSAgICAgICBkaXJl bnQtPmlub2RlKSkpIHsKKwkJCS8qCisJCQkgKiBJZiB0aGUgaW5vZGUgaXMgdW51c2VkLCBvZmZl ciB0byBjbGVhciBpdC4KKwkJCSAqLworCQkJcHJvYmxlbSA9IFBSXzJfVU5VU0VEX0lOT0RFOwor CQl9CisKKwkJaWYgKHByb2JsZW0pIHsKKwkJCWlmIChmaXhfcHJvYmxlbShjdHgsIHByb2JsZW0s ICZjZC0+cGN0eCkpIHsKKwkJCQlkaXJlbnQtPmlub2RlID0gMDsKKwkJCQlkaXJfbW9kaWZpZWQr KzsKKwkJCQlnb3RvIG5leHQ7CisJCQl9IGVsc2UgeworCQkJCWV4dDJmc191bm1hcmtfdmFsaWQo ZnMpOworCQkJCWlmIChwcm9ibGVtID09IFBSXzJfQkFEX0lOTykKKwkJCQkJZ290byBuZXh0Owor CQkJfQorCQl9CisKIAkJaWYgKGNoZWNrX25hbWUoY3R4LCBkaXJlbnQsIGlubywgJmNkLT5wY3R4 KSkKIAkJCWRpcl9tb2RpZmllZCsrOwogCkBAIC0xMDczLDggKzExMzEsOSBAQCBzdGF0aWMgaW50 IGNoZWNrX2Rpcl9ibG9jayhleHQyX2ZpbHN5cyBmcywKIAlkaWN0X2ZyZWVfbm9kZXMoJmRlX2Rp Y3QpOwogCXJldHVybiAwOwogYWJvcnRfZnJlZV9kaWN0OgotCWRpY3RfZnJlZV9ub2RlcygmZGVf ZGljdCk7CiAJY3R4LT5mbGFncyB8PSBFMkZfRkxBR19BQk9SVDsKK3Jlc3RhcnRfZnNjazoKKwlk aWN0X2ZyZWVfbm9kZXMoJmRlX2RpY3QpOwogCXJldHVybiBESVJFTlRfQUJPUlQ7CiB9CiAKZGlm ZiAtLWdpdCBhL2UyZnNjay9wYXNzNS5jIGIvZTJmc2NrL3Bhc3M1LmMKaW5kZXggOGUzNzk0ZC4u YjcwZThkMSAxMDA2NDQKLS0tIGEvZTJmc2NrL3Bhc3M1LmMKKysrIGIvZTJmc2NrL3Bhc3M1LmMK QEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBjaGVja19ibG9ja19iaXRtYXBzKGUyZnNj a190IGN0eCkKIAlzdHJ1Y3QgcHJvYmxlbV9jb250ZXh0CXBjdHg7CiAJaW50CXByb2JsZW0sIHNh dmVfcHJvYmxlbSwgZml4aXQsIGhhZF9wcm9ibGVtOwogCWVycmNvZGVfdAlyZXR2YWw7Ci0JaW50 CQlsYXp5X2JnID0gMDsKKwlpbnQJCWxhenlfZmxhZywgY3N1bV9mbGFnOwogCWludAkJc2tpcF9n cm91cCA9IDA7CiAKIAljbGVhcl9wcm9ibGVtX2NvbnRleHQoJnBjdHgpOwpAQCAtMTU4LDE1ICsx NTgsMTYgQEAgc3RhdGljIHZvaWQgY2hlY2tfYmxvY2tfYml0bWFwcyhlMmZzY2tfdCBjdHgpCiAJ CWdvdG8gZXJyb3V0OwogCX0KIAotCWlmIChFWFQyX0hBU19DT01QQVRfRkVBVFVSRShmcy0+c3Vw ZXIsIEVYVDJfRkVBVFVSRV9DT01QQVRfTEFaWV9CRykpCi0JCWxhenlfYmcrKzsKLQorCWxhenlf ZmxhZyA9IEVYVDJfSEFTX0NPTVBBVF9GRUFUVVJFKGZzLT5zdXBlciwKKwkJCQkJICAgIEVYVDJf RkVBVFVSRV9DT01QQVRfTEFaWV9CRyk7CisJY3N1bV9mbGFnID0gRVhUMl9IQVNfUk9fQ09NUEFU X0ZFQVRVUkUoZnMtPnN1cGVyLAorCQkJCQkgICAgICAgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9H RFRfQ1NVTSk7CiByZWRvX2NvdW50czoKIAloYWRfcHJvYmxlbSA9IDA7CiAJc2F2ZV9wcm9ibGVt ID0gMDsKIAlwY3R4LmJsayA9IHBjdHguYmxrMiA9IE5PX0JMSzsKLQlpZiAobGF6eV9iZyAmJiAo ZnMtPmdyb3VwX2Rlc2NbZ3JvdXBdLmJnX2ZsYWdzICYKLQkJCUVYVDJfQkdfQkxPQ0tfVU5JTklU KSkKKwlpZiAoKGxhenlfZmxhZyB8fCBjc3VtX2ZsYWcpICYmCisJICAgIChmcy0+Z3JvdXBfZGVz Y1tncm91cF0uYmdfZmxhZ3MgJiBFWFQyX0JHX0JMT0NLX1VOSU5JVCkpCiAJCXNraXBfZ3JvdXAr KzsKIAlzdXBlciA9IGZzLT5zdXBlci0+c19maXJzdF9kYXRhX2Jsb2NrOwogCWZvciAoaSA9IGZz LT5zdXBlci0+c19maXJzdF9kYXRhX2Jsb2NrOwpAQCAtMjA2LDYgKzIwNywxNyBAQCByZWRvX2Nv dW50czoKIAkJCSAqIEJsb2NrIHVzZWQsIGJ1dCBub3QgbWFya2VkIGluIHVzZSBpbiB0aGUgYml0 bWFwLgogCQkJICovCiAJCQlwcm9ibGVtID0gUFJfNV9CTE9DS19VU0VEOworCisJCQlpZiAoc2tp cF9ncm91cCkgeworCQkJCXN0cnVjdCBwcm9ibGVtX2NvbnRleHQgcGN0eDI7CisJCQkJcGN0eDIu YmxrID0gaTsKKwkJCQlwY3R4Mi5ncm91cCA9IGdyb3VwOworCQkJCWlmIChmaXhfcHJvYmxlbShj dHgsIFBSXzVfQkxPQ0tfVU5JTklULCZwY3R4MikpeworCQkJCQlmcy0+Z3JvdXBfZGVzY1tncm91 cF0uYmdfZmxhZ3MgJj0KKwkJCQkJCX5FWFQyX0JHX0JMT0NLX1VOSU5JVDsKKwkJCQkJc2tpcF9n cm91cCA9IDA7CisJCQkJfQorCQkJfQogCQl9CiAJCWlmIChwY3R4LmJsayA9PSBOT19CTEspIHsK IAkJCXBjdHguYmxrID0gcGN0eC5ibGsyID0gaTsKQEAgLTIyNCw3ICsyMzYsNyBAQCByZWRvX2Nv dW50czoKIAkJaGFkX3Byb2JsZW0rKzsKIAogCWRvX2NvdW50czoKLQkJaWYgKCFiaXRtYXAgJiYg IXNraXBfZ3JvdXApIHsKKwkJaWYgKCFiaXRtYXAgJiYgKCFza2lwX2dyb3VwIHx8IGNzdW1fZmxh ZykpIHsKIAkJCWdyb3VwX2ZyZWUrKzsKIAkJCWZyZWVfYmxvY2tzKys7CiAJCX0KQEAgLTI0MSw3 ICsyNTMsNyBAQCByZWRvX2NvdW50czoKIAkJCQlpZiAoKGN0eC0+cHJvZ3Jlc3MpKGN0eCwgNSwg Z3JvdXAsCiAJCQkJCQkgICAgZnMtPmdyb3VwX2Rlc2NfY291bnQqMikpCiAJCQkJCWdvdG8gZXJy b3V0OwotCQkJaWYgKGxhenlfYmcgJiYKKwkJCWlmICgobGF6eV9mbGFnIHx8IGNzdW1fZmxhZykg JiYKIAkJCSAgICAoaSAhPSBmcy0+c3VwZXItPnNfYmxvY2tzX2NvdW50LTEpICYmCiAJCQkgICAg KGZzLT5ncm91cF9kZXNjW2dyb3VwXS5iZ19mbGFncyAmCiAJCQkgICAgIEVYVDJfQkdfQkxPQ0tf VU5JTklUKSkKQEAgLTMyMSw3ICszMzMsNyBAQCBzdGF0aWMgdm9pZCBjaGVja19pbm9kZV9iaXRt YXBzKGUyZnNja190IGN0eCkKIAllcnJjb2RlX3QJcmV0dmFsOwogCXN0cnVjdCBwcm9ibGVtX2Nv bnRleHQJcGN0eDsKIAlpbnQJCXByb2JsZW0sIHNhdmVfcHJvYmxlbSwgZml4aXQsIGhhZF9wcm9i bGVtOwotCWludAkJbGF6eV9iZyA9IDA7CisJaW50CQlsYXp5X2ZsYWcsIGNzdW1fZmxhZzsKIAlp bnQJCXNraXBfZ3JvdXAgPSAwOwogCiAJY2xlYXJfcHJvYmxlbV9jb250ZXh0KCZwY3R4KTsKQEAg LTM1OCwxNiArMzcwLDE2IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2lub2RlX2JpdG1hcHMoZTJmc2Nr X3QgY3R4KQogCQlnb3RvIGVycm91dDsKIAl9CiAKLQlpZiAoRVhUMl9IQVNfQ09NUEFUX0ZFQVRV UkUoZnMtPnN1cGVyLAotCQkJCSAgICBFWFQyX0ZFQVRVUkVfQ09NUEFUX0xBWllfQkcpKQotCQls YXp5X2JnKys7Ci0KKwlsYXp5X2ZsYWcgPSBFWFQyX0hBU19DT01QQVRfRkVBVFVSRShmcy0+c3Vw ZXIsCisJCQkJCSAgICBFWFQyX0ZFQVRVUkVfQ09NUEFUX0xBWllfQkcpOworCWNzdW1fZmxhZyA9 IEVYVDJfSEFTX1JPX0NPTVBBVF9GRUFUVVJFKGZzLT5zdXBlciwKKwkJCQkJICAgICAgIEVYVDRf RkVBVFVSRV9ST19DT01QQVRfR0RUX0NTVU0pOwogcmVkb19jb3VudHM6CiAJaGFkX3Byb2JsZW0g PSAwOwogCXNhdmVfcHJvYmxlbSA9IDA7CiAJcGN0eC5pbm8gPSBwY3R4LmlubzIgPSAwOwotCWlm IChsYXp5X2JnICYmIChmcy0+Z3JvdXBfZGVzY1tncm91cF0uYmdfZmxhZ3MgJgotCQkJRVhUMl9C R19JTk9ERV9VTklOSVQpKQorCWlmICgobGF6eV9mbGFnIHx8IGNzdW1fZmxhZykgJiYKKwkgICAg KGZzLT5ncm91cF9kZXNjW2dyb3VwXS5iZ19mbGFncyAmIEVYVDJfQkdfSU5PREVfVU5JTklUKSkK IAkJc2tpcF9ncm91cCsrOwogCiAJLyogUHJvdGVjdCBsb29wIGZyb20gd3JhcC1hcm91bmQgaWYg aW5vZGVzX2NvdW50IGlzIG1heGVkICovCkBAIC0zOTAsNiArNDAyLDIxIEBAIHJlZG9fY291bnRz OgogCQkJICogSW5vZGUgdXNlZCwgYnV0IG5vdCBpbiBiaXRtYXAKIAkJCSAqLwogCQkJcHJvYmxl bSA9IFBSXzVfSU5PREVfVVNFRDsKKworCQkJLyogV2Ugc2hvdWxkIG5ldmVyIGhpdCB0aGlzLCBi ZWNhdXNlIGl0IG1lYW5zIHRoYXQKKwkJCSAqIGlub2RlcyB3ZXJlIG1hcmtlZCBpbiB1c2UgdGhh dCB3ZXJlbid0IG5vdGljZWQKKwkJCSAqIGluIHBhc3MxIG9yIHBhc3MgMi4gSXQgaXMgZWFzaWVy IHRvIGZpeCB0aGUgcHJvYmxlbQorCQkJICogdGhhbiB0byBraWxsIGUyZnNjayBhbmQgbGVhdmUg dGhlIHVzZXIgc3R1Y2suICovCisJCQlpZiAoc2tpcF9ncm91cCkgeworCQkJCXN0cnVjdCBwcm9i bGVtX2NvbnRleHQgcGN0eDI7CisJCQkJcGN0eDIuYmxrID0gaTsKKwkJCQlwY3R4Mi5ncm91cCA9 IGdyb3VwOworCQkJCWlmIChmaXhfcHJvYmxlbShjdHgsIFBSXzVfSU5PREVfVU5JTklULCZwY3R4 MikpeworCQkJCQlmcy0+Z3JvdXBfZGVzY1tncm91cF0uYmdfZmxhZ3MgJj0KKwkJCQkJCX5FWFQy X0JHX0lOT0RFX1VOSU5JVDsKKwkJCQkJc2tpcF9ncm91cCA9IDA7CisJCQkJfQorCQkJfQogCQl9 CiAJCWlmIChwY3R4LmlubyA9PSAwKSB7CiAJCQlwY3R4LmlubyA9IHBjdHguaW5vMiA9IGk7CkBA IC00MTEsNyArNDM4LDcgQEAgZG9fY291bnRzOgogCQlpZiAoYml0bWFwKSB7CiAJCQlpZiAoZXh0 MmZzX3Rlc3RfaW5vZGVfYml0bWFwKGN0eC0+aW5vZGVfZGlyX21hcCwgaSkpCiAJCQkJZGlyc19j b3VudCsrOwotCQl9IGVsc2UgaWYgKCFza2lwX2dyb3VwKSB7CisJCX0gZWxzZSBpZiAoIXNraXBf Z3JvdXAgfHwgY3N1bV9mbGFnKSB7CiAJCQlncm91cF9mcmVlKys7CiAJCQlmcmVlX2lub2Rlcysr OwogCQl9CkBAIC00MzAsNyArNDU3LDcgQEAgZG9fY291bnRzOgogCQkJCQkgICAgZ3JvdXAgKyBm cy0+Z3JvdXBfZGVzY19jb3VudCwKIAkJCQkJICAgIGZzLT5ncm91cF9kZXNjX2NvdW50KjIpKQog CQkJCQlnb3RvIGVycm91dDsKLQkJCWlmIChsYXp5X2JnICYmCisJCQlpZiAoKGxhenlfZmxhZyB8 fCBjc3VtX2ZsYWcpICYmCiAJCQkgICAgKGkgIT0gZnMtPnN1cGVyLT5zX2lub2Rlc19jb3VudCkg JiYKIAkJCSAgICAoZnMtPmdyb3VwX2Rlc2NbZ3JvdXBdLmJnX2ZsYWdzICYKIAkJCSAgICAgRVhU Ml9CR19JTk9ERV9VTklOSVQpKQpkaWZmIC0tZ2l0IGEvZTJmc2NrL3Byb2JsZW0uYyBiL2UyZnNj ay9wcm9ibGVtLmMKaW5kZXggN2MzZWJlYS4uNmZjODExYyAxMDA2NDQKLS0tIGEvZTJmc2NrL3By b2JsZW0uYworKysgYi9lMmZzY2svcHJvYmxlbS5jCkBAIC0zNTEsOCArMzUxLDI4IEBAIHN0YXRp YyBzdHJ1Y3QgZTJmc2NrX3Byb2JsZW0gcHJvYmxlbV90YWJsZVtdID0gewogCSAgTl8oIkFkZGlu ZyBkaXJoYXNoIGhpbnQgdG8gQGYuXG5cbiIpLAogCSAgUFJPTVBUX05PTkUsIDAgfSwKIAorCS8q IGdyb3VwIGRlc2NyaXB0b3IgTiBjaGVja3N1bSBpcyBpbnZhbGlkLiAqLworCXsgUFJfMF9HRFRf Q1NVTSwKKwkgIE5fKCJAZyBkZXNjcmlwdG9yICVnIGNoZWNrc3VtIGlzIGludmFsaWQuICAiKSwK KwkgICAgIFBST01QVF9GSVgsIFBSX1BSRUVOX09LIH0sCisKKwkvKiBncm91cCBkZXNjcmlwdG9y IE4gbWFya2VkIHVuaW5pdGlhbGl6ZWQgd2l0aG91dCBmZWF0dXJlIHNldC4gKi8KKwl7IFBSXzBf R0RUX1VOSU5JVCwKKwkgIE5fKCJAZyBkZXNjcmlwdG9yICVnIG1hcmtlZCB1bmluaXRpYWxpemVk IHdpdGhvdXQgZmVhdHVyZSBzZXQuXG4iKSwKKwkgICAgIFBST01QVF9GSVgsIFBSX1BSRUVOX09L IH0sCisKKwkvKiBncm91cCBOIGJsb2NrIGJpdG1hcCB1bmluaXRpYWxpemVkIGJ1dCBpbm9kZSBi aXRtYXAgaW4gdXNlLiAqLworCXsgUFJfMF9CQl9VTklOSVRfSUJfSU5JVCwKKwkgIE5fKCJAZyAl ZyBAYiBAQiB1bmluaXRpYWxpemVkIGJ1dCBAaSBAQiBpbiB1c2UuXG4iKSwKKwkgICAgIFBST01Q VF9GSVgsIFBSX1BSRUVOX09LIH0sCisKKwkvKiBHcm91cCBkZXNjcmlwdG9yIE4gaGFzIGludmFs aWQgdW51c2VkIGlub2RlcyBjb3VudC4gKi8KKwl7IFBSXzBfR0RUX0lUQUJMRV9VTlVTRUQsCisJ ICBOXygiQGcgZGVzY3JpcHRvciAlZyBoYXMgaW52YWxpZCB1bnVzZWQgaW5vZGVzIGNvdW50ICVi LiAgIiksCisJICAgICBQUk9NUFRfRklYLCBQUl9QUkVFTl9PSyB9LAorCiAJLyogUGFzcyAxIGVy cm9ycyAqLwotCQorCiAJLyogUGFzcyAxOiBDaGVja2luZyBpbm9kZXMsIGJsb2NrcywgYW5kIHNp emVzICovCiAJeyBQUl8xX1BBU1NfSEVBREVSLAogCSAgTl8oIlBhc3MgMTogQ2hlY2tpbmcgQGlz LCBAYnMsIGFuZCBzaXplc1xuIiksCkBAIC0xMTg4LDYgKzEyMDgsMTYgQEAgc3RhdGljIHN0cnVj dCBlMmZzY2tfcHJvYmxlbSBwcm9ibGVtX3RhYmxlW10gPSB7CiAJICBOXygiaV9ibG9ja3NfaGkg QEYgJU4sIEBzIHplcm8uXG4iKSwKIAkgIFBST01QVF9DTEVBUiwgMCB9LAogCisJLyogSW5vZGUg Zm91bmQgaW4gZ3JvdXAgd2hlcmUgX0lOT0RFX1VOSU5JVCBpcyBzZXQgKi8KKwl7IFBSXzJfSU5P UkVGX0JHX0lOT19VTklOSVQsCisJICBOXygiQGkgJWkgZm91bmQgaW4gQGcgJWcgd2hlcmUgX0lO T0RFX1VOSU5JVCBpcyBzZXQuICAiKSwKKwkgIFBST01QVF9GSVgsIFBSX1BSRUVOX09LIH0sCisK KwkvKiBJbm9kZSBmb3VuZCBpbiBncm91cCB1bnVzZWQgaW5vZGVzIGFyZWEgKi8KKwl7IFBSXzJf SU5PUkVGX0lOX1VOVVNFRCwKKwkgIE5fKCJAaSAlaSBmb3VuZCBpbiBAZyAlZyB1bnVzZWQgaW5v ZGVzIGFyZWEuICAiKSwKKwkgIFBST01QVF9GSVgsIFBSX1BSRUVOX09LIH0sCisKIAkvKiBQYXNz IDMgZXJyb3JzICovCiAKIAkvKiBQYXNzIDM6IENoZWNraW5nIGRpcmVjdG9yeSBjb25uZWN0aXZp dHkgKi8KQEAgLTE0OTksNiArMTUyOSwxNiBAQCBzdGF0aWMgc3RydWN0IGUyZnNja19wcm9ibGVt IHByb2JsZW1fdGFibGVbXSA9IHsKIAkgIE5fKCJSZWNyZWF0ZSBqb3VybmFsIHRvIG1ha2UgdGhl IGZpbGVzeXN0ZW0gZXh0MyBhZ2Fpbj9cbiIpLAogCSAgUFJPTVBUX0ZJWCwgUFJfUFJFRU5fT0sg fCBQUl9OT19PSyB9LAogCisJLyogR3JvdXAgTiBibG9jayhzKSBpbiB1c2UgYnV0IGdyb3VwIGlz IG1hcmtlZCBCTE9DS19VTklOSVQgKi8KKwl7IFBSXzVfQkxPQ0tfVU5JTklULAorCSAgTl8oIkBn ICVnIEBiKHMpIGluIHVzZSBidXQgQGcgaXMgbWFya2VkIEJMT0NLX1VOSU5JVFxuIiksCisJICBQ Uk9NUFRfRklYLCBQUl9QUkVFTl9PSyB9LAorCisJLyogR3JvdXAgTiBpbm9kZShzKSBpbiB1c2Ug YnV0IGdyb3VwIGlzIG1hcmtlZCBJTk9ERV9VTklOSVQgKi8KKwl7IFBSXzVfSU5PREVfVU5JTklU LAorCSAgTl8oIkBnICVnIEBpKHMpIGluIHVzZSBidXQgQGcgaXMgbWFya2VkIElOT0RFX1VOSU5J VFxuIiksCisJICBQUk9NUFRfRklYLCBQUl9QUkVFTl9PSyB9LAorCiAJeyAwIH0KIH07CiAKZGlm ZiAtLWdpdCBhL2UyZnNjay9wcm9ibGVtLmggYi9lMmZzY2svcHJvYmxlbS5oCmluZGV4IGY1Zjcy MTIuLjhlYzllZTUgMTAwNjQ0Ci0tLSBhL2UyZnNjay9wcm9ibGVtLmgKKysrIGIvZTJmc2NrL3By b2JsZW0uaApAQCAtMTk2LDYgKzE5NiwxOCBAQCBzdHJ1Y3QgcHJvYmxlbV9jb250ZXh0IHsKIC8q IFN1cGVyYmxvY2sgaGludCBmb3IgZXh0ZXJuYWwgam91cm5hbCBpbmNvcnJlY3QgKi8KICNkZWZp bmUgUFJfMF9ESVJIQVNIX0hJTlQJCQkweDAwMDAzNAogCisvKiBHcm91cCBkZXNjcmlwdG9yIE4g Y2hlY2tzdW0gaXMgaW52YWxpZCAqLworI2RlZmluZSBQUl8wX0dEVF9DU1VNCQkJCTB4MDAwMDM1 CisKKy8qIEdyb3VwIGRlc2NyaXB0b3IgTiBtYXJrZWQgdW5pbml0aWFsaXplZCB3aXRob3V0IGZl YXR1cmUgc2V0LiAqLworI2RlZmluZSBQUl8wX0dEVF9VTklOSVQJCQkJMHgwMDAwMzYKKworLyog QmxvY2sgYml0bWFwIGlzIG5vdCBpbml0aWFsaXNlZCBhbmQgSW5vZGUgYml0bWFwIGlzICovCisj ZGVmaW5lIFBSXzBfQkJfVU5JTklUX0lCX0lOSVQJCQkweDAwMDAzNworCisvKiBHcm91cCBkZXNj cmlwdG9yIE4gaGFzIGludmFsaWQgdW51c2VkIGlub2RlcyBjb3VudC4gKi8KKyNkZWZpbmUgUFJf MF9HRFRfSVRBQkxFX1VOVVNFRAkJCTB4MDAwMDM4CisKIC8qCiAgKiBQYXNzIDEgZXJyb3JzCiAg Ki8KQEAgLTcwOCw2ICs3MjAsMTIgQEAgc3RydWN0IHByb2JsZW1fY29udGV4dCB7CiAvKiBpX2Js b2Nrc19oaSBzaG91bGQgYmUgemVybyAqLwogI2RlZmluZSBQUl8yX0JMT0NLU19ISV9aRVJPCTB4 MDIwMDQ0CiAKKy8qIElub2RlIGZvdW5kIGluIGdyb3VwIHdoZXJlIF9JTk9ERV9VTklOSVQgaXMg c2V0ICovCisjZGVmaW5lIFBSXzJfSU5PUkVGX0JHX0lOT19VTklOSVQJMHgwMjAwNDUKKworLyog SW5vZGUgZm91bmQgaW4gZ3JvdXAgdW51c2VkIGlub2RlcyBhcmVhICovCisjZGVmaW5lIFBSXzJf SU5PUkVGX0lOX1VOVVNFRAkJMHgwMjAwNDYKKwogLyoKICAqIFBhc3MgMyBlcnJvcnMKICAqLwpA QCAtODk2LDEwICs5MTQsMTYgQEAgc3RydWN0IHByb2JsZW1fY29udGV4dCB7CiAKIC8qIElub2Rl IHJhbmdlIG5vdCB1c2VkLCBidXQgbWFya2VkIGluIGJpdG1hcCAqLwogI2RlZmluZSBQUl81X0lO T0RFX1JBTkdFX1VOVVNFRAkJMHgwNTAwMTYKLQkgIAorCiAvKiBJbm9kZSByYW5nZXVzZWQsIGJ1 dCBub3QgbWFya2VkIHVzZWQgaW4gYml0bWFwICovCiAjZGVmaW5lIFBSXzVfSU5PREVfUkFOR0Vf VVNFRAkJMHgwNTAwMTcKIAorLyogQmxvY2sgaW4gdXNlIGJ1dCBncm91cCBpcyBtYXJrZWQgQkxP Q0tfVU5JTklUICovCisjZGVmaW5lIFBSXzVfQkxPQ0tfVU5JTklUCQkweDA1MDAxOAorCisvKiBJ bm9kZSBpbiB1c2UgYnV0IGdyb3VwIGlzIG1hcmtlZCBJTk9ERV9VTklOSVQgKi8KKyNkZWZpbmUg UFJfNV9JTk9ERV9VTklOSVQJCTB4MDUwMDE5CisKIC8qCiAgKiBQb3N0LVBhc3MgNSBlcnJvcnMK ICAqLwpkaWZmIC0tZ2l0IGEvZTJmc2NrL3N1cGVyLmMgYi9lMmZzY2svc3VwZXIuYwppbmRleCBl Mzk0M2NiLi5kMTg3N2VkIDEwMDY0NAotLS0gYS9lMmZzY2svc3VwZXIuYworKysgYi9lMmZzY2sv c3VwZXIuYwpAQCAtNDY0LDYgKzQ2NCw4IEBAIHZvaWQgY2hlY2tfc3VwZXJfYmxvY2soZTJmc2Nr X3QgY3R4KQogCWludAlpcGdfbWF4OwogCWludAlpbm9kZV9zaXplOwogCWludAlidWdneV9pbml0 X3NjcmlwdHM7CisJaW50CWxhenlfZmxhZzsKKwlpbnQJY3N1bV9mbGFnOwogCWRncnBfdAlpOwog CWJsa190CXNob3VsZF9iZTsKIAlzdHJ1Y3QgcHJvYmxlbV9jb250ZXh0CXBjdHg7CkBAIC01Nzcs NiArNTc5LDEwIEBAIHZvaWQgY2hlY2tfc3VwZXJfYmxvY2soZTJmc2NrX3QgY3R4KQogCSAqLwog CWZpcnN0X2Jsb2NrID0gIHNiLT5zX2ZpcnN0X2RhdGFfYmxvY2s7CiAKKwlsYXp5X2ZsYWcgPSBF WFQyX0hBU19DT01QQVRfRkVBVFVSRShmcy0+c3VwZXIsCisJCQkJCSAgICBFWFQyX0ZFQVRVUkVf Q09NUEFUX0xBWllfQkcpOworCWNzdW1fZmxhZyA9IEVYVDJfSEFTX1JPX0NPTVBBVF9GRUFUVVJF KGZzLT5zdXBlciwKKwkJCQkJICAgICAgIEVYVDRfRkVBVFVSRV9ST19DT01QQVRfR0RUX0NTVU0p OwogCWZvciAoaSA9IDAsIGdkPWZzLT5ncm91cF9kZXNjOyBpIDwgZnMtPmdyb3VwX2Rlc2NfY291 bnQ7IGkrKywgZ2QrKykgewogCQlwY3R4Lmdyb3VwID0gaTsKIApAQCAtNjIyLDYgKzYyOCw0MSBA QCB2b2lkIGNoZWNrX3N1cGVyX2Jsb2NrKGUyZnNja190IGN0eCkKIAkJICAgIChnZC0+YmdfdXNl ZF9kaXJzX2NvdW50ID4gc2ItPnNfaW5vZGVzX3Blcl9ncm91cCkpCiAJCQlleHQyZnNfdW5tYXJr X3ZhbGlkKGZzKTsKIAorCQlpZiAoIWV4dDJmc19ncm91cF9kZXNjX2NzdW1fdmVyaWZ5KHNiLCBp LCBnZCkpIHsKKwkJCWlmIChmaXhfcHJvYmxlbShjdHgsIFBSXzBfR0RUX0NTVU0sICZwY3R4KSkg eworCQkJCWdkLT5iZ19mbGFncyAmPQl+KEVYVDJfQkdfQkxPQ0tfVU5JTklUIHwKKwkJCQkgICAg ICAgICAgICAgICAgICBFWFQyX0JHX0lOT0RFX1VOSU5JVCk7CisJCQkJZ2QtPmJnX2l0YWJsZV91 bnVzZWQgPSAwOworCQkJfQorCQkJZXh0MmZzX3VubWFya192YWxpZChmcyk7CisJCX0KKworCQlp ZiAoIWxhenlfZmxhZyAmJiAhY3N1bV9mbGFnICYmCisJCSAgICAoZ2QtPmJnX2ZsYWdzICYoRVhU Ml9CR19CTE9DS19VTklOSVR8RVhUMl9CR19JTk9ERV9VTklOSVQpfHwKKwkJICAgICBnZC0+Ymdf aXRhYmxlX3VudXNlZCAhPSAwKSl7CisJCQlpZiAoZml4X3Byb2JsZW0oY3R4LCBQUl8wX0dEVF9V TklOSVQsICZwY3R4KSkgeworCQkJCWdkLT5iZ19mbGFncyAmPSB+KEVYVDJfQkdfQkxPQ0tfVU5J TklUIHwKKwkJCQkJCSAgRVhUMl9CR19JTk9ERV9VTklOSVQpOworCQkJCWdkLT5iZ19pdGFibGVf dW51c2VkID0gMDsKKwkJCX0KKwkJCWV4dDJmc191bm1hcmtfdmFsaWQoZnMpOworCQl9CisJCWlm IChnZC0+YmdfZmxhZ3MgJiBFWFQyX0JHX0JMT0NLX1VOSU5JVCAmJgorCQkgICAgIShnZC0+Ymdf ZmxhZ3MgJiBFWFQyX0JHX0lOT0RFX1VOSU5JVCkpIHsKKwkJCWlmIChmaXhfcHJvYmxlbShjdHgs IFBSXzBfQkJfVU5JTklUX0lCX0lOSVQsICZwY3R4KSkKKwkJCQlnZC0+YmdfZmxhZ3MgJj0gfkVY VDJfQkdfQkxPQ0tfVU5JTklUOworCQkJZXh0MmZzX3VubWFya192YWxpZChmcyk7CisJCX0KKwkJ aWYgKGNzdW1fZmxhZyAmJgorCQkgICAgKGdkLT5iZ19pdGFibGVfdW51c2VkID4gZ2QtPmJnX2Zy ZWVfaW5vZGVzX2NvdW50IHx8CisJCSAgICAgZ2QtPmJnX2l0YWJsZV91bnVzZWQgPiBzYi0+c19p bm9kZXNfcGVyX2dyb3VwKSkgeworCQkJcGN0eC5ibGsgPSBnZC0+YmdfaXRhYmxlX3VudXNlZDsK KwkJCWlmIChmaXhfcHJvYmxlbShjdHgsIFBSXzBfR0RUX0lUQUJMRV9VTlVTRUQsICZwY3R4KSkK KwkJCQlnZC0+YmdfaXRhYmxlX3VudXNlZCA9IDA7CisJCQlleHQyZnNfdW5tYXJrX3ZhbGlkKGZz KTsKKwkJfQorCisJCWdkLT5iZ19jaGVja3N1bSA9IGV4dDJmc19ncm91cF9kZXNjX2NzdW0oZnMt PnN1cGVyLCBpLCBnZCk7CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL2UyZnNjay91bml4LmMgYi9l MmZzY2svdW5peC5jCmluZGV4IDI5MWZmODUuLjU5NmM2NTAgMTAwNjQ0Ci0tLSBhL2UyZnNjay91 bml4LmMKKysrIGIvZTJmc2NrL3VuaXguYwpAQCAtNTU4LDcgKzU1OCw5IEBAIHN0YXRpYyB2b2lk IHBhcnNlX2V4dGVuZGVkX29wdHMoZTJmc2NrX3QgY3R4LCBjb25zdCBjaGFyICpvcHRzKQogCQkg ICAgICAgImFuZCBtYXkgdGFrZSBhbiBhcmd1bWVudCB3aGljaFxuIgogCQkgICAgICAgImlzIHNl dCBvZmYgYnkgYW4gZXF1YWxzICgnPScpIHNpZ24uICAiCiAJCQkiVmFsaWQgZXh0ZW5kZWQgb3B0 aW9ucyBhcmU6XG4iCi0JCSAgICAgICAiXHRlYV92ZXI9PGVhX3ZlcnNpb24gKDEgb3IgMik+XG5c biIpLCBzdGRlcnIpOworCQkJIlx0ZWFfdmVyPTxlYV92ZXJzaW9uICgxIG9yIDIpPlxuIgorCQkJ Ilx0dW5pbml0X2dyb3Vwc1xuIgorCQkJIlx0aW5pdF9ncm91cHNcblxuIiksIHN0ZGVycik7CiAJ CWV4aXQoMSk7CiAJfQogfQpAQCAtNzQ1LDYgKzc0Nyw3IEBAIHN0YXRpYyBlcnJjb2RlX3QgUFJT KGludCBhcmdjLCBjaGFyICphcmd2W10sIGUyZnNja190ICpyZXRfY3R4KQogCWlmICgoY3R4LT5v cHRpb25zICYgRTJGX09QVF9OTykgJiYgIWJhZF9ibG9ja3NfZmlsZSAmJgogCSAgICAhY2ZsYWcg JiYgIShjdHgtPm9wdGlvbnMgJiBFMkZfT1BUX0NPTVBSRVNTX0RJUlMpKQogCQljdHgtPm9wdGlv bnMgfD0gRTJGX09QVF9SRUFET05MWTsKKwogCWN0eC0+aW9fb3B0aW9ucyA9IHN0cmNocihhcmd2 W29wdGluZF0sICc/Jyk7CiAJaWYgKGN0eC0+aW9fb3B0aW9ucykgCiAJCSpjdHgtPmlvX29wdGlv bnMrKyA9IDA7CkBAIC04NDIsNyArODQ1LDcgQEAgc3NjYW5mX2VycjoKIAogc3RhdGljIGNvbnN0 IGNoYXIgKm15X3Zlcl9zdHJpbmcgPSBFMkZTUFJPR1NfVkVSU0lPTjsKIHN0YXRpYyBjb25zdCBj aGFyICpteV92ZXJfZGF0ZSA9IEUyRlNQUk9HU19EQVRFOwotCQkJCQkKKwogaW50IG1haW4gKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiB7CiAJZXJyY29kZV90CXJldHZhbCA9IDAsIG9yaWdfcmV0 dmFsID0gMDsKQEAgLTEzMDYsNiArMTMwOSwxMCBAQCBub19qb3VybmFsOgogCQl9CiAJfQogCisJ aWYgKHNiLT5zX2ZlYXR1cmVfcm9fY29tcGF0ICYgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9HRFRf Q1NVTSAmJgorCSAgICAhKGN0eC0+b3B0aW9ucyAmIEUyRl9PUFRfUkVBRE9OTFkpKQorCQlleHQy ZnNfc2V0X2dkdF9jc3VtKGN0eC0+ZnMpOworCiAJZTJmc2NrX3dyaXRlX2JpdG1hcHMoY3R4KTsK ICNpZmRlZiBSRVNPVVJDRV9UUkFDSwogCWlvX2NoYW5uZWxfZmx1c2goY3R4LT5mcy0+aW8pOwpk aWZmIC0tZ2l0IGEvZTJmc2NrL3V0aWwuYyBiL2UyZnNjay91dGlsLmMKaW5kZXggYmE3ZWY0YS4u NzUxYWQ3OCAxMDA2NDQKLS0tIGEvZTJmc2NrL3V0aWwuYworKysgYi9lMmZzY2svdXRpbC5jCkBA IC0yOSw2ICsyOSwxMCBAQAogI2luY2x1ZGUgPG1hbGxvYy5oPgogI2VuZGlmCiAKKyNpZmRlZiBI QVZFX0VSUk5PX0gKKyNpbmNsdWRlIDxlcnJuby5oPgorI2VuZGlmCisKICNpbmNsdWRlICJlMmZz Y2suaCIKIAogZXh0ZXJuIGUyZnNja190IGUyZnNja19nbG9iYWxfY3R4OyAgIC8qIFRyeSB5b3Vy IHZlcnkgYmVzdCBub3QgdG8gdXNlIHRoaXMhICovCkBAIC01MzIsMyArNTM2LDYwIEBAIGludCBl eHQyX2ZpbGVfdHlwZSh1bnNpZ25lZCBpbnQgbW9kZSkKIAkKIAlyZXR1cm4gMDsKIH0KKworI2Rl ZmluZSBTVFJJREVfTEVOR1RIIDgKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gd2hpY2ggemVyb3Mg b3V0IF9udW1fIGJsb2NrcyBzdGFydGluZyBhdCBfYmxrXy4gIEluCisgKiBjYXNlIG9mIGFuIGVy cm9yLCB0aGUgZGV0YWlscyBvZiB0aGUgZXJyb3IgaXMgcmV0dXJuZWQgdmlhIF9yZXRfYmxrXwor ICogYW5kIF9yZXRfY291bnRfIGlmIHRoZXkgYXJlIG5vbi1OVUxMIHBvaW50ZXJzLiAgUmV0dXJu cyAwIG9uCisgKiBzdWNjZXNzLCBhbmQgYW4gZXJyb3IgY29kZSBvbiBhbiBlcnJvci4KKyAqCisg KiBBcyBhIHNwZWNpYWwgY2FzZSwgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIE5VTEwsIHRoZW4g aXQgd2lsbAorICogYXR0ZW1wdCB0byBmcmVlIHRoZSBzdGF0aWMgemVyb2l6aW5nIGJ1ZmZlci4g IChUaGlzIGlzIHRvIGtlZXAKKyAqIHByb2dyYW1zIHRoYXQgY2hlY2sgZm9yIG1lbW9yeSBsZWFr cyBoYXBweS4pCisgKi8KK2VycmNvZGVfdCBlMmZzY2tfemVyb19ibG9ja3MoZXh0Ml9maWxzeXMg ZnMsIGJsa190IGJsaywgaW50IG51bSwKKwkJCSAgICAgYmxrX3QgKnJldF9ibGssIGludCAqcmV0 X2NvdW50KQoreworCWludAkJaiwgY291bnQsIG5leHRfdXBkYXRlLCBuZXh0X3VwZGF0ZV9pbmNy OworCXN0YXRpYyBjaGFyCSpidWY7CisJZXJyY29kZV90CXJldHZhbDsKKworCS8qIElmIGZzIGlz IG51bGwsIGNsZWFuIHVwIHRoZSBzdGF0aWMgYnVmZmVyIGFuZCByZXR1cm4gKi8KKwlpZiAoIWZz KSB7CisJCWlmIChidWYpIHsKKwkJCWZyZWUoYnVmKTsKKwkJCWJ1ZiA9IDA7CisJCX0KKwkJcmV0 dXJuIDA7CisJfQorCS8qIEFsbG9jYXRlIHRoZSB6ZXJvaXppbmcgYnVmZmVyIGlmIG5lY2Vzc2Fy eSAqLworCWlmICghYnVmKSB7CisJCWJ1ZiA9IG1hbGxvYyhmcy0+YmxvY2tzaXplICogU1RSSURF X0xFTkdUSCk7CisJCWlmICghYnVmKSB7CisJCQljb21fZXJyKCJtYWxsb2MiLCBFTk9NRU0sCisJ CQkJXygid2hpbGUgYWxsb2NhdGluZyB6ZXJvaXppbmcgYnVmZmVyIikpOworCQkJZXhpdCgxKTsK KwkJfQorCQltZW1zZXQoYnVmLCAwLCBmcy0+YmxvY2tzaXplICogU1RSSURFX0xFTkdUSCk7CisJ fQorCS8qIE9LLCBkbyB0aGUgd3JpdGUgbG9vcCAqLworCW5leHRfdXBkYXRlID0gMDsKKwluZXh0 X3VwZGF0ZV9pbmNyID0gbnVtIC8gMTAwOworCWlmIChuZXh0X3VwZGF0ZV9pbmNyIDwgMSkKKwkJ bmV4dF91cGRhdGVfaW5jciA9IDE7CisJZm9yIChqID0gMDsgaiA8IG51bTsgaiArPSBTVFJJREVf TEVOR1RILCBibGsgKz0gU1RSSURFX0xFTkdUSCkgeworCQljb3VudCA9IG51bSAtIGo7CisJCWlm IChjb3VudCA+IFNUUklERV9MRU5HVEgpCisJCQljb3VudCA9IFNUUklERV9MRU5HVEg7CisJCXJl dHZhbCA9IGlvX2NoYW5uZWxfd3JpdGVfYmxrKGZzLT5pbywgYmxrLCBjb3VudCwgYnVmKTsKKwkJ aWYgKHJldHZhbCkgeworCQkJaWYgKHJldF9jb3VudCkKKwkJCQkqcmV0X2NvdW50ID0gY291bnQ7 CisJCQlpZiAocmV0X2JsaykKKwkJCQkqcmV0X2JsayA9IGJsazsKKwkJCXJldHVybiByZXR2YWw7 CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9Cg== --MP_/Pgt1i2E1eTKCdml9nGCN=Se--