From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dongwon Kim Subject: [RFC PATCH 30/60] hyper_dmabuf: free already mapped pages when error happens Date: Tue, 19 Dec 2017 11:29:46 -0800 Message-ID: <1513711816-2618-30-git-send-email-dongwon.kim@intel.com> References: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: xen-devel@lists.xenproject.org, mateuszx.potrola@intel.com, dri-devel@lists.freedesktop.org, dongwon.kim@intel.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogTWF0ZXVzeiBQb2xyb2xhIDxtYXRldXN6eC5wb3Ryb2xhQGludGVsLmNvbT4KCkl0IGlz IG5lZWRlZCB0byBmcmVlaW5nIGFscmVhZHktbWFwcGVkIHBhZ2VzIGlmIGl0IGdldHMgZXJyb3IK YmVmb3JlIGZpbmlzaGluZyBtYXBwaW5nIGFsbCBwYWdlcy4KClNpZ25lZC1vZmYtYnk6IERvbmd3 b24gS2ltIDxkb25nd29uLmtpbUBpbnRlbC5jb20+Ci0tLQogLi4uL3hlbi9oeXBlcl9kbWFidWYv eGVuL2h5cGVyX2RtYWJ1Zl94ZW5fc2htLmMgICAgfCA0MyArKysrKysrKysrKysrKysrKysrLS0t CiAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYveGVuL2h5cGVyX2RtYWJ1Zl94ZW5fc2ht LmMgYi9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYveGVuL2h5cGVyX2RtYWJ1Zl94ZW5fc2htLmMK aW5kZXggYzAzZTVhMC4uNTI0Zjc1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vaHlwZXJfZG1h YnVmL3hlbi9oeXBlcl9kbWFidWZfeGVuX3NobS5jCisrKyBiL2RyaXZlcnMveGVuL2h5cGVyX2Rt YWJ1Zi94ZW4vaHlwZXJfZG1hYnVmX3hlbl9zaG0uYwpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0cnVj dCBwYWdlICoqIGh5cGVyX2RtYWJ1Zl94ZW5fbWFwX3NoYXJlZF9wYWdlcyhpbnQgbHZsM19ncmVm LCBpbnQgZG9taWQsIGludCBuCiAJaWYgKGx2bDNfbWFwX29wcy5zdGF0dXMpIHsKIAkJZGV2X2Vy cihoeXBlcl9kbWFidWZfcHJpdmF0ZS5kZXZpY2UsICJIWVBFUlZJU09SIG1hcCBncmFudCByZWYg ZmFpbGVkIHN0YXR1cyA9ICVkIiwKIAkJCWx2bDNfbWFwX29wcy5zdGF0dXMpOwotCQlyZXR1cm4g TlVMTDsKKwkJZ290byBlcnJvcl9jbGVhbnVwX2x2bDM7CiAJfSBlbHNlIHsKIAkJbHZsM191bm1h cF9vcHMuaGFuZGxlID0gbHZsM19tYXBfb3BzLmhhbmRsZTsKIAl9CkBAIC0yNjMsNyArMjYzLDcg QEAgc3RydWN0IHBhZ2UgKiogaHlwZXJfZG1hYnVmX3hlbl9tYXBfc2hhcmVkX3BhZ2VzKGludCBs dmwzX2dyZWYsIGludCBkb21pZCwgaW50IG4KIAkvKiBNYXAgYWxsIHNlY29uZCBsZXZlbCBwYWdl cyAqLwogCWlmIChnbnR0YWJfYWxsb2NfcGFnZXMobl9sdmwyX2dyZWZzLCBsdmwyX3RhYmxlX3Bh Z2VzKSkgewogCQlkZXZfZXJyKGh5cGVyX2RtYWJ1Zl9wcml2YXRlLmRldmljZSwgIkNhbm5vdCBh bGxvY2F0ZSBwYWdlc1xuIik7Ci0JCXJldHVybiBOVUxMOworCQlnb3RvIGVycm9yX2NsZWFudXBf bHZsMzsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbl9sdmwyX2dyZWZzOyBpKyspIHsKQEAgLTI3 Nyw2ICsyNzcsOSBAQCBzdHJ1Y3QgcGFnZSAqKiBoeXBlcl9kbWFidWZfeGVuX21hcF9zaGFyZWRf cGFnZXMoaW50IGx2bDNfZ3JlZiwgaW50IGRvbWlkLCBpbnQgbgogCWlmIChnbnR0YWJfdW5tYXBf cmVmcygmbHZsM191bm1hcF9vcHMsIE5VTEwsICZsdmwzX3RhYmxlX3BhZ2UsIDEpKSB7CiAJCWRl dl9lcnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLCAieGVuOiBjYW5ub3QgdW5tYXAgdG9w IGxldmVsIHBhZ2VcbiIpOwogCQlyZXR1cm4gTlVMTDsKKwl9IGVsc2UgeworCQkvKiBNYXJrIHRo YXQgcGFnZSB3YXMgdW5tYXBwZWQgKi8KKwkJbHZsM191bm1hcF9vcHMuaGFuZGxlID0gLTE7CiAJ fQogCiAJaWYgKGdudHRhYl9tYXBfcmVmcyhsdmwyX21hcF9vcHMsIE5VTEwsIGx2bDJfdGFibGVf cGFnZXMsIG5fbHZsMl9ncmVmcykpIHsKQEAgLTI5MCw3ICsyOTMsNyBAQCBzdHJ1Y3QgcGFnZSAq KiBoeXBlcl9kbWFidWZfeGVuX21hcF9zaGFyZWRfcGFnZXMoaW50IGx2bDNfZ3JlZiwgaW50IGRv bWlkLCBpbnQgbgogCQkJZGV2X2VycihoeXBlcl9kbWFidWZfcHJpdmF0ZS5kZXZpY2UsCiAJCQkJ IkhZUEVSVklTT1IgbWFwIGdyYW50IHJlZiBmYWlsZWQgc3RhdHVzID0gJWQiLAogCQkJCWx2bDJf bWFwX29wc1tpXS5zdGF0dXMpOwotCQkJcmV0dXJuIE5VTEw7CisJCQlnb3RvIGVycm9yX2NsZWFu dXBfbHZsMjsKIAkJfSBlbHNlIHsKIAkJCWx2bDJfdW5tYXBfb3BzW2ldLmhhbmRsZSA9IGx2bDJf bWFwX29wc1tpXS5oYW5kbGU7CiAJCX0KQEAgLTI5OCw3ICszMDEsNyBAQCBzdHJ1Y3QgcGFnZSAq KiBoeXBlcl9kbWFidWZfeGVuX21hcF9zaGFyZWRfcGFnZXMoaW50IGx2bDNfZ3JlZiwgaW50IGRv bWlkLCBpbnQgbgogCiAJaWYgKGdudHRhYl9hbGxvY19wYWdlcyhuZW50cywgZGF0YV9wYWdlcykp IHsKIAkJZGV2X2VycihoeXBlcl9kbWFidWZfcHJpdmF0ZS5kZXZpY2UsICJDYW5ub3QgYWxsb2Nh dGUgcGFnZXNcbiIpOwotCQlyZXR1cm4gTlVMTDsKKwkJZ290byBlcnJvcl9jbGVhbnVwX2x2bDI7 CiAJfQogCiAJayA9IDA7CkBAIC0zNDMsNiArMzQ2LDExIEBAIHN0cnVjdCBwYWdlICoqIGh5cGVy X2RtYWJ1Zl94ZW5fbWFwX3NoYXJlZF9wYWdlcyhpbnQgbHZsM19ncmVmLCBpbnQgZG9taWQsIGlu dCBuCiAJCQkgICAgICBuX2x2bDJfZ3JlZnMpKSB7CiAJCWRldl9lcnIoaHlwZXJfZG1hYnVmX3By aXZhdGUuZGV2aWNlLCAiQ2Fubm90IHVubWFwIDJuZCBsZXZlbCByZWZzXG4iKTsKIAkJcmV0dXJu IE5VTEw7CisJfSBlbHNlIHsKKwkJLyogTWFyayB0aGF0IHBhZ2VzIHdlcmUgdW5tYXBwZWQgKi8K KwkJZm9yIChpID0gMDsgaSA8IG5fbHZsMl9ncmVmczsgaSsrKSB7CisJCQlsdmwyX3VubWFwX29w c1tpXS5oYW5kbGUgPSAtMTsKKwkJfQogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBuZW50czsgaSsr KSB7CkBAIC0zNTAsNyArMzU4LDcgQEAgc3RydWN0IHBhZ2UgKiogaHlwZXJfZG1hYnVmX3hlbl9t YXBfc2hhcmVkX3BhZ2VzKGludCBsdmwzX2dyZWYsIGludCBkb21pZCwgaW50IG4KIAkJCWRldl9l cnIoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLAogCQkJCSJIWVBFUlZJU09SIG1hcCBncmFu dCByZWYgZmFpbGVkIHN0YXR1cyA9ICVkXG4iLAogCQkJCWRhdGFfbWFwX29wc1tpXS5zdGF0dXMp OwotCQkJcmV0dXJuIE5VTEw7CisJCQlnb3RvIGVycm9yX2NsZWFudXBfZGF0YTsKIAkJfSBlbHNl IHsKIAkJCWRhdGFfdW5tYXBfb3BzW2ldLmhhbmRsZSA9IGRhdGFfbWFwX29wc1tpXS5oYW5kbGU7 CiAJCX0KQEAgLTM2OSw2ICszNzcsMzEgQEAgc3RydWN0IHBhZ2UgKiogaHlwZXJfZG1hYnVmX3hl bl9tYXBfc2hhcmVkX3BhZ2VzKGludCBsdmwzX2dyZWYsIGludCBkb21pZCwgaW50IG4KIAogCWRl dl9kYmcoaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlLCAiJXMgZXhpdFxuIiwgX19mdW5jX18p OwogCXJldHVybiBkYXRhX3BhZ2VzOworCitlcnJvcl9jbGVhbnVwX2RhdGE6CisJZ250dGFiX3Vu bWFwX3JlZnMoZGF0YV91bm1hcF9vcHMsIE5VTEwsIGRhdGFfcGFnZXMsCisJCQkgIG5lbnRzKTsK KworCWdudHRhYl9mcmVlX3BhZ2VzKG5lbnRzLCBkYXRhX3BhZ2VzKTsKKworZXJyb3JfY2xlYW51 cF9sdmwyOgorCWlmIChsdmwyX3VubWFwX29wc1swXS5oYW5kbGUgIT0gLTEpCisJCWdudHRhYl91 bm1hcF9yZWZzKGx2bDJfdW5tYXBfb3BzLCBOVUxMLCBsdmwyX3RhYmxlX3BhZ2VzLAorCQkJCSAg bl9sdmwyX2dyZWZzKTsKKwlnbnR0YWJfZnJlZV9wYWdlcyhuX2x2bDJfZ3JlZnMsIGx2bDJfdGFi bGVfcGFnZXMpOworCitlcnJvcl9jbGVhbnVwX2x2bDM6CisJaWYgKGx2bDNfdW5tYXBfb3BzLmhh bmRsZSAhPSAtMSkKKwkJZ250dGFiX3VubWFwX3JlZnMoJmx2bDNfdW5tYXBfb3BzLCBOVUxMLCAm bHZsM190YWJsZV9wYWdlLCAxKTsKKwlnbnR0YWJfZnJlZV9wYWdlcygxLCAmbHZsM190YWJsZV9w YWdlKTsKKworCWtmcmVlKGx2bDJfdGFibGVfcGFnZXMpOworCWtmcmVlKGx2bDJfbWFwX29wcyk7 CisJa2ZyZWUobHZsMl91bm1hcF9vcHMpOworCWtmcmVlKGRhdGFfbWFwX29wcyk7CisKKworCXJl dHVybiBOVUxMOwogfQogCiBpbnQgaHlwZXJfZG1hYnVmX3hlbl91bm1hcF9zaGFyZWRfcGFnZXMo dm9pZCAqKnJlZnNfaW5mbywgaW50IG5lbnRzKSB7Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=