From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2] drm/i915: Convert breadcrumbs spinlock to be irqsafe and bhsafe Date: Fri, 28 Oct 2016 12:31:54 +0100 Message-ID: <20161028113154.5666-1-chris@chris-wilson.co.uk> References: <704c8019-5ce5-1867-70e8-d3c5649c8899@ursulin.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 374956EB92 for ; Fri, 28 Oct 2016 11:31:58 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id p190so746800wmp.1 for ; Fri, 28 Oct 2016 04:31:58 -0700 (PDT) In-Reply-To: <704c8019-5ce5-1867-70e8-d3c5649c8899@ursulin.net> 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 ZXh0IHNlY3Rpb25zLAphbmQvb3IgZnJvbSBib3R0b20taGFsZiB0YXNrbGV0cyAoaS5lLiBpbnRl bF9scmNfaXJxX2hhbmRsZSksIHRoZXJlZm9yZQp3ZSBuZWVkIHRvIGVtcGxveSB0aGUgaXJxc2Fm ZSBzcGlubG9jayB2YXJpYW50cy4KClsgICA2Ni4zODg2MzldID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpbICAgNjYuMzg4NjUwXSBbIElORk86IGluY29uc2lzdGVudCBsb2NrIHN0 YXRlIF0KWyAgIDY2LjM4ODY2M10gNC45LjAtcmMyKyAjNTYgTm90IHRhaW50ZWQKWyAgIDY2LjM4 ODY3Ml0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClsgICA2Ni4zODg2ODJdIGlu Y29uc2lzdGVudCB7U09GVElSUS1PTi1XfSAtPiB7SU4tU09GVElSUS1XfSB1c2FnZS4KWyAgIDY2 LjM4ODY5NV0gc3dhcHBlci8xLzAgW0hDMFswXTpTQzFbMV06SEUwOlNFMF0gdGFrZXM6ClsgICA2 Ni4zODg3MDZdICAoJigmYi0+bG9jayktPnJsb2NrKXsrLj8uLi59ICwgYXQ6IFs8ZmZmZmZmZmY4 MTQwMWM4OD5dIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKzB4NzgvMHgxNTAKWyAgIDY2 LjM4ODc2MV0ge1NPRlRJUlEtT04tV30gc3RhdGUgd2FzIHJlZ2lzdGVyZWQgYXQ6ClsgICA2Ni4z ODg3NzJdICAgWyAgIDY2LjM4ODc4M10gWzxmZmZmZmZmZjgxMGJkODQyPl0gX19sb2NrX2FjcXVp cmUrMHg2ODIvMHgxODcwClsgICA2Ni4zODg3OTVdICAgWyAgIDY2LjM4ODgwM10gWzxmZmZmZmZm ZjgxMGJlZGJjPl0gbG9ja19hY3F1aXJlKzB4NmMvMHhiMApbICAgNjYuMzg4ODE0XSAgIFsgICA2 Ni4zODg4MjRdIFs8ZmZmZmZmZmY4MTYxNzUzYT5dIF9yYXdfc3Bpbl9sb2NrKzB4MmEvMHg0MApb ICAgNjYuMzg4ODM1XSAgIFsgICA2Ni4zODg4NDVdIFs8ZmZmZmZmZmY4MTQwMWU0MT5dIGludGVs X2VuZ2luZV9yZXNldF9icmVhZGNydW1icysweDIxLzB4YjAKWyAgIDY2LjM4ODg1N10gICBbICAg NjYuMzg4ODY2XSBbPGZmZmZmZmZmODE0MDNhZTc+XSBnZW44X2luaXRfY29tbW9uX3JpbmcrMHg2 Ny8weDEwMApbICAgNjYuMzg4ODc4XSAgIFsgICA2Ni4zODg4ODddIFs8ZmZmZmZmZmY4MTQwM2I5 Mj5dIGdlbjhfaW5pdF9yZW5kZXJfcmluZysweDEyLzB4NjAKWyAgIDY2LjM4ODkwM10gICBbICAg NjYuMzg4OTEyXSBbPGZmZmZmZmZmODEzZjg3MDc+XSBpOTE1X2dlbV9pbml0X2h3KzB4ZjcvMHgy YTAKWyAgIDY2LjM4ODkyN10gICBbICAgNjYuMzg4OTM2XSBbPGZmZmZmZmZmODEzZjg5OWI+XSBp OTE1X2dlbV9pbml0KzB4YmIvMHhmMApbICAgNjYuMzg4OTUwXSAgIFsgICA2Ni4zODg5NTldIFs8 ZmZmZmZmZmY4MTNiNDk4MD5dIGk5MTVfZHJpdmVyX2xvYWQrMHg3ZTAvMHgxMzMwClsgICA2Ni4z ODg5NzhdICAgWyAgIDY2LjM4ODk4OF0gWzxmZmZmZmZmZjgxM2MwOWQ4Pl0gaTkxNV9wY2lfcHJv YmUrMHgyOC8weDQwClsgICA2Ni4zODkwMDNdICAgWyAgIDY2LjM4OTAxM10gWzxmZmZmZmZmZjgx MmZhMGRiPl0gcGNpX2RldmljZV9wcm9iZSsweDhiLzB4ZjAKWyAgIDY2LjM4OTAyOF0gICBbICAg NjYuMzg5MDM3XSBbPGZmZmZmZmZmODE0NzczN2U+XSBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4MjFl LzB4NDMwClsgICA2Ni4zODkwNTZdICAgWyAgIDY2LjM4OTA2NV0gWzxmZmZmZmZmZjgxNDc3NjZl Pl0gX19kcml2ZXJfYXR0YWNoKzB4ZGUvMHhlMApbICAgNjYuMzg5MDgwXSAgIFsgICA2Ni4zODkw OTBdIFs8ZmZmZmZmZmY4MTQ3NTFhZD5dIGJ1c19mb3JfZWFjaF9kZXYrMHg1ZC8weDkwClsgICA2 Ni4zODkxMDVdICAgWyAgIDY2LjM4OTExM10gWzxmZmZmZmZmZjgxNDc3Nzk5Pl0gZHJpdmVyX2F0 dGFjaCsweDE5LzB4MjAKWyAgIDY2LjM4OTEzNF0gICBbICAgNjYuMzg5MTQ0XSBbPGZmZmZmZmZm ODE0NzVjZWQ+XSBidXNfYWRkX2RyaXZlcisweDE1ZC8weDI2MApbICAgNjYuMzg5MTU5XSAgIFsg ICA2Ni4zODkxNjhdIFs8ZmZmZmZmZmY4MTQ3N2UzYj5dIGRyaXZlcl9yZWdpc3RlcisweDViLzB4 ZDAKWyAgIDY2LjM4OTE4M10gICBbICAgNjYuMzg5MjgxXSBbPGZmZmZmZmZmODEyZmExOWI+XSBf X3BjaV9yZWdpc3Rlcl9kcml2ZXIrMHg1Yi8weDYwClsgICA2Ni4zODkzMDFdICAgWyAgIDY2LjM4 OTMxMl0gWzxmZmZmZmZmZjgxYWVkMzMzPl0gaTkxNV9pbml0KzB4M2UvMHg0NQpbICAgNjYuMzg5 MzI2XSAgIFsgICA2Ni4zODkzMzZdIFs8ZmZmZmZmZmY4MWFjMmZmYT5dIGRvX29uZV9pbml0Y2Fs bCsweDhiLzB4MTE4ClsgICA2Ni4zODkzNTBdICAgWyAgIDY2LjM4OTM1OV0gWzxmZmZmZmZmZjgx YWMzMjNhPl0ga2VybmVsX2luaXRfZnJlZWFibGUrMHgxYjMvMHgyM2IKWyAgIDY2LjM4OTM3OF0g ICBbICAgNjYuMzg5Mzg3XSBbPGZmZmZmZmZmODE2MGZjMzk+XSBrZXJuZWxfaW5pdCsweDkvMHgx MDAKWyAgIDY2LjM4OTQwMl0gICBbICAgNjYuMzg5NDExXSBbPGZmZmZmZmZmODE2MTgwZTc+XSBy ZXRfZnJvbV9mb3JrKzB4MjcvMHg0MApbICAgNjYuMzg5NDI2XSBpcnEgZXZlbnQgc3RhbXA6IDMx NTg2NQpbICAgNjYuMzg5NDM4XSBoYXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICgzMTU4NjQpOiBb PGZmZmZmZmZmODE2MTc4ZjE+XSBfcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUrMHgzMS8weDUw ClsgICA2Ni4zODk0NjldIGhhcmRpcnFzIGxhc3QgZGlzYWJsZWQgYXQgKDMxNTg2NSk6IFs8ZmZm ZmZmZmY4MTYxNzZiMz5dIF9yYXdfc3Bpbl9sb2NrX2lycXNhdmUrMHgxMy8weDUwClsgICA2Ni4z ODk0OTldIHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQgYXQgKDMxNTgxOCk6IFs8ZmZmZmZmZmY4MTA3 YTA0Yz5dIF9sb2NhbF9iaF9lbmFibGUrMHgxYy8weDUwClsgICA2Ni4zODk1MzBdIHNvZnRpcnFz IGxhc3QgZGlzYWJsZWQgYXQgKDMxNTgxOSk6IFs8ZmZmZmZmZmY4MTA3YTUwZT5dIGlycV9leGl0 KzB4YmUvMHhkMApbICAgNjYuMzg5NTU5XQpbICAgNjYuMzg5NTU5XSBvdGhlciBpbmZvIHRoYXQg bWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOgpbICAgNjYuMzg5NTgwXSAgUG9zc2libGUgdW5zYWZl IGxvY2tpbmcgc2NlbmFyaW86ClsgICA2Ni4zODk1ODBdClsgICA2Ni4zODk1OThdICAgICAgICBD UFUwClsgICA2Ni4zODk2MDldICAgICAgICAtLS0tClsgICA2Ni4zODk2MjBdICAgbG9jaygmKCZi LT5sb2NrKS0+cmxvY2spOwpbICAgNjYuMzg5NjUwXSAgIDxJbnRlcnJ1cHQ+ClsgICA2Ni4zODk2 NjFdICAgICBsb2NrKCYoJmItPmxvY2spLT5ybG9jayk7ClsgICA2Ni4zODk2OTBdClsgICA2Ni4z ODk2OTBdICAqKiogREVBRExPQ0sgKioqClsgICA2Ni4zODk2OTBdClsgICA2Ni4zODk3MTVdIDIg bG9ja3MgaGVsZCBieSBzd2FwcGVyLzEvMDoKWyAgIDY2LjM4OTcyOF0gICMwOiAoJigmdGwtPmxv Y2spLT5ybG9jayl7Li4tLi4ufSwgYXQ6IFs8ZmZmZmZmZmY4MTQwM2UwMT5dIGludGVsX2xyY19p cnFfaGFuZGxlcisweDIwMS8weDNjMApbICAgNjYuMzg5Nzg1XSAgIzE6ICgmKCZyZXEtPmxvY2sp LT5ybG9jay8xKXsuLi0uLi59LCBhdDogWzxmZmZmZmZmZjgxM2ZjMGFmPl0gX19pOTE1X2dlbV9y ZXF1ZXN0X3N1Ym1pdCsweDhmLzB4MTcwClsgICA2Ni4zODk4NTRdClsgICA2Ni4zODk4NTRdIHN0 YWNrIGJhY2t0cmFjZToKWyAgIDY2LjM4OTk1OV0gQ1BVOiAxIFBJRDogMCBDb21tOiBzd2FwcGVy LzEgTm90IHRhaW50ZWQgNC45LjAtcmMyKyAjNTYKWyAgIDY2LjM4OTk3Nl0gSGFyZHdhcmUgbmFt ZTogICAgICAgICAgICAgICAgICAvICAgICAgICAsIEJJT1MgUFlCU1dDRUwuODZBLjAwMjcuMjAx NS4wNTA3LjE3NTggMDUvMDcvMjAxNQpbICAgNjYuMzg5OTk5XSAgZmZmZjg4MDI3ZmQwM2M1OCBm ZmZmZmZmZjgxMmJlYWU1IGZmZmY4ODAyNzY5NmU2ODAgZmZmZmZmZmY4MjJhZmUyMApbICAgNjYu MzkwMDM2XSAgZmZmZjg4MDI3ZmQwM2NhOCBmZmZmZmZmZjgxMGJiNDIwIDAwMDAwMDAwMDAwMDAw MDEgMDAwMDAwMDAwMDAwMDAwMApbICAgNjYuMzkwMDcwXSAgMDAwMDAwMDAwMDAwMDAwMCAwMDAw MDAwMDAwMDAwMDA2IDAwMDAwMDAwMDAwMDAwMDQgZmZmZjg4MDI3Njk2ZWUxMApbICAgNjYuMzkw MTA0XSBDYWxsIFRyYWNlOgpbICAgNjYuMzkwMTE3XSAgPElSUT4KWyAgIDY2LjM5MDEyOF0gIFs8 ZmZmZmZmZmY4MTJiZWFlNT5dIGR1bXBfc3RhY2srMHg2OC8weDkzClsgICA2Ni4zOTAxNDddICBb PGZmZmZmZmZmODEwYmI0MjA+XSBwcmludF91c2FnZV9idWcrMHgxZDAvMHgxZTAKWyAgIDY2LjM5 MDE2NF0gIFs8ZmZmZmZmZmY4MTBiYjhhMD5dIG1hcmtfbG9jaysweDQ3MC8weDRmMApbICAgNjYu MzkwMTgxXSAgWzxmZmZmZmZmZjgxMGJhOWQwPl0gPyBwcmludF9zaG9ydGVzdF9sb2NrX2RlcGVu ZGVuY2llcysweDFiMC8weDFiMApbICAgNjYuMzkwMjAzXSAgWzxmZmZmZmZmZjgxMGJkNzVkPl0g X19sb2NrX2FjcXVpcmUrMHg1OWQvMHgxODcwClsgICA2Ni4zOTAyMjFdICBbPGZmZmZmZmZmODEw YmVkYmM+XSBsb2NrX2FjcXVpcmUrMHg2Yy8weGIwClsgICA2Ni4zOTAyMzddICBbPGZmZmZmZmZm ODEwYmVkYmM+XSA/IGxvY2tfYWNxdWlyZSsweDZjLzB4YjAKWyAgIDY2LjM5MDI1NV0gIFs8ZmZm ZmZmZmY4MTQwMWM4OD5dID8gaW50ZWxfZW5naW5lX2VuYWJsZV9zaWduYWxpbmcrMHg3OC8weDE1 MApbICAgNjYuMzkwMjczXSAgWzxmZmZmZmZmZjgxNjE3NTNhPl0gX3Jhd19zcGluX2xvY2srMHgy YS8weDQwClsgICA2Ni4zOTAyOTFdICBbPGZmZmZmZmZmODE0MDFjODg+XSA/IGludGVsX2VuZ2lu ZV9lbmFibGVfc2lnbmFsaW5nKzB4NzgvMHgxNTAKWyAgIDY2LjM5MDMwOV0gIFs8ZmZmZmZmZmY4 MTQwMWM4OD5dIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKzB4NzgvMHgxNTAKWyAgIDY2 LjM5MDMyN10gIFs8ZmZmZmZmZmY4MTNmYzE3MD5dIF9faTkxNV9nZW1fcmVxdWVzdF9zdWJtaXQr MHgxNTAvMHgxNzAKWyAgIDY2LjM5MDM0NV0gIFs8ZmZmZmZmZmY4MTQwM2U4Yj5dIGludGVsX2xy Y19pcnFfaGFuZGxlcisweDI4Yi8weDNjMApbICAgNjYuMzkwMzYzXSAgWzxmZmZmZmZmZjgxMDc5 ZDk3Pl0gdGFza2xldF9hY3Rpb24rMHg1Ny8weGMwClsgICA2Ni4zOTAzODBdICBbPGZmZmZmZmZm ODEwN2EyNDk+XSBfX2RvX3NvZnRpcnErMHgxMTkvMHgyNDAKWyAgIDY2LjM5MDM5Nl0gIFs8ZmZm ZmZmZmY4MTA3YTUwZT5dIGlycV9leGl0KzB4YmUvMHhkMApbICAgNjYuMzkwNDE0XSAgWzxmZmZm ZmZmZjgxMDFhZmQ1Pl0gZG9fSVJRKzB4NjUvMHgxMTAKWyAgIDY2LjM5MDQzMV0gIFs8ZmZmZmZm ZmY4MTYxODgwNj5dIGNvbW1vbl9pbnRlcnJ1cHQrMHg4Ni8weDg2ClsgICA2Ni4zOTA0NDZdICA8 RU9JPgpbICAgNjYuMzkwNDU3XSAgWzxmZmZmZmZmZjgxNGVjNmQxPl0gPyBjcHVpZGxlX2VudGVy X3N0YXRlKzB4MTUxLzB4MjAwClsgICA2Ni4zOTA0ODBdICBbPGZmZmZmZmZmODE0ZWM3YTI+XSBj cHVpZGxlX2VudGVyKzB4MTIvMHgyMApbICAgNjYuMzkwNDk4XSAgWzxmZmZmZmZmZjgxMGI2Mzll Pl0gY2FsbF9jcHVpZGxlKzB4MWUvMHg0MApbICAgNjYuMzkwNTE2XSAgWzxmZmZmZmZmZjgxMGI2 NWFlPl0gY3B1X3N0YXJ0dXBfZW50cnkrMHgxMGUvMHgxZjAKWyAgIDY2LjM5MDUzNF0gIFs8ZmZm ZmZmZmY4MTAzNjEzMz5dIHN0YXJ0X3NlY29uZGFyeSsweDEwMy8weDEzMAoKKFRoaXMgaXMgc3Bs aXQgb3V0IG9mIHRoZSBkZWZlciBnbG9iYWwgc2Vxbm8gYWxsb2NhdGlvbiBwYXRjaCBkdWUgdG8K cmVhbGlzYXRpb24gdGhhdCB3ZSBuZWVkIGEgbW9yZSBjb21wbGV0ZSBjb252ZXJzaW9uIGlmIHdl IHdhbnQgdG8gZGVmZXIKcmVxdWVzdCBzdWJtaXNzaW9uIGV2ZW4gZnVydGhlci4pCgp2MjogbG9j a2RlcCB3YXMgd2FybmluZyBhYm91dCBtaXhlZCBTT0ZUSVJRIGNvbnRleHRzIG5vdCBIQVJESVJR CmNvbnRleHRzIHNvIHdlIG9ubHkgbmVlZCB0byB1c2Ugc3Bpbl9sb2NrX2JoIGFuZCBub3QgZGlz YWJsZSBpbnRlcnJ1cHRzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51 eC5pbnRlbC5jb20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgIHwgMTIgKysrKysr LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jIHwgMzAgKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlv bnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5k ZXggOTI1YWFlZGQ3ZmQ5Li40NDhkNDdjM2QzYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCkBAIC02ODMsMTQgKzY4MywxNCBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jpbmdfc2Vxbm9f aW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiAJc2VxX3ByaW50ZihtLCAiQ3VycmVudCBzZXF1ZW5j ZSAoJXMpOiAleFxuIiwKIAkJICAgZW5naW5lLT5uYW1lLCBpbnRlbF9lbmdpbmVfZ2V0X3NlcW5v KGVuZ2luZSkpOwogCi0Jc3Bpbl9sb2NrKCZiLT5sb2NrKTsKKwlzcGluX2xvY2tfYmgoJmItPmxv Y2spOwogCWZvciAocmIgPSByYl9maXJzdCgmYi0+d2FpdGVycyk7IHJiOyByYiA9IHJiX25leHQo cmIpKSB7CiAJCXN0cnVjdCBpbnRlbF93YWl0ICp3ID0gY29udGFpbmVyX29mKHJiLCB0eXBlb2Yo KncpLCBub2RlKTsKIAogCQlzZXFfcHJpbnRmKG0sICJXYWl0aW5nICglcyk6ICVzIFslZF0gb24g JXhcbiIsCiAJCQkgICBlbmdpbmUtPm5hbWUsIHctPnRzay0+Y29tbSwgdy0+dHNrLT5waWQsIHct PnNlcW5vKTsKIAl9Ci0Jc3Bpbl91bmxvY2soJmItPmxvY2spOworCXNwaW5fdW5sb2NrX2JoKCZi LT5sb2NrKTsKIH0KIAogc3RhdGljIGludCBpOTE1X2dlbV9zZXFub19pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKQEAgLTEzNTUsMTQgKzEzNTUsMTQgQEAgc3RhdGljIGludCBp OTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQkJ ICAgeWVzbm8oaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSksCiAJCQkgICB5ZXNubyh0 ZXN0X2JpdChlbmdpbmUtPmlkLAogCQkJCQkgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLm1pc3NlZF9p cnFfcmluZ3MpKSk7Ci0JCXNwaW5fbG9jaygmYi0+bG9jayk7CisJCXNwaW5fbG9ja19iaCgmYi0+ bG9jayk7CiAJCWZvciAocmIgPSByYl9maXJzdCgmYi0+d2FpdGVycyk7IHJiOyByYiA9IHJiX25l eHQocmIpKSB7CiAJCQlzdHJ1Y3QgaW50ZWxfd2FpdCAqdyA9IGNvbnRhaW5lcl9vZihyYiwgdHlw ZW9mKCp3KSwgbm9kZSk7CiAKIAkJCXNlcV9wcmludGYobSwgIlx0JXMgWyVkXSB3YWl0aW5nIGZv ciAleFxuIiwKIAkJCQkgICB3LT50c2stPmNvbW0sIHctPnRzay0+cGlkLCB3LT5zZXFubyk7CiAJ CX0KLQkJc3Bpbl91bmxvY2soJmItPmxvY2spOworCQlzcGluX3VubG9ja19iaCgmYi0+bG9jayk7 CiAKIAkJc2VxX3ByaW50ZihtLCAiXHRBQ1RIRCA9IDB4JTA4bGx4IFtjdXJyZW50IDB4JTA4bGx4 XVxuIiwKIAkJCSAgIChsb25nIGxvbmcpZW5naW5lLT5oYW5nY2hlY2suYWN0aGQsCkBAIC0zMjY1 LDE0ICszMjY1LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9lbmdpbmVfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCQkgICBJOTE1X1JFQUQoUklOR19QUF9ESVJfRENMVihl bmdpbmUpKSk7CiAJCX0KIAotCQlzcGluX2xvY2soJmItPmxvY2spOworCQlzcGluX2xvY2tfYmgo JmItPmxvY2spOwogCQlmb3IgKHJiID0gcmJfZmlyc3QoJmItPndhaXRlcnMpOyByYjsgcmIgPSBy Yl9uZXh0KHJiKSkgewogCQkJc3RydWN0IGludGVsX3dhaXQgKncgPSBjb250YWluZXJfb2YocmIs IHR5cGVvZigqdyksIG5vZGUpOwogCiAJCQlzZXFfcHJpbnRmKG0sICJcdCVzIFslZF0gd2FpdGlu ZyBmb3IgJXhcbiIsCiAJCQkJICAgdy0+dHNrLT5jb21tLCB3LT50c2stPnBpZCwgdy0+c2Vxbm8p OwogCQl9Ci0JCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmItPmxv Y2spOwogCiAJCXNlcV9wdXRzKG0sICJcbiIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9icmVhZGNydW1icy5jCmluZGV4IDBkNWRlZjBkMmRmZS4uODlkYTY4MDg3ODQwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNydW1icy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKQEAgLTc3LDIyICs3NywyNiBAQCBz dGF0aWMgdm9pZCBpbnRlbF9icmVhZGNydW1ic19mYWtlX2lycSh1bnNpZ25lZCBsb25nIGRhdGEp CiAKIHN0YXRpYyB2b2lkIGlycV9lbmFibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogeworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKIAkvKiBFbmFibGluZyB0aGUgSVJRIG1heSBt aXNzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBpbnRlcnJ1cHQsIGJ1dAogCSAqIHdlIHN0aWxsIG5l ZWQgdG8gZm9yY2UgdGhlIGJhcnJpZXIgYmVmb3JlIHJlYWRpbmcgdGhlIHNlcW5vLAogCSAqIGp1 c3QgaW4gY2FzZS4KIAkgKi8KIAllbmdpbmUtPmJyZWFkY3J1bWJzLmlycV9wb3N0ZWQgPSB0cnVl OwogCi0Jc3Bpbl9sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CisJc3Bpbl9sb2Nr X2lycXNhdmUoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2ssIGZsYWdzKTsKIAllbmdpbmUtPmlycV9l bmFibGUoZW5naW5lKTsKLQlzcGluX3VubG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2sp OworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2ssIGZsYWdz KTsKIH0KIAogc3RhdGljIHZvaWQgaXJxX2Rpc2FibGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQogewotCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXVu c2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5pOTE1LT5p cnFfbG9jaywgZmxhZ3MpOwogCWVuZ2luZS0+aXJxX2Rpc2FibGUoZW5naW5lKTsKLQlzcGluX3Vu bG9ja19pcnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOworCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2ssIGZsYWdzKTsKIAogCWVuZ2luZS0+YnJlYWRjcnVt YnMuaXJxX3Bvc3RlZCA9IGZhbHNlOwogfQpAQCAtMjkzLDkgKzI5Nyw5IEBAIGJvb2wgaW50ZWxf ZW5naW5lX2FkZF93YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlzdHJ1Y3Qg aW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5icmVhZGNydW1iczsKIAlib29sIGZpcnN0 OwogCi0Jc3Bpbl9sb2NrKCZiLT5sb2NrKTsKKwlzcGluX2xvY2tfYmgoJmItPmxvY2spOwogCWZp cnN0ID0gX19pbnRlbF9lbmdpbmVfYWRkX3dhaXQoZW5naW5lLCB3YWl0KTsKLQlzcGluX3VubG9j aygmYi0+bG9jayk7CisJc3Bpbl91bmxvY2tfYmgoJmItPmxvY2spOwogCiAJcmV0dXJuIGZpcnN0 OwogfQpAQCAtMzI2LDcgKzMzMCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX3JlbW92ZV93YWl0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlpZiAoUkJfRU1QVFlfTk9ERSgmd2FpdC0+ bm9kZSkpCiAJCXJldHVybjsKIAotCXNwaW5fbG9jaygmYi0+bG9jayk7CisJc3Bpbl9sb2NrX2Jo KCZiLT5sb2NrKTsKIAogCWlmIChSQl9FTVBUWV9OT0RFKCZ3YWl0LT5ub2RlKSkKIAkJZ290byBv dXRfdW5sb2NrOwpAQCAtNDAwLDcgKzQwNCw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX3JlbW92ZV93 YWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAlHRU1fQlVHX09OKHJiX2ZpcnN0 KCZiLT53YWl0ZXJzKSAhPQogCQkgICAoYi0+Zmlyc3Rfd2FpdCA/ICZiLT5maXJzdF93YWl0LT5u b2RlIDogTlVMTCkpOwogCUdFTV9CVUdfT04oIXJjdV9hY2Nlc3NfcG9pbnRlcihiLT5pcnFfc2Vx bm9fYmgpIF4gUkJfRU1QVFlfUk9PVCgmYi0+d2FpdGVycykpOwotCXNwaW5fdW5sb2NrKCZiLT5s b2NrKTsKKwlzcGluX3VubG9ja19iaCgmYi0+bG9jayk7CiB9CiAKIHN0YXRpYyBib29sIHNpZ25h bF9jb21wbGV0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCkBAIC00NzMs MTQgKzQ3NywxNCBAQCBzdGF0aWMgaW50IGludGVsX2JyZWFkY3J1bWJzX3NpZ25hbGVyKHZvaWQg KmFyZykKIAkJCSAqIHdlIGp1c3QgY29tcGxldGVkIC0gc28gZG91YmxlIGNoZWNrIHdlIGFyZSBz dGlsbAogCQkJICogdGhlIG9sZGVzdCBiZWZvcmUgcGlja2luZyB0aGUgbmV4dCBvbmUuCiAJCQkg Ki8KLQkJCXNwaW5fbG9jaygmYi0+bG9jayk7CisJCQlzcGluX2xvY2tfYmgoJmItPmxvY2spOwog CQkJaWYgKHJlcXVlc3QgPT0gYi0+Zmlyc3Rfc2lnbmFsKSB7CiAJCQkJc3RydWN0IHJiX25vZGUg KnJiID0KIAkJCQkJcmJfbmV4dCgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpOwogCQkJCWItPmZp cnN0X3NpZ25hbCA9IHJiID8gdG9fc2lnbmFsZXIocmIpIDogTlVMTDsKIAkJCX0KIAkJCXJiX2Vy YXNlKCZyZXF1ZXN0LT5zaWduYWxpbmcubm9kZSwgJmItPnNpZ25hbHMpOwotCQkJc3Bpbl91bmxv Y2soJmItPmxvY2spOworCQkJc3Bpbl91bmxvY2tfYmgoJmItPmxvY2spOwogCiAJCQlpOTE1X2dl bV9yZXF1ZXN0X3B1dChyZXF1ZXN0KTsKIAkJfSBlbHNlIHsKQEAgLTUwMiw3ICs1MDYsNyBAQCB2 b2lkIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKIAlzdHJ1Y3QgcmJfbm9kZSAqcGFyZW50LCAqKnA7CiAJYm9vbCBmaXJz dCwgd2FrZXVwOwogCi0JLyogbG9ja2VkIGJ5IGRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5n KCkgKi8KKwkvKiBsb2NrZWQgYnkgZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmcoKSAoaXJx c2FmZSBmZW5jZS0+bG9jaykgKi8KIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJnJlcXVlc3QtPmxvY2sp OwogCWlmICghcmVxdWVzdC0+Z2xvYmFsX3NlcW5vKQogCQlyZXR1cm47CkBAIC01OTQsNyArNTk4 LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQogCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUt PmJyZWFkY3J1bWJzOwogCiAJY2FuY2VsX2Zha2VfaXJxKGVuZ2luZSk7Ci0Jc3Bpbl9sb2NrKCZi LT5sb2NrKTsKKwlzcGluX2xvY2tfYmgoJmItPmxvY2spOwogCiAJX19pbnRlbF9icmVhZGNydW1i c19kaXNhYmxlX2lycShiKTsKIAlpZiAoaW50ZWxfZW5naW5lX2hhc193YWl0ZXIoZW5naW5lKSkg ewpAQCAtNjA3LDcgKzYxMSw3IEBAIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0X2JyZWFkY3J1bWJz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJaXJxX2Rpc2FibGUoZW5naW5lKTsK IAl9CiAKLQlzcGluX3VubG9jaygmYi0+bG9jayk7CisJc3Bpbl91bmxvY2tfYmgoJmItPmxvY2sp OwogfQogCiB2b2lkIGludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKLS0gCjIuMTAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==