From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: [PATCH][IOMMU] Free unused interrupt remapping table entry Date: Fri, 27 Nov 2009 14:06:54 +0800 Message-ID: <4B0F6C7E.7000507@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010604070202070500090902" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: xen-devel@lists.xensource.com, "Zhai, Edwin" List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------010604070202070500090902 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This patch changes the IRTE allocation method, and frees unused IRTE when device is de-assigned. Signed-Off-By: Zhai Edwin --------------010604070202070500090902 Content-Type: application/octet-stream; name="free_irte.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="free_irte.patch" SW5kZXg6IHhlbi1kZXYveGVuL2FyY2gveDg2L21zaS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHhl bi1kZXYub3JpZy94ZW4vYXJjaC94ODYvbXNpLmMKKysrIHhlbi1kZXYveGVuL2FyY2gveDg2 L21zaS5jCkBAIC00MzgsNiArNDM4LDExIEBAIGludCBtc2lfZnJlZV9pcnEoc3RydWN0IG1z aV9kZXNjICplbnRyeSkKICAgICAgICAgc3RhcnQgPSAodW5zaWduZWQgbG9uZyllbnRyeS0+ bWFza19iYXNlICYgfihQQUdFX1NJWkUgLSAxKTsKICAgICAgICAgbXNpeF9wdXRfZml4bWFw KGVudHJ5LT5kZXYsIHZpcnRfdG9fZml4KHN0YXJ0KSk7CiAgICAgfQorCisgICAgLyogRnJl ZSB0aGUgdW51c2VkIElSVEUgaWYgaW50ciByZW1hcCBlbmFibGVkICovCisgICAgaWYgKCBp b21tdV9lbmFibGVkICkKKyAgICAgICAgaW9tbXVfdXBkYXRlX2lyZV9mcm9tX21zaShlbnRy eSwgTlVMTCk7CisKICAgICBsaXN0X2RlbCgmZW50cnktPmxpc3QpOwogICAgIHhmcmVlKGVu dHJ5KTsKICAgICByZXR1cm4gMDsKSW5kZXg6IHhlbi1kZXYveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2ludHJlbWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0geGVuLWRldi5vcmlnL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCisrKyB4ZW4tZGV2L3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jCkBAIC0xNDAsMTMgKzE0MCw3MiBA QCBpbnQgaW9tbXVfc3VwcG9ydHNfZWltKHZvaWQpCiAgICAgcmV0dXJuIDE7CiB9CiAKKy8q IE1hcmsgc3BlY2lmaWVkIGludHIgcmVtYXAgZW50cnkgYXMgZnJlZSAqLworc3RhdGljIHZv aWQgZnJlZV9yZW1hcF9lbnRyeShzdHJ1Y3QgaW9tbXUgKmlvbW11LCBpbnQgaW5kZXgpCit7 CisgICAgc3RydWN0IGlyZW1hcF9lbnRyeSAqaXJlbWFwX2VudHJ5ID0gTlVMTCwgKmlyZW1h cF9lbnRyaWVzOworICAgIHN0cnVjdCBpcl9jdHJsICppcl9jdHJsID0gaW9tbXVfaXJfY3Ry bChpb21tdSk7CisKKyAgICBpZiAoIGluZGV4IDwgMCB8fCBpbmRleCA+IElSRU1BUF9FTlRS WV9OUiAtIDEgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIHNwaW5faXNfbG9j a2VkKCZpcl9jdHJsLT5pcmVtYXBfbG9jaykgKTsKKworICAgIEdFVF9JUkVNQVBfRU5UUlko aXJfY3RybC0+aXJlbWFwX21hZGRyLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIGly ZW1hcF9lbnRyaWVzLCBpcmVtYXBfZW50cnkpOworCisgICAgbWVtc2V0KGlyZW1hcF9lbnRy eSwgMCwgc2l6ZW9mKHN0cnVjdCBpcmVtYXBfZW50cnkpKTsKKyAgICBpb21tdV9mbHVzaF9j YWNoZV9lbnRyeShpcmVtYXBfZW50cnkpOworICAgIGlvbW11X2ZsdXNoX2llY19pbmRleChp b21tdSwgMCwgaW5kZXgpOworCisgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGlyZW1hcF9l bnRyaWVzKTsKKyAgICBpcl9jdHJsLT5pcmVtYXBfbnVtLS07Cit9CisKKy8qCisgKiBMb29r IGZvciBhIGZyZWUgaW50ciByZW1hcCBlbnRyeS4KKyAqIE5lZWQgaG9sZCBpcmVtYXBfbG9j aywgYW5kIHNldHVwIHJldHVybmVkIGVudHJ5IGJlZm9yZSByZWxlYXNpbmcgbG9jay4KKyAq Lworc3RhdGljIGludCBhbGxvY19yZW1hcF9lbnRyeShzdHJ1Y3QgaW9tbXUgKmlvbW11KQor eworICAgIHN0cnVjdCBpcmVtYXBfZW50cnkgKmlyZW1hcF9lbnRyaWVzID0gTlVMTDsKKyAg ICBzdHJ1Y3QgaXJfY3RybCAqaXJfY3RybCA9IGlvbW11X2lyX2N0cmwoaW9tbXUpOworICAg IGludCBpOworCisgICAgQVNTRVJUKCBzcGluX2lzX2xvY2tlZCgmaXJfY3RybC0+aXJlbWFw X2xvY2spICk7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IElSRU1BUF9FTlRSWV9OUjsgaSsr ICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBpcmVtYXBfZW50cnkgKnA7CisgICAgICAgIGlm ICggaSAlICgxIDw8IElSRU1BUF9FTlRSWV9PUkRFUikgPT0gMCApCisgICAgICAgIHsKKyAg ICAgICAgICAgIC8qIFRoaXMgZW50cnkgYWNyb3NzIHBhZ2UgYm91bmRyeSAqLworICAgICAg ICAgICAgaWYgKCBpcmVtYXBfZW50cmllcyApCisgICAgICAgICAgICAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGlyZW1hcF9lbnRyaWVzKTsKKworICAgICAgICAgICAgR0VUX0lSRU1B UF9FTlRSWShpcl9jdHJsLT5pcmVtYXBfbWFkZHIsIGksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlyZW1hcF9lbnRyaWVzLCBwKTsKKyAgICAgICAgfQorICAgICAgICBlbHNl CisgICAgICAgICAgICBwID0gJmlyZW1hcF9lbnRyaWVzW2kgJSAoMSA8PCBJUkVNQVBfRU5U UllfT1JERVIpXTsKKworICAgICAgICBpZiAoIHAtPmxvX3ZhbCA9PSAwICYmIHAtPmhpX3Zh bCA9PSAwICkgLyogYSBmcmVlIGVudHJ5ICovCisgICAgICAgICAgICBicmVhazsKKyAgICB9 CisKKyAgICBpZiAoIGlyZW1hcF9lbnRyaWVzICkKKyAgICAgICAgdW5tYXBfdnRkX2RvbWFp bl9wYWdlKGlyZW1hcF9lbnRyaWVzKTsKKworICAgIGlyX2N0cmwtPmlyZW1hcF9udW0rKzsK KyAgICByZXR1cm4gaTsKK30KKwogc3RhdGljIGludCByZW1hcF9lbnRyeV90b19pb2FwaWNf cnRlKAogICAgIHN0cnVjdCBpb21tdSAqaW9tbXUsIGludCBpbmRleCwgc3RydWN0IElPX3hB UElDX3JvdXRlX2VudHJ5ICpvbGRfcnRlKQogewogICAgIHN0cnVjdCBpcmVtYXBfZW50cnkg KmlyZW1hcF9lbnRyeSA9IE5VTEwsICppcmVtYXBfZW50cmllczsKICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOwogICAgIHN0cnVjdCBpcl9jdHJsICppcl9jdHJsID0gaW9tbXVfaXJfY3Ry bChpb21tdSk7Ci0gICAgdTY0IGVudHJ5X2Jhc2U7CiAKICAgICBpZiAoIGlyX2N0cmwgPT0g TlVMTCApCiAgICAgewpAQCAtMTU1LDIxICsyMTQsMjYgQEAgc3RhdGljIGludCByZW1hcF9l bnRyeV90b19pb2FwaWNfcnRlKAogICAgICAgICByZXR1cm4gLUVGQVVMVDsKICAgICB9CiAK LSAgICBpZiAoIGluZGV4ID4gaXJfY3RybC0+aXJlbWFwX2luZGV4ICkKKyAgICBpZiAoIGlu ZGV4IDwgMCB8fCBpbmRleCA+IElSRU1BUF9FTlRSWV9OUiAtIDEgKQogICAgIHsKICAgICAg ICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwKLSAgICAgICAgICAgICAgICAiJXM6 IGluZGV4ICglZCkgaXMgbGFyZ2VyIHRoYW4gcmVtYXAgdGFibGUgZW50cnkgc2l6ZSAoJWQp IVxuIiwKLSAgICAgICAgICAgICAgICBfX2Z1bmNfXywgaW5kZXgsIGlyX2N0cmwtPmlyZW1h cF9pbmRleCk7CisgICAgICAgICAgICAgICAgIiVzOiBpbmRleCAoJWQpIGZvciByZW1hcCB0 YWJsZSBpcyBpbnZhbGlkICFcbiIsCisgICAgICAgICAgICAgICAgX19mdW5jX18sIGluZGV4 KTsKICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgfQogCiAgICAgc3Bpbl9sb2NrX2ly cXNhdmUoJmlyX2N0cmwtPmlyZW1hcF9sb2NrLCBmbGFncyk7CiAKLSAgICBlbnRyeV9iYXNl ID0gaXJfY3RybC0+aXJlbWFwX21hZGRyICsKLSAgICAgICAgICAgICAgICAgKCggaW5kZXgg Pj4gSVJFTUFQX0VOVFJZX09SREVSICkgPDwgUEFHRV9TSElGVCApOwotICAgIGlyZW1hcF9l bnRyaWVzID0KLSAgICAgICAgKHN0cnVjdCBpcmVtYXBfZW50cnkgKiltYXBfdnRkX2RvbWFp bl9wYWdlKGVudHJ5X2Jhc2UpOwotICAgIGlyZW1hcF9lbnRyeSA9ICZpcmVtYXBfZW50cmll c1tpbmRleCAlICgxIDw8IElSRU1BUF9FTlRSWV9PUkRFUildOworICAgIEdFVF9JUkVNQVBf RU5UUlkoaXJfY3RybC0+aXJlbWFwX21hZGRyLCBpbmRleCwKKyAgICAgICAgICAgICAgICAg ICAgIGlyZW1hcF9lbnRyaWVzLCBpcmVtYXBfZW50cnkpOworCisgICAgaWYgKCBpcmVtYXBf ZW50cnktPmhpX3ZhbCA9PSAwICYmIGlyZW1hcF9lbnRyeS0+bG9fdmFsID09IDAgKQorICAg IHsKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwKKyAgICAgICAgICAg ICAgICAiJXM6IGluZGV4ICglZCkgZ2V0IGFuIGVtcHR5IGVudHJ5IVxuIiwKKyAgICAgICAg ICAgICAgICBfX2Z1bmNfXywgaW5kZXgpOworICAgICAgICByZXR1cm4gLUVGQVVMVDsKKyAg ICB9CiAKICAgICBvbGRfcnRlLT52ZWN0b3IgPSBpcmVtYXBfZW50cnktPmxvLnZlY3RvcjsK ICAgICBvbGRfcnRlLT5kZWxpdmVyeV9tb2RlID0gaXJlbWFwX2VudHJ5LT5sby5kbG07CkBA IC0xOTUsNyArMjU5LDYgQEAgc3RhdGljIGludCBpb2FwaWNfcnRlX3RvX3JlbWFwX2VudHJ5 KHN0cgogICAgIGludCBpbmRleDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0 cnVjdCBpcl9jdHJsICppcl9jdHJsID0gaW9tbXVfaXJfY3RybChpb21tdSk7Ci0gICAgdTY0 IGVudHJ5X2Jhc2U7CiAKICAgICByZW1hcF9ydGUgPSAoc3RydWN0IElPX0FQSUNfcm91dGVf cmVtYXBfZW50cnkgKikgb2xkX3J0ZTsKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaXJfY3Ry bC0+aXJlbWFwX2xvY2ssIGZsYWdzKTsKQEAgLTIwMyw4ICsyNjYsNyBAQCBzdGF0aWMgaW50 IGlvYXBpY19ydGVfdG9fcmVtYXBfZW50cnkoc3RyCiAgICAgaW5kZXggPSBhcGljX3Bpbl8y X2lyX2lkeFthcGljXVtpb2FwaWNfcGluXTsKICAgICBpZiAoIGluZGV4IDwgMCApCiAgICAg ewotICAgICAgICBpcl9jdHJsLT5pcmVtYXBfaW5kZXgrKzsKLSAgICAgICAgaW5kZXggPSBp cl9jdHJsLT5pcmVtYXBfaW5kZXg7CisgICAgICAgIGluZGV4ID0gYWxsb2NfcmVtYXBfZW50 cnkoaW9tbXUpOwogICAgICAgICBhcGljX3Bpbl8yX2lyX2lkeFthcGljXVtpb2FwaWNfcGlu XSA9IGluZGV4OwogICAgIH0KIApAQCAtMjE4LDExICsyODAsOCBAQCBzdGF0aWMgaW50IGlv YXBpY19ydGVfdG9fcmVtYXBfZW50cnkoc3RyCiAgICAgICAgIHJldHVybiAtRUZBVUxUOwog ICAgIH0KIAotICAgIGVudHJ5X2Jhc2UgPSBpcl9jdHJsLT5pcmVtYXBfbWFkZHIgKwotICAg ICAgICAgICAgICAgICAoKCBpbmRleCA+PiBJUkVNQVBfRU5UUllfT1JERVIgKSA8PCBQQUdF X1NISUZUICk7Ci0gICAgaXJlbWFwX2VudHJpZXMgPQotICAgICAgICAoc3RydWN0IGlyZW1h cF9lbnRyeSAqKW1hcF92dGRfZG9tYWluX3BhZ2UoZW50cnlfYmFzZSk7Ci0gICAgaXJlbWFw X2VudHJ5ID0gJmlyZW1hcF9lbnRyaWVzW2luZGV4ICUgKDEgPDwgSVJFTUFQX0VOVFJZX09S REVSKV07CisgICAgR0VUX0lSRU1BUF9FTlRSWShpcl9jdHJsLT5pcmVtYXBfbWFkZHIsIGlu ZGV4LAorICAgICAgICAgICAgICAgICAgICAgaXJlbWFwX2VudHJpZXMsIGlyZW1hcF9lbnRy eSk7CiAKICAgICBtZW1jcHkoJm5ld19pcmUsIGlyZW1hcF9lbnRyeSwgc2l6ZW9mKHN0cnVj dCBpcmVtYXBfZW50cnkpKTsKIApAQCAtMjkxLDcgKzM1MCw3IEBAIHVuc2lnbmVkIGludCBp b19hcGljX3JlYWRfcmVtYXBfcnRlKAogICAgIHN0cnVjdCBpcl9jdHJsICppcl9jdHJsID0g aW9tbXVfaXJfY3RybChpb21tdSk7CiAKICAgICBpZiAoICFpb21tdSB8fCAhaXJfY3RybCB8 fCBpcl9jdHJsLT5pcmVtYXBfbWFkZHIgPT0gMCB8fAotICAgICAgICAoaXJfY3RybC0+aXJl bWFwX2luZGV4ID09IC0xKSB8fAorICAgICAgICAoaXJfY3RybC0+aXJlbWFwX251bSA9PSAw KSB8fAogICAgICAgICAoIChpbmRleCA9IGFwaWNfcGluXzJfaXJfaWR4W2FwaWNdW2lvYXBp Y19waW5dKSA8IDAgKSApCiAgICAgewogICAgICAgICAqSU9fQVBJQ19CQVNFKGFwaWMpID0g cmVnOwpAQCAtNDMxLDcgKzQ5MCw2IEBAIHN0YXRpYyBpbnQgcmVtYXBfZW50cnlfdG9fbXNp X21zZygKICAgICBpbnQgaW5kZXg7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBz dHJ1Y3QgaXJfY3RybCAqaXJfY3RybCA9IGlvbW11X2lyX2N0cmwoaW9tbXUpOwotICAgIHU2 NCBlbnRyeV9iYXNlOwogCiAgICAgaWYgKCBpcl9jdHJsID09IE5VTEwgKQogICAgIHsKQEAg LTQ0NCwyMSArNTAyLDI2IEBAIHN0YXRpYyBpbnQgcmVtYXBfZW50cnlfdG9fbXNpX21zZygK ICAgICBpbmRleCA9IChyZW1hcF9ydGUtPmFkZHJlc3NfbG8uaW5kZXhfMTUgPDwgMTUpIHwK ICAgICAgICAgICAgICByZW1hcF9ydGUtPmFkZHJlc3NfbG8uaW5kZXhfMF8xNDsKIAotICAg IGlmICggaW5kZXggPiBpcl9jdHJsLT5pcmVtYXBfaW5kZXggKQorICAgIGlmICggaW5kZXgg PCAwIHx8IGluZGV4ID4gSVJFTUFQX0VOVFJZX05SIC0gMSApCiAgICAgewogICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLAotICAgICAgICAgICAgICAgICIlczogaW5k ZXggKCVkKSBpcyBsYXJnZXIgdGhhbiByZW1hcCB0YWJsZSBlbnRyeSBzaXplICglZClcbiIs Ci0gICAgICAgICAgICAgICAgX19mdW5jX18sIGluZGV4LCBpcl9jdHJsLT5pcmVtYXBfaW5k ZXgpOworICAgICAgICAgICAgICAgICIlczogaW5kZXggKCVkKSBmb3IgcmVtYXAgdGFibGUg aXMgaW52YWxpZCAhXG4iLAorICAgICAgICAgICAgICAgIF9fZnVuY19fLCBpbmRleCk7CiAg ICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgIH0KIAogICAgIHNwaW5fbG9ja19pcnFzYXZl KCZpcl9jdHJsLT5pcmVtYXBfbG9jaywgZmxhZ3MpOwogCi0gICAgZW50cnlfYmFzZSA9IGly X2N0cmwtPmlyZW1hcF9tYWRkciArCi0gICAgICAgICAgICAgICAgICgoIGluZGV4ID4+IElS RU1BUF9FTlRSWV9PUkRFUiApIDw8IFBBR0VfU0hJRlQgKTsKLSAgICBpcmVtYXBfZW50cmll cyA9Ci0gICAgICAgIChzdHJ1Y3QgaXJlbWFwX2VudHJ5ICopbWFwX3Z0ZF9kb21haW5fcGFn ZShlbnRyeV9iYXNlKTsKLSAgICBpcmVtYXBfZW50cnkgPSAmaXJlbWFwX2VudHJpZXNbaW5k ZXggJSAoMSA8PCBJUkVNQVBfRU5UUllfT1JERVIpXTsKKyAgICBHRVRfSVJFTUFQX0VOVFJZ KGlyX2N0cmwtPmlyZW1hcF9tYWRkciwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICBp cmVtYXBfZW50cmllcywgaXJlbWFwX2VudHJ5KTsKKworICAgIGlmICggaXJlbWFwX2VudHJ5 LT5oaV92YWwgPT0gMCAmJiBpcmVtYXBfZW50cnktPmxvX3ZhbCA9PSAwICkKKyAgICB7Cisg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCisgICAgICAgICAgICAgICAg IiVzOiBpbmRleCAoJWQpIGdldCBhbiBlbXB0eSBlbnRyeSFcbiIsCisgICAgICAgICAgICAg ICAgX19mdW5jX18sIGluZGV4KTsKKyAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgfQog CiAgICAgbXNnLT5hZGRyZXNzX2hpID0gTVNJX0FERFJfQkFTRV9ISTsKICAgICBtc2ctPmFk ZHJlc3NfbG8gPQpAQCAtNDk4LDE1ICs1NjEsMjcgQEAgc3RhdGljIGludCBtc2lfbXNnX3Rv X3JlbWFwX2VudHJ5KAogICAgIGludCBpbmRleDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwogICAgIHN0cnVjdCBpcl9jdHJsICppcl9jdHJsID0gaW9tbXVfaXJfY3RybChpb21tdSk7 Ci0gICAgdTY0IGVudHJ5X2Jhc2U7CiAKICAgICByZW1hcF9ydGUgPSAoc3RydWN0IG1zaV9t c2dfcmVtYXBfZW50cnkgKikgbXNnOwogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpcl9jdHJs LT5pcmVtYXBfbG9jaywgZmxhZ3MpOwogCisgICAgaWYgKCBtc2cgPT0gTlVMTCApCisgICAg eworICAgICAgICAvKiBGcmVlIHNwZWNpZmllZCB1bnVzZWQgSVJURSAqLworICAgICAgICBm cmVlX3JlbWFwX2VudHJ5KGlvbW11LCBtc2lfZGVzYy0+cmVtYXBfaW5kZXgpOworICAgICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpcl9jdHJsLT5pcmVtYXBfbG9jaywgZmxhZ3Mp OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBpZiAoIG1zaV9kZXNjLT5yZW1h cF9pbmRleCA8IDAgKQogICAgIHsKLSAgICAgICAgaXJfY3RybC0+aXJlbWFwX2luZGV4Kys7 Ci0gICAgICAgIGluZGV4ID0gaXJfY3RybC0+aXJlbWFwX2luZGV4OworICAgICAgICAvKgor ICAgICAgICAgKiBUT0RPOiBNdWx0aXBsZS12ZWN0b3IgTVNJIHJlcXVpcmVzIGFsbG9jYXRp bmcgbXVsdGlwbGUgY29udGludW91cworICAgICAgICAgKiBlbnRyaWVzIGFuZCBjb25maWd1 cmluZyBhZGRyL2RhdGEgb2YgbXNpX21zZyBpbiBkaWZmZXJlbnQgd2F5LiBTbworICAgICAg ICAgKiBhbGxvY2FfcmVtYXBfZW50cnkgd2lsbCBiZSBjaGFuZ2VkIGlmIGVuYWJsaW5nIG11 bHRpcGxlLXZlY3RvciBNU0kKKyAgICAgICAgICogaW4gZnV0dXJlLgorICAgICAgICAgKi8K KyAgICAgICAgaW5kZXggPSBhbGxvY19yZW1hcF9lbnRyeShpb21tdSk7CiAgICAgICAgIG1z aV9kZXNjLT5yZW1hcF9pbmRleCA9IGluZGV4OwogICAgIH0KICAgICBlbHNlCkBAIC01MjMs MTEgKzU5OCw5IEBAIHN0YXRpYyBpbnQgbXNpX21zZ190b19yZW1hcF9lbnRyeSgKICAgICAg ICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgfQogCi0gICAgZW50cnlfYmFzZSA9IGlyX2N0cmwt PmlyZW1hcF9tYWRkciArCi0gICAgICAgICAgICAgICAgICgoIGluZGV4ID4+IElSRU1BUF9F TlRSWV9PUkRFUiApIDw8IFBBR0VfU0hJRlQgKTsKLSAgICBpcmVtYXBfZW50cmllcyA9Ci0g ICAgICAgIChzdHJ1Y3QgaXJlbWFwX2VudHJ5ICopbWFwX3Z0ZF9kb21haW5fcGFnZShlbnRy eV9iYXNlKTsKLSAgICBpcmVtYXBfZW50cnkgPSAmaXJlbWFwX2VudHJpZXNbaW5kZXggJSAo MSA8PCBJUkVNQVBfRU5UUllfT1JERVIpXTsKKyAgICBHRVRfSVJFTUFQX0VOVFJZKGlyX2N0 cmwtPmlyZW1hcF9tYWRkciwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICBpcmVtYXBf ZW50cmllcywgaXJlbWFwX2VudHJ5KTsKKwogICAgIG1lbWNweSgmbmV3X2lyZSwgaXJlbWFw X2VudHJ5LCBzaXplb2Yoc3RydWN0IGlyZW1hcF9lbnRyeSkpOwogCiAgICAgLyogU2V0IGlu dGVycnVwdCByZW1hcHBpbmcgdGFibGUgZW50cnkgKi8KQEAgLTY0Miw3ICs3MTUsNyBAQCBp bnQgZW5hYmxlX2ludHJlbWFwKHN0cnVjdCBpb21tdSAqaW9tbXUpCiAgICAgICAgICAgICAg ICAgICAgICJDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBpcl9jdHJsLT5pcmVtYXBfbWFk ZHJcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0KLSAgICAg ICAgaXJfY3RybC0+aXJlbWFwX2luZGV4ID0gLTE7CisgICAgICAgIGlyX2N0cmwtPmlyZW1h cF9udW0gPSAwOwogICAgIH0KIAogI2lmZGVmIENPTkZJR19YODYKSW5kZXg6IHhlbi1kZXYv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g eGVuLWRldi5vcmlnL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCisrKyB4 ZW4tZGV2L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCkBAIC0zMjUsNiAr MzI1LDIwIEBAIHN0cnVjdCBpcmVtYXBfZW50cnkgewogI2RlZmluZSBpcmVtYXBfc2V0X3By ZXNlbnQodikgZG8geyh2KS5sbyB8PSAxO30gd2hpbGUoMCkKICNkZWZpbmUgaXJlbWFwX2Ns ZWFyX3ByZXNlbnQodikgZG8geyh2KS5sbyAmPSB+MTt9IHdoaWxlKDApCiAKKy8qCisgKiBH ZXQgdGhlIGludHIgcmVtYXAgZW50cnk6CisgKiBtYWRkciAgIC0gbWFjaGluZSBhZGRyIG9m IHRoZSB0YWJsZQorICogaW5kZXggICAtIGluZGV4IG9mIHRoZSBlbnRyeQorICogZW50cmll cyAtIHJldHVybiBhZGRyIG9mIHRoZSBwYWdlIGhvbGRpbmcgdGhpcyBlbnRyeSwgbmVlZCB1 bm1hcCBpdAorICogZW50cnkgICAtIHJldHVybiByZXF1aXJlZCBlbnRyeQorICovCisjZGVm aW5lIEdFVF9JUkVNQVBfRU5UUlkobWFkZHIsIGluZGV4LCBlbnRyaWVzLCBlbnRyeSkgICAg ICAgICAgICAgICAgICAgICAgICBcCitkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ZW50cmllcyA9IChzdHJ1Y3QgaXJlbWFwX2VudHJ5ICopbWFwX3Z0ZF9kb21haW5fcGFnZSgg ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgIChtYWRkcikgKyAoKCAoaW5k ZXgpID4+IElSRU1BUF9FTlRSWV9PUkRFUiApIDw8IFBBR0VfU0hJRlQgKSApOyBcCisgICAg ZW50cnkgPSAmZW50cmllc1soaW5kZXgpICUgKDEgPDwgSVJFTUFQX0VOVFJZX09SREVSKV07 ICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlKDApCisKIC8qIHF1ZXVlIGludmFsaWRh dGlvbiBlbnRyeSAqLwogc3RydWN0IHFpbnZhbF9lbnRyeSB7CiAgICAgdW5pb24gewpAQCAt NDcyLDcgKzQ4Niw3IEBAIHN0cnVjdCBxaV9jdHJsIHsKIAogc3RydWN0IGlyX2N0cmwgewog ICAgIHU2NCBpcmVtYXBfbWFkZHI7ICAgICAgICAgICAgLyogaW50ZXJydXB0IHJlbWFwIHRh YmxlIG1hY2hpbmUgYWRkcmVzcyAqLwotICAgIGludCBpcmVtYXBfaW5kZXg7ICAgICAgICAg ICAgLyogaW50ZXJydXB0IHJlbWFwIGluZGV4ICovCisgICAgaW50IGlyZW1hcF9udW07ICAg ICAgICAgICAgICAvKiB0b3RhbCBudW0gb2YgdXNlZCBpbnRlcnJ1cHQgcmVtYXAgZW50cnkg Ki8KICAgICBzcGlubG9ja190IGlyZW1hcF9sb2NrOyAgICAgIC8qIGxvY2sgZm9yIGlycSBy ZW1hcHBwaW5nIHRhYmxlICovCiB9OwogCkluZGV4OiB4ZW4tZGV2L3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC91dGlscy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHhlbi1kZXYub3JpZy94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdXRpbHMuYworKysgeGVuLWRldi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvdXRpbHMuYwpAQCAtMjI3LDYgKzIyNyw3IEBAIHN0YXRp YyB2b2lkIGR1bXBfaW9tbXVfaW5mbyh1bnNpZ25lZCBjaGEKICAgICAgICAgICAgIHU2NCBp cmVtYXBfbWFkZHIgPSBkbWFyX3JlYWRxKGlvbW11LT5yZWcsIERNQVJfSVJUQV9SRUcpOwog ICAgICAgICAgICAgaW50IG5yX2VudHJ5ID0gMSA8PCAoKGlyZW1hcF9tYWRkciAmIDB4Rikg KyAxKTsKICAgICAgICAgICAgIHN0cnVjdCBpcmVtYXBfZW50cnkgKmlyZW1hcF9lbnRyaWVz ID0gTlVMTDsKKyAgICAgICAgICAgIGludCBwcmludF9jbnQgPSAwOwogCiAgICAgICAgICAg ICBwcmludGsoIiAgSW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSAobnJfZW50cnk9MHgleC4g IgogICAgICAgICAgICAgICAgICJPbmx5IGR1bXAgUD0xIGVudHJpZXMgaGVyZSk6XG4iLCBu cl9lbnRyeSk7CkBAIC0yMzgsMTQgKzIzOSwxNCBAQCBzdGF0aWMgdm9pZCBkdW1wX2lvbW11 X2luZm8odW5zaWduZWQgY2hhCiAgICAgICAgICAgICAgICAgaWYgKCBpICUgKDEgPDwgSVJF TUFQX0VOVFJZX09SREVSKSA9PSAwICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgIC8qIFRoaXMgZW50cnkgYWNyb3NzIHBhZ2UgYm91bmRyeSAqLwotICAgICAg ICAgICAgICAgICAgICB1NjQgZW50cnlfYmFzZSA9IGlyZW1hcF9tYWRkciArCi0gICAgICAg ICAgICAgICAgICAgICAgICAoKCBpID4+IElSRU1BUF9FTlRSWV9PUkRFUiApIDw8IFBBR0Vf U0hJRlQgKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCBpcmVtYXBfZW50cmllcyApCiAg ICAgICAgICAgICAgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoaXJlbWFwX2Vu dHJpZXMpOwotICAgICAgICAgICAgICAgICAgICBpcmVtYXBfZW50cmllcyA9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAoc3RydWN0IGlyZW1hcF9lbnRyeSAqKW1hcF92dGRfZG9tYWlu X3BhZ2UoZW50cnlfYmFzZSk7CisKKyAgICAgICAgICAgICAgICAgICAgR0VUX0lSRU1BUF9F TlRSWShpcmVtYXBfbWFkZHIsIGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXJlbWFwX2VudHJpZXMsIHApOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICBwID0gJmlyZW1hcF9lbnRyaWVzW2kgJSAoMSA8PCBJUkVNQVBfRU5UUllfT1JE RVIpXTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHAgPSAm aXJlbWFwX2VudHJpZXNbaSAlICgxIDw8IElSRU1BUF9FTlRSWV9PUkRFUildOwogCiAgICAg ICAgICAgICAgICAgaWYgKCAhcC0+bG8ucCApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOwpAQCAtMjU1LDkgKzI1NiwxMyBAQCBzdGF0aWMgdm9pZCBkdW1wX2lvbW11X2luZm8o dW5zaWduZWQgY2hhCiAgICAgICAgICAgICAgICAgICAgICh1MzIpcC0+bG8uZHN0LCAodTMy KXAtPmxvLnZlY3RvciwgKHUzMilwLT5sby5hdmFpbCwKICAgICAgICAgICAgICAgICAgICAg KHUzMilwLT5sby5kbG0sICh1MzIpcC0+bG8udG0sICh1MzIpcC0+bG8ucmgsCiAgICAgICAg ICAgICAgICAgICAgICh1MzIpcC0+bG8uZG0sICh1MzIpcC0+bG8uZnBkLCAodTMyKXAtPmxv LnApOworICAgICAgICAgICAgICAgIHByaW50X2NudCsrOwogICAgICAgICAgICAgfQogICAg ICAgICAgICAgaWYgKCBpcmVtYXBfZW50cmllcyApCiAgICAgICAgICAgICAgICAgdW5tYXBf dnRkX2RvbWFpbl9wYWdlKGlyZW1hcF9lbnRyaWVzKTsKKyAgICAgICAgICAgIGlmICggaW9t bXVfaXJfY3RybChpb21tdSktPmlyZW1hcF9udW0gIT0gcHJpbnRfY250ICkKKyAgICAgICAg ICAgICAgICBwcmludGsoIldhcm5pbmc6IFByaW50ICVkIElSVEUgKGFjdHVhbGx5IGhhdmUg JWQpIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50X2NudCwgaW9tbXVfaXJf Y3RybChpb21tdSktPmlyZW1hcF9udW0pOwogCiAgICAgICAgIH0KICAgICB9CkBAIC0yNzYs NyArMjgxLDcgQEAgc3RhdGljIHZvaWQgZHVtcF9pb21tdV9pbmZvKHVuc2lnbmVkIGNoYQog ICAgICAgICAgICAgaW9tbXUgPSBpb2FwaWNfdG9faW9tbXUobXBfaW9hcGljc1thcGljXS5t cGNfYXBpY2lkKTsKICAgICAgICAgICAgIGlyX2N0cmwgPSBpb21tdV9pcl9jdHJsKGlvbW11 KTsKICAgICAgICAgICAgIGlmICggIWlvbW11IHx8ICFpcl9jdHJsIHx8IGlyX2N0cmwtPmly ZW1hcF9tYWRkciA9PSAwIHx8Ci0gICAgICAgICAgICAgICAgaXJfY3RybC0+aXJlbWFwX2lu ZGV4ID09IC0xICkKKyAgICAgICAgICAgICAgICBpcl9jdHJsLT5pcmVtYXBfbnVtID09IDAg KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBwcmludGsoICJc blJlZGlyZWN0aW9uIHRhYmxlIG9mIElPQVBJQyAleDpcbiIsIGFwaWMpOwo= --------------010604070202070500090902 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.xensource.com http://lists.xensource.com/xen-devel --------------010604070202070500090902--