From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3] drm/i915: Convert breadcrumbs spinlock to be irqsafe Date: Fri, 28 Oct 2016 13:13:38 +0100 Message-ID: <20161028121338.12346-1-chris@chris-wilson.co.uk> References: <20161027161036.5443-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 21BEB6EB98 for ; Fri, 28 Oct 2016 12:13:50 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id m83so7190135wmc.0 for ; Fri, 28 Oct 2016 05:13:50 -0700 (PDT) In-Reply-To: <20161027161036.5443-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIGJyZWFkY3J1bWJzIGFyZSBhYm91dCB0byBiZSB1c2VkIGZyb20gd2l0aGluIElSUSBjb250 ZXh0IHNlY3Rpb25zCihlLmcuIG5vdXZlYXUgc2lnbmFscyBhIGZlbmNlIGZyb20gYW4gaW50ZXJy dXB0IGhhbmRsZXIgY2F1c2luZyB1cyB0bwpzdWJtaXQgYSBuZXcgcmVxdWVzdCkgYW5kL29yIGZy b20gYm90dG9tLWhhbGYgdGFza2xldHMgKGkuZS4KaW50ZWxfbHJjX2lycV9oYW5kbGVyKSwgdGhl cmVmb3JlIHdlIG5lZWQgdG8gZW1wbG95IHRoZSBpcnFzYWZlIHNwaW5sb2NrCnZhcmlhbnRzLgoK Rm9yIGV4YW1wbGUsIGRlZmVycmluZyB0aGUgcmVxdWVzdCBzdWJtaXNzaW9uIHRvIHRoZQppbnRl bF9scmNfaXJxX2hhbmRsZXIgZ2VuZXJhdGVzIHRoaXMgdHJhY2U6CgpbICAgNjYuMzg4NjM5XSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KWyAgIDY2LjM4ODY1MF0gWyBJTkZPOiBp bmNvbnNpc3RlbnQgbG9jayBzdGF0ZSBdClsgICA2Ni4zODg2NjNdIDQuOS4wLXJjMisgIzU2IE5v dCB0YWludGVkClsgICA2Ni4zODg2NzJdIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpbICAgNjYuMzg4NjgyXSBpbmNvbnNpc3RlbnQge1NPRlRJUlEtT04tV30gLT4ge0lOLVNPRlRJ UlEtV30gdXNhZ2UuClsgICA2Ni4zODg2OTVdIHN3YXBwZXIvMS8wIFtIQzBbMF06U0MxWzFdOkhF MDpTRTBdIHRha2VzOgpbICAgNjYuMzg4NzA2XSAgKCYoJmItPmxvY2spLT5ybG9jayl7Ky4/Li4u fSAsIGF0OiBbPGZmZmZmZmZmODE0MDFjODg+XSBpbnRlbF9lbmdpbmVfZW5hYmxlX3NpZ25hbGlu ZysweDc4LzB4MTUwClsgICA2Ni4zODg3NjFdIHtTT0ZUSVJRLU9OLVd9IHN0YXRlIHdhcyByZWdp c3RlcmVkIGF0OgpbICAgNjYuMzg4NzcyXSAgIFsgICA2Ni4zODg3ODNdIFs8ZmZmZmZmZmY4MTBi ZDg0Mj5dIF9fbG9ja19hY3F1aXJlKzB4NjgyLzB4MTg3MApbICAgNjYuMzg4Nzk1XSAgIFsgICA2 Ni4zODg4MDNdIFs8ZmZmZmZmZmY4MTBiZWRiYz5dIGxvY2tfYWNxdWlyZSsweDZjLzB4YjAKWyAg IDY2LjM4ODgxNF0gICBbICAgNjYuMzg4ODI0XSBbPGZmZmZmZmZmODE2MTc1M2E+XSBfcmF3X3Nw aW5fbG9jaysweDJhLzB4NDAKWyAgIDY2LjM4ODgzNV0gICBbICAgNjYuMzg4ODQ1XSBbPGZmZmZm ZmZmODE0MDFlNDE+XSBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMrMHgyMS8weGIwClsg ICA2Ni4zODg4NTddICAgWyAgIDY2LjM4ODg2Nl0gWzxmZmZmZmZmZjgxNDAzYWU3Pl0gZ2VuOF9p bml0X2NvbW1vbl9yaW5nKzB4NjcvMHgxMDAKWyAgIDY2LjM4ODg3OF0gICBbICAgNjYuMzg4ODg3 XSBbPGZmZmZmZmZmODE0MDNiOTI+XSBnZW44X2luaXRfcmVuZGVyX3JpbmcrMHgxMi8weDYwClsg ICA2Ni4zODg5MDNdICAgWyAgIDY2LjM4ODkxMl0gWzxmZmZmZmZmZjgxM2Y4NzA3Pl0gaTkxNV9n ZW1faW5pdF9odysweGY3LzB4MmEwClsgICA2Ni4zODg5MjddICAgWyAgIDY2LjM4ODkzNl0gWzxm ZmZmZmZmZjgxM2Y4OTliPl0gaTkxNV9nZW1faW5pdCsweGJiLzB4ZjAKWyAgIDY2LjM4ODk1MF0g ICBbICAgNjYuMzg4OTU5XSBbPGZmZmZmZmZmODEzYjQ5ODA+XSBpOTE1X2RyaXZlcl9sb2FkKzB4 N2UwLzB4MTMzMApbICAgNjYuMzg4OTc4XSAgIFsgICA2Ni4zODg5ODhdIFs8ZmZmZmZmZmY4MTNj MDlkOD5dIGk5MTVfcGNpX3Byb2JlKzB4MjgvMHg0MApbICAgNjYuMzg5MDAzXSAgIFsgICA2Ni4z ODkwMTNdIFs8ZmZmZmZmZmY4MTJmYTBkYj5dIHBjaV9kZXZpY2VfcHJvYmUrMHg4Yi8weGYwClsg ICA2Ni4zODkwMjhdICAgWyAgIDY2LjM4OTAzN10gWzxmZmZmZmZmZjgxNDc3MzdlPl0gZHJpdmVy X3Byb2JlX2RldmljZSsweDIxZS8weDQzMApbICAgNjYuMzg5MDU2XSAgIFsgICA2Ni4zODkwNjVd IFs8ZmZmZmZmZmY4MTQ3NzY2ZT5dIF9fZHJpdmVyX2F0dGFjaCsweGRlLzB4ZTAKWyAgIDY2LjM4 OTA4MF0gICBbICAgNjYuMzg5MDkwXSBbPGZmZmZmZmZmODE0NzUxYWQ+XSBidXNfZm9yX2VhY2hf ZGV2KzB4NWQvMHg5MApbICAgNjYuMzg5MTA1XSAgIFsgICA2Ni4zODkxMTNdIFs8ZmZmZmZmZmY4 MTQ3Nzc5OT5dIGRyaXZlcl9hdHRhY2grMHgxOS8weDIwClsgICA2Ni4zODkxMzRdICAgWyAgIDY2 LjM4OTE0NF0gWzxmZmZmZmZmZjgxNDc1Y2VkPl0gYnVzX2FkZF9kcml2ZXIrMHgxNWQvMHgyNjAK WyAgIDY2LjM4OTE1OV0gICBbICAgNjYuMzg5MTY4XSBbPGZmZmZmZmZmODE0NzdlM2I+XSBkcml2 ZXJfcmVnaXN0ZXIrMHg1Yi8weGQwClsgICA2Ni4zODkxODNdICAgWyAgIDY2LjM4OTI4MV0gWzxm ZmZmZmZmZjgxMmZhMTliPl0gX19wY2lfcmVnaXN0ZXJfZHJpdmVyKzB4NWIvMHg2MApbICAgNjYu Mzg5MzAxXSAgIFsgICA2Ni4zODkzMTJdIFs8ZmZmZmZmZmY4MWFlZDMzMz5dIGk5MTVfaW5pdCsw eDNlLzB4NDUKWyAgIDY2LjM4OTMyNl0gICBbICAgNjYuMzg5MzM2XSBbPGZmZmZmZmZmODFhYzJm ZmE+XSBkb19vbmVfaW5pdGNhbGwrMHg4Yi8weDExOApbICAgNjYuMzg5MzUwXSAgIFsgICA2Ni4z ODkzNTldIFs8ZmZmZmZmZmY4MWFjMzIzYT5dIGtlcm5lbF9pbml0X2ZyZWVhYmxlKzB4MWIzLzB4 MjNiClsgICA2Ni4zODkzNzhdICAgWyAgIDY2LjM4OTM4N10gWzxmZmZmZmZmZjgxNjBmYzM5Pl0g a2VybmVsX2luaXQrMHg5LzB4MTAwClsgICA2Ni4zODk0MDJdICAgWyAgIDY2LjM4OTQxMV0gWzxm ZmZmZmZmZjgxNjE4MGU3Pl0gcmV0X2Zyb21fZm9yaysweDI3LzB4NDAKWyAgIDY2LjM4OTQyNl0g aXJxIGV2ZW50IHN0YW1wOiAzMTU4NjUKWyAgIDY2LjM4OTQzOF0gaGFyZGlycXMgbGFzdCAgZW5h YmxlZCBhdCAoMzE1ODY0KTogWzxmZmZmZmZmZjgxNjE3OGYxPl0gX3Jhd19zcGluX3VubG9ja19p cnFyZXN0b3JlKzB4MzEvMHg1MApbICAgNjYuMzg5NDY5XSBoYXJkaXJxcyBsYXN0IGRpc2FibGVk IGF0ICgzMTU4NjUpOiBbPGZmZmZmZmZmODE2MTc2YjM+XSBfcmF3X3NwaW5fbG9ja19pcnFzYXZl KzB4MTMvMHg1MApbICAgNjYuMzg5NDk5XSBzb2Z0aXJxcyBsYXN0ICBlbmFibGVkIGF0ICgzMTU4 MTgpOiBbPGZmZmZmZmZmODEwN2EwNGM+XSBfbG9jYWxfYmhfZW5hYmxlKzB4MWMvMHg1MApbICAg NjYuMzg5NTMwXSBzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0ICgzMTU4MTkpOiBbPGZmZmZmZmZm ODEwN2E1MGU+XSBpcnFfZXhpdCsweGJlLzB4ZDAKWyAgIDY2LjM4OTU1OV0KWyAgIDY2LjM4OTU1 OV0gb3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhpczoKWyAgIDY2LjM4OTU4 MF0gIFBvc3NpYmxlIHVuc2FmZSBsb2NraW5nIHNjZW5hcmlvOgpbICAgNjYuMzg5NTgwXQpbICAg NjYuMzg5NTk4XSAgICAgICAgQ1BVMApbICAgNjYuMzg5NjA5XSAgICAgICAgLS0tLQpbICAgNjYu Mzg5NjIwXSAgIGxvY2soJigmYi0+bG9jayktPnJsb2NrKTsKWyAgIDY2LjM4OTY1MF0gICA8SW50 ZXJydXB0PgpbICAgNjYuMzg5NjYxXSAgICAgbG9jaygmKCZiLT5sb2NrKS0+cmxvY2spOwpbICAg NjYuMzg5NjkwXQpbICAgNjYuMzg5NjkwXSAgKioqIERFQURMT0NLICoqKgpbICAgNjYuMzg5Njkw XQpbICAgNjYuMzg5NzE1XSAyIGxvY2tzIGhlbGQgYnkgc3dhcHBlci8xLzA6ClsgICA2Ni4zODk3 MjhdICAjMDogKCYoJnRsLT5sb2NrKS0+cmxvY2spey4uLS4uLn0sIGF0OiBbPGZmZmZmZmZmODE0 MDNlMDE+XSBpbnRlbF9scmNfaXJxX2hhbmRsZXIrMHgyMDEvMHgzYzAKWyAgIDY2LjM4OTc4NV0g ICMxOiAoJigmcmVxLT5sb2NrKS0+cmxvY2svMSl7Li4tLi4ufSwgYXQ6IFs8ZmZmZmZmZmY4MTNm YzBhZj5dIF9faTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQrMHg4Zi8weDE3MApbICAgNjYuMzg5ODU0 XQpbICAgNjYuMzg5ODU0XSBzdGFjayBiYWNrdHJhY2U6ClsgICA2Ni4zODk5NTldIENQVTogMSBQ SUQ6IDAgQ29tbTogc3dhcHBlci8xIE5vdCB0YWludGVkIDQuOS4wLXJjMisgIzU2ClsgICA2Ni4z ODk5NzZdIEhhcmR3YXJlIG5hbWU6ICAgICAgICAgICAgICAgICAgLyAgICAgICAgLCBCSU9TIFBZ QlNXQ0VMLjg2QS4wMDI3LjIwMTUuMDUwNy4xNzU4IDA1LzA3LzIwMTUKWyAgIDY2LjM4OTk5OV0g IGZmZmY4ODAyN2ZkMDNjNTggZmZmZmZmZmY4MTJiZWFlNSBmZmZmODgwMjc2OTZlNjgwIGZmZmZm ZmZmODIyYWZlMjAKWyAgIDY2LjM5MDAzNl0gIGZmZmY4ODAyN2ZkMDNjYTggZmZmZmZmZmY4MTBi YjQyMCAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAwMDAwMDAwMDAKWyAgIDY2LjM5MDA3MF0gIDAw MDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwNiAwMDAwMDAwMDAwMDAwMDA0IGZmZmY4ODAy NzY5NmVlMTAKWyAgIDY2LjM5MDEwNF0gQ2FsbCBUcmFjZToKWyAgIDY2LjM5MDExN10gIDxJUlE+ ClsgICA2Ni4zOTAxMjhdICBbPGZmZmZmZmZmODEyYmVhZTU+XSBkdW1wX3N0YWNrKzB4NjgvMHg5 MwpbICAgNjYuMzkwMTQ3XSAgWzxmZmZmZmZmZjgxMGJiNDIwPl0gcHJpbnRfdXNhZ2VfYnVnKzB4 MWQwLzB4MWUwClsgICA2Ni4zOTAxNjRdICBbPGZmZmZmZmZmODEwYmI4YTA+XSBtYXJrX2xvY2sr MHg0NzAvMHg0ZjAKWyAgIDY2LjM5MDE4MV0gIFs8ZmZmZmZmZmY4MTBiYTlkMD5dID8gcHJpbnRf c2hvcnRlc3RfbG9ja19kZXBlbmRlbmNpZXMrMHgxYjAvMHgxYjAKWyAgIDY2LjM5MDIwM10gIFs8 ZmZmZmZmZmY4MTBiZDc1ZD5dIF9fbG9ja19hY3F1aXJlKzB4NTlkLzB4MTg3MApbICAgNjYuMzkw MjIxXSAgWzxmZmZmZmZmZjgxMGJlZGJjPl0gbG9ja19hY3F1aXJlKzB4NmMvMHhiMApbICAgNjYu MzkwMjM3XSAgWzxmZmZmZmZmZjgxMGJlZGJjPl0gPyBsb2NrX2FjcXVpcmUrMHg2Yy8weGIwClsg ICA2Ni4zOTAyNTVdICBbPGZmZmZmZmZmODE0MDFjODg+XSA/IGludGVsX2VuZ2luZV9lbmFibGVf c2lnbmFsaW5nKzB4NzgvMHgxNTAKWyAgIDY2LjM5MDI3M10gIFs8ZmZmZmZmZmY4MTYxNzUzYT5d IF9yYXdfc3Bpbl9sb2NrKzB4MmEvMHg0MApbICAgNjYuMzkwMjkxXSAgWzxmZmZmZmZmZjgxNDAx Yzg4Pl0gPyBpbnRlbF9lbmdpbmVfZW5hYmxlX3NpZ25hbGluZysweDc4LzB4MTUwClsgICA2Ni4z OTAzMDldICBbPGZmZmZmZmZmODE0MDFjODg+XSBpbnRlbF9lbmdpbmVfZW5hYmxlX3NpZ25hbGlu ZysweDc4LzB4MTUwClsgICA2Ni4zOTAzMjddICBbPGZmZmZmZmZmODEzZmMxNzA+XSBfX2k5MTVf Z2VtX3JlcXVlc3Rfc3VibWl0KzB4MTUwLzB4MTcwClsgICA2Ni4zOTAzNDVdICBbPGZmZmZmZmZm ODE0MDNlOGI+XSBpbnRlbF9scmNfaXJxX2hhbmRsZXIrMHgyOGIvMHgzYzAKWyAgIDY2LjM5MDM2 M10gIFs8ZmZmZmZmZmY4MTA3OWQ5Nz5dIHRhc2tsZXRfYWN0aW9uKzB4NTcvMHhjMApbICAgNjYu MzkwMzgwXSAgWzxmZmZmZmZmZjgxMDdhMjQ5Pl0gX19kb19zb2Z0aXJxKzB4MTE5LzB4MjQwClsg ICA2Ni4zOTAzOTZdICBbPGZmZmZmZmZmODEwN2E1MGU+XSBpcnFfZXhpdCsweGJlLzB4ZDAKWyAg IDY2LjM5MDQxNF0gIFs8ZmZmZmZmZmY4MTAxYWZkNT5dIGRvX0lSUSsweDY1LzB4MTEwClsgICA2 Ni4zOTA0MzFdICBbPGZmZmZmZmZmODE2MTg4MDY+XSBjb21tb25faW50ZXJydXB0KzB4ODYvMHg4 NgpbICAgNjYuMzkwNDQ2XSAgPEVPST4KWyAgIDY2LjM5MDQ1N10gIFs8ZmZmZmZmZmY4MTRlYzZk MT5dID8gY3B1aWRsZV9lbnRlcl9zdGF0ZSsweDE1MS8weDIwMApbICAgNjYuMzkwNDgwXSAgWzxm ZmZmZmZmZjgxNGVjN2EyPl0gY3B1aWRsZV9lbnRlcisweDEyLzB4MjAKWyAgIDY2LjM5MDQ5OF0g IFs8ZmZmZmZmZmY4MTBiNjM5ZT5dIGNhbGxfY3B1aWRsZSsweDFlLzB4NDAKWyAgIDY2LjM5MDUx Nl0gIFs8ZmZmZmZmZmY4MTBiNjVhZT5dIGNwdV9zdGFydHVwX2VudHJ5KzB4MTBlLzB4MWYwClsg ICA2Ni4zOTA1MzRdICBbPGZmZmZmZmZmODEwMzYxMzM+XSBzdGFydF9zZWNvbmRhcnkrMHgxMDMv MHgxMzAKCihUaGlzIGlzIHNwbGl0IG91dCBvZiB0aGUgZGVmZXIgZ2xvYmFsIHNlcW5vIGFsbG9j YXRpb24gcGF0Y2ggZHVlIHRvCnJlYWxpc2F0aW9uIHRoYXQgd2UgbmVlZCBhIG1vcmUgY29tcGxl dGUgY29udmVyc2lvbiBpZiB3ZSB3YW50IHRvIGRlZmVyCnJlcXVlc3Qgc3VibWlzc2lvbiBldmVu IGZ1cnRoZXIuKQoKdjI6IGxvY2tkZXAgd2FzIHdhcm5pbmcgYWJvdXQgbWl4ZWQgU09GVElSUSBj b250ZXh0cyBub3QgSEFSRElSUQpjb250ZXh0cyBzbyB3ZSBvbmx5IG5lZWQgdG8gdXNlIHNwaW5f bG9ja19iaCBhbmQgbm90IGRpc2FibGUgaW50ZXJydXB0cy4KCnYzOiBXZSBuZWVkIGZ1bGwgaXJx IHByb3RlY3Rpb24gYXMgd2UgbWF5IGJlIGNhbGxlZCBmcm9tIGEgdGhpcmQgcGFydHkKaW50ZXJy dXB0IGhhbmRsZXIgKHZpYSBmZW5jZXMpLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0 aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5A bGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1 bGluQGludGVsLmNvbT4KLS0tCgpUaGlzIHNob3VsZCBiZSB2MSB3aXRoIHRoZSB0d2Vha3MgYm90 aCBvZiB5b3UgY29tbWVudGVkIHVwb24uIFBsZWFzZSBkb3VibGUKY2hlY2sgeW91J3JlIGhhcHB5 LgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgfCAxMiArKysr Ky0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICB8ICA4ICsr KystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMzUgKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuaCAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCsp LCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGE2 MDgwM2M0ZjExYS4uYTJmYTQ0NWZlNDA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwpAQCAtNjgzLDE0ICs2ODMsMTQgQEAgc3RhdGljIHZvaWQgaTkxNV9yaW5nX3NlcW5vX2luZm8o c3RydWN0IHNlcV9maWxlICptLAogCXNlcV9wcmludGYobSwgIkN1cnJlbnQgc2VxdWVuY2UgKCVz KTogJXhcbiIsCiAJCSAgIGVuZ2luZS0+bmFtZSwgaW50ZWxfZW5naW5lX2dldF9zZXFubyhlbmdp bmUpKTsKIAotCXNwaW5fbG9jaygmYi0+bG9jayk7CisJc3Bpbl9sb2NrX2lycSgmYi0+bG9jayk7 CiAJZm9yIChyYiA9IHJiX2ZpcnN0KCZiLT53YWl0ZXJzKTsgcmI7IHJiID0gcmJfbmV4dChyYikp IHsKIAkJc3RydWN0IGludGVsX3dhaXQgKncgPSBjb250YWluZXJfb2YocmIsIHR5cGVvZigqdyks IG5vZGUpOwogCiAJCXNlcV9wcmludGYobSwgIldhaXRpbmcgKCVzKTogJXMgWyVkXSBvbiAleFxu IiwKIAkJCSAgIGVuZ2luZS0+bmFtZSwgdy0+dHNrLT5jb21tLCB3LT50c2stPnBpZCwgdy0+c2Vx bm8pOwogCX0KLQlzcGluX3VubG9jaygmYi0+bG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZiLT5s b2NrKTsKIH0KIAogc3RhdGljIGludCBpOTE1X2dlbV9zZXFub19pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkKQEAgLTEzNTUsMTQgKzEzNTUsMTQgQEAgc3RhdGljIGludCBpOTE1 X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJICAg eWVzbm8oaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSksCiAJCQkgICB5ZXNubyh0ZXN0 X2JpdChlbmdpbmUtPmlkLAogCQkJCQkgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLm1pc3NlZF9pcnFf cmluZ3MpKSk7Ci0JCXNwaW5fbG9jaygmYi0+bG9jayk7CisJCXNwaW5fbG9ja19pcnEoJmItPmxv Y2spOwogCQlmb3IgKHJiID0gcmJfZmlyc3QoJmItPndhaXRlcnMpOyByYjsgcmIgPSByYl9uZXh0 KHJiKSkgewogCQkJc3RydWN0IGludGVsX3dhaXQgKncgPSBjb250YWluZXJfb2YocmIsIHR5cGVv ZigqdyksIG5vZGUpOwogCiAJCQlzZXFfcHJpbnRmKG0sICJcdCVzIFslZF0gd2FpdGluZyBmb3Ig JXhcbiIsCiAJCQkJICAgdy0+dHNrLT5jb21tLCB3LT50c2stPnBpZCwgdy0+c2Vxbm8pOwogCQl9 Ci0JCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZiLT5sb2NrKTsK IAogCQlzZXFfcHJpbnRmKG0sICJcdEFDVEhEID0gMHglMDhsbHggW2N1cnJlbnQgMHglMDhsbHhd XG4iLAogCQkJICAgKGxvbmcgbG9uZyllbmdpbmUtPmhhbmdjaGVjay5hY3RoZCwKQEAgLTMyNjUs MTQgKzMyNjUsMTQgQEAgc3RhdGljIGludCBpOTE1X2VuZ2luZV9pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJCSAgIEk5MTVfUkVBRChSSU5HX1BQX0RJUl9EQ0xWKGVu Z2luZSkpKTsKIAkJfQogCi0JCXNwaW5fbG9jaygmYi0+bG9jayk7CisJCXNwaW5fbG9ja19pcnEo JmItPmxvY2spOwogCQlmb3IgKHJiID0gcmJfZmlyc3QoJmItPndhaXRlcnMpOyByYjsgcmIgPSBy Yl9uZXh0KHJiKSkgewogCQkJc3RydWN0IGludGVsX3dhaXQgKncgPSBjb250YWluZXJfb2YocmIs IHR5cGVvZigqdyksIG5vZGUpOwogCiAJCQlzZXFfcHJpbnRmKG0sICJcdCVzIFslZF0gd2FpdGlu ZyBmb3IgJXhcbiIsCiAJCQkJICAgdy0+dHNrLT5jb21tLCB3LT50c2stPnBpZCwgdy0+c2Vxbm8p OwogCQl9Ci0JCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZiLT5s b2NrKTsKIAogCQlzZXFfcHV0cyhtLCAiXG4iKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuYwppbmRleCBlZjM2OTgxMjBkOTIuLjdiYTQwNDg3ZTM0NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0aWMgdm9p ZCBlcnJvcl9yZWNvcmRfZW5naW5lX3dhaXRlcnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLAogCWlmIChSQl9FTVBUWV9ST09UKCZiLT53YWl0ZXJzKSkKIAkJcmV0dXJuOwogCi0JaWYg KCFzcGluX3RyeWxvY2soJmItPmxvY2spKSB7CisJaWYgKCFzcGluX3RyeWxvY2tfaXJxKCZiLT5s b2NrKSkgewogCQllZS0+d2FpdGVycyA9IEVSUl9QVFIoLUVERUFETEspOwogCQlyZXR1cm47CiAJ fQpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgc3RhdGljIHZvaWQgZXJyb3JfcmVjb3JkX2VuZ2luZV93 YWl0ZXJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAljb3VudCA9IDA7CiAJZm9y IChyYiA9IHJiX2ZpcnN0KCZiLT53YWl0ZXJzKTsgcmIgIT0gTlVMTDsgcmIgPSByYl9uZXh0KHJi KSkKIAkJY291bnQrKzsKLQlzcGluX3VubG9jaygmYi0+bG9jayk7CisJc3Bpbl91bmxvY2tfaXJx KCZiLT5sb2NrKTsKIAogCXdhaXRlciA9IE5VTEw7CiAJaWYgKGNvdW50KQpAQCAtMTA2MSw3ICsx MDYxLDcgQEAgc3RhdGljIHZvaWQgZXJyb3JfcmVjb3JkX2VuZ2luZV93YWl0ZXJzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoIXdhaXRlcikKIAkJcmV0dXJuOwogCi0JaWYg KCFzcGluX3RyeWxvY2soJmItPmxvY2spKSB7CisJaWYgKCFzcGluX3RyeWxvY2tfaXJxKCZiLT5s b2NrKSkgewogCQlrZnJlZSh3YWl0ZXIpOwogCQllZS0+d2FpdGVycyA9IEVSUl9QVFIoLUVERUFE TEspOwogCQlyZXR1cm47CkBAIC0xMDc5LDcgKzEwNzksNyBAQCBzdGF0aWMgdm9pZCBlcnJvcl9y ZWNvcmRfZW5naW5lX3dhaXRlcnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCQlp ZiAoKytlZS0+bnVtX3dhaXRlcnMgPT0gY291bnQpCiAJCQlicmVhazsKIAl9Ci0Jc3Bpbl91bmxv Y2soJmItPmxvY2spOworCXNwaW5fdW5sb2NrX2lycSgmYi0+bG9jayk7CiB9CiAKIHN0YXRpYyB2 b2lkIGVycm9yX3JlY29yZF9lbmdpbmVfcmVnaXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9z dGF0ZSAqZXJyb3IsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVh ZGNydW1icy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYwppbmRl eCAwZDVkZWYwZDJkZmUuLmM0MTBkM2Q2NDY1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jCkBAIC04MywxNiArODMsMTggQEAgc3RhdGljIHZvaWQgaXJxX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJICovCiAJZW5naW5lLT5icmVhZGNy dW1icy5pcnFfcG9zdGVkID0gdHJ1ZTsKIAotCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+ aXJxX2xvY2spOworCS8qIENhbGxlciBkaXNhYmxlcyBpbnRlcnJ1cHRzICovCisJc3Bpbl9sb2Nr KCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKIAllbmdpbmUtPmlycV9lbmFibGUoZW5naW5lKTsK LQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXNwaW5fdW5sb2Nr KCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgaXJxX2Rpc2FibGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewotCXNwaW5fbG9ja19pcnEoJmVuZ2lu ZS0+aTkxNS0+aXJxX2xvY2spOworCS8qIENhbGxlciBkaXNhYmxlcyBpbnRlcnJ1cHRzICovCisJ c3Bpbl9sb2NrKCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKIAllbmdpbmUtPmlycV9kaXNhYmxl KGVuZ2luZSk7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKKwlz cGluX3VubG9jaygmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CiAKIAllbmdpbmUtPmJyZWFkY3J1 bWJzLmlycV9wb3N0ZWQgPSBmYWxzZTsKIH0KQEAgLTI5Myw5ICsyOTUsOSBAQCBib29sIGludGVs X2VuZ2luZV9hZGRfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJc3RydWN0 IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+YnJlYWRjcnVtYnM7CiAJYm9vbCBmaXJz dDsKIAotCXNwaW5fbG9jaygmYi0+bG9jayk7CisJc3Bpbl9sb2NrX2lycSgmYi0+bG9jayk7CiAJ Zmlyc3QgPSBfX2ludGVsX2VuZ2luZV9hZGRfd2FpdChlbmdpbmUsIHdhaXQpOwotCXNwaW5fdW5s b2NrKCZiLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmItPmxvY2spOwogCiAJcmV0dXJuIGZp cnN0OwogfQpAQCAtMzI2LDcgKzMyOCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX3JlbW92ZV93YWl0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoUkJfRU1QVFlfTk9ERSgmd2Fp dC0+bm9kZSkpCiAJCXJldHVybjsKIAotCXNwaW5fbG9jaygmYi0+bG9jayk7CisJc3Bpbl9sb2Nr X2lycSgmYi0+bG9jayk7CiAKIAlpZiAoUkJfRU1QVFlfTk9ERSgmd2FpdC0+bm9kZSkpCiAJCWdv dG8gb3V0X3VubG9jazsKQEAgLTQwMCw3ICs0MDIsNyBAQCB2b2lkIGludGVsX2VuZ2luZV9yZW1v dmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJR0VNX0JVR19PTihyYl9m aXJzdCgmYi0+d2FpdGVycykgIT0KIAkJICAgKGItPmZpcnN0X3dhaXQgPyAmYi0+Zmlyc3Rfd2Fp dC0+bm9kZSA6IE5VTEwpKTsKIAlHRU1fQlVHX09OKCFyY3VfYWNjZXNzX3BvaW50ZXIoYi0+aXJx X3NlcW5vX2JoKSBeIFJCX0VNUFRZX1JPT1QoJmItPndhaXRlcnMpKTsKLQlzcGluX3VubG9jaygm Yi0+bG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZiLT5sb2NrKTsKIH0KIAogc3RhdGljIGJvb2wg c2lnbmFsX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKQEAg LTQ3MywxNCArNDc1LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfYnJlYWRjcnVtYnNfc2lnbmFsZXIo dm9pZCAqYXJnKQogCQkJICogd2UganVzdCBjb21wbGV0ZWQgLSBzbyBkb3VibGUgY2hlY2sgd2Ug YXJlIHN0aWxsCiAJCQkgKiB0aGUgb2xkZXN0IGJlZm9yZSBwaWNraW5nIHRoZSBuZXh0IG9uZS4K IAkJCSAqLwotCQkJc3Bpbl9sb2NrKCZiLT5sb2NrKTsKKwkJCXNwaW5fbG9ja19pcnEoJmItPmxv Y2spOwogCQkJaWYgKHJlcXVlc3QgPT0gYi0+Zmlyc3Rfc2lnbmFsKSB7CiAJCQkJc3RydWN0IHJi X25vZGUgKnJiID0KIAkJCQkJcmJfbmV4dCgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpOwogCQkJ CWItPmZpcnN0X3NpZ25hbCA9IHJiID8gdG9fc2lnbmFsZXIocmIpIDogTlVMTDsKIAkJCX0KIAkJ CXJiX2VyYXNlKCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSwgJmItPnNpZ25hbHMpOwotCQkJc3Bp bl91bmxvY2soJmItPmxvY2spOworCQkJc3Bpbl91bmxvY2tfaXJxKCZiLT5sb2NrKTsKIAogCQkJ aTkxNV9nZW1fcmVxdWVzdF9wdXQocmVxdWVzdCk7CiAJCX0gZWxzZSB7CkBAIC01MDIsNyArNTA0 LDE0IEBAIHZvaWQgaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCXN0cnVjdCByYl9ub2RlICpwYXJlbnQsICoqcDsKIAli b29sIGZpcnN0LCB3YWtldXA7CiAKLQkvKiBsb2NrZWQgYnkgZG1hX2ZlbmNlX2VuYWJsZV9zd19z aWduYWxpbmcoKSAqLworCS8qIE5vdGUgdGhhdCB3ZSBtYXkgYmUgY2FsbGVkIGZyb20gYW4gaW50 ZXJydXB0IGhhbmRsZXIgb24gYW5vdGhlcgorCSAqIGRldmljZSAoZS5nLiBub3V2ZWF1IHNpZ25h bGluZyBhIGZlbmNlIGNvbXBsZXRpb24gY2F1c2luZyB1cworCSAqIHRvIHN1Ym1pdCBhIHJlcXVl c3QsIGFuZCBzbyBlbmFibGUgc2lnbmFsaW5nKS4gQXMgc3VjaCwKKwkgKiB3ZSBuZWVkIHRvIG1h a2Ugc3VyZSB0aGF0IGFsbCBvdGhlciB1c2VycyBvZiBiLT5sb2NrIHByb3RlY3QKKwkgKiBhZ2Fp bnN0IGludGVycnVwdHMsIGkuZS4gdXNlIHNwaW5fbG9ja19pcnFzYXZlLgorCSAqLworCisJLyog bG9ja2VkIGJ5IGRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKCkgKGlycXNhZmUgZmVuY2Ut PmxvY2spICovCiAJYXNzZXJ0X3NwaW5fbG9ja2VkKCZyZXF1ZXN0LT5sb2NrKTsKIAlpZiAoIXJl cXVlc3QtPmdsb2JhbF9zZXFubykKIAkJcmV0dXJuOwpAQCAtNTk0LDcgKzYwMyw3IEBAIHZvaWQg aW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1i czsKIAogCWNhbmNlbF9mYWtlX2lycShlbmdpbmUpOwotCXNwaW5fbG9jaygmYi0+bG9jayk7CisJ c3Bpbl9sb2NrX2lycSgmYi0+bG9jayk7CiAKIAlfX2ludGVsX2JyZWFkY3J1bWJzX2Rpc2FibGVf aXJxKGIpOwogCWlmIChpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKSB7CkBAIC02MDcs NyArNjE2LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpcnFfZGlzYWJsZShlbmdpbmUpOwogCX0KIAotCXNw aW5fdW5sb2NrKCZiLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmItPmxvY2spOwogfQogCiB2 b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCA4OTE2 MjljYWFiNmMuLmQxNmM3NGFlOGY1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaApAQCAtMjA3LDcgKzIwNyw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCQlz dHJ1Y3QgdGFza19zdHJ1Y3QgX19yY3UgKmlycV9zZXFub19iaDsgLyogYmggZm9yIGludGVycnVw dHMgKi8KIAkJYm9vbCBpcnFfcG9zdGVkOwogCi0JCXNwaW5sb2NrX3QgbG9jazsgLyogcHJvdGVj dHMgdGhlIGxpc3RzIG9mIHJlcXVlc3RzICovCisJCXNwaW5sb2NrX3QgbG9jazsgLyogcHJvdGVj dHMgdGhlIGxpc3RzIG9mIHJlcXVlc3RzOyBpcnFzYWZlICovCiAJCXN0cnVjdCByYl9yb290IHdh aXRlcnM7IC8qIHNvcnRlZCBieSByZXRpcmVtZW50LCBwcmlvcml0eSAqLwogCQlzdHJ1Y3QgcmJf cm9vdCBzaWduYWxzOyAvKiBzb3J0ZWQgYnkgcmV0aXJlbWVudCAqLwogCQlzdHJ1Y3QgaW50ZWxf d2FpdCAqZmlyc3Rfd2FpdDsgLyogb2xkZXN0IHdhaXRlciBieSByZXRpcmVtZW50ICovCi0tIAoy LjEwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=