From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2992978AbXDDQDc (ORCPT ); Wed, 4 Apr 2007 12:03:32 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S2992980AbXDDQDc (ORCPT ); Wed, 4 Apr 2007 12:03:32 -0400 Received: from ug-out-1314.google.com ([66.249.92.171]:61717 "EHLO ug-out-1314.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2992978AbXDDQD3 (ORCPT ); Wed, 4 Apr 2007 12:03:29 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type; b=iw3aEPbTSsA3FOQ79h1v6nqzn5JXkeuOufRRUgq9zD92dzEX+oGxEJNKMY/lu4t4aN/lFsGUKUdZPeXUffjVfpCneBm7GowEGycwk1KfXAUyzjjWHFMKe4gmaiFgq3i+N6YjTrY8Q0m+ZdAqZlQS6RSBuyO3yRs6Yijc5aIAdco= Message-ID: <5d6222a80704040903n49442679p2a6841de69d894c2@mail.gmail.com> Date: Wed, 4 Apr 2007 13:03:25 -0300 From: "Glauber de Oliveira Costa" To: "Linux Kernel Mailing List" , "Rusty Russell" , virtualization@lists.osdl.org Subject: [PATCH] Unified lguest launcher MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_36898_30895009.1175702605525" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_36898_30895009.1175702605525 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline This is a new version of the unified lguest launcher that applies to the current tree. According to rusty's suggestion, I'm bothering less to be able to load 32 bit kernels on 64-bit machines: changing the launcher for such case would be the easy part! In the absence of further objections, I'll commit it. Signed-off-by: Glauber de Oliveira Costa -- Glauber de Oliveira Costa. "Free as in Freedom" "The less confident you are, the more serious you have to act." ------=_Part_36898_30895009.1175702605525 Content-Type: text/x-patch; name=lguest_launcher.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f03yyhra Content-Disposition: attachment; filename="lguest_launcher.patch" SW5kZXg6IGxpbnV4LTIuNi4yMC9Eb2N1bWVudGF0aW9uL2xndWVzdC9NYWtlZmlsZQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBsaW51eC0yLjYuMjAub3JpZy9Eb2N1bWVudGF0aW9uL2xndWVzdC9NYWtlZmlsZQor KysgbGludXgtMi42LjIwL0RvY3VtZW50YXRpb24vbGd1ZXN0L01ha2VmaWxlCkBAIC0xLDEyICsx LDEzIEBACiAjIFRoaXMgY3JlYXRlcyB0aGUgZGVtb25zdHJhdGlvbiB1dGlsaXR5ICJsZ3Vlc3Qi IHdoaWNoIHJ1bnMgYSBMaW51eCBndWVzdC4KIAotIyBXZSByZWx5IG9uIENPTkZJR19QQUdFX09G RlNFVCB0byBrbm93IHdoZXJlIHRvIHB1dCBsZ3Vlc3QgYmluYXJ5LgotIyBTb21lIHNoZWxscyAo ZGFzaCAtIHVidW51KSBjYW4ndCBoYW5kbGUgbnVtYmVycyB0aGF0IGJpZyBzbyB3ZSBjaGVhdC4K KyN3ZSBjb3VsZCB1bmFtZSAtaSwgYnV0IGl0IHNlZW1zIHRvIHJldHVybiB1bmtub3duIG9uIGEg YnVuY2ggbG9jYXRpb25zCitBUkNIOj0kKHNoZWxsIHVuYW1lIC1tIHwgc2VkIHMvaVszNDU2XTg2 L2kzODYvKQorCiBpbmNsdWRlIC4uLy4uLy5jb25maWcKLUxHVUVTVF9HVUVTVF9UT1AgOj0gKCQo Q09ORklHX1BBR0VfT0ZGU0VUKSAtIDB4MDgwMDAwMDApCitpbmNsdWRlICQoQVJDSCkvZGVmaW5l cwogCiBDRkxBR1M6PS1XYWxsIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3Rv dHlwZXMgLU8zIFwKLQktc3RhdGljIC1ETEdVRVNUX0dVRVNUX1RPUD0iJChMR1VFU1RfR1VFU1Rf VE9QKSIgLVdsLC1ULGxndWVzdC5sZHMKKwktc3RhdGljIC1ETEdVRVNUX0dVRVNUX1RPUD0iJChM R1VFU1RfR1VFU1RfVE9QKSIgLVdsLC1ULGxndWVzdC5sZHMgLUkkKEFSQ0gpCiBMRExJQlM6PS1s egogCiBhbGw6IGxndWVzdC5sZHMgbGd1ZXN0CkluZGV4OiBsaW51eC0yLjYuMjAvRG9jdW1lbnRh dGlvbi9sZ3Vlc3QvaTM4Ni9kZWZpbmVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC9kZXYvbnVsbAorKysgbGlu dXgtMi42LjIwL0RvY3VtZW50YXRpb24vbGd1ZXN0L2kzODYvZGVmaW5lcwpAQCAtMCwwICsxLDQg QEAKKyMgV2UgcmVseSBvbiBDT05GSUdfUEFHRV9PRkZTRVQgdG8ga25vdyB3aGVyZSB0byBwdXQg bGd1ZXN0IGJpbmFyeS4KKyMgU29tZSBzaGVsbHMgKGRhc2ggLSB1YnVudSkgY2FuJ3QgaGFuZGxl IG51bWJlcnMgdGhhdCBiaWcgc28gd2UgY2hlYXQuCitpbmNsdWRlIC4uLy4uLy5jb25maWcKK0xH VUVTVF9HVUVTVF9UT1AgOj0gKCQoQ09ORklHX1BBR0VfT0ZGU0VUKSAtIDB4MDgwMDAwMDApCklu ZGV4OiBsaW51eC0yLjYuMjAvRG9jdW1lbnRhdGlvbi9sZ3Vlc3QvaTM4Ni9sZ3Vlc3RfZGVmcy5o Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIC9kZXYvbnVsbAorKysgbGludXgtMi42LjIwL0RvY3VtZW50YXRpb24v bGd1ZXN0L2kzODYvbGd1ZXN0X2RlZnMuaApAQCAtMCwwICsxLDkgQEAKKyNpZm5kZWYgX0xHVUVT VF9ERUZTX0hfCisjZGVmaW5lIF9MR1VFU1RfREVGU19IXworCisvKiBMR1VFU1RfVE9QX0FERFJF U1MgY29tZXMgZnJvbSB0aGUgTWFrZWZpbGUgKi8KKyNkZWZpbmUgUkVTRVJWRV9UT1BfQUREUkVT UyBMR1VFU1RfR1VFU1RfVE9QIC0gMTAyNCoxMDI0CisKKyNpbmNsdWRlICIuLi8uLi8uLi9pbmNs dWRlL2xpbnV4L2xndWVzdF9sYXVuY2hlci5oIgorCisjZW5kaWYKSW5kZXg6IGxpbnV4LTIuNi4y MC9Eb2N1bWVudGF0aW9uL2xndWVzdC9sZ3Vlc3QuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaW51eC0yLjYu MjAub3JpZy9Eb2N1bWVudGF0aW9uL2xndWVzdC9sZ3Vlc3QuYworKysgbGludXgtMi42LjIwL0Rv Y3VtZW50YXRpb24vbGd1ZXN0L2xndWVzdC5jCkBAIC0zMyw3ICszMyw3IEBACiB0eXBlZGVmIHVp bnQzMl90IHUzMjsKIHR5cGVkZWYgdWludDE2X3QgdTE2OwogdHlwZWRlZiB1aW50OF90IHU4Owot I2luY2x1ZGUgIi4uLy4uL2luY2x1ZGUvbGludXgvbGd1ZXN0X2xhdW5jaGVyLmgiCisjaW5jbHVk ZSA8bGd1ZXN0X2RlZnMuaD4KIAogI2RlZmluZSBQQUdFX1BSRVNFTlQgMHg3IAkvKiBQcmVzZW50 LCBSVywgRXhlY3V0ZSAqLwogI2RlZmluZSBORVRfUEVFUk5VTSAxCkBAIC02NCw3ICs2NCw3IEBA IHN0cnVjdCBkZXZpY2UKIAogCS8qIFdhdGNoIERNQSB0byB0aGlzIGtleSBpZiBoYW5kbGVfaW5w dXQgbm9uLU5VTEwuICovCiAJdW5zaWduZWQgbG9uZyB3YXRjaF9rZXk7Ci0JdTMyICgqaGFuZGxl X291dHB1dCkoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKwl1bnNpZ25lZCBsb25n ICgqaGFuZGxlX291dHB1dCkoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwKIAkJCSAg ICAgdW5zaWduZWQgaW50IG51bSwgc3RydWN0IGRldmljZSAqbWUpOwogCiAJLyogRGV2aWNlLXNw ZWNpZmljIGRhdGEuICovCkBAIC05NCwyMCArOTQsMjkgQEAgc3RhdGljIHZvaWQgKm1hcF96ZXJv ZWRfcGFnZXModW5zaWduZWQgbAogfQogCiAvKiBSZXR1cm5zIHRoZSBlbnRyeSBwb2ludCAqLwot c3RhdGljIHVuc2lnbmVkIGxvbmcgbWFwX2VsZihpbnQgZWxmX2ZkLCBjb25zdCBFbGYzMl9FaGRy ICplaGRyLAorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtYXBfZWxmKGludCBlbGZfZmQsIGNvbnN0 IHZvaWQgKmhkciwgCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgKnBhZ2Vfb2Zmc2V0KQogewotCXZv aWQgKmFkZHI7CisjaWZuZGVmIF9feDg2XzY0X18KKwljb25zdCBFbGYzMl9FaGRyICplaGRyID0g aGRyOwogCUVsZjMyX1BoZHIgcGhkcltlaGRyLT5lX3BobnVtXTsKKyNlbHNlCisJY29uc3QgRWxm NjRfRWhkciAqZWhkciA9IGhkcjsKKwlFbGY2NF9QaGRyIHBoZHJbZWhkci0+ZV9waG51bV07Cisj ZW5kaWYKKwl2b2lkICphZGRyOwogCXVuc2lnbmVkIGludCBpOwogCiAJLyogU2FuaXR5IGNoZWNr cy4gKi8KIAlpZiAoZWhkci0+ZV90eXBlICE9IEVUX0VYRUMKLQkgICAgfHwgZWhkci0+ZV9tYWNo aW5lICE9IEVNXzM4NgotCSAgICB8fCBlaGRyLT5lX3BoZW50c2l6ZSAhPSBzaXplb2YoRWxmMzJf UGhkcikKLQkgICAgfHwgZWhkci0+ZV9waG51bSA8IDEgfHwgZWhkci0+ZV9waG51bSA+IDY1NTM2 VS9zaXplb2YoRWxmMzJfUGhkcikpCisJICAgIHx8ICgoZWhkci0+ZV9tYWNoaW5lICE9IEVNXzM4 NikgJiYKKwkJKGVoZHItPmVfbWFjaGluZSAhPSBFTV9YODZfNjQpKQorCSAgICB8fCBlaGRyLT5l X3BoZW50c2l6ZSAhPSBzaXplb2YocGhkclswXSkKKwkgICAgfHwgZWhkci0+ZV9waG51bSA8IDEg fHwgZWhkci0+ZV9waG51bSA+IDY1NTM2VS9zaXplb2YocGhkclswXSkpCiAJCWVycngoMSwgIk1h bGZvcm1lZCBlbGYgaGVhZGVyIik7CiAKKwogCWlmIChsc2VlayhlbGZfZmQsIGVoZHItPmVfcGhv ZmYsIFNFRUtfU0VUKSA8IDApCiAJCWVycigxLCAiU2Vla2luZyB0byBwcm9ncmFtIGhlYWRlcnMi KTsKIAlpZiAocmVhZChlbGZfZmQsIHBoZHIsIHNpemVvZihwaGRyKSkgIT0gc2l6ZW9mKHBoZHIp KQpAQCAtMTIwLDEzICsxMjksMTcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbWFwX2VsZihpbnQg ZWxmX2ZkLAogCQlpZiAocGhkcltpXS5wX3R5cGUgIT0gUFRfTE9BRCkKIAkJCWNvbnRpbnVlOwog Ci0JCXZlcmJvc2UoIlNlY3Rpb24gJWk6IHNpemUgJWkgYWRkciAlcFxuIiwKLQkJCWksIHBoZHJb aV0ucF9tZW1zeiwgKHZvaWQgKilwaGRyW2ldLnBfcGFkZHIpOworCQl2ZXJib3NlKCJTZWN0aW9u ICVpOiBzaXplICVsdSBhZGRyICVwXG4iLAorCQlpLCAodW5zaWduZWQgbG9uZylwaGRyW2ldLnBf bWVtc3osICh2b2lkICopcGhkcltpXS5wX3BhZGRyKTsKIAogCQkvKiBXZSBleHBlY3QgbGluZWFy IGFkZHJlc3Mgc3BhY2UuICovCiAJCWlmICghKnBhZ2Vfb2Zmc2V0KQogCQkJKnBhZ2Vfb2Zmc2V0 ID0gcGhkcltpXS5wX3ZhZGRyIC0gcGhkcltpXS5wX3BhZGRyOwotCQllbHNlIGlmICgqcGFnZV9v ZmZzZXQgIT0gcGhkcltpXS5wX3ZhZGRyIC0gcGhkcltpXS5wX3BhZGRyKQorCQllbHNlIGlmICgo KnBhZ2Vfb2Zmc2V0ICE9IHBoZHJbaV0ucF92YWRkciAtIHBoZHJbaV0ucF9wYWRkcikKKyNpZmRl ZiBfX3g4Nl82NF9fCisJCQkgJiYgKHBoZHJbaV0ucF92YWRkciAhPSBWU1lTQ0FMTF9TVEFSVCkK KyNlbmRpZgorCQkJKQogCQkJZXJyeCgxLCAiUGFnZSBvZmZzZXQgb2Ygc2VjdGlvbiAlaSBkaWZm ZXJlbnQiLCBpKTsKIAogCQkvKiBXZSBtYXAgZXZlcnl0aGluZyBwcml2YXRlLCB3cml0YWJsZS4g Ki8KQEAgLTIxMCwxNSArMjIzLDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvYWRfYnppbWFn ZShpbnQgZmQKIAllcnJ4KDEsICJDb3VsZCBub3QgZmluZCBrZXJuZWwgaW4gYnpJbWFnZSIpOwog fQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb2FkX2tlcm5lbChpbnQgZmQsIHVuc2lnbmVkIGxv bmcgKnBhZ2Vfb2Zmc2V0KQorLyogSW4geDg2XzY0IHN5c3RlbXMsIHBhZ2UgdGFibGUgaGllcmFy Y2h5IGRvZXMgbm90IHN0YXJ0IGF0IGEgY29tbW9uIGxvY2F0aW9uLAorICogYnV0IHJhdGhlciwg aXMgaW5kaWNhdGVkIGJ5IGEgc3ltYm9sIGNhbGxlZCBib290X2xldmVsNF9wZ3QuIER1ZSB0byB0 aGlzLCB3ZQorICogbmVlZCB0aGUgZWxmIGhlYWRlciB0byBzdXJ2aXZlIHRoaXMgZnVuY3Rpb24s IHRvIGxvb2t1cCBmb3IgdGhlIHBnZGlyICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb2FkX2tl cm5lbChpbnQgZmQsIHVuc2lnbmVkIGxvbmcgKnBhZ2Vfb2Zmc2V0LCB2b2lkICplaGRyKQogewot CUVsZjMyX0VoZHIgaGRyOworCUVsZjY0X0VoZHIgKmhkciA9IGVoZHI7CiAKLQlpZiAocmVhZChm ZCwgJmhkciwgc2l6ZW9mKGhkcikpICE9IHNpemVvZihoZHIpKQorCWlmIChyZWFkKGZkLCBoZHIs IHNpemVvZigqaGRyKSkgIT0gc2l6ZW9mKCpoZHIpKQogCQllcnIoMSwgIlJlYWRpbmcga2VybmVs Iik7CiAKLQlpZiAobWVtY21wKGhkci5lX2lkZW50LCBFTEZNQUcsIFNFTEZNQUcpID09IDApCi0J CXJldHVybiBtYXBfZWxmKGZkLCAmaGRyLCBwYWdlX29mZnNldCk7CisJaWYgKG1lbWNtcChoZHIt PmVfaWRlbnQsIEVMRk1BRywgU0VMRk1BRykgPT0gMCkKKwkJcmV0dXJuIG1hcF9lbGYoZmQsIGVo ZHIsIHBhZ2Vfb2Zmc2V0KTsKIAogCXJldHVybiBsb2FkX2J6aW1hZ2UoZmQsIHBhZ2Vfb2Zmc2V0 KTsKIH0KQEAgLTI1MCw2ICsyNjYsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgcGFn ZV9hbGlnbih1CiAJcmV0dXJuICgoYWRkciArIGdldHBhZ2VzaXplKCktMSkgJiB+KGdldHBhZ2Vz aXplKCktMSkpOwogfQogCisjaWZuZGVmIF9feDg2XzY0X18KIHN0YXRpYyB1bnNpZ25lZCBsb25n IHNldHVwX3BhZ2V0YWJsZXModW5zaWduZWQgbG9uZyBtZW0sCiAJCQkJICAgICAgdW5zaWduZWQg bG9uZyBpbml0cmRfc2l6ZSwKIAkJCQkgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KQpA QCAtMjg1LDYgKzMwMiw3NCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzZXR1cF9wYWdldGFibGVz KHVuCiAKIAlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpcGdkaXI7CiB9CisjZWxzZQorc3RhdGljIHVu c2lnbmVkIGxvbmcgZmluZF9wZ3Rfc3ltYm9sKGludCBlbGZfZmQsIAorCQkJCUVsZjY0X0VoZHIg KmVoZHIsIAorCQkJCXVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXQpCit7CisJdW5zaWduZWQgaW50 IGk7CisJRWxmNjRfU2hkciBzZWNbZWhkci0+ZV9zaG51bV07CisJRWxmNjRfU3ltICpzeW1zOwor CWNoYXIgKnN0cnRhYiA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBwZ2Rpcl9hZGRyID0gMDsKKwl1 bnNpZ25lZCBsb25nIG5zeW1zID0gMDsKKworCS8qIE5vdyBwcm9jZXNzIHNlY3Rpb25zIHNlYXJj aGluZyBmb3IgYm9vdCBwYWdlIHRhYmxlcworCSAqIFN0YXJ0IGJ5IGZpbmRpbmcgdGhlIHN5bXRh YiBzZWN0aW9uICovCisJaWYgKGxzZWVrKGVsZl9mZCwgZWhkci0+ZV9zaG9mZiwgU0VFS19TRVQp IDwgMCkKKwkJZXJyKDEsICJTZWVraW5nIHRvIHNlY3Rpb24gaGVhZGVycyIpOworCWlmIChyZWFk KGVsZl9mZCwgc2VjLCBzaXplb2Yoc2VjKSkgIT0gc2l6ZW9mKHNlYykpCisJCWVycigxLCAiUmVh ZGluZyBzZWN0aW9uIGhlYWRlcnMiKTsKKworCWZvciAoaSA9IDA7IGkgPCBlaGRyLT5lX3NobnVt OyBpKyspIHsKKwkJaWYgKHNlY1tpXS5zaF90eXBlID09IFNIVF9TWU1UQUIpIHsKKwkJCWludCBy ZXQgPSAwOworCQkJc3ltcyA9IG1hbGxvYyhzZWNbaV0uc2hfc2l6ZSk7CisJCQlpZiAoIXN5bXMp CisJCQkJZXJyKDEsIk5vdCBlbm91Z2ggbWVtb3J5IGZvciBzeW1ib2wgdGFibGUiKTsKKwkJCXJl dCA9IGxzZWVrKGVsZl9mZCwgc2VjW2ldLnNoX29mZnNldCwgU0VFS19TRVQpOworCQkJaWYgKHJl dCA8IDApCisJCQkJZXJyKDEsICJTZWVraW5nIHRvIHN5bWJvbCB0YWJsZSIpOworCQkJcmV0ID0g cmVhZChlbGZfZmQsIHN5bXMsIHNlY1tpXS5zaF9zaXplKTsKKwkJCWlmIChyZXQgIT0gc2VjW2ld LnNoX3NpemUpCisJCQkJZXJyKDEsICJSZWFkaW5nIHN5bWJvbCB0YWJsZSIpOworCQkJbnN5bXMg PSBzZWNbaV0uc2hfc2l6ZSAvIHNpemVvZihFbGY2NF9TeW0pOworCisKKwkJCS8qIHN5bXRhYiBs aW5rcyB0byBzdHJ0YWIuIFdlIHVzZSBpdCB0byBmaW5kIHN5bWJvbAorCQkJICogbmFtZXMgKi8K KwkJCXN0cnRhYiA9IG1hbGxvYyhzZWNbc2VjW2ldLnNoX2xpbmtdLnNoX3NpemUpOworCQkJaWYg KCFzdHJ0YWIpCisJCQkJZXJyKDEsIk5vdCBlbm91Z2ggbWVtb3J5IGZvciBzdHJpbmcgdGFibGUi KTsKKwkJCXJldCA9IGxzZWVrKGVsZl9mZCwgc2VjW3NlY1tpXS5zaF9saW5rXS5zaF9vZmZzZXQg LCBTRUVLX1NFVCk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQllcnIoMSwgIlNlZWtpbmcgdG8gc3Ry aW5nIHRhYmxlIik7CisJCQlyZXQgPSByZWFkKGVsZl9mZCwgc3RydGFiLCBzZWNbc2VjW2ldLnNo X2xpbmtdLnNoX3NpemUpOworCQkJaWYgKHJldCAhPSBzZWNbc2VjW2ldLnNoX2xpbmtdLnNoX3Np emUpCisJCQkJZXJyKDEsICJSZWFkaW5nIHN0cmluZyB0YWJsZSIpOworCQkJYnJlYWs7CisJCX0K Kwl9CisKKwkvKiBXZSBub3cgaGF2ZSBhIHBvaW50ZXIgdG8gdGhlIHN5bXRhYiwgc3RhcnQgc2Vh cmNoaW5nIGZvciB0aGUgc3ltYm9sICovCisJZm9yIChpID0gMDsgaSA8IG5zeW1zOyBpKyspIHsK KwkJaWYgKChzeW1zW2ldLnN0X3NobmR4ID09IFNITl9VTkRFRikgfHwgIXN5bXNbaV0uc3RfbmFt ZSkKKwkJCWNvbnRpbnVlOworCQlpZiAoIXN0cmNtcChCT09UX1BHVEFCTEUsCisJCQkJKGNoYXIg KikoKHU2NClzeW1zW2ldLnN0X25hbWUgKyBzdHJ0YWIpKSkgeworCQkJcGdkaXJfYWRkciA9IHN5 bXNbaV0uc3RfdmFsdWUgLSBwYWdlX29mZnNldDsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYg KCFwZ2Rpcl9hZGRyKSB7CisJCWVycm5vID0gRVNSQ0g7IAorCQllcnIoMSwiVW5hYmxlIHRvIGZp bmQgYm9vdCBwZ2RpciIpOworCX0KKworCXJldHVybiBwZ2Rpcl9hZGRyOworfQorI2VuZGlmCiAK IHN0YXRpYyB2b2lkIGNvbmNhdChjaGFyICpkc3QsIGNoYXIgKmFyZ3NbXSkKIHsKQEAgLTI5OSw5 ICszODQsMTAgQEAgc3RhdGljIHZvaWQgY29uY2F0KGNoYXIgKmRzdCwgY2hhciAqYXJncwogCWRz dFtsZW5dID0gJ1wwJzsKIH0KIAotc3RhdGljIGludCB0ZWxsX2tlcm5lbCh1MzIgcGdkaXIsIHUz MiBzdGFydCwgdTMyIHBhZ2Vfb2Zmc2V0KQorc3RhdGljIGludCB0ZWxsX2tlcm5lbCh1bnNpZ25l ZCBsb25nIHBnZGlyLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCAKKwkJCQkJCXVuc2lnbmVkIGxvbmcg cGFnZV9vZmZzZXQpCiB7Ci0JdTMyIGFyZ3NbXSA9IHsgTEhSRVFfSU5JVElBTElaRSwKKwl1bnNp Z25lZCBsb25nIGFyZ3NbXSA9IHsgTEhSRVFfSU5JVElBTElaRSwKIAkJICAgICAgIExHVUVTVF9H VUVTVF9UT1AvZ2V0cGFnZXNpemUoKSwgLyogSnVzdCBiZWxvdyB1cyAqLwogCQkgICAgICAgcGdk aXIsIHN0YXJ0LCBwYWdlX29mZnNldCB9OwogCWludCBmZDsKQEAgLTM3OSw3ICs0NjUsOCBAQCBz dGF0aWMgdm9pZCAqX2NoZWNrX3BvaW50ZXIodW5zaWduZWQgbG9uCiAjZGVmaW5lIGNoZWNrX3Bv aW50ZXIoYWRkcixzaXplKSBfY2hlY2tfcG9pbnRlcihhZGRyLCBzaXplLCBfX0xJTkVfXykKIAog LyogUmV0dXJucyBwb2ludGVyIHRvIGRtYS0+dXNlZF9sZW4gKi8KLXN0YXRpYyB1MzIgKmRtYTJp b3YodW5zaWduZWQgbG9uZyBkbWEsIHN0cnVjdCBpb3ZlYyBpb3ZbXSwgdW5zaWduZWQgKm51bSkK K3N0YXRpYyB1bnNpZ25lZCBsb25nICpkbWEyaW92KHVuc2lnbmVkIGxvbmcgZG1hLCBzdHJ1Y3Qg aW92ZWMgaW92W10sIAorCQkJCQkJCQl1bnNpZ25lZCAqbnVtKQogewogCXVuc2lnbmVkIGludCBp OwogCXN0cnVjdCBsZ3Vlc3RfZG1hICp1ZG1hOwpAQCAtMzk2LDEyICs0ODMsMTIgQEAgc3RhdGlj IHUzMiAqZG1hMmlvdih1bnNpZ25lZCBsb25nIGRtYSwgcwogCXJldHVybiAmdWRtYS0+dXNlZF9s ZW47CiB9CiAKLXN0YXRpYyB1MzIgKmdldF9kbWFfYnVmZmVyKGludCBmZCwgdm9pZCAqa2V5LAor c3RhdGljIHVuc2lnbmVkIGxvbmcgKmdldF9kbWFfYnVmZmVyKGludCBmZCwgdm9pZCAqa2V5LAog CQkJICAgc3RydWN0IGlvdmVjIGlvdltdLCB1bnNpZ25lZCBpbnQgKm51bSwgdTMyICppcnEpCiB7 Ci0JdTMyIGJ1ZltdID0geyBMSFJFUV9HRVRETUEsICh1MzIpa2V5IH07CisJdW5zaWduZWQgbG9u ZyBidWZbXSA9IHsgTEhSRVFfR0VURE1BLCAodW5zaWduZWQgbG9uZylrZXkgfTsKIAl1bnNpZ25l ZCBsb25nIHVkbWE7Ci0JdTMyICpyZXM7CisJdW5zaWduZWQgbG9uZyAqcmVzOwogCiAJdWRtYSA9 IHdyaXRlKGZkLCBidWYsIHNpemVvZihidWYpKTsKIAlpZiAodWRtYSA9PSAodW5zaWduZWQgbG9u ZyktMSkKQEAgLTQxNSw3ICs1MDIsNyBAQCBzdGF0aWMgdTMyICpnZXRfZG1hX2J1ZmZlcihpbnQg ZmQsIHZvaWQgCiAKIHN0YXRpYyB2b2lkIHRyaWdnZXJfaXJxKGludCBmZCwgdTMyIGlycSkKIHsK LQl1MzIgYnVmW10gPSB7IExIUkVRX0lSUSwgaXJxIH07CisJdW5zaWduZWQgbG9uZyBidWZbXSA9 IHsgTEhSRVFfSVJRLCBpcnEgfTsKIAlpZiAod3JpdGUoZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpICE9 IDApCiAJCWVycigxLCAiVHJpZ2dlcmluZyBpcnEgJWkiLCBpcnEpOwogfQpAQCAtNDQzLDcgKzUz MCw4IEBAIHN0cnVjdCBjb25zb2xlX2Fib3J0CiAvKiBXZSBETUEgaW5wdXQgdG8gYnVmZmVyIGJv dW5kIGF0IHN0YXJ0IG9mIGNvbnNvbGUgcGFnZS4gKi8KIHN0YXRpYyBib29sIGhhbmRsZV9jb25z b2xlX2lucHV0KGludCBmZCwgc3RydWN0IGRldmljZSAqZGV2KQogewotCXUzMiBpcnEgPSAwLCAq bGVucDsKKwl1MzIgaXJxID0gMDsgCisJdW5zaWduZWQgbG9uZyAqbGVucDsKIAlpbnQgbGVuOwog CXVuc2lnbmVkIGludCBudW07CiAJc3RydWN0IGlvdmVjIGlvdltMR1VFU1RfTUFYX0RNQV9TRUNU SU9OU107CkBAIC00ODcsMTQgKzU3NSwxNCBAQCBzdGF0aWMgYm9vbCBoYW5kbGVfY29uc29sZV9p bnB1dChpbnQgZmQsCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB1MzIgaGFuZGxlX2NvbnNv bGVfb3V0cHV0KGludCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCi0JCQkJIHVuc2lnbmVk IG51bSwgc3RydWN0IGRldmljZSpkZXYpCitzdGF0aWMgdW5zaWduZWQgbG9uZyAgaGFuZGxlX2Nv bnNvbGVfb3V0cHV0KGludCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCisJCQkJCSB1bnNp Z25lZCBudW0sIHN0cnVjdCBkZXZpY2UqZGV2KQogewogCXJldHVybiB3cml0ZXYoU1RET1VUX0ZJ TEVOTywgaW92LCBudW0pOwogfQogCi1zdGF0aWMgdTMyIGhhbmRsZV90dW5fb3V0cHV0KGludCBm ZCwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCi0JCQkgICAgIHVuc2lnbmVkIG51bSwgc3RydWN0 IGRldmljZSAqZGV2KQorc3RhdGljIHVuc2lnbmVkIGxvbmcgIGhhbmRsZV90dW5fb3V0cHV0KGlu dCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCisJCQkJCSAgICAgdW5zaWduZWQgbnVtLCBz dHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJLyogTm93IHdlJ3ZlIHNlZW4gb3V0cHV0LCB3ZSBzaG91 bGQgd2FybiBpZiB3ZSBjYW4ndCBnZXQgYnVmZmVycy4gKi8KIAkqKGJvb2wgKilkZXYtPnByaXYg PSB0cnVlOwpAQCAtNTA4LDcgKzU5Niw4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHBlZXJfb2Zm c2V0KHVuc2lnbmUKIAogc3RhdGljIGJvb2wgaGFuZGxlX3R1bl9pbnB1dChpbnQgZmQsIHN0cnVj dCBkZXZpY2UgKmRldikKIHsKLQl1MzIgaXJxID0gMCwgKmxlbnA7CisJdTMyIGlycSA9IDA7IAor CXVuc2lnbmVkIGxvbmcgKmxlbnA7CiAJaW50IGxlbjsKIAl1bnNpZ25lZCBudW07CiAJc3RydWN0 IGlvdmVjIGlvdltMR1VFU1RfTUFYX0RNQV9TRUNUSU9OU107CkBAIC01MzQsMTEgKzYyMywxMiBA QCBzdGF0aWMgYm9vbCBoYW5kbGVfdHVuX2lucHV0KGludCBmZCwgc3RyCiAJcmV0dXJuIHRydWU7 CiB9CiAKLXN0YXRpYyB1MzIgaGFuZGxlX2Jsb2NrX291dHB1dChpbnQgZmQsIGNvbnN0IHN0cnVj dCBpb3ZlYyAqaW92LAotCQkJICAgICAgIHVuc2lnbmVkIG51bSwgc3RydWN0IGRldmljZSAqZGV2 KQorc3RhdGljIHVuc2lnbmVkIGxvbmcgaGFuZGxlX2Jsb2NrX291dHB1dChpbnQgZmQsIGNvbnN0 IHN0cnVjdCBpb3ZlYyAqaW92LAorCQkJCSAgICAgICB1bnNpZ25lZCBudW0sIHN0cnVjdCBkZXZp Y2UgKmRldikKIHsKIAlzdHJ1Y3QgbGd1ZXN0X2Jsb2NrX3BhZ2UgKnAgPSBkZXYtPm1lbTsKLQl1 MzIgaXJxLCAqbGVucDsKKwl1MzIgaXJxOyAKKwl1bnNpZ25lZCBsb25nICpsZW5wOwogCXVuc2ln bmVkIGludCBsZW4sIHJlcGx5X251bTsKIAlzdHJ1Y3QgaW92ZWMgcmVwbHlbTEdVRVNUX01BWF9E TUFfU0VDVElPTlNdOwogCW9mZjY0X3QgZGV2aWNlX2xlbiwgb2ZmID0gKG9mZjY0X3QpcC0+c2Vj dG9yICogNTEyOwpAQCAtNTQ2LDExICs2MzYsMTQgQEAgc3RhdGljIHUzMiBoYW5kbGVfYmxvY2tf b3V0cHV0KGludCBmZCwgYwogCWRldmljZV9sZW4gPSAqKG9mZjY0X3QgKilkZXYtPnByaXY7CiAK IAlpZiAob2ZmID49IGRldmljZV9sZW4pCi0JCWVycigxLCAiQmFkIG9mZnNldCAlbGx1IHZzICVs bHUiLCBvZmYsIGRldmljZV9sZW4pOworCQllcnIoMSwgIkJhZCBvZmZzZXQgJWxsdSB2cyAlbGx1 IiwgCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylvZmYsIAorCQkJCSh1bnNpZ25lZCBsb25nIGxv bmcpIGRldmljZV9sZW4pOwogCWlmIChsc2VlazY0KGRldi0+ZmQsIG9mZiwgU0VFS19TRVQpICE9 IG9mZikKIAkJZXJyKDEsICJCYWQgc2VlayB0byBzZWN0b3IgJWkiLCBwLT5zZWN0b3IpOwogCi0J dmVyYm9zZSgiQmxvY2s6ICVzIGF0IG9mZnNldCAlbGx1XG4iLCBwLT50eXBlID8gIldSSVRFIiA6 ICJSRUFEIiwgb2ZmKTsKKwl2ZXJib3NlKCJCbG9jazogJXMgYXQgb2Zmc2V0ICVsbHVcbiIsIHAt PnR5cGUgPyAiV1JJVEUiIDogIlJFQUQiLCAKKwkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpb2Zm KTsKIAogCWxlbnAgPSBnZXRfZG1hX2J1ZmZlcihmZCwgZGV2LT5tZW0sIHJlcGx5LCAmcmVwbHlf bnVtLCAmaXJxKTsKIAlpZiAoIWxlbnApCkBAIC01NjAsNyArNjUzLDggQEAgc3RhdGljIHUzMiBo YW5kbGVfYmxvY2tfb3V0cHV0KGludCBmZCwgYwogCQlsZW4gPSB3cml0ZXYoZGV2LT5mZCwgaW92 LCBudW0pOwogCQlpZiAob2ZmICsgbGVuID4gZGV2aWNlX2xlbikgewogCQkJZnRydW5jYXRlKGRl di0+ZmQsIGRldmljZV9sZW4pOwotCQkJZXJyeCgxLCAiV3JpdGUgcGFzdCBlbmQgJWxsdSsldSIs IG9mZiwgbGVuKTsKKwkJCWVycngoMSwgIldyaXRlIHBhc3QgZW5kICVsbHUrJXUiLCAKKwkJCQkJ KHVuc2lnbmVkIGxvbmcgbG9uZylvZmYsIGxlbik7CiAJCX0KIAkJKmxlbnAgPSAwOwogCX0gZWxz ZSB7CkBAIC01NzcsNyArNjcxLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX291dHB1dChpbnQgZmQs IHVuc2lnbgogCQkJICBzdHJ1Y3QgZGV2aWNlX2xpc3QgKmRldmljZXMpCiB7CiAJc3RydWN0IGRl dmljZSAqaTsKLQl1MzIgKmxlbnA7CisJdW5zaWduZWQgbG9uZyAqbGVucDsKIAlzdHJ1Y3QgaW92 ZWMgaW92W0xHVUVTVF9NQVhfRE1BX1NFQ1RJT05TXTsKIAl1bnNpZ25lZCBudW0gPSAwOwogCkBA IC02MzksNyArNzMzLDcgQEAgc3RhdGljIHN0cnVjdCBkZXZpY2UgKm5ld19kZXZpY2Uoc3RydWN0 IAogCQkJCSBpbnQgZmQsCiAJCQkJIGJvb2wgKCpoYW5kbGVfaW5wdXQpKGludCwgc3RydWN0IGRl dmljZSAqKSwKIAkJCQkgdW5zaWduZWQgbG9uZyB3YXRjaF9vZmYsCi0JCQkJIHUzMiAoKmhhbmRs ZV9vdXRwdXQpKGludCwKKwkJCQkgdW5zaWduZWQgbG9uZyAoKmhhbmRsZV9vdXRwdXQpKGludCwK IAkJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqLAogCQkJCQkJICAgICAgdW5zaWduZWQs CiAJCQkJCQkgICAgICBzdHJ1Y3QgZGV2aWNlICopKQpAQCAtOTE2LDkgKzEwMTAsMTIgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKIAl1bnNpZ25lZCBsb25nIG1lbSwgcGdk aXIsIHN0YXJ0LCBwYWdlX29mZnNldDsKIAlpbnQgYywgbGd1ZXN0X2ZkLCB3YWtlcl9mZDsKKwlp bnQgZWxmX2ZkOwogCXN0cnVjdCBkZXZpY2VfbGlzdCBkZXZpY2VfbGlzdDsKIAlzdHJ1Y3QgbGd1 ZXN0X2Jvb3RfaW5mbyAqYm9vdCA9ICh2b2lkICopMDsKIAljb25zdCBjaGFyICppbml0cmRfbmFt ZSA9IE5VTEw7CisJLyogNjQtYml0IGhlYWRlciBpcyBiaWdnZXIsIHNvIHRoaXMgaXMgYSB3b3Jz dCBjYXNlIGZvciBib3RoICovCisJRWxmNjRfRWhkciBlaGRyOwogCiAJZGV2aWNlX2xpc3QubWF4 X2luZmQgPSAtMTsKIAlkZXZpY2VfbGlzdC5kZXYgPSBOVUxMOwpAQCAtOTU4LDggKzEwNTUsOCBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCW1hcF96ZXJvZWRfcGFnZXMoMCwg bWVtIC8gZ2V0cGFnZXNpemUoKSk7CiAKIAkvKiBOb3cgd2UgbG9hZCB0aGUga2VybmVsICovCi0J c3RhcnQgPSBsb2FkX2tlcm5lbChvcGVuX29yX2RpZShhcmd2W29wdGluZCsxXSwgT19SRE9OTFkp LAotCQkJICAgICZwYWdlX29mZnNldCk7CisJZWxmX2ZkID0gb3Blbl9vcl9kaWUoYXJndltvcHRp bmQrMV0sIE9fUkRPTkxZKTsKKwlzdGFydCA9IGxvYWRfa2VybmVsKGVsZl9mZCwgJnBhZ2Vfb2Zm c2V0LCAmZWhkcik7CiAKIAkvKiBXcml0ZSB0aGUgZGV2aWNlIGRlc2NyaXB0b3JzIGludG8gbWVt b3J5LiAqLwogCW1hcF9kZXZpY2VfZGVzY3JpcHRvcnMoJmRldmljZV9saXN0LCBtZW0pOwpAQCAt OTY5LDcgKzEwNjYsMTEgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYm9v dC0+aW5pdHJkX3NpemUgPSBsb2FkX2luaXRyZChpbml0cmRfbmFtZSwgbWVtKTsKIAogCS8qIFNl dCB1cCB0aGUgaW5pdGlhbCBsaW5hciBwYWdldGFibGVzLiAqLworI2lmbmRlZiBfX3g4Nl82NF9f CiAJcGdkaXIgPSBzZXR1cF9wYWdldGFibGVzKG1lbSwgYm9vdC0+aW5pdHJkX3NpemUsIHBhZ2Vf b2Zmc2V0KTsKKyNlbHNlCisJcGdkaXIgPSBmaW5kX3BndF9zeW1ib2woZWxmX2ZkLCAmZWhkciwg cGFnZV9vZmZzZXQpOworI2VuZGlmCiAKIAkvKiBHaXZlIHRoZSBndWVzdCB0aGUgYm9vdCBpbmZv cm1hdGlvbiBpdCBuZWVkcy4gKi8KIAljb25jYXQoYm9vdC0+Y21kbGluZSwgYXJnditvcHRpbmQr Mik7CkluZGV4OiBsaW51eC0yLjYuMjAvRG9jdW1lbnRhdGlvbi9sZ3Vlc3QveDg2XzY0L2RlZmlu ZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gL2Rldi9udWxsCisrKyBsaW51eC0yLjYuMjAvRG9jdW1lbnRhdGlv bi9sZ3Vlc3QveDg2XzY0L2RlZmluZXMKQEAgLTAsMCArMSw0IEBACisjIEZvciBub3cgb24geDg2 XzY0IHdlJ2xsIGhhcmQgY29kZSB0aGUgbG9jYXRpb24gb2YgdGhlIGxndWVzdCBiaW5hcnkgbG9h ZGVyLgorIyBCdXQgd2hlbiB3ZSBjYW4gZ2V0IGEgcmVsb2NhdGFibGUga2VybmVsLCB3ZSdsbCBo YXZlIHRvIHdvcmsgdG8gbWFrZSB0aGlzCisjIGR5bmFtaWMuCitMR1VFU1RfR1VFU1RfVE9QIDo9 IDB4N2YwMDAwMDAKSW5kZXg6IGxpbnV4LTIuNi4yMC9Eb2N1bWVudGF0aW9uL2xndWVzdC94ODZf NjQvbGd1ZXN0X2RlZnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAvZGV2L251bGwKKysrIGxpbnV4LTIuNi4y MC9Eb2N1bWVudGF0aW9uL2xndWVzdC94ODZfNjQvbGd1ZXN0X2RlZnMuaApAQCAtMCwwICsxLDE1 IEBACisjaWZuZGVmIF9MR1VFU1RfREVGU19IXworI2RlZmluZSBfTEdVRVNUX0RFRlNfSF8KKwor I2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgorCisvKiBMR1VFU1RfVE9QX0FERFJFU1MgY29tZXMg ZnJvbSB0aGUgTWFrZWZpbGUgKi8KK3R5cGVkZWYgdWludDY0X3QgdTY0OworI2luY2x1ZGUgIi4u Ly4uLy4uL2luY2x1ZGUvYXNtL2xndWVzdF91c2VyLmgiCisKKyNkZWZpbmUgUkVTRVJWRV9UT1Bf QUREUkVTUyBMR1VFU1RfR1VFU1RfVE9QCisKKworI2RlZmluZSBCT09UX1BHVEFCTEUgImJvb3Rf bGV2ZWw0X3BndCIKKworI2VuZGlmCg== ------=_Part_36898_30895009.1175702605525--