From mboxrd@z Thu Jan 1 00:00:00 1970 From: jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org Subject: [PATCH 1/2] mm/mmu_notifier: avoid double notification when it is useless v2 Date: Mon, 16 Oct 2017 23:10:02 -0400 Message-ID: <20171017031003.7481-2-jglisse@redhat.com> References: <20171017031003.7481-1-jglisse@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171017031003.7481-1-jglisse-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org Cc: Andrea Arcangeli , Stephen Rothwell , Joerg Roedel , Benjamin Herrenschmidt , Andrew Donnellan , linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , linux-next-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Michael Ellerman , Alistair Popple , Andrew Morton , Linus Torvalds , David Woodhouse List-Id: iommu@lists.linux-foundation.org RnJvbTogSsOpcsO0bWUgR2xpc3NlIDxqZ2xpc3NlQHJlZGhhdC5jb20+CgpUaGlzIHBhdGNoIG9u bHkgYWZmZWN0cyB1c2VycyBvZiBtbXVfbm90aWZpZXItPmludmFsaWRhdGVfcmFuZ2UgY2FsbGJh Y2sKd2hpY2ggYXJlIGRldmljZSBkcml2ZXJzIHJlbGF0ZWQgdG8gQVRTL1BBU0lELCBDQVBJLCBJ T01NVXYyLCBTVk0gLi4uCmFuZCBpdCBpcyBhbiBvcHRpbWl6YXRpb24gZm9yIHRob3NlIHVzZXJz LiBFdmVyeW9uZSBlbHNlIGlzIHVuYWZmZWN0ZWQKYnkgaXQuCgpXaGVuIGNsZWFyaW5nIGEgcHRl L3BtZCB3ZSBhcmUgZ2l2ZW4gYSBjaG9pY2UgdG8gbm90aWZ5IHRoZSBldmVudCB1bmRlcgp0aGUg cGFnZSB0YWJsZSBsb2NrIChub3RpZnkgdmVyc2lvbiBvZiAqX2NsZWFyX2ZsdXNoIGhlbHBlcnMg ZG8gY2FsbCB0aGUKbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2UpLiBCdXQgdGhhdCBub3Rp ZmljYXRpb24gaXMgbm90IG5lY2Vzc2FyeSBpbgphbGwgY2FzZXMuCgpUaGlzIHBhdGNoZXMgcmVt b3ZlIGFsbW9zdCBhbGwgY2FzZXMgd2hlcmUgaXQgaXMgdXNlbGVzcyB0byBoYXZlIGEgY2FsbAp0 byBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZSBiZWZvcmUgbW11X25vdGlmaWVyX2ludmFs aWRhdGVfcmFuZ2VfZW5kLgpJdCBhbHNvIGFkZHMgZG9jdW1lbnRhdGlvbiBpbiBhbGwgdGhvc2Ug Y2FzZXMgZXhwbGFpbmluZyB3aHkuCgpCZWxvdyBpcyBhIG1vcmUgaW4gZGVwdGggYW5hbHlzaXMg b2Ygd2h5IHRoaXMgaXMgZmluZSB0byBkbyB0aGlzOgoKRm9yIHNlY29uZGFyeSBUTEIgKG5vbiBD UFUgVExCKSBsaWtlIElPTU1VIFRMQiBvciBkZXZpY2UgVExCICh3aGVuIGRldmljZQp1c2UgdGhp bmcgbGlrZSBBVFMvUEFTSUQgdG8gZ2V0IHRoZSBJT01NVSB0byB3YWxrIHRoZSBDUFUgcGFnZSB0 YWJsZSB0bwphY2Nlc3MgYSBwcm9jZXNzIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSkuIFRoZXJlIGlz IG9ubHkgMiBjYXNlcyB3aGVuIHlvdQpuZWVkIHRvIG5vdGlmeSB0aG9zZSBzZWNvbmRhcnkgVExC IHdoaWxlIGhvbGRpbmcgcGFnZSB0YWJsZSBsb2NrIHdoZW4KY2xlYXJpbmcgYSBwdGUvcG1kOgoK ICBBKSBwYWdlIGJhY2tpbmcgYWRkcmVzcyBpcyBmcmVlIGJlZm9yZSBtbXVfbm90aWZpZXJfaW52 YWxpZGF0ZV9yYW5nZV9lbmQKICBCKSBhIHBhZ2UgdGFibGUgZW50cnkgaXMgdXBkYXRlZCB0byBw b2ludCB0byBhIG5ldyBwYWdlIChDT1csIHdyaXRlIGZhdWx0CiAgICAgb24gemVybyBwYWdlLCBf X3JlcGxhY2VfcGFnZSgpLCAuLi4pCgpDYXNlIEEgaXMgb2J2aW91cyB5b3UgZG8gbm90IHdhbnQg dG8gdGFrZSB0aGUgcmlzayBmb3IgdGhlIGRldmljZSB0byB3cml0ZQp0byBhIHBhZ2UgdGhhdCBt aWdodCBub3cgYmUgdXNlZCBieSBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQuCgpDYXNl IEIgaXMgbW9yZSBzdWJ0bGUuIEZvciBjb3JyZWN0bmVzcyBpdCByZXF1aXJlcyB0aGUgZm9sbG93 aW5nIHNlcXVlbmNlCnRvIGhhcHBlbjoKICAtIHRha2UgcGFnZSB0YWJsZSBsb2NrCiAgLSBjbGVh ciBwYWdlIHRhYmxlIGVudHJ5IGFuZCBub3RpZnkgKHBtZC9wdGVfaHVnZV9jbGVhcl9mbHVzaF9u b3RpZnkoKSkKICAtIHNldCBwYWdlIHRhYmxlIGVudHJ5IHRvIHBvaW50IHRvIG5ldyBwYWdlCgpJ ZiBjbGVhcmluZyB0aGUgcGFnZSB0YWJsZSBlbnRyeSBpcyBub3QgZm9sbG93ZWQgYnkgYSBub3Rp ZnkgYmVmb3JlIHNldHRpbmcKdGhlIG5ldyBwdGUvcG1kIHZhbHVlIHRoZW4geW91IGNhbiBicmVh ayBtZW1vcnkgbW9kZWwgbGlrZSBDMTEgb3IgQysrMTEgZm9yCnRoZSBkZXZpY2UuCgpDb25zaWRl ciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvIChkZXZpY2UgdXNlIGEgZmVhdHVyZSBzaW1pbGFyIHRv IEFUUy8KUEFTSUQpOgoKVHdvIGFkZHJlc3MgYWRkckEgYW5kIGFkZHJCIHN1Y2ggdGhhdCB8YWRk ckEgLSBhZGRyQnwgPj0gUEFHRV9TSVpFIHdlCmFzc3VtZSB0aGV5IGFyZSB3cml0ZSBwcm90ZWN0 ZWQgZm9yIENPVyAob3RoZXIgY2FzZSBvZiBCIGFwcGx5IHRvbykuCgpbVGltZSBOXSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpDUFUtdGhyZWFkLTAgIHt0cnkgdG8gd3JpdGUgdG8gYWRkckF9CkNQVS10aHJlYWQtMSAge3Ry eSB0byB3cml0ZSB0byBhZGRyQn0KQ1BVLXRocmVhZC0yICB7fQpDUFUtdGhyZWFkLTMgIHt9CkRF Vi10aHJlYWQtMCAge3JlYWQgYWRkckEgYW5kIHBvcHVsYXRlIGRldmljZSBUTEJ9CkRFVi10aHJl YWQtMiAge3JlYWQgYWRkckIgYW5kIHBvcHVsYXRlIGRldmljZSBUTEJ9CltUaW1lIE4rMV0gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCkNQVS10aHJlYWQtMCAge0NPV19zdGVwMDoge21tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3Jh bmdlX3N0YXJ0KGFkZHJBKX19CkNQVS10aHJlYWQtMSAge0NPV19zdGVwMDoge21tdV9ub3RpZmll cl9pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0KGFkZHJCKX19CkNQVS10aHJlYWQtMiAge30KQ1BVLXRo cmVhZC0zICB7fQpERVYtdGhyZWFkLTAgIHt9CkRFVi10aHJlYWQtMiAge30KW1RpbWUgTisyXSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KQ1BVLXRocmVhZC0wICB7Q09XX3N0ZXAxOiB7dXBkYXRlIHBhZ2UgdGFibGUgcG9pbnQg dG8gbmV3IHBhZ2UgZm9yIGFkZHJBfX0KQ1BVLXRocmVhZC0xICB7Q09XX3N0ZXAxOiB7dXBkYXRl IHBhZ2UgdGFibGUgcG9pbnQgdG8gbmV3IHBhZ2UgZm9yIGFkZHJCfX0KQ1BVLXRocmVhZC0yICB7 fQpDUFUtdGhyZWFkLTMgIHt9CkRFVi10aHJlYWQtMCAge30KREVWLXRocmVhZC0yICB7fQpbVGlt ZSBOKzNdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpDUFUtdGhyZWFkLTAgIHtwcmVlbXB0ZWR9CkNQVS10aHJlYWQtMSAge3By ZWVtcHRlZH0KQ1BVLXRocmVhZC0yICB7d3JpdGUgdG8gYWRkckEgd2hpY2ggaXMgYSB3cml0ZSB0 byBuZXcgcGFnZX0KQ1BVLXRocmVhZC0zICB7fQpERVYtdGhyZWFkLTAgIHt9CkRFVi10aHJlYWQt MiAge30KW1RpbWUgTiszXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ1BVLXRocmVhZC0wICB7cHJlZW1wdGVkfQpDUFUtdGhy ZWFkLTEgIHtwcmVlbXB0ZWR9CkNQVS10aHJlYWQtMiAge30KQ1BVLXRocmVhZC0zICB7d3JpdGUg dG8gYWRkckIgd2hpY2ggaXMgYSB3cml0ZSB0byBuZXcgcGFnZX0KREVWLXRocmVhZC0wICB7fQpE RVYtdGhyZWFkLTIgIHt9CltUaW1lIE4rNF0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkNQVS10aHJlYWQtMCAge3ByZWVtcHRl ZH0KQ1BVLXRocmVhZC0xICB7Q09XX3N0ZXAzOiB7bW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFu Z2VfZW5kKGFkZHJCKX19CkNQVS10aHJlYWQtMiAge30KQ1BVLXRocmVhZC0zICB7fQpERVYtdGhy ZWFkLTAgIHt9CkRFVi10aHJlYWQtMiAge30KW1RpbWUgTis1XSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ1BVLXRocmVhZC0w ICB7cHJlZW1wdGVkfQpDUFUtdGhyZWFkLTEgIHt9CkNQVS10aHJlYWQtMiAge30KQ1BVLXRocmVh ZC0zICB7fQpERVYtdGhyZWFkLTAgIHtyZWFkIGFkZHJBIGZyb20gb2xkIHBhZ2V9CkRFVi10aHJl YWQtMiAge3JlYWQgYWRkckIgZnJvbSBuZXcgcGFnZX0KClNvIGhlcmUgYmVjYXVzZSBhdCB0aW1l IE4rMiB0aGUgY2xlYXIgcGFnZSB0YWJsZSBlbnRyeSB3YXMgbm90IHBhaXIgd2l0aCBhCm5vdGlm aWNhdGlvbiB0byBpbnZhbGlkYXRlIHRoZSBzZWNvbmRhcnkgVExCLCB0aGUgZGV2aWNlIHNlZSB0 aGUgbmV3IHZhbHVlCmZvciBhZGRyQiBiZWZvcmUgc2VpbmcgdGhlIG5ldyB2YWx1ZSBmb3IgYWRk ckEuIFRoaXMgYnJlYWsgdG90YWwgbWVtb3J5Cm9yZGVyaW5nIGZvciB0aGUgZGV2aWNlLgoKV2hl biBjaGFuZ2luZyBhIHB0ZSB0byB3cml0ZSBwcm90ZWN0IG9yIHRvIHBvaW50IHRvIGEgbmV3IHdy aXRlIHByb3RlY3RlZApwYWdlIHdpdGggc2FtZSBjb250ZW50IChLU00pIGl0IGlzIG9rIHRvIGRl bGF5IGludmFsaWRhdGVfcmFuZ2UgY2FsbGJhY2sgdG8KbW11X25vdGlmaWVyX2ludmFsaWRhdGVf cmFuZ2VfZW5kKCkgb3V0c2lkZSB0aGUgcGFnZSB0YWJsZSBsb2NrLiBUaGlzIGlzCnRydWUgZXZl biBpZiB0aGUgdGhyZWFkIGRvaW5nIHBhZ2UgdGFibGUgdXBkYXRlIGlzIHByZWVtcHRlZCByaWdo dCBhZnRlcgpyZWxlYXNpbmcgcGFnZSB0YWJsZSBsb2NrIGJlZm9yZSBjYWxsaW5nIG1tdV9ub3Rp Zmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZAoKQ2hhbmdlZCBzaW5jZSB2MToKICAtIHR5cG9zICh0 aGFua3MgdG8gQW5kcmVhKQogIC0gQXZvaWQgdW5uZWNlc3NhcnkgcHJlY2F1dGlvbiBpbiB0cnlf dG9fdW5tYXAoKSAoQW5kcmVhKQogIC0gQmUgbW9yZSBjb25zZXJ2YXRpdmUgaW4gdHJ5X3RvX3Vu bWFwX29uZSgpCgpTaWduZWQtb2ZmLWJ5OiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0 LmNvbT4KQ2M6IEFuZHJlYSBBcmNhbmdlbGkgPGFhcmNhbmdlQHJlZGhhdC5jb20+CkNjOiBOYWRh diBBbWl0IDxuYWRhdi5hbWl0QGdtYWlsLmNvbT4KQ2M6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxk c0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91 bmRhdGlvbi5vcmc+CkNjOiBKb2VyZyBSb2VkZWwgPGpyb2VkZWxAc3VzZS5kZT4KQ2M6IFN1cmF2 ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNjOiBEYXZp ZCBXb29kaG91c2UgPGR3bXcyQGluZnJhZGVhZC5vcmc+CkNjOiBBbGlzdGFpciBQb3BwbGUgPGFs aXN0YWlyQHBvcHBsZS5pZC5hdT4KQ2M6IE1pY2hhZWwgRWxsZXJtYW4gPG1wZUBlbGxlcm1hbi5p ZC5hdT4KQ2M6IEJlbmphbWluIEhlcnJlbnNjaG1pZHQgPGJlbmhAa2VybmVsLmNyYXNoaW5nLm9y Zz4KQ2M6IFN0ZXBoZW4gUm90aHdlbGwgPHNmckBjYW5iLmF1dWcub3JnLmF1PgpDYzogQW5kcmV3 IERvbm5lbGxhbiA8YW5kcmV3LmRvbm5lbGxhbkBhdTEuaWJtLmNvbT4KCkNjOiBpb21tdUBsaXN0 cy5saW51eC1mb3VuZGF0aW9uLm9yZwpDYzogbGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcK Q2M6IGxpbnV4LW5leHRAdmdlci5rZXJuZWwub3JnCi0tLQogRG9jdW1lbnRhdGlvbi92bS9tbXVf bm90aWZpZXIudHh0IHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBmcy9kYXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKystCiBpbmNsdWRlL2xp bnV4L21tdV9ub3RpZmllci5oICAgICAgfCAgMyArLQogbW0vaHVnZV9tZW1vcnkuYyAgICAgICAg ICAgICAgICAgIHwgMjAgKysrKysrKy0tCiBtbS9odWdldGxiLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxNiArKysrKy0tCiBtbS9rc20uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNSAr KysrKystCiBtbS9ybWFwLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCA1OSArKysrKysrKysr KysrKysrKysrKysrLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCAxNyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL3ZtL21tdV9ub3Rp Zmllci50eHQKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQg Yi9Eb2N1bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4yM2I0NjI1NjZiYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1 bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKQEAgLTAsMCArMSw5MyBAQAorV2hlbiBkbyB5 b3UgbmVlZCB0byBub3RpZnkgaW5zaWRlIHBhZ2UgdGFibGUgbG9jayA/CisKK1doZW4gY2xlYXJp bmcgYSBwdGUvcG1kIHdlIGFyZSBnaXZlbiBhIGNob2ljZSB0byBub3RpZnkgdGhlIGV2ZW50IHRo cm91Z2gKKyhub3RpZnkgdmVyc2lvbiBvZiAqX2NsZWFyX2ZsdXNoIGNhbGwgbW11X25vdGlmaWVy X2ludmFsaWRhdGVfcmFuZ2UpIHVuZGVyCit0aGUgcGFnZSB0YWJsZSBsb2NrLiBCdXQgdGhhdCBu b3RpZmljYXRpb24gaXMgbm90IG5lY2Vzc2FyeSBpbiBhbGwgY2FzZXMuCisKK0ZvciBzZWNvbmRh cnkgVExCIChub24gQ1BVIFRMQikgbGlrZSBJT01NVSBUTEIgb3IgZGV2aWNlIFRMQiAod2hlbiBk ZXZpY2UgdXNlCit0aGluZyBsaWtlIEFUUy9QQVNJRCB0byBnZXQgdGhlIElPTU1VIHRvIHdhbGsg dGhlIENQVSBwYWdlIHRhYmxlIHRvIGFjY2VzcyBhCitwcm9jZXNzIHZpcnR1YWwgYWRkcmVzcyBz cGFjZSkuIFRoZXJlIGlzIG9ubHkgMiBjYXNlcyB3aGVuIHlvdSBuZWVkIHRvIG5vdGlmeQordGhv c2Ugc2Vjb25kYXJ5IFRMQiB3aGlsZSBob2xkaW5nIHBhZ2UgdGFibGUgbG9jayB3aGVuIGNsZWFy aW5nIGEgcHRlL3BtZDoKKworICBBKSBwYWdlIGJhY2tpbmcgYWRkcmVzcyBpcyBmcmVlIGJlZm9y ZSBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQoKQorICBCKSBhIHBhZ2UgdGFibGUg ZW50cnkgaXMgdXBkYXRlZCB0byBwb2ludCB0byBhIG5ldyBwYWdlIChDT1csIHdyaXRlIGZhdWx0 CisgICAgIG9uIHplcm8gcGFnZSwgX19yZXBsYWNlX3BhZ2UoKSwgLi4uKQorCitDYXNlIEEgaXMg b2J2aW91cyB5b3UgZG8gbm90IHdhbnQgdG8gdGFrZSB0aGUgcmlzayBmb3IgdGhlIGRldmljZSB0 byB3cml0ZSB0bworYSBwYWdlIHRoYXQgbWlnaHQgbm93IGJlIHVzZWQgYnkgc29tZSBjb21wbGV0 ZWx5IGRpZmZlcmVudCB0YXNrLgorCitDYXNlIEIgaXMgbW9yZSBzdWJ0bGUuIEZvciBjb3JyZWN0 bmVzcyBpdCByZXF1aXJlcyB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIHRvCitoYXBwZW46CisgIC0g dGFrZSBwYWdlIHRhYmxlIGxvY2sKKyAgLSBjbGVhciBwYWdlIHRhYmxlIGVudHJ5IGFuZCBub3Rp ZnkgKFtwbWQvcHRlXXBfaHVnZV9jbGVhcl9mbHVzaF9ub3RpZnkoKSkKKyAgLSBzZXQgcGFnZSB0 YWJsZSBlbnRyeSB0byBwb2ludCB0byBuZXcgcGFnZQorCitJZiBjbGVhcmluZyB0aGUgcGFnZSB0 YWJsZSBlbnRyeSBpcyBub3QgZm9sbG93ZWQgYnkgYSBub3RpZnkgYmVmb3JlIHNldHRpbmcKK3Ro ZSBuZXcgcHRlL3BtZCB2YWx1ZSB0aGVuIHlvdSBjYW4gYnJlYWsgbWVtb3J5IG1vZGVsIGxpa2Ug QzExIG9yIEMrKzExIGZvcgordGhlIGRldmljZS4KKworQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBz Y2VuYXJpbyAoZGV2aWNlIHVzZSBhIGZlYXR1cmUgc2ltaWxhciB0byBBVFMvUEFTSUQpOgorCitU d28gYWRkcmVzcyBhZGRyQSBhbmQgYWRkckIgc3VjaCB0aGF0IHxhZGRyQSAtIGFkZHJCfCA+PSBQ QUdFX1NJWkUgd2UgYXNzdW1lCit0aGV5IGFyZSB3cml0ZSBwcm90ZWN0ZWQgZm9yIENPVyAob3Ro ZXIgY2FzZSBvZiBCIGFwcGx5IHRvbykuCisKK1tUaW1lIE5dIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUFUtdGhy ZWFkLTAgIHt0cnkgdG8gd3JpdGUgdG8gYWRkckF9CitDUFUtdGhyZWFkLTEgIHt0cnkgdG8gd3Jp dGUgdG8gYWRkckJ9CitDUFUtdGhyZWFkLTIgIHt9CitDUFUtdGhyZWFkLTMgIHt9CitERVYtdGhy ZWFkLTAgIHtyZWFkIGFkZHJBIGFuZCBwb3B1bGF0ZSBkZXZpY2UgVExCfQorREVWLXRocmVhZC0y ICB7cmVhZCBhZGRyQiBhbmQgcG9wdWxhdGUgZGV2aWNlIFRMQn0KK1tUaW1lIE4rMV0gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCitDUFUtdGhyZWFkLTAgIHtDT1dfc3RlcDA6IHttbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9y YW5nZV9zdGFydChhZGRyQSl9fQorQ1BVLXRocmVhZC0xICB7Q09XX3N0ZXAwOiB7bW11X25vdGlm aWVyX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnQoYWRkckIpfX0KK0NQVS10aHJlYWQtMiAge30KK0NQ VS10aHJlYWQtMyAge30KK0RFVi10aHJlYWQtMCAge30KK0RFVi10aHJlYWQtMiAge30KK1tUaW1l IE4rMl0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCitDUFUtdGhyZWFkLTAgIHtDT1dfc3RlcDE6IHt1cGRhdGUgcGFnZSB0 YWJsZSB0byBwb2ludCB0byBuZXcgcGFnZSBmb3IgYWRkckF9fQorQ1BVLXRocmVhZC0xICB7Q09X X3N0ZXAxOiB7dXBkYXRlIHBhZ2UgdGFibGUgdG8gcG9pbnQgdG8gbmV3IHBhZ2UgZm9yIGFkZHJC fX0KK0NQVS10aHJlYWQtMiAge30KK0NQVS10aHJlYWQtMyAge30KK0RFVi10aHJlYWQtMCAge30K K0RFVi10aHJlYWQtMiAge30KK1tUaW1lIE4rM10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitDUFUtdGhyZWFkLTAgIHtw cmVlbXB0ZWR9CitDUFUtdGhyZWFkLTEgIHtwcmVlbXB0ZWR9CitDUFUtdGhyZWFkLTIgIHt3cml0 ZSB0byBhZGRyQSB3aGljaCBpcyBhIHdyaXRlIHRvIG5ldyBwYWdlfQorQ1BVLXRocmVhZC0zICB7 fQorREVWLXRocmVhZC0wICB7fQorREVWLXRocmVhZC0yICB7fQorW1RpbWUgTiszXSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK0NQVS10aHJlYWQtMCAge3ByZWVtcHRlZH0KK0NQVS10aHJlYWQtMSAge3ByZWVtcHRlZH0K K0NQVS10aHJlYWQtMiAge30KK0NQVS10aHJlYWQtMyAge3dyaXRlIHRvIGFkZHJCIHdoaWNoIGlz IGEgd3JpdGUgdG8gbmV3IHBhZ2V9CitERVYtdGhyZWFkLTAgIHt9CitERVYtdGhyZWFkLTIgIHt9 CitbVGltZSBOKzRdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ1BVLXRocmVhZC0wICB7cHJlZW1wdGVkfQorQ1BVLXRo cmVhZC0xICB7Q09XX3N0ZXAzOiB7bW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKGFk ZHJCKX19CitDUFUtdGhyZWFkLTIgIHt9CitDUFUtdGhyZWFkLTMgIHt9CitERVYtdGhyZWFkLTAg IHt9CitERVYtdGhyZWFkLTIgIHt9CitbVGltZSBOKzVdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQ1BVLXRocmVhZC0w ICB7cHJlZW1wdGVkfQorQ1BVLXRocmVhZC0xICB7fQorQ1BVLXRocmVhZC0yICB7fQorQ1BVLXRo cmVhZC0zICB7fQorREVWLXRocmVhZC0wICB7cmVhZCBhZGRyQSBmcm9tIG9sZCBwYWdlfQorREVW LXRocmVhZC0yICB7cmVhZCBhZGRyQiBmcm9tIG5ldyBwYWdlfQorCitTbyBoZXJlIGJlY2F1c2Ug YXQgdGltZSBOKzIgdGhlIGNsZWFyIHBhZ2UgdGFibGUgZW50cnkgd2FzIG5vdCBwYWlyIHdpdGgg YQorbm90aWZpY2F0aW9uIHRvIGludmFsaWRhdGUgdGhlIHNlY29uZGFyeSBUTEIsIHRoZSBkZXZp Y2Ugc2VlIHRoZSBuZXcgdmFsdWUgZm9yCithZGRyQiBiZWZvcmUgc2VpbmcgdGhlIG5ldyB2YWx1 ZSBmb3IgYWRkckEuIFRoaXMgYnJlYWsgdG90YWwgbWVtb3J5IG9yZGVyaW5nCitmb3IgdGhlIGRl dmljZS4KKworV2hlbiBjaGFuZ2luZyBhIHB0ZSB0byB3cml0ZSBwcm90ZWN0IG9yIHRvIHBvaW50 IHRvIGEgbmV3IHdyaXRlIHByb3RlY3RlZCBwYWdlCit3aXRoIHNhbWUgY29udGVudCAoS1NNKSBp dCBpcyBmaW5lIHRvIGRlbGF5IHRoZSBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZQorY2Fs bCB0byBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQoKSBvdXRzaWRlIHRoZSBwYWdl IHRhYmxlIGxvY2suIFRoaXMKK2lzIHRydWUgZXZlbiBpZiB0aGUgdGhyZWFkIGRvaW5nIHRoZSBw YWdlIHRhYmxlIHVwZGF0ZSBpcyBwcmVlbXB0ZWQgcmlnaHQgYWZ0ZXIKK3JlbGVhc2luZyBwYWdl IHRhYmxlIGxvY2sgYnV0IGJlZm9yZSBjYWxsIG1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3Jhbmdl X2VuZCgpLgpkaWZmIC0tZ2l0IGEvZnMvZGF4LmMgYi9mcy9kYXguYwppbmRleCBmM2E0NGE3YzE0 YjMuLjllYzc5NzQyNGU0ZiAxMDA2NDQKLS0tIGEvZnMvZGF4LmMKKysrIGIvZnMvZGF4LmMKQEAg LTYxNCw2ICs2MTQsMTMgQEAgc3RhdGljIHZvaWQgZGF4X21hcHBpbmdfZW50cnlfbWtjbGVhbihz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJaWYgKGZvbGxvd19wdGVfcG1kKHZtYS0+ dm1fbW0sIGFkZHJlc3MsICZzdGFydCwgJmVuZCwgJnB0ZXAsICZwbWRwLCAmcHRsKSkKIAkJCWNv bnRpbnVlOwogCisJCS8qCisJCSAqIE5vIG5lZWQgdG8gY2FsbCBtbXVfbm90aWZpZXJfaW52YWxp ZGF0ZV9yYW5nZSgpIGFzIHdlIGFyZQorCQkgKiBkb3duZ3JhZGluZyBwYWdlIHRhYmxlIHByb3Rl Y3Rpb24gbm90IGNoYW5naW5nIGl0IHRvIHBvaW50CisJCSAqIHRvIGEgbmV3IHBhZ2UuCisJCSAq CisJCSAqIFNlZSBEb2N1bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKKwkJICovCiAJCWlm IChwbWRwKSB7CiAjaWZkZWYgQ09ORklHX0ZTX0RBWF9QTUQKIAkJCXBtZF90IHBtZDsKQEAgLTYy OCw3ICs2MzUsNiBAQCBzdGF0aWMgdm9pZCBkYXhfbWFwcGluZ19lbnRyeV9ta2NsZWFuKHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJcG1kID0gcG1kX3dycHJvdGVjdChwbWQpOwog CQkJcG1kID0gcG1kX21rY2xlYW4ocG1kKTsKIAkJCXNldF9wbWRfYXQodm1hLT52bV9tbSwgYWRk cmVzcywgcG1kcCwgcG1kKTsKLQkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKHZtYS0+ dm1fbW0sIHN0YXJ0LCBlbmQpOwogdW5sb2NrX3BtZDoKIAkJCXNwaW5fdW5sb2NrKHB0bCk7CiAj ZW5kaWYKQEAgLTY0Myw3ICs2NDksNiBAQCBzdGF0aWMgdm9pZCBkYXhfbWFwcGluZ19lbnRyeV9t a2NsZWFuKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJcHRlID0gcHRlX3dycHJv dGVjdChwdGUpOwogCQkJcHRlID0gcHRlX21rY2xlYW4ocHRlKTsKIAkJCXNldF9wdGVfYXQodm1h LT52bV9tbSwgYWRkcmVzcywgcHRlcCwgcHRlKTsKLQkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRl X3JhbmdlKHZtYS0+dm1fbW0sIHN0YXJ0LCBlbmQpOwogdW5sb2NrX3B0ZToKIAkJCXB0ZV91bm1h cF91bmxvY2socHRlcCwgcHRsKTsKIAkJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbXVf bm90aWZpZXIuaCBiL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVyLmgKaW5kZXggNjg2NmU4MTI2 OTgyLi40OWM5MjVjOTZiOGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW11X25vdGlmaWVy LmgKKysrIGIvaW5jbHVkZS9saW51eC9tbXVfbm90aWZpZXIuaApAQCAtMTU1LDcgKzE1NSw4IEBA IHN0cnVjdCBtbXVfbm90aWZpZXJfb3BzIHsKIAkgKiBzaGFyZWQgcGFnZS10YWJsZXMsIGl0IG5v dCBuZWNlc3NhcnkgdG8gaW1wbGVtZW50IHRoZQogCSAqIGludmFsaWRhdGVfcmFuZ2Vfc3RhcnQo KS9lbmQoKSBub3RpZmllcnMsIGFzCiAJICogaW52YWxpZGF0ZV9yYW5nZSgpIGFscmVhZCBjYXRj aGVzIHRoZSBwb2ludHMgaW4gdGltZSB3aGVuIGFuCi0JICogZXh0ZXJuYWwgVExCIHJhbmdlIG5l ZWRzIHRvIGJlIGZsdXNoZWQuCisJICogZXh0ZXJuYWwgVExCIHJhbmdlIG5lZWRzIHRvIGJlIGZs dXNoZWQuIEZvciBtb3JlIGluIGRlcHRoCisJICogZGlzY3Vzc2lvbiBvbiB0aGlzIHNlZSBEb2N1 bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKIAkgKgogCSAqIFRoZSBpbnZhbGlkYXRlX3Jh bmdlKCkgZnVuY3Rpb24gaXMgY2FsbGVkIHVuZGVyIHRoZSBwdGwKIAkgKiBzcGluLWxvY2sgYW5k IG5vdCBhbGxvd2VkIHRvIHNsZWVwLgpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21t L2h1Z2VfbWVtb3J5LmMKaW5kZXggYzAzN2QzZDM0OTUwLi5mZjViYzY0N2I1MWQgMTAwNjQ0Ci0t LSBhL21tL2h1Z2VfbWVtb3J5LmMKKysrIGIvbW0vaHVnZV9tZW1vcnkuYwpAQCAtMTE4Niw4ICsx MTg2LDE1IEBAIHN0YXRpYyBpbnQgZG9faHVnZV9wbWRfd3BfcGFnZV9mYWxsYmFjayhzdHJ1Y3Qg dm1fZmF1bHQgKnZtZiwgcG1kX3Qgb3JpZ19wbWQsCiAJCWdvdG8gb3V0X2ZyZWVfcGFnZXM7CiAJ Vk1fQlVHX09OX1BBR0UoIVBhZ2VIZWFkKHBhZ2UpLCBwYWdlKTsKIAorCS8qCisJICogTGVhdmUg cG1kIGVtcHR5IHVudGlsIHB0ZSBpcyBmaWxsZWQgbm90ZSB3ZSBtdXN0IG5vdGlmeSBoZXJlIGFz CisJICogY29uY3VycmVudCBDUFUgdGhyZWFkIG1pZ2h0IHdyaXRlIHRvIG5ldyBwYWdlIGJlZm9y ZSB0aGUgY2FsbCB0bworCSAqIG1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZCgpIGhh cHBlbnMgd2hpY2ggY2FuIGxlYWQgdG8gYQorCSAqIGRldmljZSBzZWVpbmcgbWVtb3J5IHdyaXRl IGluIGRpZmZlcmVudCBvcmRlciB0aGFuIENQVS4KKwkgKgorCSAqIFNlZSBEb2N1bWVudGF0aW9u L3ZtL21tdV9ub3RpZmllci50eHQKKwkgKi8KIAlwbWRwX2h1Z2VfY2xlYXJfZmx1c2hfbm90aWZ5 KHZtYSwgaGFkZHIsIHZtZi0+cG1kKTsKLQkvKiBsZWF2ZSBwbWQgZW1wdHkgdW50aWwgcHRlIGlz IGZpbGxlZCAqLwogCiAJcGd0YWJsZSA9IHBndGFibGVfdHJhbnNfaHVnZV93aXRoZHJhdyh2bWEt PnZtX21tLCB2bWYtPnBtZCk7CiAJcG1kX3BvcHVsYXRlKHZtYS0+dm1fbW0sICZfcG1kLCBwZ3Rh YmxlKTsKQEAgLTIwMjYsOCArMjAzMywxNSBAQCBzdGF0aWMgdm9pZCBfX3NwbGl0X2h1Z2VfemVy b19wYWdlX3BtZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAlwbWRfdCBfcG1kOwogCWlu dCBpOwogCi0JLyogbGVhdmUgcG1kIGVtcHR5IHVudGlsIHB0ZSBpcyBmaWxsZWQgKi8KLQlwbWRw X2h1Z2VfY2xlYXJfZmx1c2hfbm90aWZ5KHZtYSwgaGFkZHIsIHBtZCk7CisJLyoKKwkgKiBMZWF2 ZSBwbWQgZW1wdHkgdW50aWwgcHRlIGlzIGZpbGxlZCBub3RlIHRoYXQgaXQgaXMgZmluZSB0byBk ZWxheQorCSAqIG5vdGlmaWNhdGlvbiB1bnRpbCBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5n ZV9lbmQoKSBhcyB3ZSBhcmUKKwkgKiByZXBsYWNpbmcgYSB6ZXJvIHBtZCB3cml0ZSBwcm90ZWN0 ZWQgcGFnZSB3aXRoIGEgemVybyBwdGUgd3JpdGUKKwkgKiBwcm90ZWN0ZWQgcGFnZS4KKwkgKgor CSAqIFNlZSBEb2N1bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKKwkgKi8KKwlwbWRwX2h1 Z2VfY2xlYXJfZmx1c2godm1hLCBoYWRkciwgcG1kKTsKIAogCXBndGFibGUgPSBwZ3RhYmxlX3Ry YW5zX2h1Z2Vfd2l0aGRyYXcobW0sIHBtZCk7CiAJcG1kX3BvcHVsYXRlKG1tLCAmX3BtZCwgcGd0 YWJsZSk7CmRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMgYi9tbS9odWdldGxiLmMKaW5kZXggMTc2 OGVmYTRjNTAxLi42M2E2M2YxYjUzNmMgMTAwNjQ0Ci0tLSBhL21tL2h1Z2V0bGIuYworKysgYi9t bS9odWdldGxiLmMKQEAgLTMyNTQsOSArMzI1NCwxNCBAQCBpbnQgY29weV9odWdldGxiX3BhZ2Vf cmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqZHN0LCBzdHJ1Y3QgbW1fc3RydWN0ICpzcmMsCiAJCQlz ZXRfaHVnZV9zd2FwX3B0ZV9hdChkc3QsIGFkZHIsIGRzdF9wdGUsIGVudHJ5LCBzeik7CiAJCX0g ZWxzZSB7CiAJCQlpZiAoY293KSB7CisJCQkJLyoKKwkJCQkgKiBObyBuZWVkIHRvIG5vdGlmeSBh cyB3ZSBhcmUgZG93bmdyYWRpbmcgcGFnZQorCQkJCSAqIHRhYmxlIHByb3RlY3Rpb24gbm90IGNo YW5naW5nIGl0IHRvIHBvaW50CisJCQkJICogdG8gYSBuZXcgcGFnZS4KKwkJCQkgKgorCQkJCSAq IFNlZSBEb2N1bWVudGF0aW9uL3ZtL21tdV9ub3RpZmllci50eHQKKwkJCQkgKi8KIAkJCQlodWdl X3B0ZXBfc2V0X3dycHJvdGVjdChzcmMsIGFkZHIsIHNyY19wdGUpOwotCQkJCW1tdV9ub3RpZmll cl9pbnZhbGlkYXRlX3JhbmdlKHNyYywgbW11bl9zdGFydCwKLQkJCQkJCQkJICAgbW11bl9lbmQp OwogCQkJfQogCQkJZW50cnkgPSBodWdlX3B0ZXBfZ2V0KHNyY19wdGUpOwogCQkJcHRlcGFnZSA9 IHB0ZV9wYWdlKGVudHJ5KTsKQEAgLTQyODgsNyArNDI5MywxMiBAQCB1bnNpZ25lZCBsb25nIGh1 Z2V0bGJfY2hhbmdlX3Byb3RlY3Rpb24oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJICog YW5kIHRoYXQgcGFnZSB0YWJsZSBiZSByZXVzZWQgYW5kIGZpbGxlZCB3aXRoIGp1bmsuCiAJICov CiAJZmx1c2hfaHVnZXRsYl90bGJfcmFuZ2Uodm1hLCBzdGFydCwgZW5kKTsKLQltbXVfbm90aWZp ZXJfaW52YWxpZGF0ZV9yYW5nZShtbSwgc3RhcnQsIGVuZCk7CisJLyoKKwkgKiBObyBuZWVkIHRv IGNhbGwgbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2UoKSB3ZSBhcmUgZG93bmdyYWRpbmcK KwkgKiBwYWdlIHRhYmxlIHByb3RlY3Rpb24gbm90IGNoYW5naW5nIGl0IHRvIHBvaW50IHRvIGEg bmV3IHBhZ2UuCisJICoKKwkgKiBTZWUgRG9jdW1lbnRhdGlvbi92bS9tbXVfbm90aWZpZXIudHh0 CisJICovCiAJaV9tbWFwX3VubG9ja193cml0ZSh2bWEtPnZtX2ZpbGUtPmZfbWFwcGluZyk7CiAJ bW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKG1tLCBzdGFydCwgZW5kKTsKIApkaWZm IC0tZ2l0IGEvbW0va3NtLmMgYi9tbS9rc20uYwppbmRleCA2Y2I2MGY0NmNjZTUuLmJlOGY0NTc2 Zjg0MiAxMDA2NDQKLS0tIGEvbW0va3NtLmMKKysrIGIvbW0va3NtLmMKQEAgLTEwNTIsOCArMTA1 MiwxMyBAQCBzdGF0aWMgaW50IHdyaXRlX3Byb3RlY3RfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCSAqIFNvIHdlIGNsZWFyIHRoZSBwdGUgYW5k IGZsdXNoIHRoZSB0bGIgYmVmb3JlIHRoZSBjaGVjawogCQkgKiB0aGlzIGFzc3VyZSB1cyB0aGF0 IG5vIE9fRElSRUNUIGNhbiBoYXBwZW4gYWZ0ZXIgdGhlIGNoZWNrCiAJCSAqIG9yIGluIHRoZSBt aWRkbGUgb2YgdGhlIGNoZWNrLgorCQkgKgorCQkgKiBObyBuZWVkIHRvIG5vdGlmeSBhcyB3ZSBh cmUgZG93bmdyYWRpbmcgcGFnZSB0YWJsZSB0byByZWFkCisJCSAqIG9ubHkgbm90IGNoYW5naW5n IGl0IHRvIHBvaW50IHRvIGEgbmV3IHBhZ2UuCisJCSAqCisJCSAqIFNlZSBEb2N1bWVudGF0aW9u L3ZtL21tdV9ub3RpZmllci50eHQKIAkJICovCi0JCWVudHJ5ID0gcHRlcF9jbGVhcl9mbHVzaF9u b3RpZnkodm1hLCBwdm13LmFkZHJlc3MsIHB2bXcucHRlKTsKKwkJZW50cnkgPSBwdGVwX2NsZWFy X2ZsdXNoKHZtYSwgcHZtdy5hZGRyZXNzLCBwdm13LnB0ZSk7CiAJCS8qCiAJCSAqIENoZWNrIHRo YXQgbm8gT19ESVJFQ1Qgb3Igc2ltaWxhciBJL08gaXMgaW4gcHJvZ3Jlc3Mgb24gdGhlCiAJCSAq IHBhZ2UKQEAgLTExMzYsNyArMTE0MSwxMyBAQCBzdGF0aWMgaW50IHJlcGxhY2VfcGFnZShzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJfQogCiAJZmx1c2hf Y2FjaGVfcGFnZSh2bWEsIGFkZHIsIHB0ZV9wZm4oKnB0ZXApKTsKLQlwdGVwX2NsZWFyX2ZsdXNo X25vdGlmeSh2bWEsIGFkZHIsIHB0ZXApOworCS8qCisJICogTm8gbmVlZCB0byBub3RpZnkgYXMg d2UgYXJlIHJlcGxhY2luZyBhIHJlYWQgb25seSBwYWdlIHdpdGggYW5vdGhlcgorCSAqIHJlYWQg b25seSBwYWdlIHdpdGggdGhlIHNhbWUgY29udGVudC4KKwkgKgorCSAqIFNlZSBEb2N1bWVudGF0 aW9uL3ZtL21tdV9ub3RpZmllci50eHQKKwkgKi8KKwlwdGVwX2NsZWFyX2ZsdXNoKHZtYSwgYWRk ciwgcHRlcCk7CiAJc2V0X3B0ZV9hdF9ub3RpZnkobW0sIGFkZHIsIHB0ZXAsIG5ld3B0ZSk7CiAK IAlwYWdlX3JlbW92ZV9ybWFwKHBhZ2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL21tL3JtYXAuYyBi L21tL3JtYXAuYwppbmRleCAwNjE4MjYyNzg1MjAuLjZiNWEwZjIxOWFjMCAxMDA2NDQKLS0tIGEv bW0vcm1hcC5jCisrKyBiL21tL3JtYXAuYwpAQCAtOTM3LDEwICs5MzcsMTUgQEAgc3RhdGljIGJv b2wgcGFnZV9ta2NsZWFuX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEsCiAjZW5kaWYKIAkJfQogCi0JCWlmIChyZXQpIHsKLQkJCW1tdV9ub3RpZmllcl9p bnZhbGlkYXRlX3JhbmdlKHZtYS0+dm1fbW0sIGNzdGFydCwgY2VuZCk7CisJCS8qCisJCSAqIE5v IG5lZWQgdG8gY2FsbCBtbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZSgpIGFzIHdlIGFyZQor CQkgKiBkb3duZ3JhZGluZyBwYWdlIHRhYmxlIHByb3RlY3Rpb24gbm90IGNoYW5naW5nIGl0IHRv IHBvaW50CisJCSAqIHRvIGEgbmV3IHBhZ2UuCisJCSAqCisJCSAqIFNlZSBEb2N1bWVudGF0aW9u L3ZtL21tdV9ub3RpZmllci50eHQKKwkJICovCisJCWlmIChyZXQpCiAJCQkoKmNsZWFuZWQpKys7 Ci0JCX0KIAl9CiAKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9lbmQodm1hLT52bV9t bSwgc3RhcnQsIGVuZCk7CkBAIC0xNDI0LDYgKzE0MjksMTAgQEAgc3RhdGljIGJvb2wgdHJ5X3Rv X3VubWFwX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEs CiAJCQlpZiAocHRlX3NvZnRfZGlydHkocHRldmFsKSkKIAkJCQlzd3BfcHRlID0gcHRlX3N3cF9t a3NvZnRfZGlydHkoc3dwX3B0ZSk7CiAJCQlzZXRfcHRlX2F0KG1tLCBwdm13LmFkZHJlc3MsIHB2 bXcucHRlLCBzd3BfcHRlKTsKKwkJCS8qCisJCQkgKiBObyBuZWVkIHRvIGludmFsaWRhdGUgaGVy ZSBpdCB3aWxsIHN5bmNocm9uaXplIG9uCisJCQkgKiBhZ2FpbnN0IHRoZSBzcGVjaWFsIHN3YXAg bWlncmF0aW9uIHB0ZS4KKwkJCSAqLwogCQkJZ290byBkaXNjYXJkOwogCQl9CiAKQEAgLTE0ODEs NiArMTQ5MCw5IEBAIHN0YXRpYyBib29sIHRyeV90b191bm1hcF9vbmUoc3RydWN0IHBhZ2UgKnBh Z2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQkJICogd2lsbCB0YWtlIGNhcmUgb2Yg dGhlIHJlc3QuCiAJCQkgKi8KIAkJCWRlY19tbV9jb3VudGVyKG1tLCBtbV9jb3VudGVyKHBhZ2Up KTsKKwkJCS8qIFdlIGhhdmUgdG8gaW52YWxpZGF0ZSBhcyB3ZSBjbGVhcmVkIHRoZSBwdGUgKi8K KwkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKG1tLCBhZGRyZXNzLAorCQkJCQkJICAg ICAgYWRkcmVzcyArIFBBR0VfU0laRSk7CiAJCX0gZWxzZSBpZiAoSVNfRU5BQkxFRChDT05GSUdf TUlHUkFUSU9OKSAmJgogCQkJCShmbGFncyAmIChUVFVfTUlHUkFUSU9OfFRUVV9TUExJVF9GUkVF WkUpKSkgewogCQkJc3dwX2VudHJ5X3QgZW50cnk7CkBAIC0xNDk2LDYgKzE1MDgsMTAgQEAgc3Rh dGljIGJvb2wgdHJ5X3RvX3VubWFwX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEsCiAJCQlpZiAocHRlX3NvZnRfZGlydHkocHRldmFsKSkKIAkJCQlzd3Bf cHRlID0gcHRlX3N3cF9ta3NvZnRfZGlydHkoc3dwX3B0ZSk7CiAJCQlzZXRfcHRlX2F0KG1tLCBh ZGRyZXNzLCBwdm13LnB0ZSwgc3dwX3B0ZSk7CisJCQkvKgorCQkJICogTm8gbmVlZCB0byBpbnZh bGlkYXRlIGhlcmUgaXQgd2lsbCBzeW5jaHJvbml6ZSBvbgorCQkJICogYWdhaW5zdCB0aGUgc3Bl Y2lhbCBzd2FwIG1pZ3JhdGlvbiBwdGUuCisJCQkgKi8KIAkJfSBlbHNlIGlmIChQYWdlQW5vbihw YWdlKSkgewogCQkJc3dwX2VudHJ5X3QgZW50cnkgPSB7IC52YWwgPSBwYWdlX3ByaXZhdGUoc3Vi cGFnZSkgfTsKIAkJCXB0ZV90IHN3cF9wdGU7CkBAIC0xNTA3LDYgKzE1MjMsOCBAQCBzdGF0aWMg Ym9vbCB0cnlfdG9fdW5tYXBfb25lKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSwKIAkJCQlXQVJOX09OX09OQ0UoMSk7CiAJCQkJcmV0ID0gZmFsc2U7CiAJCQkJ LyogV2UgaGF2ZSB0byBpbnZhbGlkYXRlIGFzIHdlIGNsZWFyZWQgdGhlIHB0ZSAqLworCQkJCW1t dV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKG1tLCBhZGRyZXNzLAorCQkJCQkJCWFkZHJlc3Mg KyBQQUdFX1NJWkUpOwogCQkJCXBhZ2Vfdm1hX21hcHBlZF93YWxrX2RvbmUoJnB2bXcpOwogCQkJ CWJyZWFrOwogCQkJfQpAQCAtMTUxNCw2ICsxNTMyLDkgQEAgc3RhdGljIGJvb2wgdHJ5X3RvX3Vu bWFwX29uZShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJ CQkvKiBNQURWX0ZSRUUgcGFnZSBjaGVjayAqLwogCQkJaWYgKCFQYWdlU3dhcEJhY2tlZChwYWdl KSkgewogCQkJCWlmICghUGFnZURpcnR5KHBhZ2UpKSB7CisJCQkJCS8qIEludmFsaWRhdGUgYXMg d2UgY2xlYXJlZCB0aGUgcHRlICovCisJCQkJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3Jhbmdl KG1tLAorCQkJCQkJYWRkcmVzcywgYWRkcmVzcyArIFBBR0VfU0laRSk7CiAJCQkJCWRlY19tbV9j b3VudGVyKG1tLCBNTV9BTk9OUEFHRVMpOwogCQkJCQlnb3RvIGRpc2NhcmQ7CiAJCQkJfQpAQCAt MTU0NywxMyArMTU2OCwzOSBAQCBzdGF0aWMgYm9vbCB0cnlfdG9fdW5tYXBfb25lKHN0cnVjdCBw YWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAkJCWlmIChwdGVfc29mdF9k aXJ0eShwdGV2YWwpKQogCQkJCXN3cF9wdGUgPSBwdGVfc3dwX21rc29mdF9kaXJ0eShzd3BfcHRl KTsKIAkJCXNldF9wdGVfYXQobW0sIGFkZHJlc3MsIHB2bXcucHRlLCBzd3BfcHRlKTsKLQkJfSBl bHNlCisJCQkvKiBJbnZhbGlkYXRlIGFzIHdlIGNsZWFyZWQgdGhlIHB0ZSAqLworCQkJbW11X25v dGlmaWVyX2ludmFsaWRhdGVfcmFuZ2UobW0sIGFkZHJlc3MsCisJCQkJCQkgICAgICBhZGRyZXNz ICsgUEFHRV9TSVpFKTsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBXZSBzaG91bGQgbm90IG5l ZWQgdG8gbm90aWZ5IGhlcmUgYXMgd2UgcmVhY2ggdGhpcworCQkJICogY2FzZSBvbmx5IGZyb20g ZnJlZXplX3BhZ2UoKSBpdHNlbGYgb25seSBjYWxsIGZyb20KKwkJCSAqIHNwbGl0X2h1Z2VfcGFn ZV90b19saXN0KCkgc28gZXZlcnl0aGluZyBiZWxvdyBtdXN0CisJCQkgKiBiZSB0cnVlOgorCQkJ ICogICAtIHBhZ2UgaXMgbm90IGFub255bW91cworCQkJICogICAtIHBhZ2UgaXMgbG9ja2VkCisJ CQkgKgorCQkJICogU28gYXMgaXQgaXMgYSBsb2NrZWQgZmlsZSBiYWNrIHBhZ2UgdGh1cyBpdCBj YW4gbm90CisJCQkgKiBiZSByZW1vdmUgZnJvbSB0aGUgcGFnZSBjYWNoZSBhbmQgcmVwbGFjZSBi eSBhIG5ldworCQkJICogcGFnZSBiZWZvcmUgbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2Vf ZW5kIHNvIG5vCisJCQkgKiBjb25jdXJyZW50IHRocmVhZCBtaWdodCB1cGRhdGUgaXRzIHBhZ2Ug dGFibGUgdG8KKwkJCSAqIHBvaW50IGF0IG5ldyBwYWdlIHdoaWxlIGEgZGV2aWNlIHN0aWxsIGlz IHVzaW5nIHRoaXMKKwkJCSAqIHBhZ2UuCisJCQkgKgorCQkJICogU2VlIERvY3VtZW50YXRpb24v dm0vbW11X25vdGlmaWVyLnR4dAorCQkJICovCiAJCQlkZWNfbW1fY291bnRlcihtbSwgbW1fY291 bnRlcl9maWxlKHBhZ2UpKTsKKwkJfQogZGlzY2FyZDoKKwkJLyoKKwkJICogTm8gbmVlZCB0byBj YWxsIG1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlKCkgaXQgaGFzIGJlCisJCSAqIGRvbmUg YWJvdmUgZm9yIGFsbCBjYXNlcyByZXF1aXJpbmcgaXQgdG8gaGFwcGVuIHVuZGVyIHBhZ2UKKwkJ ICogdGFibGUgbG9jayBiZWZvcmUgbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2VfZW5kKCkK KwkJICoKKwkJICogU2VlIERvY3VtZW50YXRpb24vdm0vbW11X25vdGlmaWVyLnR4dAorCQkgKi8K IAkJcGFnZV9yZW1vdmVfcm1hcChzdWJwYWdlLCBQYWdlSHVnZShwYWdlKSk7CiAJCXB1dF9wYWdl KHBhZ2UpOwotCQltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZShtbSwgYWRkcmVzcywKLQkJ CQkJICAgICAgYWRkcmVzcyArIFBBR0VfU0laRSk7CiAJfQogCiAJbW11X25vdGlmaWVyX2ludmFs aWRhdGVfcmFuZ2VfZW5kKHZtYS0+dm1fbW0sIHN0YXJ0LCBlbmQpOwotLSAKMi4xMy42CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppb21tdSBtYWlsaW5n IGxpc3QKaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51 eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vaW9tbXU=