Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934917Ab0GOWgf (ORCPT ); Thu, 15 Jul 2010 18:36:35 -0400 Received: from mail-gx0-f174.google.com ([209.85.161.174]:32845 "EHLO mail-gx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934838Ab0GOWge (ORCPT ); Thu, 15 Jul 2010 18:36:34 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=PRTyQ4jVJ09K5j7OLDiS986oNdP0ZUDoS2b2W8dsPzW/VfbThBRs/uom9krzKNf1wL bxqEIgbcFzh/Yw5KA4pmvXEhAxQPfU8hkUIx8Z18COrussfYiPdNQvhw2wg09iWyy/O1 XGTC0j+HXUKCJP/lP2bOExsP6XAUe1Bv50Wtg= MIME-Version: 1.0 Date: Thu, 15 Jul 2010 15:36:33 -0700 Message-ID: Subject: [PATCH] Drivers: net: 8139cp: Fixed 28 style errors, and 119 warnings. From: Joseph Kogut To: davem@davemloft.net Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary=0015175ce10efc7991048b74bb7a Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 37445 Lines: 497 --0015175ce10efc7991048b74bb7a Content-Type: text/plain; charset=ISO-8859-1 --0015175ce10efc7991048b74bb7a Content-Type: application/octet-stream; name="0001-Drivers-net-8139cp-Fixed-28-style-errors-and-119-war.patch" Content-Disposition: attachment; filename="0001-Drivers-net-8139cp-Fixed-28-style-errors-and-119-war.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gbo6j8t90 RnJvbSBmYWExOWFkYzBhM2E3MWNjN2I2ODM2ZDY5Nzc2NzJmY2FmODRhOWI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NlcGggS29ndXQgPGpvc2VwaC5rb2d1dEBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTUgSnVsIDIwMTAgMDc6NDg6MjYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBE cml2ZXJzOiBuZXQ6IDgxMzljcDogRml4ZWQgMjggc3R5bGUgZXJyb3JzLCBhbmQgMTE5IHdhcm5p bmdzLgoKRml4ZWQgMjggbWFqb3Igc3R5bGUgaXNzdWVzIGFuZCAxMTkgbWlub3Igc3R5bGUgaXNz dWVzIGluIHRoZSA4MTM5YysgZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogSm9zZXBoIEtvZ3V0IDxq b3NlcGgua29ndXRAZ21haWwuY29tPgoKLS0tCiBkcml2ZXJzL25ldC84MTM5Y3AuYyB8ICAzMDYg KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZXMgY2hhbmdlZCwgMTU5IGluc2VydGlvbnMoKyksIDE0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC84MTM5Y3AuYyBiL2RyaXZlcnMvbmV0LzgxMzljcC5jCmluZGV4IDI4 NGE1ZjQuLjZhZmZkMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0LzgxMzljcC5jCisrKyBiL2Ry aXZlcnMvbmV0LzgxMzljcC5jCkBAIC02LDcgKzYsNyBAQAogCUNvcHlyaWdodCAoQykgMjAwMCwg MjAwMSBEYXZpZCBTLiBNaWxsZXIgKGRhdmVtQHJlZGhhdC5jb20pIFtzdW5nZW0uY10KIAlDb3B5 cmlnaHQgMjAwMSBNYW5mcmVkIFNwcmF1bAkJCQkgICAgW25hdHNlbWkuY10KIAlDb3B5cmlnaHQg MTk5OS0yMDAxIGJ5IERvbmFsZCBCZWNrZXIuCQkJICAgIFtuYXRzZW1pLmNdCi0gICAgICAgCVdy aXR0ZW4gMTk5Ny0yMDAxIGJ5IERvbmFsZCBCZWNrZXIuCQkJICAgIFs4MTM5dG9vLmNdCisJV3Jp dHRlbiAxOTk3LTIwMDEgYnkgRG9uYWxkIEJlY2tlci4JCQkgICAgWzgxMzl0b28uY10KIAlDb3B5 cmlnaHQgMTk5OC0yMDAxIGJ5IEplcyBTb3JlbnNlbiwgPGplc0B0cmFpbmVkLW1vbmtleS5vcmc+ LiBbYWNlbmljLmNdCiAKIAlUaGlzIHNvZnR3YXJlIG1heSBiZSB1c2VkIGFuZCBkaXN0cmlidXRl ZCBhY2NvcmRpbmcgdG8gdGhlIHRlcm1zIG9mCkBAIC03MywxOCArNzMsMTggQEAKICNpbmNsdWRl IDxsaW51eC90Y3AuaD4KICNpbmNsdWRlIDxsaW51eC91ZHAuaD4KICNpbmNsdWRlIDxsaW51eC9j YWNoZS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNs dWRlIDxhc20vdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGlu dXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAvKiBWTEFOIHRhZ2dpbmcg ZmVhdHVyZSBlbmFibGUvZGlzYWJsZSAqLwogI2lmIGRlZmluZWQoQ09ORklHX1ZMQU5fODAyMVEp IHx8IGRlZmluZWQoQ09ORklHX1ZMQU5fODAyMVFfTU9EVUxFKQogI2RlZmluZSBDUF9WTEFOX1RB R19VU0VEIDEKLSNkZWZpbmUgQ1BfVkxBTl9UWF9UQUcodHhfZGVzYyx2bGFuX3RhZ192YWx1ZSkg XAorI2RlZmluZSBDUF9WTEFOX1RYX1RBRyh0eF9kZXNjLCB2bGFuX3RhZ192YWx1ZSkgXAogCWRv IHsgKHR4X2Rlc2MpLT5vcHRzMiA9IGNwdV90b19sZTMyKHZsYW5fdGFnX3ZhbHVlKTsgfSB3aGls ZSAoMCkKICNlbHNlCiAjZGVmaW5lIENQX1ZMQU5fVEFHX1VTRUQgMAotI2RlZmluZSBDUF9WTEFO X1RYX1RBRyh0eF9kZXNjLHZsYW5fdGFnX3ZhbHVlKSBcCisjZGVmaW5lIENQX1ZMQU5fVFhfVEFH KHR4X2Rlc2MsIHZsYW5fdGFnX3ZhbHVlKSBcCiAJZG8geyAodHhfZGVzYyktPm9wdHMyID0gMDsg fSB3aGlsZSAoMCkKICNlbmRpZgogCkBAIC05OSwxNiArOTksMTYgQEAgTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOwogCiBzdGF0aWMgaW50IGRlYnVnID0gLTE7CiBtb2R1bGVfcGFyYW0oZGVidWcsIGlu dCwgMCk7Ci1NT0RVTEVfUEFSTV9ERVNDIChkZWJ1ZywgIjgxMzljcDogYml0bWFwcGVkIG1lc3Nh Z2UgZW5hYmxlIG51bWJlciIpOworTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIjgxMzljcDogYml0 bWFwcGVkIG1lc3NhZ2UgZW5hYmxlIG51bWJlciIpOwogCiAvKiBNYXhpbXVtIG51bWJlciBvZiBt dWx0aWNhc3QgYWRkcmVzc2VzIHRvIGZpbHRlciAodnMuIFJ4LWFsbC1tdWx0aWNhc3QpLgogICAg VGhlIFJUTCBjaGlwcyB1c2UgYSA2NCBlbGVtZW50IGhhc2ggdGFibGUgYmFzZWQgb24gdGhlIEV0 aGVybmV0IENSQy4gICovCiBzdGF0aWMgaW50IG11bHRpY2FzdF9maWx0ZXJfbGltaXQgPSAzMjsK IG1vZHVsZV9wYXJhbShtdWx0aWNhc3RfZmlsdGVyX2xpbWl0LCBpbnQsIDApOwotTU9EVUxFX1BB Uk1fREVTQyAobXVsdGljYXN0X2ZpbHRlcl9saW1pdCwgIjgxMzljcDogbWF4aW11bSBudW1iZXIg b2YgZmlsdGVyZWQgbXVsdGljYXN0IGFkZHJlc3NlcyIpOworTU9EVUxFX1BBUk1fREVTQyhtdWx0 aWNhc3RfZmlsdGVyX2xpbWl0LCAiODEzOWNwOiBtYXhpbXVtIG51bWJlciBvZiBmaWx0ZXJlZCBt dWx0aWNhc3QgYWRkcmVzc2VzIik7CiAKICNkZWZpbmUgQ1BfREVGX01TR19FTkFCTEUJKE5FVElG X01TR19EUlYJCXwgXAotCQkJCSBORVRJRl9NU0dfUFJPQkUgCXwgXAorCQkJCSBORVRJRl9NU0df UFJPQkUJfCBcCiAJCQkJIE5FVElGX01TR19MSU5LKQogI2RlZmluZSBDUF9OVU1fU1RBVFMJCTE0 CS8qIHN0cnVjdCBjcF9kbWFfc3RhdHMsIHBsdXMgb25lICovCiAjZGVmaW5lIENQX1NUQVRTX1NJ WkUJCTY0CS8qIHNpemUgaW4gYnl0ZXMgb2YgRE1BIHN0YXRzIGJsb2NrICovCkBAIC0xMzAsOCAr MTMwLDggQEAgTU9EVUxFX1BBUk1fREVTQyAobXVsdGljYXN0X2ZpbHRlcl9saW1pdCwgIjgxMzlj cDogbWF4aW11bSBudW1iZXIgb2YgZmlsdGVyZWQgbXUKICNkZWZpbmUgUEtUX0JVRl9TWgkJMTUz NgkvKiBTaXplIG9mIGVhY2ggdGVtcG9yYXJ5IFJ4IGJ1ZmZlci4qLwogI2RlZmluZSBDUF9JTlRF Uk5BTF9QSFkJCTMyCiAKLS8qIFRoZSBmb2xsb3dpbmcgc2V0dGluZ3MgYXJlIGxvZ18yKGJ5dGVz KS00OiAgMCA9PSAxNiBieXRlcyAuLiA2PT0xMDI0LCA3PT1lbmQgb2YgcGFja2V0LiAqLwotI2Rl ZmluZSBSWF9GSUZPX1RIUkVTSAkJNQkvKiBSeCBidWZmZXIgbGV2ZWwgYmVmb3JlIGZpcnN0IFBD SSB4ZmVyLiAgKi8KKy8qIFRoZSBmb2xsb3dpbmcgc2V0dGluZ3MgYXJlIGxvZ18yKGJ5dGVzKS00 OiAgMCA9PSAxNiBieXRlcyAuLiA2ID09IDEwMjQsIDcgPT0gZW5kIG9mIHBhY2tldC4gKi8KKyNk ZWZpbmUgUlhfRklGT19USFJFU0gJCTUJLyogUnggYnVmZmVyIGxldmVsIGJlZm9yZSBmaXJzdCBQ Q0kgeGZlci4gKi8KICNkZWZpbmUgUlhfRE1BX0JVUlNUCQk0CS8qIE1heGltdW0gUENJIGJ1cnN0 LCAnNCcgaXMgMjU2ICovCiAjZGVmaW5lIFRYX0RNQV9CVVJTVAkJNgkvKiBNYXhpbXVtIFBDSSBi dXJzdCwgJzYnIGlzIDEwMjQgKi8KICNkZWZpbmUgVFhfRUFSTFlfVEhSRVNICQkyNTYJLyogRWFy bHkgVHggdGhyZXNob2xkLCBpbiBieXRlcyAqLwpAQCAtMzUzLDcgKzM1Myw3IEBAIHN0cnVjdCBj cF9wcml2YXRlIHsKIAlzdHJ1Y3Qgc2tfYnVmZgkJKnR4X3NrYltDUF9UWF9SSU5HX1NJWkVdOwog CiAJdW5zaWduZWQJCXJ4X2J1Zl9zejsKLQl1bnNpZ25lZAkJd29sX2VuYWJsZWQgOiAxOyAvKiBJ cyBXYWtlLW9uLUxBTiBlbmFibGVkPyAqLworCXVuc2lnbmVkCQl3b2xfZW5hYmxlZDoxOyAvKiBJ cyBXYWtlLW9uLUxBTiBlbmFibGVkPyAqLwogCiAjaWYgQ1BfVkxBTl9UQUdfVVNFRAogCXN0cnVj dCB2bGFuX2dyb3VwCSp2bGdycDsKQEAgLTM2NiwyNiArMzY2LDI2IEBAIHN0cnVjdCBjcF9wcml2 YXRlIHsKICNkZWZpbmUgY3ByOChyZWcpCXJlYWRiKGNwLT5yZWdzICsgKHJlZykpCiAjZGVmaW5l IGNwcjE2KHJlZykJcmVhZHcoY3AtPnJlZ3MgKyAocmVnKSkKICNkZWZpbmUgY3ByMzIocmVnKQly ZWFkbChjcC0+cmVncyArIChyZWcpKQotI2RlZmluZSBjcHc4KHJlZyx2YWwpCXdyaXRlYigodmFs KSwgY3AtPnJlZ3MgKyAocmVnKSkKLSNkZWZpbmUgY3B3MTYocmVnLHZhbCkJd3JpdGV3KCh2YWwp LCBjcC0+cmVncyArIChyZWcpKQotI2RlZmluZSBjcHczMihyZWcsdmFsKQl3cml0ZWwoKHZhbCks IGNwLT5yZWdzICsgKHJlZykpCi0jZGVmaW5lIGNwdzhfZihyZWcsdmFsKSBkbyB7CQkJXAorI2Rl ZmluZSBjcHc4KHJlZywgdmFsKQl3cml0ZWIoKHZhbCksIGNwLT5yZWdzICsgKHJlZykpCisjZGVm aW5lIGNwdzE2KHJlZywgdmFsKQl3cml0ZXcoKHZhbCksIGNwLT5yZWdzICsgKHJlZykpCisjZGVm aW5lIGNwdzMyKHJlZywgdmFsKQl3cml0ZWwoKHZhbCksIGNwLT5yZWdzICsgKHJlZykpCisjZGVm aW5lIGNwdzhfZihyZWcsIHZhbCkgZG8gewkJCVwKIAl3cml0ZWIoKHZhbCksIGNwLT5yZWdzICsg KHJlZykpOwlcCiAJcmVhZGIoY3AtPnJlZ3MgKyAocmVnKSk7CQlcCiAJfSB3aGlsZSAoMCkKLSNk ZWZpbmUgY3B3MTZfZihyZWcsdmFsKSBkbyB7CQkJXAorI2RlZmluZSBjcHcxNl9mKHJlZywgdmFs KSBkbyB7CQkJXAogCXdyaXRldygodmFsKSwgY3AtPnJlZ3MgKyAocmVnKSk7CVwKIAlyZWFkdyhj cC0+cmVncyArIChyZWcpKTsJCVwKIAl9IHdoaWxlICgwKQotI2RlZmluZSBjcHczMl9mKHJlZyx2 YWwpIGRvIHsJCQlcCisjZGVmaW5lIGNwdzMyX2YocmVnLCB2YWwpIGRvIHsJCQlcCiAJd3JpdGVs KCh2YWwpLCBjcC0+cmVncyArIChyZWcpKTsJXAogCXJlYWRsKGNwLT5yZWdzICsgKHJlZykpOwkJ XAogCX0gd2hpbGUgKDApCiAKIAotc3RhdGljIHZvaWQgX19jcF9zZXRfcnhfbW9kZSAoc3RydWN0 IG5ldF9kZXZpY2UgKmRldik7Ci1zdGF0aWMgdm9pZCBjcF90eCAoc3RydWN0IGNwX3ByaXZhdGUg KmNwKTsKLXN0YXRpYyB2b2lkIGNwX2NsZWFuX3JpbmdzIChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3Ap Oworc3RhdGljIHZvaWQgX19jcF9zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsK K3N0YXRpYyB2b2lkIGNwX3R4KHN0cnVjdCBjcF9wcml2YXRlICpjcCk7CitzdGF0aWMgdm9pZCBj cF9jbGVhbl9yaW5ncyhzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApOwogI2lmZGVmIENPTkZJR19ORVRf UE9MTF9DT05UUk9MTEVSCiBzdGF0aWMgdm9pZCBjcF9wb2xsX2NvbnRyb2xsZXIoc3RydWN0IG5l dF9kZXZpY2UgKmRldik7CiAjZW5kaWYKQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgdm9pZCBj cF92bGFuX3J4X3JlZ2lzdGVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB2bGFuX2dy b3VwICpncnApCiB9CiAjZW5kaWYgLyogQ1BfVkxBTl9UQUdfVVNFRCAqLwogCi1zdGF0aWMgaW5s aW5lIHZvaWQgY3Bfc2V0X3J4YnVmc2l6ZSAoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQorc3RhdGlj IGlubGluZSB2b2lkIGNwX3NldF9yeGJ1ZnNpemUoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQogewog CXVuc2lnbmVkIGludCBtdHUgPSBjcC0+ZGV2LT5tdHU7CiAKQEAgLTQ1MSwxMCArNDUxLDEwIEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBjcF9zZXRfcnhidWZzaXplIChzdHJ1Y3QgY3BfcHJpdmF0ZSAq Y3ApCiAJCWNwLT5yeF9idWZfc3ogPSBQS1RfQlVGX1NaOwogfQogCi1zdGF0aWMgaW5saW5lIHZv aWQgY3Bfcnhfc2tiIChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3AsIHN0cnVjdCBza19idWZmICpza2Is CitzdGF0aWMgaW5saW5lIHZvaWQgY3Bfcnhfc2tiKHN0cnVjdCBjcF9wcml2YXRlICpjcCwgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgICAgIHN0cnVjdCBjcF9kZXNjICpkZXNjKQogewotCXNr Yi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyAoc2tiLCBjcC0+ZGV2KTsKKwlza2ItPnByb3Rv Y29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBjcC0+ZGV2KTsKIAogCWNwLT5kZXYtPnN0YXRzLnJ4 X3BhY2tldHMrKzsKIAljcC0+ZGV2LT5zdGF0cy5yeF9ieXRlcyArPSBza2ItPmxlbjsKQEAgLTQ2 OCw3ICs0NjgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY3Bfcnhfc2tiIChzdHJ1Y3QgY3BfcHJp dmF0ZSAqY3AsIHN0cnVjdCBza19idWZmICpza2IsCiAJCW5ldGlmX3JlY2VpdmVfc2tiKHNrYik7 CiB9CiAKLXN0YXRpYyB2b2lkIGNwX3J4X2Vycl9hY2N0IChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3As IHVuc2lnbmVkIHJ4X3RhaWwsCitzdGF0aWMgdm9pZCBjcF9yeF9lcnJfYWNjdChzdHJ1Y3QgY3Bf cHJpdmF0ZSAqY3AsIHVuc2lnbmVkIHJ4X3RhaWwsCiAJCQkgICAgdTMyIHN0YXR1cywgdTMyIGxl bikKIHsKIAluZXRpZl9kYmcoY3AsIHJ4X2VyciwgY3AtPmRldiwgInJ4IGVyciwgc2xvdCAlZCBz dGF0dXMgMHgleCBsZW4gJWRcbiIsCkBAIC00ODYsNyArNDg2LDcgQEAgc3RhdGljIHZvaWQgY3Bf cnhfZXJyX2FjY3QgKHN0cnVjdCBjcF9wcml2YXRlICpjcCwgdW5zaWduZWQgcnhfdGFpbCwKIAkJ Y3AtPmRldi0+c3RhdHMucnhfZmlmb19lcnJvcnMrKzsKIH0KIAotc3RhdGljIGlubGluZSB1bnNp Z25lZCBpbnQgY3BfcnhfY3N1bV9vayAodTMyIHN0YXR1cykKK3N0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgaW50IGNwX3J4X2NzdW1fb2sodTMyIHN0YXR1cykKIHsKIAl1bnNpZ25lZCBpbnQgcHJvdG9j b2wgPSAoc3RhdHVzID4+IDE2KSAmIDB4MzsKIApAQCAtNjA2LDcgKzYwNiw3IEBAIHJ4X25leHQ6 CiAJcmV0dXJuIHJ4OwogfQogCi1zdGF0aWMgaXJxcmV0dXJuX3QgY3BfaW50ZXJydXB0IChpbnQg aXJxLCB2b2lkICpkZXZfaW5zdGFuY2UpCitzdGF0aWMgaXJxcmV0dXJuX3QgY3BfaW50ZXJydXB0 KGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSkKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 ID0gZGV2X2luc3RhbmNlOwogCXN0cnVjdCBjcF9wcml2YXRlICpjcDsKQEAgLTY3NCw3ICs2NzQs NyBAQCBzdGF0aWMgdm9pZCBjcF9wb2xsX2NvbnRyb2xsZXIoc3RydWN0IG5ldF9kZXZpY2UgKmRl dikKIH0KICNlbmRpZgogCi1zdGF0aWMgdm9pZCBjcF90eCAoc3RydWN0IGNwX3ByaXZhdGUgKmNw KQorc3RhdGljIHZvaWQgY3BfdHgoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQogewogCXVuc2lnbmVk IHR4X2hlYWQgPSBjcC0+dHhfaGVhZDsKIAl1bnNpZ25lZCB0eF90YWlsID0gY3AtPnR4X3RhaWw7 CkBAIC03MzEsNyArNzMxLDcgQEAgc3RhdGljIHZvaWQgY3BfdHggKHN0cnVjdCBjcF9wcml2YXRl ICpjcCkKIAkJbmV0aWZfd2FrZV9xdWV1ZShjcC0+ZGV2KTsKIH0KIAotc3RhdGljIG5ldGRldl90 eF90IGNwX3N0YXJ0X3htaXQgKHN0cnVjdCBza19idWZmICpza2IsCitzdGF0aWMgbmV0ZGV2X3R4 X3QgY3Bfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJCQlzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9IG5ldGRldl9wcml2KGRldik7 CkBAIC04ODksNyArODg5LDcgQEAgc3RhdGljIG5ldGRldl90eF90IGNwX3N0YXJ0X3htaXQgKHN0 cnVjdCBza19idWZmICpza2IsCiAvKiBTZXQgb3IgY2xlYXIgdGhlIG11bHRpY2FzdCBmaWx0ZXIg Zm9yIHRoaXMgYWRhcHRvci4KICAgIFRoaXMgcm91dGluZSBpcyBub3Qgc3RhdGUgc2Vuc2l0aXZl IGFuZCBuZWVkIG5vdCBiZSBTTVAgbG9ja2VkLiAqLwogCi1zdGF0aWMgdm9pZCBfX2NwX3NldF9y eF9tb2RlIChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgX19jcF9zZXRfcnhf bW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9 IG5ldGRldl9wcml2KGRldik7CiAJdTMyIG1jX2ZpbHRlclsyXTsJLyogTXVsdGljYXN0IGhhc2gg ZmlsdGVyICovCkBAIC05MjMsMjggKzkyMywyOCBAQCBzdGF0aWMgdm9pZCBfX2NwX3NldF9yeF9t b2RlIChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCS8qIFdlIGNhbiBzYWZlbHkgdXBkYXRlIHdp dGhvdXQgc3RvcHBpbmcgdGhlIGNoaXAuICovCiAJdG1wID0gY3BfcnhfY29uZmlnIHwgcnhfbW9k ZTsKIAlpZiAoY3AtPnJ4X2NvbmZpZyAhPSB0bXApIHsKLQkJY3B3MzJfZiAoUnhDb25maWcsIHRt cCk7CisJCWNwdzMyX2YoUnhDb25maWcsIHRtcCk7CiAJCWNwLT5yeF9jb25maWcgPSB0bXA7CiAJ fQotCWNwdzMyX2YgKE1BUjAgKyAwLCBtY19maWx0ZXJbMF0pOwotCWNwdzMyX2YgKE1BUjAgKyA0 LCBtY19maWx0ZXJbMV0pOworCWNwdzMyX2YoTUFSMCArIDAsIG1jX2ZpbHRlclswXSk7CisJY3B3 MzJfZihNQVIwICsgNCwgbWNfZmlsdGVyWzFdKTsKIH0KIAotc3RhdGljIHZvaWQgY3Bfc2V0X3J4 X21vZGUgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCitzdGF0aWMgdm9pZCBjcF9zZXRfcnhfbW9k ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3Ry dWN0IGNwX3ByaXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAotCXNwaW5fbG9ja19pcnFz YXZlICgmY3AtPmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3AtPmxvY2ssIGZs YWdzKTsKIAlfX2NwX3NldF9yeF9tb2RlKGRldik7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAo JmNwLT5sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3AtPmxvY2ssIGZs YWdzKTsKIH0KIAogc3RhdGljIHZvaWQgX19jcF9nZXRfc3RhdHMoc3RydWN0IGNwX3ByaXZhdGUg KmNwKQogewogCS8qIG9ubHkgbG93ZXIgMjQgYml0cyB2YWxpZDsgd3JpdGUgYW55IHZhbHVlIHRv IGNsZWFyICovCi0JY3AtPmRldi0+c3RhdHMucnhfbWlzc2VkX2Vycm9ycyArPSAoY3ByMzIgKFJ4 TWlzc2VkKSAmIDB4ZmZmZmZmKTsKLQljcHczMiAoUnhNaXNzZWQsIDApOworCWNwLT5kZXYtPnN0 YXRzLnJ4X21pc3NlZF9lcnJvcnMgKz0gKGNwcjMyKFJ4TWlzc2VkKSAmIDB4ZmZmZmZmKTsKKwlj cHczMihSeE1pc3NlZCwgMCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZV9zdGF0cyAq Y3BfZ2V0X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC05NTQsMTQgKzk1NCwxNCBA QCBzdGF0aWMgc3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKmNwX2dldF9zdGF0cyhzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCiAJLyogVGhlIGNoaXAgb25seSBuZWVkIHJlcG9ydCBmcmFtZSBzaWxl bnRseSBkcm9wcGVkLiAqLwogCXNwaW5fbG9ja19pcnFzYXZlKCZjcC0+bG9jaywgZmxhZ3MpOwot IAlpZiAobmV0aWZfcnVubmluZyhkZXYpICYmIG5ldGlmX2RldmljZV9wcmVzZW50KGRldikpCi0g CQlfX2NwX2dldF9zdGF0cyhjcCk7CisJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSAmJiBuZXRpZl9k ZXZpY2VfcHJlc2VudChkZXYpKQorCQlfX2NwX2dldF9zdGF0cyhjcCk7CiAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY3AtPmxvY2ssIGZsYWdzKTsKIAogCXJldHVybiAmZGV2LT5zdGF0czsKIH0K IAotc3RhdGljIHZvaWQgY3Bfc3RvcF9odyAoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQorc3RhdGlj IHZvaWQgY3Bfc3RvcF9odyhzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApCiB7CiAJY3B3MTYoSW50clN0 YXR1cywgfihjcHIxNihJbnRyU3RhdHVzKSkpOwogCWNwdzE2X2YoSW50ck1hc2ssIDApOwpAQCAt OTczLDcgKzk3Myw3IEBAIHN0YXRpYyB2b2lkIGNwX3N0b3BfaHcgKHN0cnVjdCBjcF9wcml2YXRl ICpjcCkKIAljcC0+dHhfaGVhZCA9IGNwLT50eF90YWlsID0gMDsKIH0KIAotc3RhdGljIHZvaWQg Y3BfcmVzZXRfaHcgKHN0cnVjdCBjcF9wcml2YXRlICpjcCkKK3N0YXRpYyB2b2lkIGNwX3Jlc2V0 X2h3KHN0cnVjdCBjcF9wcml2YXRlICpjcCkKIHsKIAl1bnNpZ25lZCB3b3JrID0gMTAwMDsKIApA QCAtOTg5LDMwICs5ODksMzAgQEAgc3RhdGljIHZvaWQgY3BfcmVzZXRfaHcgKHN0cnVjdCBjcF9w cml2YXRlICpjcCkKIAluZXRkZXZfZXJyKGNwLT5kZXYsICJoYXJkd2FyZSByZXNldCB0aW1lb3V0 XG4iKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGNwX3N0YXJ0X2h3IChzdHJ1Y3QgY3BfcHJp dmF0ZSAqY3ApCitzdGF0aWMgaW5saW5lIHZvaWQgY3Bfc3RhcnRfaHcoc3RydWN0IGNwX3ByaXZh dGUgKmNwKQogewogCWNwdzE2KENwQ21kLCBjcC0+Y3BjbWQpOwogCWNwdzgoQ21kLCBSeE9uIHwg VHhPbik7CiB9CiAKLXN0YXRpYyB2b2lkIGNwX2luaXRfaHcgKHN0cnVjdCBjcF9wcml2YXRlICpj cCkKK3N0YXRpYyB2b2lkIGNwX2luaXRfaHcoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQogewogCXN0 cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBjcC0+ZGV2OwogCWRtYV9hZGRyX3QgcmluZ19kbWE7CiAK IAljcF9yZXNldF9odyhjcCk7CiAKLQljcHc4X2YgKENmZzkzNDYsIENmZzkzNDZfVW5sb2NrKTsK KwljcHc4X2YoQ2ZnOTM0NiwgQ2ZnOTM0Nl9VbmxvY2spOwogCiAJLyogUmVzdG9yZSBvdXIgaWRl YSBvZiB0aGUgTUFDIGFkZHJlc3MuICovCi0JY3B3MzJfZiAoTUFDMCArIDAsIGxlMzJfdG9fY3B1 ICgqKF9fbGUzMiAqKSAoZGV2LT5kZXZfYWRkciArIDApKSk7Ci0JY3B3MzJfZiAoTUFDMCArIDQs IGxlMzJfdG9fY3B1ICgqKF9fbGUzMiAqKSAoZGV2LT5kZXZfYWRkciArIDQpKSk7CisJY3B3MzJf ZihNQUMwICsgMCwgbGUzMl90b19jcHUoKihfX2xlMzIgKikgKGRldi0+ZGV2X2FkZHIgKyAwKSkp OworCWNwdzMyX2YoTUFDMCArIDQsIGxlMzJfdG9fY3B1KCooX19sZTMyICopIChkZXYtPmRldl9h ZGRyICsgNCkpKTsKIAogCWNwX3N0YXJ0X2h3KGNwKTsKIAljcHc4KFR4VGhyZXNoLCAweDA2KTsg LyogWFhYIGNvbnZlcnQgbWFnaWMgbnVtIHRvIGEgY29uc3RhbnQgKi8KIAogCV9fY3Bfc2V0X3J4 X21vZGUoZGV2KTsKLQljcHczMl9mIChUeENvbmZpZywgSUZHIHwgKFRYX0RNQV9CVVJTVCA8PCBU eERNQVNoaWZ0KSk7CisJY3B3MzJfZihUeENvbmZpZywgSUZHIHwgKFRYX0RNQV9CVVJTVCA8PCBU eERNQVNoaWZ0KSk7CiAKIAljcHc4KENvbmZpZzEsIGNwcjgoQ29uZmlnMSkgfCBEcml2ZXJMb2Fk ZWQgfCBQTUVuYWJsZSk7CiAJLyogRGlzYWJsZSBXYWtlLW9uLUxBTi4gQ2FuIGJlIHR1cm5lZCBv biB3aXRoIEVUSFRPT0xfU1dPTCAqLwpAQCAtMTA3MywyMyArMTA3MywyMyBAQCBlcnJfb3V0Ogog CXJldHVybiAtRU5PTUVNOwogfQogCi1zdGF0aWMgdm9pZCBjcF9pbml0X3JpbmdzX2luZGV4IChz dHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApCitzdGF0aWMgdm9pZCBjcF9pbml0X3JpbmdzX2luZGV4KHN0 cnVjdCBjcF9wcml2YXRlICpjcCkKIHsKIAljcC0+cnhfdGFpbCA9IDA7CiAJY3AtPnR4X2hlYWQg PSBjcC0+dHhfdGFpbCA9IDA7CiB9CiAKLXN0YXRpYyBpbnQgY3BfaW5pdF9yaW5ncyAoc3RydWN0 IGNwX3ByaXZhdGUgKmNwKQorc3RhdGljIGludCBjcF9pbml0X3JpbmdzKHN0cnVjdCBjcF9wcml2 YXRlICpjcCkKIHsKIAltZW1zZXQoY3AtPnR4X3JpbmcsIDAsIHNpemVvZihzdHJ1Y3QgY3BfZGVz YykgKiBDUF9UWF9SSU5HX1NJWkUpOwogCWNwLT50eF9yaW5nW0NQX1RYX1JJTkdfU0laRSAtIDFd Lm9wdHMxID0gY3B1X3RvX2xlMzIoUmluZ0VuZCk7CiAKIAljcF9pbml0X3JpbmdzX2luZGV4KGNw KTsKIAotCXJldHVybiBjcF9yZWZpbGxfcnggKGNwKTsKKwlyZXR1cm4gY3BfcmVmaWxsX3J4KGNw KTsKIH0KIAotc3RhdGljIGludCBjcF9hbGxvY19yaW5ncyAoc3RydWN0IGNwX3ByaXZhdGUgKmNw KQorc3RhdGljIGludCBjcF9hbGxvY19yaW5ncyhzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApCiB7CiAJ dm9pZCAqbWVtOwogCkBAIC0xMTA0LDcgKzExMDQsNyBAQCBzdGF0aWMgaW50IGNwX2FsbG9jX3Jp bmdzIChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApCiAJcmV0dXJuIGNwX2luaXRfcmluZ3MoY3ApOwog fQogCi1zdGF0aWMgdm9pZCBjcF9jbGVhbl9yaW5ncyAoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQor c3RhdGljIHZvaWQgY3BfY2xlYW5fcmluZ3Moc3RydWN0IGNwX3ByaXZhdGUgKmNwKQogewogCXN0 cnVjdCBjcF9kZXNjICpkZXNjOwogCXVuc2lnbmVkIGk7CkBAIC0xMTEyLDcgKzExMTIsNyBAQCBz dGF0aWMgdm9pZCBjcF9jbGVhbl9yaW5ncyAoc3RydWN0IGNwX3ByaXZhdGUgKmNwKQogCWZvciAo aSA9IDA7IGkgPCBDUF9SWF9SSU5HX1NJWkU7IGkrKykgewogCQlpZiAoY3AtPnJ4X3NrYltpXSkg ewogCQkJZGVzYyA9IGNwLT5yeF9yaW5nICsgaTsKLQkJCWRtYV91bm1hcF9zaW5nbGUoJmNwLT5w ZGV2LT5kZXYsbGU2NF90b19jcHUoZGVzYy0+YWRkciksCisJCQlkbWFfdW5tYXBfc2luZ2xlKCZj cC0+cGRldi0+ZGV2LCBsZTY0X3RvX2NwdShkZXNjLT5hZGRyKSwKIAkJCQkJIGNwLT5yeF9idWZf c3osIFBDSV9ETUFfRlJPTURFVklDRSk7CiAJCQlkZXZfa2ZyZWVfc2tiKGNwLT5yeF9za2JbaV0p OwogCQl9CkBAIC0xMTIzLDcgKzExMjMsNyBAQCBzdGF0aWMgdm9pZCBjcF9jbGVhbl9yaW5ncyAo c3RydWN0IGNwX3ByaXZhdGUgKmNwKQogCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGNwLT50eF9z a2JbaV07CiAKIAkJCWRlc2MgPSBjcC0+dHhfcmluZyArIGk7Ci0JCQlkbWFfdW5tYXBfc2luZ2xl KCZjcC0+cGRldi0+ZGV2LGxlNjRfdG9fY3B1KGRlc2MtPmFkZHIpLAorCQkJZG1hX3VubWFwX3Np bmdsZSgmY3AtPnBkZXYtPmRldiwgbGU2NF90b19jcHUoZGVzYy0+YWRkciksCiAJCQkJCSBsZTMy X3RvX2NwdShkZXNjLT5vcHRzMSkgJiAweGZmZmYsCiAJCQkJCSBQQ0lfRE1BX1RPREVWSUNFKTsK IAkJCWlmIChsZTMyX3RvX2NwdShkZXNjLT5vcHRzMSkgJiBMYXN0RnJhZykKQEAgLTExMzksNyAr MTEzOSw3IEBAIHN0YXRpYyB2b2lkIGNwX2NsZWFuX3JpbmdzIChzdHJ1Y3QgY3BfcHJpdmF0ZSAq Y3ApCiAJbWVtc2V0KGNwLT50eF9za2IsIDAsIHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSAqIENQ X1RYX1JJTkdfU0laRSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNwX2ZyZWVfcmluZ3MgKHN0cnVjdCBj cF9wcml2YXRlICpjcCkKK3N0YXRpYyB2b2lkIGNwX2ZyZWVfcmluZ3Moc3RydWN0IGNwX3ByaXZh dGUgKmNwKQogewogCWNwX2NsZWFuX3JpbmdzKGNwKTsKIAlkbWFfZnJlZV9jb2hlcmVudCgmY3At PnBkZXYtPmRldiwgQ1BfUklOR19CWVRFUywgY3AtPnJ4X3JpbmcsCkBAIC0xMTQ4LDcgKzExNDgs NyBAQCBzdGF0aWMgdm9pZCBjcF9mcmVlX3JpbmdzIChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3ApCiAJ Y3AtPnR4X3JpbmcgPSBOVUxMOwogfQogCi1zdGF0aWMgaW50IGNwX29wZW4gKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IGNwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IHsKIAlzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3AgPSBuZXRkZXZfcHJpdihkZXYpOwogCWludCByYzsK QEAgLTExODAsNyArMTE4MCw3IEBAIGVycl9vdXRfaHc6CiAJcmV0dXJuIHJjOwogfQogCi1zdGF0 aWMgaW50IGNwX2Nsb3NlIChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGljIGludCBjcF9j bG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9 IG5ldGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTEyOTUsMzIgKzEy OTUsMzcgQEAgc3RhdGljIHZvaWQgbWRpb193cml0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBp bnQgcGh5X2lkLCBpbnQgbG9jYXRpb24sCiB9CiAKIC8qIFNldCB0aGUgZXRodG9vbCBXYWtlLW9u LUxBTiBzZXR0aW5ncyAqLwotc3RhdGljIGludCBuZXRkZXZfc2V0X3dvbCAoc3RydWN0IGNwX3By aXZhdGUgKmNwLAorc3RhdGljIGludCBuZXRkZXZfc2V0X3dvbChzdHJ1Y3QgY3BfcHJpdmF0ZSAq Y3AsCiAJCQkgICBjb25zdCBzdHJ1Y3QgZXRodG9vbF93b2xpbmZvICp3b2wpCiB7CiAJdTggb3B0 aW9uczsKIAotCW9wdGlvbnMgPSBjcHI4IChDb25maWczKSAmIH4oTGlua1VwIHwgTWFnaWNQYWNr ZXQpOworCW9wdGlvbnMgPSBjcHI4KENvbmZpZzMpICYgfihMaW5rVXAgfCBNYWdpY1BhY2tldCk7 CiAJLyogSWYgV09MIGlzIGJlaW5nIGRpc2FibGVkLCBubyBuZWVkIGZvciBjb21wbGV4aXR5ICov CiAJaWYgKHdvbC0+d29sb3B0cykgewotCQlpZiAod29sLT53b2xvcHRzICYgV0FLRV9QSFkpCW9w dGlvbnMgfD0gTGlua1VwOwotCQlpZiAod29sLT53b2xvcHRzICYgV0FLRV9NQUdJQykJb3B0aW9u cyB8PSBNYWdpY1BhY2tldDsKKwkJaWYgKHdvbC0+d29sb3B0cyAmIFdBS0VfUEhZKQorCQkJb3B0 aW9ucyB8PSBMaW5rVXA7CisJCWlmICh3b2wtPndvbG9wdHMgJiBXQUtFX01BR0lDKQorCQkJb3B0 aW9ucyB8PSBNYWdpY1BhY2tldDsKIAl9CiAKLQljcHc4IChDZmc5MzQ2LCBDZmc5MzQ2X1VubG9j ayk7Ci0JY3B3OCAoQ29uZmlnMywgb3B0aW9ucyk7Ci0JY3B3OCAoQ2ZnOTM0NiwgQ2ZnOTM0Nl9M b2NrKTsKKwljcHc4KENmZzkzNDYsIENmZzkzNDZfVW5sb2NrKTsKKwljcHc4KENvbmZpZzMsIG9w dGlvbnMpOworCWNwdzgoQ2ZnOTM0NiwgQ2ZnOTM0Nl9Mb2NrKTsKIAogCW9wdGlvbnMgPSAwOyAv KiBQYXJhbm9pYSBzZXR0aW5nICovCi0Jb3B0aW9ucyA9IGNwcjggKENvbmZpZzUpICYgfihVV0Yg fCBNV0YgfCBCV0YpOworCW9wdGlvbnMgPSBjcHI4KENvbmZpZzUpICYgfihVV0YgfCBNV0YgfCBC V0YpOwogCS8qIElmIFdPTCBpcyBiZWluZyBkaXNhYmxlZCwgbm8gbmVlZCBmb3IgY29tcGxleGl0 eSAqLwogCWlmICh3b2wtPndvbG9wdHMpIHsKLQkJaWYgKHdvbC0+d29sb3B0cyAmIFdBS0VfVUNB U1QpICBvcHRpb25zIHw9IFVXRjsKLQkJaWYgKHdvbC0+d29sb3B0cyAmIFdBS0VfQkNBU1QpCW9w dGlvbnMgfD0gQldGOwotCQlpZiAod29sLT53b2xvcHRzICYgV0FLRV9NQ0FTVCkJb3B0aW9ucyB8 PSBNV0Y7CisJCWlmICh3b2wtPndvbG9wdHMgJiBXQUtFX1VDQVNUKQorCQkJb3B0aW9ucyB8PSBV V0Y7CisJCWlmICh3b2wtPndvbG9wdHMgJiBXQUtFX0JDQVNUKQorCQkJb3B0aW9ucyB8PSBCV0Y7 CisJCWlmICh3b2wtPndvbG9wdHMgJiBXQUtFX01DQVNUKQorCQkJb3B0aW9ucyB8PSBNV0Y7CiAJ fQogCi0JY3B3OCAoQ29uZmlnNSwgb3B0aW9ucyk7CisJY3B3OChDb25maWc1LCBvcHRpb25zKTsK IAogCWNwLT53b2xfZW5hYmxlZCA9ICh3b2wtPndvbG9wdHMpID8gMSA6IDA7CiAKQEAgLTEzMjgs MzUgKzEzMzMsNDEgQEAgc3RhdGljIGludCBuZXRkZXZfc2V0X3dvbCAoc3RydWN0IGNwX3ByaXZh dGUgKmNwLAogfQogCiAvKiBHZXQgdGhlIGV0aHRvb2wgV2FrZS1vbi1MQU4gc2V0dGluZ3MgKi8K LXN0YXRpYyB2b2lkIG5ldGRldl9nZXRfd29sIChzdHJ1Y3QgY3BfcHJpdmF0ZSAqY3AsCi0JICAg ICAgICAgICAgIHN0cnVjdCBldGh0b29sX3dvbGluZm8gKndvbCkKK3N0YXRpYyB2b2lkIG5ldGRl dl9nZXRfd29sKHN0cnVjdCBjcF9wcml2YXRlICpjcCwKKwkJCSAgIHN0cnVjdCBldGh0b29sX3dv bGluZm8gKndvbCkKIHsKIAl1OCBvcHRpb25zOwogCiAJd29sLT53b2xvcHRzICAgPSAwOyAvKiBT dGFydCBmcm9tIHNjcmF0Y2ggKi8KLQl3b2wtPnN1cHBvcnRlZCA9IFdBS0VfUEhZICAgfCBXQUtF X0JDQVNUIHwgV0FLRV9NQUdJQyB8Ci0JCSAgICAgICAgIFdBS0VfTUNBU1QgfCBXQUtFX1VDQVNU OworCXdvbC0+c3VwcG9ydGVkID0gV0FLRV9QSFkgICB8IFdBS0VfQkNBU1QgfCBXQUtFX01BR0lD IHwgV0FLRV9NQ0FTVCB8IFdBS0VfVUNBU1Q7CisKIAkvKiBXZSBkb24ndCBuZWVkIHRvIGdvIG9u IGlmIFdPTCBpcyBkaXNhYmxlZCAqLwotCWlmICghY3AtPndvbF9lbmFibGVkKSByZXR1cm47CisJ aWYgKCFjcC0+d29sX2VuYWJsZWQpCisJCXJldHVybjsKIAotCW9wdGlvbnMgICAgICAgID0gY3By OCAoQ29uZmlnMyk7Ci0JaWYgKG9wdGlvbnMgJiBMaW5rVXApICAgICAgICB3b2wtPndvbG9wdHMg fD0gV0FLRV9QSFk7Ci0JaWYgKG9wdGlvbnMgJiBNYWdpY1BhY2tldCkgICB3b2wtPndvbG9wdHMg fD0gV0FLRV9NQUdJQzsKKwlvcHRpb25zICAgICAgICA9IGNwcjgoQ29uZmlnMyk7CisJaWYgKG9w dGlvbnMgJiBMaW5rVXApCisJCXdvbC0+d29sb3B0cyB8PSBXQUtFX1BIWTsKKwlpZiAob3B0aW9u cyAmIE1hZ2ljUGFja2V0KQorCQl3b2wtPndvbG9wdHMgfD0gV0FLRV9NQUdJQzsKIAogCW9wdGlv bnMgICAgICAgID0gMDsgLyogUGFyYW5vaWEgc2V0dGluZyAqLwotCW9wdGlvbnMgICAgICAgID0g Y3ByOCAoQ29uZmlnNSk7Ci0JaWYgKG9wdGlvbnMgJiBVV0YpICAgICAgICAgICB3b2wtPndvbG9w dHMgfD0gV0FLRV9VQ0FTVDsKLQlpZiAob3B0aW9ucyAmIEJXRikgICAgICAgICAgIHdvbC0+d29s b3B0cyB8PSBXQUtFX0JDQVNUOwotCWlmIChvcHRpb25zICYgTVdGKSAgICAgICAgICAgd29sLT53 b2xvcHRzIHw9IFdBS0VfTUNBU1Q7CisJb3B0aW9ucyAgICAgICAgPSBjcHI4KENvbmZpZzUpOwor CWlmIChvcHRpb25zICYgVVdGKQorCQl3b2wtPndvbG9wdHMgfD0gV0FLRV9VQ0FTVDsKKwlpZiAo b3B0aW9ucyAmIEJXRikKKwkJd29sLT53b2xvcHRzIHw9IFdBS0VfQkNBU1Q7CisJaWYgKG9wdGlv bnMgJiBNV0YpCisJCXdvbC0+d29sb3B0cyB8PSBXQUtFX01DQVNUOwogfQogCi1zdGF0aWMgdm9p ZCBjcF9nZXRfZHJ2aW5mbyAoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGV0aHRvb2xf ZHJ2aW5mbyAqaW5mbykKK3N0YXRpYyB2b2lkIGNwX2dldF9kcnZpbmZvKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX2RydmluZm8gKmluZm8pCiB7CiAJc3RydWN0IGNwX3By aXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAotCXN0cmNweSAoaW5mby0+ZHJpdmVyLCBE UlZfTkFNRSk7Ci0Jc3RyY3B5IChpbmZvLT52ZXJzaW9uLCBEUlZfVkVSU0lPTik7Ci0Jc3RyY3B5 IChpbmZvLT5idXNfaW5mbywgcGNpX25hbWUoY3AtPnBkZXYpKTsKKwlzdHJjcHkoaW5mby0+ZHJp dmVyLCBEUlZfTkFNRSk7CisJc3RyY3B5KGluZm8tPnZlcnNpb24sIERSVl9WRVJTSU9OKTsKKwlz dHJjcHkoaW5mby0+YnVzX2luZm8sIHBjaV9uYW1lKGNwLT5wZGV2KSk7CiB9CiAKIHN0YXRpYyBp bnQgY3BfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0xMzY0LDcgKzEz NzUsNyBAQCBzdGF0aWMgaW50IGNwX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCXJldHVybiBDUF9SRUdTX1NJWkU7CiB9CiAKLXN0YXRpYyBpbnQgY3BfZ2V0X3NzZXRfY291 bnQgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzc2V0KQorc3RhdGljIGludCBjcF9nZXRf c3NldF9jb3VudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgc3NldCkKIHsKIAlzd2l0Y2gg KHNzZXQpIHsKIAljYXNlIEVUSF9TU19TVEFUUzoKQEAgLTE0NDksNyArMTQ2MCw3IEBAIHN0YXRp YyBpbnQgY3Bfc2V0X3J4X2NzdW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGRhdGEpCiB9 CiAKIHN0YXRpYyB2b2lkIGNwX2dldF9yZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVj dCBldGh0b29sX3JlZ3MgKnJlZ3MsCi0JCSAgICAgICAgdm9pZCAqcCkKKwkJCXZvaWQgKnApCiB7 CiAJc3RydWN0IGNwX3ByaXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAl1bnNpZ25lZCBs b25nIGZsYWdzOwpAQCAtMTQ2NCwzMCArMTQ3NSwzMCBAQCBzdGF0aWMgdm9pZCBjcF9nZXRfcmVn cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF9yZWdzICpyZWdzLAogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmNwLT5sb2NrLCBmbGFncyk7CiB9CiAKLXN0YXRpYyB2b2lk IGNwX2dldF93b2wgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3dvbGlu Zm8gKndvbCkKK3N0YXRpYyB2b2lkIGNwX2dldF93b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwg c3RydWN0IGV0aHRvb2xfd29saW5mbyAqd29sKQogewogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9 IG5ldGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCXNwaW5fbG9ja19p cnFzYXZlICgmY3AtPmxvY2ssIGZsYWdzKTsKLQluZXRkZXZfZ2V0X3dvbCAoY3AsIHdvbCk7Ci0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJmNwLT5sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2ly cXNhdmUoJmNwLT5sb2NrLCBmbGFncyk7CisJbmV0ZGV2X2dldF93b2woY3AsIHdvbCk7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmY3AtPmxvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBj cF9zZXRfd29sIChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZXRodG9vbF93b2xpbmZv ICp3b2wpCitzdGF0aWMgaW50IGNwX3NldF93b2woc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IGV0aHRvb2xfd29saW5mbyAqd29sKQogewogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9IG5l dGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmM7CiAKLQlzcGlu X2xvY2tfaXJxc2F2ZSAoJmNwLT5sb2NrLCBmbGFncyk7Ci0JcmMgPSBuZXRkZXZfc2V0X3dvbCAo Y3AsIHdvbCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAoJmNwLT5sb2NrLCBmbGFncyk7CisJ c3Bpbl9sb2NrX2lycXNhdmUoJmNwLT5sb2NrLCBmbGFncyk7CisJcmMgPSBuZXRkZXZfc2V0X3dv bChjcCwgd29sKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcC0+bG9jaywgZmxhZ3MpOwog CiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgdm9pZCBjcF9nZXRfc3RyaW5ncyAoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgdTMyIHN0cmluZ3NldCwgdTggKmJ1ZikKK3N0YXRpYyB2b2lkIGNwX2dl dF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiBzdHJpbmdzZXQsIHU4ICpidWYp CiB7CiAJc3dpdGNoIChzdHJpbmdzZXQpIHsKIAljYXNlIEVUSF9TU19TVEFUUzoKQEAgLTE0OTks NyArMTUxMCw3IEBAIHN0YXRpYyB2b2lkIGNwX2dldF9zdHJpbmdzIChzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCB1MzIgc3RyaW5nc2V0LCB1OCAqYnVmKQogCX0KIH0KIAotc3RhdGljIHZvaWQgY3Bf Z2V0X2V0aHRvb2xfc3RhdHMgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCitzdGF0aWMgdm9pZCBj cF9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkJCSAgc3RydWN0 IGV0aHRvb2xfc3RhdHMgKmVzdGF0cywgdTY0ICp0bXBfc3RhdHMpCiB7CiAJc3RydWN0IGNwX3By aXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYoZGV2KTsKQEAgLTE1NzEsNyArMTU4Miw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgY3BfZXRodG9vbF9vcHMgPSB7CiAJLnNldF9lZXBy b20JCT0gY3Bfc2V0X2VlcHJvbSwKIH07CiAKLXN0YXRpYyBpbnQgY3BfaW9jdGwgKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpCitzdGF0aWMgaW50IGNw X2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQp CiB7CiAJc3RydWN0IGNwX3ByaXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlpbnQgcmM7 CkBAIC0xNTk5LDggKzE2MTAsOCBAQCBzdGF0aWMgaW50IGNwX3NldF9tYWNfYWRkcmVzcyhzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwKQogCXNwaW5fbG9ja19pcnEoJmNwLT5sb2NrKTsK IAogCWNwdzhfZihDZmc5MzQ2LCBDZmc5MzQ2X1VubG9jayk7Ci0JY3B3MzJfZihNQUMwICsgMCwg bGUzMl90b19jcHUgKCooX19sZTMyICopIChkZXYtPmRldl9hZGRyICsgMCkpKTsKLQljcHczMl9m KE1BQzAgKyA0LCBsZTMyX3RvX2NwdSAoKihfX2xlMzIgKikgKGRldi0+ZGV2X2FkZHIgKyA0KSkp OworCWNwdzMyX2YoTUFDMCArIDAsIGxlMzJfdG9fY3B1KCooX19sZTMyICopIChkZXYtPmRldl9h ZGRyICsgMCkpKTsKKwljcHczMl9mKE1BQzAgKyA0LCBsZTMyX3RvX2NwdSgqKF9fbGUzMiAqKSAo ZGV2LT5kZXZfYWRkciArIDQpKSk7CiAJY3B3OF9mKENmZzkzNDYsIENmZzkzNDZfTG9jayk7CiAK IAlzcGluX3VubG9ja19pcnEoJmNwLT5sb2NrKTsKQEAgLTE2NDAsOSArMTY1MSw5IEBAIHN0YXRp YyBpbnQgY3Bfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKnAp CiAKIHN0YXRpYyB2b2lkIGVlcHJvbV9jbWRfc3RhcnQodm9pZCBfX2lvbWVtICplZV9hZGRyKQog ewotCXdyaXRlYiAoRUVfRU5CICYgfkVFX0NTLCBlZV9hZGRyKTsKLQl3cml0ZWIgKEVFX0VOQiwg ZWVfYWRkcik7Ci0JZWVwcm9tX2RlbGF5ICgpOworCXdyaXRlYihFRV9FTkIgJiB+RUVfQ1MsIGVl X2FkZHIpOworCXdyaXRlYihFRV9FTkIsIGVlX2FkZHIpOworCWVlcHJvbV9kZWxheSgpOwogfQog CiBzdGF0aWMgdm9pZCBlZXByb21fY21kKHZvaWQgX19pb21lbSAqZWVfYWRkciwgaW50IGNtZCwg aW50IGNtZF9sZW4pCkBAIC0xNjUyLDE5ICsxNjYzLDIwIEBAIHN0YXRpYyB2b2lkIGVlcHJvbV9j bWQodm9pZCBfX2lvbWVtICplZV9hZGRyLCBpbnQgY21kLCBpbnQgY21kX2xlbikKIAkvKiBTaGlm dCB0aGUgY29tbWFuZCBiaXRzIG91dC4gKi8KIAlmb3IgKGkgPSBjbWRfbGVuIC0gMTsgaSA+PSAw OyBpLS0pIHsKIAkJaW50IGRhdGF2YWwgPSAoY21kICYgKDEgPDwgaSkpID8gRUVfREFUQV9XUklU RSA6IDA7Ci0JCXdyaXRlYiAoRUVfRU5CIHwgZGF0YXZhbCwgZWVfYWRkcik7Ci0JCWVlcHJvbV9k ZWxheSAoKTsKLQkJd3JpdGViIChFRV9FTkIgfCBkYXRhdmFsIHwgRUVfU0hJRlRfQ0xLLCBlZV9h ZGRyKTsKLQkJZWVwcm9tX2RlbGF5ICgpOworCQl3cml0ZWIoRUVfRU5CIHwgZGF0YXZhbCwgZWVf YWRkcik7CisJCWVlcHJvbV9kZWxheSgpOworCQl3cml0ZWIoRUVfRU5CIHwgZGF0YXZhbCB8IEVF X1NISUZUX0NMSywgZWVfYWRkcik7CisJCWVlcHJvbV9kZWxheSgpOwogCX0KLQl3cml0ZWIgKEVF X0VOQiwgZWVfYWRkcik7Ci0JZWVwcm9tX2RlbGF5ICgpOworCisJd3JpdGViKEVFX0VOQiwgZWVf YWRkcik7CisJZWVwcm9tX2RlbGF5KCk7CiB9CiAKIHN0YXRpYyB2b2lkIGVlcHJvbV9jbWRfZW5k KHZvaWQgX19pb21lbSAqZWVfYWRkcikKIHsKLQl3cml0ZWIgKH5FRV9DUywgZWVfYWRkcik7Ci0J ZWVwcm9tX2RlbGF5ICgpOworCXdyaXRlYih+RUVfQ1MsIGVlX2FkZHIpOworCWVlcHJvbV9kZWxh eSgpOwogfQogCiBzdGF0aWMgdm9pZCBlZXByb21fZXh0ZW5kX2NtZCh2b2lkIF9faW9tZW0gKmVl X2FkZHIsIGludCBleHRlbmRfY21kLApAQCAtMTY3Nyw3ICsxNjg5LDcgQEAgc3RhdGljIHZvaWQg ZWVwcm9tX2V4dGVuZF9jbWQodm9pZCBfX2lvbWVtICplZV9hZGRyLCBpbnQgZXh0ZW5kX2NtZCwK IAllZXByb21fY21kX2VuZChlZV9hZGRyKTsKIH0KIAotc3RhdGljIHUxNiByZWFkX2VlcHJvbSAo dm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBsb2NhdGlvbiwgaW50IGFkZHJfbGVuKQorc3RhdGlj IHUxNiByZWFkX2VlcHJvbSh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IGxvY2F0aW9uLCBpbnQg YWRkcl9sZW4pCiB7CiAJaW50IGk7CiAJdTE2IHJldHZhbCA9IDA7CkBAIC0xNjg4LDEzICsxNzAw LDEzIEBAIHN0YXRpYyB1MTYgcmVhZF9lZXByb20gKHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQg bG9jYXRpb24sIGludCBhZGRyX2xlbikKIAllZXByb21fY21kKGVlX2FkZHIsIHJlYWRfY21kLCAz ICsgYWRkcl9sZW4pOwogCiAJZm9yIChpID0gMTY7IGkgPiAwOyBpLS0pIHsKLQkJd3JpdGViIChF RV9FTkIgfCBFRV9TSElGVF9DTEssIGVlX2FkZHIpOwotCQllZXByb21fZGVsYXkgKCk7CisJCXdy aXRlYihFRV9FTkIgfCBFRV9TSElGVF9DTEssIGVlX2FkZHIpOworCQllZXByb21fZGVsYXkoKTsK IAkJcmV0dmFsID0KLQkJICAgIChyZXR2YWwgPDwgMSkgfCAoKHJlYWRiIChlZV9hZGRyKSAmIEVF X0RBVEFfUkVBRCkgPyAxIDoKKwkJICAgIChyZXR2YWwgPDwgMSkgfCAoKHJlYWRiKGVlX2FkZHIp ICYgRUVfREFUQV9SRUFEKSA/IDEgOgogCQkJCSAgICAgMCk7Ci0JCXdyaXRlYiAoRUVfRU5CLCBl ZV9hZGRyKTsKLQkJZWVwcm9tX2RlbGF5ICgpOworCQl3cml0ZWIoRUVfRU5CLCBlZV9hZGRyKTsK KwkJZWVwcm9tX2RlbGF5KCk7CiAJfQogCiAJZWVwcm9tX2NtZF9lbmQoZWVfYWRkcik7CkBAIC0x ODE3LDE3ICsxODI5LDE3IEBAIHN0YXRpYyBpbnQgY3Bfc2V0X2VlcHJvbShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogfQogCiAvKiBQdXQgdGhlIGJvYXJkIGludG8gRDNjb2xkIHN0YXRlIGFuZCB3 YWl0IGZvciBXYWtlVXAgc2lnbmFsICovCi1zdGF0aWMgdm9pZCBjcF9zZXRfZDNfc3RhdGUgKHN0 cnVjdCBjcF9wcml2YXRlICpjcCkKK3N0YXRpYyB2b2lkIGNwX3NldF9kM19zdGF0ZShzdHJ1Y3Qg Y3BfcHJpdmF0ZSAqY3ApCiB7Ci0JcGNpX2VuYWJsZV93YWtlIChjcC0+cGRldiwgMCwgMSk7IC8q IEVuYWJsZSBQTUUjIGdlbmVyYXRpb24gKi8KLQlwY2lfc2V0X3Bvd2VyX3N0YXRlIChjcC0+cGRl diwgUENJX0QzaG90KTsKKwlwY2lfZW5hYmxlX3dha2UoY3AtPnBkZXYsIDAsIDEpOyAvKiBFbmFi bGUgUE1FIyBnZW5lcmF0aW9uICovCisJcGNpX3NldF9wb3dlcl9zdGF0ZShjcC0+cGRldiwgUENJ X0QzaG90KTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBjcF9uZXRk ZXZfb3BzID0gewogCS5uZG9fb3BlbgkJPSBjcF9vcGVuLAogCS5uZG9fc3RvcAkJPSBjcF9jbG9z ZSwKIAkubmRvX3ZhbGlkYXRlX2FkZHIJPSBldGhfdmFsaWRhdGVfYWRkciwKLQkubmRvX3NldF9t YWNfYWRkcmVzcyAJPSBjcF9zZXRfbWFjX2FkZHJlc3MsCisJLm5kb19zZXRfbWFjX2FkZHJlc3MJ PSBjcF9zZXRfbWFjX2FkZHJlc3MsCiAJLm5kb19zZXRfbXVsdGljYXN0X2xpc3QJPSBjcF9zZXRf cnhfbW9kZSwKIAkubmRvX2dldF9zdGF0cwkJPSBjcF9nZXRfc3RhdHMsCiAJLm5kb19kb19pb2N0 bAkJPSBjcF9pb2N0bCwKQEAgLTE4NDUsNyArMTg1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bmV0X2RldmljZV9vcHMgY3BfbmV0ZGV2X29wcyA9IHsKICNlbmRpZgogfTsKIAotc3RhdGljIGlu dCBjcF9pbml0X29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2 aWNlX2lkICplbnQpCitzdGF0aWMgaW50IGNwX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQogewogCXN0cnVjdCBuZXRfZGV2aWNl ICpkZXY7CiAJc3RydWN0IGNwX3ByaXZhdGUgKmNwOwpAQCAtMTg3Nyw3ICsxODg5LDcgQEAgc3Rh dGljIGludCBjcF9pbml0X29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBw Y2lfZGV2aWNlX2lkICplbnQpCiAJY3AtPnBkZXYgPSBwZGV2OwogCWNwLT5kZXYgPSBkZXY7CiAJ Y3AtPm1zZ19lbmFibGUgPSAoZGVidWcgPCAwID8gQ1BfREVGX01TR19FTkFCTEUgOiBkZWJ1Zyk7 Ci0Jc3Bpbl9sb2NrX2luaXQgKCZjcC0+bG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmNwLT5sb2Nr KTsKIAljcC0+bWlpX2lmLmRldiA9IGRldjsKIAljcC0+bWlpX2lmLm1kaW9fcmVhZCA9IG1kaW9f cmVhZDsKIAljcC0+bWlpX2lmLm1kaW9fd3JpdGUgPSBtZGlvX3dyaXRlOwpAQCAtMTk1MCwxMCAr MTk2MiwxMCBAQCBzdGF0aWMgaW50IGNwX2luaXRfb25lIChzdHJ1Y3QgcGNpX2RldiAqcGRldiwg Y29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKIAljcF9zdG9wX2h3KGNwKTsKIAogCS8q IHJlYWQgTUFDIGFkZHJlc3MgZnJvbSBFRVBST00gKi8KLQlhZGRyX2xlbiA9IHJlYWRfZWVwcm9t IChyZWdzLCAwLCA4KSA9PSAweDgxMjkgPyA4IDogNjsKKwlhZGRyX2xlbiA9IHJlYWRfZWVwcm9t KHJlZ3MsIDAsIDgpID09IDB4ODEyOSA/IDggOiA2OwogCWZvciAoaSA9IDA7IGkgPCAzOyBpKysp CiAJCSgoX19sZTE2ICopIChkZXYtPmRldl9hZGRyKSlbaV0gPQotCQkgICAgY3B1X3RvX2xlMTYo cmVhZF9lZXByb20gKHJlZ3MsIGkgKyA3LCBhZGRyX2xlbikpOworCQkgICAgY3B1X3RvX2xlMTYo cmVhZF9lZXByb20ocmVncywgaSArIDcsIGFkZHJfbGVuKSk7CiAJbWVtY3B5KGRldi0+cGVybV9h ZGRyLCBkZXYtPmRldl9hZGRyLCBkZXYtPmFkZHJfbGVuKTsKIAogCWRldi0+bmV0ZGV2X29wcyA9 ICZjcF9uZXRkZXZfb3BzOwpAQCAtMTk4Nyw3ICsxOTk5LDcgQEAgc3RhdGljIGludCBjcF9pbml0 X29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpl bnQpCiAJcGNpX3NldF9tYXN0ZXIocGRldik7CiAKIAlpZiAoY3AtPndvbF9lbmFibGVkKQotCQlj cF9zZXRfZDNfc3RhdGUgKGNwKTsKKwkJY3Bfc2V0X2QzX3N0YXRlKGNwKTsKIAogCXJldHVybiAw OwogCkBAIC0yMDA0LDcgKzIwMTYsNyBAQCBlcnJfb3V0X2ZyZWU6CiAJcmV0dXJuIHJjOwogfQog Ci1zdGF0aWMgdm9pZCBjcF9yZW1vdmVfb25lIChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3N0YXRp YyB2b2lkIGNwX3JlbW92ZV9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAJc3RydWN0IG5l dF9kZXZpY2UgKmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3QgY3BfcHJpdmF0 ZSAqY3AgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMjAxMiw3ICsyMDI0LDcgQEAgc3RhdGljIHZv aWQgY3BfcmVtb3ZlX29uZSAoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJdW5yZWdpc3Rlcl9uZXRk ZXYoZGV2KTsKIAlpb3VubWFwKGNwLT5yZWdzKTsKIAlpZiAoY3AtPndvbF9lbmFibGVkKQotCQlw Y2lfc2V0X3Bvd2VyX3N0YXRlIChwZGV2LCBQQ0lfRDApOworCQlwY2lfc2V0X3Bvd2VyX3N0YXRl KHBkZXYsIFBDSV9EMCk7CiAJcGNpX3JlbGVhc2VfcmVnaW9ucyhwZGV2KTsKIAlwY2lfY2xlYXJf bXdpKHBkZXYpOwogCXBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsKQEAgLTIwMjEsNyArMjAzMyw3 IEBAIHN0YXRpYyB2b2lkIGNwX3JlbW92ZV9vbmUgKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogfQog CiAjaWZkZWYgQ09ORklHX1BNCi1zdGF0aWMgaW50IGNwX3N1c3BlbmQgKHN0cnVjdCBwY2lfZGV2 ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCitzdGF0aWMgaW50IGNwX3N1c3BlbmQoc3RydWN0 IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAlzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBjcF9wcml2YXRlICpjcCA9 IG5ldGRldl9wcml2KGRldik7CkBAIC0yMDMwLDE2ICsyMDQyLDE2IEBAIHN0YXRpYyBpbnQgY3Bf c3VzcGVuZCAoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIAlpZiAo IW5ldGlmX3J1bm5pbmcoZGV2KSkKIAkJcmV0dXJuIDA7CiAKLQluZXRpZl9kZXZpY2VfZGV0YWNo IChkZXYpOwotCW5ldGlmX3N0b3BfcXVldWUgKGRldik7CisJbmV0aWZfZGV2aWNlX2RldGFjaChk ZXYpOworCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKIAotCXNwaW5fbG9ja19pcnFzYXZlICgmY3At PmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3AtPmxvY2ssIGZsYWdzKTsKIAog CS8qIERpc2FibGUgUnggYW5kIFR4ICovCi0JY3B3MTYgKEludHJNYXNrLCAwKTsKLQljcHc4ICAo Q21kLCBjcHI4IChDbWQpICYgKH5SeE9uIHwgflR4T24pKTsKKwljcHcxNihJbnRyTWFzaywgMCk7 CisJY3B3OChDbWQsIGNwcjgoQ21kKSAmICh+UnhPbiB8IH5UeE9uKSk7CiAKLQlzcGluX3VubG9j a19pcnFyZXN0b3JlICgmY3AtPmxvY2ssIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZjcC0+bG9jaywgZmxhZ3MpOwogCiAJcGNpX3NhdmVfc3RhdGUocGRldik7CiAJcGNpX2VuYWJs ZV93YWtlKHBkZXYsIHBjaV9jaG9vc2Vfc3RhdGUocGRldiwgc3RhdGUpLCBjcC0+d29sX2VuYWJs ZWQpOwpAQCAtMjA0OCwzMSArMjA2MCwzMSBAQCBzdGF0aWMgaW50IGNwX3N1c3BlbmQgKHN0cnVj dCBwY2lfZGV2ICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyBpbnQgY3BfcmVzdW1lIChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3N0YXRpYyBpbnQgY3Bf cmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PSBwY2lfZ2V0X2RydmRhdGEgKHBkZXYpOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBwY2lf Z2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IGNwX3ByaXZhdGUgKmNwID0gbmV0ZGV2X3ByaXYo ZGV2KTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikp CiAJCXJldHVybiAwOwogCi0JbmV0aWZfZGV2aWNlX2F0dGFjaCAoZGV2KTsKKwluZXRpZl9kZXZp Y2VfYXR0YWNoKGRldik7CiAKIAlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBkZXYsIFBDSV9EMCk7CiAJ cGNpX3Jlc3RvcmVfc3RhdGUocGRldik7CiAJcGNpX2VuYWJsZV93YWtlKHBkZXYsIFBDSV9EMCwg MCk7CiAKIAkvKiBGSVhNRTogc2gqdCBtYXkgaGFwcGVuIGlmIHRoZSBSeCByaW5nIGJ1ZmZlciBp cyBkZXBsZXRlZCAqLwotCWNwX2luaXRfcmluZ3NfaW5kZXggKGNwKTsKLQljcF9pbml0X2h3IChj cCk7Ci0JbmV0aWZfc3RhcnRfcXVldWUgKGRldik7CisJY3BfaW5pdF9yaW5nc19pbmRleChjcCk7 CisJY3BfaW5pdF9odyhjcCk7CisJbmV0aWZfc3RhcnRfcXVldWUoZGV2KTsKIAotCXNwaW5fbG9j a19pcnFzYXZlICgmY3AtPmxvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3AtPmxv Y2ssIGZsYWdzKTsKIAogCW1paV9jaGVja19tZWRpYSgmY3AtPm1paV9pZiwgbmV0aWZfbXNnX2xp bmsoY3ApLCBmYWxzZSk7CiAKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlICgmY3AtPmxvY2ssIGZs YWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcC0+bG9jaywgZmxhZ3MpOwogCiAJcmV0 dXJuIDA7CiB9CkBAIC0yMDg5LDcgKzIxMDEsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIg Y3BfZHJpdmVyID0gewogI2VuZGlmCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBjcF9pbml0ICh2 b2lkKQorc3RhdGljIGludCBfX2luaXQgY3BfaW5pdCh2b2lkKQogewogI2lmZGVmIE1PRFVMRQog CXByX2luZm8oIiVzIiwgdmVyc2lvbik7CkBAIC0yMDk3LDkgKzIxMDksOSBAQCBzdGF0aWMgaW50 IF9faW5pdCBjcF9pbml0ICh2b2lkKQogCXJldHVybiBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZjcF9k cml2ZXIpOwogfQogCi1zdGF0aWMgdm9pZCBfX2V4aXQgY3BfZXhpdCAodm9pZCkKK3N0YXRpYyB2 b2lkIF9fZXhpdCBjcF9leGl0KHZvaWQpCiB7Ci0JcGNpX3VucmVnaXN0ZXJfZHJpdmVyICgmY3Bf ZHJpdmVyKTsKKwlwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoJmNwX2RyaXZlcik7CiB9CiAKIG1vZHVs ZV9pbml0KGNwX2luaXQpOwotLSAKMS43LjEKCg== --0015175ce10efc7991048b74bb7a-- -- 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/