From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19806 invoked by alias); 5 Dec 2002 04:36:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 19771 invoked by uid 71); 5 Dec 2002 04:36:00 -0000 Resent-Date: 5 Dec 2002 04:36:00 -0000 Resent-Message-ID: <20021205043600.19770.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, suzhe@turbolinux.com.cn Received: (qmail 18126 invoked by uid 61); 5 Dec 2002 04:31:56 -0000 Message-Id: <20021205043156.18125.qmail@sources.redhat.com> Date: Wed, 04 Dec 2002 20:36:00 -0000 From: suzhe@turbolinux.com.cn Reply-To: suzhe@turbolinux.com.cn To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c/8817: Failed to cross compile linux-2.4.19 kernel for StrongARM. X-SW-Source: 2002-12/txt/msg00263.txt.bz2 List-Id: >Number: 8817 >Category: c >Synopsis: Failed to cross compile linux-2.4.19 kernel for StrongARM. >Confidential: no >Severity: critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Dec 04 20:36:00 PST 2002 >Closed-Date: >Last-Modified: >Originator: suzhe@turbolinux.com.cn >Release: gcc-3.3 (cvs snapshot 2002.12.05) >Organization: >Environment: cross compile for StrongARM with gcc-3.3 snapshot >Description: arm-linux-gcc -D__KERNEL__ -I/opt/cross_compiler/build/linux-2.4.19-arm/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm1100 -mshort-load-bytes -msoft-float -nostdinc -I /opt/cross_compiler/strongarm-root/usr//lib/gcc-lib/arm-linux/3.3/include -DKBUILD_BASENAME=ll_rw_blk -DEXPORT_SYMTAB -c ll_rw_blk.c ll_rw_blk.c: In function `__blk_cleanup_queue': ll_rw_blk.c:163: warning: comparison between signed and unsigned ll_rw_blk.c: In function `ll_new_segment': ll_rw_blk.c:256: warning: comparison between signed and unsigned ll_rw_blk.c: In function `locate_hd_struct': ll_rw_blk.c:628: warning: comparison between signed and unsigned ll_rw_blk.c: In function `blkdev_release_request': ll_rw_blk.c:765: warning: comparison between signed and unsigned ll_rw_blk.c: In function `attempt_merge': ll_rw_blk.c:788: warning: comparison between signed and unsigned ll_rw_blk.c: In function `__make_request': ll_rw_blk.c:971: warning: comparison between signed and unsigned arm-linux-gcc -D__KERNEL__ -I/opt/cross_compiler/build/linux-2.4.19-arm/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm1100 -mshort-load-bytes -msoft-float -nostdinc -I /opt/cross_compiler/strongarm-root/usr//lib/gcc-lib/arm-linux/3.3/include -DKBUILD_BASENAME=blkpg -DEXPORT_SYMTAB -c blkpg.c blkpg.c: In function `add_partition': blkpg.c:94: warning: comparison between signed and unsigned blkpg.c:104: warning: comparison between signed and unsigned blkpg.c:105: warning: comparison between signed and unsigned blkpg.c: In function `del_partition': blkpg.c:140: warning: comparison between signed and unsigned blkpg.c: In function `blkpg_ioctl': blkpg.c:179: warning: comparison between signed and unsigned blkpg.c: In function `blk_ioctl': blkpg.c:285: warning: comparison between signed and unsigned blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber list blkpg.c:252: internal compiler error: asm clobber conflict with input operand Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make[3]: *** [blkpg.o] Error 1 make[3]: Leaving directory `/opt/cross_compiler/build/linux-2.4.19-arm/drivers/block' make[2]: *** [first_rule] Error 2 make[2]: Leaving directory `/opt/cross_compiler/build/linux-2.4.19-arm/drivers/block' make[1]: *** [_subdir_block] Error 2 make[1]: Leaving directory `/opt/cross_compiler/build/linux-2.4.19-arm/drivers' make: *** [_dir_drivers] Error 2 >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="blkpg.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="blkpg.c" LyoKICogUGFydGl0aW9uIHRhYmxlIGFuZCBkaXNrIGdlb21ldHJ5IGhhbmRsaW5nCiAqCiAqIFRo aXMgb2Jzb2xldGVzIHRoZSBwYXJ0aXRpb24taGFuZGxpbmcgY29kZSBpbiBnZW5oZC5jOgogKiBV c2Vyc3BhY2UgY2FuIGxvb2sgYXQgYSBkaXNrIGluIGFyYml0cmFyeSBmb3JtYXQgYW5kIHRlbGwK ICogdGhlIGtlcm5lbCB3aGF0IHBhcnRpdGlvbnMgdGhlcmUgYXJlIG9uIHRoZSBkaXNrLCBhbmQg aG93CiAqIHRoZXNlIHNob3VsZCBiZSBudW1iZXJlZC4KICogSXQgYWxzbyBhbGxvd3Mgb25lIHRv IHJlcGFydGl0aW9uIGEgZGlzayB0aGF0IGlzIGJlaW5nIHVzZWQuCiAqCiAqIEEgc2luZ2xlIGlv Y3RsIHdpdGggbG90cyBvZiBzdWJmdW5jdGlvbnM6CiAqCiAqIERldmljZSBudW1iZXIgc3R1ZmY6 CiAqICAgIGdldF93aG9sZV9kaXNrKCkgICAgICAgICAgKGdpdmVuIHRoZSBkZXZpY2UgbnVtYmVy IG9mIGEgcGFydGl0aW9uLCBmaW5kCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo ZSBkZXZpY2UgbnVtYmVyIG9mIHRoZSBlbmNvbXBhc3NpbmcgZGlzaykKICogICAgZ2V0X2FsbF9w YXJ0aXRpb25zKCkgICAgICAoZ2l2ZW4gdGhlIGRldmljZSBudW1iZXIgb2YgYSBkaXNrLCByZXR1 cm4gdGhlCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZSBudW1iZXJzIG9m IGFsbCBpdHMga25vd24gcGFydGl0aW9ucykKICoKICogUGFydGl0aW9uIHN0dWZmOgogKiAgICBh ZGRfcGFydGl0aW9uKCkKICogICAgZGVsZXRlX3BhcnRpdGlvbigpCiAqICAgIHRlc3RfcGFydGl0 aW9uX2luX3VzZSgpICAgKGFsc28gZm9yIHRlc3RfZGlza19pbl91c2UpCiAqCiAqIEdlb21ldHJ5 IHN0dWZmOgogKiAgICBnZXRfZ2VvbWV0cnkoKQogKiAgICBzZXRfZ2VvbWV0cnkoKQogKiAgICBn ZXRfYmlvc19kcml2ZWRhdGEoKQogKgogKiBGb3IgdG9kYXksIG9ubHkgdGhlIHBhcnRpdGlvbiBz dHVmZiAtIGFlYiwgOTkwNTE1CiAqLwoKI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiNpbmNsdWRl IDxsaW51eC9mcy5oPgkJCS8qIGZvciBCTEtSQVNFVCwgLi4uICovCiNpbmNsdWRlIDxsaW51eC9z Y2hlZC5oPgkJLyogZm9yIGNhcGFibGUoKSAqLwojaW5jbHVkZSA8bGludXgvYmxrLmg+CQkJLyog Zm9yIHNldF9kZXZpY2Vfcm8oKSAqLwojaW5jbHVkZSA8bGludXgvYmxrcGcuaD4KI2luY2x1ZGUg PGxpbnV4L2dlbmhkLmg+CiNpbmNsdWRlIDxsaW51eC9zd2FwLmg+CQkJLyogZm9yIGlzX3N3YXBf cGFydGl0aW9uKCkgKi8KI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPiAgICAgICAgICAgICAgIC8q IGZvciBFWFBPUlRfU1lNQk9MICovCgojaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KCi8qCiAqIFdo YXQgaXMgdGhlIGRhdGEgZGVzY3JpYmluZyBhIHBhcnRpdGlvbj8KICoKICogMS4gYSBkZXZpY2Ug bnVtYmVyIChrZGV2X3QpCiAqIDIuIGEgc3RhcnRpbmcgc2VjdG9yIGFuZCBudW1iZXIgb2Ygc2Vj dG9ycyAoaGRfc3RydWN0KQogKiAgICBnaXZlbiBpbiB0aGUgcGFydFtdIGFycmF5IG9mIHRoZSBn ZW5kaXNrIHN0cnVjdHVyZSBmb3IgdGhlIGRyaXZlLgogKgogKiBUaGUgbnVtYmVyIG9mIHNlY3Rv cnMgaXMgcmVwbGljYXRlZCBpbiB0aGUgc2l6ZXNbXSBhcnJheSBvZgogKiB0aGUgZ2VuZGlzayBz dHJ1Y3R1cmUgZm9yIHRoZSBtYWpvciwgd2hpY2ggYWdhaW4gaXMgY29waWVkIHRvCiAqIHRoZSBi bGtfc2l6ZVtdW10gYXJyYXkuCiAqIChIb3dldmVyLCBoZF9zdHJ1Y3QgaGFzIHRoZSBudW1iZXIg b2YgNTEyLWJ5dGUgc2VjdG9ycywKICogIGctPnNpemVzW10gYW5kIGJsa19zaXplW11bXSBoYXZl IHRoZSBudW1iZXIgb2YgMTAyNC1ieXRlIGJsb2Nrcy4pCiAqIE5vdGUgdGhhdCBzZXZlcmFsIGRy aXZlcyBtYXkgaGF2ZSB0aGUgc2FtZSBtYWpvci4KICovCgovKgogKiBBZGQgYSBwYXJ0aXRpb24u CiAqCiAqIHJldHVybnM6IEVJTlZBTDogYmFkIHBhcmFtZXRlcnMKICogICAgICAgICAgRU5YSU86 IGNhbm5vdCBmaW5kIGRyaXZlCiAqICAgICAgICAgIEVCVVNZOiBwcm9wb3NlZCBwYXJ0aXRpb24g b3ZlcmxhcHMgYW4gZXhpc3Rpbmcgb25lCiAqICAgICAgICAgICAgICAgICBvciBoYXMgdGhlIHNh bWUgbnVtYmVyIGFzIGFuIGV4aXN0aW5nIG9uZQogKiAgICAgICAgICAwOiBhbGwgT0suCiAqLwpp bnQgYWRkX3BhcnRpdGlvbihrZGV2X3QgZGV2LCBzdHJ1Y3QgYmxrcGdfcGFydGl0aW9uICpwKSB7 CglzdHJ1Y3QgZ2VuZGlzayAqZzsKCWxvbmcgbG9uZyBwcHN0YXJ0LCBwcGxlbmd0aDsKCWxvbmcg cHN0YXJ0LCBwbGVuZ3RoOwoJaW50IGksIGRyaXZlLCBmaXJzdF9taW5vciwgZW5kX21pbm9yLCBt aW5vcjsKCgkvKiBjb252ZXJ0IGJ5dGVzIHRvIHNlY3RvcnMsIGNoZWNrIGZvciBmaXQgaW4gYSBo ZF9zdHJ1Y3QgKi8KCXBwc3RhcnQgPSAocC0+c3RhcnQgPj4gOSk7CglwcGxlbmd0aCA9IChwLT5s ZW5ndGggPj4gOSk7Cglwc3RhcnQgPSBwcHN0YXJ0OwoJcGxlbmd0aCA9IHBwbGVuZ3RoOwoJaWYg KHBzdGFydCAhPSBwcHN0YXJ0IHx8IHBsZW5ndGggIT0gcHBsZW5ndGgKCSAgICB8fCBwc3RhcnQg PCAwIHx8IHBsZW5ndGggPCAwKQoJCXJldHVybiAtRUlOVkFMOwoKCS8qIGZpbmQgdGhlIGRyaXZl IG1ham9yICovCglnID0gZ2V0X2dlbmRpc2soZGV2KTsKCWlmICghZykKCQlyZXR1cm4gLUVOWElP OwoKCS8qIGV4aXN0aW5nIGRyaXZlPyAqLwoJZHJpdmUgPSAoTUlOT1IoZGV2KSA+PiBnLT5taW5v cl9zaGlmdCk7CglmaXJzdF9taW5vciA9IChkcml2ZSA8PCBnLT5taW5vcl9zaGlmdCk7CgllbmRf bWlub3IgICA9IGZpcnN0X21pbm9yICsgZy0+bWF4X3A7CglpZiAoZHJpdmUgPj0gZy0+bnJfcmVh bCkKCQlyZXR1cm4gLUVOWElPOwoKCS8qIGRyaXZlIGFuZCBwYXJ0aXRpb24gbnVtYmVyIE9LPyAq LwoJaWYgKGZpcnN0X21pbm9yICE9IE1JTk9SKGRldikgfHwgcC0+cG5vIDw9IDAgfHwgcC0+cG5v ID49IGctPm1heF9wKQoJCXJldHVybiAtRUlOVkFMOwoKCS8qIHBhcnRpdGlvbiBudW1iZXIgaW4g dXNlPyAqLwoJbWlub3IgPSBmaXJzdF9taW5vciArIHAtPnBubzsKCWlmIChnLT5wYXJ0W21pbm9y XS5ucl9zZWN0cyAhPSAwKQoJCXJldHVybiAtRUJVU1k7CgoJLyogb3ZlcmxhcD8gKi8KCWZvciAo aT1maXJzdF9taW5vcisxOyBpPGVuZF9taW5vcjsgaSsrKQoJCWlmICghKHBzdGFydCtwbGVuZ3Ro IDw9IGctPnBhcnRbaV0uc3RhcnRfc2VjdCB8fAoJCSAgICAgIHBzdGFydCA+PSBnLT5wYXJ0W2ld LnN0YXJ0X3NlY3QgKyBnLT5wYXJ0W2ldLm5yX3NlY3RzKSkKCQkJcmV0dXJuIC1FQlVTWTsKCgkv KiBhbGwgc2VlbXMgT0sgKi8KCWctPnBhcnRbbWlub3JdLnN0YXJ0X3NlY3QgPSBwc3RhcnQ7Cgln LT5wYXJ0W21pbm9yXS5ucl9zZWN0cyA9IHBsZW5ndGg7CglpZiAoZy0+c2l6ZXMpCgkJZy0+c2l6 ZXNbbWlub3JdID0gKHBsZW5ndGggPj4gKEJMT0NLX1NJWkVfQklUUyAtIDkpKTsKCWRldmZzX3Jl Z2lzdGVyX3BhcnRpdGlvbnMgKGcsIGZpcnN0X21pbm9yLCAwKTsKCXJldHVybiAwOwp9CgovKgog KiBEZWxldGUgYSBwYXJ0aXRpb24gZ2l2ZW4gYnkgcGFydGl0aW9uIG51bWJlcgogKgogKiByZXR1 cm5zOiBFSU5WQUw6IGJhZCBwYXJhbWV0ZXJzCiAqICAgICAgICAgIEVOWElPOiBjYW5ub3QgZmlu ZCBwYXJ0aXRpb24KICogICAgICAgICAgRUJVU1k6IHBhcnRpdGlvbiBpcyBidXN5CiAqICAgICAg ICAgIDA6IGFsbCBPSy4KICoKICogTm90ZSB0aGF0IHRoZSBkZXYgYXJndW1lbnQgcmVmZXJzIHRv IHRoZSBlbnRpcmUgZGlzaywgbm90IHRoZSBwYXJ0aXRpb24uCiAqLwppbnQgZGVsX3BhcnRpdGlv bihrZGV2X3QgZGV2LCBzdHJ1Y3QgYmxrcGdfcGFydGl0aW9uICpwKSB7CglzdHJ1Y3QgZ2VuZGlz ayAqZzsKCWtkZXZfdCBkZXZwOwoJaW50IGRyaXZlLCBmaXJzdF9taW5vciwgbWlub3I7CgoJLyog ZmluZCB0aGUgZHJpdmUgbWFqb3IgKi8KCWcgPSBnZXRfZ2VuZGlzayhkZXYpOwoJaWYgKCFnKQoJ CXJldHVybiAtRU5YSU87CgoJLyogZHJpdmUgYW5kIHBhcnRpdGlvbiBudW1iZXIgT0s/ICovCglk cml2ZSA9IChNSU5PUihkZXYpID4+IGctPm1pbm9yX3NoaWZ0KTsKCWZpcnN0X21pbm9yID0gKGRy aXZlIDw8IGctPm1pbm9yX3NoaWZ0KTsKCWlmIChmaXJzdF9taW5vciAhPSBNSU5PUihkZXYpIHx8 IHAtPnBubyA8PSAwIHx8IHAtPnBubyA+PSBnLT5tYXhfcCkKCQlyZXR1cm4gLUVJTlZBTDsKCgkv KiBleGlzdGluZyBkcml2ZSBhbmQgcGFydGl0aW9uPyAqLwoJbWlub3IgPSBmaXJzdF9taW5vciAr IHAtPnBubzsKCWlmIChkcml2ZSA+PSBnLT5ucl9yZWFsIHx8IGctPnBhcnRbbWlub3JdLm5yX3Nl Y3RzID09IDApCgkJcmV0dXJuIC1FTlhJTzsKCgkvKiBwYXJ0aXRpb24gaW4gdXNlPyBJbmNvbXBs ZXRlIGNoZWNrIGZvciBub3cuICovCglkZXZwID0gTUtERVYoTUFKT1IoZGV2KSwgbWlub3IpOwoJ aWYgKGlzX21vdW50ZWQoZGV2cCkgfHwgaXNfc3dhcF9wYXJ0aXRpb24oZGV2cCkpCgkJcmV0dXJu IC1FQlVTWTsKCgkvKiBhbGwgc2VlbXMgT0sgKi8KCWZzeW5jX2RldihkZXZwKTsKCWludmFsaWRh dGVfYnVmZmVycyhkZXZwKTsKCglnLT5wYXJ0W21pbm9yXS5zdGFydF9zZWN0ID0gMDsKCWctPnBh cnRbbWlub3JdLm5yX3NlY3RzID0gMDsKCWlmIChnLT5zaXplcykKCQlnLT5zaXplc1ttaW5vcl0g PSAwOwoJZGV2ZnNfcmVnaXN0ZXJfcGFydGl0aW9ucyAoZywgZmlyc3RfbWlub3IsIDApOwoKCXJl dHVybiAwOwp9CgppbnQgYmxrcGdfaW9jdGwoa2Rldl90IGRldiwgc3RydWN0IGJsa3BnX2lvY3Rs X2FyZyAqYXJnKQp7CglzdHJ1Y3QgYmxrcGdfaW9jdGxfYXJnIGE7CglzdHJ1Y3QgYmxrcGdfcGFy dGl0aW9uIHA7CglpbnQgbGVuOwoKCWlmIChjb3B5X2Zyb21fdXNlcigmYSwgYXJnLCBzaXplb2Yo c3RydWN0IGJsa3BnX2lvY3RsX2FyZykpKQoJCXJldHVybiAtRUZBVUxUOwoKCXN3aXRjaCAoYS5v cCkgewoJCWNhc2UgQkxLUEdfQUREX1BBUlRJVElPTjoKCQljYXNlIEJMS1BHX0RFTF9QQVJUSVRJ T046CgkJCWxlbiA9IGEuZGF0YWxlbjsKCQkJaWYgKGxlbiA8IHNpemVvZihzdHJ1Y3QgYmxrcGdf cGFydGl0aW9uKSkKCQkJCXJldHVybiAtRUlOVkFMOwoJCQlpZiAoY29weV9mcm9tX3VzZXIoJnAs IGEuZGF0YSwgc2l6ZW9mKHN0cnVjdCBibGtwZ19wYXJ0aXRpb24pKSkKCQkJCXJldHVybiAtRUZB VUxUOwoJCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCgkJCQlyZXR1cm4gLUVBQ0NFUzsK CQkJaWYgKGEub3AgPT0gQkxLUEdfQUREX1BBUlRJVElPTikKCQkJCXJldHVybiBhZGRfcGFydGl0 aW9uKGRldiwgJnApOwoJCQllbHNlCgkJCQlyZXR1cm4gZGVsX3BhcnRpdGlvbihkZXYsICZwKTsK CQlkZWZhdWx0OgoJCQlyZXR1cm4gLUVJTlZBTDsKCX0KfQoKLyoKICogQ29tbW9uIGlvY3RsJ3Mg Zm9yIGJsb2NrIGRldmljZXMKICovCgppbnQgYmxrX2lvY3RsKGtkZXZfdCBkZXYsIHVuc2lnbmVk IGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQp7CglzdHJ1Y3QgZ2VuZGlzayAqZzsKCXU2NCB1 bGx2YWwgPSAwOwoJaW50IGludHZhbDsKCglpZiAoIWRldikKCQlyZXR1cm4gLUVJTlZBTDsKCglz d2l0Y2ggKGNtZCkgewoJCWNhc2UgQkxLUk9TRVQ6CgkJCWlmICghY2FwYWJsZShDQVBfU1lTX0FE TUlOKSkKCQkJCXJldHVybiAtRUFDQ0VTOwoJCQlpZiAoZ2V0X3VzZXIoaW50dmFsLCAoaW50ICop KGFyZykpKQoJCQkJcmV0dXJuIC1FRkFVTFQ7CgkJCXNldF9kZXZpY2Vfcm8oZGV2LCBpbnR2YWwp OwoJCQlyZXR1cm4gMDsKCQljYXNlIEJMS1JPR0VUOgoJCQlpbnR2YWwgPSAoaXNfcmVhZF9vbmx5 KGRldikgIT0gMCk7CgkJCXJldHVybiBwdXRfdXNlcihpbnR2YWwsIChpbnQgKikoYXJnKSk7CgoJ CWNhc2UgQkxLUkFTRVQ6CgkJCWlmKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQoJCQkJcmV0dXJu IC1FQUNDRVM7CgkJCWlmKGFyZyA+IDB4ZmYpCgkJCQlyZXR1cm4gLUVJTlZBTDsKCQkJcmVhZF9h aGVhZFtNQUpPUihkZXYpXSA9IGFyZzsKCQkJcmV0dXJuIDA7CgkJY2FzZSBCTEtSQUdFVDoKCQkJ aWYgKCFhcmcpCgkJCQlyZXR1cm4gLUVJTlZBTDsKCQkJcmV0dXJuIHB1dF91c2VyKHJlYWRfYWhl YWRbTUFKT1IoZGV2KV0sIChsb25nICopIGFyZyk7CgoJCWNhc2UgQkxLRkxTQlVGOgoJCQlpZigh Y2FwYWJsZShDQVBfU1lTX0FETUlOKSkKCQkJCXJldHVybiAtRUFDQ0VTOwoJCQlmc3luY19kZXYo ZGV2KTsKCQkJaW52YWxpZGF0ZV9idWZmZXJzKGRldik7CgkJCXJldHVybiAwOwoKCQljYXNlIEJM S1NTWkdFVDoKCQkJLyogZ2V0IGJsb2NrIGRldmljZSBzZWN0b3Igc2l6ZSBhcyBuZWVkZWQgZS5n LiBieSBmZGlzayAqLwoJCQlpbnR2YWwgPSBnZXRfaGFyZHNlY3Rfc2l6ZShkZXYpOwoJCQlyZXR1 cm4gcHV0X3VzZXIoaW50dmFsLCAoaW50ICopIGFyZyk7CgoJCWNhc2UgQkxLR0VUU0laRToKCQlj YXNlIEJMS0dFVFNJWkU2NDoKCQkJZyA9IGdldF9nZW5kaXNrKGRldik7CgkJCWlmIChnKQoJCQkJ dWxsdmFsID0gZy0+cGFydFtNSU5PUihkZXYpXS5ucl9zZWN0czsKCgkJCWlmIChjbWQgPT0gQkxL R0VUU0laRSkKCQkJCXJldHVybiBwdXRfdXNlcigodW5zaWduZWQgbG9uZyl1bGx2YWwsICh1bnNp Z25lZCBsb25nICopYXJnKTsKCQkJZWxzZQoJCQkJcmV0dXJuIHB1dF91c2VyKHVsbHZhbCA8PCA5 LCAodTY0ICopYXJnKTsKI2lmIDAKCQljYXNlIEJMS1JSUEFSVDogLyogUmUtcmVhZCBwYXJ0aXRp b24gdGFibGVzICovCgkJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgCgkJCQlyZXR1cm4g LUVBQ0NFUzsKCQkJcmV0dXJuIHJlcmVhZF9wYXJ0aXRpb25zKGRldiwgMSk7CiNlbmRpZgoKCQlj YXNlIEJMS1BHOgoJCQlyZXR1cm4gYmxrcGdfaW9jdGwoZGV2LCAoc3RydWN0IGJsa3BnX2lvY3Rs X2FyZyAqKSBhcmcpOwoJCQkKCQljYXNlIEJMS0VMVkdFVDoKCQkJcmV0dXJuIGJsa2VsdmdldF9p b2N0bCgmYmxrX2dldF9xdWV1ZShkZXYpLT5lbGV2YXRvciwKCQkJCQkgICAgICAgKGJsa2Vsdl9p b2N0bF9hcmdfdCAqKSBhcmcpOwoJCWNhc2UgQkxLRUxWU0VUOgoJCQlyZXR1cm4gYmxrZWx2c2V0 X2lvY3RsKCZibGtfZ2V0X3F1ZXVlKGRldiktPmVsZXZhdG9yLAoJCQkJCSAgICAgICAoYmxrZWx2 X2lvY3RsX2FyZ190ICopIGFyZyk7CgoJCWNhc2UgQkxLQlNaR0VUOgoJCQkvKiBnZXQgdGhlIGxv Z2ljYWwgYmxvY2sgc2l6ZSAoY2YuIEJMS1NTWkdFVCkgKi8KCQkJaW50dmFsID0gQkxPQ0tfU0la RTsKCQkJaWYgKGJsa3NpemVfc2l6ZVtNQUpPUihkZXYpXSkKCQkJCWludHZhbCA9IGJsa3NpemVf c2l6ZVtNQUpPUihkZXYpXVtNSU5PUihkZXYpXTsKCQkJcmV0dXJuIHB1dF91c2VyIChpbnR2YWws IChpbnQgKikgYXJnKTsKCgkJY2FzZSBCTEtCU1pTRVQ6CgkJCS8qIHNldCB0aGUgbG9naWNhbCBi bG9jayBzaXplICovCgkJCWlmICghY2FwYWJsZSAoQ0FQX1NZU19BRE1JTikpCgkJCQlyZXR1cm4g LUVBQ0NFUzsKCQkJaWYgKCFkZXYgfHwgIWFyZykKCQkJCXJldHVybiAtRUlOVkFMOwoJCQlpZiAo Z2V0X3VzZXIgKGludHZhbCwgKGludCAqKSBhcmcpKQoJCQkJcmV0dXJuIC1FRkFVTFQ7CgkJCWlm IChpbnR2YWwgPiBQQUdFX1NJWkUgfHwgaW50dmFsIDwgNTEyIHx8CgkJCSAgICAoaW50dmFsICYg KGludHZhbCAtIDEpKSkKCQkJCXJldHVybiAtRUlOVkFMOwoJCQlpZiAoaXNfbW91bnRlZCAoZGV2 KSB8fCBpc19zd2FwX3BhcnRpdGlvbiAoZGV2KSkKCQkJCXJldHVybiAtRUJVU1k7CgkJCXNldF9i bG9ja3NpemUgKGRldiwgaW50dmFsKTsKCQkJcmV0dXJuIDA7CgoJCWRlZmF1bHQ6CgkJCXJldHVy biAtRUlOVkFMOwoJfQp9CgpFWFBPUlRfU1lNQk9MKGJsa19pb2N0bCk7Cg==