From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH RFC 029/111] staging: etnaviv: fix checkpatch warnings Date: Thu, 2 Apr 2015 17:29:31 +0200 Message-ID: <1427988653-754-30-git-send-email-l.stach@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 94A8E6E210 for ; Thu, 2 Apr 2015 08:30:57 -0700 (PDT) In-Reply-To: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Russell King , kernel@pengutronix.de List-Id: dri-devel@lists.freedesktop.org RnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+CgpGaXggbWFu eSBjaGVja3BhdGNoIHdhcm5pbmdzLgoKU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsr a2VybmVsQGFybS5saW51eC5vcmcudWs+Ci0tLQogZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRu YXZpdl9idWZmZXIuYyAgICAgfCAgNDEgKysrKy0tCiBkcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9l dG5hdml2X2Rydi5jICAgICAgICB8ICAzOCArKysrLS0KIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2 L2V0bmF2aXZfZHJ2LmggICAgICAgIHwgIDExICstCiBkcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9l dG5hdml2X2dlbS5jICAgICAgICB8ICA0MiArKysrLS0KIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2 L2V0bmF2aXZfZ2VtX3ByaW1lLmMgIHwgICAyICsKIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0 bmF2aXZfZ2VtX3N1Ym1pdC5jIHwgIDI1ICsrLS0KIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0 bmF2aXZfZ3B1LmMgICAgICAgIHwgMTg1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJp dmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9ncHUuaCAgICAgICAgfCAgIDkgKy0KIGRyaXZl cnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfaW9tbXUuYyAgICAgIHwgIDE2ICsrLQogZHJpdmVy cy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9tbXUuYyAgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMv c3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfbW11LmggICAgICAgIHwgIDE0ICstCiBpbmNsdWRlL3Vh cGkvZHJtL2V0bmF2aXZfZHJtLmggICAgICAgICAgICAgICB8ICAgMiArLQogMTIgZmlsZXMgY2hh bmdlZCwgMjYxIGluc2VydGlvbnMoKyksIDEyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jIGIvZHJpdmVycy9zdGFnaW5n L2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwppbmRleCBhOGI0MmExZWM3ZGIuLjAyNjQ4OWJhZWRh NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9idWZmZXIuYwor KysgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2J1ZmZlci5jCkBAIC0zMCwyOCAr MzAsMzcgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCBPVVQoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVj dCAqYnVmZmVyLCB1aW50MzJfdCBkYXRhKQogewogCXUzMiAqdmFkZHIgPSAodTMyICopYnVmZmVy LT52YWRkcjsKKwogCUJVR19PTihidWZmZXItPm9mZnNldCA+PSBidWZmZXItPmJhc2Uuc2l6ZSAv IHNpemVvZigqdmFkZHIpKTsKIAogCXZhZGRyW2J1ZmZlci0+b2Zmc2V0KytdID0gZGF0YTsKIH0K IAotc3RhdGljIGlubGluZSB2b2lkIENNRF9MT0FEX1NUQVRFKHN0cnVjdCBldG5hdml2X2dlbV9v YmplY3QgKmJ1ZmZlciwgdTMyIHJlZywgdTMyIHZhbHVlKQorc3RhdGljIGlubGluZSB2b2lkIENN RF9MT0FEX1NUQVRFKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmJ1ZmZlciwKKwl1MzIgcmVn LCB1MzIgdmFsdWUpCiB7CisJdTMyIGluZGV4ID0gcmVnID4+IFZJVl9GRV9MT0FEX1NUQVRFX0hF QURFUl9PRkZTRVRfX1NIUjsKKwogCWJ1ZmZlci0+b2Zmc2V0ID0gQUxJR04oYnVmZmVyLT5vZmZz ZXQsIDIpOwogCiAJLyogd3JpdGUgYSByZWdpc3RlciB2aWEgY21kIHN0cmVhbSAqLwotCU9VVChi dWZmZXIsIFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PUF9MT0FEX1NUQVRFIHwgVklWX0ZFX0xP QURfU1RBVEVfSEVBREVSX0NPVU5UKDEpIHwKLQkJCVZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9P RkZTRVQocmVnID4+IFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PRkZTRVRfX1NIUikpOworCU9V VChidWZmZXIsIFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PUF9MT0FEX1NUQVRFIHwKKwkJICAg IFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9DT1VOVCgxKSB8CisJCSAgICBWSVZfRkVfTE9BRF9T VEFURV9IRUFERVJfT0ZGU0VUKGluZGV4KSk7CiAJT1VUKGJ1ZmZlciwgdmFsdWUpOwogfQogCi1z dGF0aWMgaW5saW5lIHZvaWQgQ01EX0xPQURfU1RBVEVTKHN0cnVjdCBldG5hdml2X2dlbV9vYmpl Y3QgKmJ1ZmZlciwgdTMyIHJlZywgdTE2IGNvdW50LCB1MzIgKnZhbHVlcykKK3N0YXRpYyBpbmxp bmUgdm9pZCBDTURfTE9BRF9TVEFURVMoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqYnVmZmVy LAorCXUzMiByZWcsIHUxNiBjb3VudCwgdTMyICp2YWx1ZXMpCiB7CisJdTMyIGluZGV4ID0gcmVn ID4+IFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PRkZTRVRfX1NIUjsKIAl1MTYgaTsKKwogCWJ1 ZmZlci0+b2Zmc2V0ID0gQUxJR04oYnVmZmVyLT5vZmZzZXQsIDIpOwogCi0JT1VUKGJ1ZmZlciwg VklWX0ZFX0xPQURfU1RBVEVfSEVBREVSX09QX0xPQURfU1RBVEUgfCBWSVZfRkVfTE9BRF9TVEFU RV9IRUFERVJfQ09VTlQoY291bnQpIHwKLQkJCVZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PRkZT RVQocmVnID4+IFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PRkZTRVRfX1NIUikpOworCU9VVChi dWZmZXIsIFZJVl9GRV9MT0FEX1NUQVRFX0hFQURFUl9PUF9MT0FEX1NUQVRFIHwKKwkJICAgIFZJ Vl9GRV9MT0FEX1NUQVRFX0hFQURFUl9DT1VOVChjb3VudCkgfAorCQkgICAgVklWX0ZFX0xPQURf U1RBVEVfSEVBREVSX09GRlNFVChpbmRleCkpOwogCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBp KyspCiAJCU9VVChidWZmZXIsIHZhbHVlc1tpXSk7CkBAIC03OCwxNSArODcsMTggQEAgc3RhdGlj IGlubGluZSB2b2lkIENNRF9XQUlUKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmJ1ZmZlcikK IAlPVVQoYnVmZmVyLCBWSVZfRkVfV0FJVF9IRUFERVJfT1BfV0FJVCB8IDIwMCk7CiB9CiAKLXN0 YXRpYyBpbmxpbmUgdm9pZCBDTURfTElOSyhzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpidWZm ZXIsIHUxNiBwcmVmZXRjaCwgdTMyIGFkZHJlc3MpCitzdGF0aWMgaW5saW5lIHZvaWQgQ01EX0xJ Tksoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqYnVmZmVyLAorCXUxNiBwcmVmZXRjaCwgdTMy IGFkZHJlc3MpCiB7CiAJYnVmZmVyLT5vZmZzZXQgPSBBTElHTihidWZmZXItPm9mZnNldCwgMik7 CiAKLQlPVVQoYnVmZmVyLCBWSVZfRkVfTElOS19IRUFERVJfT1BfTElOSyB8IFZJVl9GRV9MSU5L X0hFQURFUl9QUkVGRVRDSChwcmVmZXRjaCkpOworCU9VVChidWZmZXIsIFZJVl9GRV9MSU5LX0hF QURFUl9PUF9MSU5LIHwKKwkJICAgIFZJVl9GRV9MSU5LX0hFQURFUl9QUkVGRVRDSChwcmVmZXRj aCkpOwogCU9VVChidWZmZXIsIGFkZHJlc3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgQ01E X1NUQUxMKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmJ1ZmZlciwgdTMyIGZyb20sIHUzMiB0 bykKK3N0YXRpYyBpbmxpbmUgdm9pZCBDTURfU1RBTEwoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVj dCAqYnVmZmVyLAorCXUzMiBmcm9tLCB1MzIgdG8pCiB7CiAJYnVmZmVyLT5vZmZzZXQgPSBBTElH TihidWZmZXItPm9mZnNldCwgMik7CiAKQEAgLTEwNSwxNCArMTE3LDE1IEBAIHN0YXRpYyB2b2lk IGV0bmF2aXZfY21kX3NlbGVjdF9waXBlKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmJ1ZmZl ciwgdTggcGlwZSkKIAkJZmx1c2ggPSBWSVZTX0dMX0ZMVVNIX0NBQ0hFX1RFWFRVUkU7CiAKIAlz dGFsbCA9IFZJVlNfR0xfU0VNQVBIT1JFX1RPS0VOX0ZST00oU1lOQ19SRUNJUElFTlRfRkUpIHwK LQkJCVZJVlNfR0xfU0VNQVBIT1JFX1RPS0VOX1RPKFNZTkNfUkVDSVBJRU5UX1BFKTsKKwkJVklW U19HTF9TRU1BUEhPUkVfVE9LRU5fVE8oU1lOQ19SRUNJUElFTlRfUEUpOwogCiAJQ01EX0xPQURf U1RBVEUoYnVmZmVyLCBWSVZTX0dMX0ZMVVNIX0NBQ0hFLCBmbHVzaCk7CiAJQ01EX0xPQURfU1RB VEUoYnVmZmVyLCBWSVZTX0dMX1NFTUFQSE9SRV9UT0tFTiwgc3RhbGwpOwogCiAJQ01EX1NUQUxM KGJ1ZmZlciwgU1lOQ19SRUNJUElFTlRfRkUsIFNZTkNfUkVDSVBJRU5UX1BFKTsKIAotCUNNRF9M T0FEX1NUQVRFKGJ1ZmZlciwgVklWU19HTF9QSVBFX1NFTEVDVCwgVklWU19HTF9QSVBFX1NFTEVD VF9QSVBFKHBpcGUpKTsKKwlDTURfTE9BRF9TVEFURShidWZmZXIsIFZJVlNfR0xfUElQRV9TRUxF Q1QsCisJCSAgICAgICBWSVZTX0dMX1BJUEVfU0VMRUNUX1BJUEUocGlwZSkpOwogfQogCiBzdGF0 aWMgdm9pZCBldG5hdml2X2J1ZmZlcl9kdW1wKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LApAQCAt MTQzLDcgKzE1Niw4IEBAIHUzMiBldG5hdml2X2J1ZmZlcl9pbml0KHN0cnVjdCBldG5hdml2X2dw dSAqZ3B1KQogCXJldHVybiBidWZmZXItPm9mZnNldDsKIH0KIAotdm9pZCBldG5hdml2X2J1ZmZl cl9xdWV1ZShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50LCBzdHJ1 Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpCit2b2lkIGV0bmF2aXZfYnVmZmVyX3F1ZXVl KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1bnNpZ25lZCBpbnQgZXZlbnQsCisJc3RydWN0IGV0 bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0KQogewogCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3Qg KmJ1ZmZlciA9IHRvX2V0bmF2aXZfYm8oZ3B1LT5idWZmZXIpOwogCXN0cnVjdCBldG5hdml2X2dl bV9vYmplY3QgKmNtZDsKQEAgLTE3MCw3ICsxODQsOCBAQCB2b2lkIGV0bmF2aXZfYnVmZmVyX3F1 ZXVlKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1bnNpZ25lZCBpbnQgZXZlbnQsIHN0cnVjdCBl dAogCWdwdS0+ZXZlbnRbZXZlbnRdLnJpbmdfcG9zID0gYnVmZmVyLT5vZmZzZXQ7CiAKIAkvKiB0 cmlnZ2VyIGV2ZW50ICovCi0JQ01EX0xPQURfU1RBVEUoYnVmZmVyLCBWSVZTX0dMX0VWRU5ULCBW SVZTX0dMX0VWRU5UX0VWRU5UX0lEKGV2ZW50KSB8IFZJVlNfR0xfRVZFTlRfRlJPTV9QRSk7CisJ Q01EX0xPQURfU1RBVEUoYnVmZmVyLCBWSVZTX0dMX0VWRU5ULCBWSVZTX0dMX0VWRU5UX0VWRU5U X0lEKGV2ZW50KSB8CisJCSAgICAgICBWSVZTX0dMX0VWRU5UX0ZST01fUEUpOwogCiAJLyogYXBw ZW5kIFdBSVQvTElOSyB0byBtYWluIGJ1ZmZlciAqLwogCUNNRF9XQUlUKGJ1ZmZlcik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Rydi5jIGIvZHJpdmVycy9z dGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9kcnYuYwppbmRleCA3YjQ5OTljNzg0MTcuLjJkNDRmY2Q3 Mjk5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9kcnYuYwor KysgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Rydi5jCkBAIC0yNCwxMSArMjQs MTIgQEAKIHZvaWQgZXRuYXZpdl9yZWdpc3Rlcl9tbXUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGV0bmF2aXZfaW9tbXUgKm1tdSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9kcm1fcHJpdmF0 ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKIAlwcml2LT5tbXUgPSBtbXU7CiB9CiAKICNp ZmRlZiBDT05GSUdfRFJNX0VUTkFWSVZfUkVHSVNURVJfTE9HR0lORwotc3RhdGljIGJvb2wgcmVn bG9nID0gZmFsc2U7CitzdGF0aWMgYm9vbCByZWdsb2c7CiBNT0RVTEVfUEFSTV9ERVNDKHJlZ2xv ZywgIkVuYWJsZSByZWdpc3RlciByZWFkL3dyaXRlIGxvZ2dpbmciKTsKIG1vZHVsZV9wYXJhbShy ZWdsb2csIGJvb2wsIDA2MDApOwogI2Vsc2UKQEAgLTY0LDE0ICs2NSwxNyBAQCB2b2lkIGV0bmF2 aXZfd3JpdGVsKHUzMiBkYXRhLCB2b2lkIF9faW9tZW0gKmFkZHIpCiB7CiAJaWYgKHJlZ2xvZykK IAkJcHJpbnRrKEtFUk5fREVCVUcgIklPOlcgJXAgJTA4eFxuIiwgYWRkciwgZGF0YSk7CisKIAl3 cml0ZWwoZGF0YSwgYWRkcik7CiB9CiAKIHUzMiBldG5hdml2X3JlYWRsKGNvbnN0IHZvaWQgX19p b21lbSAqYWRkcikKIHsKIAl1MzIgdmFsID0gcmVhZGwoYWRkcik7CisKIAlpZiAocmVnbG9nKQog CQlwcmludGsoS0VSTl9ERUJVRyAiSU86UiAlcCAlMDh4XG4iLCBhZGRyLCB2YWwpOworCiAJcmV0 dXJuIHZhbDsKIH0KIApAQCAtOTAsNiArOTQsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfdW5sb2Fk KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OwogCWZvciAoaSA9IDA7IGkgPCBFVE5BX01BWF9QSVBFUzsgaSsrKSB7CiAJCXN0cnVjdCBldG5h dml2X2dwdSAqZyA9IHByaXYtPmdwdVtpXTsKKwogCQlpZiAoZykKIAkJCWV0bmF2aXZfZ3B1X3Bt X3N1c3BlbmQoZyk7CiAJfQpAQCAtMTE0LDEyICsxMTksMTUgQEAgc3RhdGljIHZvaWQgbG9hZF9n cHUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWZvciAoaSA9IDA7IGkgPCBFVE5BX01BWF9Q SVBFUzsgaSsrKSB7CiAJCXN0cnVjdCBldG5hdml2X2dwdSAqZyA9IHByaXYtPmdwdVtpXTsKKwog CQlpZiAoZykgewogCQkJaW50IHJldDsKKwogCQkJZXRuYXZpdl9ncHVfcG1fcmVzdW1lKGcpOwog CQkJcmV0ID0gZXRuYXZpdl9ncHVfaW5pdChnKTsKIAkJCWlmIChyZXQpIHsKLQkJCQlkZXZfZXJy KGRldi0+ZGV2LCAiJXMgaHcgaW5pdCBmYWlsZWQ6ICVkXG4iLCBnLT5uYW1lLCByZXQpOworCQkJ CWRldl9lcnIoZGV2LT5kZXYsICIlcyBodyBpbml0IGZhaWxlZDogJWRcbiIsCisJCQkJCWctPm5h bWUsIHJldCk7CiAJCQkJcHJpdi0+Z3B1W2ldID0gTlVMTDsKIAkJCX0KIAkJfQpAQCAtMzcwLDEx ICszNzgsMTUgQEAgc3RhdGljIGludCBldG5hdml2X2lvY3RsX2dlbV9uZXcoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJc3RydWN0IGRybV9maWxlICpmaWxlKQogewogCXN0 cnVjdCBkcm1fZXRuYXZpdl9nZW1fbmV3ICphcmdzID0gZGF0YTsKKwogCXJldHVybiBldG5hdml2 X2dlbV9uZXdfaGFuZGxlKGRldiwgZmlsZSwgYXJncy0+c2l6ZSwKIAkJCWFyZ3MtPmZsYWdzLCAm YXJncy0+aGFuZGxlKTsKIH0KIAotI2RlZmluZSBUUyh0KSAoKHN0cnVjdCB0aW1lc3BlYyl7IC50 dl9zZWMgPSAodCkudHZfc2VjLCAudHZfbnNlYyA9ICh0KS50dl9uc2VjIH0pCisjZGVmaW5lIFRT KHQpICgoc3RydWN0IHRpbWVzcGVjKXsgXAorCS50dl9zZWMgPSAodCkudHZfc2VjLCBcCisJLnR2 X25zZWMgPSAodCkudHZfbnNlYyBcCit9KQogCiBzdGF0aWMgaW50IGV0bmF2aXZfaW9jdGxfZ2Vt X2NwdV9wcmVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXN0cnVjdCBk cm1fZmlsZSAqZmlsZSkKQEAgLTQzNywxNyArNDQ5LDIxIEBAIHN0YXRpYyBpbnQgZXRuYXZpdl9p b2N0bF93YWl0X2ZlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKIHsKIAlzdHJ1Y3QgZHJtX2V0bmF2aXZfd2FpdF9mZW5jZSAq YXJncyA9IGRhdGE7Ci0JcmV0dXJuIGV0bmF2aXZfd2FpdF9mZW5jZV9pbnRlcnJ1cHRhYmxlKGRl diwgYXJncy0+cGlwZSwgYXJncy0+ZmVuY2UsICZUUyhhcmdzLT50aW1lb3V0KSk7CisKKwlyZXR1 cm4gZXRuYXZpdl93YWl0X2ZlbmNlX2ludGVycnVwdGFibGUoZGV2LCBhcmdzLT5waXBlLCBhcmdz LT5mZW5jZSwKKwkJCQkJCSZUUyhhcmdzLT50aW1lb3V0KSk7CiB9CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZXRuYXZpdl9pb2N0bHNbXSA9IHsKLQlEUk1fSU9DVExfREVG X0RSVihFVE5BVklWX0dFVF9QQVJBTSwgICAgZXRuYXZpdl9pb2N0bF9nZXRfcGFyYW0sICAgIERS TV9VTkxPQ0tFRHxEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RS VihFVE5BVklWX0dFTV9ORVcsICAgICAgZXRuYXZpdl9pb2N0bF9nZW1fbmV3LCAgICAgIERSTV9V TkxPQ0tFRHxEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihF VE5BVklWX0dFTV9JTkZPLCAgICAgZXRuYXZpdl9pb2N0bF9nZW1faW5mbywgICAgIERSTV9VTkxP Q0tFRHxEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihFVE5B VklWX0dFTV9DUFVfUFJFUCwgZXRuYXZpdl9pb2N0bF9nZW1fY3B1X3ByZXAsIERSTV9VTkxPQ0tF RHxEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihFVE5BVklW X0dFTV9DUFVfRklOSSwgZXRuYXZpdl9pb2N0bF9nZW1fY3B1X2ZpbmksIERSTV9VTkxPQ0tFRHxE Uk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihFVE5BVklWX0dF TV9TVUJNSVQsICAgZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0LCAgIERSTV9VTkxPQ0tFRHxEUk1f QVVUSHxEUk1fUkVOREVSX0FMTE9XKSwKLQlEUk1fSU9DVExfREVGX0RSVihFVE5BVklWX1dBSVRf RkVOQ0UsICAgZXRuYXZpdl9pb2N0bF93YWl0X2ZlbmNlLCAgIERSTV9VTkxPQ0tFRHxEUk1fQVVU SHxEUk1fUkVOREVSX0FMTE9XKSwKKyNkZWZpbmUgRVROQV9JT0NUTChuLCBmdW5jLCBmbGFncykg XAorCURSTV9JT0NUTF9ERUZfRFJWKEVUTkFWSVZfIyNuLCBldG5hdml2X2lvY3RsXyMjZnVuYywg ZmxhZ3MpCisJRVROQV9JT0NUTChHRVRfUEFSQU0sICAgIGdldF9wYXJhbSwgICAgRFJNX1VOTE9D S0VEfERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAorCUVUTkFfSU9DVEwoR0VNX05FVywgICAg ICBnZW1fbmV3LCAgICAgIERSTV9VTkxPQ0tFRHxEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwK KwlFVE5BX0lPQ1RMKEdFTV9JTkZPLCAgICAgZ2VtX2luZm8sICAgICBEUk1fVU5MT0NLRUR8RFJN X0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCisJRVROQV9JT0NUTChHRU1fQ1BVX1BSRVAsIGdlbV9j cHVfcHJlcCwgRFJNX1VOTE9DS0VEfERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAorCUVUTkFf SU9DVEwoR0VNX0NQVV9GSU5JLCBnZW1fY3B1X2ZpbmksIERSTV9VTkxPQ0tFRHxEUk1fQVVUSHxE Uk1fUkVOREVSX0FMTE9XKSwKKwlFVE5BX0lPQ1RMKEdFTV9TVUJNSVQsICAgZ2VtX3N1Ym1pdCwg ICBEUk1fVU5MT0NLRUR8RFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCisJRVROQV9JT0NUTChX QUlUX0ZFTkNFLCAgIHdhaXRfZmVuY2UsICAgRFJNX1VOTE9DS0VEfERSTV9BVVRIfERSTV9SRU5E RVJfQUxMT1cpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVj dCB2bV9vcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2 X2Rydi5oIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9kcnYuaAppbmRleCBiZjVk MWQ5Y2M4OTEuLmExNTQzNzM0YmMyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2 aXYvZXRuYXZpdl9kcnYuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2Ry di5oCkBAIC03Nyw5ICs3NywxMCBAQCBpbnQgZXRuYXZpdl9pb2N0bF9nZW1fc3VibWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiBpbnQgZXRuYXZpdl9nZW1fbW1hcChzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogaW50IGV0bmF2aXZf Z2VtX2ZhdWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZt Zik7CiB1aW50NjRfdCBtc21fZ2VtX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKTsKLWludCBldG5hdml2X2dlbV9nZXRfaW92YV9sb2NrZWQoc3RydWN0IGV0bmF2aXZfZ3B1 ICpncHUsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAotCQl1aW50MzJfdCAqaW92YSk7Ci1p bnQgZXRuYXZpdl9nZW1fZ2V0X2lvdmEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLCBpbnQgaWQsIHVpbnQzMl90ICppb3ZhKTsKK2ludCBldG5hdml2 X2dlbV9nZXRfaW92YV9sb2NrZWQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCisJc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmosIHVpbnQzMl90ICppb3ZhKTsKK2ludCBldG5hdml2X2dlbV9nZXRf aW92YShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmos CisJaW50IGlkLCB1aW50MzJfdCAqaW92YSk7CiBzdHJ1Y3QgcGFnZSAqKmV0bmF2aXZfZ2VtX2dl dF9wYWdlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiB2b2lkIG1zbV9nZW1fcHV0X3Bh Z2VzKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgZXRuYXZpdl9nZW1fcHV0X2lv dmEoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwpAQCAtMTExLDcgKzExMiw4IEBAIHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqZXRuYXZpdl9nZW1fbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm1zbV9nZW1faW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCXVpbnQzMl90IHNpemUsIHN0cnVjdCBzZ190YWJsZSAqc2d0KTsKIHUzMiBldG5h dml2X2J1ZmZlcl9pbml0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KTsKLXZvaWQgZXRuYXZpdl9i dWZmZXJfcXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCBldmVudCwg c3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0KTsKK3ZvaWQgZXRuYXZpdl9idWZmZXJf cXVldWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGludCBldmVudCwKKwlzdHJ1 Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQpOwogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZT CiB2b2lkIG1zbV9nZW1fZGVzY3JpYmUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVj dCBzZXFfZmlsZSAqbSk7CkBAIC0xNDgsNiArMTUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGZl bmNlX2NvbXBsZXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50MzJfdCBmZW5jZSkKIHN0 YXRpYyBpbmxpbmUgaW50IGFsaWduX3BpdGNoKGludCB3aWR0aCwgaW50IGJwcCkKIHsKIAlpbnQg Ynl0ZXNwcCA9IChicHAgKyA3KSAvIDg7CisKIAkvKiBhZHJlbm8gbmVlZHMgcGl0Y2ggYWxpZ25l ZCB0byAzMiBwaXhlbHM6ICovCiAJcmV0dXJuIGJ5dGVzcHAgKiBBTElHTih3aWR0aCwgMzIpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW0uYyBiL2Ry aXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKaW5kZXggZDY1ZjIwMmRlMzJjLi4x OGY2MDdiNjUzMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZf Z2VtLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW0uYwpAQCAtNTUs NyArNTUsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKipnZXRfcGFnZXMoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopCiAJCSAqLwogCQlpZiAoZXRuYXZpdl9vYmotPmZsYWdzICYgKEVUTkFfQk9f V0N8RVROQV9CT19VTkNBQ0hFRCkpCiAJCQlkbWFfbWFwX3NnKGRldi0+ZGV2LCBldG5hdml2X29i ai0+c2d0LT5zZ2wsCi0JCQkJCWV0bmF2aXZfb2JqLT5zZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJ T05BTCk7CisJCQkJICAgZXRuYXZpdl9vYmotPnNndC0+bmVudHMsIERNQV9CSURJUkVDVElPTkFM KTsKIAl9CiAKIAlyZXR1cm4gZXRuYXZpdl9vYmotPnBhZ2VzOwpAQCAtNzEsNyArNzEsOCBAQCBz dGF0aWMgdm9pZCBwdXRfcGFnZXMoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJCSAqLwog CQlpZiAoZXRuYXZpdl9vYmotPmZsYWdzICYgKEVUTkFfQk9fV0N8RVROQV9CT19VTkNBQ0hFRCkp CiAJCQlkbWFfdW5tYXBfc2cob2JqLT5kZXYtPmRldiwgZXRuYXZpdl9vYmotPnNndC0+c2dsLAot CQkJCQlldG5hdml2X29iai0+c2d0LT5uZW50cywgRE1BX0JJRElSRUNUSU9OQUwpOworCQkJCSAg ICAgZXRuYXZpdl9vYmotPnNndC0+bmVudHMsCisJCQkJICAgICBETUFfQklESVJFQ1RJT05BTCk7 CiAJCXNnX2ZyZWVfdGFibGUoZXRuYXZpdl9vYmotPnNndCk7CiAJCWtmcmVlKGV0bmF2aXZfb2Jq LT5zZ3QpOwogCkBAIC04NSw5ICs4NiwxMSBAQCBzdHJ1Y3QgcGFnZSAqKmV0bmF2aXZfZ2VtX2dl dF9wYWdlcyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gb2JqLT5kZXY7CiAJc3RydWN0IHBhZ2UgKipwOworCiAJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwogCXAgPSBnZXRfcGFnZXMob2JqKTsKIAltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKKwogCXJldHVybiBwOwogfQogCkBAIC0xMjEsMTQgKzEyNCwxNyBA QCBzdGF0aWMgaW50IGV0bmF2aXZfZ2VtX21tYXBfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqLAogCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKIAlzdHJ1Y3QgZXRuYXZpdl9n ZW1fb2JqZWN0ICpldG5hdml2X29iaiA9IHRvX2V0bmF2aXZfYm8ob2JqKTsKKwlwZ3Byb3RfdCB2 bV9wYWdlX3Byb3Q7CiAKIAl2bWEtPnZtX2ZsYWdzICY9IH5WTV9QRk5NQVA7CiAJdm1hLT52bV9m bGFncyB8PSBWTV9NSVhFRE1BUDsKIAorCXZtX3BhZ2VfcHJvdCA9IHZtX2dldF9wYWdlX3Byb3Qo dm1hLT52bV9mbGFncyk7CisKIAlpZiAoZXRuYXZpdl9vYmotPmZsYWdzICYgRVROQV9CT19XQykg ewotCQl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF93cml0ZWNvbWJpbmUodm1fZ2V0X3BhZ2Vf cHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRl Y29tYmluZSh2bV9wYWdlX3Byb3QpOwogCX0gZWxzZSBpZiAoZXRuYXZpdl9vYmotPmZsYWdzICYg RVROQV9CT19VTkNBQ0hFRCkgewotCQl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9ub25jYWNo ZWQodm1fZ2V0X3BhZ2VfcHJvdCh2bWEtPnZtX2ZsYWdzKSk7CisJCXZtYS0+dm1fcGFnZV9wcm90 ID0gcGdwcm90X25vbmNhY2hlZCh2bV9wYWdlX3Byb3QpOwogCX0gZWxzZSB7CiAJCS8qCiAJCSAq IFNodW50IG9mZiBjYWNoZWQgb2JqcyB0byBzaG1lbSBmaWxlIHNvIHRoZXkgaGF2ZSB0aGVpciBv d24KQEAgLTE0MCw3ICsxNDYsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfZ2VtX21tYXBfb2JqKHN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQl2bWEtPnZtX3Bnb2ZmID0gMDsKIAkJdm1hLT52 bV9maWxlICA9IG9iai0+ZmlscDsKIAotCQl2bWEtPnZtX3BhZ2VfcHJvdCA9IHZtX2dldF9wYWdl X3Byb3Qodm1hLT52bV9mbGFncyk7CisJCXZtYS0+dm1fcGFnZV9wcm90ID0gdm1fcGFnZV9wcm90 OwogCX0KIAogCXJldHVybiAwOwpAQCAtMjQzLDkgKzI0OSwxMSBAQCBzdGF0aWMgdWludDY0X3Qg bW1hcF9vZmZzZXQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB1aW50NjRfdCBtc21fZ2Vt X21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewogCXVpbnQ2NF90IG9m ZnNldDsKKwogCW11dGV4X2xvY2soJm9iai0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCW9mZnNldCA9 IG1tYXBfb2Zmc2V0KG9iaik7CiAJbXV0ZXhfdW5sb2NrKCZvYmotPmRldi0+c3RydWN0X211dGV4 KTsKKwogCXJldHVybiBvZmZzZXQ7CiB9CiAKQEAgLTI5Niw3ICszMDQsOCBAQCBpbnQgZXRuYXZp dl9nZW1fZ2V0X2lvdmFfbG9ja2VkKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LAogCXJldHVybiBy ZXQ7CiB9CiAKLWludCBldG5hdml2X2dlbV9nZXRfaW92YShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdw dSwgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIGludCBpZCwgdWludDMyX3QgKmlvdmEpCitp bnQgZXRuYXZpdl9nZW1fZ2V0X2lvdmEoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHN0cnVjdCBk cm1fZ2VtX29iamVjdCAqb2JqLAorCWludCBpZCwgdWludDMyX3QgKmlvdmEpCiB7CiAJc3RydWN0 IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2X2JvKG9iaik7CiAJ aW50IHJldDsKQEAgLTMxMiw2ICszMjEsNyBAQCBpbnQgZXRuYXZpdl9nZW1fZ2V0X2lvdmEoc3Ry dWN0IGV0bmF2aXZfZ3B1ICpncHUsIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCBpbgogCW11 dGV4X2xvY2soJm9iai0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCXJldCA9IGV0bmF2aXZfZ2VtX2dl dF9pb3ZhX2xvY2tlZChncHUsIG9iaiwgaW92YSk7CiAJbXV0ZXhfdW5sb2NrKCZvYmotPmRldi0+ c3RydWN0X211dGV4KTsKKwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTM2MSwyOSArMzcxLDM3IEBA IGZhaWw6CiB2b2lkICpldG5hdml2X2dlbV92YWRkcl9sb2NrZWQoc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmopCiB7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0 b19ldG5hdml2X2JvKG9iaik7CisKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJm9iai0+ZGV2 LT5zdHJ1Y3RfbXV0ZXgpKTsKKwogCWlmICghZXRuYXZpdl9vYmotPnZhZGRyKSB7CiAJCXN0cnVj dCBwYWdlICoqcGFnZXMgPSBnZXRfcGFnZXMob2JqKTsKKwogCQlpZiAoSVNfRVJSKHBhZ2VzKSkK IAkJCXJldHVybiBFUlJfQ0FTVChwYWdlcyk7CisKIAkJZXRuYXZpdl9vYmotPnZhZGRyID0gdm1h cChwYWdlcywgb2JqLT5zaXplID4+IFBBR0VfU0hJRlQsCiAJCQkJVk1fTUFQLCBwZ3Byb3Rfd3Jp dGVjb21iaW5lKFBBR0VfS0VSTkVMKSk7CiAJfQorCiAJcmV0dXJuIGV0bmF2aXZfb2JqLT52YWRk cjsKIH0KIAogdm9pZCAqbXNtX2dlbV92YWRkcihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikK IHsKIAl2b2lkICpyZXQ7CisKIAltdXRleF9sb2NrKCZvYmotPmRldi0+c3RydWN0X211dGV4KTsK IAlyZXQgPSBldG5hdml2X2dlbV92YWRkcl9sb2NrZWQob2JqKTsKIAltdXRleF91bmxvY2soJm9i ai0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCiAJcmV0dXJuIHJldDsKIH0KIAogZG1hX2FkZHJfdCBl dG5hdml2X2dlbV9wYWRkcl9sb2NrZWQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJ c3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2X2JvKG9i aik7CisKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJm9iai0+ZGV2LT5zdHJ1Y3RfbXV0ZXgp KTsKIAogCXJldHVybiBldG5hdml2X29iai0+cGFkZHI7CkBAIC0zOTMsMTEgKzQxMSwxNCBAQCB2 b2lkIGV0bmF2aXZfZ2VtX21vdmVfdG9fYWN0aXZlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq LAogCQlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgYm9vbCB3cml0ZSwgdWludDMyX3QgZmVuY2Up CiB7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSB0b19ldG5hdml2 X2JvKG9iaik7CisKIAlldG5hdml2X29iai0+Z3B1ID0gZ3B1OworCiAJaWYgKHdyaXRlKQogCQll dG5hdml2X29iai0+d3JpdGVfZmVuY2UgPSBmZW5jZTsKIAllbHNlCiAJCWV0bmF2aXZfb2JqLT5y ZWFkX2ZlbmNlID0gZmVuY2U7CisKIAlsaXN0X2RlbF9pbml0KCZldG5hdml2X29iai0+bW1fbGlz dCk7CiAJbGlzdF9hZGRfdGFpbCgmZXRuYXZpdl9vYmotPm1tX2xpc3QsICZncHUtPmFjdGl2ZV9s aXN0KTsKIH0KQEAgLTQ1OSw2ICs0ODAsNyBAQCB2b2lkIG1zbV9nZW1fZGVzY3JpYmUoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCBzZXFfZmlsZSAqbSkKIAl1aW50NjRfdCBvZmYg PSBkcm1fdm1hX25vZGVfc3RhcnQoJm9iai0+dm1hX25vZGUpOwogCiAJV0FSTl9PTighbXV0ZXhf aXNfbG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOworCiAJc2VxX3ByaW50ZihtLCAiJTA4eDog JWMocj0ldSx3PSV1KSAlMmQgKCUyZCkgJTA4bGx4ICVwICVkXG4iLAogCQkJZXRuYXZpdl9vYmot PmZsYWdzLCBpc19hY3RpdmUoZXRuYXZpdl9vYmopID8gJ0EnIDogJ0knLAogCQkJZXRuYXZpdl9v YmotPnJlYWRfZmVuY2UsIGV0bmF2aXZfb2JqLT53cml0ZV9mZW5jZSwKQEAgLTQ3NCw2ICs0OTYs NyBAQCB2b2lkIG1zbV9nZW1fZGVzY3JpYmVfb2JqZWN0cyhzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0 LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGV0bmF2aXZfb2Jq LCBsaXN0LCBtbV9saXN0KSB7CiAJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gJmV0bmF2 aXZfb2JqLT5iYXNlOworCiAJCXNlcV9wdXRzKG0sICIgICAiKTsKIAkJbXNtX2dlbV9kZXNjcmli ZShvYmosIG0pOwogCQljb3VudCsrOwpAQCAtNTA0LDYgKzUyNyw3IEBAIHN0YXRpYyB2b2lkIGV0 bmF2aXZfZnJlZV9vYmooc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAKIAlpZiAobW11ICYm IGV0bmF2aXZfb2JqLT5pb3ZhKSB7CiAJCXVpbnQzMl90IG9mZnNldCA9IGV0bmF2aXZfb2JqLT5n cHVfdnJhbV9ub2RlLT5zdGFydDsKKwogCQlldG5hdml2X2lvbW11X3VubWFwKG1tdSwgb2Zmc2V0 LCBldG5hdml2X29iai0+c2d0LCBvYmotPnNpemUpOwogCQlkcm1fbW1fcmVtb3ZlX25vZGUoZXRu YXZpdl9vYmotPmdwdV92cmFtX25vZGUpOwogCQlrZnJlZShldG5hdml2X29iai0+Z3B1X3ZyYW1f bm9kZSk7CkBAIC01MTMsNyArNTM3LDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9mcmVlX29iaihz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAogCWlmIChvYmotPmltcG9ydF9hdHRhY2gpIHsK IAkJaWYgKGV0bmF2aXZfb2JqLT52YWRkcikKLQkJCWRtYV9idWZfdnVubWFwKG9iai0+aW1wb3J0 X2F0dGFjaC0+ZG1hYnVmLCBldG5hdml2X29iai0+dmFkZHIpOworCQkJZG1hX2J1Zl92dW5tYXAo b2JqLT5pbXBvcnRfYXR0YWNoLT5kbWFidWYsCisJCQkJICAgICAgIGV0bmF2aXZfb2JqLT52YWRk cik7CiAKIAkJLyogRG9uJ3QgZHJvcCB0aGUgcGFnZXMgZm9yIGltcG9ydGVkIGRtYWJ1ZiwgYXMg dGhleSBhcmUgbm90CiAJCSAqIG91cnMsIGp1c3QgZnJlZSB0aGUgYXJyYXkgd2UgYWxsb2NhdGVk OgpAQCAtNjk1LDcgKzcyMCw4IEBAIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXNtX2dlbV9pbXBv cnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJZ290byBmYWlsOwogCX0KIAotCXJldCA9IGRy bV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKHNndCwgZXRuYXZpdl9vYmotPnBhZ2VzLCBO VUxMLCBucGFnZXMpOworCXJldCA9IGRybV9wcmltZV9zZ190b19wYWdlX2FkZHJfYXJyYXlzKHNn dCwgZXRuYXZpdl9vYmotPnBhZ2VzLAorCQkJCQkgICAgICAgTlVMTCwgbnBhZ2VzKTsKIAlpZiAo cmV0KQogCQlnb3RvIGZhaWw7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2 L2V0bmF2aXZfZ2VtX3ByaW1lLmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dl bV9wcmltZS5jCmluZGV4IGY5YWY5MWY5ZmYxMC4uOWMxNTJiNTY0MGJjIDEwMDY0NAotLS0gYS9k cml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dlbV9wcmltZS5jCisrKyBiL2RyaXZlcnMv c3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMKQEAgLTIyLDcgKzIyLDkgQEAKIHN0 cnVjdCBzZ190YWJsZSAqbXNtX2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmog PSB0b19ldG5hdml2X2JvKG9iaik7CisKIAlCVUdfT04oIWV0bmF2aXZfb2JqLT5zZ3QpOyAgLyog c2hvdWxkIGhhdmUgYWxyZWFkeSBwaW5uZWQhICovCisKIAlyZXR1cm4gZXRuYXZpdl9vYmotPnNn dDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1f c3VibWl0LmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dlbV9zdWJtaXQuYwpp bmRleCA3ZWIwMmExMjFjZmYuLmFmMzcxODQ2NWVhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFn aW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0 bmF2aXYvZXRuYXZpdl9nZW1fc3VibWl0LmMKQEAgLTkyLDcgKzkyLDggQEAgc3RhdGljIGludCBz dWJtaXRfbG9va3VwX29iamVjdHMoc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3VibWl0LAog CQkgKi8KIAkJb2JqID0gaWRyX2ZpbmQoJmZpbGUtPm9iamVjdF9pZHIsIHN1Ym1pdF9iby5oYW5k bGUpOwogCQlpZiAoIW9iaikgewotCQkJRFJNX0VSUk9SKCJpbnZhbGlkIGhhbmRsZSAldSBhdCBp bmRleCAldVxuIiwgc3VibWl0X2JvLmhhbmRsZSwgaSk7CisJCQlEUk1fRVJST1IoImludmFsaWQg aGFuZGxlICV1IGF0IGluZGV4ICV1XG4iLAorCQkJCSAgc3VibWl0X2JvLmhhbmRsZSwgaSk7CiAJ CQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBvdXRfdW5sb2NrOwogCQl9CkBAIC0xMDEsNyArMTAy LDcgQEAgc3RhdGljIGludCBzdWJtaXRfbG9va3VwX29iamVjdHMoc3RydWN0IGV0bmF2aXZfZ2Vt X3N1Ym1pdCAqc3VibWl0LAogCiAJCWlmICghbGlzdF9lbXB0eSgmZXRuYXZpdl9vYmotPnN1Ym1p dF9lbnRyeSkpIHsKIAkJCURSTV9FUlJPUigiaGFuZGxlICV1IGF0IGluZGV4ICV1IGFscmVhZHkg b24gc3VibWl0IGxpc3RcbiIsCi0JCQkJCXN1Ym1pdF9iby5oYW5kbGUsIGkpOworCQkJCSAgc3Vi bWl0X2JvLmhhbmRsZSwgaSk7CiAJCQlyZXQgPSAtRUlOVkFMOwogCQkJZ290byBvdXRfdW5sb2Nr OwogCQl9CkBAIC0xNjMsNyArMTY0LDggQEAgcmV0cnk6CiAKIAogCQkvKiBpZiBsb2NraW5nIHN1 Y2NlZWRlZCwgcGluIGJvOiAqLwotCQlyZXQgPSBldG5hdml2X2dlbV9nZXRfaW92YV9sb2NrZWQo c3VibWl0LT5ncHUsICZldG5hdml2X29iai0+YmFzZSwgJmlvdmEpOworCQlyZXQgPSBldG5hdml2 X2dlbV9nZXRfaW92YV9sb2NrZWQoc3VibWl0LT5ncHUsCisJCQkJCQkgICZldG5hdml2X29iai0+ YmFzZSwgJmlvdmEpOwogCiAJCS8qIHRoaXMgd291bGQgYnJlYWsgdGhlIGxvZ2ljIGluIHRoZSBm YWlsIHBhdGguLiB0aGVyZSBpcyBubwogCQkgKiByZWFzb24gZm9yIHRoaXMgdG8gaGFwcGVuLCBi dXQganVzdCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlCkBAIC0xOTcsNyArMTk5LDEwIEBAIGZhaWw6 CiAJCXN1Ym1pdF91bmxvY2tfdW5waW5fYm8oc3VibWl0LCBzbG93X2xvY2tlZCk7CiAKIAlpZiAo cmV0ID09IC1FREVBRExLKSB7Ci0JCXN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZf b2JqID0gc3VibWl0LT5ib3NbY29udGVuZGVkXS5vYmo7CisJCXN0cnVjdCBldG5hdml2X2dlbV9v YmplY3QgKmV0bmF2aXZfb2JqOworCisJCWV0bmF2aXZfb2JqID0gc3VibWl0LT5ib3NbY29udGVu ZGVkXS5vYmo7CisKIAkJLyogd2UgbG9zdCBvdXQgaW4gYSBzZXFubyByYWNlLCBsb2NrIGFuZCBy ZXRyeS4uICovCiAJCXJldCA9IHd3X211dGV4X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKCZldG5h dml2X29iai0+cmVzdi0+bG9jaywKIAkJCQkmc3VibWl0LT50aWNrZXQpOwpAQCAtMjUxLDcgKzI1 Niw4IEBAIHN0YXRpYyBpbnQgc3VibWl0X3JlbG9jKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQg KnN1Ym1pdCwgc3RydWN0IGV0bmF2aXZfZ2VtX29iCiAJCXVpbnQzMl90IGlvdmEsIG9mZjsKIAkJ Ym9vbCB2YWxpZDsKIAotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmc3VibWl0X3JlbG9jLCB1c2Vy cHRyLCBzaXplb2Yoc3VibWl0X3JlbG9jKSk7CisJCXJldCA9IGNvcHlfZnJvbV91c2VyKCZzdWJt aXRfcmVsb2MsIHVzZXJwdHIsCisJCQkJICAgICBzaXplb2Yoc3VibWl0X3JlbG9jKSk7CiAJCWlm IChyZXQpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIApAQCAtMzA1LDYgKzMxMSw3IEBAIHN0YXRpYyB2 b2lkIHN1Ym1pdF9jbGVhbnVwKHN0cnVjdCBldG5hdml2X2dlbV9zdWJtaXQgKnN1Ym1pdCwgYm9v bCBmYWlsKQogCiAJZm9yIChpID0gMDsgaSA8IHN1Ym1pdC0+bnJfYm9zOyBpKyspIHsKIAkJc3Ry dWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmogPSBzdWJtaXQtPmJvc1tpXS5vYmo7 CisKIAkJc3VibWl0X3VubG9ja191bnBpbl9ibyhzdWJtaXQsIGkpOwogCQlsaXN0X2RlbF9pbml0 KCZldG5hdml2X29iai0+c3VibWl0X2VudHJ5KTsKIAkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2UoJmV0bmF2aXZfb2JqLT5iYXNlKTsKQEAgLTM5Nyw3ICs0MDQsOCBAQCBpbnQgZXRuYXZpdl9p b2N0bF9nZW1fc3VibWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAkJ aWYgKHN1Ym1pdF9jbWQuc2l6ZSA+IG1heF9zaXplIHx8CiAJCSAgICBzdWJtaXRfY21kLnN1Ym1p dF9vZmZzZXQgPiBtYXhfc2l6ZSAtIHN1Ym1pdF9jbWQuc2l6ZSkgewotCQkJRFJNX0VSUk9SKCJp bnZhbGlkIGNtZHN0cmVhbSBzaXplOiAldVxuIiwgc3VibWl0X2NtZC5zaXplKTsKKwkJCURSTV9F UlJPUigiaW52YWxpZCBjbWRzdHJlYW0gc2l6ZTogJXVcbiIsCisJCQkJICBzdWJtaXRfY21kLnNp emUpOwogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC00MTAsOCArNDE4 LDkgQEAgaW50IGV0bmF2aXZfaW9jdGxfZ2VtX3N1Ym1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCQlpZiAoc3VibWl0LT52YWxpZCkKIAkJCWNvbnRpbnVlOwogCi0JCXJl dCA9IHN1Ym1pdF9yZWxvYyhzdWJtaXQsIGV0bmF2aXZfb2JqLCBzdWJtaXRfY21kLnN1Ym1pdF9v ZmZzZXQsCi0JCQkJc3VibWl0X2NtZC5ucl9yZWxvY3MsIHN1Ym1pdF9jbWQucmVsb2NzKTsKKwkJ cmV0ID0gc3VibWl0X3JlbG9jKHN1Ym1pdCwgZXRuYXZpdl9vYmosCisJCQkJICAgc3VibWl0X2Nt ZC5zdWJtaXRfb2Zmc2V0LAorCQkJCSAgIHN1Ym1pdF9jbWQubnJfcmVsb2NzLCBzdWJtaXRfY21k LnJlbG9jcyk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIG91dDsKIAl9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dwdS5jIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2 aXYvZXRuYXZpdl9ncHUuYwppbmRleCA4Yzg4OTQwYTJiYzYuLjg1YTA4NjJlMDM0NyAxMDA2NDQK LS0tIGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9ncHUuYworKysgYi9kcml2ZXJz L3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dwdS5jCkBAIC0zMSw3ICszMSw4IEBACiAgKiBEcml2 ZXIgZnVuY3Rpb25zOgogICovCiAKLWludCBldG5hdml2X2dwdV9nZXRfcGFyYW0oc3RydWN0IGV0 bmF2aXZfZ3B1ICpncHUsIHVpbnQzMl90IHBhcmFtLCB1aW50NjRfdCAqdmFsdWUpCitpbnQgZXRu YXZpdl9ncHVfZ2V0X3BhcmFtKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1aW50MzJfdCBwYXJh bSwKKwl1aW50NjRfdCAqdmFsdWUpCiB7CiAJc3dpdGNoIChwYXJhbSkgewogCWNhc2UgRVROQVZJ Vl9QQVJBTV9HUFVfTU9ERUw6CkBAIC0xMTIsMzcgKzExMyw0OSBAQCBpbnQgZXRuYXZpdl9ncHVf Z2V0X3BhcmFtKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1aW50MzJfdCBwYXJhbSwgdWludDY0 X3QgKnZhbAogCiBzdGF0aWMgdm9pZCBldG5hdml2X2h3X3NwZWNzKHN0cnVjdCBldG5hdml2X2dw dSAqZ3B1KQogewotCWlmIChncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMCAmIGNoaXBNaW5v ckZlYXR1cmVzMF9NT1JFX01JTk9SX0ZFQVRVUkVTKSB7CisJaWYgKGdwdS0+aWRlbnRpdHkubWlu b3JfZmVhdHVyZXMwICYKKwkgICAgY2hpcE1pbm9yRmVhdHVyZXMwX01PUkVfTUlOT1JfRkVBVFVS RVMpIHsKIAkJdTMyIHNwZWNzWzJdOwogCiAJCXNwZWNzWzBdID0gZ3B1X3JlYWQoZ3B1LCBWSVZT X0hJX0NISVBfU1BFQ1MpOwogCQlzcGVjc1sxXSA9IGdwdV9yZWFkKGdwdSwgVklWU19ISV9DSElQ X1NQRUNTXzIpOwogCi0JCWdwdS0+aWRlbnRpdHkuc3RyZWFtX2NvdW50ID0gKHNwZWNzWzBdICYg VklWU19ISV9DSElQX1NQRUNTX1NUUkVBTV9DT1VOVF9fTUFTSykKKwkJZ3B1LT5pZGVudGl0eS5z dHJlYW1fY291bnQgPQorCQkJKHNwZWNzWzBdICYgVklWU19ISV9DSElQX1NQRUNTX1NUUkVBTV9D T1VOVF9fTUFTSykKIAkJCQk+PiBWSVZTX0hJX0NISVBfU1BFQ1NfU1RSRUFNX0NPVU5UX19TSElG VDsKLQkJZ3B1LT5pZGVudGl0eS5yZWdpc3Rlcl9tYXggPSAoc3BlY3NbMF0gJiBWSVZTX0hJX0NI SVBfU1BFQ1NfUkVHSVNURVJfTUFYX19NQVNLKQorCQlncHUtPmlkZW50aXR5LnJlZ2lzdGVyX21h eCA9CisJCQkoc3BlY3NbMF0gJiBWSVZTX0hJX0NISVBfU1BFQ1NfUkVHSVNURVJfTUFYX19NQVNL KQogCQkJCT4+IFZJVlNfSElfQ0hJUF9TUEVDU19SRUdJU1RFUl9NQVhfX1NISUZUOwotCQlncHUt PmlkZW50aXR5LnRocmVhZF9jb3VudCA9IChzcGVjc1swXSAmIFZJVlNfSElfQ0hJUF9TUEVDU19U SFJFQURfQ09VTlRfX01BU0spCisJCWdwdS0+aWRlbnRpdHkudGhyZWFkX2NvdW50ID0KKwkJCShz cGVjc1swXSAmIFZJVlNfSElfQ0hJUF9TUEVDU19USFJFQURfQ09VTlRfX01BU0spCiAJCQkJPj4g VklWU19ISV9DSElQX1NQRUNTX1RIUkVBRF9DT1VOVF9fU0hJRlQ7Ci0JCWdwdS0+aWRlbnRpdHku dmVydGV4X2NhY2hlX3NpemUgPSAoc3BlY3NbMF0gJiBWSVZTX0hJX0NISVBfU1BFQ1NfVkVSVEVY X0NBQ0hFX1NJWkVfX01BU0spCisJCWdwdS0+aWRlbnRpdHkudmVydGV4X2NhY2hlX3NpemUgPQor CQkJKHNwZWNzWzBdICYgVklWU19ISV9DSElQX1NQRUNTX1ZFUlRFWF9DQUNIRV9TSVpFX19NQVNL KQogCQkJCT4+IFZJVlNfSElfQ0hJUF9TUEVDU19WRVJURVhfQ0FDSEVfU0laRV9fU0hJRlQ7Ci0J CWdwdS0+aWRlbnRpdHkuc2hhZGVyX2NvcmVfY291bnQgPSAoc3BlY3NbMF0gJiBWSVZTX0hJX0NI SVBfU1BFQ1NfU0hBREVSX0NPUkVfQ09VTlRfX01BU0spCisJCWdwdS0+aWRlbnRpdHkuc2hhZGVy X2NvcmVfY291bnQgPQorCQkJKHNwZWNzWzBdICYgVklWU19ISV9DSElQX1NQRUNTX1NIQURFUl9D T1JFX0NPVU5UX19NQVNLKQogCQkJCT4+IFZJVlNfSElfQ0hJUF9TUEVDU19TSEFERVJfQ09SRV9D T1VOVF9fU0hJRlQ7Ci0JCWdwdS0+aWRlbnRpdHkucGl4ZWxfcGlwZXMgPSAoc3BlY3NbMF0gJiBW SVZTX0hJX0NISVBfU1BFQ1NfUElYRUxfUElQRVNfX01BU0spCisJCWdwdS0+aWRlbnRpdHkucGl4 ZWxfcGlwZXMgPQorCQkJKHNwZWNzWzBdICYgVklWU19ISV9DSElQX1NQRUNTX1BJWEVMX1BJUEVT X19NQVNLKQogCQkJCT4+IFZJVlNfSElfQ0hJUF9TUEVDU19QSVhFTF9QSVBFU19fU0hJRlQ7Ci0J CWdwdS0+aWRlbnRpdHkudmVydGV4X291dHB1dF9idWZmZXJfc2l6ZSA9IChzcGVjc1swXSAmIFZJ VlNfSElfQ0hJUF9TUEVDU19WRVJURVhfT1VUUFVUX0JVRkZFUl9TSVpFX19NQVNLKQorCQlncHUt PmlkZW50aXR5LnZlcnRleF9vdXRwdXRfYnVmZmVyX3NpemUgPQorCQkJKHNwZWNzWzBdICYgVklW U19ISV9DSElQX1NQRUNTX1ZFUlRFWF9PVVRQVVRfQlVGRkVSX1NJWkVfX01BU0spCiAJCQkJPj4g VklWU19ISV9DSElQX1NQRUNTX1ZFUlRFWF9PVVRQVVRfQlVGRkVSX1NJWkVfX1NISUZUOwogCi0J CWdwdS0+aWRlbnRpdHkuYnVmZmVyX3NpemUgPSAoc3BlY3NbMV0gJiBWSVZTX0hJX0NISVBfU1BF Q1NfMl9CVUZGRVJfU0laRV9fTUFTSykKKwkJZ3B1LT5pZGVudGl0eS5idWZmZXJfc2l6ZSA9CisJ CQkoc3BlY3NbMV0gJiBWSVZTX0hJX0NISVBfU1BFQ1NfMl9CVUZGRVJfU0laRV9fTUFTSykKIAkJ CQk+PiBWSVZTX0hJX0NISVBfU1BFQ1NfMl9CVUZGRVJfU0laRV9fU0hJRlQ7Ci0JCWdwdS0+aWRl bnRpdHkuaW5zdHJ1Y3Rpb25fY291bnQgPSAoc3BlY3NbMV0gJiBWSVZTX0hJX0NISVBfU1BFQ1Nf Ml9JTlNUUlVDVElPTl9DT1VOVF9fTUFTSykKKwkJZ3B1LT5pZGVudGl0eS5pbnN0cnVjdGlvbl9j b3VudCA9CisJCQkoc3BlY3NbMV0gJiBWSVZTX0hJX0NISVBfU1BFQ1NfMl9JTlNUUlVDVElPTl9D T1VOVF9fTUFTSykKIAkJCQk+PiBWSVZTX0hJX0NISVBfU1BFQ1NfMl9JTlNUUlVDVElPTl9DT1VO VF9fU0hJRlQ7Ci0JCWdwdS0+aWRlbnRpdHkubnVtX2NvbnN0YW50cyA9IChzcGVjc1sxXSAmIFZJ VlNfSElfQ0hJUF9TUEVDU18yX05VTV9DT05TVEFOVFNfX01BU0spCisJCWdwdS0+aWRlbnRpdHku bnVtX2NvbnN0YW50cyA9CisJCQkoc3BlY3NbMV0gJiBWSVZTX0hJX0NISVBfU1BFQ1NfMl9OVU1f Q09OU1RBTlRTX19NQVNLKQogCQkJCT4+IFZJVlNfSElfQ0hJUF9TUEVDU18yX05VTV9DT05TVEFO VFNfX1NISUZUOwogCiAJCWdwdS0+aWRlbnRpdHkucmVnaXN0ZXJfbWF4ID0gMSA8PCBncHUtPmlk ZW50aXR5LnJlZ2lzdGVyX21heDsKIAkJZ3B1LT5pZGVudGl0eS50aHJlYWRfY291bnQgPSAxIDw8 IGdwdS0+aWRlbnRpdHkudGhyZWFkX2NvdW50OwotCQlncHUtPmlkZW50aXR5LnZlcnRleF9vdXRw dXRfYnVmZmVyX3NpemUgPSAxIDw8IGdwdS0+aWRlbnRpdHkudmVydGV4X291dHB1dF9idWZmZXJf c2l6ZTsKKwkJZ3B1LT5pZGVudGl0eS52ZXJ0ZXhfb3V0cHV0X2J1ZmZlcl9zaXplID0KKwkJCTEg PDwgZ3B1LT5pZGVudGl0eS52ZXJ0ZXhfb3V0cHV0X2J1ZmZlcl9zaXplOwogCX0gZWxzZSB7CiAJ CWRldl9lcnIoZ3B1LT5kZXYtPmRldiwgIlRPRE86IGRldGVybWluZSBHUFUgc3BlY3MgYmFzZWQg b24gbW9kZWxcbiIpOwogCX0KQEAgLTE2NSwxNiArMTc4LDI2IEBAIHN0YXRpYyB2b2lkIGV0bmF2 aXZfaHdfc3BlY3Moc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJCWJyZWFrOwogCX0KIAotCWRl dl9pbmZvKGdwdS0+ZGV2LT5kZXYsICJzdHJlYW1fY291bnQ6ICAleFxuIiwgZ3B1LT5pZGVudGl0 eS5zdHJlYW1fY291bnQpOwotCWRldl9pbmZvKGdwdS0+ZGV2LT5kZXYsICJyZWdpc3Rlcl9tYXg6 ICV4XG4iLCBncHUtPmlkZW50aXR5LnJlZ2lzdGVyX21heCk7Ci0JZGV2X2luZm8oZ3B1LT5kZXYt PmRldiwgInRocmVhZF9jb3VudDogJXhcbiIsIGdwdS0+aWRlbnRpdHkudGhyZWFkX2NvdW50KTsK LQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAidmVydGV4X2NhY2hlX3NpemU6ICV4XG4iLCBncHUt PmlkZW50aXR5LnZlcnRleF9jYWNoZV9zaXplKTsKLQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAi c2hhZGVyX2NvcmVfY291bnQ6ICV4XG4iLCBncHUtPmlkZW50aXR5LnNoYWRlcl9jb3JlX2NvdW50 KTsKLQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAicGl4ZWxfcGlwZXM6ICV4XG4iLCBncHUtPmlk ZW50aXR5LnBpeGVsX3BpcGVzKTsKLQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAidmVydGV4X291 dHB1dF9idWZmZXJfc2l6ZTogJXhcbiIsIGdwdS0+aWRlbnRpdHkudmVydGV4X291dHB1dF9idWZm ZXJfc2l6ZSk7Ci0JZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgImJ1ZmZlcl9zaXplOiAleFxuIiwg Z3B1LT5pZGVudGl0eS5idWZmZXJfc2l6ZSk7Ci0JZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgImlu c3RydWN0aW9uX2NvdW50OiAleFxuIiwgZ3B1LT5pZGVudGl0eS5pbnN0cnVjdGlvbl9jb3VudCk7 Ci0JZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm51bV9jb25zdGFudHM6ICV4XG4iLCBncHUtPmlk ZW50aXR5Lm51bV9jb25zdGFudHMpOworCWRldl9pbmZvKGdwdS0+ZGV2LT5kZXYsICJzdHJlYW1f Y291bnQ6ICAleFxuIiwKKwkJIGdwdS0+aWRlbnRpdHkuc3RyZWFtX2NvdW50KTsKKwlkZXZfaW5m byhncHUtPmRldi0+ZGV2LCAicmVnaXN0ZXJfbWF4OiAleFxuIiwKKwkJIGdwdS0+aWRlbnRpdHku cmVnaXN0ZXJfbWF4KTsKKwlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAidGhyZWFkX2NvdW50OiAl eFxuIiwKKwkJIGdwdS0+aWRlbnRpdHkudGhyZWFkX2NvdW50KTsKKwlkZXZfaW5mbyhncHUtPmRl di0+ZGV2LCAidmVydGV4X2NhY2hlX3NpemU6ICV4XG4iLAorCQkgZ3B1LT5pZGVudGl0eS52ZXJ0 ZXhfY2FjaGVfc2l6ZSk7CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgInNoYWRlcl9jb3JlX2Nv dW50OiAleFxuIiwKKwkJIGdwdS0+aWRlbnRpdHkuc2hhZGVyX2NvcmVfY291bnQpOworCWRldl9p bmZvKGdwdS0+ZGV2LT5kZXYsICJwaXhlbF9waXBlczogJXhcbiIsCisJCSBncHUtPmlkZW50aXR5 LnBpeGVsX3BpcGVzKTsKKwlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAidmVydGV4X291dHB1dF9i dWZmZXJfc2l6ZTogJXhcbiIsCisJCSBncHUtPmlkZW50aXR5LnZlcnRleF9vdXRwdXRfYnVmZmVy X3NpemUpOworCWRldl9pbmZvKGdwdS0+ZGV2LT5kZXYsICJidWZmZXJfc2l6ZTogJXhcbiIsCisJ CSBncHUtPmlkZW50aXR5LmJ1ZmZlcl9zaXplKTsKKwlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAi aW5zdHJ1Y3Rpb25fY291bnQ6ICV4XG4iLAorCQkgZ3B1LT5pZGVudGl0eS5pbnN0cnVjdGlvbl9j b3VudCk7CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm51bV9jb25zdGFudHM6ICV4XG4iLAor CQkgZ3B1LT5pZGVudGl0eS5udW1fY29uc3RhbnRzKTsKIH0KIAogc3RhdGljIHZvaWQgZXRuYXZp dl9od19pZGVudGlmeShzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKQEAgLTE5MiwyMyArMjE1LDI4 IEBAIHN0YXRpYyB2b2lkIGV0bmF2aXZfaHdfaWRlbnRpZnkoc3RydWN0IGV0bmF2aXZfZ3B1ICpn cHUpCiAJCWdwdS0+aWRlbnRpdHkubW9kZWwgPSBncHVfcmVhZChncHUsIFZJVlNfSElfQ0hJUF9N T0RFTCk7CiAJCWdwdS0+aWRlbnRpdHkucmV2aXNpb24gPSBncHVfcmVhZChncHUsIFZJVlNfSElf Q0hJUF9SRVYpOwogCi0JCS8qICEhISEgSEFDSyBBTEVSVCAhISEhICovCi0JCS8qIEJlY2F1c2Ug cGVvcGxlIGNoYW5nZSBkZXZpY2UgSURzIHdpdGhvdXQgbGV0dGluZyBzb2Z0d2FyZSBrbm93Ci0J CSoqIGFib3V0IGl0IC0gaGVyZSBpcyB0aGUgaGFjayB0byBtYWtlIGl0IGFsbCBsb29rIHRoZSBz YW1lLiAgT25seQotCQkqKiBmb3IgR0M0MDAgZmFtaWx5LiAgTmV4dCB0aW1lIC0gVEVMTCBNRSEh ISAqLwotCQlpZiAoKChncHUtPmlkZW50aXR5Lm1vZGVsICYgMHhGRjAwKSA9PSAweDA0MDApCi0J CSYmIChncHUtPmlkZW50aXR5Lm1vZGVsICE9IDB4MDQyMCkpIHsKKwkJLyoKKwkJICogISEhISBI QUNLIEFMRVJUICEhISEKKwkJICogQmVjYXVzZSBwZW9wbGUgY2hhbmdlIGRldmljZSBJRHMgd2l0 aG91dCBsZXR0aW5nIHNvZnR3YXJlCisJCSAqIGtub3cgYWJvdXQgaXQgLSBoZXJlIGlzIHRoZSBo YWNrIHRvIG1ha2UgaXQgYWxsIGxvb2sgdGhlCisJCSAqIHNhbWUuICBPbmx5IGZvciBHQzQwMCBm YW1pbHkuCisJCSAqLworCQlpZiAoKGdwdS0+aWRlbnRpdHkubW9kZWwgJiAweGZmMDApID09IDB4 MDQwMCAmJgorCQkgICAgZ3B1LT5pZGVudGl0eS5tb2RlbCAhPSAweDA0MjApIHsKIAkJCWdwdS0+ aWRlbnRpdHkubW9kZWwgPSBncHUtPmlkZW50aXR5Lm1vZGVsICYgMHgwNDAwOwogCQl9CiAKLQkJ LyogQW4gb3RoZXIgc3BlY2lhbCBjYXNlICovCi0JCWlmICgoZ3B1LT5pZGVudGl0eS5tb2RlbCAg ICA9PSAweDMwMCkKLQkJJiYgIChncHUtPmlkZW50aXR5LnJldmlzaW9uID09IDB4MjIwMSkpIHsK KwkJLyogQW5vdGhlciBzcGVjaWFsIGNhc2UgKi8KKwkJaWYgKGdwdS0+aWRlbnRpdHkubW9kZWwg PT0gMHgzMDAgJiYKKwkJICAgIGdwdS0+aWRlbnRpdHkucmV2aXNpb24gPT0gMHgyMjAxKSB7CiAJ CQl1MzIgY2hpcERhdGUgPSBncHVfcmVhZChncHUsIFZJVlNfSElfQ0hJUF9EQVRFKTsKIAkJCXUz MiBjaGlwVGltZSA9IGdwdV9yZWFkKGdwdSwgVklWU19ISV9DSElQX1RJTUUpOwogCi0JCQlpZiAo KGNoaXBEYXRlID09IDB4MjAwODA4MTQpICYmIChjaGlwVGltZSA9PSAweDEyMDUxMTAwKSkgewot CQkJCS8qIFRoaXMgSVAgaGFzIGFuIEVDTzsgcHV0IHRoZSBjb3JyZWN0IHJldmlzaW9uIGluIGl0 LiAqLworCQkJaWYgKGNoaXBEYXRlID09IDB4MjAwODA4MTQgJiYgY2hpcFRpbWUgPT0gMHgxMjA1 MTEwMCkgeworCQkJCS8qCisJCQkJICogVGhpcyBJUCBoYXMgYW4gRUNPOyBwdXQgdGhlIGNvcnJl Y3QKKwkJCQkgKiByZXZpc2lvbiBpbiBpdC4KKwkJCQkgKi8KIAkJCQlncHUtPmlkZW50aXR5LnJl dmlzaW9uID0gMHgxMDUxOwogCQkJfQogCQl9CkBAIC0yMjMsMjcgKzI1MSwzOCBAQCBzdGF0aWMg dm9pZCBldG5hdml2X2h3X2lkZW50aWZ5KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCWlmIChn cHUtPmlkZW50aXR5Lm1vZGVsID09IDB4NzAwKQogCQlncHUtPmlkZW50aXR5LmZlYXR1cmVzICY9 IH5CSVQoMCk7CiAKLQlpZiAoKChncHUtPmlkZW50aXR5Lm1vZGVsID09IDB4NTAwKSAmJiAoZ3B1 LT5pZGVudGl0eS5yZXZpc2lvbiA8IDIpKQotCXx8ICAoKGdwdS0+aWRlbnRpdHkubW9kZWwgPT0g MHgzMDApICYmIChncHUtPmlkZW50aXR5LnJldmlzaW9uIDwgMHgyMDAwKSkpIHsKKwlpZiAoKGdw dS0+aWRlbnRpdHkubW9kZWwgPT0gMHg1MDAgJiYgZ3B1LT5pZGVudGl0eS5yZXZpc2lvbiA8IDIp IHx8CisJICAgIChncHUtPmlkZW50aXR5Lm1vZGVsID09IDB4MzAwICYmIGdwdS0+aWRlbnRpdHku cmV2aXNpb24gPCAweDIwMDApKSB7CiAKLQkJLyogR0M1MDAgcmV2IDEueCBhbmQgR0MzMDAgcmV2 IDwgMi4wIGRvZXNuJ3QgaGF2ZSB0aGVzZSByZWdpc3RlcnMuICovCisJCS8qCisJCSAqIEdDNTAw IHJldiAxLnggYW5kIEdDMzAwIHJldiA8IDIuMCBkb2Vzbid0IGhhdmUgdGhlc2UKKwkJICogcmVn aXN0ZXJzLgorCQkgKi8KIAkJZ3B1LT5pZGVudGl0eS5taW5vcl9mZWF0dXJlczAgPSAwOwogCQln cHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMSA9IDA7CiAJCWdwdS0+aWRlbnRpdHkubWlub3Jf ZmVhdHVyZXMyID0gMDsKIAkJZ3B1LT5pZGVudGl0eS5taW5vcl9mZWF0dXJlczMgPSAwOwogCX0g ZWxzZQotCQlncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMCA9IGdwdV9yZWFkKGdwdSwgVklW U19ISV9DSElQX01JTk9SX0ZFQVRVUkVfMCk7CisJCWdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVy ZXMwID0KKwkJCQlncHVfcmVhZChncHUsIFZJVlNfSElfQ0hJUF9NSU5PUl9GRUFUVVJFXzApOwog CiAJaWYgKGdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMwICYgQklUKDIxKSkgewotCQlncHUt PmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMSA9IGdwdV9yZWFkKGdwdSwgVklWU19ISV9DSElQX01J Tk9SX0ZFQVRVUkVfMSk7Ci0JCWdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMyID0gZ3B1X3Jl YWQoZ3B1LCBWSVZTX0hJX0NISVBfTUlOT1JfRkVBVFVSRV8yKTsKLQkJZ3B1LT5pZGVudGl0eS5t aW5vcl9mZWF0dXJlczMgPSBncHVfcmVhZChncHUsIFZJVlNfSElfQ0hJUF9NSU5PUl9GRUFUVVJF XzMpOworCQlncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMSA9CisJCQkJZ3B1X3JlYWQoZ3B1 LCBWSVZTX0hJX0NISVBfTUlOT1JfRkVBVFVSRV8xKTsKKwkJZ3B1LT5pZGVudGl0eS5taW5vcl9m ZWF0dXJlczIgPQorCQkJCWdwdV9yZWFkKGdwdSwgVklWU19ISV9DSElQX01JTk9SX0ZFQVRVUkVf Mik7CisJCWdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMzID0KKwkJCQlncHVfcmVhZChncHUs IFZJVlNfSElfQ0hJUF9NSU5PUl9GRUFUVVJFXzMpOwogCX0KIAotCWRldl9pbmZvKGdwdS0+ZGV2 LT5kZXYsICJtaW5vcl9mZWF0dXJlczogICV4XG4iLCBncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1 cmVzMCk7Ci0JZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm1pbm9yX2ZlYXR1cmVzMTogJXhcbiIs IGdwdS0+aWRlbnRpdHkubWlub3JfZmVhdHVyZXMxKTsKLQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2 LCAibWlub3JfZmVhdHVyZXMyOiAleFxuIiwgZ3B1LT5pZGVudGl0eS5taW5vcl9mZWF0dXJlczIp OwotCWRldl9pbmZvKGdwdS0+ZGV2LT5kZXYsICJtaW5vcl9mZWF0dXJlczM6ICV4XG4iLCBncHUt PmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMyk7CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm1p bm9yX2ZlYXR1cmVzOiAgJXhcbiIsCisJCSBncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMCk7 CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm1pbm9yX2ZlYXR1cmVzMTogJXhcbiIsCisJCSBn cHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMSk7CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwg Im1pbm9yX2ZlYXR1cmVzMjogJXhcbiIsCisJCSBncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVz Mik7CisJZGV2X2luZm8oZ3B1LT5kZXYtPmRldiwgIm1pbm9yX2ZlYXR1cmVzMzogJXhcbiIsCisJ CSBncHUtPmlkZW50aXR5Lm1pbm9yX2ZlYXR1cmVzMyk7CiAKIAlldG5hdml2X2h3X3NwZWNzKGdw dSk7CiB9CkBAIC0yOTUsNyArMzM0LDggQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9od19yZXNldChz dHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAogCQkvKiB0cnkgcmVzZXRpbmcgYWdhaW4gaWYgRkUg aXQgbm90IGlkbGUgKi8KIAkJaWYgKChpZGxlICYgVklWU19ISV9JRExFX1NUQVRFX0ZFKSA9PSAw KSB7Ci0JCQlkZXZfZGJnKGdwdS0+ZGV2LT5kZXYsICIlczogRkUgaXMgbm90IGlkbGVcbiIsIGdw dS0+bmFtZSk7CisJCQlkZXZfZGJnKGdwdS0+ZGV2LT5kZXYsICIlczogRkUgaXMgbm90IGlkbGVc biIsCisJCQkJZ3B1LT5uYW1lKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTMwNSw3ICszNDUs OCBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2h3X3Jlc2V0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1 KQogCQkvKiBpcyB0aGUgR1BVIGlkbGU/ICovCiAJCWlmICgoKGNvbnRyb2wgJiBWSVZTX0hJX0NM T0NLX0NPTlRST0xfSURMRV8zRCkgPT0gMCkKIAkJfHwgKChjb250cm9sICYgVklWU19ISV9DTE9D S19DT05UUk9MX0lETEVfMkQpID09IDApKSB7Ci0JCQlkZXZfZGJnKGdwdS0+ZGV2LT5kZXYsICIl czogR1BVIGlzIG5vdCBpZGxlXG4iLCBncHUtPm5hbWUpOworCQkJZGV2X2RiZyhncHUtPmRldi0+ ZGV2LCAiJXM6IEdQVSBpcyBub3QgaWRsZVxuIiwKKwkJCQlncHUtPm5hbWUpOwogCQkJY29udGlu dWU7CiAJCX0KIApAQCAtMzkyLDggKzQzMywxMSBAQCBpbnQgZXRuYXZpdl9ncHVfaW5pdChzdHJ1 Y3QgZXRuYXZpdl9ncHUgKmdwdSkKIAl3b3JkcyA9IEFMSUdOKHdvcmRzLCAyKSAvIDI7CiAKIAln cHVfd3JpdGUoZ3B1LCBWSVZTX0hJX0lOVFJfRU5CTCwgfjBVKTsKLQlncHVfd3JpdGUoZ3B1LCBW SVZTX0ZFX0NPTU1BTkRfQUREUkVTUywgZXRuYXZpdl9nZW1fcGFkZHJfbG9ja2VkKGdwdS0+YnVm ZmVyKSk7Ci0JZ3B1X3dyaXRlKGdwdSwgVklWU19GRV9DT01NQU5EX0NPTlRST0wsIFZJVlNfRkVf Q09NTUFORF9DT05UUk9MX0VOQUJMRSB8IFZJVlNfRkVfQ09NTUFORF9DT05UUk9MX1BSRUZFVENI KHdvcmRzKSk7CisJZ3B1X3dyaXRlKGdwdSwgVklWU19GRV9DT01NQU5EX0FERFJFU1MsCisJCSAg ZXRuYXZpdl9nZW1fcGFkZHJfbG9ja2VkKGdwdS0+YnVmZmVyKSk7CisJZ3B1X3dyaXRlKGdwdSwg VklWU19GRV9DT01NQU5EX0NPTlRST0wsCisJCSAgVklWU19GRV9DT01NQU5EX0NPTlRST0xfRU5B QkxFIHwKKwkJICBWSVZTX0ZFX0NPTU1BTkRfQ09OVFJPTF9QUkVGRVRDSCh3b3JkcykpOwogCiAJ cmV0dXJuIDA7CiAKQEAgLTQ3OCwxMyArNTIyLDEzIEBAIHZvaWQgZXRuYXZpdl9ncHVfZGVidWdm cyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKQogCiAJc2VxX3B1 dHMobSwgIlx0RE1BICIpOwogCi0JaWYgKChkZWJ1Zy5hZGRyZXNzWzBdID09IGRlYnVnLmFkZHJl c3NbMV0pICYmIChkZWJ1Zy5zdGF0ZVswXSA9PSBkZWJ1Zy5zdGF0ZVsxXSkpIHsKKwlpZiAoZGVi dWcuYWRkcmVzc1swXSA9PSBkZWJ1Zy5hZGRyZXNzWzFdICYmCisJICAgIGRlYnVnLnN0YXRlWzBd ID09IGRlYnVnLnN0YXRlWzFdKSB7CiAJCXNlcV9wdXRzKG0sICJzZWVtcyB0byBiZSBzdHVja1xu Iik7CisJfSBlbHNlIGlmIChkZWJ1Zy5hZGRyZXNzWzBdID09IGRlYnVnLmFkZHJlc3NbMV0pIHsK KwkJc2VxX3B1dHMobSwgImFkcmVzcyBpcyBjb25zdGFudFxuIik7CiAJfSBlbHNlIHsKLQkJaWYg KGRlYnVnLmFkZHJlc3NbMF0gPT0gZGVidWcuYWRkcmVzc1sxXSkKLQkJCXNlcV9wdXRzKG0sICJh ZHJlc3MgaXMgY29uc3RhbnRcbiIpOwotCQllbHNlCi0JCQlzZXFfcHV0cyhtLCAiaXMgcnVuaW5n XG4iKTsKKwkJc2VxX3B1dHMobSwgImlzIHJ1bmluZ1xuIik7CiAJfQogCiAJc2VxX3ByaW50Ziht LCAiXHQgYWRkcmVzcyAwOiAweCUwOHhcbiIsIGRlYnVnLmFkZHJlc3NbMF0pOwpAQCAtNTA5LDcg KzU1Myw4IEBAIHN0YXRpYyBpbnQgZW5hYmxlX3B3cnJhaWwoc3RydWN0IGV0bmF2aXZfZ3B1ICpn cHUpCiAJaWYgKGdwdS0+Z3B1X3JlZykgewogCQlyZXQgPSByZWd1bGF0b3JfZW5hYmxlKGdwdS0+ Z3B1X3JlZyk7CiAJCWlmIChyZXQpIHsKLQkJCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8g ZW5hYmxlICdncHVfcmVnJzogJWRcbiIsIHJldCk7CisJCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFp bGVkIHRvIGVuYWJsZSAnZ3B1X3JlZyc6ICVkXG4iLAorCQkJCXJldCk7CiAJCQlyZXR1cm4gcmV0 OwogCQl9CiAJfQpAQCAtNTE3LDcgKzU2Miw4IEBAIHN0YXRpYyBpbnQgZW5hYmxlX3B3cnJhaWwo c3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAJaWYgKGdwdS0+Z3B1X2N4KSB7CiAJCXJldCA9IHJl Z3VsYXRvcl9lbmFibGUoZ3B1LT5ncHVfY3gpOwogCQlpZiAocmV0KSB7Ci0JCQlkZXZfZXJyKGRl di0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSAnZ3B1X2N4JzogJWRcbiIsIHJldCk7CisJCQlkZXZf ZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSAnZ3B1X2N4JzogJWRcbiIsCisJCQkJcmV0 KTsKIAkJCXJldHVybiByZXQ7CiAJCX0KIAl9CkBAIC02MTksNyArNjY1LDggQEAgaW50IGV0bmF2 aXZfZ3B1X3BtX3N1c3BlbmQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpCiAgKi8KIHN0YXRpYyB2 b2lkIHJlY292ZXJfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLQlzdHJ1Y3Qg ZXRuYXZpdl9ncHUgKmdwdSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZXRuYXZpdl9ncHUs IHJlY292ZXJfd29yayk7CisJc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUgPSBjb250YWluZXJfb2Yo d29yaywgc3RydWN0IGV0bmF2aXZfZ3B1LAorCQkJCQkgICAgICAgcmVjb3Zlcl93b3JrKTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZ3B1LT5kZXY7CiAKIAlkZXZfZXJyKGRldi0+ZGV2LCAi JXM6IGhhbmdjaGVjayByZWNvdmVyIVxuIiwgZ3B1LT5uYW1lKTsKQEAgLTY3NCw3ICs3MjEsOCBA QCBzdGF0aWMgdW5zaWduZWQgaW50IGV2ZW50X2FsbG9jKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1 KQogCXVuc2lnbmVkIGxvbmcgcmV0LCBmbGFnczsKIAl1bnNpZ25lZCBpbnQgaSwgZXZlbnQgPSB+ MFU7CiAKLQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJmdwdS0+ZXZlbnRfZnJl ZSwgbXNlY3NfdG9famlmZmllcygxMCAqIDEwMDAwKSk7CisJcmV0ID0gd2FpdF9mb3JfY29tcGxl dGlvbl90aW1lb3V0KCZncHUtPmV2ZW50X2ZyZWUsCisJCQkJCSAgbXNlY3NfdG9famlmZmllcygx MCAqIDEwMDAwKSk7CiAJaWYgKCFyZXQpCiAJCWRldl9lcnIoZ3B1LT5kZXYtPmRldiwgIndhaXRf Zm9yX2NvbXBsZXRpb25fdGltZW91dCBmYWlsZWQiKTsKIApAQCAtNzAxLDcgKzc0OSw4IEBAIHN0 YXRpYyB2b2lkIGV2ZW50X2ZyZWUoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVuc2lnbmVkIGlu dCBldmVudCkKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZ3B1LT5ldmVudF9zcGlubG9jaywgZmxhZ3Mp OwogCiAJaWYgKGdwdS0+ZXZlbnRbZXZlbnRdLnVzZWQgPT0gZmFsc2UpIHsKLQkJZGV2X3dhcm4o Z3B1LT5kZXYtPmRldiwgImV2ZW50ICV1IGlzIGFscmVhZHkgbWFya2VkIGFzIGZyZWUiLCBldmVu dCk7CisJCWRldl93YXJuKGdwdS0+ZGV2LT5kZXYsICJldmVudCAldSBpcyBhbHJlYWR5IG1hcmtl ZCBhcyBmcmVlIiwKKwkJCSBldmVudCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwdS0+ ZXZlbnRfc3BpbmxvY2ssIGZsYWdzKTsKIAl9IGVsc2UgewogCQlncHUtPmV2ZW50W2V2ZW50XS51 c2VkID0gZmFsc2U7CkBAIC03MTcsNyArNzY2LDggQEAgc3RhdGljIHZvaWQgZXZlbnRfZnJlZShz dHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwgdW5zaWduZWQgaW50IGV2ZW50KQogCiBzdGF0aWMgdm9p ZCByZXRpcmVfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLQlzdHJ1Y3QgZXRu YXZpdl9ncHUgKmdwdSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgZXRuYXZpdl9ncHUsIHJl dGlyZV93b3JrKTsKKwlzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSA9IGNvbnRhaW5lcl9vZih3b3Jr LCBzdHJ1Y3QgZXRuYXZpdl9ncHUsCisJCQkJCSAgICAgICByZXRpcmVfd29yayk7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGdwdS0+ZGV2OwogCXVpbnQzMl90IGZlbmNlID0gZ3B1LT5yZXRp cmVkX2ZlbmNlOwogCkBAIC03NDksMTIgKzc5OSwxMyBAQCBzdGF0aWMgdm9pZCByZXRpcmVfd29y a2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHZvaWQgZXRuYXZpdl9ncHVfcmV0aXJlKHN0 cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogewogCXN0cnVjdCBldG5hdml2X2RybV9wcml2YXRlICpw cml2ID0gZ3B1LT5kZXYtPmRldl9wcml2YXRlOworCiAJcXVldWVfd29yayhwcml2LT53cSwgJmdw dS0+cmV0aXJlX3dvcmspOwogfQogCiAvKiBhZGQgYm8ncyB0byBncHUncyByaW5nLCBhbmQga2lj ayBncHU6ICovCi1pbnQgZXRuYXZpdl9ncHVfc3VibWl0KHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1 LCBzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQsCi0JCXN0cnVjdCBldG5hdml2X2Zp bGVfcHJpdmF0ZSAqY3R4KQoraW50IGV0bmF2aXZfZ3B1X3N1Ym1pdChzdHJ1Y3QgZXRuYXZpdl9n cHUgKmdwdSwKKwlzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQsIHN0cnVjdCBldG5h dml2X2ZpbGVfcHJpdmF0ZSAqY3R4KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBncHUt PmRldjsKIAlzdHJ1Y3QgZXRuYXZpdl9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CkBAIC03OTgsMTQgKzg0OSwxNyBAQCBpbnQgZXRuYXZpdl9ncHVfc3VibWl0KHN0cnVjdCBl dG5hdml2X2dwdSAqZ3B1LCBzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaQogCiAJCQkv KiByaW5nIHRha2VzIGEgcmVmZXJlbmNlIHRvIHRoZSBibyBhbmQgaW92YTogKi8KIAkJCWRybV9n ZW1fb2JqZWN0X3JlZmVyZW5jZSgmZXRuYXZpdl9vYmotPmJhc2UpOwotCQkJZXRuYXZpdl9nZW1f Z2V0X2lvdmFfbG9ja2VkKGdwdSwgJmV0bmF2aXZfb2JqLT5iYXNlLCAmaW92YSk7CisJCQlldG5h dml2X2dlbV9nZXRfaW92YV9sb2NrZWQoZ3B1LCAmZXRuYXZpdl9vYmotPmJhc2UsCisJCQkJCQkg ICAgJmlvdmEpOwogCQl9CiAKIAkJaWYgKHN1Ym1pdC0+Ym9zW2ldLmZsYWdzICYgRVROQV9TVUJN SVRfQk9fUkVBRCkKLQkJCWV0bmF2aXZfZ2VtX21vdmVfdG9fYWN0aXZlKCZldG5hdml2X29iai0+ YmFzZSwgZ3B1LCBmYWxzZSwgc3VibWl0LT5mZW5jZSk7CisJCQlldG5hdml2X2dlbV9tb3ZlX3Rv X2FjdGl2ZSgmZXRuYXZpdl9vYmotPmJhc2UsIGdwdSwKKwkJCQkJCSAgIGZhbHNlLCBzdWJtaXQt PmZlbmNlKTsKIAogCQlpZiAoc3VibWl0LT5ib3NbaV0uZmxhZ3MgJiBFVE5BX1NVQk1JVF9CT19X UklURSkKLQkJCWV0bmF2aXZfZ2VtX21vdmVfdG9fYWN0aXZlKCZldG5hdml2X29iai0+YmFzZSwg Z3B1LCB0cnVlLCBzdWJtaXQtPmZlbmNlKTsKKwkJCWV0bmF2aXZfZ2VtX21vdmVfdG9fYWN0aXZl KCZldG5hdml2X29iai0+YmFzZSwgZ3B1LAorCQkJCQkJICAgdHJ1ZSwgc3VibWl0LT5mZW5jZSk7 CiAJfQogCWhhbmdjaGVja190aW1lcl9yZXNldChncHUpOwogCkBAIC04MzAsNiArODg0LDcgQEAg c3RhdGljIGlycXJldHVybl90IGlycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiAJCQlk ZXZfZXJyKGdwdS0+ZGV2LT5kZXYsICJBWEkgYnVzIGVycm9yXG4iKTsKIAkJZWxzZSB7CiAJCQl1 aW50OF90IGV2ZW50ID0gX19mbHMoaW50cik7CisKIAkJCWRldl9kYmcoZ3B1LT5kZXYtPmRldiwg ImV2ZW50ICV1XG4iLCBldmVudCk7CiAJCQlncHUtPnJldGlyZWRfZmVuY2UgPSBncHUtPmV2ZW50 W2V2ZW50XS5mZW5jZTsKIAkJCWdwdS0+bGFzdF9yaW5nX3BvcyA9IGdwdS0+ZXZlbnRbZXZlbnRd LnJpbmdfcG9zOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9n cHUuaCBiL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ3B1LmgKaW5kZXggNTJkYjNk YzU0MDc5Li41YWZhMGY3NDEwNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2 L2V0bmF2aXZfZ3B1LmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9ncHUu aApAQCAtOTYsNyArOTYsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9ncHUgewogCS8qIGV2ZW50IG1hbmFn ZW1lbnQ6ICovCiAJc3RydWN0IGV0bmF2aXZfZXZlbnQgZXZlbnRbMzBdOwogCXN0cnVjdCBjb21w bGV0aW9uIGV2ZW50X2ZyZWU7Ci0Jc3RydWN0IHNwaW5sb2NrIGV2ZW50X3NwaW5sb2NrOworCXNw aW5sb2NrX3QgZXZlbnRfc3BpbmxvY2s7CiAKIAkvKiBsaXN0IG9mIEdFTSBhY3RpdmUgb2JqZWN0 czogKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV9saXN0OwpAQCAtMTM5LDcgKzEzOSw4IEBA IHN0YXRpYyBpbmxpbmUgdTMyIGdwdV9yZWFkKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1LCB1MzIg cmVnKQogCXJldHVybiBldG5hdml2X3JlYWRsKGdwdS0+bW1pbyArIHJlZyk7CiB9CiAKLWludCBl dG5hdml2X2dwdV9nZXRfcGFyYW0oc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsIHVpbnQzMl90IHBh cmFtLCB1aW50NjRfdCAqdmFsdWUpOworaW50IGV0bmF2aXZfZ3B1X2dldF9wYXJhbShzdHJ1Y3Qg ZXRuYXZpdl9ncHUgKmdwdSwgdWludDMyX3QgcGFyYW0sCisJdWludDY0X3QgKnZhbHVlKTsKIAog aW50IGV0bmF2aXZfZ3B1X2luaXQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpOwogaW50IGV0bmF2 aXZfZ3B1X3BtX3N1c3BlbmQoc3RydWN0IGV0bmF2aXZfZ3B1ICpncHUpOwpAQCAtMTUwLDggKzE1 MSw4IEBAIHZvaWQgZXRuYXZpdl9ncHVfZGVidWdmcyhzdHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSwg c3RydWN0IHNlcV9maWxlICptKTsKICNlbmRpZgogCiB2b2lkIGV0bmF2aXZfZ3B1X3JldGlyZShz dHJ1Y3QgZXRuYXZpdl9ncHUgKmdwdSk7Ci1pbnQgZXRuYXZpdl9ncHVfc3VibWl0KHN0cnVjdCBl dG5hdml2X2dwdSAqZ3B1LCBzdHJ1Y3QgZXRuYXZpdl9nZW1fc3VibWl0ICpzdWJtaXQsCi0JCXN0 cnVjdCBldG5hdml2X2ZpbGVfcHJpdmF0ZSAqY3R4KTsKK2ludCBldG5hdml2X2dwdV9zdWJtaXQo c3RydWN0IGV0bmF2aXZfZ3B1ICpncHUsCisJc3RydWN0IGV0bmF2aXZfZ2VtX3N1Ym1pdCAqc3Vi bWl0LCBzdHJ1Y3QgZXRuYXZpdl9maWxlX3ByaXZhdGUgKmN0eCk7CiAKIGV4dGVybiBzdHJ1Y3Qg cGxhdGZvcm1fZHJpdmVyIGV0bmF2aXZfZ3B1X2RyaXZlcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9pb21tdS5jIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2 aXYvZXRuYXZpdl9pb21tdS5jCmluZGV4IDU4NDFhMDhmNjI3Zi4uNmFhOTFiY2YxODkzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2lvbW11LmMKKysrIGIvZHJp dmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9pb21tdS5jCkBAIC0xMjIsOCArMTIyLDggQEAg c3RhdGljIGludCBldG5hdml2X2lvbW11X21hcChzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4s IHVuc2lnbmVkIGxvbmcgaW92YSwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHNpemVfdCBldG5h dml2X2lvbW11X3VubWFwKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgbG9u ZyBpb3ZhLAotCSAgICAgc2l6ZV90IHNpemUpCitzdGF0aWMgc2l6ZV90IGV0bmF2aXZfaW9tbXVf dW5tYXAoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAorCXVuc2lnbmVkIGxvbmcgaW92YSwg c2l6ZV90IHNpemUpCiB7CiAJc3RydWN0IGV0bmF2aXZfaW9tbXVfZG9tYWluICpldG5hdml2X2Rv bWFpbiA9IGRvbWFpbi0+cHJpdjsKIApAQCAtMTU4LDYgKzE1OCw3IEBAIHN0cnVjdCBpb21tdV9k b21haW4gKmV0bmF2aXZfaW9tbXVfZG9tYWluX2FsbG9jKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1 KQogewogCXN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbjsKIAlzdHJ1Y3QgZXRuYXZpdl9pb21t dV9kb21haW4gKmV0bmF2aXZfZG9tYWluOworCXVpbnQzMl90IHBndGFibGU7CiAJaW50IHJldDsK IAogCWRvbWFpbiA9IGt6YWxsb2Moc2l6ZW9mKCpkb21haW4pLCBHRlBfS0VSTkVMKTsKQEAgLTE3 MiwxMiArMTczLDEzIEBAIHN0cnVjdCBpb21tdV9kb21haW4gKmV0bmF2aXZfaW9tbXVfZG9tYWlu X2FsbG9jKHN0cnVjdCBldG5hdml2X2dwdSAqZ3B1KQogCiAJLyogc2V0IHBhZ2UgdGFibGUgYWRk cmVzcyBpbiBNQyAqLwogCWV0bmF2aXZfZG9tYWluID0gZG9tYWluLT5wcml2OworCXBndGFibGUg PSAodWludDMyX3QpZXRuYXZpdl9kb21haW4tPnBndGFibGUucGFkZHI7CiAKLQlncHVfd3JpdGUo Z3B1LCBWSVZTX01DX01NVV9GRV9QQUdFX1RBQkxFLCAodWludDMyX3QpZXRuYXZpdl9kb21haW4t PnBndGFibGUucGFkZHIpOwotCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX1RYX1BBR0VfVEFC TEUsICh1aW50MzJfdClldG5hdml2X2RvbWFpbi0+cGd0YWJsZS5wYWRkcik7Ci0JZ3B1X3dyaXRl KGdwdSwgVklWU19NQ19NTVVfUEVfUEFHRV9UQUJMRSwgKHVpbnQzMl90KWV0bmF2aXZfZG9tYWlu LT5wZ3RhYmxlLnBhZGRyKTsKLQlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01NVV9QRVpfUEFHRV9U QUJMRSwgKHVpbnQzMl90KWV0bmF2aXZfZG9tYWluLT5wZ3RhYmxlLnBhZGRyKTsKLQlncHVfd3Jp dGUoZ3B1LCBWSVZTX01DX01NVV9SQV9QQUdFX1RBQkxFLCAodWludDMyX3QpZXRuYXZpdl9kb21h aW4tPnBndGFibGUucGFkZHIpOworCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX0ZFX1BBR0Vf VEFCTEUsIHBndGFibGUpOworCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX1RYX1BBR0VfVEFC TEUsIHBndGFibGUpOworCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX1BFX1BBR0VfVEFCTEUs IHBndGFibGUpOworCWdwdV93cml0ZShncHUsIFZJVlNfTUNfTU1VX1BFWl9QQUdFX1RBQkxFLCBw Z3RhYmxlKTsKKwlncHVfd3JpdGUoZ3B1LCBWSVZTX01DX01NVV9SQV9QQUdFX1RBQkxFLCBwZ3Rh YmxlKTsKIAogCXJldHVybiBkb21haW47CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9l dG5hdml2L2V0bmF2aXZfbW11LmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X21t dS5jCmluZGV4IGNlZTk3ZTExMTE3ZC4uOTRhNmFhOWY5YzZmIDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X21tdS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9ldG5h dml2L2V0bmF2aXZfbW11LmMKQEAgLTU3LDYgKzU3LDcgQEAgZmFpbDoKIAogCWZvcl9lYWNoX3Nn KHNndC0+c2dsLCBzZywgaSwgaikgewogCQlzaXplX3QgYnl0ZXMgPSBzZy0+bGVuZ3RoICsgc2ct Pm9mZnNldDsKKwogCQlpb21tdV91bm1hcChkb21haW4sIGRhLCBieXRlcyk7CiAJCWRhICs9IGJ5 dGVzOwogCX0KQEAgLTk1LDcgKzk2LDggQEAgdm9pZCBldG5hdml2X2lvbW11X2Rlc3Ryb3koc3Ry dWN0IGV0bmF2aXZfaW9tbXUgKm1tdSkKIAlrZnJlZShtbXUpOwogfQogCi1zdHJ1Y3QgZXRuYXZp dl9pb21tdSAqZXRuYXZpdl9pb21tdV9uZXcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGlvbW11X2RvbWFpbiAqZG9tYWluKQorc3RydWN0IGV0bmF2aXZfaW9tbXUgKmV0bmF2aXZfaW9t bXVfbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9t YWluKQogewogCXN0cnVjdCBldG5hdml2X2lvbW11ICptbXU7CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfbW11LmggYi9kcml2ZXJzL3N0YWdpbmcvZXRuYXZp di9ldG5hdml2X21tdS5oCmluZGV4IDAyZTdhZGNjOTZkNy4uN2I5N2VmMzVkMjkwIDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X21tdS5oCisrKyBiL2RyaXZlcnMv c3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfbW11LmgKQEAgLTI1LDEzICsyNSwxNSBAQCBzdHJ1Y3Qg ZXRuYXZpdl9pb21tdSB7CiAJc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluOwogfTsKIAotaW50 IGV0bmF2aXZfaW9tbXVfYXR0YWNoKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSwgY29uc3Qg Y2hhciAqKm5hbWVzLCBpbnQgY250KTsKLWludCBldG5hdml2X2lvbW11X21hcChzdHJ1Y3QgZXRu YXZpdl9pb21tdSAqaW9tbXUsIHVpbnQzMl90IGlvdmEsIHN0cnVjdCBzZ190YWJsZSAqc2d0LAot CQl1bnNpZ25lZCBsZW4sIGludCBwcm90KTsKLWludCBldG5hdml2X2lvbW11X3VubWFwKHN0cnVj dCBldG5hdml2X2lvbW11ICppb21tdSwgdWludDMyX3QgaW92YSwgc3RydWN0IHNnX3RhYmxlICpz Z3QsCi0JCXVuc2lnbmVkIGxlbik7CitpbnQgZXRuYXZpdl9pb21tdV9hdHRhY2goc3RydWN0IGV0 bmF2aXZfaW9tbXUgKmlvbW11LCBjb25zdCBjaGFyICoqbmFtZXMsCisJaW50IGNudCk7CitpbnQg ZXRuYXZpdl9pb21tdV9tYXAoc3RydWN0IGV0bmF2aXZfaW9tbXUgKmlvbW11LCB1aW50MzJfdCBp b3ZhLAorCXN0cnVjdCBzZ190YWJsZSAqc2d0LCB1bnNpZ25lZCBsZW4sIGludCBwcm90KTsKK2lu dCBldG5hdml2X2lvbW11X3VubWFwKHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSwgdWludDMy X3QgaW92YSwKKwlzdHJ1Y3Qgc2dfdGFibGUgKnNndCwgdW5zaWduZWQgbGVuKTsKIHZvaWQgZXRu YXZpdl9pb21tdV9kZXN0cm95KHN0cnVjdCBldG5hdml2X2lvbW11ICppb21tdSk7CiAKLXN0cnVj dCBldG5hdml2X2lvbW11ICpldG5hdml2X2lvbW11X25ldyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4pOworc3RydWN0IGV0bmF2aXZfaW9tbXUgKmV0 bmF2aXZfaW9tbXVfbmV3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJc3RydWN0IGlvbW11X2Rv bWFpbiAqZG9tYWluKTsKIAogI2VuZGlmIC8qIF9fRVROQVZJVl9NTVVfSF9fICovCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL2V0bmF2aXZfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2V0 bmF2aXZfZHJtLmgKaW5kZXggNzY1OTZmYzQ2MTUwLi45NjU0MDIxMDE3ZmQgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvdWFwaS9kcm0vZXRuYXZpdl9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2V0 bmF2aXZfZHJtLmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX2Nw dV9maW5pIHsKIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X3JlbG9jIHsKIAl1aW50MzJf dCBzdWJtaXRfb2Zmc2V0OyAgLyogaW4sIG9mZnNldCBmcm9tIHN1Ym1pdF9ibyAqLwogCXVpbnQz Ml90IG9yOyAgICAgICAgICAgICAvKiBpbiwgdmFsdWUgT1InZCB3aXRoIHJlc3VsdCAqLwotCWlu dDMyX3QgIHNoaWZ0OyAgICAgICAgICAvKiBpbiwgYW1vdW50IG9mIGxlZnQgc2hpZnQgKGNhbiBi ZSBuZWdhdGl2ZSkgKi8KKwlpbnQzMl90ICBzaGlmdDsgICAgICAgICAgLyogaW4sIGFtb3VudCBv ZiBsZWZ0IHNoaWZ0IChjYW4gYmUgLXZlKSAqLwogCXVpbnQzMl90IHJlbG9jX2lkeDsgICAgICAv KiBpbiwgaW5kZXggb2YgcmVsb2NfYm8gYnVmZmVyICovCiAJdWludDY0X3QgcmVsb2Nfb2Zmc2V0 OyAgIC8qIGluLCBvZmZzZXQgZnJvbSBzdGFydCBvZiByZWxvY19ibyAqLwogfTsKLS0gCjIuMS40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=