From owner-freebsd-sparc64@FreeBSD.ORG Mon Feb 27 11:07:46 2012 Return-Path: Delivered-To: freebsd-sparc64@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A83B3106566C for ; Mon, 27 Feb 2012 11:07:46 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 963D88FC14 for ; Mon, 27 Feb 2012 11:07:46 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q1RB7kOb090346 for ; Mon, 27 Feb 2012 11:07:46 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q1RB7j5b090344 for freebsd-sparc64@FreeBSD.org; Mon, 27 Feb 2012 11:07:45 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 27 Feb 2012 11:07:45 GMT Message-Id: <201202271107.q1RB7j5b090344@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-sparc64@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-sparc64@FreeBSD.org X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Feb 2012 11:07:46 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o sparc/165025 sparc64 [PATCH] zfsboot support for sparc64 o sparc/164227 sparc64 [boot] Can't boot 9.0-RELEASE/sparc64 on Blade 1500 o sparc/164226 sparc64 [cd] Data corruption on 9.0-RELEASE when reading from o sparc/162513 sparc64 mpt(4), mptutil(8) reports variable, erroneous drive i o sparc/141918 sparc64 [ehci] ehci_interrupt: unrecoverable error, controller s sparc/139134 sparc64 kernel output corruption s sparc/107087 sparc64 [hang] system is hung during boot from CD o sparc/105048 sparc64 [trm] trm(4) panics on sparc64 o sparc/104428 sparc64 [nullfs] nullfs panics on E4500 (but not E420) o sparc/71729 sparc64 printf in kernel thread causes panic on SPARC 10 problems total. From owner-freebsd-sparc64@FreeBSD.ORG Mon Feb 27 14:50:08 2012 Return-Path: Delivered-To: freebsd-sparc64@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A2921065677 for ; Mon, 27 Feb 2012 14:50:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 488968FC0A for ; Mon, 27 Feb 2012 14:50:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q1REo85W002753 for ; Mon, 27 Feb 2012 14:50:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q1REo80o002752; Mon, 27 Feb 2012 14:50:08 GMT (envelope-from gnats) Date: Mon, 27 Feb 2012 14:50:08 GMT Message-Id: <201202271450.q1REo80o002752@freefall.freebsd.org> To: freebsd-sparc64@FreeBSD.org From: Gavin Mu Cc: Subject: Re: sparc64/165025: [PATCH] zfsboot support for sparc64 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gavin Mu List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Feb 2012 14:50:08 -0000 The following reply was made to PR sparc64/165025; it has been noted by GNATS. From: Gavin Mu To: bug-followup@freebsd.org Cc: Kurt Lidl , Marius Strobl Subject: Re: sparc64/165025: [PATCH] zfsboot support for sparc64 Date: Mon, 27 Feb 2012 22:46:22 +0800 --f46d0446316891d03404b9f32c5d Content-Type: text/plain; charset=UTF-8 Here is the updated patch to support zfs boot fully. Now boot from mirror/raidz pool are also supported. zfsboot is the enhancement of boot1. Instead of reading "/boot/loader" from UFS filesystem, it loads the ELF "zfsloader" program from the 3.5MB Boot Block of zpool in current vtoc8 partition (slice). zfsloader tries to probe the zpool in current vtoc8 partition and if it is valid, it records the guid, then search all disks to find all zpools in the vtoc8 partitions with freebsd-zfs tag. zfsloader uses devalias "disk" to find the disks, so devalias must be defined for all your bootable disks by OBP (aka. {ok} mode). then it boots from the zpool with the same guid. If you use the whole disk as zpool, you can allocate all disk space into the first vtoc8 partition (for example, ada0a in FreeBSD) tag with freebsd-zfs to create zpool. It is same with creating zpool on the whole disk (ada0). For reading from multiple disks, some ofw code are changed. The former code does not work when reading from multiple disks and I am not sure if it is possible and how to do this. (I googled but did not find more useful things). So I changed the code to close the current disk before a new disk is opened, and there will be only one disk opened simultaneously. I am not sure if this will slow the disk reading for booting from raidz pool. (It is several minutes slow on my V100 machine to boot from raidz zpool). Steps to use zfs boot: 1. create vtoc8 # gpart create -s vtoc8 ada0 2. add partitions, for example # gpart add -t freebsd-swap -s 4g ada0 # gpart add -t freebsd-zfs ada0 the disk will be: # gpart show => 0 78156480 ada0 VTOC8 (37G) 0 8388480 1 freebsd-swap (4G) 8388480 69768000 2 freebsd-zfs (33G) 3. create zpool # zpool create tank ada0b or if you use mirrored/raidz type: # zpool create tank mirror ada0b ada1b # zpool create tank raidz ada0b ada1b ada2b.... 4. write boot1 # gpart bootcode -p /boot/boot1 -i 1 ada0 5. write zfsloader into ZFS Boot Block, currently there is no dedicate program to do this, so use dd instead. # dd if=./zfsloader of=/dev/ada0b bs=512 oseek=1024 conv=notrunc only one copy of boot1 and zfsloader is needed to boot even if you use mirror/raidz pool. surely you can write copies on each disk then you can boot from another disk when disk failure. 6. install system on the zpool... 7. now the system can be booted with: {1} ok boot disk0:b if you defined devalias {1} ok devalias disk0 disk0 /pci@1c,600000/ide@2/disk@0,0 If you use mirrored or raidz type of zpool, do not forget to define devalias for all used disks. The only flaw of this zfs boot support for sparc64 is the lack of a dedicate program to write zfsloader into ZFS Boot Block. Surely we still can use dd to do this simply. I do not think gpart is suitable to do such thing. Maybe it is reasonable to have a command like: # zpool installboot ./zfsloader tank But such a command will be used only by sparc64 architecture since other architectures does not use ZFS Boot Block. Cheers, Gavin Mu --f46d0446316891d03404b9f32c5d Content-Type: text/plain; charset=US-ASCII; name="zfsboot.v2.diff.txt" Content-Disposition: attachment; filename="zfsboot.v2.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gz5m2kxb0 ZGlmZiAtLWdpdCBhL3N5cy9ib290L2NvbW1vbi9ib290c3RyYXAuaCBiL3N5cy9ib290L2NvbW1v bi9ib290c3RyYXAuaA0KaW5kZXggZDhiNDU1MS4uZmVhNzE5MiAxMDA2NDQNCi0tLSBhL3N5cy9i b290L2NvbW1vbi9ib290c3RyYXAuaA0KKysrIGIvc3lzL2Jvb3QvY29tbW9uL2Jvb3RzdHJhcC5o DQpAQCAtMjUsNiArMjUsOCBAQA0KICAqDQogICogJEZyZWVCU0QkDQogICovDQorI2lmbmRlZiBf Qk9PVFNUUkFQX0hfDQorI2RlZmluZSBfQk9PVFNUUkFQX0hfDQogDQogI2luY2x1ZGUgPHN5cy90 eXBlcy5oPg0KICNpbmNsdWRlIDxzeXMvcXVldWUuaD4NCkBAIC0zMjMsMyArMzI1LDYgQEAgdm9p ZAlkZWxheShpbnQgZGVsYXkpOw0KIHZvaWQJZGV2X2NsZWFudXAodm9pZCk7DQogDQogdGltZV90 CXRpbWUodGltZV90ICp0bG9jKTsNCisNCisjZW5kaWYgLyogIV9CT09UU1RSQVBfSF8gKi8NCisN CmRpZmYgLS1naXQgYS9zeXMvYm9vdC9vZncvbGlib2Z3L2RldmljZW5hbWUuYyBiL3N5cy9ib290 L29mdy9saWJvZncvZGV2aWNlbmFtZS5jDQppbmRleCAzY2FlMjNjLi42NTViODdhIDEwMDY0NA0K LS0tIGEvc3lzL2Jvb3Qvb2Z3L2xpYm9mdy9kZXZpY2VuYW1lLmMNCisrKyBiL3N5cy9ib290L29m dy9saWJvZncvZGV2aWNlbmFtZS5jDQpAQCAtMjgsNiArMjgsNyBAQA0KIF9fRkJTRElEKCIkRnJl ZUJTRCQiKTsNCiANCiAjaW5jbHVkZSA8c3RhbmQuaD4NCisjaW5jbHVkZSAiYm9vdHN0cmFwLmgi DQogI2luY2x1ZGUgImxpYm9mdy5oIg0KIA0KIHN0YXRpYyBpbnQgb2Z3X3BhcnNlZGV2KHN0cnVj dCBvZndfZGV2ZGVzYyAqKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICoqKTsNCkBAIC03NSw2 ICs3Niw3IEBAIG9md19wYXJzZWRldihzdHJ1Y3Qgb2Z3X2RldmRlc2MgKipkZXYsIGNvbnN0IGNo YXIgKmRldnNwZWMsIGNvbnN0IGNoYXIgKipwYXRoKQ0KICAgICBzdHJ1Y3QgZGV2c3cJKmR2Ow0K ICAgICBwaGFuZGxlX3QJCWhhbmRsZTsNCiAgICAgY29uc3QgY2hhcgkJKnA7DQorICAgIGNoYXIJ CSplcDsNCiAgICAgY29uc3QgY2hhcgkJKnM7DQogICAgIGNoYXIJCW5hbWVbMjU2XTsNCiAgICAg Y2hhcgkJdHlwZVs2NF07DQpAQCAtODcsMTAgKzg5LDEyIEBAIG9md19wYXJzZWRldihzdHJ1Y3Qg b2Z3X2RldmRlc2MgKipkZXYsIGNvbnN0IGNoYXIgKmRldnNwZWMsIGNvbnN0IGNoYXIgKipwYXRo KQ0KIAlsZW4gPSBzIC0gZGV2c3BlYzsNCiAJYmNvcHkoZGV2c3BlYywgbmFtZSwgbGVuKTsNCiAJ bmFtZVtsZW5dID0gJ1wwJzsNCi0JaWYgKChoYW5kbGUgPSBPRl9maW5kZGV2aWNlKG5hbWUpKSA9 PSAtMSkNCi0JICAgIGJyZWFrOw0KLQlpZiAoT0ZfZ2V0cHJvcChoYW5kbGUsICJkZXZpY2VfdHlw ZSIsIHR5cGUsIHNpemVvZih0eXBlKSkgPT0gLTEpDQorCWlmICgoaGFuZGxlID0gT0ZfZmluZGRl dmljZShuYW1lKSkgPT0gLTEpIHsNCisJICAgIGJjb3B5KG5hbWUsIHR5cGUsIGxlbik7DQorCSAg ICB0eXBlW2xlbl0gPSAnXDAnOw0KKwl9IGVsc2UgaWYgKE9GX2dldHByb3AoaGFuZGxlLCAiZGV2 aWNlX3R5cGUiLCB0eXBlLCBzaXplb2YodHlwZSkpID09IC0xKSB7DQogCSAgICBjb250aW51ZTsN CisgICAgICAgIH0NCiAJZm9yIChpID0gMDsgKGR2ID0gZGV2c3dbaV0pICE9IE5VTEw7IGkrKykg ew0KIAkgICAgaWYgKHN0cm5jbXAoZHYtPmR2X25hbWUsIHR5cGUsIHN0cmxlbihkdi0+ZHZfbmFt ZSkpID09IDApDQogCQlnb3RvIGZvdW5kOw0KQEAgLTEwOSw2ICsxMTMsMTggQEAgZm91bmQ6DQog ICAgIHN0cmNweShpZGV2LT5kX3BhdGgsIG5hbWUpOw0KICAgICBpZGV2LT5kX2RldiA9IGR2Ow0K ICAgICBpZGV2LT5kX3R5cGUgPSBkdi0+ZHZfdHlwZTsNCisgICAgaWYgKGlkZXYtPmRfdHlwZSA9 PSBERVZUX1pGUykgew0KKwlpZGV2LT5kX3VuaXQgPSAwOw0KKwlwID0gbmFtZSArIHN0cmxlbihk di0+ZHZfbmFtZSk7DQorCWlmICgqcCAmJiAoKnAgIT0gJzonKSkgew0KKwkgICAgaWRldi0+ZF91 bml0ID0gc3RydG9sKHAsICZlcCwgMCk7DQorCSAgICBpZiAoZXAgPT0gcCkgew0KKwkJZnJlZShp ZGV2KTsNCisJCXJldHVybiBFVU5JVDsNCisJICAgIH0NCisJfQ0KKyAgICB9DQorDQogICAgIGlm IChkZXYgPT0gTlVMTCkgew0KIAlmcmVlKGlkZXYpOw0KICAgICB9IGVsc2Ugew0KZGlmZiAtLWdp dCBhL3N5cy9ib290L29mdy9saWJvZncvb2Z3X2Rpc2suYyBiL3N5cy9ib290L29mdy9saWJvZncv b2Z3X2Rpc2suYw0KaW5kZXggYWFhZDE5Ni4uMDY3YmQ2YiAxMDA2NDQNCi0tLSBhL3N5cy9ib290 L29mdy9saWJvZncvb2Z3X2Rpc2suYw0KKysrIGIvc3lzL2Jvb3Qvb2Z3L2xpYm9mdy9vZndfZGlz ay5jDQpAQCAtMzEsNyArMzEsNiBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7DQogICovDQogDQog I2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KLSNpbmNsdWRlIDxzeXMvcXVldWUuaD4NCiANCiAjaW5j bHVkZSA8bmV0aW5ldC9pbi5oPg0KIA0KQEAgLTYxLDE4ICs2MCwxMiBAQCBzdHJ1Y3QgZGV2c3cg b2Z3ZGlzayA9IHsNCiAJb2Z3ZF9wcmludA0KIH07DQogDQotc3RydWN0IG9wZW5lZF9kZXYgew0K LQlpaGFuZGxlX3QJCWhhbmRsZTsNCi0JdV9pbnQJCQljb3VudDsNCi0JU0xJU1RfRU5UUlkob3Bl bmVkX2RldikJbGluazsNCi19Ow0KLQ0KLVNMSVNUX0hFQUQoLCBvcGVuZWRfZGV2KSBvcGVuZWRf ZGV2cyA9IFNMSVNUX0hFQURfSU5JVElBTElaRVIob3BlbmVkX2RldnMpOw0KK3N0YXRpYyBzdHJ1 Y3Qgb2Z3X2RldmRlc2MgKmtkcDsNCiANCiBzdGF0aWMgaW50DQogb2Z3ZF9pbml0KHZvaWQpDQog ew0KLQ0KKwlrZHAgPSBOVUxMOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtODQsMTMgKzc3LDI5 IEBAIG9md2Rfc3RyYXRlZ3kodm9pZCAqZGV2ZGF0YSwgaW50IGZsYWcsIGRhZGRyX3QgZGJsaywg c2l6ZV90IHNpemUsIGNoYXIgKmJ1ZiwNCiAJZGFkZHJfdCBwb3M7DQogCWludCBuOw0KIA0KKwlp ZiAoZHAgIT0ga2RwKSB7DQorCQlpZiAoa2RwICE9IE5VTEwpIHsNCisJCQlPRl9jbG9zZShrZHAt PmRfaGFuZGxlKTsNCisJCQlrZHAtPmRfaGFuZGxlID0gMDsNCisJCQlrZHAgPSBOVUxMOw0KKwkJ fQ0KKwkJaWYgKChkcC0+ZF9oYW5kbGUgPSBPRl9vcGVuKGRwLT5kX3BhdGgpKSA9PSAtMSkgew0K KwkJCXJldHVybiBFTk9FTlQ7DQorCQl9DQorCQlrZHAgPSBkcDsNCisJfQ0KKw0KIAlwb3MgPSBk YmxrICogNTEyOw0KIAlkbyB7DQotCQlpZiAoT0Zfc2VlayhkcC0+ZF9oYW5kbGUsIHBvcykgPCAw KQ0KKwkJaWYgKE9GX3NlZWsoZHAtPmRfaGFuZGxlLCBwb3MpIDwgMCkgew0KKwkJCXByaW50Zigi b3V0IG9md2Rfc3RyYXRlZ3kgRUlPXG4iKTsNCiAJCQlyZXR1cm4gRUlPOw0KKwkJfQ0KIAkJbiA9 IE9GX3JlYWQoZHAtPmRfaGFuZGxlLCBidWYsIHNpemUpOw0KLQkJaWYgKG4gPCAwICYmIG4gIT0g LTIpDQorCQlpZiAobiA8IDAgJiYgbiAhPSAtMikgew0KKwkJCXByaW50Zigib3V0IG9md2Rfc3Ry YXRlZ3kgRUlPIDJcbiIpOw0KIAkJCXJldHVybiBFSU87DQorCQl9DQogCX0gd2hpbGUgKG4gPT0g LTIpOw0KIAkqcnNpemUgPSBzaXplOw0KIAlyZXR1cm4gMDsNCkBAIC05OSw0NyArMTA4LDI2IEBA IG9md2Rfc3RyYXRlZ3kodm9pZCAqZGV2ZGF0YSwgaW50IGZsYWcsIGRhZGRyX3QgZGJsaywgc2l6 ZV90IHNpemUsIGNoYXIgKmJ1ZiwNCiBzdGF0aWMgaW50DQogb2Z3ZF9vcGVuKHN0cnVjdCBvcGVu X2ZpbGUgKmYsIC4uLikNCiB7DQotCWNoYXIgcGF0aFsyNTZdOw0KIAlzdHJ1Y3Qgb2Z3X2RldmRl c2MgKmRwOw0KLQlzdHJ1Y3Qgb3BlbmVkX2RldiAqb2RwOw0KIAl2YV9saXN0IHZsOw0KIA0KIAl2 YV9zdGFydCh2bCwgZik7DQogCWRwID0gdmFfYXJnKHZsLCBzdHJ1Y3Qgb2Z3X2RldmRlc2MgKik7 DQogCXZhX2VuZCh2bCk7DQotCS8qDQotCSAqIFdlJ3JlIG5vdCBndWFyYW50ZWVkIHRvIGJlIGFi bGUgdG8gb3BlbiBhIGRldmljZSBtb3JlIHRoYW4gb25jZQ0KLQkgKiBzaW11bHRhbmVvdXNseSBh bmQgdGhlcmUgaXMgbm8gT0ZXIHN0YW5kYXJkIG1ldGhvZCB0byBkZXRlcm1pbmUNCi0JICogd2hl dGhlciBhIGRldmljZSBpcyBhbHJlYWR5IG9wZW5lZC4gT3BlbmluZyBhIGRldmljZSBtb3JlIHRo YW4NCi0JICogb25jZSBoYXBwZW5zIHRvIHdvcmsgd2l0aCBtb3N0IE9GVyBibG9jayBkZXZpY2Ug ZHJpdmVycyBidXQNCi0JICogdHJpZ2dlcnMgYSB0cmFwIHdpdGggYXQgbGVhc3QgdGhlIGRyaXZl ciBmb3IgdGhlIG9uLWJvYXJkIFNDU0kNCi0JICogY29udHJvbGxlciBpbiBTdW4gVWx0cmEgMS4g VXBwZXIgbGF5ZXJzIGFuZCBNSSBjb2RlIGV4cGVjdCB0bw0KLQkgKiBiZSBhYmxlIHRvIG9wZW4g YSBkZXZpY2UgbW9yZSB0aGFuIG9uY2UgaG93ZXZlci4gQXMgYSB3b3JrYXJvdW5kDQotCSAqIGtl ZXAgdHJhY2sgb2YgdGhlIG9wZW5lZCBkZXZpY2VzIGFuZCByZXVzZSB0aGUgaW5zdGFuY2UgaGFu ZGxlDQotCSAqIHdoZW4gYXNrZWQgdG8gb3BlbiBhbiBhbHJlYWR5IG9wZW5lZCBkZXZpY2UuDQot CSAqLw0KLQlTTElTVF9GT1JFQUNIKG9kcCwgJm9wZW5lZF9kZXZzLCBsaW5rKSB7DQotCQlpZiAo T0ZfaW5zdGFuY2VfdG9fcGF0aChvZHAtPmhhbmRsZSwgcGF0aCwgc2l6ZW9mKHBhdGgpKSA9PSAt MSkNCi0JCQljb250aW51ZTsNCi0JCWlmIChzdHJjbXAocGF0aCwgZHAtPmRfcGF0aCkgPT0gMCkg ew0KLQkJCW9kcC0+Y291bnQrKzsNCi0JCQlkcC0+ZF9oYW5kbGUgPSBvZHAtPmhhbmRsZTsNCi0J CQlyZXR1cm4gMDsNCisNCisJaWYgKGRwICE9IGtkcCkgew0KKwkJaWYgKGtkcCAhPSBOVUxMKSB7 DQorCQkJT0ZfY2xvc2Uoa2RwLT5kX2hhbmRsZSk7DQorCQkJa2RwLT5kX2hhbmRsZSA9IDA7DQor CQkJa2RwID0gTlVMTDsNCiAJCX0NCisJCWlmICgoZHAtPmRfaGFuZGxlID0gT0Zfb3BlbihkcC0+ ZF9wYXRoKSkgPT0gLTEpIHsNCisJCQlwcmludGYoIm9md2Rfb3BlbjogQ291bGQgbm90IG9wZW4g JXNcbiIsIGRwLT5kX3BhdGgpOw0KKwkJCXJldHVybiBFTk9FTlQ7DQorCQl9DQorCQlrZHAgPSBk cDsNCiAJfQ0KLQlvZHAgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBvcGVuZWRfZGV2KSk7DQotCWlm IChvZHAgPT0gTlVMTCkgew0KLQkJcHJpbnRmKCJvZndkX29wZW46IG1hbGxvYyBmYWlsZWRcbiIp Ow0KLQkJcmV0dXJuIEVOT01FTTsNCi0JfQ0KLQlpZiAoKG9kcC0+aGFuZGxlID0gT0Zfb3Blbihk cC0+ZF9wYXRoKSkgPT0gLTEpIHsNCi0JCXByaW50Zigib2Z3ZF9vcGVuOiBDb3VsZCBub3Qgb3Bl biAlc1xuIiwgZHAtPmRfcGF0aCk7DQotCQlmcmVlKG9kcCk7DQotCQlyZXR1cm4gRU5PRU5UOw0K LQl9DQotCW9kcC0+Y291bnQgPSAxOw0KLQlTTElTVF9JTlNFUlRfSEVBRCgmb3BlbmVkX2RldnMs IG9kcCwgbGluayk7DQotCWRwLT5kX2hhbmRsZSA9IG9kcC0+aGFuZGxlOw0KKw0KIAlyZXR1cm4g MDsNCiB9DQogDQpAQCAtMTQ3LDIyICsxMzUsMTUgQEAgc3RhdGljIGludA0KIG9md2RfY2xvc2Uo c3RydWN0IG9wZW5fZmlsZSAqZikNCiB7DQogCXN0cnVjdCBvZndfZGV2ZGVzYyAqZGV2ID0gZi0+ Zl9kZXZkYXRhOw0KLQlzdHJ1Y3Qgb3BlbmVkX2RldiAqb2RwOw0KLQ0KLQlTTElTVF9GT1JFQUNI KG9kcCwgJm9wZW5lZF9kZXZzLCBsaW5rKSB7DQotCQlpZiAob2RwLT5oYW5kbGUgPT0gZGV2LT5k X2hhbmRsZSkgew0KLQkJCW9kcC0+Y291bnQtLTsNCi0JCQlpZiAob2RwLT5jb3VudCA9PSAwKSB7 DQotCQkJCVNMSVNUX1JFTU9WRSgmb3BlbmVkX2RldnMsIG9kcCwgb3BlbmVkX2RldiwNCi0JCQkJ ICAgIGxpbmspOw0KLQkJCSNpZiAhZGVmaW5lZChfX3Bvd2VycGNfXykNCi0JCQkJT0ZfY2xvc2Uo b2RwLT5oYW5kbGUpOw0KLQkJCSNlbmRpZg0KLQkJCQlmcmVlKG9kcCk7DQotCQkJfQ0KLQkJCWJy ZWFrOw0KLQkJfQ0KKw0KKwlpZiAoZGV2ID09IGtkcCkgew0KKyNpZiAhZGVmaW5lZChfX3Bvd2Vy cGNfXykNCisJCU9GX2Nsb3NlKGtkcC0+ZF9oYW5kbGUpOw0KKwkJa2RwLT5kX2hhbmRsZSA9IDA7 DQorI2VuZGlmDQorCQlrZHAgPSBOVUxMOw0KIAl9DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRp ZmYgLS1naXQgYS9zeXMvYm9vdC9zcGFyYzY0L01ha2VmaWxlIGIvc3lzL2Jvb3Qvc3BhcmM2NC9N YWtlZmlsZQ0KaW5kZXggZmRjODdmZC4uMGM0ZGQwYyAxMDA2NDQNCi0tLSBhL3N5cy9ib290L3Nw YXJjNjQvTWFrZWZpbGUNCisrKyBiL3N5cy9ib290L3NwYXJjNjQvTWFrZWZpbGUNCkBAIC0xLDUg KzEsNSBAQA0KICMgJEZyZWVCU0QkDQogDQotU1VCRElSPQlib290MSBsb2FkZXINCitTVUJESVI9 CWJvb3QxIHpmc2Jvb3QgbG9hZGVyIHpmc2xvYWRlcg0KIA0KIC5pbmNsdWRlIDxic2Quc3ViZGly Lm1rPg0KZGlmZiAtLWdpdCBhL3N5cy9ib290L3NwYXJjNjQvYm9vdDEvTWFrZWZpbGUgYi9zeXMv Ym9vdC9zcGFyYzY0L2Jvb3QxL01ha2VmaWxlDQppbmRleCBkZWMzZTA5Li44ZTlhN2I1IDEwMDY0 NA0KLS0tIGEvc3lzL2Jvb3Qvc3BhcmM2NC9ib290MS9NYWtlZmlsZQ0KKysrIGIvc3lzL2Jvb3Qv c3BhcmM2NC9ib290MS9NYWtlZmlsZQ0KQEAgLTgsOSArOCwxNSBAQCBTUkNTPQlfc3RhcnQucyBi b290MS5jDQogDQogQk9PVEJMT0NLQkFTRT0gMHg0MDAwDQogDQorWkZTQk9PVD89CW5vDQogQ0ZM QUdTPQktbWNtb2RlbD1tZWRsb3cgLU9zIC1JJHsuQ1VSRElSfS8uLi8uLi9jb21tb24NCiBMREZM QUdTPS1UdGV4dCAke0JPT1RCTE9DS0JBU0V9IC1XbCwtTg0KIA0KKy5pZiAke1pGU0JPT1R9ID09 ICJ5ZXMiDQorQ0ZMQUdTKz0gICAgICAgIC1EWkZTQk9PVA0KKy5lbmRpZg0KKw0KKw0KICMgQ29u c3RydWN0IGJvb3QxLiBzdW5sYWJlbCBleHBlY3RzIGl0IHRvIGNvbnRhaW4gemVyb2VkLW91dCBz cGFjZSBmb3IgdGhlDQogIyBsYWJlbCwgYW5kIHRvIGJlIG9mIHRoZSBjb3JyZWN0IHNpemUuDQog Ym9vdDE6IGJvb3QxLmFvdXQNCmRpZmYgLS1naXQgYS9zeXMvYm9vdC9zcGFyYzY0L2Jvb3QxL2Jv b3QxLmMgYi9zeXMvYm9vdC9zcGFyYzY0L2Jvb3QxL2Jvb3QxLmMNCmluZGV4IDZiOWZhMzAuLjk1 ZTM2ZTUgMTAwNjQ0DQotLS0gYS9zeXMvYm9vdC9zcGFyYzY0L2Jvb3QxL2Jvb3QxLmMNCisrKyBi L3N5cy9ib290L3NwYXJjNjQvYm9vdDEvYm9vdDEuYw0KQEAgLTI1LDYgKzI1LDcgQEAgX19GQlNE SUQoIiRGcmVlQlNEJCIpOw0KIA0KICNkZWZpbmUgX1BBVEhfTE9BREVSCSIvYm9vdC9sb2FkZXIi DQogI2RlZmluZSBfUEFUSF9LRVJORUwJIi9ib290L2tlcm5lbC9rZXJuZWwiDQorI2RlZmluZSBS RUFEX0JVRl9TSVpFIDgxOTINCiANCiB0eXBlZGVmIGludCBwdXRjX2Z1bmNfdChjaGFyIGMsIHZv aWQgKmFyZyk7DQogdHlwZWRlZiBpbnQzMl90IG9md2hfdDsNCkBAIC00OCw2ICs0OSw5IEBAIGlu dCBtYWluKGludCBhYywgY2hhciAqKmF2KTsNCiANCiBzdGF0aWMgdm9pZCBleGl0KGludCkgX19k ZWFkMjsNCiBzdGF0aWMgdm9pZCBsb2FkKGNvbnN0IGNoYXIgKik7DQorI2lmZGVmIFpGU0JPT1QN CitzdGF0aWMgdm9pZCBsb2FkemZzKHZvaWQpOw0KKyNlbmRpZg0KIHN0YXRpYyBpbnQgZHNrcmVh ZCh2b2lkICosIHVfaW50NjRfdCwgaW50KTsNCiANCiBzdGF0aWMgdm9pZCB1c2FnZSh2b2lkKTsN CkBAIC0zMzUsNiArMzM5LDE3IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpDQogCQl9DQogCX0N CiANCisjaWZkZWYgWkZTQk9PVA0KKwlwcmludGYoIiBcbj4+IEZyZWVCU0Qvc3BhcmM2NCBaRlMg Ym9vdCBibG9ja1xuIg0KKwkiICAgQm9vdCBwYXRoOiAgICVzXG4iDQorCSIgICBCb290IGxvYWRl ciBvbiBaRlMgYm9vdCBibG9ja1xuIiwgYm9vdHBhdGgsIHBhdGgpOw0KKw0KKwlpZiAoKGJvb3Rk ZXYgPSBvZndfb3Blbihib290cGF0aCkpID09IC0xKSB7DQorCQlwcmludGYoImNhbid0IG9wZW4g ZGV2aWNlXG4iKTsNCisJCXJldHVybiAoLTEpOw0KKwl9DQorCWxvYWR6ZnMoKTsNCisjZWxzZQ0K IAlwcmludGYoIiBcbj4+IEZyZWVCU0Qvc3BhcmM2NCBib290IGJsb2NrXG4iDQogCSIgICBCb290 IHBhdGg6ICAgJXNcbiINCiAJIiAgIEJvb3QgbG9hZGVyOiAlc1xuIiwgYm9vdHBhdGgsIHBhdGgp Ow0KQEAgLTM0Myw2ICszNTgsNyBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQ0KIAkJcGFuaWMo Im1vdW50Iik7DQogDQogCWxvYWQocGF0aCk7DQorI2VuZGlmDQogCXJldHVybiAoMSk7DQogfQ0K IA0KQEAgLTM3OSw2ICszOTUsODAgQEAgbW91bnQoY29uc3QgY2hhciAqZGV2aWNlKQ0KIAlyZXR1 cm4gKDApOw0KIH0NCiANCisjaWZkZWYgWkZTQk9PVA0KKyNkZWZpbmUgVkRFVl9CT09UX09GRlNF VCAoMiAqIDI1NiAqIDEwMjQpDQorc3RhdGljIGNoYXIgemJ1ZltSRUFEX0JVRl9TSVpFXTsNCisN CitzdGF0aWMgaW50DQoremJyZWFkKGNoYXIgKmJ1Ziwgb2ZmX3Qgb2ZmLCBzaXplX3QgYnl0ZXMp DQorew0KKwljaGFyICpwOw0KKwl1bnNpZ25lZCBpbnQgbmI7DQorCXVuc2lnbmVkIGludCBsYjsN CisJc2l6ZV90IGxlbjsNCisJb2ZmX3Qgc29mZjsNCisJb2ZmX3QgcG9mZjsNCisNCisJcCA9IGJ1 ZjsNCisJc29mZiA9IFZERVZfQk9PVF9PRkZTRVQgKyBvZmY7DQorCWxiID0gKHNvZmYgKyBieXRl cyArIERFVl9CU0laRSAtIDEpIC8gREVWX0JTSVpFOw0KKwlwb2ZmID0gc29mZjsNCisJd2hpbGUg KHBvZmYgPCBzb2ZmICsgYnl0ZXMpIHsNCisJCW5iID0gbGIgLSBwb2ZmIC8gREVWX0JTSVpFOw0K KwkJaWYgKG5iID4gUkVBRF9CVUZfU0laRSAvIERFVl9CU0laRSkNCisJCQluYiA9IFJFQURfQlVG X1NJWkUgLyBERVZfQlNJWkU7DQorCQlpZiAoZHNrcmVhZCh6YnVmLCBwb2ZmIC8gREVWX0JTSVpF LCBuYikpDQorCQkJYnJlYWs7DQorCQlpZiAoKHBvZmYgLyBERVZfQlNJWkUgKyBuYikgKiBERVZf QlNJWkUgPiBzb2ZmICsgYnl0ZXMpDQorCQkJbGVuID0gc29mZiArIGJ5dGVzIC0gcG9mZjsNCisJ CWVsc2UNCisJCQlsZW4gPSAocG9mZiAvIERFVl9CU0laRSArIG5iKSAqIERFVl9CU0laRSAtIHBv ZmY7DQorCQltZW1jcHkocCwgemJ1ZiArIHBvZmYgJSBERVZfQlNJWkUsIGxlbik7DQorCQlwICs9 IGxlbjsNCisJCXBvZmYgKz0gbGVuOw0KKwl9DQorDQorCXJldHVybiAocG9mZiAtIHNvZmYpOw0K K30NCisNCitzdGF0aWMgdm9pZCBsb2FkemZzKHZvaWQpDQorew0KKwlFbGY2NF9FaGRyIGVoOw0K KwlFbGY2NF9QaGRyIHBoOw0KKwljYWRkcl90IHA7DQorCWlub190IGlubzsNCisJaW50IGk7DQor DQorCWlmICh6YnJlYWQoKGNoYXIgKikmZWgsIDAsIHNpemVvZihlaCkpICE9IHNpemVvZihlaCkp IHsNCisJCXByaW50ZigiQ2FuJ3QgcmVhZCBlbGYgaGVhZGVyXG4iKTsNCisJCXJldHVybjsNCisJ fQ0KKwlpZiAoIUlTX0VMRihlaCkpIHsNCisJCXByaW50ZigiTm90IGFuIEVMRiBmaWxlXG4iKTsN CisJCXJldHVybjsNCisJfQ0KKwlmb3IgKGkgPSAwOyBpIDwgZWguZV9waG51bTsgaSsrKSB7DQor CQlmc19vZmYgPSBlaC5lX3Bob2ZmICsgaSAqIGVoLmVfcGhlbnRzaXplOw0KKwkJaWYgKHpicmVh ZCgoY2hhciAqKSZwaCwgZnNfb2ZmLCBzaXplb2YocGgpKSAhPSBzaXplb2YocGgpKSB7DQorCQkJ cHJpbnRmKCJDYW4ndCByZWFkIHByb2dyYW0gaGVhZGVyICVkXG4iLCBpKTsNCisJCQlyZXR1cm47 DQorCQl9DQorCQlpZiAocGgucF90eXBlICE9IFBUX0xPQUQpDQorCQkJY29udGludWU7DQorCQlm c19vZmYgPSBwaC5wX29mZnNldDsNCisJCXAgPSAoY2FkZHJfdClwaC5wX3ZhZGRyOw0KKwkJaWYg KHpicmVhZChwLCBmc19vZmYsIHBoLnBfZmlsZXN6KSAhPSBwaC5wX2ZpbGVzeikgew0KKwkJCXBy aW50ZigiQ2FuJ3QgcmVhZCBjb250ZW50IG9mIHNlY3Rpb24gJWRcbiIsIGkpOw0KKwkJCXJldHVy bjsNCisJCX0NCisJCWlmIChwaC5wX2ZpbGVzeiAhPSBwaC5wX21lbXN6KQ0KKwkJCWJ6ZXJvKHAg KyBwaC5wX2ZpbGVzeiwgcGgucF9tZW1zeiAtIHBoLnBfZmlsZXN6KTsNCisJfQ0KKwlvZndfY2xv c2UoYm9vdGRldik7DQorCSgqKHZvaWQgKCopKGludCwgaW50LCBpbnQsIGludCwgb2Z3ZnBfdCkp ZWguZV9lbnRyeSkoMCwgMCwgMCwgMCwgb2Z3KTsNCit9DQorI2VuZGlmIC8qIFpGU0JPT1QgKi8N CisNCiBzdGF0aWMgdm9pZA0KIGxvYWQoY29uc3QgY2hhciAqZm5hbWUpDQogew0KZGlmZiAtLWdp dCBhL3N5cy9ib290L3NwYXJjNjQvbG9hZGVyL01ha2VmaWxlIGIvc3lzL2Jvb3Qvc3BhcmM2NC9s b2FkZXIvTWFrZWZpbGUNCmluZGV4IGQzMmZiYWIuLmY0ZjFjMTIgMTAwNjQ0DQotLS0gYS9zeXMv Ym9vdC9zcGFyYzY0L2xvYWRlci9NYWtlZmlsZQ0KKysrIGIvc3lzL2Jvb3Qvc3BhcmM2NC9sb2Fk ZXIvTWFrZWZpbGUNCkBAIC0zLDggKzMsOCBAQA0KIC5pbmNsdWRlIDxic2Qub3duLm1rPg0KIE1L X1NTUD0JCW5vDQogDQotUFJPRz0JCWxvYWRlcg0KLU5FV1ZFUlNXSEFUPQkiYm9vdHN0cmFwIGxv YWRlciIgc3BhcmM2NA0KK1BST0c/PQkJbG9hZGVyDQorTkVXVkVSU1dIQVQ/PQkiYm9vdHN0cmFw IGxvYWRlciIgc3BhcmM2NA0KIElOU1RBTExGTEFHUz0JLWINCiANCiAjIEFyY2hpdGVjdHVyZS1z cGVjaWZpYyBsb2FkZXIgY29kZQ0KQEAgLTEzLDEyICsxMywxNyBAQCBTUkNTPQkJbG9jb3JlLlMg bWFpbi5jIG1ldGFkYXRhLmMgdmVycy5jDQogTE9BREVSX0RJU0tfU1VQUE9SVD89CXllcw0KIExP QURFUl9VRlNfU1VQUE9SVD89CXllcw0KIExPQURFUl9DRDk2NjBfU1VQUE9SVD89CXllcw0KK0xP QURFUl9aRlNfU1VQUE9SVD89CW5vDQogTE9BREVSX05FVF9TVVBQT1JUPz0JeWVzDQogTE9BREVS X05GU19TVVBQT1JUPz0JeWVzDQogTE9BREVSX1RGVFBfU1VQUE9SVD89CXllcw0KIExPQURFUl9H WklQX1NVUFBPUlQ/PQl5ZXMNCiBMT0FERVJfQlpJUDJfU1VQUE9SVD89CW5vDQorTE9BREVSX0RF QlVHPz0JCW5vDQogDQorLmlmICR7TE9BREVSX0RFQlVHfSA9PSAieWVzIg0KK0NGTEFHUys9CS1E TE9BREVSX0RFQlVHDQorLmVuZGlmDQogLmlmICR7TE9BREVSX0RJU0tfU1VQUE9SVH0gPT0gInll cyINCiBDRkxBR1MrPQktRExPQURFUl9ESVNLX1NVUFBPUlQNCiAuZW5kaWYNCkBAIC0yOCw2ICsz MywxMSBAQCBDRkxBR1MrPQktRExPQURFUl9VRlNfU1VQUE9SVA0KIC5pZiAke0xPQURFUl9DRDk2 NjBfU1VQUE9SVH0gPT0gInllcyINCiBDRkxBR1MrPQktRExPQURFUl9DRDk2NjBfU1VQUE9SVA0K IC5lbmRpZg0KKy5pZiAke0xPQURFUl9aRlNfU1VQUE9SVH0gPT0gInllcyINCitDRkxBR1MrPQkt RExPQURFUl9aRlNfU1VQUE9SVA0KK0NGTEFHUys9CS1JJHsuQ1VSRElSfS8uLi8uLi96ZnMNCitD RkxBR1MrPQktSSR7LkNVUkRJUn0vLi4vLi4vLi4vY2RkbC9ib290L3pmcw0KKy5lbmRpZg0KIC5p ZiAke0xPQURFUl9HWklQX1NVUFBPUlR9ID09ICJ5ZXMiDQogQ0ZMQUdTKz0JLURMT0FERVJfR1pJ UF9TVVBQT1JUDQogLmVuZGlmDQpAQCAtNzUsOCArODUsOCBAQCBDRkxBR1MrPQktSSR7LkNVUkRJ Un0vLi4vLi4vLi4vLi4vbGliL2xpYnN0YW5kLw0KIERQQUREPQkJJHtMSUJGSUNMfSAke0xJQk9G V30gJHtMSUJTVEFORH0NCiBMREFERD0JCSR7TElCRklDTH0gJHtMSUJPRld9IC1sc3RhbmQNCiAN Ci12ZXJzLmM6CSR7LkNVUkRJUn0vLi4vLi4vY29tbW9uL25ld3ZlcnMuc2ggJHsuQ1VSRElSfS92 ZXJzaW9uDQotCXNoICR7LkNVUkRJUn0vLi4vLi4vY29tbW9uL25ld3ZlcnMuc2ggJHsuQ1VSRElS fS92ZXJzaW9uICR7TkVXVkVSU1dIQVR9DQordmVycy5jOgkkey5DVVJESVJ9Ly4uLy4uL2NvbW1v bi9uZXd2ZXJzLnNoICR7LkNVUkRJUn0vLi4vbG9hZGVyL3ZlcnNpb24NCisJc2ggJHsuQ1VSRElS fS8uLi8uLi9jb21tb24vbmV3dmVycy5zaCAkey5DVVJESVJ9Ly4uL2xvYWRlci92ZXJzaW9uICR7 TkVXVkVSU1dIQVR9DQogDQogbG9hZGVyLmhlbHA6IGhlbHAuY29tbW9uIGhlbHAuc3BhcmM2NA0K IAljYXQgJHsuQUxMU1JDfSB8IFwNCmRpZmYgLS1naXQgYS9zeXMvYm9vdC9zcGFyYzY0L2xvYWRl ci9tYWluLmMgYi9zeXMvYm9vdC9zcGFyYzY0L2xvYWRlci9tYWluLmMNCmluZGV4IGJlMDgxOWYu LmZmNzYwMjEgMTAwNjQ0DQotLS0gYS9zeXMvYm9vdC9zcGFyYzY0L2xvYWRlci9tYWluLmMNCisr KyBiL3N5cy9ib290L3NwYXJjNjQvbG9hZGVyL21haW4uYw0KQEAgLTE0Myw2ICsxNDMsMTAgQEAg c3RhdGljIHZtX29mZnNldF90IGhlYXB2YTsNCiANCiBzdGF0aWMgcGhhbmRsZV90IHJvb3Q7DQog DQorI2lmIGRlZmluZWQoTE9BREVSX1pGU19TVVBQT1JUKQ0KKyNpbmNsdWRlICJ6ZnMuYyINCitz dGF0aWMgaW50IHNwYXJjX3pmc19kZXZfaW5pdCh2b2lkKTsNCisjZW5kaWYNCiAvKg0KICAqIE1h Y2hpbmUgZGVwZW5kZW50IHN0cnVjdHVyZXMgdGhhdCB0aGUgbWFjaGluZSBpbmRlcGVuZGVudA0K ICAqIGxvYWRlciBwYXJ0IHVzZXMuDQpAQCAtMTU0LDYgKzE1OCw5IEBAIHN0cnVjdCBkZXZzdyAq ZGV2c3dbXSA9IHsNCiAjaWZkZWYgTE9BREVSX05FVF9TVVBQT1JUDQogCSZuZXRkZXYsDQogI2Vu ZGlmDQorI2lmZGVmIExPQURFUl9aRlNfU1VQUE9SVA0KKwkmemZzX2RldiwNCisjZW5kaWYNCiAJ MA0KIH07DQogc3RydWN0IGFyY2hfc3dpdGNoIGFyY2hzdzsNCkBAIC0xNjYsNiArMTczLDExIEBA IHN0cnVjdCBmaWxlX2Zvcm1hdCAqZmlsZV9mb3JtYXRzW10gPSB7DQogCSZzcGFyYzY0X2VsZiwN CiAJMA0KIH07DQorDQorI2lmIGRlZmluZWQoTE9BREVSX1pGU19TVVBQT1JUKQ0KK2V4dGVybiBz dHJ1Y3QgZnNfb3BzIHpmc19mc29wczsNCisjZW5kaWYNCisNCiBzdHJ1Y3QgZnNfb3BzICpmaWxl X3N5c3RlbVtdID0gew0KICNpZmRlZiBMT0FERVJfVUZTX1NVUFBPUlQNCiAJJnVmc19mc29wcywN CkBAIC0xNzMsNiArMTg1LDkgQEAgc3RydWN0IGZzX29wcyAqZmlsZV9zeXN0ZW1bXSA9IHsNCiAj aWZkZWYgTE9BREVSX0NEOTY2MF9TVVBQT1JUDQogCSZjZDk2NjBfZnNvcHMsDQogI2VuZGlmDQor I2lmZGVmIExPQURFUl9aRlNfU1VQUE9SVA0KKwkmemZzX2Zzb3BzLA0KKyNlbmRpZg0KICNpZmRl ZiBMT0FERVJfWklQX1NVUFBPUlQNCiAJJnppcGZzX2Zzb3BzLA0KICNlbmRpZg0KQEAgLTcyMSw2 ICs3MzYsODQgQEAgdGxiX2luaXRfc3VuNHUodm9pZCkNCiAJCXBhbmljKCIlczogY2FuJ3QgYWxs b2NhdGUgVExCIHN0b3JlIiwgX19mdW5jX18pOw0KIH0NCiANCisjaWZkZWYgTE9BREVSX1pGU19T VVBQT1JUDQorI2luY2x1ZGUgPHN5cy92dG9jLmg+DQorc3RhdGljIGludA0KK3NwYXJjX3pmc19k ZXZfaW5pdCh2b2lkKQ0KK3sNCisJY2hhciBkZXZuYW1lWzUxMl07DQorCWludCB1bml0Ow0KKwlp bnQgcGFydDsNCisJaW50IGZkOw0KKwl2ZGV2X3QgKnZkZXY7DQorCXNwYV90ICpzcGE7DQorCXVp bnQ2NF90IGd1aWQ7DQorCXN0cnVjdCB2dG9jOCB2dG9jOw0KKwl6ZnNfaW5pdCgpOw0KKw0KKwln dWlkID0gMDsNCisJLyogZ2V0IHRoZSBndWlkIG9mIHpmcyBwb29sIG9uIGJvb3QgZGV2aWNlICov DQorCWZkID0gb3BlbihnZXRlbnYoImN1cnJkZXYiKSwgT19SRE9OTFkpOw0KKwlpZiAoZmQgIT0g LTEpIHsNCisJCWlmICh2ZGV2X3Byb2JlKHZkZXZfcmVhZCwgKHZvaWQgKikodWludHB0cl90KSBm ZCwgJnNwYSkgPT0gMCkgew0KKwkJCWd1aWQgPSBzcGEtPnNwYV9ndWlkOw0KKwkJfQ0KKwkJY2xv c2UoZmQpOw0KKwl9DQorDQorCS8qIGNsZWFudXAgdGhlIGVudiB0byBsZXQgemZzIHdvcmsgKi8N CisJd2hpbGUgKCh2ZGV2ID0gU1RBSUxRX0ZJUlNUKCZ6ZnNfdmRldnMpKSAhPSBOVUxMKSB7DQor CQlTVEFJTFFfUkVNT1ZFX0hFQUQoJnpmc192ZGV2cywgdl9hbGxsaW5rKTsNCisJCWZyZWUodmRl dik7DQorCX0NCisNCisJd2hpbGUgKChzcGEgPSBTVEFJTFFfRklSU1QoJnpmc19wb29scykpICE9 IE5VTEwpIHsNCisJCVNUQUlMUV9SRU1PVkVfSEVBRCgmemZzX3Bvb2xzLCBzcGFfbGluayk7DQor CQlmcmVlKHNwYSk7DQorCX0NCisNCisJZm9yICh1bml0ID0gMDsgdW5pdCA8IE1BWEJEREVWOyB1 bml0KyspIHsNCisJCS8qIGZpbmQgZnJlZWJzZC16ZnMgc2xpY2VzIGluIHZ0b2MgKi8NCisJCXNw cmludGYoZGV2bmFtZSwgImRpc2slZDoiLCB1bml0KTsNCisJCWZkID0gb3BlbihkZXZuYW1lLCBP X1JET05MWSk7DQorCQlpZiAoZmQgPT0gLTEpDQorCQkJY29udGludWU7DQorCQlsc2VlayhmZCwg MCwgU0VFS19TRVQpOw0KKwkJaWYgKHJlYWQoZmQsICZ2dG9jLCBzaXplb2YodnRvYykpICE9IHNp emVvZih2dG9jKSkgew0KKwkJCWNsb3NlKGZkKTsNCisJCQljb250aW51ZTsNCisJCX0NCisJCWNs b3NlKGZkKTsNCisNCisJCWZvciAocGFydCA9IDA7IHBhcnQgPCA4OyBwYXJ0KyspIHsNCisJCQlp ZiAocGFydCA9PSAyIHx8IHZ0b2MucGFydFtwYXJ0XS50YWcgIT0gVlRPQ19UQUdfRlJFRUJTRF9a RlMpDQorCQkJCWNvbnRpbnVlOw0KKwkJCXNwcmludGYoZGV2bmFtZSwgImRpc2slZDolYyIsIHVu aXQsIHBhcnQgKyAnYScpOw0KKwkJCWZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSk7DQorCQkJ aWYgKGZkID09IC0xKQ0KKwkJCQlicmVhazsNCisNCisJCQlpZiAodmRldl9wcm9iZSh2ZGV2X3Jl YWQsICh2b2lkKikgKHVpbnRwdHJfdCkgZmQsIDApKQ0KKwkJCQljbG9zZShmZCk7DQorCQl9DQor CX0NCisNCisJaWYgKGd1aWQgIT0gMCkgew0KKwkJdW5pdCA9IHpmc19ndWlkX3RvX3VuaXQoZ3Vp ZCk7DQorCQlpZiAodW5pdCA+PSAwKSB7DQorCQkJc3ByaW50ZihkZXZuYW1lLCAiemZzJWQiLCB1 bml0KTsNCisJCQllbnZfc2V0ZW52KCJjdXJyZGV2IiwgRVZfVk9MQVRJTEUsIGRldm5hbWUsDQor CQkJCSAgIG9md19zZXRjdXJyZGV2LCBlbnZfbm91bnNldCk7DQorCQkJZW52X3NldGVudigibG9h ZGRldiIsIEVWX1ZPTEFUSUxFLCBkZXZuYW1lLA0KKwkJCQkgICBlbnZfbm9zZXQsIGVudl9ub3Vu c2V0KTsNCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gKDApOw0KK30NCisNCisjZW5kaWYgLyogTE9B REVSX1pGU19TVVBQT1JUICovDQorDQogaW50DQogbWFpbihpbnQgKCpvcGVuZmlybSkodm9pZCAq KSkNCiB7DQpAQCAtNzU2LDE0ICs4NDksNiBAQCBtYWluKGludCAoKm9wZW5maXJtKSh2b2lkICop KQ0KIAltbXVfb3BzLT50bGJfaW5pdCgpOw0KIA0KIAkvKg0KLQkgKiBJbml0aWFsaXplIGRldmlj ZXMuDQotCSAqLw0KLQlmb3IgKGRwID0gZGV2c3c7ICpkcCAhPSAwOyBkcCsrKSB7DQotCQlpZiAo KCpkcCktPmR2X2luaXQgIT0gMCkNCi0JCQkoKmRwKS0+ZHZfaW5pdCgpOw0KLQl9DQotDQotCS8q DQogCSAqIFNldCB1cCB0aGUgY3VycmVudCBkZXZpY2UuDQogCSAqLw0KIAlPRl9nZXRwcm9wKGNo b3NlbiwgImJvb3RwYXRoIiwgYm9vdHBhdGgsIHNpemVvZihib290cGF0aCkpOw0KQEAgLTc4MCw3 ICs4NjUsOCBAQCBtYWluKGludCAoKm9wZW5maXJtKSh2b2lkICopKQ0KIAkgKiBuZWVkcyB0byBi ZSBhbHRlcmVkLg0KIAkgKi8NCiAJaWYgKGJvb3RwYXRoW3N0cmxlbihib290cGF0aCkgLSAyXSA9 PSAnOicgJiYNCi0JICAgIGJvb3RwYXRoW3N0cmxlbihib290cGF0aCkgLSAxXSA9PSAnZicpIHsN CisJICAgIGJvb3RwYXRoW3N0cmxlbihib290cGF0aCkgLSAxXSA9PSAnZicgJiYNCisJICAgIHN0 cnN0cihib290cGF0aCwgImNkcm9tIikpIHsNCiAJCWJvb3RwYXRoW3N0cmxlbihib290cGF0aCkg LSAxXSA9ICdhJzsNCiAJCXByaW50ZigiQm9vdCBwYXRoIHNldCB0byAlc1xuIiwgYm9vdHBhdGgp Ow0KIAl9DQpAQCAtNzkwLDYgKzg3NiwyMCBAQCBtYWluKGludCAoKm9wZW5maXJtKSh2b2lkICop KQ0KIAllbnZfc2V0ZW52KCJsb2FkZGV2IiwgRVZfVk9MQVRJTEUsIGJvb3RwYXRoLA0KIAkgICAg ZW52X25vc2V0LCBlbnZfbm91bnNldCk7DQogDQorI2lmZGVmIExPQURFUl9aRlNfU1VQUE9SVA0K KwkvKg0KKwkgKiBvdmVyd3JpdGUgdG8gdXNlIG91ciBzcGVjaWZpYyBzcGFyYyB2ZXJzaW9uDQor CSAqLw0KKwl6ZnNfZGV2LmR2X2luaXQgPSBzcGFyY196ZnNfZGV2X2luaXQ7DQorI2VuZGlmDQor CS8qDQorCSAqIEluaXRpYWxpemUgZGV2aWNlcy4NCisJICovDQorCWZvciAoZHAgPSBkZXZzdzsg KmRwICE9IDA7IGRwKyspIHsNCisJCWlmICgoKmRwKS0+ZHZfaW5pdCAhPSAwKQ0KKwkJCSgqZHAp LT5kdl9pbml0KCk7DQorCX0NCisNCiAJcHJpbnRmKCJcbiIpOw0KIAlwcmludGYoIiVzLCBSZXZp c2lvbiAlc1xuIiwgYm9vdHByb2dfbmFtZSwgYm9vdHByb2dfcmV2KTsNCiAJcHJpbnRmKCIoJXMs ICVzKVxuIiwgYm9vdHByb2dfbWFrZXIsIGJvb3Rwcm9nX2RhdGUpOw0KQEAgLTgwMCw2ICs5MDAs MTggQEAgbWFpbihpbnQgKCpvcGVuZmlybSkodm9pZCAqKSkNCiAJcmV0dXJuICgxKTsNCiB9DQog DQorQ09NTUFORF9TRVQoaGVhcCwgImhlYXAiLCAic2hvdyBoZWFwIHVzYWdlIiwgY29tbWFuZF9o ZWFwKTsNCisNCitzdGF0aWMgaW50DQorY29tbWFuZF9oZWFwKGludCBhcmdjLCBjaGFyICphcmd2 W10pDQorew0KKwltYWxsb2NzdGF0cygpOw0KKwlwcmludGYoImhlYXAgYmFzZSBhdCAlcCwgdG9w IGF0ICVwLCB1cHBlciBsaW1pdCBhdCAlcFxuIiwgaGVhcHZhLA0KKwkgICAgICAgc2JyaygwKSwg aGVhcHZhICsgSEVBUFNaKTsNCisJcmV0dXJuKENNRF9PSyk7DQorfQ0KKw0KKw0KIENPTU1BTkRf U0VUKHJlYm9vdCwgInJlYm9vdCIsICJyZWJvb3QgdGhlIHN5c3RlbSIsIGNvbW1hbmRfcmVib290 KTsNCiANCiBzdGF0aWMgaW50DQpkaWZmIC0tZ2l0IGEvc3lzL2Jvb3Qvc3BhcmM2NC96ZnNib290 L01ha2VmaWxlIGIvc3lzL2Jvb3Qvc3BhcmM2NC96ZnNib290L01ha2VmaWxlDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNDVjNDA5ZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv c3lzL2Jvb3Qvc3BhcmM2NC96ZnNib290L01ha2VmaWxlDQpAQCAtMCwwICsxLDkgQEANCisjICRG cmVlQlNEJA0KKw0KKy5QQVRIOiAgJHsuQ1VSRElSfS8uLi9ib290MQ0KKw0KK05FV1ZFUlNXSEFU PSAgICAiWkZTIGVuYWJsZWQgYm9vdHN0cmFwIGxvYWRlciIgc3BhcmM2NA0KK1pGU0JPT1Q9eWVz DQorDQorLmluY2x1ZGUgIiR7LkNVUkRJUn0vLi4vYm9vdDEvTWFrZWZpbGUiDQorDQpkaWZmIC0t Z2l0IGEvc3lzL2Jvb3Qvc3BhcmM2NC96ZnNsb2FkZXIvTWFrZWZpbGUgYi9zeXMvYm9vdC9zcGFy YzY0L3pmc2xvYWRlci9NYWtlZmlsZQ0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAuLjY2ODQzOTUNCi0tLSAvZGV2L251bGwNCisrKyBiL3N5cy9ib290L3NwYXJjNjQvemZzbG9h ZGVyL01ha2VmaWxlDQpAQCAtMCwwICsxLDExIEBADQorIyAkRnJlZUJTRCQNCisNCisuUEFUSDoJ JHsuQ1VSRElSfS8uLi9sb2FkZXINCisNCitQUk9HPQkJemZzbG9hZGVyDQorTkVXVkVSU1dIQVQ9 CSJaRlMgZW5hYmxlZCBib290c3RyYXAgbG9hZGVyIiBzcGFyYzY0DQorTE9BREVSX1pGU19TVVBQ T1JUPXllcw0KK05PX01BTj15ZXMNCisNCisuaW5jbHVkZSAiJHsuQ1VSRElSfS8uLi9sb2FkZXIv TWFrZWZpbGUiDQorDQo= --f46d0446316891d03404b9f32c5d-- From owner-freebsd-sparc64@FreeBSD.ORG Wed Feb 29 23:17:54 2012 Return-Path: Delivered-To: freebsd-sparc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A2C6106566C for ; Wed, 29 Feb 2012 23:17:54 +0000 (UTC) (envelope-from info@targipolitalia.com) Received: from smtplq03.aruba.it (smtplqs-out16.aruba.it [62.149.158.56]) by mx1.freebsd.org (Postfix) with SMTP id 909958FC18 for ; Wed, 29 Feb 2012 23:17:53 +0000 (UTC) Received: (qmail 21691 invoked by uid 89); 29 Feb 2012 22:51:12 -0000 Received: from unknown (HELO smtp7.aruba.it) (62.149.158.227) by smtplq03.aruba.it with SMTP; 29 Feb 2012 22:51:12 -0000 Received: (qmail 546 invoked by uid 89); 29 Feb 2012 22:51:11 -0000 Received: from unknown (HELO DARIUSZTRZASKA1) (info@targipolitalia.com@151.50.30.42) by smtp7.ad.aruba.it with SMTP; 29 Feb 2012 22:51:11 -0000 From: "Dariusz Trzaska" To: "freebsd-sparc" MIME-Version: 1.0 Organization: www.targipolitalia.com Date: Wed, 29 Feb 2012 23:51:00 +0100 X-Antivirus: avast! (VPS 120229-1, 2012-02-29), Outbound message X-Antivirus-Status: Clean X-Spam-Rating: smtp7.ad.aruba.it 1.6.2 0/1000/N X-Spam-Rating: smtplq03.aruba.it 1.6.2 0/1000/N Message-Id: <20120229231754.3A2C6106566C@hub.freebsd.org> Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: =?iso-8859-2?q?Nowa_wiadomo=B6=E6?= X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Feb 2012 23:17:54 -0000 We invite you to visit our newly formed and remodeled website: =20 http://www.targipolitalia.com =20 The world's first international exhibition on-line now active. Free re= gistration gives the possibility of advertising, which can lead to the= development and success of the company. We designed a "VIRTUAL FAIR B= oxes" run functions that operate after registering and logging in, for= all firms and individuals registered on the portal. You can place ads= in all languages, such as: I am looking for customers, suppliers, con= tractors as well as an investor, partner, etc. Similarly, you can brow= se proposals from other companies. We are open for cooperation, as wel= l as suggestions on how to further improve the functioning of site. Greetings and welcome to register a company as well as private individ= uals. =20 Dariusz Trzaska Electronic signature no. 287732/CCK/2011 Mob. +39 3806460196 E-mail: info@targipolitalia.com http://www.targipolitalia.com =20