From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 1/4] sync_file: add a mutex to protect fence and callback members. (v22) Date: Wed, 15 Mar 2017 14:27:46 +1000 Message-ID: <20170315042749.13259-2-airlied@gmail.com> References: <20170315042749.13259-1-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170315042749.13259-1-airlied@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: amd-gfx.lists.freedesktop.org RnJvbTogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KClRoaXMgaXNuJ3QgbmVlZGVk IGN1cnJlbnRseSwgYnV0IHRvIHJldXNlIHN5bmMgZmlsZSBmb3IgVnVsa2FuCnBlcm1hbmVudCBz aGFyZWQgc2VtYXBob3JlIHNlbWFudGljcywgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHN3YXAKdGhl IGZlbmNlIGJhY2tpbmcgYSBzeW5jIGZpbGUuIFRoaXMgcGF0Y2ggYWRkcyBhIG11dGV4IHRvIHRo ZQpzeW5jIGZpbGUgYW5kIHVzZXMgdG8gcHJvdGVjdCBhY2Nlc3NlcyB0byB0aGUgZmVuY2UgYW5k IGNiIG1lbWJlcnMuCgp2MS4xOiBmaXggdGhlIGxvY2tpbmcgKEp1bGlhIExhd2FsbCkuCnYyOiB1 c2UgcmN1IHRyeSBvbmUKClNpZ25lZC1vZmYtYnk6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhh dC5jb20+Ci0tLQogZHJpdmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jIHwgODIgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3N5bmNfZmls ZS5oICAgfCAgNSArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jIGIvZHJp dmVycy9kbWEtYnVmL3N5bmNfZmlsZS5jCmluZGV4IDIzMjEwMzUuLjhiMzRmMjEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZG1hLWJ1Zi9zeW5jX2ZpbGUuYworKysgYi9kcml2ZXJzL2RtYS1idWYvc3lu Y19maWxlLmMKQEAgLTI4LDYgKzI4LDEwIEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9v cGVyYXRpb25zIHN5bmNfZmlsZV9mb3BzOwogCisjZGVmaW5lIHN5bmNfZmlsZV9oZWxkKG9iaikg bG9ja2RlcF9pc19oZWxkKCYob2JqKS0+bG9jaykKKyNkZWZpbmUgc3luY19maWxlX2Fzc2VydF9o ZWxkKG9iaikgXAorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJihvYmopLT5sb2NrKQorCiBzdGF0aWMg c3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2FsbG9jKHZvaWQpCiB7CiAJc3RydWN0IHN5bmNf ZmlsZSAqc3luY19maWxlOwpAQCAtNDcsNiArNTEsOSBAQCBzdGF0aWMgc3RydWN0IHN5bmNfZmls ZSAqc3luY19maWxlX2FsbG9jKHZvaWQpCiAKIAlJTklUX0xJU1RfSEVBRCgmc3luY19maWxlLT5j Yi5ub2RlKTsKIAorCVJDVV9JTklUX1BPSU5URVIoc3luY19maWxlLT5mZW5jZSwgTlVMTCk7CisK KwltdXRleF9pbml0KCZzeW5jX2ZpbGUtPmxvY2spOwogCXJldHVybiBzeW5jX2ZpbGU7CiAKIGVy cjoKQEAgLTgwLDcgKzg3LDkgQEAgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX2NyZWF0ZShz dHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSkKIAlpZiAoIXN5bmNfZmlsZSkKIAkJcmV0dXJuIE5VTEw7 CiAKLQlzeW5jX2ZpbGUtPmZlbmNlID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CisJZG1hX2ZlbmNl X2dldChmZW5jZSk7CisKKwlSQ1VfSU5JVF9QT0lOVEVSKHN5bmNfZmlsZS0+ZmVuY2UsIGZlbmNl KTsKIAogCXNucHJpbnRmKHN5bmNfZmlsZS0+bmFtZSwgc2l6ZW9mKHN5bmNfZmlsZS0+bmFtZSks ICIlcy0lcyVsbHUtJWQiLAogCQkgZmVuY2UtPm9wcy0+Z2V0X2RyaXZlcl9uYW1lKGZlbmNlKSwK QEAgLTEyNCwxMyArMTMzLDI2IEBAIHN0cnVjdCBkbWFfZmVuY2UgKnN5bmNfZmlsZV9nZXRfZmVu Y2UoaW50IGZkKQogCWlmICghc3luY19maWxlKQogCQlyZXR1cm4gTlVMTDsKIAotCWZlbmNlID0g ZG1hX2ZlbmNlX2dldChzeW5jX2ZpbGUtPmZlbmNlKTsKKwlpZiAoIXJjdV9hY2Nlc3NfcG9pbnRl cihzeW5jX2ZpbGUtPmZlbmNlKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyY3VfcmVhZF9sb2NrKCk7 CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZzeW5jX2ZpbGUtPmZlbmNlKTsKKwly Y3VfcmVhZF91bmxvY2soKTsKKwogCWZwdXQoc3luY19maWxlLT5maWxlKTsKIAogCXJldHVybiBm ZW5jZTsKIH0KIEVYUE9SVF9TWU1CT0woc3luY19maWxlX2dldF9mZW5jZSk7CiAKK3N0YXRpYyBp bmxpbmUgc3RydWN0IGRtYV9mZW5jZSAqCitzeW5jX2ZpbGVfZ2V0X2ZlbmNlX2xvY2tlZChzdHJ1 Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUpCit7CisJcmV0dXJuIHJjdV9kZXJlZmVyZW5jZV9wcm90 ZWN0ZWQoc3luY19maWxlLT5mZW5jZSwKKwkJCQkJIHN5bmNfZmlsZV9oZWxkKHN5bmNfZmlsZSkp OworfQorCiBzdGF0aWMgaW50IHN5bmNfZmlsZV9zZXRfZmVuY2Uoc3RydWN0IHN5bmNfZmlsZSAq c3luY19maWxlLAogCQkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZXMsIGludCBudW1f ZmVuY2VzKQogewpAQCAtMTQzLDcgKzE2NSw3IEBAIHN0YXRpYyBpbnQgc3luY19maWxlX3NldF9m ZW5jZShzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGUsCiAJICogd2Ugb3duIHRoZSByZWZlcmVu Y2Ugb2YgdGhlIGRtYV9mZW5jZV9hcnJheSBjcmVhdGlvbi4KIAkgKi8KIAlpZiAobnVtX2ZlbmNl cyA9PSAxKSB7Ci0JCXN5bmNfZmlsZS0+ZmVuY2UgPSBmZW5jZXNbMF07CisJCVJDVV9JTklUX1BP SU5URVIoc3luY19maWxlLT5mZW5jZSwgZmVuY2VzWzBdKTsKIAkJa2ZyZWUoZmVuY2VzKTsKIAl9 IGVsc2UgewogCQlhcnJheSA9IGRtYV9mZW5jZV9hcnJheV9jcmVhdGUobnVtX2ZlbmNlcywgZmVu Y2VzLApAQCAtMTUyLDE3ICsxNzQsMjAgQEAgc3RhdGljIGludCBzeW5jX2ZpbGVfc2V0X2ZlbmNl KHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAkJaWYgKCFhcnJheSkKIAkJCXJldHVybiAt RU5PTUVNOwogCi0JCXN5bmNfZmlsZS0+ZmVuY2UgPSAmYXJyYXktPmJhc2U7CisJCVJDVV9JTklU X1BPSU5URVIoc3luY19maWxlLT5mZW5jZSwgJmFycmF5LT5iYXNlKTsKIAl9CiAKIAlyZXR1cm4g MDsKIH0KIAorLyogbXVzdCBiZSBjYWxsZWQgd2l0aCBzeW5jX2ZpbGUgbG9jayB0YWtlbiAqLwog c3RhdGljIHN0cnVjdCBkbWFfZmVuY2UgKipnZXRfZmVuY2VzKHN0cnVjdCBzeW5jX2ZpbGUgKnN5 bmNfZmlsZSwKIAkJCQkgICAgIGludCAqbnVtX2ZlbmNlcykKIHsKLQlpZiAoZG1hX2ZlbmNlX2lz X2FycmF5KHN5bmNfZmlsZS0+ZmVuY2UpKSB7Ci0JCXN0cnVjdCBkbWFfZmVuY2VfYXJyYXkgKmFy cmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KHN5bmNfZmlsZS0+ZmVuY2UpOworCXN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlID0gc3luY19maWxlX2dldF9mZW5jZV9sb2NrZWQoc3luY19maWxlKTsKKwor CWlmIChkbWFfZmVuY2VfaXNfYXJyYXkoZmVuY2UpKSB7CisJCXN0cnVjdCBkbWFfZmVuY2VfYXJy YXkgKmFycmF5ID0gdG9fZG1hX2ZlbmNlX2FycmF5KGZlbmNlKTsKIAogCQkqbnVtX2ZlbmNlcyA9 IGFycmF5LT5udW1fZmVuY2VzOwogCQlyZXR1cm4gYXJyYXktPmZlbmNlczsKQEAgLTIwNCwxMCAr MjI5LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgc3luY19maWxlICpzeW5jX2ZpbGVfbWVyZ2UoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IHN5bmNfZmlsZSAqYSwKIAlpZiAoIXN5bmNfZmlsZSkKIAkJcmV0 dXJuIE5VTEw7CiAKKwltdXRleF9sb2NrKCZhLT5sb2NrKTsKKwltdXRleF9sb2NrKCZiLT5sb2Nr KTsKIAlhX2ZlbmNlcyA9IGdldF9mZW5jZXMoYSwgJmFfbnVtX2ZlbmNlcyk7CiAJYl9mZW5jZXMg PSBnZXRfZmVuY2VzKGIsICZiX251bV9mZW5jZXMpOwotCWlmIChhX251bV9mZW5jZXMgPiBJTlRf TUFYIC0gYl9udW1fZmVuY2VzKQotCQlyZXR1cm4gTlVMTDsKKwlpZiAoYV9udW1fZmVuY2VzID4g SU5UX01BWCAtIGJfbnVtX2ZlbmNlcykgeworCQlnb3RvIHVubG9jazsKKwl9CiAKIAludW1fZmVu Y2VzID0gYV9udW1fZmVuY2VzICsgYl9udW1fZmVuY2VzOwogCkBAIC0yNjgsMTEgKzI5NiwxNyBA QCBzdGF0aWMgc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlX21lcmdlKGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCBzeW5jX2ZpbGUgKmEsCiAJCWdvdG8gZXJyOwogCX0KIAorCW11dGV4X3VubG9j aygmYi0+bG9jayk7CisJbXV0ZXhfdW5sb2NrKCZhLT5sb2NrKTsKKwogCXN0cmxjcHkoc3luY19m aWxlLT5uYW1lLCBuYW1lLCBzaXplb2Yoc3luY19maWxlLT5uYW1lKSk7CiAJcmV0dXJuIHN5bmNf ZmlsZTsKIAogZXJyOgogCWZwdXQoc3luY19maWxlLT5maWxlKTsKK3VubG9jazoKKwltdXRleF91 bmxvY2soJmItPmxvY2spOworCW11dGV4X3VubG9jaygmYS0+bG9jayk7CiAJcmV0dXJuIE5VTEw7 CiAKIH0KQEAgLTI4MSwxMCArMzE1LDE1IEBAIHN0YXRpYyB2b2lkIHN5bmNfZmlsZV9mcmVlKHN0 cnVjdCBrcmVmICprcmVmKQogewogCXN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSA9IGNvbnRh aW5lcl9vZihrcmVmLCBzdHJ1Y3Qgc3luY19maWxlLAogCQkJCQkJICAgICBrcmVmKTsKKwlzdHJ1 Y3QgZG1hX2ZlbmNlICpmZW5jZTsKKworCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3Rl ZChzeW5jX2ZpbGUtPmZlbmNlLCAxKTsKKwlpZiAoZmVuY2UpIHsKKwkJaWYgKHRlc3RfYml0KFBP TExfRU5BQkxFRCwgJmZlbmNlLT5mbGFncykpCisJCQlkbWFfZmVuY2VfcmVtb3ZlX2NhbGxiYWNr KGZlbmNlLCAmc3luY19maWxlLT5jYik7CisJCWRtYV9mZW5jZV9wdXQoZmVuY2UpOworCX0KIAot CWlmICh0ZXN0X2JpdChQT0xMX0VOQUJMRUQsICZzeW5jX2ZpbGUtPmZlbmNlLT5mbGFncykpCi0J CWRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc3luY19maWxlLT5mZW5jZSwgJnN5bmNfZmlsZS0+ Y2IpOwotCWRtYV9mZW5jZV9wdXQoc3luY19maWxlLT5mZW5jZSk7CiAJa2ZyZWUoc3luY19maWxl KTsKIH0KIApAQCAtMjk5LDE2ICszMzgsMjAgQEAgc3RhdGljIGludCBzeW5jX2ZpbGVfcmVsZWFz ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHN0YXRpYyB1bnNpZ25l ZCBpbnQgc3luY19maWxlX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQp CiB7CiAJc3RydWN0IHN5bmNfZmlsZSAqc3luY19maWxlID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwor CXVuc2lnbmVkIGludCByZXRfdmFsOwogCiAJcG9sbF93YWl0KGZpbGUsICZzeW5jX2ZpbGUtPndx LCB3YWl0KTsKIAorCW11dGV4X2xvY2soJnN5bmNfZmlsZS0+bG9jayk7CiAJaWYgKCF0ZXN0X2Fu ZF9zZXRfYml0KFBPTExfRU5BQkxFRCwgJnN5bmNfZmlsZS0+ZmVuY2UtPmZsYWdzKSkgewogCQlp ZiAoZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhzeW5jX2ZpbGUtPmZlbmNlLCAmc3luY19maWxlLT5j YiwKIAkJCQkJICAgZmVuY2VfY2hlY2tfY2JfZnVuYykgPCAwKQogCQkJd2FrZV91cF9hbGwoJnN5 bmNfZmlsZS0+d3EpOwogCX0KKwlyZXRfdmFsID0gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNf ZmlsZS0+ZmVuY2UpID8gUE9MTElOIDogMDsKKwltdXRleF91bmxvY2soJnN5bmNfZmlsZS0+bG9j ayk7CiAKLQlyZXR1cm4gZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKHN5bmNfZmlsZS0+ZmVuY2UpID8g UE9MTElOIDogMDsKKwlyZXR1cm4gcmV0X3ZhbDsKIH0KIAogc3RhdGljIGxvbmcgc3luY19maWxl X2lvY3RsX21lcmdlKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKQEAgLTM5Myw2ICs0MzYs NyBAQCBzdGF0aWMgbG9uZyBzeW5jX2ZpbGVfaW9jdGxfZmVuY2VfaW5mbyhzdHJ1Y3Qgc3luY19m aWxlICpzeW5jX2ZpbGUsCiAJaWYgKGluZm8uZmxhZ3MgfHwgaW5mby5wYWQpCiAJCXJldHVybiAt RUlOVkFMOwogCisJbXV0ZXhfbG9jaygmc3luY19maWxlLT5sb2NrKTsKIAlmZW5jZXMgPSBnZXRf ZmVuY2VzKHN5bmNfZmlsZSwgJm51bV9mZW5jZXMpOwogCiAJLyoKQEAgLTQwNCwxMyArNDQ4LDE3 IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9pbmZvKHN0cnVjdCBzeW5jX2Zp bGUgKnN5bmNfZmlsZSwKIAlpZiAoIWluZm8ubnVtX2ZlbmNlcykKIAkJZ290byBub19mZW5jZXM7 CiAKLQlpZiAoaW5mby5udW1fZmVuY2VzIDwgbnVtX2ZlbmNlcykKLQkJcmV0dXJuIC1FSU5WQUw7 CisJaWYgKGluZm8ubnVtX2ZlbmNlcyA8IG51bV9mZW5jZXMpIHsKKwkJcmV0ID0gLUVJTlZBTDsK KwkJZ290byBvdXQ7CisJfQogCiAJc2l6ZSA9IG51bV9mZW5jZXMgKiBzaXplb2YoKmZlbmNlX2lu Zm8pOwogCWZlbmNlX2luZm8gPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotCWlmICghZmVu Y2VfaW5mbykKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFmZW5jZV9pbmZvKSB7CisJCXJldCA9 IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KIAogCWZvciAoaSA9IDA7IGkgPCBudW1fZmVuY2Vz OyBpKyspCiAJCXN5bmNfZmlsbF9mZW5jZV9pbmZvKGZlbmNlc1tpXSwgJmZlbmNlX2luZm9baV0p OwpAQCAtNDMzLDcgKzQ4MSw3IEBAIHN0YXRpYyBsb25nIHN5bmNfZmlsZV9pb2N0bF9mZW5jZV9p bmZvKHN0cnVjdCBzeW5jX2ZpbGUgKnN5bmNfZmlsZSwKIAogb3V0OgogCWtmcmVlKGZlbmNlX2lu Zm8pOwotCisJbXV0ZXhfdW5sb2NrKCZzeW5jX2ZpbGUtPmxvY2spOwogCXJldHVybiByZXQ7CiB9 CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3luY19maWxlLmggYi9pbmNsdWRlL2xpbnV4 L3N5bmNfZmlsZS5oCmluZGV4IDNlM2FiODQuLjAwNjQxMmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvc3luY19maWxlLmgKKysrIGIvaW5jbHVkZS9saW51eC9zeW5jX2ZpbGUuaApAQCAtMzAs NiArMzAsNyBAQAogICogQHdxOgkJCXdhaXQgcXVldWUgZm9yIGZlbmNlIHNpZ25hbGluZwogICog QGZlbmNlOgkJZmVuY2Ugd2l0aCB0aGUgZmVuY2VzIGluIHRoZSBzeW5jX2ZpbGUKICAqIEBjYjoJ CQlmZW5jZSBjYWxsYmFjayBpbmZvcm1hdGlvbgorICogQGxvY2s6ICAgICAgICAgICAgICAgbXV0 ZXggdG8gcHJvdGVjdCBmZW5jZS9jYiAtIHVzZWQgZm9yIHNlbWFwaG9yZXMKICAqLwogc3RydWN0 IHN5bmNfZmlsZSB7CiAJc3RydWN0IGZpbGUJCSpmaWxlOwpAQCAtNDEsOCArNDIsMTAgQEAgc3Ry dWN0IHN5bmNfZmlsZSB7CiAKIAl3YWl0X3F1ZXVlX2hlYWRfdAl3cTsKIAotCXN0cnVjdCBkbWFf ZmVuY2UJKmZlbmNlOworCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UJKmZlbmNlOwogCXN0cnVjdCBk bWFfZmVuY2VfY2IgY2I7CisJLyogcHJvdGVjdHMgdGhlIGZlbmNlIHBvaW50ZXIgYW5kIGNiICov CisJc3RydWN0IG11dGV4IGxvY2s7CiB9OwogCiAjZGVmaW5lIFBPTExfRU5BQkxFRCBETUFfRkVO Q0VfRkxBR19VU0VSX0JJVFMKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK