From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 08/19] drm: Fix deadlock between event_lock and vbl_lock/vblank_time_lock Date: Wed, 6 Aug 2014 14:49:51 +0300 Message-ID: <1407325803-6944-9-git-send-email-ville.syrjala@linux.intel.com> References: <1407325803-6944-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1407325803-6944-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkN1 cnJlbnRseSBib3RoIGRybV9pcnEuYyBhbmQgc2V2ZXJhbCBkcml2ZXJzIGNhbGwgZHJtX3ZibGFu a19wdXQoKQp3aGlsZSBob2xkaW5nIGV2ZW50X2xvY2suIE5vdyB0aGF0IGRybV92YmxhbmtfcHV0 KCkgY2FuIGRpc2FibGUgdGhlCnZibGFuayBpbnRlcnJ1cHQgZGlyZWN0bHkgaXQgbWF5IG5lZWQg dG8gZ3JhYiB2YmxfbG9jayBhbmQKdmJsYW5rX3RpbWVfbG9jay4gVGhhdCBjYXVzZXMgZGVhZGxv Y2tzIHNpbmNlIHdlIHRha2UgdGhlIGxvY2tzCmluIHRoZSBvcHBvc2l0ZSBvcmRlciBpbiB0d28g cGxhY2VzIGluIGRybV9pcnEuYy4gU28gbGV0J3MgbWFrZQpzdXJlIHRoZSBsb2NraW5nIG9yZGVy IGlzIGFsd2F5cyBldmVudF9sb2NrLT52YmxfbG9jay0+dmJsYW5rX3RpbWVfbG9jay4KCkluIGRy bV92Ymxhbmtfb2ZmKCkgcHVsbCB1cCBldmVudF9sb2NrIGZyb20gdW5kZXJuZWF0aCB2YmxfbG9j ay4gSG9sZAp0aGUgZXZlbnRfbG9jayBhY3Jvc3MgdGhlIHdob2xlIG9wZXJhdGlvbiB0byBtYWtl IHN1cmUgd2Ugb25seSBzZW5kCm91dCB0aGUgZXZlbnRzIHRoYXQgd2VyZSBvbiB0aGUgcXVldWUg d2hlbiB3ZSBkaXNhYmxlZCB0aGUgaW50ZXJydXB0LAphbmQgbm90IG9uZXMgdGhhdCBnb3QgYWRk ZWQganVzdCBhZnRlciAoYXNzdW1pbmcgZHJtX3ZibGFua19vbigpIGFscmVhZHkKbWFuYWdlZCB0 byBnZXQgY2FsbGVkIHNvbWV3aGVyZSBiZXR3ZWVuKS4KClRvIHNvcnQgdGhlIG90aGVyIGRlYWRs b2NrIHB1bGwgdGhlIGV2ZW50X2xvY2sgb3V0IGZyb20KZHJtX2hhbmRsZV92YmxhbmtfZXZlbnRz KCkgaW50byBkcm1faGFuZGxlX3ZibGFuaygpIHRvIGJlIHRha2VuIG91dHNpZGUKdmJsYW5rX3Rp bWVfbG9jay4gQWRkIHRoZSBhcHByb3ByaWF0ZSBhc3NlcnRfc3Bpbl9sb2NrZWQoKSB0bwpkcm1f aGFuZGxlX3ZibGFua19ldmVudHMoKS4KClJldmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3 LmQucm9wZXJAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMg fCA0NyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5j CmluZGV4IGI0NDYwYmYuLjkzNTM2MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwpAQCAtMTAzNywxNCArMTAzNywy NSBAQCB2b2lkIGRybV92Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRj KQogCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJdW5zaWduZWQgaW50IHNlcTsKIAotCXNwaW5f bG9ja19pcnFzYXZlKCZkZXYtPnZibF9sb2NrLCBpcnFmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNh dmUoJmRldi0+ZXZlbnRfbG9jaywgaXJxZmxhZ3MpOworCisJc3Bpbl9sb2NrKCZkZXYtPnZibF9s b2NrKTsKIAl2YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShkZXYsIGNydGMpOwogCXdha2VfdXAoJnZi bGFuay0+cXVldWUpOwogCisJLyoKKwkgKiBQcmV2ZW50IHN1YnNlcXVlbnQgZHJtX3ZibGFua19n ZXQoKSBmcm9tIHJlLWVuYWJsaW5nCisJICogdGhlIHZibGFuayBpbnRlcnJ1cHQgYnkgYnVtcGlu ZyB0aGUgcmVmY291bnQuCisJICovCisJaWYgKCF2YmxhbmstPmlubW9kZXNldCkgeworCQlhdG9t aWNfaW5jKCZ2YmxhbmstPnJlZmNvdW50KTsKKwkJdmJsYW5rLT5pbm1vZGVzZXQgPSAxOworCX0K KwlzcGluX3VubG9jaygmZGV2LT52YmxfbG9jayk7CisKIAkvKiBTZW5kIGFueSBxdWV1ZWQgdmJs YW5rIGV2ZW50cywgbGVzdCB0aGUgbmF0aXZlcyBncm93IGRpc3F1aWV0ICovCiAJc2VxID0gZHJt X3ZibGFua19jb3VudF9hbmRfdGltZShkZXYsIGNydGMsICZub3cpOwogCi0Jc3Bpbl9sb2NrKCZk ZXYtPmV2ZW50X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlLCB0LCAmZGV2LT52 YmxhbmtfZXZlbnRfbGlzdCwgYmFzZS5saW5rKSB7CiAJCWlmIChlLT5waXBlICE9IGNydGMpCiAJ CQljb250aW51ZTsKQEAgLTEwNTUsMTggKzEwNjYsNyBAQCB2b2lkIGRybV92Ymxhbmtfb2ZmKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQogCQlkcm1fdmJsYW5rX3B1dChkZXYsIGUt PnBpcGUpOwogCQlzZW5kX3ZibGFua19ldmVudChkZXYsIGUsIHNlcSwgJm5vdyk7CiAJfQotCXNw aW5fdW5sb2NrKCZkZXYtPmV2ZW50X2xvY2spOwotCi0JLyoKLQkgKiBQcmV2ZW50IHN1YnNlcXVl bnQgZHJtX3ZibGFua19nZXQoKSBmcm9tIHJlLWVuYWJsaW5nCi0JICogdGhlIHZibGFuayBpbnRl cnJ1cHQgYnkgYnVtcGluZyB0aGUgcmVmY291bnQuCi0JICovCi0JaWYgKCF2YmxhbmstPmlubW9k ZXNldCkgewotCQlhdG9taWNfaW5jKCZ2YmxhbmstPnJlZmNvdW50KTsKLQkJdmJsYW5rLT5pbm1v ZGVzZXQgPSAxOwotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+dmJsX2xvY2ss IGlycWZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGly cWZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3ZibGFua19vZmYpOwogCkBAIC0xNDQ2LDEy ICsxNDQ2LDExIEBAIHN0YXRpYyB2b2lkIGRybV9oYW5kbGVfdmJsYW5rX2V2ZW50cyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5r X2V2ZW50ICplLCAqdDsKIAlzdHJ1Y3QgdGltZXZhbCBub3c7Ci0JdW5zaWduZWQgbG9uZyBmbGFn czsKIAl1bnNpZ25lZCBpbnQgc2VxOwogCi0Jc2VxID0gZHJtX3ZibGFua19jb3VudF9hbmRfdGlt ZShkZXYsIGNydGMsICZub3cpOworCWFzc2VydF9zcGluX2xvY2tlZCgmZGV2LT5ldmVudF9sb2Nr KTsKIAotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKKwlzZXEg PSBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKGRldiwgY3J0YywgJm5vdyk7CiAKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUoZSwgdCwgJmRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIGJhc2UubGlu aykgewogCQlpZiAoZS0+cGlwZSAhPSBjcnRjKQpAQCAtMTQ2Nyw4ICsxNDY2LDYgQEAgc3RhdGlj IHZvaWQgZHJtX2hhbmRsZV92YmxhbmtfZXZlbnRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBjcnRjKQogCQlzZW5kX3ZibGFua19ldmVudChkZXYsIGUsIHNlcSwgJm5vdyk7CiAJfQogCi0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0KIAl0cmFj ZV9kcm1fdmJsYW5rX2V2ZW50KGNydGMsIHNlcSk7CiB9CiAKQEAgLTE0OTEsMTUgKzE0ODgsMTgg QEAgYm9vbCBkcm1faGFuZGxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0 YykKIAlpZiAoIWRldi0+bnVtX2NydGNzKQogCQlyZXR1cm4gZmFsc2U7CiAKKwlzcGluX2xvY2tf aXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBpcnFmbGFncyk7CisKIAkvKiBOZWVkIHRpbWVzdGFt cCBsb2NrIHRvIHByZXZlbnQgY29uY3VycmVudCBleGVjdXRpb24gd2l0aAogCSAqIHZibGFuayBl bmFibGUvZGlzYWJsZSwgYXMgdGhpcyB3b3VsZCBjYXVzZSBpbmNvbnNpc3RlbnQKIAkgKiBvciBj b3JydXB0ZWQgdGltZXN0YW1wcyBhbmQgdmJsYW5rIGNvdW50cy4KIAkgKi8KLQlzcGluX2xvY2tf aXJxc2F2ZSgmZGV2LT52YmxhbmtfdGltZV9sb2NrLCBpcnFmbGFncyk7CisJc3Bpbl9sb2NrKCZk ZXYtPnZibGFua190aW1lX2xvY2spOwogCiAJLyogVmJsYW5rIGlycSBoYW5kbGluZyBkaXNhYmxl ZC4gTm90aGluZyB0byBkby4gKi8KIAlpZiAoIXZibGFuay0+ZW5hYmxlZCkgewotCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZkZXYtPnZibGFua190aW1lX2xvY2ssIGlycWZsYWdzKTsKKwkJc3Bp bl91bmxvY2soJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmRldi0+ZXZlbnRfbG9jaywgaXJxZmxhZ3MpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBA IC0xNTM5LDEwICsxNTM5LDEzIEBAIGJvb2wgZHJtX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGNydGMpCiAJCQkgIGNydGMsIChpbnQpIGRpZmZfbnMpOwogCX0KIAor CXNwaW5fdW5sb2NrKCZkZXYtPnZibGFua190aW1lX2xvY2spOworCiAJd2FrZV91cCgmdmJsYW5r LT5xdWV1ZSk7CiAJZHJtX2hhbmRsZV92YmxhbmtfZXZlbnRzKGRldiwgY3J0Yyk7CiAKLQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPnZibGFua190aW1lX2xvY2ssIGlycWZsYWdzKTsKKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGlycWZsYWdzKTsKKwogCXJl dHVybiB0cnVlOwogfQogRVhQT1JUX1NZTUJPTChkcm1faGFuZGxlX3ZibGFuayk7Ci0tIAoxLjgu NS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=