From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 1/2] arm: read/write rank->vcpu atomically Date: Fri, 10 Feb 2017 18:05:22 -0800 Message-ID: <1486778723-25586-1-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ccN46-0001Ae-BV for xen-devel@lists.xenproject.org; Sat, 11 Feb 2017 02:05:30 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: julien.grall@arm.com, sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org V2UgZG9uJ3QgbmVlZCBhIGxvY2sgaW4gdmdpY19nZXRfdGFyZ2V0X3ZjcHUgYW55bW9yZSwgc29s dmluZyB0aGUKZm9sbG93aW5nIGxvY2sgaW52ZXJzaW9uIGJ1ZzogdGhlIHJhbmsgbG9jayBzaG91 bGQgYmUgdGFrZW4gZmlyc3QsIHRoZW4KdGhlIHZnaWMgbG9jay4gSG93ZXZlciwgZ2ljX3VwZGF0 ZV9vbmVfbHIgaXMgY2FsbGVkIHdpdGggdGhlIHZnaWMgbG9jawpoZWxkLCBhbmQgaXQgY2FsbHMg dmdpY19nZXRfdGFyZ2V0X3ZjcHUsIHdoaWNoIHRyaWVzIHRvIG9idGFpbiB0aGUgcmFuawpsb2Nr LgoKQ292ZXJpdHktSUQ6IDEzODE4NTUKQ292ZXJpdHktSUQ6IDEzODE4NTMKClNpZ25lZC1vZmYt Ynk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KLS0tCiB4ZW4v YXJjaC9hcm0vdmdpYy12Mi5jIHwgIDYgKysrLS0tCiB4ZW4vYXJjaC9hcm0vdmdpYy12My5jIHwg IDYgKysrLS0tCiB4ZW4vYXJjaC9hcm0vdmdpYy5jICAgIHwgMjcgKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0v dmdpYy12Mi5jCmluZGV4IDNkYmNmZTguLmIzMDM3OWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS92Z2ljLXYyLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjIuYwpAQCAtNzksNyArNzksNyBA QCBzdGF0aWMgdWludDMyX3QgdmdpY19mZXRjaF9pdGFyZ2V0c3Ioc3RydWN0IHZnaWNfaXJxX3Jh bmsgKnJhbmssCiAgICAgb2Zmc2V0ICY9IH4oTlJfVEFSR0VUU19QRVJfSVRBUkdFVFNSIC0gMSk7 CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE5SX1RBUkdFVFNfUEVSX0lUQVJHRVRTUjsgaSsrLCBv ZmZzZXQrKyApCi0gICAgICAgIHJlZyB8PSAoMSA8PCByYW5rLT52Y3B1W29mZnNldF0pIDw8IChp ICogTlJfQklUU19QRVJfVEFSR0VUKTsKKyAgICAgICAgcmVnIHw9ICgxIDw8IHJlYWRfYXRvbWlj KCZyYW5rLT52Y3B1W29mZnNldF0pKSA8PCAoaSAqIE5SX0JJVFNfUEVSX1RBUkdFVCk7CiAKICAg ICByZXR1cm4gcmVnOwogfQpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyB2b2lkIHZnaWNfc3Rv cmVfaXRhcmdldHNyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5r LAogICAgICAgICAvKiBUaGUgdkNQVSBJRCBhbHdheXMgc3RhcnRzIGZyb20gMCAqLwogICAgICAg ICBuZXdfdGFyZ2V0LS07CiAKLSAgICAgICAgb2xkX3RhcmdldCA9IHJhbmstPnZjcHVbb2Zmc2V0 XTsKKyAgICAgICAgb2xkX3RhcmdldCA9IHJlYWRfYXRvbWljKCZyYW5rLT52Y3B1W29mZnNldF0p OwogCiAgICAgICAgIC8qIE9ubHkgbWlncmF0ZSB0aGUgdklSUSBpZiB0aGUgdGFyZ2V0IHZDUFUg aGFzIGNoYW5nZWQgKi8KICAgICAgICAgaWYgKCBuZXdfdGFyZ2V0ICE9IG9sZF90YXJnZXQgKQpA QCAtMTYyLDcgKzE2Miw3IEBAIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXRhcmdldHNyKHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2aXJxKTsKICAgICAgICAgfQogCi0gICAgICAgIHJhbmstPnZjcHVbb2Zm c2V0XSA9IG5ld190YXJnZXQ7CisgICAgICAgIHdyaXRlX2F0b21pYygmcmFuay0+dmNwdVtvZmZz ZXRdLCBuZXdfdGFyZ2V0KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92 Z2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12My5jCmluZGV4IGQ2MTQ3OWQuLjdkYzliNmYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKKysrIGIveGVuL2FyY2gvYXJtL3Zn aWMtdjMuYwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB1aW50NjRfdCB2Z2ljX2ZldGNoX2ly b3V0ZXIoc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbmssCiAgICAgLyogR2V0IHRoZSBpbmRleCBp biB0aGUgcmFuayAqLwogICAgIG9mZnNldCAmPSBJTlRFUlJVUFRfUkFOS19NQVNLOwogCi0gICAg cmV0dXJuIHZjcHVpZF90b192YWZmaW5pdHkocmFuay0+dmNwdVtvZmZzZXRdKTsKKyAgICByZXR1 cm4gdmNwdWlkX3RvX3ZhZmZpbml0eShyZWFkX2F0b21pYygmcmFuay0+dmNwdVtvZmZzZXRdKSk7 CiB9CiAKIC8qCkBAIC0xMzYsNyArMTM2LDcgQEAgc3RhdGljIHZvaWQgdmdpY19zdG9yZV9pcm91 dGVyKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rLAogICAgIG9m ZnNldCAmPSB2aXJxICYgSU5URVJSVVBUX1JBTktfTUFTSzsKIAogICAgIG5ld192Y3B1ID0gdmdp Y192M19pcm91dGVyX3RvX3ZjcHUoZCwgaXJvdXRlcik7Ci0gICAgb2xkX3ZjcHUgPSBkLT52Y3B1 W3JhbmstPnZjcHVbb2Zmc2V0XV07CisgICAgb2xkX3ZjcHUgPSBkLT52Y3B1W3JlYWRfYXRvbWlj KCZyYW5rLT52Y3B1W29mZnNldF0pXTsKIAogICAgIC8qCiAgICAgICogRnJvbSB0aGUgc3BlYyAo c2VlIDguOS4xMyBpbiBJSEkgMDA2OUEpLCBhbnkgd3JpdGUgd2l0aCBhbgpAQCAtMTU0LDcgKzE1 NCw3IEBAIHN0YXRpYyB2b2lkIHZnaWNfc3RvcmVfaXJvdXRlcihzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgdmdpY19pcnFfcmFuayAqcmFuaywKICAgICBpZiAoIG5ld192Y3B1ICE9IG9sZF92Y3B1 ICkKICAgICAgICAgdmdpY19taWdyYXRlX2lycShvbGRfdmNwdSwgbmV3X3ZjcHUsIHZpcnEpOwog Ci0gICAgcmFuay0+dmNwdVtvZmZzZXRdID0gbmV3X3ZjcHUtPnZjcHVfaWQ7CisgICAgd3JpdGVf YXRvbWljKCZyYW5rLT52Y3B1W29mZnNldF0sIG5ld192Y3B1LT52Y3B1X2lkKTsKIH0KIAogc3Rh dGljIGlubGluZSBib29sIHZnaWNfcmVnNjRfY2hlY2tfYWNjZXNzKHN0cnVjdCBoc3JfZGFidCBk YWJ0KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMuYyBiL3hlbi9hcmNoL2FybS92Z2lj LmMKaW5kZXggMzY0ZDVmMC4uM2RkOTA0NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMu YworKysgYi94ZW4vYXJjaC9hcm0vdmdpYy5jCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyB2b2lk IHZnaWNfcmFua19pbml0KHN0cnVjdCB2Z2ljX2lycV9yYW5rICpyYW5rLCB1aW50OF90IGluZGV4 LAogICAgIHJhbmstPmluZGV4ID0gaW5kZXg7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IE5SX0lO VEVSUlVQVF9QRVJfUkFOSzsgaSsrICkKLSAgICAgICAgcmFuay0+dmNwdVtpXSA9IHZjcHU7Cisg ICAgICAgIHdyaXRlX2F0b21pYygmcmFuay0+dmNwdVtpXSwgdmNwdSk7CiB9CiAKIGludCBkb21h aW5fdmdpY19yZWdpc3RlcihzdHJ1Y3QgZG9tYWluICpkLCBpbnQgKm1taW9fY291bnQpCkBAIC0y MTgsMjggKzIxOCwxMSBAQCBpbnQgdmNwdV92Z2ljX2ZyZWUoc3RydWN0IHZjcHUgKnYpCiAgICAg cmV0dXJuIDA7CiB9CiAKLS8qIFRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGJ5IHJhbmsg bG9jayB0YWtlbi4gKi8KLXN0YXRpYyBzdHJ1Y3QgdmNwdSAqX192Z2ljX2dldF90YXJnZXRfdmNw dShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpCi17Ci0gICAgc3RydWN0IHZnaWNf aXJxX3JhbmsgKnJhbmsgPSB2Z2ljX3JhbmtfaXJxKHYsIHZpcnEpOwotCi0gICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKCZyYW5rLT5sb2NrKSk7Ci0KLSAgICByZXR1cm4gdi0+ZG9tYWluLT52Y3B1 W3JhbmstPnZjcHVbdmlycSAmIElOVEVSUlVQVF9SQU5LX01BU0tdXTsKLX0KLQotLyogdGFrZXMg dGhlIHJhbmsgbG9jayAqLwogc3RydWN0IHZjcHUgKnZnaWNfZ2V0X3RhcmdldF92Y3B1KHN0cnVj dCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdl90YXJn ZXQ7CiAgICAgc3RydWN0IHZnaWNfaXJxX3JhbmsgKnJhbmsgPSB2Z2ljX3JhbmtfaXJxKHYsIHZp cnEpOwotICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLSAgICB2Z2ljX2xvY2tfcmFuayh2LCBy YW5rLCBmbGFncyk7Ci0gICAgdl90YXJnZXQgPSBfX3ZnaWNfZ2V0X3RhcmdldF92Y3B1KHYsIHZp cnEpOwotICAgIHZnaWNfdW5sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwotCi0gICAgcmV0dXJu IHZfdGFyZ2V0OworICAgIGludCB0YXJnZXQgPSByZWFkX2F0b21pYygmcmFuay0+dmNwdVt2aXJx ICYgSU5URVJSVVBUX1JBTktfTUFTS10pOworICAgIHJldHVybiB2LT5kb21haW4tPnZjcHVbdGFy Z2V0XTsKIH0KIAogc3RhdGljIGludCB2Z2ljX2dldF92aXJxX3ByaW9yaXR5KHN0cnVjdCB2Y3B1 ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKQEAgLTMyNiw3ICszMDksNyBAQCB2b2lkIHZnaWNfZGlz YWJsZV9pcnFzKHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCByLCBpbnQgbikKIAogICAgIHdoaWxl ICggKGkgPSBmaW5kX25leHRfYml0KCZtYXNrLCAzMiwgaSkpIDwgMzIgKSB7CiAgICAgICAgIGly cSA9IGkgKyAoMzIgKiBuKTsKLSAgICAgICAgdl90YXJnZXQgPSBfX3ZnaWNfZ2V0X3RhcmdldF92 Y3B1KHYsIGlycSk7CisgICAgICAgIHZfdGFyZ2V0ID0gdmdpY19nZXRfdGFyZ2V0X3ZjcHUodiwg aXJxKTsKICAgICAgICAgcCA9IGlycV90b19wZW5kaW5nKHZfdGFyZ2V0LCBpcnEpOwogICAgICAg ICBjbGVhcl9iaXQoR0lDX0lSUV9HVUVTVF9FTkFCTEVELCAmcC0+c3RhdHVzKTsKICAgICAgICAg Z2ljX3JlbW92ZV9mcm9tX3F1ZXVlcyh2X3RhcmdldCwgaXJxKTsKQEAgLTM2OCw3ICszNTEsNyBA QCB2b2lkIHZnaWNfZW5hYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIsIGludCBu KQogCiAgICAgd2hpbGUgKCAoaSA9IGZpbmRfbmV4dF9iaXQoJm1hc2ssIDMyLCBpKSkgPCAzMiAp IHsKICAgICAgICAgaXJxID0gaSArICgzMiAqIG4pOwotICAgICAgICB2X3RhcmdldCA9IF9fdmdp Y19nZXRfdGFyZ2V0X3ZjcHUodiwgaXJxKTsKKyAgICAgICAgdl90YXJnZXQgPSB2Z2ljX2dldF90 YXJnZXRfdmNwdSh2LCBpcnEpOwogICAgICAgICBwID0gaXJxX3RvX3BlbmRpbmcodl90YXJnZXQs IGlycSk7CiAgICAgICAgIHNldF9iaXQoR0lDX0lSUV9HVUVTVF9FTkFCTEVELCAmcC0+c3RhdHVz KTsKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnZfdGFyZ2V0LT5hcmNoLnZnaWMubG9jaywg ZmxhZ3MpOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK