From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 4/8] sync_file: add a mutex to protect fence and callback members. (v4) Date: Wed, 12 Apr 2017 14:57:22 +1000 Message-ID: <20170412045726.13689-5-airlied@gmail.com> References: <20170412045726.13689-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170412045726.13689-1-airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgcGF0Y2ggYWxsb3dz IHRoZSB1bmRlcmx5aW5nIGZlbmNlIGluIGEgc3luY19maWxlIHRvIGJlIGNoYW5nZWQKb3Igc2V0 IHRvIE5VTEwuIFRoaXMgaXNuJ3QgY3VycmVudGx5IHJlcXVpcmVkIGJ1dCBmb3IgVnVsa2FuCnNl bWFwaG9yZXMgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHN3YXAgYW5kIHJlc2V0IHRoZSBmZW5jZS4K CkluIG9yZGVyIHRvIGZhY2lsaWF0ZSB0aGlzLCBpdCB1c2VzIHJjdSB0byBwcm90ZWN0IHRoZSBm ZW5jZSwKYWxvbmcgd2l0aCBhIG5ldyBtdXRleC4gVGhlIG11dGV4IGFsc28gcHJvdGVjdHMgdGhl IGNhbGxiYWNrLgpJdCBhbHNvIGNoZWNrcyBmb3IgTlVMTCB3aGVuIHJldHJpZXZpbmcgdGhlIHJj dSBwcm90ZWN0ZWQKZmVuY2UgaW4gY2FzZSBpdCBoYXMgYmVlbiByZXNldC4KCnYxLjE6IGZpeCB0 aGUgbG9ja2luZyAoSnVsaWEgTGF3YWxsKS4KdjI6IHVzZSByY3UgdHJ5IG9uZQp2MzogZml4IHBv bGwgdG8gdXNlIHByb3BlciByY3UsIGZpeHVwIG1lcmdlL2ZpbGwgaW9jdGxzCnRvIG5vdCBjcmFz aCBvbiBOVUxMIGZlbmNlIGNhc2VzLgp2NDogdXNlIHJjdSBpbiBldmVuIG1vcmUgcGxhY2VzLCBh ZGQgbWlzc2luZyBmcHV0CgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNv bT4KLS0tCiBkcml2ZXJzL2RtYS1idWYvc3luY19maWxlLmMgfCAxMzUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvc3luY19maWxlLmgg ICB8ICAgNiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jIGIvZHJpdmVy cy9kbWEtYnVmL3N5bmNfZmlsZS5jCmluZGV4IDg2NjdiNDguLjU3ZWE3YzcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYworKysgYi9kcml2ZXJzL2RtYS1idWYvc3luY19m aWxlLmMKQEAgLTI4LDYgKzI4LDEwIEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVy YXRpb25zIHN5bmNfZmlsZV9mb3BzOwogCisjZGVmaW5lIHN5bmNfZmlsZV9oZWxkKG9iaikgbG9j a2RlcF9pc19oZWxkKCYob2JqKS0+bG9jaykKKyNkZWZpbmUgc3luY19maWxlX2Fzc2VydF9oZWxk KG9iaikgXAorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJihvYmopLT5sb2NrKQorCiAvKioKICAqIHN5 bmNfZmlsZV92YWxpZGF0ZV90eXBlX2ZsYWdzIC0gdmFsaWRhdGUgdHlwZS9mbGFncyBmb3Igc3Vw cG9ydAogICogQHR5cGU6IHR5cGUgb2Ygc3luYyBmaWxlIG9iamVjdApAQCAtODEsNiArODUsMTAg QEAgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2FsbG9jKHVpbnQzMl90IHR5cGUsIHVpbnQz Ml90IGZsYWdzKQogCiAJc3luY19maWxlLT50eXBlID0gdHlwZTsKIAlzeW5jX2ZpbGUtPmZsYWdz ID0gZmxhZ3M7CisKKwlSQ1VfSU5JVF9QT0lOVEVSKHN5bmNfZmlsZS0+ZmVuY2UsIE5VTEwpOwor CisJbXV0ZXhfaW5pdCgmc3luY19maWxlLT5sb2NrKTsKIAlyZXR1cm4gc3luY19maWxlOwogCiBl cnI6CkBAIC0xMTksNyArMTI3LDkgQEAgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0 ZShzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKIAlpZiAoIXN5bmNfZmlsZSkKIAkJcmV0dXJuIE5V TEw7CiAKLQlzeW5jX2ZpbGUtPmZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CisJZG1hX2Zl bmNlX2dldChmZW5jZSk7CisKKwlSQ1VfSU5JVF9QT0lOVEVSKHN5bmNfZmlsZS0+ZmVuY2UsIGZl bmNlKTsKIAogCXNucHJpbnRmKHN5bmNfZmlsZS0+bmFtZSwgc2l6ZW9mKHN5bmNfZmlsZS0+bmFt ZSksICIlcy0lcyVsbHUtJWQiLAogCQkgZmVuY2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNl KSwKQEAgLTE3MCwxMyArMTgwLDI4IEBAIHN0cnVjdCBkbWFfZmVuY2UgKnN5bmNfZmlsZV9nZXRf ZmVuY2UoaW50IGZkKQogCWlmICghc3luY19maWxlKQogCQlyZXR1cm4gTlVMTDsKIAotCWZlbmNl ID0gZG1hX2ZlbmNlX2dldChzeW5jX2ZpbGUtPmZlbmNlKTsKKwlpZiAoIXJjdV9hY2Nlc3NfcG9p bnRlcihzeW5jX2ZpbGUtPmZlbmNlKSkgeworCQlmcHV0KHN5bmNfZmlsZS0+ZmlsZSk7CisJCXJl dHVybiBOVUxMOworCX0KKworCXJjdV9yZWFkX2xvY2soKTsKKwlmZW5jZSA9IGRtYV9mZW5jZV9n ZXRfcmN1X3NhZmUoJnN5bmNfZmlsZS0+ZmVuY2UpOworCXJjdV9yZWFkX3VubG9jaygpOworCiAJ ZnB1dChzeW5jX2ZpbGUtPmZpbGUpOwogCiAJcmV0dXJuIGZlbmNlOwogfQogRVhQT1JUX1NZTUJP TChzeW5jX2ZpbGVfZ2V0X2ZlbmNlKTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgZG1hX2ZlbmNl ICoKK3N5bmNfZmlsZV9nZXRfZmVuY2VfbG9ja2VkKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmls ZSkKK3sKKwlyZXR1cm4gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChzeW5jX2ZpbGUtPmZlbmNl LAorCQkJCQkgc3luY19maWxlX2hlbGQoc3luY19maWxlKSk7Cit9CisKIHN0YXRpYyBpbnQgc3lu Y19maWxlX3NldF9mZW5jZShzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUsCiAJCQkgICAgICAg c3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlcywgaW50IG51bV9mZW5jZXMpCiB7CkBAIC0xODksNyAr MjE0LDcgQEAgc3RhdGljIGludCBzeW5jX2ZpbGVfc2V0X2ZlbmNlKHN0cnVjdCBzeW5jX2ZpbGUg KnN5bmNfZmlsZSwKIAkgKiB3ZSBvd24gdGhlIHJlZmVyZW5jZSBvZiB0aGUgZG1hX2ZlbmNlX2Fy cmF5IGNyZWF0aW9uLgogCSAqLwogCWlmIChudW1fZmVuY2VzID09IDEpIHsKLQkJc3luY19maWxl LT5mZW5jZSA9IGZlbmNlc1swXTsKKwkJUkNVX0lOSVRfUE9JTlRFUihzeW5jX2ZpbGUtPmZlbmNl LCBmZW5jZXNbMF0pOwogCQlrZnJlZShmZW5jZXMpOwogCX0gZWxzZSB7CiAJCWFycmF5ID0gZG1h X2ZlbmNlX2FycmF5X2NyZWF0ZShudW1fZmVuY2VzLCBmZW5jZXMsCkBAIC0xOTgsMjQgKzIyMywz MCBAQCBzdGF0aWMgaW50IHN5bmNfZmlsZV9zZXRfZmVuY2Uoc3RydWN0IHN5bmNfZmlsZSAqc3lu Y19maWxlLAogCQlpZiAoIWFycmF5KQogCQkJcmV0dXJuIC1FTk9NRU07CiAKLQkJc3luY19maWxl LT5mZW5jZSA9ICZhcnJheS0+YmFzZTsKKwkJUkNVX0lOSVRfUE9JTlRFUihzeW5jX2ZpbGUtPmZl bmNlLCAmYXJyYXktPmJhc2UpOwogCX0KIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0 IGRtYV9mZW5jZSAqKmdldF9mZW5jZXMoc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAorLyog bXVzdCBiZSBjYWxsZWQgd2l0aCByY3UgcmVhZCBsb2NrIHRha2VuICovCitzdGF0aWMgc3RydWN0 IGRtYV9mZW5jZSAqKmdldF9mZW5jZXMoc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLAogCQkJCSAg ICAgaW50ICpudW1fZmVuY2VzKQogewotCWlmIChkbWFfZmVuY2VfaXNfYXJyYXkoc3luY19maWxl LT5mZW5jZSkpIHsKLQkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVu Y2VfYXJyYXkoc3luY19maWxlLT5mZW5jZSk7CisJaWYgKCEqZmVuY2UpIHsKKwkJKm51bV9mZW5j ZXMgPSAwOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpZiAoZG1hX2ZlbmNlX2lzX2FycmF5KCpm ZW5jZSkpIHsKKwkJc3RydWN0IGRtYV9mZW5jZV9hcnJheSAqYXJyYXkgPSB0b19kbWFfZmVuY2Vf YXJyYXkoKmZlbmNlKTsKIAogCQkqbnVtX2ZlbmNlcyA9IGFycmF5LT5udW1fZmVuY2VzOwogCQly ZXR1cm4gYXJyYXktPmZlbmNlczsKIAl9CiAKIAkqbnVtX2ZlbmNlcyA9IDE7Ci0JcmV0dXJuICZz eW5jX2ZpbGUtPmZlbmNlOworCXJldHVybiBmZW5jZTsKIH0KIAogc3RhdGljIHZvaWQgYWRkX2Zl bmNlKHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsCkBAIC0yNDUsMTYgKzI3NiwzMyBAQCBzdGF0 aWMgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX21lcmdlKGNvbnN0IGNoYXIgKm5hbWUsIHN0 cnVjdCBzeW5jX2ZpbGUgKmEsCiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlOwogCXN0cnVj dCBkbWFfZmVuY2UgKipmZW5jZXMsICoqbmZlbmNlcywgKiphX2ZlbmNlcywgKipiX2ZlbmNlczsK IAlpbnQgaSwgaV9hLCBpX2IsIG51bV9mZW5jZXMsIGFfbnVtX2ZlbmNlcywgYl9udW1fZmVuY2Vz OworCXN0cnVjdCBkbWFfZmVuY2UgKmFfZmVuY2UsICpiX2ZlbmNlOwogCiAJc3luY19maWxlID0g c3luY19maWxlX2FsbG9jKGEtPnR5cGUsIGEtPmZsYWdzKTsKIAlpZiAoIXN5bmNfZmlsZSkKIAkJ cmV0dXJuIE5VTEw7CiAKLQlhX2ZlbmNlcyA9IGdldF9mZW5jZXMoYSwgJmFfbnVtX2ZlbmNlcyk7 Ci0JYl9mZW5jZXMgPSBnZXRfZmVuY2VzKGIsICZiX251bV9mZW5jZXMpOwotCWlmIChhX251bV9m ZW5jZXMgPiBJTlRfTUFYIC0gYl9udW1fZmVuY2VzKQorCWlmICghcmN1X2FjY2Vzc19wb2ludGVy KGEtPmZlbmNlKSB8fAorCSAgICAhcmN1X2FjY2Vzc19wb2ludGVyKGItPmZlbmNlKSkKIAkJcmV0 dXJuIE5VTEw7CiAKKwlyY3VfcmVhZF9sb2NrKCk7CisJYV9mZW5jZSA9IGRtYV9mZW5jZV9nZXRf cmN1X3NhZmUoJmEtPmZlbmNlKTsKKwliX2ZlbmNlID0gZG1hX2ZlbmNlX2dldF9yY3Vfc2FmZSgm Yi0+ZmVuY2UpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJYV9mZW5jZXMgPSBnZXRfZmVuY2Vz KCZhX2ZlbmNlLCAmYV9udW1fZmVuY2VzKTsKKwliX2ZlbmNlcyA9IGdldF9mZW5jZXMoJmJfZmVu Y2UsICZiX251bV9mZW5jZXMpOworCWlmICghYV9udW1fZmVuY2VzIHx8ICFiX251bV9mZW5jZXMp CisJCWdvdG8gcHV0X3NyY19mZW5jZXM7CisKKwlpZiAoYV9udW1fZmVuY2VzID4gSU5UX01BWCAt IGJfbnVtX2ZlbmNlcykKKwkJZ290byBwdXRfc3JjX2ZlbmNlczsKKworCXN5bmNfZmlsZSA9IHN5 bmNfZmlsZV9hbGxvYyhhLT50eXBlLCBhLT5mbGFncyk7CisJaWYgKCFzeW5jX2ZpbGUpCisJCWdv dG8gcHV0X3NyY19mZW5jZXM7CisKIAludW1fZmVuY2VzID0gYV9udW1fZmVuY2VzICsgYl9udW1f ZmVuY2VzOwogCiAJZmVuY2VzID0ga2NhbGxvYyhudW1fZmVuY2VzLCBzaXplb2YoKmZlbmNlcyks IEdGUF9LRVJORUwpOwpAQCAtMzE0LDExICszNjIsMTYgQEAgc3RhdGljIHN0cnVjdCBzeW5jX2Zp bGUgKnN5bmNfZmlsZV9tZXJnZShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3luY19maWxlICph LAogCQlnb3RvIGVycjsKIAl9CiAKKwlkbWFfZmVuY2VfcHV0KGFfZmVuY2UpOworCWRtYV9mZW5j ZV9wdXQoYl9mZW5jZSk7CiAJc3RybGNweShzeW5jX2ZpbGUtPm5hbWUsIG5hbWUsIHNpemVvZihz eW5jX2ZpbGUtPm5hbWUpKTsKIAlyZXR1cm4gc3luY19maWxlOwogCiBlcnI6CiAJZnB1dChzeW5j X2ZpbGUtPmZpbGUpOworcHV0X3NyY19mZW5jZXM6CisJZG1hX2ZlbmNlX3B1dChhX2ZlbmNlKTsK KwlkbWFfZmVuY2VfcHV0KGJfZmVuY2UpOwogCXJldHVybiBOVUxMOwogCiB9CkBAIC0zMjcsMTAg KzM4MCwxNSBAQCBzdGF0aWMgdm9pZCBzeW5jX2ZpbGVfZnJlZShzdHJ1Y3Qga3JlZiAqa3JlZikK IHsKIAlzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUgPSBjb250YWluZXJfb2Yoa3JlZiwgc3Ry dWN0IHN5bmNfZmlsZSwKIAkJCQkJCSAgICAga3JlZik7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CisKKwlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY19maWxlLT5mZW5j ZSwgMSk7CisJaWYgKGZlbmNlKSB7CisJCWlmICh0ZXN0X2JpdChQT0xMX0VOQUJMRUQsICZmZW5j ZS0+ZmxhZ3MpKQorCQkJZG1hX2ZlbmNlX3JlbW92ZV9jYWxsYmFjayhmZW5jZSwgJnN5bmNfZmls ZS0+Y2IpOworCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKKwl9CiAKLQlpZiAodGVzdF9iaXQoUE9M TF9FTkFCTEVELCAmc3luY19maWxlLT5mZW5jZS0+ZmxhZ3MpKQotCQlkbWFfZmVuY2VfcmVtb3Zl X2NhbGxiYWNrKHN5bmNfZmlsZS0+ZmVuY2UsICZzeW5jX2ZpbGUtPmNiKTsKLQlkbWFfZmVuY2Vf cHV0KHN5bmNfZmlsZS0+ZmVuY2UpOwogCWtmcmVlKHN5bmNfZmlsZSk7CiB9CiAKQEAgLTM0NSwx NiArNDAzLDI1IEBAIHN0YXRpYyBpbnQgc3luY19maWxlX3JlbGVhc2Uoc3RydWN0IGlub2RlICpp bm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiBzdGF0aWMgdW5zaWduZWQgaW50IHN5bmNfZmlsZV9w b2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQogewogCXN0cnVjdCBzeW5j X2ZpbGUgKnN5bmNfZmlsZSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBpbnQgcmV0 X3ZhbCA9IDA7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7CiAKIAlwb2xsX3dhaXQoZmlsZSwg JnN5bmNfZmlsZS0+d3EsIHdhaXQpOwogCi0JaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFBPTExfRU5B QkxFRCwgJnN5bmNfZmlsZS0+ZmVuY2UtPmZsYWdzKSkgewotCQlpZiAoZG1hX2ZlbmNlX2FkZF9j YWxsYmFjayhzeW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5jYiwKLQkJCQkJICAgZmVuY2Vf Y2hlY2tfY2JfZnVuYykgPCAwKQotCQkJd2FrZV91cF9hbGwoJnN5bmNfZmlsZS0+d3EpOworCW11 dGV4X2xvY2soJnN5bmNfZmlsZS0+bG9jayk7CisKKwlmZW5jZSA9IHN5bmNfZmlsZV9nZXRfZmVu Y2VfbG9ja2VkKHN5bmNfZmlsZSk7CisJaWYgKGZlbmNlKSB7CisJCWlmICghdGVzdF9hbmRfc2V0 X2JpdChQT0xMX0VOQUJMRUQsICZmZW5jZS0+ZmxhZ3MpKSB7CisJCQlpZiAoZG1hX2ZlbmNlX2Fk ZF9jYWxsYmFjayhmZW5jZSwgJnN5bmNfZmlsZS0+Y2IsCisJCQkJCQkgICBmZW5jZV9jaGVja19j Yl9mdW5jKSA8IDApCisJCQkJd2FrZV91cF9hbGwoJnN5bmNfZmlsZS0+d3EpOworCQl9CisJCXJl dF92YWwgPSBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpID8gUE9MTElOIDogMDsKIAl9CisJ bXV0ZXhfdW5sb2NrKCZzeW5jX2ZpbGUtPmxvY2spOwogCi0JcmV0dXJuIGRtYV9mZW5jZV9pc19z aWduYWxlZChzeW5jX2ZpbGUtPmZlbmNlKSA/IFBPTExJTiA6IDA7CisJcmV0dXJuIHJldF92YWw7 CiB9CiAKIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9tZXJnZShzdHJ1Y3Qgc3luY19maWxl ICpzeW5jX2ZpbGUsCkBAIC00MzYsNiArNTAzLDcgQEAgc3RhdGljIGxvbmcgc3luY19maWxlX2lv Y3RsX2ZlbmNlX2luZm8oc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogCXN0cnVjdCBzeW5j X2ZpbGVfaW5mbyBpbmZvOwogCXN0cnVjdCBzeW5jX2ZlbmNlX2luZm8gKmZlbmNlX2luZm8gPSBO VUxMOwogCXN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXM7CisJc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2U7CiAJX191MzIgc2l6ZTsKIAlpbnQgbnVtX2ZlbmNlcywgcmV0LCBpOwogCkBAIC00NDUsNyAr NTEzLDE1IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9pbmZvKHN0cnVjdCBz eW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAlpZiAoaW5mby5mbGFncyB8fCBpbmZvLnBhZCkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKLQlmZW5jZXMgPSBnZXRfZmVuY2VzKHN5bmNfZmlsZSwgJm51bV9mZW5j ZXMpOworCXJjdV9yZWFkX2xvY2soKTsKKwlmZW5jZSA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUo JnN5bmNfZmlsZS0+ZmVuY2UpOworCXJjdV9yZWFkX3VubG9jaygpOworCisJZmVuY2VzID0gZ2V0 X2ZlbmNlcygmZmVuY2UsICZudW1fZmVuY2VzKTsKKworCS8qIGlmIHRoZXJlIGFyZSBubyBmZW5j ZXMgaW4gdGhlIHN5bmNfZmlsZSBqdXN0IHJldHVybiAqLworCWlmICghbnVtX2ZlbmNlcykKKwkJ Z290byBub19mZW5jZXM7CiAKIAkvKgogCSAqIFBhc3NpbmcgbnVtX2ZlbmNlcyA9IDAgbWVhbnMg dGhhdCB1c2Vyc3BhY2UgZG9lc24ndCB3YW50IHRvCkBAIC00NTYsMTMgKzUzMiwxNyBAQCBzdGF0 aWMgbG9uZyBzeW5jX2ZpbGVfaW9jdGxfZmVuY2VfaW5mbyhzdHJ1Y3Qgc3luY19maWxlICpzeW5j X2ZpbGUsCiAJaWYgKCFpbmZvLm51bV9mZW5jZXMpCiAJCWdvdG8gbm9fZmVuY2VzOwogCi0JaWYg KGluZm8ubnVtX2ZlbmNlcyA8IG51bV9mZW5jZXMpCi0JCXJldHVybiAtRUlOVkFMOworCWlmIChp bmZvLm51bV9mZW5jZXMgPCBudW1fZmVuY2VzKSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8g b3V0OworCX0KIAogCXNpemUgPSBudW1fZmVuY2VzICogc2l6ZW9mKCpmZW5jZV9pbmZvKTsKIAlm ZW5jZV9pbmZvID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWZlbmNlX2luZm8p Ci0JCXJldHVybiAtRU5PTUVNOworCWlmICghZmVuY2VfaW5mbykgeworCQlyZXQgPSAtRU5PTUVN OworCQlnb3RvIG91dDsKKwl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX2ZlbmNlczsgaSsrKQog CQlzeW5jX2ZpbGxfZmVuY2VfaW5mbyhmZW5jZXNbaV0sICZmZW5jZV9pbmZvW2ldKTsKQEAgLTQ3 NSw3ICs1NTUsMTAgQEAgc3RhdGljIGxvbmcgc3luY19maWxlX2lvY3RsX2ZlbmNlX2luZm8oc3Ry dWN0IHN5bmNfZmlsZSAqc3luY19maWxlLAogCiBub19mZW5jZXM6CiAJc3RybGNweShpbmZvLm5h bWUsIHN5bmNfZmlsZS0+bmFtZSwgc2l6ZW9mKGluZm8ubmFtZSkpOwotCWluZm8uc3RhdHVzID0g ZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpOworCWlmIChudW1fZmVuY2Vz KQorCQlpbmZvLnN0YXR1cyA9IGRtYV9mZW5jZV9pc19zaWduYWxlZChzeW5jX2ZpbGUtPmZlbmNl KTsKKwllbHNlCisJCWluZm8uc3RhdHVzID0gLUVOT0VOVDsKIAlpbmZvLm51bV9mZW5jZXMgPSBu dW1fZmVuY2VzOwogCiAJaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcsICZpbmZv LCBzaXplb2YoaW5mbykpKQpAQCAtNDg1LDcgKzU2OCw3IEBAIHN0YXRpYyBsb25nIHN5bmNfZmls ZV9pb2N0bF9mZW5jZV9pbmZvKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAogb3V0Ogog CWtmcmVlKGZlbmNlX2luZm8pOwotCisJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CiAJcmV0dXJuIHJl dDsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaCBiL2luY2x1ZGUv bGludXgvc3luY19maWxlLmgKaW5kZXggZTY4M2RkMS4uNGJmNjYxYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9zeW5jX2ZpbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N5bmNfZmlsZS5oCkBA IC0zNCw2ICszNCw3IEBACiAgKiBAY2I6CQkJZmVuY2UgY2FsbGJhY2sgaW5mb3JtYXRpb24KICAq IEB0eXBlOiAgICAgICAgICAgICAgIHN5bmMgZmlsZSB0eXBlCiAgKiBAZmxhZ3M6ICAgICAgICAg ICAgICBmbGFncyB1c2VkIHRvIGNyZWF0ZSBzeW5jIGZpbGUKKyAqIEBsb2NrOiAgICAgICAgICAg ICAgIG11dGV4IHRvIHByb3RlY3QgZmVuY2UvY2IgLSB1c2VkIGZvciBzZW1hcGhvcmVzCiAgKi8K IHN0cnVjdCBzeW5jX2ZpbGUgewogCXN0cnVjdCBmaWxlCQkqZmlsZTsKQEAgLTQ1LDEwICs0Niwx MyBAQCBzdHJ1Y3Qgc3luY19maWxlIHsKIAogCXdhaXRfcXVldWVfaGVhZF90CXdxOwogCi0Jc3Ry dWN0IGRtYV9mZW5jZQkqZmVuY2U7CisJc3RydWN0IGRtYV9mZW5jZSBfX3JjdQkqZmVuY2U7CiAJ c3RydWN0IGRtYV9mZW5jZV9jYiBjYjsKIAl1aW50MzJfdCB0eXBlOwogCXVpbnQzMl90IGZsYWdz OworCisJLyogcHJvdGVjdHMgdGhlIGZlbmNlIHBvaW50ZXIgYW5kIGNiICovCisJc3RydWN0IG11 dGV4IGxvY2s7CiB9OwogCiAjZGVmaW5lIFBPTExfRU5BQkxFRCBETUFfRkVOQ0VfRkxBR19VU0VS X0JJVFMKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK