From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Martin Subject: Re: Grant access to more than one dom Date: Tue, 10 Jun 2014 14:48:01 -0400 Message-ID: <1933773584.20140610144801@gmail.com> References: <1005757746.20140417115849@gmail.com> <1397747022.24638.306.camel@kazak.uk.xensource.com> <197873202.20140417123854@gmail.com> <1397751294.24638.308.camel@kazak.uk.xensource.com> <582473149.20140417135713@gmail.com> <53500C5E.10904@tycho.nsa.gov> <33361074.20140417150609@gmail.com> <1746801210.20140508114712@gmail.com> <536BD46D.5050106@tycho.nsa.gov> <23546977.20140508160331@gmail.com> <536BE7AC.7030802@tycho.nsa.gov> <1113401521.20140509100050@gmail.com> <707889333.20140605121001@gmail.com> <53922C69.8080500@tycho.nsa.gov> <1371551703.20140609115300@gmail.com> <5395EBB6.5070107@tycho.nsa.gov> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------0630F2072078B4A21" Return-path: In-Reply-To: <5395EBB6.5070107@tycho.nsa.gov> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Daniel De Graaf Cc: Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org ------------0630F2072078B4A21 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello Daniel, >> >> 3.- Analyzing the return value of __release_gref I found there is a >> possible (unlikely) infinite loop in the original __del_gref >> implementation. If gref_id <= 0 then the list element will never be >> released. If we have this situation then a memory leak is the the >> least of our worries as there is either a problem in the logic or >> memory corruption. I propose that under this situation we should just >> return OK and carry on. What do you think? > The infinite loop you added is incorrect and is actually quite likely to > be triggered if the other domain is not responding to whatever unmap > request has been set up. This does not have to be an error; it could be > triggered because the other domain has not yet been scheduled after the > notify was queued. If __release_gref fails, then you need to return from > __del_gref without actually deleting the gref object. This postpones the > actual deletion until it is retried by do_cleanup. > Encountering gref <= 0 in this loop should not happen; that indicates a > significantproblem and deserves a WARN_ON if you want to check for it. I have added WARN_ON(gref <= 0) Removed loop waiting for foreign dom to release page and added do_cleanup to end of share/unshare IOCTL. >>> It would be nice if this function also supported freeing the initial grant >>> reference, so that it can be used to change the domain ID a page is being >>> shared with. >> >> The idea of gntalloc_gref.shares is that there is 1 or more grefs >> associated to any allocation. This would mean changing that to 0 or >> more, i.e. gntalloc_gref.shares should be changed directly to a list >> head and we will require a memory allocation for the original >> allocation. The change is simple, shall I do it? > I would instead change the logic to something like: > If removing the primary reference and there are secondary references, promote > the first secondary reference (and remove/free its gntalloc_share_list). If > removing the last reference, either error, act as DEALLOC_GREF, or change all > other uses of gref_id to handle gref_id==0 meaning "not shared". Implemented this. Not as clean as changing the semantics but avoids dynamic allocation for the most common case. > The name change to xen/gntalloc_trio should not be in the submitted patch; > I assume this was for testing. Sorry. I do this so I can have the original driver loaded at the same time. I realized this after I'd sent the patch, but I'd already sent it. -- Best regards, Simon mailto:furryfuttock@gmail.com ------------0630F2072078B4A21 Content-Type: application/octet-stream; name="gntalloc.patch" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="gntalloc.patch" ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2dudGFsbG9jLmMgYi9kcml2ZXJzL3hlbi9nbnRh bGxvYy5jCmluZGV4IDc4N2QxNzkuLmYxNWQ4YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu L2dudGFsbG9jLmMKKysrIGIvZHJpdmVycy94ZW4vZ250YWxsb2MuYwpAQCAtODUsNiArODUs MTIgQEAgc3RydWN0IG5vdGlmeV9pbmZvIHsKIAlpbnQgZXZlbnQ7ICAgICAgICAgICAgLyog UG9ydCAoZXZlbnQgY2hhbm5lbCkgdG8gbm90aWZ5ICovCiB9OwogCisvKiBsaXN0IG9mIGZv cmVpZ24gZ3JhbnRzIGFzc29jaWF0ZWQgdG8gYSBnaXZlbiBncmFudCByZWZlcmVuY2UgKi8K K3N0cnVjdCBnbnRhbGxvY19zaGFyZV9saXN0IHsKKwlncmFudF9yZWZfdCBncmVmX2lkOwor CXN0cnVjdCBsaXN0X2hlYWQgbmV4dF9zaGFyZTsKK307CisKIC8qIE1ldGFkYXRhIG9uIGEg Z3JhbnQgcmVmZXJlbmNlLiAqLwogc3RydWN0IGdudGFsbG9jX2dyZWYgewogCXN0cnVjdCBs aXN0X2hlYWQgbmV4dF9ncmVmOyAgLyogbGlzdCBlbnRyeSBncmVmX2xpc3QgKi8KQEAgLTky LDcgKzk4LDcgQEAgc3RydWN0IGdudGFsbG9jX2dyZWYgewogCXN0cnVjdCBwYWdlICpwYWdl OwkgICAgIC8qIFRoZSBzaGFyZWQgcGFnZSAqLwogCXVpbnQ2NF90IGZpbGVfaW5kZXg7ICAg ICAgICAgLyogRmlsZSBvZmZzZXQgZm9yIG1tYXAoKSAqLwogCXVuc2lnbmVkIGludCB1c2Vy czsgICAgICAgICAgLyogVXNlIGNvdW50IC0gd2hlbiB6ZXJvLCB3YWl0aW5nIG9uIFhlbiAq LwotCWdyYW50X3JlZl90IGdyZWZfaWQ7ICAgICAgICAgLyogVGhlIGdyYW50IHJlZmVyZW5j ZSBudW1iZXIgKi8KKwlzdHJ1Y3QgZ250YWxsb2Nfc2hhcmVfbGlzdCBzaGFyZXM7ICAvKiBU aGUgbGlzdCBvZiBncmFudCByZWZlcmVuY2UgbnVtYmVycyBhc3NvY2lhdGVkIHdpdGggdGhp cyBwYWdlICovCiAJc3RydWN0IG5vdGlmeV9pbmZvIG5vdGlmeTsgICAvKiBVbm1hcCBub3Rp ZmljYXRpb24gKi8KIH07CiAKQEAgLTEyNSw2ICsxMzEsNyBAQCBzdGF0aWMgaW50IGFkZF9n cmVmcyhzdHJ1Y3QgaW9jdGxfZ250YWxsb2NfYWxsb2NfZ3JlZiAqb3AsCiAJTElTVF9IRUFE KHF1ZXVlX2dyZWYpOwogCUxJU1RfSEVBRChxdWV1ZV9maWxlKTsKIAlzdHJ1Y3QgZ250YWxs b2NfZ3JlZiAqZ3JlZjsKKwlncmFudF9yZWZfdCBncmVmX2lkOwogCiAJcmVhZG9ubHkgPSAh KG9wLT5mbGFncyAmIEdOVEFMTE9DX0ZMQUdfV1JJVEFCTEUpOwogCXJjID0gLUVOT01FTTsK QEAgLTE0MSwxMyArMTQ4LDE5IEBAIHN0YXRpYyBpbnQgYWRkX2dyZWZzKHN0cnVjdCBpb2N0 bF9nbnRhbGxvY19hbGxvY19ncmVmICpvcCwKIAkJCWdvdG8gdW5kbzsKIAogCQkvKiBHcmFu dCBmb3JlaWduIGFjY2VzcyB0byB0aGUgcGFnZS4gKi8KLQkJZ3JlZi0+Z3JlZl9pZCA9IGdu dHRhYl9ncmFudF9mb3JlaWduX2FjY2VzcyhvcC0+ZG9taWQsCisJCWdyZWZfaWQgPSBnbnR0 YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3Mob3AtPmRvbWlkLAogCQkJcGZuX3RvX21mbihwYWdl X3RvX3BmbihncmVmLT5wYWdlKSksIHJlYWRvbmx5KTsKLQkJaWYgKChpbnQpZ3JlZi0+Z3Jl Zl9pZCA8IDApIHsKLQkJCXJjID0gZ3JlZi0+Z3JlZl9pZDsKKwkJaWYgKChpbnQpZ3JlZl9p ZCA8IDApIHsKKwkJCXJjID0gZ3JlZl9pZDsKIAkJCWdvdG8gdW5kbzsKIAkJfQotCQlncmVm X2lkc1tpXSA9IGdyZWYtPmdyZWZfaWQ7CisKKwkJLyogc3RvcmUgdGhlIGdyZWRfaWQgdG8g YmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIgc28gdGhleSBjYW4gdXNlIGl0IGxhdGVyICovCisJ CWdyZWZfaWRzW2ldID0gZ3JlZl9pZDsKKworCQkvKiBhZGQgdGhpcyBncmVmIHRvIHRoZSBs aXN0IGZvciB0aGlzIHBhZ2UgKi8KKwkJSU5JVF9MSVNUX0hFQUQoJmdyZWYtPnNoYXJlcy5u ZXh0X3NoYXJlKTsKKwkJZ3JlZi0+c2hhcmVzLmdyZWZfaWQgPSBncmVmX2lkOwogCX0KIAog CS8qIEFkZCB0byBncmVmIGxpc3RzLiAqLwpAQCAtMTc5LDggKzE5MiwzMiBAQCB1bmRvOgog CXJldHVybiByYzsKIH0KIAotc3RhdGljIHZvaWQgX19kZWxfZ3JlZihzdHJ1Y3QgZ250YWxs b2NfZ3JlZiAqZ3JlZikKLXsKK3N0YXRpYyBpbnQgX19yZWxlYXNlX2dyZWYoZ3JhbnRfcmVm X3QgKmdyZWZfaWQpIHsKKwlXQVJOX09OKCpncmVmX2lkIDwgMCk7CisKKwkvKiBpZiB3ZSBo YXZlIGFuIGludmFsaWQgZ3JlZl9pZCB0aGVuIHdlIGhhdmUgYSByZWFsIHByb2JsZW0sIGVp dGhlciBhCisJICAgcHJvYmxlbSBpbiBsb2dpYyBvciBtZW1vcnkgY29ycnVwdGlvbiwgc28g YSBsZWFraW5nIGEgcGFnZSBpcyB0aGUKKwkgICBsZWFzdCBvZiBvdXIgd29ycmllcyAqLwor CWlmICgqZ3JlZl9pZCA8PSAwKQorCQlyZXR1cm4gMDsKKwkvKiBpZiB0aGlzIGdyZWYgaXMg c3RpbGwgbWFwcGVkIGJ5IHRoZSBmb3JlaWduIGRvbSB0aGVuIHdlIGNhbid0IHJlbGVhc2UK KwkgICBzbyByZXR1cm4gZXJyb3IgYW5kIHRoZSBjYWxsZXIgbXVzdCByZXRyeSAqLworCWVs c2UgaWYgKGdudHRhYl9xdWVyeV9mb3JlaWduX2FjY2VzcygqZ3JlZl9pZCkpCisJCXJldHVy biAtRUFHQUlOOworCS8qIGlmIHdlIGNhbid0IHJlbGVhc2UgdGhlIGZvcmVpZ24gYWNjZXNz IHRvIHRoaXMgZ3JlZiB0aGVuIHdlIGNhbid0CisJICAgcmVsZWFzZSBhbmQgdGhlIGNhbGxl ciBtdXN0IHJldHJ5ICovCisJZWxzZSBpZiAoIWdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3Nf cmVmKCpncmVmX2lkLCAwKSkKKwkJcmV0dXJuIC1FQUdBSU47CisKKwlnbnR0YWJfZnJlZV9n cmFudF9yZWZlcmVuY2UoKmdyZWZfaWQpOworCSpncmVmX2lkID0gMDsKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHZvaWQgX19kZWxfZ3JlZihzdHJ1Y3QgZ250YWxsb2NfZ3JlZiAqZ3Jl ZikgeworCXN0cnVjdCBnbnRhbGxvY19zaGFyZV9saXN0ICpwb3MsICpuOworCWludCBwZW5k aW5nID0gMDsKKwogCWlmIChncmVmLT5ub3RpZnkuZmxhZ3MgJiBVTk1BUF9OT1RJRllfQ0xF QVJfQllURSkgewogCQl1aW50OF90ICp0bXAgPSBrbWFwKGdyZWYtPnBhZ2UpOwogCQl0bXBb Z3JlZi0+bm90aWZ5LnBnb2ZmXSA9IDA7CkBAIC0xOTAsMTggKzIyNywyMyBAQCBzdGF0aWMg dm9pZCBfX2RlbF9ncmVmKHN0cnVjdCBnbnRhbGxvY19ncmVmICpncmVmKQogCQlub3RpZnlf cmVtb3RlX3ZpYV9ldnRjaG4oZ3JlZi0+bm90aWZ5LmV2ZW50KTsKIAkJZXZ0Y2huX3B1dChn cmVmLT5ub3RpZnkuZXZlbnQpOwogCX0KLQogCWdyZWYtPm5vdGlmeS5mbGFncyA9IDA7CiAK LQlpZiAoZ3JlZi0+Z3JlZl9pZCA+IDApIHsKLQkJaWYgKGdudHRhYl9xdWVyeV9mb3JlaWdu X2FjY2VzcyhncmVmLT5ncmVmX2lkKSkKLQkJCXJldHVybjsKLQotCQlpZiAoIWdudHRhYl9l bmRfZm9yZWlnbl9hY2Nlc3NfcmVmKGdyZWYtPmdyZWZfaWQsIDApKQotCQkJcmV0dXJuOwot Ci0JCWdudHRhYl9mcmVlX2dyYW50X3JlZmVyZW5jZShncmVmLT5ncmVmX2lkKTsKKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUocG9zLCBuLCAmZ3JlZi0+c2hhcmVzLm5leHRfc2hhcmUs IG5leHRfc2hhcmUpIHsKKwkJaWYgKCFfX3JlbGVhc2VfZ3JlZigmcG9zLT5ncmVmX2lkKSkK KwkJeworCQkJbGlzdF9kZWwoJnBvcy0+bmV4dF9zaGFyZSk7CisJCQlrZnJlZShwb3MpOwor CQl9CisJCWVsc2UKKwkJCXBlbmRpbmcrKzsKIAl9CisJaWYgKGdyZWYtPnNoYXJlcy5ncmVm X2lkID4gMCkKKwkJcGVuZGluZyArPSAhIV9fcmVsZWFzZV9ncmVmKCZncmVmLT5zaGFyZXMu Z3JlZl9pZCk7CisKKwkvKiBpZiB0aGVyZSBhcmUgc2hhcmVzIHRoYXQgYXJlIHN0aWxsIG1h cHBlZCBieSBmb3JlaWduIGRvbXMgdGhlbiB3ZSBwb3N0cG9uZSBwYWdlIHJlbW92YWwgdG8g ZG9fY2xlYW51cCAqLworCWlmIChwZW5kaW5nKQorCQlyZXR1cm47CiAKIAlncmVmX3NpemUt LTsKIAlsaXN0X2RlbCgmZ3JlZi0+bmV4dF9ncmVmKTsKQEAgLTQzNSw2ICs0NzcsMTI2IEBA IHN0YXRpYyBsb25nIGdudGFsbG9jX2lvY3RsX3VubWFwX25vdGlmeShzdHJ1Y3QgZ250YWxs b2NfZmlsZV9wcml2YXRlX2RhdGEgKnByaXYsCiAJcmV0dXJuIHJjOwogfQogCitzdGF0aWMg bG9uZyBnbnRhbGxvY19pb2N0bF9zaGFyZShzdHJ1Y3QgZ250YWxsb2NfZmlsZV9wcml2YXRl X2RhdGEgKnByaXYsIHZvaWQgX191c2VyICphcmcpCit7CisJc3RydWN0IGlvY3RsX2dudGFs bG9jX3NoYXJlX2dyZWYgb3A7CisJc3RydWN0IGdudGFsbG9jX2dyZWYgKmdyZWY7CisJaW50 IHJjOworCWludCByZWFkb25seTsKKwlzdHJ1Y3QgZ250YWxsb2Nfc2hhcmVfbGlzdCAqc2hh cmVfbGlzdDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmb3AsIGFyZywgc2l6ZW9mKG9wKSkp CisJCXJldHVybiAtRUZBVUxUOworCisJcmVhZG9ubHkgPSAhKG9wLmZsYWdzICYgR05UQUxM T0NfRkxBR19XUklUQUJMRSk7CisJcmMgPSAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmZ3Jl Zl9tdXRleCk7CisKKwkvKiBzZWUgaWYgd2UgY2FuIGZyZWUgdXAgYW55IHBlbmRpbmcgcGFn ZSByZWxlYXNlcyAqLworCWRvX2NsZWFudXAoKTsKKworCWdyZWYgPSBmaW5kX2dyZWZzKHBy aXYsIG9wLmluZGV4LCAxKTsKKworCWlmICghZ3JlZikgeworCQlyYyA9IC1FTk9FTlQ7CisJ CWdvdG8gc2hhcmVfb3V0OworCX0KKworCS8qIGlmIHRoZSBpbml0aWFsIHNoYXJlIGlzIGFz c2lnbmVkIHRoZW4gY3JlYXRlIGEgbmV3IHNoYXJlIGxpc3Qgbm9kZSAqLworCWlmIChncmVm LT5zaGFyZXMuZ3JlZl9pZCkgeworCQlzaGFyZV9saXN0ID0ga3phbGxvYyhzaXplb2YoKnNo YXJlX2xpc3QpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFzaGFyZV9saXN0KSB7CisJCQlyYyA9 IC1FTk9NRU07CisJCQlnb3RvIHNoYXJlX291dDsKKwkJfQorCisJCXNoYXJlX2xpc3QtPmdy ZWZfaWQgPSBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3Mob3AuZG9taWQsCisJCQlwZm5f dG9fbWZuKHBhZ2VfdG9fcGZuKGdyZWYtPnBhZ2UpKSwgcmVhZG9ubHkpOworCQlpZiAoKHNp Z25lZClzaGFyZV9saXN0LT5ncmVmX2lkIDwgMCkgeworCQkJa3pmcmVlKHNoYXJlX2xpc3Qp OworCQkJcmMgPSBzaGFyZV9saXN0LT5ncmVmX2lkOworCQkJZ290byBzaGFyZV9vdXQ7CisJ CX0KKworCQlsaXN0X2FkZF90YWlsKCZzaGFyZV9saXN0LT5uZXh0X3NoYXJlLCAmZ3JlZi0+ c2hhcmVzLm5leHRfc2hhcmUpOworCX0KKwllbHNlIHsKKwkJc2hhcmVfbGlzdCA9ICZncmVm LT5zaGFyZXM7CisJCXNoYXJlX2xpc3QtPmdyZWZfaWQgPSBnbnR0YWJfZ3JhbnRfZm9yZWln bl9hY2Nlc3Mob3AuZG9taWQsCisJCQlwZm5fdG9fbWZuKHBhZ2VfdG9fcGZuKGdyZWYtPnBh Z2UpKSwgcmVhZG9ubHkpOworCQlpZiAoKHNpZ25lZClzaGFyZV9saXN0LT5ncmVmX2lkIDwg MCkgeworCQkJcmMgPSBzaGFyZV9saXN0LT5ncmVmX2lkOworCQkJZ290byBzaGFyZV9vdXQ7 CisJCX0KKwl9CisKKwlvcC5ncmVmX2lkID0gc2hhcmVfbGlzdC0+Z3JlZl9pZDsKKwlyYyA9 IDA7CisKK3NoYXJlX291dDoKKwltdXRleF91bmxvY2soJmdyZWZfbXV0ZXgpOworCisJaWYg KCFyYyAmJiBjb3B5X3RvX3VzZXIoYXJnLCAmb3AsIHNpemVvZihvcCkpKQorCQlyYyA9IC1F RkFVTFQ7CisKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBsb25nIGdudGFsbG9jX2lvY3Rs X3Vuc2hhcmUoc3RydWN0IGdudGFsbG9jX2ZpbGVfcHJpdmF0ZV9kYXRhICpwcml2LCB2b2lk IF9fdXNlciAqYXJnKQoreworCXN0cnVjdCBpb2N0bF9nbnRhbGxvY191bnNoYXJlX2dyZWYg b3A7CisJc3RydWN0IGdudGFsbG9jX2dyZWYgKmdyZWY7CisJaW50IHJjID0gLUVOT0VOVDsK KwlzdHJ1Y3QgZ250YWxsb2Nfc2hhcmVfbGlzdCAqcG9zOworCisJaWYgKGNvcHlfZnJvbV91 c2VyKCZvcCwgYXJnLCBzaXplb2Yob3ApKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwltdXRl eF9sb2NrKCZncmVmX211dGV4KTsKKwlncmVmID0gZmluZF9ncmVmcyhwcml2LCBvcC5pbmRl eCwgMSk7CisKKwlpZiAoIWdyZWYpCisJCWdvdG8gdW5zaGFyZV9vdXQ7CisKKwkvKiBpZiB3 ZSBhcmUgcmVsZWFzaW5nIHRoZSBpbml0aWFsIHNoYXJlIHRoZW4gcmVwbGFjZSBpdCB3aXRo IHRoZSBuZXh0IGF2YWlsYWJsZSBzaGFyZS4KKwkgICBpZiB0aGVyZSBhcmUgbm8gbW9yZSBz aGFyZXMgdGhlbiBqdXN0IGxlYXZlIHRoZSBncmVmX2lkIGFzIDAgKi8KKwlpZiAoZ3JlZi0+ c2hhcmVzLmdyZWZfaWQgPT0gb3AuZ3JlZl9pZCkgeworCQlpZiAoX19yZWxlYXNlX2dyZWYo JmdyZWYtPnNoYXJlcy5ncmVmX2lkKSkKKwkJCXJjID0gLUVBR0FJTjsKKwkJZWxzZSB7CisJ CQlwb3MgPSBsaXN0X2ZpcnN0X2VudHJ5KCZncmVmLT5zaGFyZXMubmV4dF9zaGFyZSwKKwkJ CQkJCQkgc3RydWN0IGdudGFsbG9jX3NoYXJlX2xpc3QsCisJCQkJCQkJIG5leHRfc2hhcmUp OworCQkJaWYgKHBvcykgeworCQkJCWdyZWYtPnNoYXJlcy5ncmVmX2lkID0gcG9zLT5ncmVm X2lkOworCQkJCWxpc3RfZGVsKCZwb3MtPm5leHRfc2hhcmUpOworCQkJCWtmcmVlKHBvcyk7 CisJCQl9CisJCX0KKwl9CisJZWxzZSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAm Z3JlZi0+c2hhcmVzLm5leHRfc2hhcmUsIG5leHRfc2hhcmUpIHsKKwkJCWlmIChwb3MtPmdy ZWZfaWQgPT0gb3AuZ3JlZl9pZCkgeworCQkJCWlmIChfX3JlbGVhc2VfZ3JlZigmcG9zLT5n cmVmX2lkKSkKKwkJCQkJcmMgPSAtRUFHQUlOOworCQkJCWVsc2UgeworCQkJCQlsaXN0X2Rl bCgmcG9zLT5uZXh0X3NoYXJlKTsKKwkJCQkJa2ZyZWUocG9zKTsKKwkJCQkJcmMgPSAwOwor CQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCWRvX2NsZWFudXAoKTsKKwor dW5zaGFyZV9vdXQ6CisJbXV0ZXhfdW5sb2NrKCZncmVmX211dGV4KTsKKwlyZXR1cm4gcmM7 Cit9CisKIHN0YXRpYyBsb25nIGdudGFsbG9jX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1 bnNpZ25lZCBpbnQgY21kLAogCQl1bnNpZ25lZCBsb25nIGFyZykKIHsKQEAgLTQ1MCw2ICs2 MTIsMTIgQEAgc3RhdGljIGxvbmcgZ250YWxsb2NfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAs IHVuc2lnbmVkIGludCBjbWQsCiAJY2FzZSBJT0NUTF9HTlRBTExPQ19TRVRfVU5NQVBfTk9U SUZZOgogCQlyZXR1cm4gZ250YWxsb2NfaW9jdGxfdW5tYXBfbm90aWZ5KHByaXYsICh2b2lk IF9fdXNlciAqKWFyZyk7CiAKKwljYXNlIElPQ1RMX0dOVEFMTE9DX1NIQVJFX0dSRUY6CisJ CXJldHVybiBnbnRhbGxvY19pb2N0bF9zaGFyZShwcml2LCAodm9pZCBfX3VzZXIgKilhcmcp OworCisJY2FzZSBJT0NUTF9HTlRBTExPQ19VTlNIQVJFX0dSRUY6CisJCXJldHVybiBnbnRh bGxvY19pb2N0bF91bnNoYXJlKHByaXYsICh2b2lkIF9fdXNlciAqKWFyZyk7CisKIAlkZWZh dWx0OgogCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOwogCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv dWFwaS94ZW4vZ250YWxsb2MuaCBiL2luY2x1ZGUvdWFwaS94ZW4vZ250YWxsb2MuaAppbmRl eCA3NmJkNTgwLi4zMTkxMWRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkveGVuL2dudGFs bG9jLmgKKysrIGIvaW5jbHVkZS91YXBpL3hlbi9nbnRhbGxvYy5oCkBAIC03OSw0ICs3OSwz NiBAQCBzdHJ1Y3QgaW9jdGxfZ250YWxsb2NfdW5tYXBfbm90aWZ5IHsKIC8qIFNlbmQgYW4g aW50ZXJydXB0IG9uIHRoZSBpbmRpY2F0ZWQgZXZlbnQgY2hhbm5lbCAqLwogI2RlZmluZSBV Tk1BUF9OT1RJRllfU0VORF9FVkVOVCAweDIKIAorLyoKKyAqIFNoYXJlcyBhIHBhZ2UgdGhh dCBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRlZCAoc28gd2UgY2FuIHNoYXJlIHRoZSBzYW1l IHBhZ2UgCisgKiBiZXR3ZWVuIG1vcmUgdGhhbiBvbmUgZG9tYWluKQorICovCisjZGVmaW5l IElPQ1RMX0dOVEFMTE9DX1NIQVJFX0dSRUYgXAorX0lPQyhfSU9DX05PTkUsICdHJywgOCwg c2l6ZW9mKHN0cnVjdCBpb2N0bF9nbnRhbGxvY19zaGFyZV9ncmVmKSkKK3N0cnVjdCBpb2N0 bF9nbnRhbGxvY19zaGFyZV9ncmVmIHsKKwkvKiBJTiBwYXJhbWV0ZXJzICovCisJLyogVGhl IG9mZnNldCB1c2VkIGluIGNhbGwgdG8gbW1hcCgpLiAqLworCXVpbnQ2NF90IGluZGV4Owor CS8qIFRoZSBJRCBvZiB0aGUgZG9tYWluIHRvIGJlIGdpdmVuIGFjY2VzcyB0byB0aGUgZ3Jh bnRzLiAqLworCXVpbnQxNl90IGRvbWlkOworCS8qIEZsYWdzIGZvciB0aGlzIG1hcHBpbmcg Ki8KKwl1aW50MTZfdCBmbGFnczsKKwkvKiBPVVQgcGFyYW1ldGVycyAqLworCS8qIFRoZSBn cmFudCByZWZlcmVuY2VzIG9mIHRoZSBuZXdseSBjcmVhdGVkIGdyYW50ICovCisJdWludDMy X3QgZ3JlZl9pZDsKK307CisKKy8qCisgKiBVbnNoYXJlcyBhIHBhZ2UgdGhhdCBoYXMgYWxy ZWFkeSBiZWVuIHNoYXJlZAorICovCisjZGVmaW5lIElPQ1RMX0dOVEFMTE9DX1VOU0hBUkVf R1JFRiBcCitfSU9DKF9JT0NfTk9ORSwgJ0cnLCA5LCBzaXplb2Yoc3RydWN0IGlvY3RsX2du dGFsbG9jX3Vuc2hhcmVfZ3JlZikpCitzdHJ1Y3QgaW9jdGxfZ250YWxsb2NfdW5zaGFyZV9n cmVmIHsKKwkvKiBJTiBwYXJhbWV0ZXJzICovCisJLyogVGhlIG9mZnNldCB1c2VkIGluIGNh bGwgdG8gbW1hcCgpLiAqLworCXVpbnQ2NF90IGluZGV4OworCS8qIFRoZSBncmFudCByZWZl cmVuY2VzIG9mIHRoZSBuZXdseSBjcmVhdGVkIGdyYW50ICovCisJdWludDMyX3QgZ3JlZl9p ZDsKK307CisKICNlbmRpZiAvKiBfX0xJTlVYX1BVQkxJQ19HTlRBTExPQ19IX18gKi8K ------------0630F2072078B4A21 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel ------------0630F2072078B4A21--