Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758099AbXEUUgg (ORCPT ); Mon, 21 May 2007 16:36:36 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755718AbXEUUgV (ORCPT ); Mon, 21 May 2007 16:36:21 -0400 Received: from nz-out-0506.google.com ([64.233.162.238]:39173 "EHLO nz-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756660AbXEUUgT (ORCPT ); Mon, 21 May 2007 16:36:19 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:mime-version:content-type; b=MN/dOf6wxQjwAvNLNG0ScQAKDipyiWJ4WnV2wcG9D5Zd3W/Mln5I+y5SpMsIItr4Ea8T2WZ+KoOBQlYNXuctyAVMPF9N7+jlTUm9wrf/Ab5iyZnSFaTkYZngD+M5nqMsxjyAyu60bz8Ykx7bCUDeXrhKs/SJlxK/IP2ZZuT5RTc= Message-ID: <86802c440705211336h76a3f41ag4847860ea6837485@mail.gmail.com> Date: Mon, 21 May 2007 13:36:16 -0700 From: "Yinghai Lu" To: "Bjorn Helgaas" Subject: Re: [PATCH]serial: make early_uart to use early_param instead of console_initcall Cc: "Andrew Morton" , "Eric W. Biederman" , "Gerd Hoffmann" , "Andi Kleen" , "Linus Torvalds" , "linux kernel mailing list" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_101990_21786541.1179779776706" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 24618 Lines: 352 ------=_Part_101990_21786541.1179779776706 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 5/21/07, Bjorn Helgaas wrote: > > with console=uart, you need to call early_serial_console_init > > explictly in your arch setup_arch to get early console. > > Can't we just do: > > early_param("console", setup_early_console); > please check following patch. it will take console=early8250,io,0x3f8,9600n8 You may need to remove early_serial_console_init in your ia64 setup_arch, and some dummy function for set_fixmap_nocache, and __fix_to_virt in your asm-ia64/fixmap.h YH [PATCH]serial: make early_uart to use early_param instead of console_initcall Make early_uart to use early_param, so uart console can be used earlier. Make it to be bootconsole with CON_BOOT flag, so can use console handover feature. and it will switch to corresponding normal serial console automatically. new command line will be earlycon=early8250,io,0x3f8,9600n8 earlycon=early8250,mmio,0xff5e0000,115200n8 or console=early8250,io,0x3f8,9600n8 console=early8250,mmio,0xff5e0000,115200n8 it will print in very early stage Early serial console at I/O port 0x3f8 (options '9600n8') later for console it will print console handover: boot [uart0] -> real [ttyS0] Signed-off-by: ------=_Part_101990_21786541.1179779776706 Content-Type: text/x-patch; name=earlycon_05212007.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f1zea7gz Content-Disposition: attachment; filename="earlycon_05212007.diff" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKaW5kZXggMDkyMjBhMS4uMWY4OGNkZiAxMDA2 NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKKysrIGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKQEAgLTQ0NCw4ICs0NDQsMTYgQEAgYW5kIGlz IGJldHdlZW4gMjU2IGFuZCA0MDk2IGNoYXJhY3RlcnMuIEl0IGlzIGRlZmluZWQgaW4gdGhlIGZp bGUKIAkJCURvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRjb25zb2xlLnR4dCBmb3IgYW4KIAkJ CWFsdGVybmF0aXZlLgogCi0JCXVhcnQsaW8sPGFkZHI+WyxvcHRpb25zXQotCQl1YXJ0LG1taW8s PGFkZHI+WyxvcHRpb25zXQorCQllYXJseTgyNTAsaW8sPGFkZHI+WyxvcHRpb25zXQorCQllYXJs eTgyNTAsbW1pbyw8YWRkcj5bLG9wdGlvbnNdCisJCQlTdGFydCBhbiBlYXJseSwgcG9sbGVkLW1v ZGUgY29uc29sZSBvbiB0aGUgODI1MC8xNjU1MAorCQkJVUFSVCBhdCB0aGUgc3BlY2lmaWVkIEkv TyBwb3J0IG9yIE1NSU8gYWRkcmVzcywKKwkJCXN3aXRjaGluZyB0byB0aGUgbWF0Y2hpbmcgdHR5 UyBkZXZpY2UgbGF0ZXIuICBUaGUKKwkJCW9wdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGZvciB0dHlT LCBhYm92ZS4KKworCWVhcmx5Y29uPQlbS05MXSBPdXRwdXQgZWFybHkgY29uc29sZSBkZXZpY2Ug YW5kIG9wdGlvbnMuCisJCWVhcmx5ODI1MCxpbyw8YWRkcj5bLG9wdGlvbnNdCisJCWVhcmx5ODI1 MCxtbWlvLDxhZGRyPlssb3B0aW9uc10KIAkJCVN0YXJ0IGFuIGVhcmx5LCBwb2xsZWQtbW9kZSBj b25zb2xlIG9uIHRoZSA4MjUwLzE2NTUwCiAJCQlVQVJUIGF0IHRoZSBzcGVjaWZpZWQgSS9PIHBv cnQgb3IgTU1JTyBhZGRyZXNzLAogCQkJc3dpdGNoaW5nIHRvIHRoZSBtYXRjaGluZyB0dHlTIGRl dmljZSBsYXRlci4gIFRoZQpkaWZmIC0tZ2l0IGEvYXJjaC9pMzg2L2tlcm5lbC9oZWFkLlMgYi9h cmNoL2kzODYva2VybmVsL2hlYWQuUwppbmRleCBmNzRkZmM0Li4yZDM3ODUwIDEwMDY0NAotLS0g YS9hcmNoL2kzODYva2VybmVsL2hlYWQuUworKysgYi9hcmNoL2kzODYva2VybmVsL2hlYWQuUwpA QCAtMTY4LDYgKzE2OCwxMiBAQCBwYWdlX3BkZV9vZmZzZXQgPSAoX19QQUdFX09GRlNFVCA+PiAy MCk7CiAuc2VjdGlvbiAuaW5pdC50ZXh0LCJheCIsQHByb2diaXRzCiAjZW5kaWYKIAorCS8qIERv IGFuIGVhcmx5IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmaXhtYXAgYXJlYSAqLworCW1vdmwgJChz d2FwcGVyX3BnX2RpciAtIF9fUEFHRV9PRkZTRVQpLCAlZWR4CisJbW92bCAkKHN3YXBwZXJfcGdf cG1kIC0gX19QQUdFX09GRlNFVCksICVlYXgKKwlhZGRsICQweDAwNywgJWVheAkJCS8qIDB4MDA3 ID0gUFJFU0VOVCtSVytVU0VSICovCisJbW92bCAlZWF4LCA0MDkyKCVlZHgpCisKICNpZmRlZiBD T05GSUdfU01QCiBFTlRSWShzdGFydHVwXzMyX3NtcCkKIAljbGQKQEAgLTUwNyw2ICs1MTMsOCBA QCBFTlRSWShfc3RleHQpCiAuc2VjdGlvbiAiLmJzcy5wYWdlX2FsaWduZWQiLCJ3IgogRU5UUlko c3dhcHBlcl9wZ19kaXIpCiAJLmZpbGwgMTAyNCw0LDAKK0VOVFJZKHN3YXBwZXJfcGdfcG1kKQor CS5maWxsIDEwMjQsNCwwCQogRU5UUlkoZW1wdHlfemVyb19wYWdlKQogCS5maWxsIDQwOTYsMSww CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2XzY0L2tlcm5lbC9lYXJseV9wcmludGsuYyBiL2FyY2gv eDg2XzY0L2tlcm5lbC9lYXJseV9wcmludGsuYwppbmRleCA1NmVhYTI1Li4yOTZkMmIwIDEwMDY0 NAotLS0gYS9hcmNoL3g4Nl82NC9rZXJuZWwvZWFybHlfcHJpbnRrLmMKKysrIGIvYXJjaC94ODZf NjQva2VybmVsL2Vhcmx5X3ByaW50ay5jCkBAIC05MSw5ICs5MSw5IEBAIHN0YXRpYyBpbnQgZWFy bHlfc2VyaWFsX3B1dGModW5zaWduZWQgY2hhciBjaCkKIHN0YXRpYyB2b2lkIGVhcmx5X3Nlcmlh bF93cml0ZShzdHJ1Y3QgY29uc29sZSAqY29uLCBjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBuKQog ewogCXdoaWxlICgqcyAmJiBuLS0gPiAwKSB7Ci0JCWVhcmx5X3NlcmlhbF9wdXRjKCpzKTsKIAkJ aWYgKCpzID09ICdcbicpCiAJCQllYXJseV9zZXJpYWxfcHV0YygnXHInKTsKKwkJZWFybHlfc2Vy aWFsX3B1dGMoKnMpOwogCQlzKys7CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODZfNjQva2Vy bmVsL2hlYWQuUyBiL2FyY2gveDg2XzY0L2tlcm5lbC9oZWFkLlMKaW5kZXggMWZhYjQ4Ny4uNzBh MTYxYSAxMDA2NDQKLS0tIGEvYXJjaC94ODZfNjQva2VybmVsL2hlYWQuUworKysgYi9hcmNoL3g4 Nl82NC9rZXJuZWwvaGVhZC5TCkBAIC03Myw3ICs3MywxMSBAQCBzdGFydHVwXzY0OgogCWFkZHEJ JXJicCwgaW5pdF9sZXZlbDRfcGd0ICsgKDUxMSo4KSglcmlwKQogCiAJYWRkcQklcmJwLCBsZXZl bDNfaWRlbnRfcGd0ICsgMCglcmlwKQorCQogCWFkZHEJJXJicCwgbGV2ZWwzX2tlcm5lbF9wZ3Qg KyAoNTEwKjgpKCVyaXApCisJYWRkcQklcmJwLCBsZXZlbDNfa2VybmVsX3BndCArICg1MTEqOCko JXJpcCkKKworCWFkZHEJJXJicCwgbGV2ZWwyX2ZpeG1hcF9wZ3QgKyAoNTA2KjgpKCVyaXApCiAK IAkvKiBBZGQgYW4gSWRlbnRpdHkgbWFwcGluZyBpZiBJIGFtIGFib3ZlIDFHICovCiAJbGVhcQlf dGV4dCglcmlwKSwgJXJkaQpAQCAtMzE0LDcgKzMxOCwxNiBAQCBORVhUX1BBR0UobGV2ZWwzX2tl cm5lbF9wZ3QpCiAJLmZpbGwJNTEwLDgsMAogCS8qICgyXjQ4LSgyKjEwMjQqMTAyNCoxMDI0KS0o KDJeMzkpKjUxMSkpLygyXjMwKSA9IDUxMCAqLwogCS5xdWFkCWxldmVsMl9rZXJuZWxfcGd0IC0g X19TVEFSVF9LRVJORUxfbWFwICsgX0tFUk5QR19UQUJMRQotCS5maWxsCTEsOCwwCisgCS5xdWFk CWxldmVsMl9maXhtYXBfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX1BBR0VfVEFCTEUKKwor TkVYVF9QQUdFKGxldmVsMl9maXhtYXBfcGd0KQorCS5maWxsCTUwNiw4LDAKKwkucXVhZAlsZXZl bDFfZml4bWFwX3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9QQUdFX1RBQkxFCisJLyogOE1C IHJlc2VydmVkIGZvciB2c3lzY2FsbHMgKyBhIDJNQiBob2xlID0gNCArIDEgZW50cmllcyAqLwor CS5maWxsCTUsOCwwCisKK05FWFRfUEFHRShsZXZlbDFfZml4bWFwX3BndCkKKwkuZmlsbAk1MTIs OCwwCiAKIE5FWFRfUEFHRShsZXZlbDJfaWRlbnRfcGd0KQogCS8qIFNpbmNlIEkgZWFzaWx5IGNh biwgbWFwIHRoZSBmaXJzdCAxRy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9LY29uZmlnIGIv ZHJpdmVycy9zY3NpL0tjb25maWcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsLzgyNTAuYyBi L2RyaXZlcnMvc2VyaWFsLzgyNTAuYwppbmRleCBjODRkYWIwLi41YTkxYWM1IDEwMDY0NAotLS0g YS9kcml2ZXJzL3NlcmlhbC84MjUwLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvODI1MC5jCkBAIC0y MzY3LDYgKzIzNjcsOSBAQCBzdGF0aWMgc3RydWN0IHVhcnRfb3BzIHNlcmlhbDgyNTBfcG9wcyA9 IHsKIAkucmVxdWVzdF9wb3J0CT0gc2VyaWFsODI1MF9yZXF1ZXN0X3BvcnQsCiAJLmNvbmZpZ19w b3J0CT0gc2VyaWFsODI1MF9jb25maWdfcG9ydCwKIAkudmVyaWZ5X3BvcnQJPSBzZXJpYWw4MjUw X3ZlcmlmeV9wb3J0LAorI2lmZGVmIENPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFCisJLmZpbmRf cG9ydF9mb3JfZWFybHljb24gPSBzZXJpYWw4MjUwX2ZpbmRfcG9ydF9mb3JfZWFybHljb24sCisj ZW5kaWYKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgdWFydF84MjUwX3BvcnQgc2VyaWFsODI1MF9wb3J0 c1tVQVJUX05SXTsKQEAgLTI1MzMsNyArMjUzNiw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHNlcmlh bDgyNTBfY29uc29sZV9pbml0KHZvaWQpCiB9CiBjb25zb2xlX2luaXRjYWxsKHNlcmlhbDgyNTBf Y29uc29sZV9pbml0KTsKIAotc3RhdGljIGludCBfX2luaXQgZmluZF9wb3J0KHN0cnVjdCB1YXJ0 X3BvcnQgKnApCitpbnQgX19pbml0IGZpbmRfcG9ydF9zZXJpYWw4MjUwKHN0cnVjdCB1YXJ0X3Bv cnQgKnApCiB7CiAJaW50IGxpbmU7CiAJc3RydWN0IHVhcnRfcG9ydCAqcG9ydDsKQEAgLTI1NDYs MjYgKzI1NDksNiBAQCBzdGF0aWMgaW50IF9faW5pdCBmaW5kX3BvcnQoc3RydWN0IHVhcnRfcG9y dCAqcCkKIAlyZXR1cm4gLUVOT0RFVjsKIH0KIAotaW50IF9faW5pdCBzZXJpYWw4MjUwX3N0YXJ0 X2NvbnNvbGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgY2hhciAqb3B0aW9ucykKLXsKLQlpbnQg bGluZTsKLQotCWxpbmUgPSBmaW5kX3BvcnQocG9ydCk7Ci0JaWYgKGxpbmUgPCAwKQotCQlyZXR1 cm4gLUVOT0RFVjsKLQotCWFkZF9wcmVmZXJyZWRfY29uc29sZSgidHR5UyIsIGxpbmUsIG9wdGlv bnMpOwotCXByaW50aygiQWRkaW5nIGNvbnNvbGUgb24gdHR5UyVkIGF0ICVzIDB4JWx4IChvcHRp b25zICclcycpXG4iLAotCQlsaW5lLCBwb3J0LT5pb3R5cGUgPT0gVVBJT19NRU0gPyAiTU1JTyIg OiAiSS9PIHBvcnQiLAotCQlwb3J0LT5pb3R5cGUgPT0gVVBJT19NRU0gPyAodW5zaWduZWQgbG9u ZykgcG9ydC0+bWFwYmFzZSA6Ci0JCSAgICAodW5zaWduZWQgbG9uZykgcG9ydC0+aW9iYXNlLCBv cHRpb25zKTsKLQlpZiAoIShzZXJpYWw4MjUwX2NvbnNvbGUuZmxhZ3MgJiBDT05fRU5BQkxFRCkp IHsKLQkJc2VyaWFsODI1MF9jb25zb2xlLmZsYWdzICY9IH5DT05fUFJJTlRCVUZGRVI7Ci0JCXJl Z2lzdGVyX2NvbnNvbGUoJnNlcmlhbDgyNTBfY29uc29sZSk7Ci0JfQotCXJldHVybiBsaW5lOwot fQotCiAjZGVmaW5lIFNFUklBTDgyNTBfQ09OU09MRQkmc2VyaWFsODI1MF9jb25zb2xlCiAjZWxz ZQogI2RlZmluZSBTRVJJQUw4MjUwX0NPTlNPTEUJTlVMTApkaWZmIC0tZ2l0IGEvZHJpdmVycy9z ZXJpYWwvODI1MF9lYXJseS5jIGIvZHJpdmVycy9zZXJpYWwvODI1MF9lYXJseS5jCmluZGV4IDdl NTExMTkuLjI5M2ZjMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsLzgyNTBfZWFybHkuYwor KysgYi9kcml2ZXJzL3NlcmlhbC84MjUwX2Vhcmx5LmMKQEAgLTE3LDEzICsxNywxMSBAQAogICog d2UgbG9jYXRlIHRoZSBkZXZpY2UgZGlyZWN0bHkgYnkgaXRzIE1NSU8gb3IgSS9PIHBvcnQgYWRk cmVzcy4KICAqCiAgKiBUaGUgdXNlciBjYW4gc3BlY2lmeSB0aGUgZGV2aWNlIGRpcmVjdGx5LCBl LmcuLAotICoJY29uc29sZT11YXJ0LGlvLDB4M2Y4LDk2MDBuOAotICoJY29uc29sZT11YXJ0LG1t aW8sMHhmZjVlMDAwMCwxMTUyMDBuOAotICogb3IgcGxhdGZvcm0gY29kZSBjYW4gY2FsbCBlYXJs eV91YXJ0X2NvbnNvbGVfaW5pdCgpIHRvIHNldAotICogdGhlIGVhcmx5IFVBUlQgZGV2aWNlLgot ICoKLSAqIEFmdGVyIHRoZSBub3JtYWwgc2VyaWFsIGRyaXZlciBzdGFydHMsIHdlIHRyeSB0byBs b2NhdGUgdGhlCi0gKiBtYXRjaGluZyB0dHlTIGRldmljZSBhbmQgc3RhcnQgYSBjb25zb2xlIHRo ZXJlLgorICoJZWFybHljb249ZWFybHk4MjUwLGlvLDB4M2Y4LDk2MDBuOAorICoJZWFybHljb249 ZWFybHk4MjUwLG1taW8sMHhmZjVlMDAwMCwxMTUyMDBuOAorICogb3IKKyAqCWNvbnNvbGU9ZWFy bHk4MjUwLGlvLDB4M2Y4LDk2MDBuOAorICoJY29uc29sZT1lYXJseTgyNTAsbW1pbywweGZmNWUw MDAwLDExNTIwMG44CiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgpAQCAtMzIsMTcgKzMw LDE5IEBACiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9z ZXJpYWxfcmVnLmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgv c2VyaWFsXzgyNTAuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vc2VyaWFs Lmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAK LXN0cnVjdCBlYXJseV91YXJ0X2RldmljZSB7CitzdHJ1Y3QgZWFybHlfc2VyaWFsODI1MF9kZXZp Y2UgewogCXN0cnVjdCB1YXJ0X3BvcnQgcG9ydDsKIAljaGFyIG9wdGlvbnNbMTZdOwkJLyogZS5n LiwgMTE1MjAwbjggKi8KIAl1bnNpZ25lZCBpbnQgYmF1ZDsKIH07CiAKLXN0YXRpYyBzdHJ1Y3Qg ZWFybHlfdWFydF9kZXZpY2UgZWFybHlfZGV2aWNlIF9faW5pdGRhdGE7Ci1zdGF0aWMgaW50IGVh cmx5X3VhcnRfcmVnaXN0ZXJlZCBfX2luaXRkYXRhOworc3RhdGljIHN0cnVjdCBlYXJseV9zZXJp YWw4MjUwX2RldmljZSBlYXJseV9kZXZpY2UgX19pbml0ZGF0YTsKIAogc3RhdGljIHVuc2lnbmVk IGludCBfX2luaXQgc2VyaWFsX2luKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBvZmZzZXQp CiB7CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwdXRjKHN0cnVjdCB1YXJ0 X3BvcnQgKnBvcnQsIGludCBjKQogCXNlcmlhbF9vdXQocG9ydCwgVUFSVF9UWCwgYyk7CiB9CiAK LXN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV91YXJ0X3dyaXRlKHN0cnVjdCBjb25zb2xlICpjb25z b2xlLCBjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBpbnQgY291bnQpCitzdGF0aWMgdm9pZCBfX2lu aXQgZWFybHlfc2VyaWFsODI1MF93cml0ZShzdHJ1Y3QgY29uc29sZSAqY29uc29sZSwgY29uc3Qg Y2hhciAqcywgdW5zaWduZWQgaW50IGNvdW50KQogewogCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQg PSAmZWFybHlfZGV2aWNlLnBvcnQ7CiAJdW5zaWduZWQgaW50IGllcjsKQEAgLTExMSw3ICsxMTEs NyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IF9faW5pdCBwcm9iZV9iYXVkKHN0cnVjdCB1YXJ0X3Bv cnQgKnBvcnQpCiAJcmV0dXJuIChwb3J0LT51YXJ0Y2xrIC8gMTYpIC8gcXVvdDsKIH0KIAotc3Rh dGljIHZvaWQgX19pbml0IGluaXRfcG9ydChzdHJ1Y3QgZWFybHlfdWFydF9kZXZpY2UgKmRldmlj ZSkKK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X3BvcnQoc3RydWN0IGVhcmx5X3NlcmlhbDgyNTBf ZGV2aWNlICpkZXZpY2UpCiB7CiAJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZkZXZpY2UtPnBv cnQ7CiAJdW5zaWduZWQgaW50IGRpdmlzb3I7CkBAIC0xMzAsMTAgKzEzMCw5IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCBpbml0X3BvcnQoc3RydWN0IGVhcmx5X3VhcnRfZGV2aWNlICpkZXZpY2UpCiAJ c2VyaWFsX291dChwb3J0LCBVQVJUX0xDUiwgYyAmIH5VQVJUX0xDUl9ETEFCKTsKIH0KIAotc3Rh dGljIGludCBfX2luaXQgcGFyc2Vfb3B0aW9ucyhzdHJ1Y3QgZWFybHlfdWFydF9kZXZpY2UgKmRl dmljZSwgY2hhciAqb3B0aW9ucykKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX29wdGlvbnMoc3Ry dWN0IGVhcmx5X3NlcmlhbDgyNTBfZGV2aWNlICpkZXZpY2UsIGNoYXIgKm9wdGlvbnMpCiB7CiAJ c3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZkZXZpY2UtPnBvcnQ7Ci0JaW50IG1hcHNpemUgPSA2 NDsKIAlpbnQgbW1pbywgbGVuZ3RoOwogCiAJaWYgKCFvcHRpb25zKQpAQCAtMTQzLDEyICsxNDIs OSBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9vcHRpb25zKHN0cnVjdCBlYXJseV91YXJ0X2Rl dmljZSAqZGV2aWNlLCBjaGFyICpvcHRpb25zKQogCWlmICghc3RybmNtcChvcHRpb25zLCAibW1p bywiLCA1KSkgewogCQlwb3J0LT5pb3R5cGUgPSBVUElPX01FTTsKIAkJcG9ydC0+bWFwYmFzZSA9 IHNpbXBsZV9zdHJ0b3VsKG9wdGlvbnMgKyA1LCAmb3B0aW9ucywgMCk7Ci0JCXBvcnQtPm1lbWJh c2UgPSBpb3JlbWFwKHBvcnQtPm1hcGJhc2UsIG1hcHNpemUpOwotCQlpZiAoIXBvcnQtPm1lbWJh c2UpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IENvdWxkbid0IGlvcmVtYXAgMHglbHhcbiIs Ci0JCQkJX19GVU5DVElPTl9fLCBwb3J0LT5tYXBiYXNlKTsKLQkJCXJldHVybiAtRU5PTUVNOwot CQl9CisJCXNldF9maXhtYXBfbm9jYWNoZShGSVhfRUFSTFlDT05fTUVNX0JBU0UsIHBvcnQtPm1h cGJhc2UgJiBQQUdFX01BU0spOworCQlwb3J0LT5tZW1iYXNlID0gKHZvaWQgX19pb21lbSAqKV9f Zml4X3RvX3ZpcnQoRklYX0VBUkxZQ09OX01FTV9CQVNFKTsKKwkJcG9ydC0+bWVtYmFzZSArPSBw b3J0LT5tYXBiYXNlICYgflBBR0VfTUFTSzsKIAkJbW1pbyA9IDE7CiAJfSBlbHNlIGlmICghc3Ry bmNtcChvcHRpb25zLCAiaW8sIiwgMykpIHsKIAkJcG9ydC0+aW90eXBlID0gVVBJT19QT1JUOwpA QCAtMTc1LDkgKzE3MSwxNiBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9vcHRpb25zKHN0cnVj dCBlYXJseV91YXJ0X2RldmljZSAqZGV2aWNlLCBjaGFyICpvcHRpb25zKQogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IF9faW5pdCBlYXJseV91YXJ0X3NldHVwKHN0cnVjdCBjb25zb2xlICpj b25zb2xlLCBjaGFyICpvcHRpb25zKQorc3RhdGljIHN0cnVjdCBjb25zb2xlIGVhcmx5X3Nlcmlh bDgyNTBfY29uc29sZSBfX2luaXRkYXRhID0geworCS5uYW1lCT0gInVhcnQiLAorCS53cml0ZQk9 IGVhcmx5X3NlcmlhbDgyNTBfd3JpdGUsCisJLmZsYWdzCT0gQ09OX1BSSU5UQlVGRkVSLAorCS5p bmRleAk9IC0xLAorfTsKKworc3RhdGljIGludCBfX2luaXQgZWFybHlfc2VyaWFsODI1MF9zZXR1 cChjaGFyICpvcHRpb25zKQogewotCXN0cnVjdCBlYXJseV91YXJ0X2RldmljZSAqZGV2aWNlID0g JmVhcmx5X2RldmljZTsKKwlzdHJ1Y3QgZWFybHlfc2VyaWFsODI1MF9kZXZpY2UgKmRldmljZSA9 ICZlYXJseV9kZXZpY2U7CiAJaW50IGVycjsKIAogCWlmIChkZXZpY2UtPnBvcnQubWVtYmFzZSB8 fCBkZXZpY2UtPnBvcnQuaW9iYXNlKQpAQCAtMTkwLDYxICsxOTMsNDMgQEAgc3RhdGljIGludCBf X2luaXQgZWFybHlfdWFydF9zZXR1cChzdHJ1Y3QgY29uc29sZSAqY29uc29sZSwgY2hhciAqb3B0 aW9ucykKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBjb25zb2xlIGVhcmx5X3VhcnRf Y29uc29sZSBfX2luaXRkYXRhID0gewotCS5uYW1lCT0gInVhcnQiLAotCS53cml0ZQk9IGVhcmx5 X3VhcnRfd3JpdGUsCi0JLnNldHVwCT0gZWFybHlfdWFydF9zZXR1cCwKLQkuZmxhZ3MJPSBDT05f UFJJTlRCVUZGRVIsCi0JLmluZGV4CT0gLTEsCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBlYXJs eV91YXJ0X2NvbnNvbGVfaW5pdCh2b2lkKQotewotCWlmICghZWFybHlfdWFydF9yZWdpc3RlcmVk KSB7Ci0JCXJlZ2lzdGVyX2NvbnNvbGUoJmVhcmx5X3VhcnRfY29uc29sZSk7Ci0JCWVhcmx5X3Vh cnRfcmVnaXN0ZXJlZCA9IDE7Ci0JfQotCXJldHVybiAwOwotfQotY29uc29sZV9pbml0Y2FsbChl YXJseV91YXJ0X2NvbnNvbGVfaW5pdCk7Ci0KLWludCBfX2luaXQgZWFybHlfc2VyaWFsX2NvbnNv bGVfaW5pdChjaGFyICpjbWRsaW5lKQorc3RhdGljIGludCBfX2luaXQgc2V0dXBfZWFybHlfc2Vy aWFsODI1MF9jb25zb2xlKGNoYXIgKmNtZGxpbmUpCiB7CiAJY2hhciAqb3B0aW9uczsKIAlpbnQg ZXJyOwogCi0Jb3B0aW9ucyA9IHN0cnN0cihjbWRsaW5lLCAiY29uc29sZT11YXJ0LCIpOworCW9w dGlvbnMgPSBzdHJzdHIoY21kbGluZSwgImVhcmx5ODI1MCwiKTsKIAlpZiAoIW9wdGlvbnMpCiAJ CXJldHVybiAtRU5PREVWOwogCiAJb3B0aW9ucyA9IHN0cmNocihjbWRsaW5lLCAnLCcpICsgMTsK LQlpZiAoKGVyciA9IGVhcmx5X3VhcnRfc2V0dXAoTlVMTCwgb3B0aW9ucykpIDwgMCkKKwlpZiAo KGVyciA9IGVhcmx5X3NlcmlhbDgyNTBfc2V0dXAob3B0aW9ucykpIDwgMCkKIAkJcmV0dXJuIGVy cjsKLQlyZXR1cm4gZWFybHlfdWFydF9jb25zb2xlX2luaXQoKTsKKworCWVhcmx5X3NlcmlhbDgy NTBfY29uc29sZS5mbGFncyB8PSBDT05fQk9PVDsKKwlyZWdpc3Rlcl9jb25zb2xlKCZlYXJseV9z ZXJpYWw4MjUwX2NvbnNvbGUpOworCisJLyogYWRkIG9uZSBkdW1teSBlbnRyeSBpbiBjb25zb2xl X2NtZGxpbmUqLyAKKwlhZGRfcHJlZmVycmVkX2NvbnNvbGUoInR0eVMiLCAyNTUsIGVhcmx5X2Rl dmljZS5vcHRpb25zKTsKKworCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBlYXJs eV91YXJ0X2NvbnNvbGVfc3dpdGNoKHZvaWQpCitpbnQgc2VyaWFsODI1MF9maW5kX3BvcnRfZm9y X2Vhcmx5Y29uKHZvaWQpCiB7Ci0Jc3RydWN0IGVhcmx5X3VhcnRfZGV2aWNlICpkZXZpY2UgPSAm ZWFybHlfZGV2aWNlOworCXN0cnVjdCBlYXJseV9zZXJpYWw4MjUwX2RldmljZSAqZGV2aWNlID0g JmVhcmx5X2RldmljZTsKIAlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJmRldmljZS0+cG9ydDsK LQlpbnQgbW1pbywgbGluZTsKKwlpbnQgbGluZTsKIAotCWlmICghKGVhcmx5X3VhcnRfY29uc29s ZS5mbGFncyAmIENPTl9FTkFCTEVEKSkKLQkJcmV0dXJuIDA7CisJbGluZSA9IGZpbmRfcG9ydF9z ZXJpYWw4MjUwKHBvcnQpOwogCi0JLyogVHJ5IHRvIHN0YXJ0IHRoZSBub3JtYWwgZHJpdmVyIG9u IGEgbWF0Y2hpbmcgbGluZS4gICovCi0JbW1pbyA9IChwb3J0LT5pb3R5cGUgPT0gVVBJT19NRU0p OwotCWxpbmUgPSBzZXJpYWw4MjUwX3N0YXJ0X2NvbnNvbGUocG9ydCwgZGV2aWNlLT5vcHRpb25z KTsKIAlpZiAobGluZSA8IDApCi0JCXByaW50aygiTm8gdHR5UyBkZXZpY2UgYXQgJXMgMHglbHgg Zm9yIGNvbnNvbGVcbiIsCi0JCQltbWlvID8gIk1NSU8iIDogIkkvTyBwb3J0IiwKLQkJCW1taW8g PyBwb3J0LT5tYXBiYXNlIDoKLQkJCSAgICAodW5zaWduZWQgbG9uZykgcG9ydC0+aW9iYXNlKTsK LQotCXVucmVnaXN0ZXJfY29uc29sZSgmZWFybHlfdWFydF9jb25zb2xlKTsKLQlpZiAobW1pbykK LQkJaW91bm1hcChwb3J0LT5tZW1iYXNlKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJCisJLyogdXBk YXRlIHRoZSBkdW1teSBlbnRyeSB0byB3aGF0IHdlIHdhbnQgY29uc29sZSB0eXBlICovCisJdXBk YXRlX2NvbnNvbGVfY21kbGluZV9jb25zb2xlX2luZGV4KCJ0dHlTIiwgMjU1LCBsaW5lKTsKIAog CXJldHVybiAwOwogfQotbGF0ZV9pbml0Y2FsbChlYXJseV91YXJ0X2NvbnNvbGVfc3dpdGNoKTsK KworZWFybHlfcGFyYW0oImVhcmx5Y29uIiwgc2V0dXBfZWFybHlfc2VyaWFsODI1MF9jb25zb2xl KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL0tjb25maWcgYi9kcml2ZXJzL3NlcmlhbC9L Y29uZmlnCmluZGV4IDMxNWVhOTkuLjBmYTUxZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFs L0tjb25maWcKKysrIGIvZHJpdmVycy9zZXJpYWwvS2NvbmZpZwpAQCAtNjIsNiArNjIsMTQgQEAg Y29uZmlnIFNFUklBTF84MjUwX0NPTlNPTEUKIAkgIGtlcm5lbCB3aWxsIGF1dG9tYXRpY2FsbHkg dXNlIHRoZSBmaXJzdCBzZXJpYWwgbGluZSwgL2Rldi90dHlTMCwgYXMKIAkgIHN5c3RlbSBjb25z b2xlLgogCisJICB5b3UgY2FuIHNldCB0aGF0IHVzaW5nIGEga2VybmVsIGNvbW1hbmQgbGluZSBv cHRpb24gc3VjaCBhcworCSAgImVhcmx5Y29uPWVhcmx5ODI1MCxpbywweDNmOCw5NjAwbjgiIG9y IAorCSAgImVhcmx5Y29uPWVhcmx5ODI1MCxtbWlvLDB4ZmY1ZTAwMDAsMTE1MjAwbjgiIG9yIAor CSAgImNvbnNvbGU9ZWFybHk4MjUwLGlvLDB4M2Y4LDk2MDBuOCIgb3IgCisJICAiY29uc29sZT1l YXJseTgyNTAsbW1pbywweGZmNWUwMDAwLDExNTIwMG44Ii4gCisJICBhbmQgaXQgd2lsbCBzd2l0 Y2ggdG8gbm9ybWFsIHNlcmlhbCBjb25zb2xlIHdoZW4gY29ycmVwb25kaW5nIHBvcnQgaXMgCisJ ICByZWFkeS4KKwogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAogY29uZmlnIFNFUklBTF84MjUwX0dT QwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYyBiL2RyaXZlcnMvc2Vy aWFsL3NlcmlhbF9jb3JlLmMKaW5kZXggMzI2MDIwZi4uOTU2ZDQzNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYworKysgYi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfY29y ZS5jCkBAIC0yMzAzLDggKzIzMDMsMTEgQEAgaW50IHVhcnRfYWRkX29uZV9wb3J0KHN0cnVjdCB1 YXJ0X2RyaXZlciAqZHJ2LCBzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogCSAqIEl0IG1heSBiZSB0 aGF0IHRoZSBwb3J0IHdhcyBub3QgYXZhaWxhYmxlLgogCSAqLwogCWlmIChwb3J0LT50eXBlICE9 IFBPUlRfVU5LTk9XTiAmJgotCSAgICBwb3J0LT5jb25zICYmICEocG9ydC0+Y29ucy0+ZmxhZ3Mg JiBDT05fRU5BQkxFRCkpCisJICAgIHBvcnQtPmNvbnMgJiYgIShwb3J0LT5jb25zLT5mbGFncyAm IENPTl9FTkFCTEVEKSkgeworCQlpZihwb3J0LT5vcHMgJiYgcG9ydC0+b3BzLT5maW5kX3BvcnRf Zm9yX2Vhcmx5Y29uKSAKKwkJCXBvcnQtPm9wcy0+ZmluZF9wb3J0X2Zvcl9lYXJseWNvbigpOwog CQlyZWdpc3Rlcl9jb25zb2xlKHBvcnQtPmNvbnMpOworCX0KIAogCS8qCiAJICogRW5zdXJlIFVQ Rl9ERUFEIGlzIG5vdCBzZXQuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1pMzg2L2ZpeG1hcC5o IGIvaW5jbHVkZS9hc20taTM4Ni9maXhtYXAuaAppbmRleCA4MGVhMDUyLi4yNDllNzUzIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2FzbS1pMzg2L2ZpeG1hcC5oCisrKyBiL2luY2x1ZGUvYXNtLWkzODYv Zml4bWFwLmgKQEAgLTU0LDYgKzU0LDggQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19GSVhBRERS X1RPUDsKIGVudW0gZml4ZWRfYWRkcmVzc2VzIHsKIAlGSVhfSE9MRSwKIAlGSVhfVkRTTywKKwlG SVhfREJHUF9CQVNFLAorCUZJWF9FQVJMWUNPTl9NRU1fQkFTRSwKICNpZmRlZiBDT05GSUdfWDg2 X0xPQ0FMX0FQSUMKIAlGSVhfQVBJQ19CQVNFLAkvKiBsb2NhbCAoQ1BVKSBBUElDKSAtLSByZXF1 aXJlZCBmb3IgU01QIG9yIG5vdCAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14 ODZfNjQvZml4bWFwLmggYi9pbmNsdWRlL2FzbS14ODZfNjQvZml4bWFwLmgKaW5kZXggZTkwZTE2 Ny4uMmFjYjliNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2XzY0L2ZpeG1hcC5oCisrKyBi L2luY2x1ZGUvYXNtLXg4Nl82NC9maXhtYXAuaApAQCAtMzUsNiArMzUsOCBAQCBlbnVtIGZpeGVk X2FkZHJlc3NlcyB7CiAJVlNZU0NBTExfTEFTVF9QQUdFLAogCVZTWVNDQUxMX0ZJUlNUX1BBR0Ug PSBWU1lTQ0FMTF9MQVNUX1BBR0UgKyAoKFZTWVNDQUxMX0VORC1WU1lTQ0FMTF9TVEFSVCkgPj4g UEFHRV9TSElGVCkgLSAxLAogCVZTWVNDQUxMX0hQRVQsCisJRklYX0RCR1BfQkFTRSwKKwlGSVhf RUFSTFlDT05fTUVNX0JBU0UsCiAJRklYX0hQRVRfQkFTRSwKIAlGSVhfQVBJQ19CQVNFLAkvKiBs b2NhbCAoQ1BVKSBBUElDKSAtLSByZXF1aXJlZCBmb3IgU01QIG9yIG5vdCAqLwogCUZJWF9JT19B UElDX0JBU0VfMCwKQEAgLTg0LDcgKzg2LDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNp Z25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCiAJaWYgKGlkeCA+ PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpCiAJCV9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhp c3QoKTsKIAotICAgICAgICByZXR1cm4gX19maXhfdG9fdmlydChpZHgpOworCXJldHVybiBfX2Zp eF90b192aXJ0KGlkeCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9j b25zb2xlLmggYi9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaAppbmRleCA2MmVmNmUxLi40Y2I3NzQ5 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbnNvbGUuaAorKysgYi9pbmNsdWRlL2xpbnV4 L2NvbnNvbGUuaApAQCAtMTA3LDYgKzEwNyw3IEBAIHN0cnVjdCBjb25zb2xlIHsKIH07CiAKIGV4 dGVybiBpbnQgYWRkX3ByZWZlcnJlZF9jb25zb2xlKGNoYXIgKm5hbWUsIGludCBpZHgsIGNoYXIg Km9wdGlvbnMpOworZXh0ZXJuIGludCB1cGRhdGVfY29uc29sZV9jbWRsaW5lX2NvbnNvbGVfaW5k ZXgoY2hhciAqbmFtZSwgaW50IGlkeF9vbGQsIGludCBpZHhfbmV3KTsKIGV4dGVybiB2b2lkIHJl Z2lzdGVyX2NvbnNvbGUoc3RydWN0IGNvbnNvbGUgKik7CiBleHRlcm4gaW50IHVucmVnaXN0ZXJf Y29uc29sZShzdHJ1Y3QgY29uc29sZSAqKTsKIGV4dGVybiBzdHJ1Y3QgY29uc29sZSAqY29uc29s ZV9kcml2ZXJzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZXJpYWwuaCBiL2luY2x1ZGUv bGludXgvc2VyaWFsLmgKaW5kZXggMzNmYzhjYi4uZGViNzE0MyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9zZXJpYWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlcmlhbC5oCkBAIC0xNzcsMTEg KzE3Nyw1IEBAIHN0cnVjdCBzZXJpYWxfaWNvdW50ZXJfc3RydWN0IHsKICNpZmRlZiBfX0tFUk5F TF9fCiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KIAotLyogQWxsb3cgYXJjaGl0ZWN0dXJl cyB0byBvdmVycmlkZSBlbnRyaWVzIGluIHNlcmlhbDgyNTBfcG9ydHNbXSBhdCBydW4gdGltZTog Ki8KLXN0cnVjdCB1YXJ0X3BvcnQ7CS8qIGZvcndhcmQgZGVjbGFyYXRpb24gKi8KLWV4dGVybiBp bnQgZWFybHlfc2VyaWFsX3NldHVwKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpOwotZXh0ZXJuIGlu dCBlYXJseV9zZXJpYWxfY29uc29sZV9pbml0KGNoYXIgKm9wdGlvbnMpOwotZXh0ZXJuIGludCBz ZXJpYWw4MjUwX3N0YXJ0X2NvbnNvbGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgY2hhciAqb3B0 aW9ucyk7Ci0KICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAjZW5kaWYgLyogX0xJTlVYX1NFUklB TF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NlcmlhbF84MjUwLmggYi9pbmNsdWRl L2xpbnV4L3NlcmlhbF84MjUwLmgKaW5kZXggNzEzMTBkOC4uMGQ3OWZjNSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9zZXJpYWxfODI1MC5oCisrKyBiL2luY2x1ZGUvbGludXgvc2VyaWFsXzgy NTAuaApAQCAtNjAsNCArNjAsNyBAQCB2b2lkIHNlcmlhbDgyNTBfdW5yZWdpc3Rlcl9wb3J0KGlu dCBsaW5lKTsKIHZvaWQgc2VyaWFsODI1MF9zdXNwZW5kX3BvcnQoaW50IGxpbmUpOwogdm9pZCBz ZXJpYWw4MjUwX3Jlc3VtZV9wb3J0KGludCBsaW5lKTsKIAorZXh0ZXJuIGludCBmaW5kX3BvcnRf c2VyaWFsODI1MChzdHJ1Y3QgdWFydF9wb3J0ICpwKTsKK2V4dGVybiBpbnQgc2VyaWFsODI1MF9m aW5kX3BvcnRfZm9yX2Vhcmx5Y29uKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvc2VyaWFsX2NvcmUuaCBiL2luY2x1ZGUvbGludXgvc2VyaWFsX2NvcmUuaAppbmRl eCBhM2FjNGM4Li5iNzRmYTRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3Jl LmgKKysrIGIvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oCkBAIC0xOTksNiArMTk5LDExIEBA IHN0cnVjdCB1YXJ0X29wcyB7CiAJdm9pZAkJKCpjb25maWdfcG9ydCkoc3RydWN0IHVhcnRfcG9y dCAqLCBpbnQpOwogCWludAkJKCp2ZXJpZnlfcG9ydCkoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1 Y3Qgc2VyaWFsX3N0cnVjdCAqKTsKIAlpbnQJCSgqaW9jdGwpKHN0cnVjdCB1YXJ0X3BvcnQgKiwg dW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKKwkKKwkvKgorCSAqIGZvciBlYXJseWNvbiB0 byBjb25zb2xlIHN3aXRjaAorCSAqLworCWludAkJKCpmaW5kX3BvcnRfZm9yX2Vhcmx5Y29uKSh2 b2lkKTsKIH07CiAKICNkZWZpbmUgVUFSVF9DT05GSUdfVFlQRQkoMSA8PCAwKQpkaWZmIC0tZ2l0 IGEvaW5pdC9tYWluLmMgYi9pbml0L21haW4uYwppbmRleCAxOTQwZmE3Li4wN2RhZDUzIDEwMDY0 NAotLS0gYS9pbml0L21haW4uYworKysgYi9pbml0L21haW4uYwpAQCAtNDUyLDcgKzQ1Miw5IEBA IHN0YXRpYyBpbnQgX19pbml0IGRvX2Vhcmx5X3BhcmFtKGNoYXIgKnBhcmFtLCBjaGFyICp2YWwp CiAJc3RydWN0IG9ic19rZXJuZWxfcGFyYW0gKnA7CiAKIAlmb3IgKHAgPSBfX3NldHVwX3N0YXJ0 OyBwIDwgX19zZXR1cF9lbmQ7IHArKykgewotCQlpZiAocC0+ZWFybHkgJiYgc3RyY21wKHBhcmFt LCBwLT5zdHIpID09IDApIHsKKwkJaWYgKChwLT5lYXJseSAmJiBzdHJjbXAocGFyYW0sIHAtPnN0 cikgPT0gMCkgfHwgCisJCSAgKHN0cmNtcChwYXJhbSwiY29uc29sZSIpPT0wICYmIHN0cmNtcChw LT5zdHIsICJlYXJseWNvbiIpPT0wKQorCQkpIHsKIAkJCWlmIChwLT5zZXR1cF9mdW5jKHZhbCkg IT0gMCkKIAkJCQlwcmludGsoS0VSTl9XQVJOSU5HCiAJCQkJICAgICAgICJNYWxmb3JtZWQgZWFy bHkgb3B0aW9uICclcydcbiIsIHBhcmFtKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsuYyBi L2tlcm5lbC9wcmludGsuYwppbmRleCAwYmJkZWFjLi4yNTNjMGY3IDEwMDY0NAotLS0gYS9rZXJu ZWwvcHJpbnRrLmMKKysrIGIva2VybmVsL3ByaW50ay5jCkBAIC03MjYsNiArNzI2LDIxIEBAIGlu dCBfX2luaXQgYWRkX3ByZWZlcnJlZF9jb25zb2xlKGNoYXIgKm5hbWUsIGludCBpZHgsIGNoYXIg Km9wdGlvbnMpCiAJcmV0dXJuIDA7CiB9CiAKK2ludCBfX2luaXQgdXBkYXRlX2NvbnNvbGVfY21k bGluZV9jb25zb2xlX2luZGV4KGNoYXIgKm5hbWUsIGludCBpZHhfb2xkLCBpbnQgaWR4X25ldykK K3sKKwlpbnQgaTsKKworCWZvcihpID0gMDsgaSA8IE1BWF9DTURMSU5FQ09OU09MRVMgJiYgY29u c29sZV9jbWRsaW5lW2ldLm5hbWVbMF07IGkrKykKKwkJaWYgKHN0cmNtcChjb25zb2xlX2NtZGxp bmVbaV0ubmFtZSwgbmFtZSkgPT0gMCAmJgorCQkJICBjb25zb2xlX2NtZGxpbmVbaV0uaW5kZXgg PT0gaWR4X29sZCkgeworCQkJICAJY29uc29sZV9jbWRsaW5lW2ldLmluZGV4ID0gaWR4X25ldzsK KwkJCQlyZXR1cm4gMDsKKwkJfQorCisJcmV0dXJuIDA7Cit9CisJCisKICNpZm5kZWYgQ09ORklH X0RJU0FCTEVfQ09OU09MRV9TVVNQRU5ECiAvKioKICAqIHN1c3BlbmRfY29uc29sZSAtIHN1c3Bl bmQgdGhlIGNvbnNvbGUgc3Vic3lzdGVtCg== ------=_Part_101990_21786541.1179779776706-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/