From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dongwon Kim Subject: [RFC PATCH 11/60] hyper_dmabuf: check stack before unmapping/detaching shadow DMA_BUF Date: Tue, 19 Dec 2017 11:29:27 -0800 Message-ID: <1513711816-2618-11-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: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id E46B96E334 for ; Tue, 19 Dec 2017 19:36:32 +0000 (UTC) In-Reply-To: <1513711816-2618-1-git-send-email-dongwon.kim@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-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 TWFrZSBzdXJlIGxpc3Qgb2YgbWFwcGluZy9hdHRhY2hpbmcgYWN0aXZpdGllcyBvbiBpbXBvdGVy IFZNIGlzIG5vdAplbXB0eSBiZWZvcmUgZG9pbmcgdW5tYXBwaW5nL2RldGFjaGluZyBzaGFkb3cg RE1BIEJVRiBmb3IgaW5kaXJlY3QKc3luY2hyb25pemF0aW9uLgoKU2lnbmVkLW9mZi1ieTogRG9u Z3dvbiBLaW0gPGRvbmd3b24ua2ltQGludGVsLmNvbT4KLS0tCiAuLi4veGVuL2h5cGVyX2RtYWJ1 Zi9oeXBlcl9kbWFidWZfcmVtb3RlX3N5bmMuYyAgICB8IDY4ICsrKysrKysrKysrKysrKysrLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX3JlbW90ZV9z eW5jLmMgYi9kcml2ZXJzL3hlbi9oeXBlcl9kbWFidWYvaHlwZXJfZG1hYnVmX3JlbW90ZV9zeW5j LmMKaW5kZXggNmJhOTMyZi4uZmEyZmExMSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vaHlwZXJf ZG1hYnVmL2h5cGVyX2RtYWJ1Zl9yZW1vdGVfc3luYy5jCisrKyBiL2RyaXZlcnMveGVuL2h5cGVy X2RtYWJ1Zi9oeXBlcl9kbWFidWZfcmVtb3RlX3N5bmMuYwpAQCAtMTEsNiArMTEsMjEgQEAKIAog ZXh0ZXJuIHN0cnVjdCBoeXBlcl9kbWFidWZfcHJpdmF0ZSBoeXBlcl9kbWFidWZfcHJpdmF0ZTsK IAorLyogV2hlbmV2ZXIgaW1wb3J0ZXIgZG9lcyBkbWEgb3BlcmF0aW9ucyBmcm9tIHJlbW90ZSBk b21haW4sCisgKiBhIG5vdGlmaWNhdGlvbiBpcyBzZW50IHRvIHRoZSBleHBvcnRlciBzbyB0aGF0 IGV4cG9ydGVyCisgKiBpc3N1ZXMgZXF1aXZhbGVudCBkbWEgb3BlcmF0aW9uIG9uIHRoZSBvcmln aW5hbCBkbWEgYnVmCisgKiBmb3IgaW5kaXJlY3Qgc3luY2hyb25pemF0aW9uIHZpYSBzaGFkb3cg b3BlcmF0aW9ucy4KKyAqCisgKiBBbGwgcHRycyBhbmQgcmVmZXJlbmNlcyAoZS5nIHN0cnVjdCBz Z190YWJsZSosCisgKiBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50KSBjcmVhdGVkIHZpYSB0aGVz ZSBvcGVyYXRpb25zIG9uCisgKiBleHBvcnRlcidzIHNpZGUgYXJlIGtlcHQgaW4gc3RhY2sgKGlt cGxlbWVudGVkIGFzIGNpcmN1bGFyCisgKiBsaW5rZWQtbGlzdHMpIHNlcGFyYXRlbHkgc28gdGhh dCB0aG9zZSBjYW4gYmUgcmUtcmVmZXJlbmNlZAorICogbGF0ZXIgd2hlbiB1bm1hcHBpbmcgb3Bl cmF0aW9ucyBhcmUgaW52b2tlZCB0byBmcmVlIHRob3NlLgorICoKKyAqIFRoZSB2ZXJ5IGZpcnN0 IGVsZW1lbnQgb24gdGhlIGJvdHRvbSBvZiBlYWNoIHN0YWNrIGhvbGRzCisgKiBhcmUgd2hhdCBp cyBjcmVhdGVkIHdoZW4gaW5pdGlhbCBleHBvcnRpbmcgaXMgaXNzdWVkIHNvIGl0CisgKiBzaG91 bGQgbm90IGJlIG1vZGlmaWVkIG9yIHJlbGVhc2VkIGJ5IHRoaXMgZnVjdGlvbi4KKyAqLwogaW50 IGh5cGVyX2RtYWJ1Zl9yZW1vdGVfc3luYyhpbnQgaWQsIGludCBvcHMpCiB7CiAJc3RydWN0IGh5 cGVyX2RtYWJ1Zl9zZ3RfaW5mbyAqc2d0X2luZm87CkBAIC0zMyw3ICs0OCw3IEBAIGludCBoeXBl cl9kbWFidWZfcmVtb3RlX3N5bmMoaW50IGlkLCBpbnQgb3BzKQogCQlhdHRhY2hsID0ga2NhbGxv YygxLCBzaXplb2YoKmF0dGFjaGwpLCBHRlBfS0VSTkVMKTsKIAogCQlhdHRhY2hsLT5hdHRhY2gg PSBkbWFfYnVmX2F0dGFjaChzZ3RfaW5mby0+ZG1hX2J1ZiwKLQkJCQkJCWh5cGVyX2RtYWJ1Zl9w cml2YXRlLmRldmljZSk7CisJCQkJCQkgaHlwZXJfZG1hYnVmX3ByaXZhdGUuZGV2aWNlKTsKIAog CQlpZiAoIWF0dGFjaGwtPmF0dGFjaCkgewogCQkJa2ZyZWUoYXR0YWNobCk7CkBAIC00NSwyMiAr NjAsMzEgQEAgaW50IGh5cGVyX2RtYWJ1Zl9yZW1vdGVfc3luYyhpbnQgaWQsIGludCBvcHMpCiAJ CWJyZWFrOwogCiAJY2FzZSBIWVBFUl9ETUFCVUZfT1BTX0RFVEFDSDoKLQkJYXR0YWNobCA9IGxp c3RfZmlyc3RfZW50cnkoJnNndF9pbmZvLT5hY3RpdmVfYXR0YWNoZWQtPmxpc3QsCi0JCQkJCXN0 cnVjdCBhdHRhY2htZW50X2xpc3QsIGxpc3QpOwotCi0JCWlmICghYXR0YWNobCkgeworCQlpZiAo bGlzdF9lbXB0eSgmc2d0X2luZm8tPmFjdGl2ZV9hdHRhY2hlZC0+bGlzdCkpIHsKIAkJCXByaW50 aygiZG1hYnVmIHJlbW90ZSBzeW5jOjplcnJvciB3aGlsZSBwcm9jZXNzaW5nIEhZUEVSX0RNQUJV Rl9PUFNfREVUQUNIXG4iKTsKKwkJCXByaW50aygibm8gbW9yZSBkbWFidWYgYXR0YWNobWVudCBs ZWZ0IHRvIGJlIGRldGFjaGVkXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CisKKwkJYXR0 YWNobCA9IGxpc3RfZmlyc3RfZW50cnkoJnNndF9pbmZvLT5hY3RpdmVfYXR0YWNoZWQtPmxpc3Qs CisJCQkJCSAgIHN0cnVjdCBhdHRhY2htZW50X2xpc3QsIGxpc3QpOworCiAJCWRtYV9idWZfZGV0 YWNoKHNndF9pbmZvLT5kbWFfYnVmLCBhdHRhY2hsLT5hdHRhY2gpOwogCQlsaXN0X2RlbCgmYXR0 YWNobC0+bGlzdCk7CiAJCWtmcmVlKGF0dGFjaGwpOwogCQlicmVhazsKIAogCWNhc2UgSFlQRVJf RE1BQlVGX09QU19NQVA6Ci0JCXNndGwgPSBrY2FsbG9jKDEsIHNpemVvZigqc2d0bCksIEdGUF9L RVJORUwpOworCQlpZiAobGlzdF9lbXB0eSgmc2d0X2luZm8tPmFjdGl2ZV9hdHRhY2hlZC0+bGlz dCkpIHsKKwkJCXByaW50aygiZG1hYnVmIHJlbW90ZSBzeW5jOjplcnJvciB3aGlsZSBwcm9jZXNz aW5nIEhZUEVSX0RNQUJVRl9PUFNfTUFQXG4iKTsKKwkJCXByaW50aygibm8gbW9yZSBkbWFidWYg YXR0YWNobWVudCBsZWZ0IHRvIGJlIGRldGFjaGVkXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOwor CQl9CisKIAkJYXR0YWNobCA9IGxpc3RfZmlyc3RfZW50cnkoJnNndF9pbmZvLT5hY3RpdmVfYXR0 YWNoZWQtPmxpc3QsCi0JCQkJCXN0cnVjdCBhdHRhY2htZW50X2xpc3QsIGxpc3QpOworCQkJCQkg ICBzdHJ1Y3QgYXR0YWNobWVudF9saXN0LCBsaXN0KTsKKworCQlzZ3RsID0ga2NhbGxvYygxLCBz aXplb2YoKnNndGwpLCBHRlBfS0VSTkVMKTsKIAkJc2d0bC0+c2d0ID0gZG1hX2J1Zl9tYXBfYXR0 YWNobWVudChhdHRhY2hsLT5hdHRhY2gsIERNQV9CSURJUkVDVElPTkFMKTsKIAkJaWYgKCFzZ3Rs LT5zZ3QpIHsKIAkJCWtmcmVlKHNndGwpOwpAQCAtNzEsMTcgKzk1LDIwIEBAIGludCBoeXBlcl9k bWFidWZfcmVtb3RlX3N5bmMoaW50IGlkLCBpbnQgb3BzKQogCQlicmVhazsKIAogCWNhc2UgSFlQ RVJfRE1BQlVGX09QU19VTk1BUDoKLQkJYXR0YWNobCA9IGxpc3RfZmlyc3RfZW50cnkoJnNndF9p bmZvLT5hY3RpdmVfYXR0YWNoZWQtPmxpc3QsCi0JCQkJCXN0cnVjdCBhdHRhY2htZW50X2xpc3Qs IGxpc3QpOwotCQlzZ3RsID0gbGlzdF9maXJzdF9lbnRyeSgmc2d0X2luZm8tPmFjdGl2ZV9zZ3Rz LT5saXN0LAotCQkJCQlzdHJ1Y3Qgc2d0X2xpc3QsIGxpc3QpOwotCQlpZiAoIWF0dGFjaGwgfHwg IXNndGwpIHsKKwkJaWYgKGxpc3RfZW1wdHkoJnNndF9pbmZvLT5hY3RpdmVfc2d0cy0+bGlzdCkg fHwKKwkJICAgIGxpc3RfZW1wdHkoJnNndF9pbmZvLT5hY3RpdmVfYXR0YWNoZWQtPmxpc3QpKSB7 CiAJCQlwcmludGsoImRtYWJ1ZiByZW1vdGUgc3luYzo6ZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyBI WVBFUl9ETUFCVUZfT1BTX1VOTUFQXG4iKTsKKwkJCXByaW50aygibm8gbW9yZSBTR1Qgb3IgYXR0 YWNobWVudCBsZWZ0IHRvIGJlIGZyZWVkXG4iKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAK KwkJYXR0YWNobCA9IGxpc3RfZmlyc3RfZW50cnkoJnNndF9pbmZvLT5hY3RpdmVfYXR0YWNoZWQt Pmxpc3QsCisJCQkJCSAgIHN0cnVjdCBhdHRhY2htZW50X2xpc3QsIGxpc3QpOworCQlzZ3RsID0g bGlzdF9maXJzdF9lbnRyeSgmc2d0X2luZm8tPmFjdGl2ZV9zZ3RzLT5saXN0LAorCQkJCQlzdHJ1 Y3Qgc2d0X2xpc3QsIGxpc3QpOworCiAJCWRtYV9idWZfdW5tYXBfYXR0YWNobWVudChhdHRhY2hs LT5hdHRhY2gsIHNndGwtPnNndCwKLQkJCQkJRE1BX0JJRElSRUNUSU9OQUwpOworCQkJCQkgRE1B X0JJRElSRUNUSU9OQUwpOwogCQlsaXN0X2RlbCgmc2d0bC0+bGlzdCk7CiAJCWtmcmVlKHNndGwp OwogCQlicmVhazsKQEAgLTEyOSw5ICsxNTYsMTUgQEAgaW50IGh5cGVyX2RtYWJ1Zl9yZW1vdGVf c3luYyhpbnQgaWQsIGludCBvcHMpCiAKIAljYXNlIEhZUEVSX0RNQUJVRl9PUFNfS1VOTUFQX0FU T01JQzoKIAljYXNlIEhZUEVSX0RNQUJVRl9PUFNfS1VOTUFQOgorCQlpZiAobGlzdF9lbXB0eSgm c2d0X2luZm8tPnZhX2ttYXBwZWQtPmxpc3QpKSB7CisJCQlwcmludGsoImRtYWJ1ZiByZW1vdGUg c3luYzo6ZXJyb3Igd2hpbGUgcHJvY2Vzc2luZyBIWVBFUl9ETUFCVUZfT1BTX0tVTk1BUChfQVRP TUlDKVxuIik7CisJCQlwcmludGsoIm5vIG1vcmUgZG1hYnVmIFZBIHRvIGJlIGZyZWVkXG4iKTsK KwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKIAkJdmFfa21hcGwgPSBsaXN0X2ZpcnN0X2VudHJ5 KCZzZ3RfaW5mby0+dmFfa21hcHBlZC0+bGlzdCwKLQkJCQkJc3RydWN0IGttYXBfdmFkZHJfbGlz dCwgbGlzdCk7Ci0JCWlmICghdmFfa21hcGwgfHwgdmFfa21hcGwtPnZhZGRyID09IE5VTEwpIHsK KwkJCQkJICAgIHN0cnVjdCBrbWFwX3ZhZGRyX2xpc3QsIGxpc3QpOworCQlpZiAodmFfa21hcGwt PnZhZGRyID09IE5VTEwpIHsKIAkJCXByaW50aygiZG1hYnVmIHJlbW90ZSBzeW5jOjplcnJvciB3 aGlsZSBwcm9jZXNzaW5nIEhZUEVSX0RNQUJVRl9PUFNfS1VOTUFQKF9BVE9NSUMpXG4iKTsKIAkJ CXJldHVybiAtRUlOVkFMOwogCQl9CkBAIC0xNjcsNiArMjAwLDExIEBAIGludCBoeXBlcl9kbWFi dWZfcmVtb3RlX3N5bmMoaW50IGlkLCBpbnQgb3BzKQogCQlicmVhazsKIAogCWNhc2UgSFlQRVJf RE1BQlVGX09QU19WVU5NQVA6CisJCWlmIChsaXN0X2VtcHR5KCZzZ3RfaW5mby0+dmFfdm1hcHBl ZC0+bGlzdCkpIHsKKwkJCXByaW50aygiZG1hYnVmIHJlbW90ZSBzeW5jOjplcnJvciB3aGlsZSBw cm9jZXNzaW5nIEhZUEVSX0RNQUJVRl9PUFNfVlVOTUFQXG4iKTsKKwkJCXByaW50aygibm8gbW9y ZSBkbWFidWYgVkEgdG8gYmUgZnJlZWRcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KIAkJ dmFfdm1hcGwgPSBsaXN0X2ZpcnN0X2VudHJ5KCZzZ3RfaW5mby0+dmFfdm1hcHBlZC0+bGlzdCwK IAkJCQkJc3RydWN0IHZtYXBfdmFkZHJfbGlzdCwgbGlzdCk7CiAJCWlmICghdmFfdm1hcGwgfHwg dmFfdm1hcGwtPnZhZGRyID09IE5VTEwpIHsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK