From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH] xen/arm: io: Protect the handlers with a read-write lock Date: Tue, 28 Jun 2016 17:34:31 +0100 Message-ID: <1467131671-24612-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Julien Grall , sstabellini@kernel.org, shankerd@codeaurora.org, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBhY2Nlc3NpbmcgdGhlIEkvTyBoYW5kbGVycyBkb2VzIG5vdCByZXF1aXJlIHRv IHRha2UgYSBsb2NrCmJlY2F1c2UgbmV3IGhhbmRsZXJzIGFyZSBhbHdheXMgYWRkZWQgYXQgdGhl IGVuZCBvZiB0aGUgYXJyYXkuIEluIGEKZm9sbG93LXVwIHBhdGNoLCB0aGlzIGFycmF5IHdpbGwg YmUgc29ydCB0byBvcHRpbWl6ZSB0aGUgbG9vayB1cC4KCkdpdmVuIHRoYXQgbW9zdCBvZiB0aGUg dGltZSB0aGUgSS9PIGhhbmRsZXJzIHdpbGwgbm90IGJlIG1vZGlmeSwKdXNpbmcgYSBzcGlubG9j ayB3aWxsIGFkZCBjb250ZW50aW9uIHdoZW4gbXVsdGlwbGUgdkNQVSBhcmUgYWNjZXNzaW5nCnRo ZSBlbXVsYXRlZCBNTUlPcy4gU28gdXNlIGEgcmVhZC13cml0ZSBsb2NrIHRvIHByb3RlY3RlZCB0 aGUgaGFuZGxlcnMuCgpGaW5hbGx5LCB0YWtlIHRoZSBvcHBvcnR1bml0eSB0byByZS1pbmRlbnQg Y29ycmVjdGx5IGRvbWFpbl9pb19pbml0LgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vaW8uYyAgICAgICAgICB8IDQ3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNs dWRlL2FzbS1hcm0vbW1pby5oIHwgIDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlv bnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pby5jIGIv eGVuL2FyY2gvYXJtL2lvLmMKaW5kZXggMDE1Njc1NS4uNWE5NjgzNiAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL2lvLmMKKysrIGIveGVuL2FyY2gvYXJtL2lvLmMKQEAgLTcwLDIzICs3MCwzOSBA QCBzdGF0aWMgaW50IGhhbmRsZV93cml0ZShjb25zdCBzdHJ1Y3QgbW1pb19oYW5kbGVyICpoYW5k bGVyLCBzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5k bGVyLT5wcml2KTsKIH0KIAotaW50IGhhbmRsZV9tbWlvKG1taW9faW5mb190ICppbmZvKQorc3Rh dGljIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmZpbmRfbW1pb19oYW5kbGVyKHN0cnVjdCBk b21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFkZHJfdCBncGEpCiB7Ci0gICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwotICAg IGludCBpOwotICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXIgPSBOVUxMOwot ICAgIGNvbnN0IHN0cnVjdCB2bW1pbyAqdm1taW8gPSAmdi0+ZG9tYWluLT5hcmNoLnZtbWlvOwor ICAgIGNvbnN0IHN0cnVjdCBtbWlvX2hhbmRsZXIgKmhhbmRsZXI7CisgICAgdW5zaWduZWQgaW50 IGk7CisgICAgc3RydWN0IHZtbWlvICp2bW1pbyA9ICZkLT5hcmNoLnZtbWlvOworCisgICAgcmVh ZF9sb2NrKCZ2bW1pby0+bG9jayk7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IHZtbWlvLT5udW1f ZW50cmllczsgaSsrICkKICAgICB7CiAgICAgICAgIGhhbmRsZXIgPSAmdm1taW8tPmhhbmRsZXJz W2ldOwogCi0gICAgICAgIGlmICggKGluZm8tPmdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgotICAg ICAgICAgICAgIChpbmZvLT5ncGEgPCAoaGFuZGxlci0+YWRkciArIGhhbmRsZXItPnNpemUpKSAp CisgICAgICAgIGlmICggKGdwYSA+PSBoYW5kbGVyLT5hZGRyKSAmJgorICAgICAgICAgICAgIChn cGEgPCAoaGFuZGxlci0+YWRkciArIGhhbmRsZXItPnNpemUpKSApCiAgICAgICAgICAgICBicmVh azsKICAgICB9CiAKICAgICBpZiAoIGkgPT0gdm1taW8tPm51bV9lbnRyaWVzICkKKyAgICAgICAg aGFuZGxlciA9IE5VTEw7CisKKyAgICByZWFkX3VubG9jaygmdm1taW8tPmxvY2spOworCisgICAg cmV0dXJuIGhhbmRsZXI7Cit9CisKK2ludCBoYW5kbGVfbW1pbyhtbWlvX2luZm9fdCAqaW5mbykK K3sKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CisgICAgY29uc3Qgc3RydWN0IG1taW9f aGFuZGxlciAqaGFuZGxlciA9IE5VTEw7CisKKyAgICBoYW5kbGVyID0gZmluZF9tbWlvX2hhbmRs ZXIodi0+ZG9tYWluLCBpbmZvLT5ncGEpOworICAgIGlmICggIWhhbmRsZXIgKQogICAgICAgICBy ZXR1cm4gMDsKIAogICAgIGlmICggaW5mby0+ZGFidC53cml0ZSApCkBAIC0xMDQsNyArMTIwLDcg QEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwKIAogICAgIEJV R19PTih2bW1pby0+bnVtX2VudHJpZXMgPj0gTUFYX0lPX0hBTkRMRVIpOwogCi0gICAgc3Bpbl9s b2NrKCZ2bW1pby0+bG9jayk7CisgICAgd3JpdGVfbG9jaygmdm1taW8tPmxvY2spOwogCiAgICAg aGFuZGxlciA9ICZ2bW1pby0+aGFuZGxlcnNbdm1taW8tPm51bV9lbnRyaWVzXTsKIApAQCAtMTEz LDI0ICsxMjksMTcgQEAgdm9pZCByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAq ZCwKICAgICBoYW5kbGVyLT5zaXplID0gc2l6ZTsKICAgICBoYW5kbGVyLT5wcml2ID0gcHJpdjsK IAotICAgIC8qCi0gICAgICogaGFuZGxlX21taW8gaXMgbm90IHVzaW5nIHRoZSBsb2NrIHRvIGF2 b2lkIGNvbnRlbnRpb24uCi0gICAgICogTWFrZSBzdXJlIHRoZSBvdGhlciBwcm9jZXNzb3JzIHNl ZSB0aGUgbmV3IGhhbmRsZXIgYmVmb3JlCi0gICAgICogdXBkYXRpbmcgdGhlIG51bWJlciBvZiBl bnRyaWVzCi0gICAgICovCi0gICAgZHNiKGlzaCk7Ci0KICAgICB2bW1pby0+bnVtX2VudHJpZXMr KzsKIAotICAgIHNwaW5fdW5sb2NrKCZ2bW1pby0+bG9jayk7CisgICAgd3JpdGVfdW5sb2NrKCZ2 bW1pby0+bG9jayk7CiB9CiAKIGludCBkb21haW5faW9faW5pdChzdHJ1Y3QgZG9tYWluICpkKQog ewotICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFyY2gudm1taW8ubG9jayk7Ci0gICBkLT5hcmNoLnZt bWlvLm51bV9lbnRyaWVzID0gMDsKKyAgICByd2xvY2tfaW5pdCgmZC0+YXJjaC52bW1pby5sb2Nr KTsKKyAgICBkLT5hcmNoLnZtbWlvLm51bV9lbnRyaWVzID0gMDsKIAotICAgcmV0dXJuIDA7Cisg ICAgcmV0dXJuIDA7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL21t aW8uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW1pby5oCmluZGV4IGRhMWNjMmUuLjMyZjEwZjIg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW1pby5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS1hcm0vbW1pby5oCkBAIC0yMCw2ICsyMCw3IEBACiAjZGVmaW5lIF9fQVNNX0FSTV9NTUlP X0hfXwogCiAjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi9yd2xvY2suaD4KICNp bmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4KIApAQCAtNTEs NyArNTIsNyBAQCBzdHJ1Y3QgbW1pb19oYW5kbGVyIHsKIAogc3RydWN0IHZtbWlvIHsKICAgICBp bnQgbnVtX2VudHJpZXM7Ci0gICAgc3BpbmxvY2tfdCBsb2NrOworICAgIHJ3bG9ja190IGxvY2s7 CiAgICAgc3RydWN0IG1taW9faGFuZGxlciBoYW5kbGVyc1tNQVhfSU9fSEFORExFUl07CiB9Owog Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==