From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 03/13] drm/fb-helper: Add top-level lock Date: Tue, 27 Jun 2017 16:59:26 +0200 Message-ID: <20170627145936.18983-4-daniel.vetter@ffwll.ch> References: <20170627145936.18983-1-daniel.vetter@ffwll.ch> 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 0BD376E3D2 for ; Tue, 27 Jun 2017 14:59:47 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id y5so6274287wmh.3 for ; Tue, 27 Jun 2017 07:59:46 -0700 (PDT) In-Reply-To: <20170627145936.18983-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Thierry Reding List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkludHJvZHVjZSBhIG5l dyB0b3AtbGV2ZWwgbG9jayBmb3IgdGhlIEZCIGhlbHBlciBjb2RlLiBUaGlzIHdpbGwgYWxsb3cK YmV0dGVyIGxvY2tpbmcgZ3JhbnVsYXJpdHkgYW5kIGF2b2lkIHRoZSBuZWVkIHRvIGFidXNlIG1v ZGVzZXQgbG9ja2luZwpmb3IgdGhpcyBwdXJwb3NlIGluc3RlYWQuCgpUaGlzIHBhdGNoIGp1c3Qg YWRkcyB0aGUgbmV3IGxvY2sgZXZlcnl3aGVyZSB3ZSBjdXJyZW50bHkgZ3JhYgptb2RlX2NvbmZp Zy0+bXV0ZXggKGV4cGxpY2l0bHksIG9yIHRocm91Z2ggZHJtX21vZGVzZXRfbG9ja19hbGwpLgpG b2xsb3ctdXAgcGF0Y2hlcyB3aWxsIHB1c2ggdGhlIGttcyBsb2NraW5nIGRvd24gaW50byBvbmx5 IHRoZSBwbGFjZXMKdGhhdCBuZWVkIGl0LgoKdjI6Ci0gdXNlIGxvY2tkZXBfYXNzZXJ0X2hlbGQK LSB1c2UgZHJtX2ZiX2hlbHBlcl9mb3JfZWFjaF9jb25uZWN0b3Igd2hlcmUgcG9zc2libGUKLSB1 c2UgdGhlIG5ldyB0b3AtbGV2ZWwgbG9jayBjb25zaXN0ZW50bHksIGkuZS4gaW4gYWxsIHRoZSBw bGFjZXMKICB3ZSdyZSBjdXJyZW50bHkgYWNxdWlyaW5nIG1vZGVfY29uZmlnLm11dGV4LgotIHNt YWxsIHBvbGlzaCB0byB0aGUga2VybmVsZG9jCgpUZXN0ZWQtYnk6IEpvaG4gU3R1bHR6IDxqb2hu LnN0dWx0ekBsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGlu Z0BudmlkaWEuY29tPiAodjEpClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAZmZ3bGwuY2g+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDQ3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL2RybS9k cm1fZmJfaGVscGVyLmggICAgIHwgMTkgKysrKysrKysrKysrKysrKy0KIDIgZmlsZXMgY2hhbmdl ZCwgNjEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIu YwppbmRleCA1ZTczY2M5ZjUxZTMuLmEwZDQ2MDM4NTdkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCkBAIC0xMTksNyArMTE5LDggQEAgc3RhdGljIGludCBfX2RybV9mYl9oZWxwZXJfYWRkX29u ZV9jb25uZWN0b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAlpZiAoIWRybV9m YmRldl9lbXVsYXRpb24pCiAJCXJldHVybiAwOwogCi0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2Vk KCZmYl9oZWxwZXItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpKTsKKwlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZmYl9oZWxwZXItPmxvY2spOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmZiX2hlbHBlci0+ ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAKIAljb3VudCA9IGZiX2hlbHBlci0+Y29ubmVjdG9y X2NvdW50ICsgMTsKIApAQCAtMTUwLDExICsxNTEsMTMgQEAgaW50IGRybV9mYl9oZWxwZXJfYWRk X29uZV9jb25uZWN0b3Ioc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIHsKIAlpbnQg ZXJyOwogCisJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIAltdXRleF9sb2NrKCZmYl9o ZWxwZXItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwogCiAJZXJyID0gX19kcm1fZmJfaGVscGVy X2FkZF9vbmVfY29ubmVjdG9yKGZiX2hlbHBlciwgY29ubmVjdG9yKTsKIAogCW11dGV4X3VubG9j aygmZmJfaGVscGVyLT5kZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKKwltdXRleF91bmxvY2soJmZi X2hlbHBlci0+bG9jayk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTg0LDYgKzE4Nyw3IEBAIGlu dCBkcm1fZmJfaGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoc3RydWN0IGRybV9mYl9o ZWxwZXIgKmZiX2hlbHBlcikKIAlpZiAoIWRybV9mYmRldl9lbXVsYXRpb24pCiAJCXJldHVybiAw OwogCisJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIAltdXRleF9sb2NrKCZkZXYtPm1v ZGVfY29uZmlnLm11dGV4KTsKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZj b25uX2l0ZXIpOwogCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25u X2l0ZXIpIHsKQEAgLTIwNyw2ICsyMTEsNyBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRk X2FsbF9jb25uZWN0b3JzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiBvdXQ6CiAJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwogCW11dGV4X3VubG9jaygm ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2sp OwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTIyMSw5ICsyMjYsOSBAQCBzdGF0aWMgaW50IF9fZHJt X2ZiX2hlbHBlcl9yZW1vdmVfb25lX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJf aGVscGVyLAogCWlmICghZHJtX2ZiZGV2X2VtdWxhdGlvbikKIAkJcmV0dXJuIDA7CiAKLQlXQVJO X09OKCFtdXRleF9pc19sb2NrZWQoJmZiX2hlbHBlci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCkp OworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmZiX2hlbHBlci0+bG9jayk7CiAKLQlmb3IgKGkgPSAw OyBpIDwgZmJfaGVscGVyLT5jb25uZWN0b3JfY291bnQ7IGkrKykgeworCWRybV9mYl9oZWxwZXJf Zm9yX2VhY2hfY29ubmVjdG9yKGZiX2hlbHBlciwgaSkgewogCQlpZiAoZmJfaGVscGVyLT5jb25u ZWN0b3JfaW5mb1tpXS0+Y29ubmVjdG9yID09IGNvbm5lY3RvcikKIAkJCWJyZWFrOwogCX0KQEAg LTI0NywxMSArMjUyLDEzIEBAIGludCBkcm1fZmJfaGVscGVyX3JlbW92ZV9vbmVfY29ubmVjdG9y KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiB7CiAJaW50IGVycjsKIAorCW11dGV4 X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5kZXYtPm1v ZGVfY29uZmlnLm11dGV4KTsKIAogCWVyciA9IF9fZHJtX2ZiX2hlbHBlcl9yZW1vdmVfb25lX2Nv bm5lY3RvcihmYl9oZWxwZXIsIGNvbm5lY3Rvcik7CiAKIAltdXRleF91bmxvY2soJmZiX2hlbHBl ci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxv Y2spOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTUxNywxNiArNTI0LDIxIEBAIGludCBkcm1fZmJf aGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tlZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq ZmJfaGVscGVyKQogCWlmICghZHJtX2ZiZGV2X2VtdWxhdGlvbikKIAkJcmV0dXJuIC1FTk9ERVY7 CiAKKwltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCWRybV9tb2Rlc2V0X2xvY2tfYWxs KGRldik7CisKIAlyZXQgPSByZXN0b3JlX2ZiZGV2X21vZGUoZmJfaGVscGVyKTsKIAogCWRvX2Rl bGF5ZWQgPSBmYl9oZWxwZXItPmRlbGF5ZWRfaG90cGx1ZzsKIAlpZiAoZG9fZGVsYXllZCkKIAkJ ZmJfaGVscGVyLT5kZWxheWVkX2hvdHBsdWcgPSBmYWxzZTsKKwogCWRybV9tb2Rlc2V0X3VubG9j a19hbGwoZGV2KTsKKwltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiAKIAlpZiAoZG9f ZGVsYXllZCkKIAkJZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGZiX2hlbHBlcik7CisKIAly ZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZf bW9kZV91bmxvY2tlZCk7CkBAIC01NzYsMTEgKzU4OCwxMyBAQCBzdGF0aWMgYm9vbCBkcm1fZmJf aGVscGVyX2ZvcmNlX2tlcm5lbF9tb2RlKHZvaWQpCiAJCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9z dGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKIAkJCWNvbnRpbnVlOwogCisJCW11dGV4X2xv Y2soJmhlbHBlci0+bG9jayk7CiAJCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7CiAJCXJldCA9 IHJlc3RvcmVfZmJkZXZfbW9kZShoZWxwZXIpOwogCQlpZiAocmV0KQogCQkJZXJyb3IgPSB0cnVl OwogCQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CisJCW11dGV4X3VubG9jaygmaGVscGVy LT5sb2NrKTsKIAl9CiAJcmV0dXJuIGVycm9yOwogfQpAQCAtNjIwLDkgKzYzNCwxMSBAQCBzdGF0 aWMgdm9pZCBkcm1fZmJfaGVscGVyX2RwbXMoc3RydWN0IGZiX2luZm8gKmluZm8sIGludCBkcG1z X21vZGUpCiAJLyoKIAkgKiBGb3IgZWFjaCBDUlRDIGluIHRoaXMgZmIsIHR1cm4gdGhlIGNvbm5l Y3RvcnMgb24vb2ZmLgogCSAqLworCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJZHJt X21vZGVzZXRfbG9ja19hbGwoZGV2KTsKIAlpZiAoIWRybV9mYl9oZWxwZXJfaXNfYm91bmQoZmJf aGVscGVyKSkgewogCQlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CisJCW11dGV4X3VubG9j aygmZmJfaGVscGVyLT5sb2NrKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtNjQxLDYgKzY1Nyw3IEBA IHN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50 IGRwbXNfbW9kZSkKIAkJfQogCX0KIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CisJbXV0 ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogfQogCiAvKioKQEAgLTc2Miw2ICs3NzksNyBA QCB2b2lkIGRybV9mYl9oZWxwZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAogCUlOSVRfV09SSygmaGVscGVyLT5yZXN1bWVfd29y aywgZHJtX2ZiX2hlbHBlcl9yZXN1bWVfd29ya2VyKTsKIAlJTklUX1dPUksoJmhlbHBlci0+ZGly dHlfd29yaywgZHJtX2ZiX2hlbHBlcl9kaXJ0eV93b3JrKTsKIAloZWxwZXItPmRpcnR5X2NsaXAu eDEgPSBoZWxwZXItPmRpcnR5X2NsaXAueTEgPSB+MDsKKwltdXRleF9pbml0KCZoZWxwZXItPmxv Y2spOwogCWhlbHBlci0+ZnVuY3MgPSBmdW5jczsKIAloZWxwZXItPmRldiA9IGRldjsKIH0KQEAg LTkyNyw2ICs5NDUsNyBAQCB2b2lkIGRybV9mYl9oZWxwZXJfZmluaShzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyKQogCX0KIAltdXRleF91bmxvY2soJmtlcm5lbF9mYl9oZWxwZXJfbG9j ayk7CiAKKwltdXRleF9kZXN0cm95KCZmYl9oZWxwZXItPmxvY2spOwogCWRybV9mYl9oZWxwZXJf Y3J0Y19mcmVlKGZiX2hlbHBlcik7CiAKIH0KQEAgLTEyNTcsOSArMTI3NiwxMSBAQCBpbnQgZHJt X2ZiX2hlbHBlcl9zZXRjbWFwKHN0cnVjdCBmYl9jbWFwICpjbWFwLCBzdHJ1Y3QgZmJfaW5mbyAq aW5mbykKIAlpZiAob29wc19pbl9wcm9ncmVzcykKIAkJcmV0dXJuIC1FQlVTWTsKIAorCW11dGV4 X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKIAlp ZiAoIWRybV9mYl9oZWxwZXJfaXNfYm91bmQoZmJfaGVscGVyKSkgewogCQlkcm1fbW9kZXNldF91 bmxvY2tfYWxsKGRldik7CisJCW11dGV4X3VubG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIAkJcmV0 dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTEyOTIsNiArMTMxMyw3IEBAIGludCBkcm1fZmJfaGVscGVy X3NldGNtYXAoc3RydWN0IGZiX2NtYXAgKmNtYXAsIHN0cnVjdCBmYl9pbmZvICppbmZvKQogCX0K ICBvdXQ6CiAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOworCW11dGV4X3VubG9jaygmZmJf aGVscGVyLT5sb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxw ZXJfc2V0Y21hcCk7CkBAIC0xMzE0LDYgKzEzMzYsNyBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pb2N0 bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCwKIAlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGM7CiAJaW50IHJldCA9IDA7CiAKKwltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2sp OwogCW11dGV4X2xvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwogCWlmICghZHJtX2ZiX2hl bHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7CiAJCXJldCA9IC1FQlVTWTsKQEAgLTEzNjAsNiAr MTM4Myw3IEBAIGludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1 bnNpZ25lZCBpbnQgY21kLAogCiB1bmxvY2s6CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29u ZmlnLm11dGV4KTsKKwltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJcmV0dXJuIHJl dDsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9pb2N0bCk7CkBAIC0xNTg5LDkgKzE2 MTMsMTEgQEAgaW50IGRybV9mYl9oZWxwZXJfcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3Jl ZW5pbmZvICp2YXIsCiAJaWYgKG9vcHNfaW5fcHJvZ3Jlc3MpCiAJCXJldHVybiAtRUJVU1k7CiAK KwltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRl dik7CiAJaWYgKCFkcm1fZmJfaGVscGVyX2lzX2JvdW5kKGZiX2hlbHBlcikpIHsKIAkJZHJtX21v ZGVzZXRfdW5sb2NrX2FsbChkZXYpOworCQltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7 CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC0xNjAwLDYgKzE2MjYsNyBAQCBpbnQgZHJtX2Zi X2hlbHBlcl9wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwKIAllbHNl CiAJCXJldCA9IHBhbl9kaXNwbGF5X2xlZ2FjeSh2YXIsIGluZm8pOwogCWRybV9tb2Rlc2V0X3Vu bG9ja19hbGwoZGV2KTsKKwltdXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CiAKIAlyZXR1 cm4gcmV0OwogfQpAQCAtMjI2Niw2ICsyMjkzLDcgQEAgc3RhdGljIHZvaWQgZHJtX3NldHVwX2Ny dGNzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiAJCURSTV9ERUJVR19LTVMoIk5v IGNvbm5lY3RvcnMgcmVwb3J0ZWQgY29ubmVjdGVkIHdpdGggbW9kZXNcbiIpOwogCiAJLyogcHJl dmVudCBjb25jdXJyZW50IG1vZGlmaWNhdGlvbiBvZiBjb25uZWN0b3JfY291bnQgYnkgaG90cGx1 ZyAqLworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmZiX2hlbHBlci0+bG9jayk7CiAJbG9ja2RlcF9h c3NlcnRfaGVsZCgmZmJfaGVscGVyLT5kZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKIAogCWNydGNz ID0ga2NhbGxvYyhmYl9oZWxwZXItPmNvbm5lY3Rvcl9jb3VudCwKQEAgLTIzOTIsMTIgKzI0MjAs MTQgQEAgaW50IGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWcoc3RydWN0IGRybV9mYl9oZWxw ZXIgKmZiX2hlbHBlciwgaW50IGJwcF9zZWwpCiAJaWYgKCFkcm1fZmJkZXZfZW11bGF0aW9uKQog CQlyZXR1cm4gMDsKIAorCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJbXV0ZXhfbG9j aygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAJZHJtX3NldHVwX2NydGNzKGZiX2hlbHBlciwK IAkJCWRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoLAogCQkJZGV2LT5tb2RlX2NvbmZpZy5tYXhf aGVpZ2h0KTsKIAlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShmYl9oZWxwZXIs IGJwcF9zZWwpOwogCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CisJbXV0 ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAK QEAgLTI0NDUsMjUgKzI0NzUsMzQgQEAgRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2luaXRp YWxfY29uZmlnKTsKIGludCBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoc3RydWN0IGRybV9m Yl9oZWxwZXIgKmZiX2hlbHBlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVs cGVyLT5kZXY7CisJaW50IGVyciA9IDA7CiAKIAlpZiAoIWRybV9mYmRldl9lbXVsYXRpb24pCiAJ CXJldHVybiAwOwogCisJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5sb2NrKTsKIAltdXRleF9sb2Nr KCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKKwogCWlmICghZmJfaGVscGVyLT5mYiB8fCAhZHJt X2ZiX2hlbHBlcl9pc19ib3VuZChmYl9oZWxwZXIpKSB7CiAJCWZiX2hlbHBlci0+ZGVsYXllZF9o b3RwbHVnID0gdHJ1ZTsKIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsK LQkJcmV0dXJuIDA7CisJCWdvdG8gdW5sb2NrOwogCX0KKwogCURSTV9ERUJVR19LTVMoIlxuIik7 CiAKIAlkcm1fc2V0dXBfY3J0Y3MoZmJfaGVscGVyLCBmYl9oZWxwZXItPmZiLT53aWR0aCwgZmJf aGVscGVyLT5mYi0+aGVpZ2h0KTsKIAogCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5t dXRleCk7CisJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCiAJZHJtX2ZiX2hlbHBl cl9zZXRfcGFyKGZiX2hlbHBlci0+ZmJkZXYpOwogCiAJcmV0dXJuIDA7CisKK3VubG9jazoKKwlt dXRleF91bmxvY2soJmZiX2hlbHBlci0+bG9jayk7CisJcmV0dXJuIGVycjsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX2ZiX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCmluZGV4 IDExOWU1ZTQ2MDljNy4uZWExNzBiOTZlODhkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f ZmJfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCkBAIC0xNjksNyAr MTY5LDYgQEAgc3RydWN0IGRybV9mYl9oZWxwZXJfY29ubmVjdG9yIHsKICAqIEBjcnRjX2luZm86 IHBlci1DUlRDIGhlbHBlciBzdGF0ZSAobW9kZSwgeC95IG9mZnNldCwgZXRjKQogICogQGNvbm5l Y3Rvcl9jb3VudDogbnVtYmVyIG9mIGNvbm5lY3RlZCBjb25uZWN0b3JzCiAgKiBAY29ubmVjdG9y X2luZm9fYWxsb2NfY291bnQ6IHNpemUgb2YgY29ubmVjdG9yX2luZm8KLSAqIEBjb25uZWN0b3Jf aW5mbzogYXJyYXkgb2YgcGVyLWNvbm5lY3RvciBpbmZvcm1hdGlvbgogICogQGZ1bmNzOiBkcml2 ZXIgY2FsbGJhY2tzIGZvciBmYiBoZWxwZXIKICAqIEBmYmRldjogZW11bGF0ZWQgZmJkZXYgZGV2 aWNlIGluZm8gc3RydWN0CiAgKiBAcHNldWRvX3BhbGV0dGU6IGZha2UgcGFsZXR0ZSBvZiAxNiBj b2xvcnMKQEAgLTE5MSw2ICsxOTAsMTIgQEAgc3RydWN0IGRybV9mYl9oZWxwZXIgewogCXN0cnVj dCBkcm1fZmJfaGVscGVyX2NydGMgKmNydGNfaW5mbzsKIAlpbnQgY29ubmVjdG9yX2NvdW50Owog CWludCBjb25uZWN0b3JfaW5mb19hbGxvY19jb3VudDsKKwkvKioKKwkgKiBAY29ubmVjdG9yX2lu Zm86CisJICoKKwkgKiBBcnJheSBvZiBwZXItY29ubmVjdG9yIGluZm9ybWF0aW9uLiBEbyBub3Qg aXRlcmF0ZSBkaXJlY3RseSwgYnV0IHVzZQorCSAqIGRybV9mYl9oZWxwZXJfZm9yX2VhY2hfY29u bmVjdG9yLgorCSAqLwogCXN0cnVjdCBkcm1fZmJfaGVscGVyX2Nvbm5lY3RvciAqKmNvbm5lY3Rv cl9pbmZvOwogCWNvbnN0IHN0cnVjdCBkcm1fZmJfaGVscGVyX2Z1bmNzICpmdW5jczsKIAlzdHJ1 Y3QgZmJfaW5mbyAqZmJkZXY7CkBAIC0yMDEsNiArMjA2LDE4IEBAIHN0cnVjdCBkcm1fZmJfaGVs cGVyIHsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVzdW1lX3dvcms7CiAKIAkvKioKKwkgKiBAbG9j azoKKwkgKgorCSAqIFRvcC1sZXZlbCBGQkRFViBoZWxwZXIgbG9jay4gVGhpcyBwcm90ZWN0cyBh bGwgaW50ZXJuYWwgZGF0YQorCSAqIHN0cnVjdHVyZXMgYW5kIGxpc3RzLCBzdWNoIGFzIEBjb25u ZWN0b3JfaW5mbyBhbmQgQGNydGNfaW5mby4KKwkgKgorCSAqIEZJWE1FOiBmYmRldiBlbXVsYXRp b24gbG9ja2luZyBpcyBhIG1lc3MgYW5kIGxvbmcgdGVybSB3ZSB3YW50IHRvCisJICogcHJvdGVj dCBhbGwgaGVscGVyIGludGVybmFsIHN0YXRlIHdpdGggdGhpcyBsb2NrIGFzIHdlbGwgYXMgcmVk dWNlCisJICogY29yZSBLTVMgbG9ja2luZyBhcyBtdWNoIGFzIHBvc3NpYmxlLgorCSAqLworCXN0 cnVjdCBtdXRleCBsb2NrOworCisJLyoqCiAJICogQGtlcm5lbF9mYl9saXN0OgogCSAqCiAJICog RW50cnkgb24gdGhlIGdsb2JhbCBrZXJuZWxfZmJfaGVscGVyX2xpc3QsIHVzZWQgZm9yIGtnZGIg ZW50cnkvZXhpdC4KLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==