From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Convert breadcrumbs spinlock to be irqsafe Date: Thu, 27 Oct 2016 17:10:36 +0100 Message-ID: <20161027161036.5443-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF5E16E8DC for ; Thu, 27 Oct 2016 16:10:40 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id m83so3422484wmc.0 for ; Thu, 27 Oct 2016 09:10:40 -0700 (PDT) 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 ZXh0IHNlY3Rpb25zLAp0aGVyZWZvcmUgd2UgbmVlZCB0byBlbXBsb3kgdGhlIGlycXNhZmUgc3Bp bmxvY2sgdmFyaWFudHMuCgooVGhpcyBpcyBzcGxpdCBvdXQgb2YgdGhlIGRlZmVyIGdsb2JhbCBz ZXFubyBhbGxvY2F0aW9uIHBhdGNoIGR1ZSB0bwpyZWFsaXNhdGlvbiB0aGF0IHdlIG5lZWQgYSBt b3JlIGNvbXBsZXRlIGNvbnZlcnNpb24gaWYgd2Ugd2FudCB0byBkZWZlcgpyZXF1ZXN0IHN1Ym1p c3Npb24gZXZlbiBmdXJ0aGVyLikKClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5A bGludXguaW50ZWwuY29tCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMg ICAgICB8IDEyICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9icmVhZGNy dW1icy5jIHwgMzQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwppbmRleCA5MjVhYWVkZDdmZDkuLjhkM2NiOGY1ZmY0MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTY4MywxNCArNjgzLDE0IEBAIHN0YXRpYyB2b2lk IGk5MTVfcmluZ19zZXFub19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAlzZXFfcHJpbnRmKG0s ICJDdXJyZW50IHNlcXVlbmNlICglcyk6ICV4XG4iLAogCQkgICBlbmdpbmUtPm5hbWUsIGludGVs X2VuZ2luZV9nZXRfc2Vxbm8oZW5naW5lKSk7CiAKLQlzcGluX2xvY2soJmItPmxvY2spOworCXNw aW5fbG9ja19pcnEoJmItPmxvY2spOwogCWZvciAocmIgPSByYl9maXJzdCgmYi0+d2FpdGVycyk7 IHJiOyByYiA9IHJiX25leHQocmIpKSB7CiAJCXN0cnVjdCBpbnRlbF93YWl0ICp3ID0gY29udGFp bmVyX29mKHJiLCB0eXBlb2YoKncpLCBub2RlKTsKIAogCQlzZXFfcHJpbnRmKG0sICJXYWl0aW5n ICglcyk6ICVzIFslZF0gb24gJXhcbiIsCiAJCQkgICBlbmdpbmUtPm5hbWUsIHctPnRzay0+Y29t bSwgdy0+dHNrLT5waWQsIHctPnNlcW5vKTsKIAl9Ci0Jc3Bpbl91bmxvY2soJmItPmxvY2spOwor CXNwaW5fdW5sb2NrX2lycSgmYi0+bG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9nZW1fc2Vx bm9faW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCkBAIC0xMzU1LDE0ICsxMzU1 LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKnVudXNlZCkKIAkJCSAgIHllc25vKGludGVsX2VuZ2luZV9oYXNfd2FpdGVyKGVuZ2lu ZSkpLAogCQkJICAgeWVzbm8odGVzdF9iaXQoZW5naW5lLT5pZCwKIAkJCQkJICAmZGV2X3ByaXYt PmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKSkpOwotCQlzcGluX2xvY2soJmItPmxvY2spOwor CQlzcGluX2xvY2tfaXJxKCZiLT5sb2NrKTsKIAkJZm9yIChyYiA9IHJiX2ZpcnN0KCZiLT53YWl0 ZXJzKTsgcmI7IHJiID0gcmJfbmV4dChyYikpIHsKIAkJCXN0cnVjdCBpbnRlbF93YWl0ICp3ID0g Y29udGFpbmVyX29mKHJiLCB0eXBlb2YoKncpLCBub2RlKTsKIAogCQkJc2VxX3ByaW50ZihtLCAi XHQlcyBbJWRdIHdhaXRpbmcgZm9yICV4XG4iLAogCQkJCSAgIHctPnRzay0+Y29tbSwgdy0+dHNr LT5waWQsIHctPnNlcW5vKTsKIAkJfQotCQlzcGluX3VubG9jaygmYi0+bG9jayk7CisJCXNwaW5f dW5sb2NrX2lycSgmYi0+bG9jayk7CiAKIAkJc2VxX3ByaW50ZihtLCAiXHRBQ1RIRCA9IDB4JTA4 bGx4IFtjdXJyZW50IDB4JTA4bGx4XVxuIiwKIAkJCSAgIChsb25nIGxvbmcpZW5naW5lLT5oYW5n Y2hlY2suYWN0aGQsCkBAIC0zMjY1LDE0ICszMjY1LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9lbmdp bmVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCQkgICBJOTE1X1JF QUQoUklOR19QUF9ESVJfRENMVihlbmdpbmUpKSk7CiAJCX0KIAotCQlzcGluX2xvY2soJmItPmxv Y2spOworCQlzcGluX2xvY2tfaXJxKCZiLT5sb2NrKTsKIAkJZm9yIChyYiA9IHJiX2ZpcnN0KCZi LT53YWl0ZXJzKTsgcmI7IHJiID0gcmJfbmV4dChyYikpIHsKIAkJCXN0cnVjdCBpbnRlbF93YWl0 ICp3ID0gY29udGFpbmVyX29mKHJiLCB0eXBlb2YoKncpLCBub2RlKTsKIAogCQkJc2VxX3ByaW50 ZihtLCAiXHQlcyBbJWRdIHdhaXRpbmcgZm9yICV4XG4iLAogCQkJCSAgIHctPnRzay0+Y29tbSwg dy0+dHNrLT5waWQsIHctPnNlcW5vKTsKIAkJfQotCQlzcGluX3VubG9jaygmYi0+bG9jayk7CisJ CXNwaW5fdW5sb2NrX2lycSgmYi0+bG9jayk7CiAKIAkJc2VxX3B1dHMobSwgIlxuIik7CiAJfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKaW5kZXggMGQ1ZGVmMGQyZGZl Li4wMGIyNWE3Y2VmOTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jy ZWFkY3J1bWJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMu YwpAQCAtODMsMTYgKzgzLDE2IEBAIHN0YXRpYyB2b2lkIGlycV9lbmFibGUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCSAqLwogCWVuZ2luZS0+YnJlYWRjcnVtYnMuaXJxX3Bvc3Rl ZCA9IHRydWU7CiAKLQlzcGluX2xvY2tfaXJxKCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKKwlz cGluX2xvY2soJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOwogCWVuZ2luZS0+aXJxX2VuYWJsZShl bmdpbmUpOwotCXNwaW5fdW5sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CisJc3Bp bl91bmxvY2soJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOwogfQogCiBzdGF0aWMgdm9pZCBpcnFf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiB7Ci0Jc3Bpbl9sb2NrX2ly cSgmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7CisJc3Bpbl9sb2NrKCZlbmdpbmUtPmk5MTUtPmly cV9sb2NrKTsKIAllbmdpbmUtPmlycV9kaXNhYmxlKGVuZ2luZSk7Ci0Jc3Bpbl91bmxvY2tfaXJx KCZlbmdpbmUtPmk5MTUtPmlycV9sb2NrKTsKKwlzcGluX3VubG9jaygmZW5naW5lLT5pOTE1LT5p cnFfbG9jayk7CiAKIAllbmdpbmUtPmJyZWFkY3J1bWJzLmlycV9wb3N0ZWQgPSBmYWxzZTsKIH0K QEAgLTI5MSwxMSArMjkxLDEyIEBAIGJvb2wgaW50ZWxfZW5naW5lX2FkZF93YWl0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCSAgIHN0cnVjdCBpbnRlbF93YWl0ICp3YWl0KQog ewogCXN0cnVjdCBpbnRlbF9icmVhZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOwor CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCBmaXJzdDsKIAotCXNwaW5fbG9jaygmYi0+bG9j ayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmItPmxvY2ssIGZsYWdzKTsKIAlmaXJzdCA9IF9faW50 ZWxfZW5naW5lX2FkZF93YWl0KGVuZ2luZSwgd2FpdCk7Ci0Jc3Bpbl91bmxvY2soJmItPmxvY2sp OworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmItPmxvY2ssIGZsYWdzKTsKIAogCXJldHVybiBm aXJzdDsKIH0KQEAgLTMxOCw2ICszMTksNyBAQCB2b2lkIGludGVsX2VuZ2luZV9yZW1vdmVfd2Fp dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJCQkgICAgICBzdHJ1Y3QgaW50ZWxf d2FpdCAqd2FpdCkKIHsKIAlzdHJ1Y3QgaW50ZWxfYnJlYWRjcnVtYnMgKmIgPSAmZW5naW5lLT5i cmVhZGNydW1iczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJLyogUXVpY2sgY2hlY2sgdG8g c2VlIGlmIHRoaXMgd2FpdGVyIHdhcyBhbHJlYWR5IGRlY291cGxlZCBmcm9tCiAJICogdGhlIHRy ZWUgYnkgdGhlIGJvdHRvbS1oYWxmIHRvIGF2b2lkIGNvbnRlbnRpb24gb24gdGhlIHNwaW5sb2Nr CkBAIC0zMjYsNyArMzI4LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVtb3ZlX3dhaXQoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCWlmIChSQl9FTVBUWV9OT0RFKCZ3YWl0LT5ub2Rl KSkKIAkJcmV0dXJuOwogCi0Jc3Bpbl9sb2NrKCZiLT5sb2NrKTsKKwlzcGluX2xvY2tfaXJxc2F2 ZSgmYi0+bG9jaywgZmxhZ3MpOwogCiAJaWYgKFJCX0VNUFRZX05PREUoJndhaXQtPm5vZGUpKQog CQlnb3RvIG91dF91bmxvY2s7CkBAIC00MDAsNyArNDAyLDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVf cmVtb3ZlX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCUdFTV9CVUdfT04o cmJfZmlyc3QoJmItPndhaXRlcnMpICE9CiAJCSAgIChiLT5maXJzdF93YWl0ID8gJmItPmZpcnN0 X3dhaXQtPm5vZGUgOiBOVUxMKSk7CiAJR0VNX0JVR19PTighcmN1X2FjY2Vzc19wb2ludGVyKGIt PmlycV9zZXFub19iaCkgXiBSQl9FTVBUWV9ST09UKCZiLT53YWl0ZXJzKSk7Ci0Jc3Bpbl91bmxv Y2soJmItPmxvY2spOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmItPmxvY2ssIGZsYWdzKTsK IH0KIAogc3RhdGljIGJvb2wgc2lnbmFsX2NvbXBsZXRlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKQEAgLTQ1Nyw2ICs0NTksOCBAQCBzdGF0aWMgaW50IGludGVsX2JyZWFk Y3J1bWJzX3NpZ25hbGVyKHZvaWQgKmFyZykKIAkJICovCiAJCXJlcXVlc3QgPSBSRUFEX09OQ0Uo Yi0+Zmlyc3Rfc2lnbmFsKTsKIAkJaWYgKHNpZ25hbF9jb21wbGV0ZShyZXF1ZXN0KSkgeworCQkJ dW5zaWduZWQgbG9uZyBmbGFnczsKKwogCQkJLyogV2FrZSB1cCBhbGwgb3RoZXIgY29tcGxldGVk IHdhaXRlcnMgYW5kIHNlbGVjdCB0aGUKIAkJCSAqIG5leHQgYm90dG9tLWhhbGYgZm9yIHRoZSBu ZXh0IHVzZXIgaW50ZXJydXB0LgogCQkJICovCkBAIC00NzMsMTQgKzQ3NywxNCBAQCBzdGF0aWMg aW50IGludGVsX2JyZWFkY3J1bWJzX3NpZ25hbGVyKHZvaWQgKmFyZykKIAkJCSAqIHdlIGp1c3Qg Y29tcGxldGVkIC0gc28gZG91YmxlIGNoZWNrIHdlIGFyZSBzdGlsbAogCQkJICogdGhlIG9sZGVz dCBiZWZvcmUgcGlja2luZyB0aGUgbmV4dCBvbmUuCiAJCQkgKi8KLQkJCXNwaW5fbG9jaygmYi0+ bG9jayk7CisJCQlzcGluX2xvY2tfaXJxc2F2ZSgmYi0+bG9jaywgZmxhZ3MpOwogCQkJaWYgKHJl cXVlc3QgPT0gYi0+Zmlyc3Rfc2lnbmFsKSB7CiAJCQkJc3RydWN0IHJiX25vZGUgKnJiID0KIAkJ CQkJcmJfbmV4dCgmcmVxdWVzdC0+c2lnbmFsaW5nLm5vZGUpOwogCQkJCWItPmZpcnN0X3NpZ25h bCA9IHJiID8gdG9fc2lnbmFsZXIocmIpIDogTlVMTDsKIAkJCX0KIAkJCXJiX2VyYXNlKCZyZXF1 ZXN0LT5zaWduYWxpbmcubm9kZSwgJmItPnNpZ25hbHMpOwotCQkJc3Bpbl91bmxvY2soJmItPmxv Y2spOworCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYi0+bG9jaywgZmxhZ3MpOwogCiAJCQlp OTE1X2dlbV9yZXF1ZXN0X3B1dChyZXF1ZXN0KTsKIAkJfSBlbHNlIHsKQEAgLTUwMCw2ICs1MDQs NyBAQCB2b2lkIGludGVsX2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxdWVzdCkKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBy ZXF1ZXN0LT5lbmdpbmU7CiAJc3RydWN0IGludGVsX2JyZWFkY3J1bWJzICpiID0gJmVuZ2luZS0+ YnJlYWRjcnVtYnM7CiAJc3RydWN0IHJiX25vZGUgKnBhcmVudCwgKipwOworCXVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAJYm9vbCBmaXJzdCwgd2FrZXVwOwogCiAJLyogbG9ja2VkIGJ5IGRtYV9mZW5j ZV9lbmFibGVfc3dfc2lnbmFsaW5nKCkgKi8KQEAgLTUxMSw3ICs1MTYsNyBAQCB2b2lkIGludGVs X2VuZ2luZV9lbmFibGVfc2lnbmFsaW5nKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx dWVzdCkKIAlyZXF1ZXN0LT5zaWduYWxpbmcud2FpdC5zZXFubyA9IHJlcXVlc3QtPmdsb2JhbF9z ZXFubzsKIAlpOTE1X2dlbV9yZXF1ZXN0X2dldChyZXF1ZXN0KTsKIAotCXNwaW5fbG9jaygmYi0+ bG9jayk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJmItPmxvY2ssIGZsYWdzKTsKIAogCS8qIEZpcnN0 IGFkZCBvdXJzZWx2ZXMgaW50byB0aGUgbGlzdCBvZiB3YWl0ZXJzLCBidXQgcmVnaXN0ZXIgb3Vy CiAJICogYm90dG9tLWhhbGYgYXMgdGhlIHNpZ25hbGxlciB0aHJlYWQuIEFzIHBlciB1c3VhbCwg b25seSB0aGUgb2xkZXN0CkBAIC01NDUsNyArNTUwLDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfZW5h YmxlX3NpZ25hbGluZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJaWYg KGZpcnN0KQogCQlzbXBfc3RvcmVfbWIoYi0+Zmlyc3Rfc2lnbmFsLCByZXF1ZXN0KTsKIAotCXNw aW5fdW5sb2NrKCZiLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZiLT5sb2NrLCBm bGFncyk7CiAKIAlpZiAod2FrZXVwKQogCQl3YWtlX3VwX3Byb2Nlc3MoYi0+c2lnbmFsZXIpOwpA QCAtNTkyLDkgKzU5NywxMCBAQCBzdGF0aWMgdm9pZCBjYW5jZWxfZmFrZV9pcnEoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQogdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVt YnMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9icmVh ZGNydW1icyAqYiA9ICZlbmdpbmUtPmJyZWFkY3J1bWJzOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAKIAljYW5jZWxfZmFrZV9pcnEoZW5naW5lKTsKLQlzcGluX2xvY2soJmItPmxvY2spOworCXNw aW5fbG9ja19pcnFzYXZlKCZiLT5sb2NrLCBmbGFncyk7CiAKIAlfX2ludGVsX2JyZWFkY3J1bWJz X2Rpc2FibGVfaXJxKGIpOwogCWlmIChpbnRlbF9lbmdpbmVfaGFzX3dhaXRlcihlbmdpbmUpKSB7 CkBAIC02MDcsNyArNjEzLDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfcmVzZXRfYnJlYWRjcnVtYnMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlpcnFfZGlzYWJsZShlbmdpbmUpOwog CX0KIAotCXNwaW5fdW5sb2NrKCZiLT5sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZi LT5sb2NrLCBmbGFncyk7CiB9CiAKIHZvaWQgaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQotLSAKMi4xMC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK