From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Martin Subject: Re: Grant access to more than one dom Date: Mon, 9 Jun 2014 11:53:00 -0400 Message-ID: <1371551703.20140609115300@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> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------0C902C10C275CC916" Return-path: In-Reply-To: <53922C69.8080500@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 ------------0C902C10C275CC916 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi Daniel, Thanks for the revision. I attach an updated patch. With regards your comments: 1.- Renamed share_list field of gntalloc_gref. Now called shares. 2.- As you said, I think the increased logic is worth the effort of not requiring dynamic memory for the usual case of only one share. 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? 4.- Fixed possible leak in __del_gref 5.- Fixed whitespace changes. 6.- Checked kzalloc return value in gntalloc_ioctl_share. 7.- Removed superfluous INIT_LIST_HEAD in gntalloc_ioctl_share. 8.- Fixed possible gref leak in gntalloc_ioctl_unshare 9.- Re your comment about gntalloc_ioctl_unshare: > 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? 10.- gntalloc.h typos fixed. 11.- Fixed struct ioctl_gntalloc_share_gref member order. -- Best regards, Simon mailto:furryfuttock@gmail.com ------------0C902C10C275CC916 Content-Type: application/octet-stream; name="gntalloc.patch" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="gntalloc.patch" ZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2dudGFsbG9jLmMgYi9kcml2ZXJzL3hlbi9nbnRh bGxvYy5jCmluZGV4IDc4N2QxNzkuLmRiMzNhODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVu 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 X2lkc1tpXSA9IGdyZWYtPmdyZWZfaWQ7CisKKwkJLy8gc3RvcmUgdGhlIGdyZWRfaWQgdG8g YmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIgc28gdGhleSBjYW4gdXNlIGl0IGxhdGVyCisJCWdy ZWZfaWRzW2ldID0gZ3JlZl9pZDsKKworCQkvLyBhZGQgdGhpcyBncmVmIHRvIHRoZSBsaXN0 IGZvciB0aGlzIHBhZ2UKKwkJSU5JVF9MSVNUX0hFQUQoJmdyZWYtPnNoYXJlcy5uZXh0X3No YXJlKTsKKwkJZ3JlZi0+c2hhcmVzLmdyZWZfaWQgPSBncmVmX2lkOwogCX0KIAogCS8qIEFk ZCB0byBncmVmIGxpc3RzLiAqLwpAQCAtMTc5LDggKzE5MiwzMSBAQCB1bmRvOgogCXJldHVy biByYzsKIH0KIAorc3RhdGljIGludCBfX3JlbGVhc2VfZ3JlZihncmFudF9yZWZfdCAqZ3Jl Zl9pZCkKK3sKKwkvKiBpZiB3ZSBoYXZlIGFuIGludmFsaWQgZ3JlZl9pZCB0aGVuIHdlIGhh dmUgYSByZWFsIHByb2JsZW0sIGVpdGhlciBhCisJICAgcHJvYmxlbSBpbiBsb2dpYyBvciBt ZW1vcnkgY29ycnVwdGlvbiwgc28gYSBsZWFraW5nIGEgcGFnZSBpcyB0aGUKKwkgICBsZWFz dCBvZiBvdXIgd29ycmllcyAqLworCWlmICgqZ3JlZl9pZCA8PSAwKQorCQlyZXR1cm4gMDsK KwkvKiBpZiB0aGlzIGdyZWYgaXMgc3RpbGwgbWFwcGVkIGJ5IHRoZSBmb3JlaWduIGRvbSB0 aGVuIHdlIGNhbid0IHJlbGVhc2UKKwkgICBzbyByZXR1cm4gZXJyb3IgYW5kIHRoZSBjYWxs ZXIgbXVzdCByZXRyeSAqLworCWVsc2UgaWYgKGdudHRhYl9xdWVyeV9mb3JlaWduX2FjY2Vz cygqZ3JlZl9pZCkpCisJCXJldHVybiAtRUFHQUlOOworCS8qIGlmIHdlIGNhbid0IHJlbGVh c2UgdGhlIGZvcmVpZ24gYWNjZXNzIHRvIHRoaXMgZ3JlZiB0aGVuIHdlIGNhbid0CisJICAg cmVsZWFzZSBhbmQgdGhlIGNhbGxlciBtdXN0IHJldHJ5ICovCisJZWxzZSBpZiAoIWdudHRh Yl9lbmRfZm9yZWlnbl9hY2Nlc3NfcmVmKCpncmVmX2lkLCAwKSkKKwkJcmV0dXJuIC1FQUdB SU47CisKKwlnbnR0YWJfZnJlZV9ncmFudF9yZWZlcmVuY2UoKmdyZWZfaWQpOworCSpncmVm X2lkID0gMDsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgX19kZWxfZ3JlZihzdHJ1 Y3QgZ250YWxsb2NfZ3JlZiAqZ3JlZikKIHsKKwlzdHJ1Y3QgZ250YWxsb2Nfc2hhcmVfbGlz dCAqcG9zID0gTlVMTDsKKwogCWlmIChncmVmLT5ub3RpZnkuZmxhZ3MgJiBVTk1BUF9OT1RJ RllfQ0xFQVJfQllURSkgewogCQl1aW50OF90ICp0bXAgPSBrbWFwKGdyZWYtPnBhZ2UpOwog CQl0bXBbZ3JlZi0+bm90aWZ5LnBnb2ZmXSA9IDA7CkBAIC0xOTIsMTYgKzIyOCwxOCBAQCBz dGF0aWMgdm9pZCBfX2RlbF9ncmVmKHN0cnVjdCBnbnRhbGxvY19ncmVmICpncmVmKQogCX0K IAogCWdyZWYtPm5vdGlmeS5mbGFncyA9IDA7Ci0KLQlpZiAoZ3JlZi0+Z3JlZl9pZCA+IDAp IHsKLQkJaWYgKGdudHRhYl9xdWVyeV9mb3JlaWduX2FjY2VzcyhncmVmLT5ncmVmX2lkKSkK LQkJCXJldHVybjsKLQotCQlpZiAoIWdudHRhYl9lbmRfZm9yZWlnbl9hY2Nlc3NfcmVmKGdy ZWYtPmdyZWZfaWQsIDApKQotCQkJcmV0dXJuOwotCi0JCWdudHRhYl9mcmVlX2dyYW50X3Jl ZmVyZW5jZShncmVmLT5ncmVmX2lkKTsKKwl3aGlsZSAoIWxpc3RfZW1wdHkoJmdyZWYtPnNo YXJlcy5uZXh0X3NoYXJlKSkKKwl7CisJCXBvcyA9IGxpc3RfZmlyc3RfZW50cnkoJmdyZWYt PnNoYXJlcy5uZXh0X3NoYXJlLAorCQkJCQkJIHN0cnVjdCBnbnRhbGxvY19zaGFyZV9saXN0 LAorCQkJCQkJIG5leHRfc2hhcmUpOworCQlpZiAoIV9fcmVsZWFzZV9ncmVmKCZwb3MtPmdy ZWZfaWQpKQorCQl7CisJCQlsaXN0X2RlbCgmcG9zLT5uZXh0X3NoYXJlKTsKKwkJCWtmcmVl KHBvcyk7CisJCX0KIAl9CisJd2hpbGUgKF9fcmVsZWFzZV9ncmVmKCZncmVmLT5zaGFyZXMu Z3JlZl9pZCkpOwogCiAJZ3JlZl9zaXplLS07CiAJbGlzdF9kZWwoJmdyZWYtPm5leHRfZ3Jl Zik7CkBAIC00MzUsNiArNDczLDEwNCBAQCBzdGF0aWMgbG9uZyBnbnRhbGxvY19pb2N0bF91 bm1hcF9ub3RpZnkoc3RydWN0IGdudGFsbG9jX2ZpbGVfcHJpdmF0ZV9kYXRhICpwcml2LAog CXJldHVybiByYzsKIH0KIAorc3RhdGljIGxvbmcgZ250YWxsb2NfaW9jdGxfc2hhcmUoc3Ry dWN0IGdudGFsbG9jX2ZpbGVfcHJpdmF0ZV9kYXRhICpwcml2LCB2b2lkIF9fdXNlciAqYXJn KQoreworCXN0cnVjdCBpb2N0bF9nbnRhbGxvY19zaGFyZV9ncmVmIG9wOworCXN0cnVjdCBn bnRhbGxvY19ncmVmICpncmVmOworCWludCByYzsKKwlpbnQgcmVhZG9ubHk7CisJc3RydWN0 IGdudGFsbG9jX3NoYXJlX2xpc3QgKnNoYXJlX2xpc3Q7CisKKwlpZiAoY29weV9mcm9tX3Vz ZXIoJm9wLCBhcmcsIHNpemVvZihvcCkpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCXJlYWRv bmx5ID0gIShvcC5mbGFncyAmIEdOVEFMTE9DX0ZMQUdfV1JJVEFCTEUpOworCXJjID0gLUVO T01FTTsKKworCS8qIGdldCB0aGUgZ3JhbnQgc3RydWN0dXJlICovCisJbXV0ZXhfbG9jaygm Z3JlZl9tdXRleCk7CisJZ3JlZiA9IGZpbmRfZ3JlZnMocHJpdiwgb3AuaW5kZXgsIDEpOwor CisJaWYgKCFncmVmKSB7CisJCXJjID0gLUVOT0VOVDsKKwkJZ290byBzaGFyZV9vdXQ7CisJ fQorCisJLy8gY3JlYXRlIHNoYXJlIGxpc3Qgbm9kZQorCXNoYXJlX2xpc3QgPSBremFsbG9j KHNpemVvZigqc2hhcmVfbGlzdCksIEdGUF9LRVJORUwpOworCWlmICghc2hhcmVfbGlzdCkg eworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gc2hhcmVfb3V0OworCX0KKworCS8qIEdyYW50 IGZvcmVpZ24gYWNjZXNzIHRvIHRoZSBwYWdlLiAqLworCXNoYXJlX2xpc3QtPmdyZWZfaWQg PSBnbnR0YWJfZ3JhbnRfZm9yZWlnbl9hY2Nlc3Mob3AuZG9taWQsCisJCXBmbl90b19tZm4o cGFnZV90b19wZm4oZ3JlZi0+cGFnZSkpLCByZWFkb25seSk7CisJaWYgKChzaWduZWQpc2hh cmVfbGlzdC0+Z3JlZl9pZCA8IDApIHsKKwkJa3pmcmVlKHNoYXJlX2xpc3QpOworCQlyYyA9 IHNoYXJlX2xpc3QtPmdyZWZfaWQ7CisJCWdvdG8gc2hhcmVfb3V0OworCX0KKworCS8vIGFk ZCB0aGlzIGdyZWYgdG8gdGhlIGxpc3QgZm9yIHRoaXMgcGFnZQorCWxpc3RfYWRkX3RhaWwo JnNoYXJlX2xpc3QtPm5leHRfc2hhcmUsICZncmVmLT5zaGFyZXMubmV4dF9zaGFyZSk7CisK KwkvLyBzZXQgb3V0cHV0IGRhdGEKKwlvcC5ncmVmX2lkID0gc2hhcmVfbGlzdC0+Z3JlZl9p ZDsKKwlyYyA9IDA7CisKK3NoYXJlX291dDoKKwltdXRleF91bmxvY2soJmdyZWZfbXV0ZXgp OworCisJaWYgKCFyYyAmJiBjb3B5X3RvX3VzZXIoYXJnLCAmb3AsIHNpemVvZihvcCkpKQor CQlyYyA9IC1FRkFVTFQ7CisKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBsb25nIGdudGFs bG9jX2lvY3RsX3Vuc2hhcmUoc3RydWN0IGdudGFsbG9jX2ZpbGVfcHJpdmF0ZV9kYXRhICpw cml2LCB2b2lkIF9fdXNlciAqYXJnKQoreworCXN0cnVjdCBpb2N0bF9nbnRhbGxvY191bnNo YXJlX2dyZWYgb3A7CisJc3RydWN0IGdudGFsbG9jX2dyZWYgKmdyZWY7CisJaW50IHJjID0g LUVOT0VOVDsKKwlzdHJ1Y3QgZ250YWxsb2Nfc2hhcmVfbGlzdCAqcG9zOworCisJaWYgKGNv cHlfZnJvbV91c2VyKCZvcCwgYXJnLCBzaXplb2Yob3ApKSkKKwkJcmV0dXJuIC1FRkFVTFQ7 CisKKwkvKiBnZXQgdGhlIGdyYW50IHN0cnVjdHVyZSAqLworCW11dGV4X2xvY2soJmdyZWZf bXV0ZXgpOworCWdyZWYgPSBmaW5kX2dyZWZzKHByaXYsIG9wLmluZGV4LCAxKTsKKworCWlm ICghZ3JlZikKKwkJZ290byB1bnNoYXJlX291dDsKKworCS8vIHNlYXJjaCB0aGUgc2hhcmUg bGlzdCBmb3IgdGhpcyBncmFudCByZWYKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcywgJmdy ZWYtPnNoYXJlcy5uZXh0X3NoYXJlLCBuZXh0X3NoYXJlKSB7CisJCS8vIGlmIHRoaXMgaXMg b3VyIGdyYW50IHJlZiB0aGVuIGRlbGV0ZSBpdAorCQlpZiAocG9zLT5ncmVmX2lkID09IG9w LmdyZWZfaWQpIHsKKwkJCS8vIGlmIHdlIGNhbm5vdCByZWxlYXNlIHRoZW4gcmVxdWVzdCBh Z2FpbgorCQkJaWYgKF9fcmVsZWFzZV9ncmVmKCZwb3MtPmdyZWZfaWQpKQorCQkJCXJjID0g LUVBR0FJTjsKKwkJCWVsc2UgeworCQkJCS8vIGRlbGV0ZQorCQkJCWxpc3RfZGVsKCZwb3Mt Pm5leHRfc2hhcmUpOworCQkJCWtmcmVlKHBvcyk7CisKKwkJCQkvLyBzdWNjZXNzCisJCQkJ cmMgPSAwOworCQkJfQorCisJCQkvLyBkb25lCisJCQlicmVhazsKKwkJfQorCX0KKwordW5z aGFyZV9vdXQ6CisJbXV0ZXhfdW5sb2NrKCZncmVmX211dGV4KTsKKwlyZXR1cm4gcmM7Cit9 CisKIHN0YXRpYyBsb25nIGdudGFsbG9jX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNp Z25lZCBpbnQgY21kLAogCQl1bnNpZ25lZCBsb25nIGFyZykKIHsKQEAgLTQ1MCw2ICs1ODYs MTIgQEAgc3RhdGljIGxvbmcgZ250YWxsb2NfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVu c2lnbmVkIGludCBjbWQsCiAJY2FzZSBJT0NUTF9HTlRBTExPQ19TRVRfVU5NQVBfTk9USUZZ OgogCQlyZXR1cm4gZ250YWxsb2NfaW9jdGxfdW5tYXBfbm90aWZ5KHByaXYsICh2b2lkIF9f dXNlciAqKWFyZyk7CiAKKwljYXNlIElPQ1RMX0dOVEFMTE9DX1NIQVJFX0dSRUY6CisJCXJl dHVybiBnbnRhbGxvY19pb2N0bF9zaGFyZShwcml2LCAodm9pZCBfX3VzZXIgKilhcmcpOwor CisJY2FzZSBJT0NUTF9HTlRBTExPQ19VTlNIQVJFX0dSRUY6CisJCXJldHVybiBnbnRhbGxv Y19pb2N0bF91bnNoYXJlKHByaXYsICh2b2lkIF9fdXNlciAqKWFyZyk7CisKIAlkZWZhdWx0 OgogCQlyZXR1cm4gLUVOT0lPQ1RMQ01EOwogCX0KQEAgLTU3Myw3ICs3MTUsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBnbnRhbGxvY19mb3BzID0gewogICov CiBzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgZ250YWxsb2NfbWlzY2RldiA9IHsKIAkubWlu b3IJPSBNSVNDX0RZTkFNSUNfTUlOT1IsCi0JLm5hbWUJPSAieGVuL2dudGFsbG9jIiwKKwku bmFtZQk9ICJ4ZW4vZ250YWxsb2NfdHJpbyIsCiAJLmZvcHMJPSAmZ250YWxsb2NfZm9wcywK IH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS94ZW4vZ250YWxsb2MuaCBiL2luY2x1 ZGUvdWFwaS94ZW4vZ250YWxsb2MuaAppbmRleCA3NmJkNTgwLi4zMTkxMWRhIDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkveGVuL2dudGFsbG9jLmgKKysrIGIvaW5jbHVkZS91YXBpL3hl bi9nbnRhbGxvYy5oCkBAIC03OSw0ICs3OSwzNiBAQCBzdHJ1Y3QgaW9jdGxfZ250YWxsb2Nf dW5tYXBfbm90aWZ5IHsKIC8qIFNlbmQgYW4gaW50ZXJydXB0IG9uIHRoZSBpbmRpY2F0ZWQg ZXZlbnQgY2hhbm5lbCAqLwogI2RlZmluZSBVTk1BUF9OT1RJRllfU0VORF9FVkVOVCAweDIK IAorLyoKKyAqIFNoYXJlcyBhIHBhZ2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRl ZCAoc28gd2UgY2FuIHNoYXJlIHRoZSBzYW1lIHBhZ2UgCisgKiBiZXR3ZWVuIG1vcmUgdGhh biBvbmUgZG9tYWluKQorICovCisjZGVmaW5lIElPQ1RMX0dOVEFMTE9DX1NIQVJFX0dSRUYg XAorX0lPQyhfSU9DX05PTkUsICdHJywgOCwgc2l6ZW9mKHN0cnVjdCBpb2N0bF9nbnRhbGxv Y19zaGFyZV9ncmVmKSkKK3N0cnVjdCBpb2N0bF9nbnRhbGxvY19zaGFyZV9ncmVmIHsKKwkv KiBJTiBwYXJhbWV0ZXJzICovCisJLyogVGhlIG9mZnNldCB1c2VkIGluIGNhbGwgdG8gbW1h cCgpLiAqLworCXVpbnQ2NF90IGluZGV4OworCS8qIFRoZSBJRCBvZiB0aGUgZG9tYWluIHRv IGJlIGdpdmVuIGFjY2VzcyB0byB0aGUgZ3JhbnRzLiAqLworCXVpbnQxNl90IGRvbWlkOwor CS8qIEZsYWdzIGZvciB0aGlzIG1hcHBpbmcgKi8KKwl1aW50MTZfdCBmbGFnczsKKwkvKiBP VVQgcGFyYW1ldGVycyAqLworCS8qIFRoZSBncmFudCByZWZlcmVuY2VzIG9mIHRoZSBuZXds eSBjcmVhdGVkIGdyYW50ICovCisJdWludDMyX3QgZ3JlZl9pZDsKK307CisKKy8qCisgKiBV bnNoYXJlcyBhIHBhZ2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNoYXJlZAorICovCisjZGVm aW5lIElPQ1RMX0dOVEFMTE9DX1VOU0hBUkVfR1JFRiBcCitfSU9DKF9JT0NfTk9ORSwgJ0cn LCA5LCBzaXplb2Yoc3RydWN0IGlvY3RsX2dudGFsbG9jX3Vuc2hhcmVfZ3JlZikpCitzdHJ1 Y3QgaW9jdGxfZ250YWxsb2NfdW5zaGFyZV9ncmVmIHsKKwkvKiBJTiBwYXJhbWV0ZXJzICov CisJLyogVGhlIG9mZnNldCB1c2VkIGluIGNhbGwgdG8gbW1hcCgpLiAqLworCXVpbnQ2NF90 IGluZGV4OworCS8qIFRoZSBncmFudCByZWZlcmVuY2VzIG9mIHRoZSBuZXdseSBjcmVhdGVk IGdyYW50ICovCisJdWludDMyX3QgZ3JlZl9pZDsKK307CisKICNlbmRpZiAvKiBfX0xJTlVY X1BVQkxJQ19HTlRBTExPQ19IX18gKi8K ------------0C902C10C275CC916 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 ------------0C902C10C275CC916--