From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Williams Subject: Re: [PATCH 24/29] fsldma: implement a private tx_list Date: Fri, 4 Sep 2009 12:42:04 -0700 Message-ID: References: <20090904022733.32667.77626.stgit@dwillia2-linux.ch.intel.com> <20090904023232.32667.58041.stgit@dwillia2-linux.ch.intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016362852c8da8d280472c5b140 Cc: linux-raid@vger.kernel.org, netdev@vger.kernel.org, Li Yang , maciej.sosnowski@intel.com, Ira Snyder To: linux-kernel@vger.kernel.org Return-path: In-Reply-To: <20090904023232.32667.58041.stgit@dwillia2-linux.ch.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org --0016362852c8da8d280472c5b140 Content-Type: text/plain; charset=ISO-8859-1 On Thu, Sep 3, 2009 at 7:32 PM, Dan Williams wrote: > Drop fsldma's use of tx_list from struct dma_async_tx_descriptor in > preparation for removal of this field. > > Cc: Li Yang > Signed-off-by: Dan Williams > --- As I merged the pending fsldma queue with this patch I noticed that this missed a tx_list conversion in fsl_dma_tx_submit(). New patch attached. I also fixed up the pending dma-slave support for fsldma (attached). Regards, Dan --0016362852c8da8d280472c5b140 Content-Type: text/x-diff; charset=US-ASCII; name="fsldma-local-tx-list.patch" Content-Disposition: attachment; filename="fsldma-local-tx-list.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fz7bw01k0 ZnNsZG1hOiBpbXBsZW1lbnQgYSBwcml2YXRlIHR4X2xpc3QKCkZyb206IERhbiBXaWxsaWFtcyA8 ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgoKRHJvcCBmc2xkbWEncyB1c2Ugb2YgdHhfbGlzdCBm cm9tIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciBpbgpwcmVwYXJhdGlvbiBmb3IgcmVt b3ZhbCBvZiB0aGlzIGZpZWxkLgoKQ2M6IExpIFlhbmcgPGxlb2xpQGZyZWVzY2FsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgotLS0K IGRyaXZlcnMvZG1hL2ZzbGRtYS5jIHwgICAxNiArKysrKysrKystLS0tLS0tCiBkcml2ZXJzL2Rt YS9mc2xkbWEuaCB8ICAgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2ZzbGRtYS5jIGIvZHJpdmVy cy9kbWEvZnNsZG1hLmMKaW5kZXggZWY4N2E4OS4uNzNkZDc0OCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9kbWEvZnNsZG1hLmMKKysrIGIvZHJpdmVycy9kbWEvZnNsZG1hLmMKQEAgLTMyNiw3ICszMjYs OCBAQCBzdGF0aWMgdm9pZCBmc2xfY2hhbl90b2dnbGVfZXh0X3N0YXJ0KHN0cnVjdCBmc2xfZG1h X2NoYW4gKmZzbF9jaGFuLCBpbnQgZW5hYmxlKQogc3RhdGljIGRtYV9jb29raWVfdCBmc2xfZG1h X3R4X3N1Ym1pdChzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnR4KQogewogCXN0cnVj dCBmc2xfZG1hX2NoYW4gKmZzbF9jaGFuID0gdG9fZnNsX2NoYW4odHgtPmNoYW4pOwotCXN0cnVj dCBmc2xfZGVzY19zdyAqZGVzYzsKKwlzdHJ1Y3QgZnNsX2Rlc2Nfc3cgKmRlc2MgPSB0eF90b19m c2xfZGVzYyh0eCk7CisJc3RydWN0IGZzbF9kZXNjX3N3ICpjaGlsZDsKIAl1bnNpZ25lZCBsb25n IGZsYWdzOwogCWRtYV9jb29raWVfdCBjb29raWU7CiAKQEAgLTMzNCw3ICszMzUsNyBAQCBzdGF0 aWMgZG1hX2Nvb2tpZV90IGZzbF9kbWFfdHhfc3VibWl0KHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVz Y3JpcHRvciAqdHgpCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZzbF9jaGFuLT5kZXNjX2xvY2ssIGZs YWdzKTsKIAogCWNvb2tpZSA9IGZzbF9jaGFuLT5jb21tb24uY29va2llOwotCWxpc3RfZm9yX2Vh Y2hfZW50cnkoZGVzYywgJnR4LT50eF9saXN0LCBub2RlKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRy eShjaGlsZCwgJmRlc2MtPnR4X2xpc3QsIG5vZGUpIHsKIAkJY29va2llKys7CiAJCWlmIChjb29r aWUgPCAwKQogCQkJY29va2llID0gMTsKQEAgLTM0Myw4ICszNDQsOCBAQCBzdGF0aWMgZG1hX2Nv b2tpZV90IGZzbF9kbWFfdHhfc3VibWl0KHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAq dHgpCiAJfQogCiAJZnNsX2NoYW4tPmNvbW1vbi5jb29raWUgPSBjb29raWU7Ci0JYXBwZW5kX2xk X3F1ZXVlKGZzbF9jaGFuLCB0eF90b19mc2xfZGVzYyh0eCkpOwotCWxpc3Rfc3BsaWNlX2luaXQo JnR4LT50eF9saXN0LCBmc2xfY2hhbi0+bGRfcXVldWUucHJldik7CisJYXBwZW5kX2xkX3F1ZXVl KGZzbF9jaGFuLCBkZXNjKTsKKwlsaXN0X3NwbGljZV9pbml0KCZkZXNjLT50eF9saXN0LCBmc2xf Y2hhbi0+bGRfcXVldWUucHJldik7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZmc2xfY2hh bi0+ZGVzY19sb2NrLCBmbGFncyk7CiAKQEAgLTM2Niw2ICszNjcsNyBAQCBzdGF0aWMgc3RydWN0 IGZzbF9kZXNjX3N3ICpmc2xfZG1hX2FsbG9jX2Rlc2NyaXB0b3IoCiAJZGVzY19zdyA9IGRtYV9w b29sX2FsbG9jKGZzbF9jaGFuLT5kZXNjX3Bvb2wsIEdGUF9BVE9NSUMsICZwZGVzYyk7CiAJaWYg KGRlc2Nfc3cpIHsKIAkJbWVtc2V0KGRlc2Nfc3csIDAsIHNpemVvZihzdHJ1Y3QgZnNsX2Rlc2Nf c3cpKTsKKwkJSU5JVF9MSVNUX0hFQUQoJmRlc2Nfc3ctPnR4X2xpc3QpOwogCQlkbWFfYXN5bmNf dHhfZGVzY3JpcHRvcl9pbml0KCZkZXNjX3N3LT5hc3luY190eCwKIAkJCQkJCSZmc2xfY2hhbi0+ Y29tbW9uKTsKIAkJZGVzY19zdy0+YXN5bmNfdHgudHhfc3VibWl0ID0gZnNsX2RtYV90eF9zdWJt aXQ7CkBAIC00NTUsNyArNDU3LDcgQEAgZnNsX2RtYV9wcmVwX2ludGVycnVwdChzdHJ1Y3QgZG1h X2NoYW4gKmNoYW4sIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJbmV3LT5hc3luY190eC5mbGFncyA9 IGZsYWdzOwogCiAJLyogSW5zZXJ0IHRoZSBsaW5rIGRlc2NyaXB0b3IgdG8gdGhlIExEIHJpbmcg Ki8KLQlsaXN0X2FkZF90YWlsKCZuZXctPm5vZGUsICZuZXctPmFzeW5jX3R4LnR4X2xpc3QpOwor CWxpc3RfYWRkX3RhaWwoJm5ldy0+bm9kZSwgJm5ldy0+dHhfbGlzdCk7CiAKIAkvKiBTZXQgRW5k LW9mLWxpbmsgdG8gdGhlIGxhc3QgbGluayBkZXNjcmlwdG9yIG9mIG5ldyBsaXN0Ki8KIAlzZXRf bGRfZW9sKGZzbF9jaGFuLCBuZXcpOwpAQCAtNTEzLDcgKzUxNSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg ZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmZzbF9kbWFfcHJlcF9tZW1jcHkoCiAJCWRtYV9kZXN0 ICs9IGNvcHk7CiAKIAkJLyogSW5zZXJ0IHRoZSBsaW5rIGRlc2NyaXB0b3IgdG8gdGhlIExEIHJp bmcgKi8KLQkJbGlzdF9hZGRfdGFpbCgmbmV3LT5ub2RlLCAmZmlyc3QtPmFzeW5jX3R4LnR4X2xp c3QpOworCQlsaXN0X2FkZF90YWlsKCZuZXctPm5vZGUsICZmaXJzdC0+dHhfbGlzdCk7CiAJfSB3 aGlsZSAobGVuKTsKIAogCW5ldy0+YXN5bmNfdHguZmxhZ3MgPSBmbGFnczsgLyogY2xpZW50IGlz IGluIGNvbnRyb2wgb2YgdGhpcyBhY2sgKi8KQEAgLTUyOCw3ICs1MzAsNyBAQCBmYWlsOgogCWlm ICghZmlyc3QpCiAJCXJldHVybiBOVUxMOwogCi0JbGlzdCA9ICZmaXJzdC0+YXN5bmNfdHgudHhf bGlzdDsKKwlsaXN0ID0gJmZpcnN0LT50eF9saXN0OwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2Fm ZV9yZXZlcnNlKG5ldywgcHJldiwgbGlzdCwgbm9kZSkgewogCQlsaXN0X2RlbCgmbmV3LT5ub2Rl KTsKIAkJZG1hX3Bvb2xfZnJlZShmc2xfY2hhbi0+ZGVzY19wb29sLCBuZXcsIG5ldy0+YXN5bmNf dHgucGh5cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9mc2xkbWEuaCBiL2RyaXZlcnMvZG1h L2ZzbGRtYS5oCmluZGV4IGRjN2YyNjguLjQ0OTNhZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZG1h L2ZzbGRtYS5oCisrKyBiL2RyaXZlcnMvZG1hL2ZzbGRtYS5oCkBAIC05MCw2ICs5MCw3IEBAIHN0 cnVjdCBmc2xfZG1hX2xkX2h3IHsKIHN0cnVjdCBmc2xfZGVzY19zdyB7CiAJc3RydWN0IGZzbF9k bWFfbGRfaHcgaHc7CiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOworCXN0cnVjdCBsaXN0X2hlYWQg dHhfbGlzdDsKIAlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgYXN5bmNfdHg7CiAJc3Ry dWN0IGxpc3RfaGVhZCAqbGQ7CiAJdm9pZCAqcHJpdjsK --0016362852c8da8d280472c5b140 Content-Type: text/x-diff; charset=US-ASCII; name="fsldma-add-dma_slave-support.patch" Content-Disposition: attachment; filename="fsldma-add-dma_slave-support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fz7byyis1 ZnNsZG1hOiBBZGQgRE1BX1NMQVZFIHN1cHBvcnQKCkZyb206IElyYSBTbnlkZXIgPGl3c0BvdnJv LmNhbHRlY2guZWR1PgoKVXNlIHRoZSBETUFfU0xBVkUgY2FwYWJpbGl0eSBvZiB0aGUgRE1BRW5n aW5lIEFQSSB0byBjb3B5L2Zyb20gYQpzY2F0dGVybGlzdCBpbnRvIGFuIGFyYml0cmFyeSBsaXN0 IG9mIGhhcmR3YXJlIGFkZHJlc3MvbGVuZ3RoIHBhaXJzLgoKVGhpcyBhbGxvd3MgYSBzaW5nbGUg RE1BIHRyYW5zYWN0aW9uIHRvIGNvcHkgZGF0YSBmcm9tIHNldmVyYWwgZGlmZmVyZW50CmRldmlj ZXMgaW50byBhIHNjYXR0ZXJsaXN0IGF0IHRoZSBzYW1lIHRpbWUuCgpUaGlzIGFsc28gYWRkcyBz dXBwb3J0IHRvIGVuYWJsZSBzb21lIGNvbnRyb2xsZXItc3BlY2lmaWMgZmVhdHVyZXMgc3VjaCBh cwpleHRlcm5hbCBzdGFydCBhbmQgZXh0ZXJuYWwgcGF1c2UgZm9yIGEgRE1BIHRyYW5zYWN0aW9u LgoKW2Rhbi5qLndpbGxpYW1zQGludGVsLmNvbTogcmViYXNlZCBvbiB0eF9saXN0IG1vdmVtZW50 XQpTaWduZWQtb2ZmLWJ5OiBJcmEgVy4gU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KQWNr ZWQtYnk6IExpIFlhbmcgPGxlb2xpQGZyZWVzY2FsZS5jb20+CkFja2VkLWJ5OiBLdW1hciBHYWxh IDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYW4gV2lsbGlhbXMg PGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KLS0tCiBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20v ZnNsZG1hLmggfCAgMTM2ICsrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZG1hL2ZzbGRt YS5jICAgICAgICAgICAgICB8ICAyMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzNjMgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZnNsZG1hLmgKCmRp ZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vZnNsZG1hLmggYi9hcmNoL3Bvd2Vy cGMvaW5jbHVkZS9hc20vZnNsZG1hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYTY3YWVlZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9m c2xkbWEuaApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIEZyZWVzY2FsZSBNUEM4M1hYIC8gTVBD ODVYWCBETUEgQ29udHJvbGxlcgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOSBJcmEgVy4gU255 ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogdmVy c2lvbiAyLiBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueSB3YXJy YW50eSBvZiBhbnkKKyAqIGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisK KyNpZm5kZWYgX19BUkNIX1BPV0VSUENfQVNNX0ZTTERNQV9IX18KKyNkZWZpbmUgX19BUkNIX1BP V0VSUENfQVNNX0ZTTERNQV9IX18KKworI2luY2x1ZGUgPGxpbnV4L2RtYWVuZ2luZS5oPgorCisv KgorICogRGVmaW5pdGlvbnMgZm9yIHRoZSBGcmVlc2NhbGUgRE1BIGNvbnRyb2xsZXIncyBETUFf U0xBVkUgaW1wbGVtZW50aW9uCisgKgorICogVGhlIEZyZWVzY2FsZSBETUFfU0xBVkUgaW1wbGVt ZW50YXRpb24gd2FzIGRlc2lnbmVkIHRvIGhhbmRsZSBtYW55LXRvLW1hbnkKKyAqIHRyYW5zZmVy cy4gQW4gZXhhbXBsZSB1c2FnZSB3b3VsZCBiZSBhbiBhY2NlbGVyYXRlZCBjb3B5IGJldHdlZW4g dHdvCisgKiBzY2F0dGVybGlzdHMuIEFub3RoZXIgZXhhbXBsZSB1c2Ugd291bGQgYmUgYW4gYWNj ZWxlcmF0ZWQgY29weSBmcm9tCisgKiBtdWx0aXBsZSBub24tY29udGlndW91cyBkZXZpY2UgYnVm ZmVycyBpbnRvIGEgc2luZ2xlIHNjYXR0ZXJsaXN0LgorICoKKyAqIEEgRE1BX1NMQVZFIHRyYW5z YWN0aW9uIGlzIGRlZmluZWQgYnkgYSBzdHJ1Y3QgZnNsX2RtYV9zbGF2ZS4gVGhpcworICogc3Ry dWN0dXJlIGNvbnRhaW5zIGEgbGlzdCBvZiBoYXJkd2FyZSBhZGRyZXNzZXMgdGhhdCBzaG91bGQg YmUgY29waWVkCisgKiB0by9mcm9tIHRoZSBzY2F0dGVybGlzdCBwYXNzZWQgaW50byBkZXZpY2Vf cHJlcF9zbGF2ZV9zZygpLiBUaGUgc3RydWN0dXJlCisgKiBhbHNvIGhhcyBzb21lIGZpZWxkcyB0 byBlbmFibGUgaGFyZHdhcmUtc3BlY2lmaWMgZmVhdHVyZXMuCisgKi8KKworLyoqCisgKiBzdHJ1 Y3QgZnNsX2RtYV9od19hZGRyCisgKiBAZW50cnk6IGxpbmtlZCBsaXN0IGVudHJ5CisgKiBAYWRk cmVzczogdGhlIGhhcmR3YXJlIGFkZHJlc3MKKyAqIEBsZW5ndGg6IGxlbmd0aCB0byB0cmFuc2Zl cgorICoKKyAqIEhvbGRzIGEgc2luZ2xlIHBoeXNpY2FsIGhhcmR3YXJlIGFkZHJlc3MgLyBsZW5n dGggcGFpciBmb3IgdXNlCisgKiB3aXRoIHRoZSBETUFFbmdpbmUgRE1BX1NMQVZFIEFQSS4KKyAq Lworc3RydWN0IGZzbF9kbWFfaHdfYWRkciB7CisJc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKKwor CWRtYV9hZGRyX3QgYWRkcmVzczsKKwlzaXplX3QgbGVuZ3RoOworfTsKKworLyoqCisgKiBzdHJ1 Y3QgZnNsX2RtYV9zbGF2ZQorICogQGFkZHJlc3NlczogYSBsaW5rZWQgbGlzdCBvZiBzdHJ1Y3Qg ZnNsX2RtYV9od19hZGRyIHN0cnVjdHVyZXMKKyAqIEByZXF1ZXN0X2NvdW50OiB2YWx1ZSBmb3Ig RE1BIHJlcXVlc3QgY291bnQKKyAqIEBzcmNfbG9vcF9zaXplOiBzZXR1cCBhbmQgZW5hYmxlIGNv bnN0YW50IHNvdXJjZS1hZGRyZXNzIERNQSB0cmFuc2ZlcnMKKyAqIEBkc3RfbG9vcF9zaXplOiBz ZXR1cCBhbmQgZW5hYmxlIGNvbnN0YW50IGRlc3RpbmF0aW9uIGFkZHJlc3MgRE1BIHRyYW5zZmVy cworICogQGV4dGVybmFsX3N0YXJ0OiBlbmFibGUgZXh0ZXJuYWxseSBzdGFydGVkIERNQSB0cmFu c2ZlcnMKKyAqIEBleHRlcm5hbF9wYXVzZTogZW5hYmxlIGV4dGVybmFsbHkgcGF1c2VkIERNQSB0 cmFuc2ZlcnMKKyAqCisgKiBIb2xkcyBhIGxpc3Qgb2YgYWRkcmVzcyAvIGxlbmd0aCBwYWlycyBm b3IgdXNlIHdpdGggdGhlIERNQUVuZ2luZQorICogRE1BX1NMQVZFIEFQSSBpbXBsZW1lbnRhdGlv biBmb3IgdGhlIEZyZWVzY2FsZSBETUEgY29udHJvbGxlci4KKyAqLworc3RydWN0IGZzbF9kbWFf c2xhdmUgeworCisJLyogTGlzdCBvZiBoYXJkd2FyZSBhZGRyZXNzL2xlbmd0aCBwYWlycyAqLwor CXN0cnVjdCBsaXN0X2hlYWQgYWRkcmVzc2VzOworCisJLyogU3VwcG9ydCBmb3IgZXh0cmEgY29u dHJvbGxlciBmZWF0dXJlcyAqLworCXVuc2lnbmVkIGludCByZXF1ZXN0X2NvdW50OworCXVuc2ln bmVkIGludCBzcmNfbG9vcF9zaXplOworCXVuc2lnbmVkIGludCBkc3RfbG9vcF9zaXplOworCWJv b2wgZXh0ZXJuYWxfc3RhcnQ7CisJYm9vbCBleHRlcm5hbF9wYXVzZTsKK307CisKKy8qKgorICog ZnNsX2RtYV9zbGF2ZV9hcHBlbmQgLSBhZGQgYW4gYWRkcmVzcy9sZW5ndGggcGFpciB0byBhIHN0 cnVjdCBmc2xfZG1hX3NsYXZlCisgKiBAc2xhdmU6IHRoZSAmc3RydWN0IGZzbF9kbWFfc2xhdmUg dG8gYWRkIHRvCisgKiBAYWRkcmVzczogdGhlIGhhcmR3YXJlIGFkZHJlc3MgdG8gYWRkCisgKiBA bGVuZ3RoOiB0aGUgbGVuZ3RoIG9mIGJ5dGVzIHRvIHRyYW5zZmVyIGZyb20gQGFkZHJlc3MKKyAq CisgKiBBZGQgYSBoYXJkd2FyZSBhZGRyZXNzL2xlbmd0aCBwYWlyIHRvIGEgc3RydWN0IGZzbF9k bWFfc2xhdmUuIFJldHVybnMgMCBvbgorICogc3VjY2VzcywgLUVSUk5PIG90aGVyd2lzZS4KKyAq Lworc3RhdGljIGlubGluZSBpbnQgZnNsX2RtYV9zbGF2ZV9hcHBlbmQoc3RydWN0IGZzbF9kbWFf c2xhdmUgKnNsYXZlLAorCQkJCSAgICAgICBkbWFfYWRkcl90IGFkZHJlc3MsIHNpemVfdCBsZW5n dGgpCit7CisJc3RydWN0IGZzbF9kbWFfaHdfYWRkciAqYWRkcjsKKworCWFkZHIgPSBremFsbG9j KHNpemVvZigqYWRkciksIEdGUF9BVE9NSUMpOworCWlmICghYWRkcikKKwkJcmV0dXJuIC1FTk9N RU07CisKKwlJTklUX0xJU1RfSEVBRCgmYWRkci0+ZW50cnkpOworCWFkZHItPmFkZHJlc3MgPSBh ZGRyZXNzOworCWFkZHItPmxlbmd0aCA9IGxlbmd0aDsKKworCWxpc3RfYWRkX3RhaWwoJmFkZHIt PmVudHJ5LCAmc2xhdmUtPmFkZHJlc3Nlcyk7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogZnNs X2RtYV9zbGF2ZV9mcmVlIC0gZnJlZSBhIHN0cnVjdCBmc2xfZG1hX3NsYXZlCisgKiBAc2xhdmU6 IHRoZSBzdHJ1Y3QgZnNsX2RtYV9zbGF2ZSB0byBmcmVlCisgKgorICogRnJlZSBhIHN0cnVjdCBm c2xfZG1hX3NsYXZlIGFuZCBhbGwgYXNzb2NpYXRlZCBhZGRyZXNzL2xlbmd0aCBwYWlycworICov CitzdGF0aWMgaW5saW5lIHZvaWQgZnNsX2RtYV9zbGF2ZV9mcmVlKHN0cnVjdCBmc2xfZG1hX3Ns YXZlICpzbGF2ZSkKK3sKKwlzdHJ1Y3QgZnNsX2RtYV9od19hZGRyICphZGRyLCAqdG1wOworCisJ aWYgKHNsYXZlKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhZGRyLCB0bXAsICZzbGF2 ZS0+YWRkcmVzc2VzLCBlbnRyeSkgeworCQkJbGlzdF9kZWwoJmFkZHItPmVudHJ5KTsKKwkJCWtm cmVlKGFkZHIpOworCQl9CisKKwkJa2ZyZWUoc2xhdmUpOworCX0KK30KKworLyoqCisgKiBmc2xf ZG1hX3NsYXZlX2FsbG9jIC0gYWxsb2NhdGUgYSBzdHJ1Y3QgZnNsX2RtYV9zbGF2ZQorICogQGdm cDogdGhlIGZsYWdzIHRvIHBhc3MgdG8ga21hbGxvYyB3aGVuIGFsbG9jYXRpbmcgdGhpcyBzdHJ1 Y3R1cmUKKyAqCisgKiBBbGxvY2F0ZSBhIHN0cnVjdCBmc2xfZG1hX3NsYXZlIGZvciB1c2UgYnkg dGhlIERNQV9TTEFWRSBBUEkuIFJldHVybnMgYSBuZXcKKyAqIHN0cnVjdCBmc2xfZG1hX3NsYXZl IG9uIHN1Y2Nlc3MsIG9yIE5VTEwgb24gZmFpbHVyZS4KKyAqLworc3RhdGljIGlubGluZSBzdHJ1 Y3QgZnNsX2RtYV9zbGF2ZSAqZnNsX2RtYV9zbGF2ZV9hbGxvYyhnZnBfdCBnZnApCit7CisJc3Ry dWN0IGZzbF9kbWFfc2xhdmUgKnNsYXZlOworCisJc2xhdmUgPSBremFsbG9jKHNpemVvZigqc2xh dmUpLCBnZnApOworCWlmICghc2xhdmUpCisJCXJldHVybiBOVUxMOworCisJSU5JVF9MSVNUX0hF QUQoJnNsYXZlLT5hZGRyZXNzZXMpOworCXJldHVybiBzbGF2ZTsKK30KKworI2VuZGlmIC8qIF9f QVJDSF9QT1dFUlBDX0FTTV9GU0xETUFfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9m c2xkbWEuYyBiL2RyaXZlcnMvZG1hL2ZzbGRtYS5jCmluZGV4IDdhMGNiNjAuLjI5NmY5ZTcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZG1hL2ZzbGRtYS5jCisrKyBiL2RyaXZlcnMvZG1hL2ZzbGRtYS5j CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZG1hcG9vbC5oPgogI2luY2x1ZGUg PGxpbnV4L29mX3BsYXRmb3JtLmg+CiAKKyNpbmNsdWRlIDxhc20vZnNsZG1hLmg+CiAjaW5jbHVk ZSAiZnNsZG1hLmgiCiAKIHN0YXRpYyB2b2lkIGRtYV9pbml0KHN0cnVjdCBmc2xfZG1hX2NoYW4g KmZzbF9jaGFuKQpAQCAtNTUyLDYgKzU1MywyMjkgQEAgZmFpbDoKIH0KIAogLyoqCisgKiBmc2xf ZG1hX3ByZXBfc2xhdmVfc2cgLSBwcmVwYXJlIGRlc2NyaXB0b3JzIGZvciBhIERNQV9TTEFWRSB0 cmFuc2FjdGlvbgorICogQGNoYW46IERNQSBjaGFubmVsCisgKiBAc2dsOiBzY2F0dGVybGlzdCB0 byB0cmFuc2ZlciB0by9mcm9tCisgKiBAc2dfbGVuOiBudW1iZXIgb2YgZW50cmllcyBpbiBAc2Nh dHRlcmxpc3QKKyAqIEBkaXJlY3Rpb246IERNQSBkaXJlY3Rpb24KKyAqIEBmbGFnczogRE1BRW5n aW5lIGZsYWdzCisgKgorICogUHJlcGFyZSBhIHNldCBvZiBkZXNjcmlwdG9ycyBmb3IgYSBETUFf U0xBVkUgdHJhbnNhY3Rpb24uIEZvbGxvd2luZyB0aGUKKyAqIERNQV9TTEFWRSBBUEksIHRoaXMg Z2V0cyB0aGUgZGV2aWNlLXNwZWNpZmljIGluZm9ybWF0aW9uIGZyb20gdGhlCisgKiBjaGFuLT5w cml2YXRlIHZhcmlhYmxlLgorICovCitzdGF0aWMgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlw dG9yICpmc2xfZG1hX3ByZXBfc2xhdmVfc2coCisJc3RydWN0IGRtYV9jaGFuICpjaGFuLCBzdHJ1 Y3Qgc2NhdHRlcmxpc3QgKnNnbCwgdW5zaWduZWQgaW50IHNnX2xlbiwKKwllbnVtIGRtYV9kYXRh X2RpcmVjdGlvbiBkaXJlY3Rpb24sIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJc3RydWN0IGZz bF9kbWFfY2hhbiAqZnNsX2NoYW47CisJc3RydWN0IGZzbF9kZXNjX3N3ICpmaXJzdCA9IE5VTEws ICpwcmV2ID0gTlVMTCwgKm5ldyA9IE5VTEw7CisJc3RydWN0IGZzbF9kbWFfc2xhdmUgKnNsYXZl OworCXN0cnVjdCBsaXN0X2hlYWQgKnR4X2xpc3Q7CisJc2l6ZV90IGNvcHk7CisKKwlpbnQgaTsK KwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXNpemVfdCBzZ191c2VkOworCXNpemVfdCBod191 c2VkOworCXN0cnVjdCBmc2xfZG1hX2h3X2FkZHIgKmh3OworCWRtYV9hZGRyX3QgZG1hX2RzdCwg ZG1hX3NyYzsKKworCWlmICghY2hhbikKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoIWNoYW4tPnBy aXZhdGUpCisJCXJldHVybiBOVUxMOworCisJZnNsX2NoYW4gPSB0b19mc2xfY2hhbihjaGFuKTsK KwlzbGF2ZSA9IGNoYW4tPnByaXZhdGU7CisKKwlpZiAobGlzdF9lbXB0eSgmc2xhdmUtPmFkZHJl c3NlcykpCisJCXJldHVybiBOVUxMOworCisJaHcgPSBsaXN0X2ZpcnN0X2VudHJ5KCZzbGF2ZS0+ YWRkcmVzc2VzLCBzdHJ1Y3QgZnNsX2RtYV9od19hZGRyLCBlbnRyeSk7CisJaHdfdXNlZCA9IDA7 CisKKwkvKgorCSAqIEJ1aWxkIHRoZSBoYXJkd2FyZSB0cmFuc2FjdGlvbiB0byBjb3B5IGZyb20g dGhlIHNjYXR0ZXJsaXN0IHRvCisJICogdGhlIGhhcmR3YXJlLCBvciBmcm9tIHRoZSBoYXJkd2Fy ZSB0byB0aGUgc2NhdHRlcmxpc3QKKwkgKgorCSAqIElmIHlvdSBhcmUgY29weWluZyBmcm9tIHRo ZSBoYXJkd2FyZSB0byB0aGUgc2NhdHRlcmxpc3QgYW5kIGl0CisJICogdGFrZXMgdHdvIGhhcmR3 YXJlIGVudHJpZXMgdG8gZmlsbCBhbiBlbnRpcmUgcGFnZSwgdGhlbiBib3RoCisJICogaGFyZHdh cmUgZW50cmllcyB3aWxsIGJlIGNvYWxlc2NlZCBpbnRvIHRoZSBzYW1lIHBhZ2UKKwkgKgorCSAq IElmIHlvdSBhcmUgY29weWluZyBmcm9tIHRoZSBzY2F0dGVybGlzdCB0byB0aGUgaGFyZHdhcmUg YW5kIGEKKwkgKiBzaW5nbGUgcGFnZSBjYW4gZmlsbCB0d28gaGFyZHdhcmUgZW50cmllcywgdGhl biB0aGUgZGF0YSB3aWxsCisJICogYmUgcmVhZCBvdXQgb2YgdGhlIHBhZ2UgaW50byB0aGUgZmly c3QgaGFyZHdhcmUgZW50cnksIGFuZCBzbyBvbgorCSAqLworCWZvcl9lYWNoX3NnKHNnbCwgc2cs IHNnX2xlbiwgaSkgeworCQlzZ191c2VkID0gMDsKKworCQkvKiBMb29wIHVudGlsIHRoZSBlbnRp cmUgc2NhdHRlcmxpc3QgZW50cnkgaXMgdXNlZCAqLworCQl3aGlsZSAoc2dfdXNlZCA8IHNnX2Rt YV9sZW4oc2cpKSB7CisKKwkJCS8qCisJCQkgKiBJZiB3ZSd2ZSB1c2VkIHVwIHRoZSBjdXJyZW50 IGhhcmR3YXJlIGFkZHJlc3MvbGVuZ3RoCisJCQkgKiBwYWlyLCB3ZSBuZWVkIHRvIGxvYWQgYSBu ZXcgb25lCisJCQkgKgorCQkJICogVGhpcyBpcyBkb25lIGluIGEgd2hpbGUgbG9vcCBzbyB0aGF0 IGRlc2NyaXB0b3JzIHdpdGgKKwkJCSAqIGxlbmd0aCA9PSAwIHdpbGwgYmUgc2tpcHBlZAorCQkJ ICovCisJCQl3aGlsZSAoaHdfdXNlZCA+PSBody0+bGVuZ3RoKSB7CisKKwkJCQkvKgorCQkJCSAq IElmIHRoZSBjdXJyZW50IGhhcmR3YXJlIGVudHJ5IGlzIHRoZSBsYXN0CisJCQkJICogZW50cnkg aW4gdGhlIGxpc3QsIHdlJ3JlIGZpbmlzaGVkCisJCQkJICovCisJCQkJaWYgKGxpc3RfaXNfbGFz dCgmaHctPmVudHJ5LCAmc2xhdmUtPmFkZHJlc3NlcykpCisJCQkJCWdvdG8gZmluaXNoZWQ7CisK KwkJCQkvKiBHZXQgdGhlIG5leHQgaGFyZHdhcmUgYWRkcmVzcy9sZW5ndGggcGFpciAqLworCQkJ CWh3ID0gbGlzdF9lbnRyeShody0+ZW50cnkubmV4dCwKKwkJCQkJCXN0cnVjdCBmc2xfZG1hX2h3 X2FkZHIsIGVudHJ5KTsKKwkJCQlod191c2VkID0gMDsKKwkJCX0KKworCQkJLyogQWxsb2NhdGUg dGhlIGxpbmsgZGVzY3JpcHRvciBmcm9tIERNQSBwb29sICovCisJCQluZXcgPSBmc2xfZG1hX2Fs bG9jX2Rlc2NyaXB0b3IoZnNsX2NoYW4pOworCQkJaWYgKCFuZXcpIHsKKwkJCQlkZXZfZXJyKGZz bF9jaGFuLT5kZXYsICJObyBmcmVlIG1lbW9yeSBmb3IgIgorCQkJCQkJICAgICAgICJsaW5rIGRl c2NyaXB0b3JcbiIpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKyNpZmRlZiBGU0xfRE1BX0xEX0RF QlVHCisJCQlkZXZfZGJnKGZzbF9jaGFuLT5kZXYsICJuZXcgbGluayBkZXNjIGFsbG9jICVwXG4i LCBuZXcpOworI2VuZGlmCisKKwkJCS8qCisJCQkgKiBDYWxjdWxhdGUgdGhlIG1heGltdW0gbnVt YmVyIG9mIGJ5dGVzIHRvIHRyYW5zZmVyLAorCQkJICogbWFraW5nIHN1cmUgaXQgaXMgbGVzcyB0 aGFuIHRoZSBETUEgY29udHJvbGxlciBsaW1pdAorCQkJICovCisJCQljb3B5ID0gbWluX3Qoc2l6 ZV90LCBzZ19kbWFfbGVuKHNnKSAtIHNnX3VzZWQsCisJCQkJCSAgICAgaHctPmxlbmd0aCAtIGh3 X3VzZWQpOworCQkJY29weSA9IG1pbl90KHNpemVfdCwgY29weSwgRlNMX0RNQV9CQ1JfTUFYX0NO VCk7CisKKwkJCS8qCisJCQkgKiBETUFfRlJPTV9ERVZJQ0UKKwkJCSAqIGZyb20gdGhlIGhhcmR3 YXJlIHRvIHRoZSBzY2F0dGVybGlzdAorCQkJICoKKwkJCSAqIERNQV9UT19ERVZJQ0UKKwkJCSAq IGZyb20gdGhlIHNjYXR0ZXJsaXN0IHRvIHRoZSBoYXJkd2FyZQorCQkJICovCisJCQlpZiAoZGly ZWN0aW9uID09IERNQV9GUk9NX0RFVklDRSkgeworCQkJCWRtYV9zcmMgPSBody0+YWRkcmVzcyAr IGh3X3VzZWQ7CisJCQkJZG1hX2RzdCA9IHNnX2RtYV9hZGRyZXNzKHNnKSArIHNnX3VzZWQ7CisJ CQl9IGVsc2UgeworCQkJCWRtYV9zcmMgPSBzZ19kbWFfYWRkcmVzcyhzZykgKyBzZ191c2VkOwor CQkJCWRtYV9kc3QgPSBody0+YWRkcmVzcyArIGh3X3VzZWQ7CisJCQl9CisKKwkJCS8qIEZpbGwg aW4gdGhlIGRlc2NyaXB0b3IgKi8KKwkJCXNldF9kZXNjX2NudChmc2xfY2hhbiwgJm5ldy0+aHcs IGNvcHkpOworCQkJc2V0X2Rlc2Nfc3JjKGZzbF9jaGFuLCAmbmV3LT5odywgZG1hX3NyYyk7CisJ CQlzZXRfZGVzY19kZXN0KGZzbF9jaGFuLCAmbmV3LT5odywgZG1hX2RzdCk7CisKKwkJCS8qCisJ CQkgKiBJZiB0aGlzIGlzIG5vdCB0aGUgZmlyc3QgZGVzY3JpcHRvciwgY2hhaW4gdGhlCisJCQkg KiBjdXJyZW50IGRlc2NyaXB0b3IgYWZ0ZXIgdGhlIHByZXZpb3VzIGRlc2NyaXB0b3IKKwkJCSAq LworCQkJaWYgKCFmaXJzdCkgeworCQkJCWZpcnN0ID0gbmV3OworCQkJfSBlbHNlIHsKKwkJCQlz ZXRfZGVzY19uZXh0KGZzbF9jaGFuLCAmcHJldi0+aHcsCisJCQkJCSAgICAgIG5ldy0+YXN5bmNf dHgucGh5cyk7CisJCQl9CisKKwkJCW5ldy0+YXN5bmNfdHguY29va2llID0gMDsKKwkJCWFzeW5j X3R4X2FjaygmbmV3LT5hc3luY190eCk7CisKKwkJCXByZXYgPSBuZXc7CisJCQlzZ191c2VkICs9 IGNvcHk7CisJCQlod191c2VkICs9IGNvcHk7CisKKwkJCS8qIEluc2VydCB0aGUgbGluayBkZXNj cmlwdG9yIGludG8gdGhlIExEIHJpbmcgKi8KKwkJCWxpc3RfYWRkX3RhaWwoJm5ldy0+bm9kZSwg JmZpcnN0LT50eF9saXN0KTsKKwkJfQorCX0KKworZmluaXNoZWQ6CisKKwkvKiBBbGwgb2YgdGhl IGhhcmR3YXJlIGFkZHJlc3MvbGVuZ3RoIHBhaXJzIGhhZCBsZW5ndGggPT0gMCAqLworCWlmICgh Zmlyc3QgfHwgIW5ldykKKwkJcmV0dXJuIE5VTEw7CisKKwluZXctPmFzeW5jX3R4LmZsYWdzID0g ZmxhZ3M7CisJbmV3LT5hc3luY190eC5jb29raWUgPSAtRUJVU1k7CisKKwkvKiBTZXQgRW5kLW9m LWxpbmsgdG8gdGhlIGxhc3QgbGluayBkZXNjcmlwdG9yIG9mIG5ldyBsaXN0ICovCisJc2V0X2xk X2VvbChmc2xfY2hhbiwgbmV3KTsKKworCS8qIEVuYWJsZSBleHRyYSBjb250cm9sbGVyIGZlYXR1 cmVzICovCisJaWYgKGZzbF9jaGFuLT5zZXRfc3JjX2xvb3Bfc2l6ZSkKKwkJZnNsX2NoYW4tPnNl dF9zcmNfbG9vcF9zaXplKGZzbF9jaGFuLCBzbGF2ZS0+c3JjX2xvb3Bfc2l6ZSk7CisKKwlpZiAo ZnNsX2NoYW4tPnNldF9kZXN0X2xvb3Bfc2l6ZSkKKwkJZnNsX2NoYW4tPnNldF9kZXN0X2xvb3Bf c2l6ZShmc2xfY2hhbiwgc2xhdmUtPmRzdF9sb29wX3NpemUpOworCisJaWYgKGZzbF9jaGFuLT50 b2dnbGVfZXh0X3N0YXJ0KQorCQlmc2xfY2hhbi0+dG9nZ2xlX2V4dF9zdGFydChmc2xfY2hhbiwg c2xhdmUtPmV4dGVybmFsX3N0YXJ0KTsKKworCWlmIChmc2xfY2hhbi0+dG9nZ2xlX2V4dF9wYXVz ZSkKKwkJZnNsX2NoYW4tPnRvZ2dsZV9leHRfcGF1c2UoZnNsX2NoYW4sIHNsYXZlLT5leHRlcm5h bF9wYXVzZSk7CisKKwlpZiAoZnNsX2NoYW4tPnNldF9yZXF1ZXN0X2NvdW50KQorCQlmc2xfY2hh bi0+c2V0X3JlcXVlc3RfY291bnQoZnNsX2NoYW4sIHNsYXZlLT5yZXF1ZXN0X2NvdW50KTsKKwor CXJldHVybiAmZmlyc3QtPmFzeW5jX3R4OworCitmYWlsOgorCS8qIElmIGZpcnN0IHdhcyBub3Qg c2V0LCB0aGVuIHdlIGZhaWxlZCB0byBhbGxvY2F0ZSB0aGUgdmVyeSBmaXJzdAorCSAqIGRlc2Ny aXB0b3IsIGFuZCB3ZSdyZSBkb25lICovCisJaWYgKCFmaXJzdCkKKwkJcmV0dXJuIE5VTEw7CisK KwkvKgorCSAqIEZpcnN0IGlzIHNldCwgc28gYWxsIG9mIHRoZSBkZXNjcmlwdG9ycyB3ZSBhbGxv Y2F0ZWQgaGF2ZSBiZWVuIGFkZGVkCisJICogdG8gZmlyc3QtPnR4X2xpc3QsIElOQ0xVRElORyAi Zmlyc3QiIGl0c2VsZi4gVGhlcmVmb3JlIHdlCisJICogbXVzdCB0cmF2ZXJzZSB0aGUgbGlzdCBi YWNrd2FyZHMgZnJlZWluZyBlYWNoIGRlc2NyaXB0b3IgaW4gdHVybgorCSAqCisJICogV2UncmUg cmUtdXNpbmcgdmFyaWFibGVzIGZvciB0aGUgbG9vcCwgb2ggd2VsbAorCSAqLworCXR4X2xpc3Qg PSAmZmlyc3QtPnR4X2xpc3Q7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UobmV3 LCBwcmV2LCB0eF9saXN0LCBub2RlKSB7CisJCWxpc3RfZGVsX2luaXQoJm5ldy0+bm9kZSk7CisJ CWRtYV9wb29sX2ZyZWUoZnNsX2NoYW4tPmRlc2NfcG9vbCwgbmV3LCBuZXctPmFzeW5jX3R4LnBo eXMpOworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBmc2xfZG1hX2Rldmlj ZV90ZXJtaW5hdGVfYWxsKHN0cnVjdCBkbWFfY2hhbiAqY2hhbikKK3sKKwlzdHJ1Y3QgZnNsX2Rt YV9jaGFuICpmc2xfY2hhbjsKKwlzdHJ1Y3QgZnNsX2Rlc2Nfc3cgKmRlc2MsICp0bXA7CisJdW5z aWduZWQgbG9uZyBmbGFnczsKKworCWlmICghY2hhbikKKwkJcmV0dXJuOworCisJZnNsX2NoYW4g PSB0b19mc2xfY2hhbihjaGFuKTsKKworCS8qIEhhbHQgdGhlIERNQSBlbmdpbmUgKi8KKwlkbWFf aGFsdChmc2xfY2hhbik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZnNsX2NoYW4tPmRlc2NfbG9j aywgZmxhZ3MpOworCisJLyogUmVtb3ZlIGFuZCBmcmVlIGFsbCBvZiB0aGUgZGVzY3JpcHRvcnMg aW4gdGhlIExEIHF1ZXVlICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGRlc2MsIHRtcCwg JmZzbF9jaGFuLT5sZF9xdWV1ZSwgbm9kZSkgeworCQlsaXN0X2RlbCgmZGVzYy0+bm9kZSk7CisJ CWRtYV9wb29sX2ZyZWUoZnNsX2NoYW4tPmRlc2NfcG9vbCwgZGVzYywgZGVzYy0+YXN5bmNfdHgu cGh5cyk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZnNsX2NoYW4tPmRlc2NfbG9j aywgZmxhZ3MpOworfQorCisvKioKICAqIGZzbF9kbWFfdXBkYXRlX2NvbXBsZXRlZF9jb29raWUg LSBVcGRhdGUgdGhlIGNvbXBsZXRlZCBjb29raWUuCiAgKiBAZnNsX2NoYW4gOiBGcmVlc2NhbGUg RE1BIGNoYW5uZWwKICAqLwpAQCAtOTc3LDEyICsxMjAxLDE1IEBAIHN0YXRpYyBpbnQgX19kZXZp bml0IG9mX2ZzbF9kbWFfcHJvYmUoc3RydWN0IG9mX2RldmljZSAqZGV2LAogCiAJZG1hX2NhcF9z ZXQoRE1BX01FTUNQWSwgZmRldi0+Y29tbW9uLmNhcF9tYXNrKTsKIAlkbWFfY2FwX3NldChETUFf SU5URVJSVVBULCBmZGV2LT5jb21tb24uY2FwX21hc2spOworCWRtYV9jYXBfc2V0KERNQV9TTEFW RSwgZmRldi0+Y29tbW9uLmNhcF9tYXNrKTsKIAlmZGV2LT5jb21tb24uZGV2aWNlX2FsbG9jX2No YW5fcmVzb3VyY2VzID0gZnNsX2RtYV9hbGxvY19jaGFuX3Jlc291cmNlczsKIAlmZGV2LT5jb21t b24uZGV2aWNlX2ZyZWVfY2hhbl9yZXNvdXJjZXMgPSBmc2xfZG1hX2ZyZWVfY2hhbl9yZXNvdXJj ZXM7CiAJZmRldi0+Y29tbW9uLmRldmljZV9wcmVwX2RtYV9pbnRlcnJ1cHQgPSBmc2xfZG1hX3By ZXBfaW50ZXJydXB0OwogCWZkZXYtPmNvbW1vbi5kZXZpY2VfcHJlcF9kbWFfbWVtY3B5ID0gZnNs X2RtYV9wcmVwX21lbWNweTsKIAlmZGV2LT5jb21tb24uZGV2aWNlX2lzX3R4X2NvbXBsZXRlID0g ZnNsX2RtYV9pc19jb21wbGV0ZTsKIAlmZGV2LT5jb21tb24uZGV2aWNlX2lzc3VlX3BlbmRpbmcg PSBmc2xfZG1hX21lbWNweV9pc3N1ZV9wZW5kaW5nOworCWZkZXYtPmNvbW1vbi5kZXZpY2VfcHJl cF9zbGF2ZV9zZyA9IGZzbF9kbWFfcHJlcF9zbGF2ZV9zZzsKKwlmZGV2LT5jb21tb24uZGV2aWNl X3Rlcm1pbmF0ZV9hbGwgPSBmc2xfZG1hX2RldmljZV90ZXJtaW5hdGVfYWxsOwogCWZkZXYtPmNv bW1vbi5kZXYgPSAmZGV2LT5kZXY7CiAKIAlmZGV2LT5pcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21h cChkZXYtPm5vZGUsIDApOwo= --0016362852c8da8d280472c5b140--