From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756531AbZEQAKo (ORCPT ); Sat, 16 May 2009 20:10:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753725AbZEQAKd (ORCPT ); Sat, 16 May 2009 20:10:33 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:44177 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751841AbZEQAKc (ORCPT ); Sat, 16 May 2009 20:10:32 -0400 Date: Sat, 16 May 2009 17:09:59 -0700 From: Andrew Morton To: Ferenc Wagner Cc: linux-kernel@vger.kernel.org, openipmi-developer@lists.sourceforge.net, Corey Minyard , dann frazier Subject: Re: modprobe ipmi_si hangs under 2.6.30-rc5 Message-Id: <20090516170959.8057c9e4.akpm@linux-foundation.org> In-Reply-To: <87tz3qnh7o.fsf@tac.ki.iif.hu> References: <87tz3qnh7o.fsf@tac.ki.iif.hu> X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 12 May 2009 23:28:59 +0200 Ferenc Wagner wrote: > Hi, > > On a Dell PowerEdge 2650 2.6.30-rc5 can't load the ipmi_si module. > 2.6.29 has no such problems: > > [ 46.292160] IPMI System Interface driver. > [ 46.300321] ipmi_si: Trying SMBIOS-specified smic state machine at i/o address 0xecf4, slave address 0x20, irq 0 > [ 46.408212] ipmi: Found new BMC (man_id: 0x0002a2, prod_id: 0x0000, dev_id: 0x00) > [ 46.423454] IPMI smic interface initialized > > But under 2.6.30-rc5: > > # modprobe ipmi_si bt_debug=7 smic_debug=7 kcs_debug=7 > > [ 867.851694] IPMI System Interface driver. > [ 867.859771] ipmi_si: Trying SMBIOS-specified smic state machine at i/o address 0xecf4, slave address 0x20, irq 0 > [ 867.880250] start_smic_transaction - 18 01 > [ 867.880263] smic_event - smic->smic_timeout = 2000000, time = 0 > ... > > [ 867.996243] smic_event - smic->smic_timeout = 2000000, time = 0 > [ 867.996250] smic_event - smic->smic_timeout = 2000000, time = 0 > [ 867.996256] smic_event - smic->smic_timeout = 2000000, time = 0 > [...] > > > This goes on through megabytes. The modprobe process didn't terminate > for 10 minutes, and there was some output like this (cleaned from > smic_events all around the place by hand): > > INFO: task modprobe:6414 blocked for more than 120 seconds. > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > modprobe D f6805780 0 6414 4077 > f48dfe68 00000082 00000000 f6805780 > f48dfe48 f90271cf c046acc0 f64f6a0c > 2002132c f6da1300 f6da14b4 c182acc0 > 00000002 f64f6a0c 186f5ef2 000000ca > f48dfe30 c0123c40 00000000 f64f69e0 > f48dfe30 00000282 00000001 c032456c > Call Trace: > [] ? i_ipmi_request+0x8f5/0x916 [ipmi_msghandler] > [] ? check_preempt_wakeup+0x146/0x180 > [] ? try_to_wake_up+0x1f3/0x1fd > [] ? default_spin_lock_flags+0x8/0xe > [] schedule+0x8/0x17 > [] ipmi_register_smi+0x3ca/0xba1 [ipmi_msghandler] > [] ? put_device+0xf/0x11 > [] ? device_add+0x497/0x516 > [] ? autoremove_wake_function+0x0/0x33 > [] try_smi_init+0x58f/0x726 [ipmi_si] > [] init_ipmi_si+0x3e2/0x748 [ipmi_si] > [] do_one_initcall+0x4a/0x115 > [] ? init_ipmi_si+0x0/0x748 [ipmi_si] > [] ? __blocking_notifier_call_chain+0x40/0x4c > [] sys_init_module+0x87/0x18b > [] sysenter_do_call+0x12/0x28 > Well there have only been a handful of changes to ipmi since 2.6.29. Could you try a mini-bisection? Apply revert-1.patch, test Apply revert-2.patch, test Apply revert-3.patch, test Apply revert-4.patch, test Attached. Thanks. --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr Content-Type: application/octet-stream; name="revert-1.patch" Content-Disposition: attachment; filename="revert-1.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCA0 ZGVjMzAyZmY3MWViZjQ4ZjU3ODRhMmQyZmM1ZTM3NDVlNmQ0ZDUyCkF1dGhvcjogZGFubiBmcmF6 aWVyIDxkYW5uZkBocC5jb20+CkRhdGU6ICAgVHVlIEFwciAyMSAxMjoyNDowNSAyMDA5IC0wNzAw CgogICAgaXBtaTogYWRkIG9lbSBtZXNzYWdlIGhhbmRsaW5nCiAgICAKICAgIEVuYWJsZSB1c2Vy c3BhY2UgdG8gcmVjZWl2ZSBtZXNzYWdlcyB0aGF0IGEgQk1DIHRyYW5zbWl0cyB1c2luZyBhbiBP RU0KICAgIG1lZGl1bS4gIFRoaXMgaXMgdXNlZCBieSB0aGUgSFAgaUxPMi4KICAgIAogICAgQmFz ZWQgb24gY29kZSBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGF0cmljayBTY2hvZWxsZXIuCiAgICAK ICAgIFNpZ25lZC1vZmYtYnk6IGRhbm4gZnJhemllciA8ZGFubmZAaHAuY29tPgogICAgU2lnbmVk LW9mZi1ieTogQ29yZXkgTWlueWFyZCA8Y21pbnlhcmRAbXZpc3RhLmNvbT4KICAgIFNpZ25lZC1v ZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+CiAgICBTaWdu ZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ CgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3Jn PgotLS0KCiBkcml2ZXJzL2NoYXIvaXBtaS9pcG1pX21zZ2hhbmRsZXIuYyB8ICAxMzggLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvaXBtaS5oICAgICAgICAgICAgICAg IHwgICAgMiAKIGluY2x1ZGUvbGludXgvaXBtaV9tc2dkZWZzLmggICAgICAgIHwgICAgMiAKIDMg ZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCgpkaWZmIC1w dU4gZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmN+cmV2ZXJ0LTEgZHJpdmVycy9j aGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKLS0tIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9t c2doYW5kbGVyLmN+cmV2ZXJ0LTEKKysrIGEvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5k bGVyLmMKQEAgLTMyODQsMTE0ICszMjg0LDYgQEAgc3RhdGljIGludCBoYW5kbGVfbGFuX2dldF9t c2dfY21kKGlwbWlfcwogCXJldHVybiBydjsKIH0KIAotLyoKLSAqIFRoaXMgcm91dGluZSB3aWxs IGhhbmRsZSAiR2V0IE1lc3NhZ2UiIGNvbW1hbmQgcmVzcG9uc2VzIHdpdGgKLSAqIGNoYW5uZWxz IHRoYXQgdXNlIGFuIE9FTSBNZWRpdW0uIFRoZSBtZXNzYWdlIGZvcm1hdCBiZWxvbmdzIHRvCi0g KiB0aGUgT0VNLiAgU2VlIElQTUkgMi4wIHNwZWNpZmljYXRpb24sIENoYXB0ZXIgNiBhbmQKLSAq IENoYXB0ZXIgMjIsIHNlY3Rpb25zIDIyLjYgYW5kIDIyLjI0IGZvciBtb3JlIGRldGFpbHMuCi0g Ki8KLXN0YXRpYyBpbnQgaGFuZGxlX29lbV9nZXRfbXNnX2NtZChpcG1pX3NtaV90ICAgICAgICAg IGludGYsCi0JCQkJICBzdHJ1Y3QgaXBtaV9zbWlfbXNnICptc2cpCi17Ci0Jc3RydWN0IGNtZF9y Y3ZyICAgICAgICpyY3ZyOwotCWludCAgICAgICAgICAgICAgICAgICBydiA9IDA7Ci0JdW5zaWdu ZWQgY2hhciAgICAgICAgIG5ldGZuOwotCXVuc2lnbmVkIGNoYXIgICAgICAgICBjbWQ7Ci0JdW5z aWduZWQgY2hhciAgICAgICAgIGNoYW47Ci0JaXBtaV91c2VyX3QgICAgICAgICAgIHVzZXIgPSBO VUxMOwotCXN0cnVjdCBpcG1pX3N5c3RlbV9pbnRlcmZhY2VfYWRkciAqc21pX2FkZHI7Ci0Jc3Ry dWN0IGlwbWlfcmVjdl9tc2cgICpyZWN2X21zZzsKLQotCS8qCi0JICogV2UgZXhwZWN0IHRoZSBP RU0gU1cgdG8gcGVyZm9ybSBlcnJvciBjaGVja2luZwotCSAqIHNvIHdlIGp1c3QgZG8gc29tZSBi YXNpYyBzYW5pdHkgY2hlY2tzCi0JICovCi0JaWYgKG1zZy0+cnNwX3NpemUgPCA0KSB7Ci0JCS8q IE1lc3NhZ2Ugbm90IGJpZyBlbm91Z2gsIGp1c3QgaWdub3JlIGl0LiAqLwotCQlpcG1pX2luY19z dGF0KGludGYsIGludmFsaWRfY29tbWFuZHMpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAobXNn LT5yc3BbMl0gIT0gMCkgewotCQkvKiBBbiBlcnJvciBnZXR0aW5nIHRoZSByZXNwb25zZSwganVz dCBpZ25vcmUgaXQuICovCi0JCXJldHVybiAwOwotCX0KLQotCS8qCi0JICogVGhpcyBpcyBhbiBP RU0gTWVzc2FnZSBzbyB0aGUgT0VNIG5lZWRzIHRvIGtub3cgaG93Ci0JICogaGFuZGxlIHRoZSBt ZXNzYWdlLiBXZSBkbyBubyBpbnRlcnByZXRhdGlvbi4KLQkgKi8KLQluZXRmbiA9IG1zZy0+cnNw WzBdID4+IDI7Ci0JY21kID0gbXNnLT5yc3BbMV07Ci0JY2hhbiA9IG1zZy0+cnNwWzNdICYgMHhm OwotCi0JcmN1X3JlYWRfbG9jaygpOwotCXJjdnIgPSBmaW5kX2NtZF9yY3ZyKGludGYsIG5ldGZu LCBjbWQsIGNoYW4pOwotCWlmIChyY3ZyKSB7Ci0JCXVzZXIgPSByY3ZyLT51c2VyOwotCQlrcmVm X2dldCgmdXNlci0+cmVmY291bnQpOwotCX0gZWxzZQotCQl1c2VyID0gTlVMTDsKLQlyY3VfcmVh ZF91bmxvY2soKTsKLQotCWlmICh1c2VyID09IE5VTEwpIHsKLQkJLyogV2UgZGlkbid0IGZpbmQg YSB1c2VyLCBqdXN0IGdpdmUgdXAuICovCi0JCWlwbWlfaW5jX3N0YXQoaW50ZiwgdW5oYW5kbGVk X2NvbW1hbmRzKTsKLQotCQkvKgotCQkgKiBEb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZXNlIG1l c3NhZ2VzLCBqdXN0IGFsbG93Ci0JCSAqIHRoZW0gdG8gYmUgZnJlZWQuCi0JCSAqLwotCi0JCXJ2 ID0gMDsKLQl9IGVsc2UgewotCQkvKiBEZWxpdmVyIHRoZSBtZXNzYWdlIHRvIHRoZSB1c2VyLiAq LwotCQlpcG1pX2luY19zdGF0KGludGYsIGhhbmRsZWRfY29tbWFuZHMpOwotCi0JCXJlY3ZfbXNn ID0gaXBtaV9hbGxvY19yZWN2X21zZygpOwotCQlpZiAoIXJlY3ZfbXNnKSB7Ci0JCQkvKgotCQkJ ICogV2UgY291bGRuJ3QgYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUKLQkJCSAqIG1lc3NhZ2UsIHNv IHJlcXVldWUgaXQgZm9yIGhhbmRsaW5nCi0JCQkgKiBsYXRlci4KLQkJCSAqLwotCQkJcnYgPSAx OwotCQkJa3JlZl9wdXQoJnVzZXItPnJlZmNvdW50LCBmcmVlX3VzZXIpOwotCQl9IGVsc2Ugewot CQkJLyoKLQkJCSAqIE9FTSBNZXNzYWdlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgZGVsaXZlcmVkIHZp YQotCQkJICogdGhlIHN5c3RlbSBpbnRlcmZhY2UgdG8gU01TIHNvZnR3YXJlLiAgV2UgbWlnaHQK LQkJCSAqIG5lZWQgdG8gdmlzaXQgdGhpcyBhZ2FpbiBkZXBlbmRpbmcgb24gT0VNCi0JCQkgKiBy ZXF1aXJlbWVudHMKLQkJCSAqLwotCQkJc21pX2FkZHIgPSAoKHN0cnVjdCBpcG1pX3N5c3RlbV9p bnRlcmZhY2VfYWRkciAqKQotCQkJCSAgICAmKHJlY3ZfbXNnLT5hZGRyKSk7Ci0JCQlzbWlfYWRk ci0+YWRkcl90eXBlID0gSVBNSV9TWVNURU1fSU5URVJGQUNFX0FERFJfVFlQRTsKLQkJCXNtaV9h ZGRyLT5jaGFubmVsID0gSVBNSV9CTUNfQ0hBTk5FTDsKLQkJCXNtaV9hZGRyLT5sdW4gPSBtc2ct PnJzcFswXSAmIDM7Ci0KLQkJCXJlY3ZfbXNnLT51c2VyID0gdXNlcjsKLQkJCXJlY3ZfbXNnLT51 c2VyX21zZ19kYXRhID0gTlVMTDsKLQkJCXJlY3ZfbXNnLT5yZWN2X3R5cGUgPSBJUE1JX09FTV9S RUNWX1RZUEU7Ci0JCQlyZWN2X21zZy0+bXNnLm5ldGZuID0gbXNnLT5yc3BbMF0gPj4gMjsKLQkJ CXJlY3ZfbXNnLT5tc2cuY21kID0gbXNnLT5yc3BbMV07Ci0JCQlyZWN2X21zZy0+bXNnLmRhdGEg PSByZWN2X21zZy0+bXNnX2RhdGE7Ci0KLQkJCS8qCi0JCQkgKiBUaGUgbWVzc2FnZSBzdGFydHMg YXQgYnl0ZSA0IHdoaWNoIGZvbGxvd3MgdGhlCi0JCQkgKiB0aGUgQ2hhbm5lbCBCeXRlIGluIHRo ZSAiR0VUIE1FU1NBR0UiIGNvbW1hbmQKLQkJCSAqLwotCQkJcmVjdl9tc2ctPm1zZy5kYXRhX2xl biA9IG1zZy0+cnNwX3NpemUgLSA0OwotCQkJbWVtY3B5KHJlY3ZfbXNnLT5tc2dfZGF0YSwKLQkJ CSAgICAgICAmKG1zZy0+cnNwWzRdKSwKLQkJCSAgICAgICBtc2ctPnJzcF9zaXplIC0gNCk7Ci0J CQlkZWxpdmVyX3Jlc3BvbnNlKHJlY3ZfbXNnKTsKLQkJfQotCX0KLQotCXJldHVybiBydjsKLX0K LQogc3RhdGljIHZvaWQgY29weV9ldmVudF9pbnRvX3JlY3ZfbXNnKHN0cnVjdCBpcG1pX3JlY3Zf bXNnICpyZWN2X21zZywKIAkJCQkgICAgIHN0cnVjdCBpcG1pX3NtaV9tc2cgICptc2cpCiB7CkBA IC0zNjQ3LDE3ICszNTM5LDYgQEAgc3RhdGljIGludCBoYW5kbGVfbmV3X3JlY3ZfbXNnKGlwbWlf c21pXwogCQkJZ290byBvdXQ7CiAJCX0KIAotCQkvKgotCQkqKiBXZSBuZWVkIHRvIG1ha2Ugc3Vy ZSB0aGUgY2hhbm5lbHMgaGF2ZSBiZWVuIGluaXRpYWxpemVkLgotCQkqKiBUaGUgY2hhbm5lbF9o YW5kbGVyIHJvdXRpbmUgd2lsbCBzZXQgdGhlICJjdXJyX2NoYW5uZWwiCi0JCSoqIGVxdWFsIHRv IG9yIGdyZWF0ZXIgdGhhbiBJUE1JX01BWF9DSEFOTkVMUyB3aGVuIGFsbCB0aGUKLQkJKiogY2hh bm5lbHMgZm9yIHRoaXMgaW50ZXJmYWNlIGhhdmUgYmVlbiBpbml0aWFsaXplZC4KLQkJKi8KLQkJ aWYgKGludGYtPmN1cnJfY2hhbm5lbCA8IElQTUlfTUFYX0NIQU5ORUxTKSB7Ci0JCQlyZXF1ZXVl ID0gMTsgICAgIC8qIEp1c3QgcHV0IHRoZSBtZXNzYWdlIGJhY2sgZm9yIG5vdyAqLwotCQkJZ290 byBvdXQ7Ci0JCX0KLQogCQlzd2l0Y2ggKGludGYtPmNoYW5uZWxzW2NoYW5dLm1lZGl1bSkgewog CQljYXNlIElQTUlfQ0hBTk5FTF9NRURJVU1fSVBNQjoKIAkJCWlmIChtc2ctPnJzcFs0XSAmIDB4 MDQpIHsKQEAgLTM2OTMsMjAgKzM1NzQsMTEgQEAgc3RhdGljIGludCBoYW5kbGVfbmV3X3JlY3Zf bXNnKGlwbWlfc21pXwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKLQkJCS8qIENoZWNrIGZvciBP RU0gQ2hhbm5lbHMuICBDbGllbnRzIGhhZCBiZXR0ZXIKLQkJCSAgIHJlZ2lzdGVyIGZvciB0aGVz ZSBjb21tYW5kcy4gKi8KLQkJCWlmICgoaW50Zi0+Y2hhbm5lbHNbY2hhbl0ubWVkaXVtCi0JCQkg ICAgID49IElQTUlfQ0hBTk5FTF9NRURJVU1fT0VNX01JTikKLQkJCSAgICAmJiAoaW50Zi0+Y2hh bm5lbHNbY2hhbl0ubWVkaXVtCi0JCQkJPD0gSVBNSV9DSEFOTkVMX01FRElVTV9PRU1fTUFYKSkg ewotCQkJCXJlcXVldWUgPSBoYW5kbGVfb2VtX2dldF9tc2dfY21kKGludGYsIG1zZyk7Ci0JCQl9 IGVsc2UgewotCQkJCS8qCi0JCQkJICogV2UgZG9uJ3QgaGFuZGxlIHRoZSBjaGFubmVsIHR5cGUs IHNvIGp1c3QKLQkJCQkgKiBmcmVlIHRoZSBtZXNzYWdlLgotCQkJCSAqLwotCQkJCXJlcXVldWUg PSAwOwotCQkJfQorCQkJLyoKKwkJCSAqIFdlIGRvbid0IGhhbmRsZSB0aGUgY2hhbm5lbCB0eXBl LCBzbyBqdXN0CisJCQkgKiBmcmVlIHRoZSBtZXNzYWdlLgorCQkJICovCisJCQlyZXF1ZXVlID0g MDsKIAkJfQogCiAJfSBlbHNlIGlmICgobXNnLT5yc3BbMF0gPT0gKChJUE1JX05FVEZOX0FQUF9S RVFVRVNUfDEpIDw8IDIpKQpkaWZmIC1wdU4gaW5jbHVkZS9saW51eC9pcG1pLmh+cmV2ZXJ0LTEg aW5jbHVkZS9saW51eC9pcG1pLmgKLS0tIGEvaW5jbHVkZS9saW51eC9pcG1pLmh+cmV2ZXJ0LTEK KysrIGEvaW5jbHVkZS9saW51eC9pcG1pLmgKQEAgLTE5OCw4ICsxOTgsNiBAQCBzdHJ1Y3Qga2Vy bmVsX2lwbWlfbXNnIHsKIAkJCQkJICAgICAgcmVzcG9uc2UuICBXaGVuIHlvdSBzZW5kIGEKIAkJ CQkJICAgICAgcmVzcG9uc2UgbWVzc2FnZSwgdGhpcyB3aWxsCiAJCQkJCSAgICAgIGJlIHJldHVy bmVkLiAqLwotI2RlZmluZSBJUE1JX09FTV9SRUNWX1RZUEUJCTUgLyogVGhlIHJlc3BvbnNlIGZv ciBPRU0gQ2hhbm5lbHMgKi8KLQogLyogTm90ZSB0aGF0IGFzeW5jIGV2ZW50cyBhbmQgcmVjZWl2 ZWQgY29tbWFuZHMgZG8gbm90IGhhdmUgYSBjb21wbGV0aW9uCiAgICBjb2RlIGFzIHRoZSBmaXJz dCBieXRlIG9mIHRoZSBpbmNvbWluZyBkYXRhLCB1bmxpa2UgYSByZXNwb25zZS4gKi8KIApkaWZm IC1wdU4gaW5jbHVkZS9saW51eC9pcG1pX21zZ2RlZnMuaH5yZXZlcnQtMSBpbmNsdWRlL2xpbnV4 L2lwbWlfbXNnZGVmcy5oCi0tLSBhL2luY2x1ZGUvbGludXgvaXBtaV9tc2dkZWZzLmh+cmV2ZXJ0 LTEKKysrIGEvaW5jbHVkZS9saW51eC9pcG1pX21zZ2RlZnMuaApAQCAtMTE1LDcgKzExNSw1IEBA CiAjZGVmaW5lIElQTUlfQ0hBTk5FTF9NRURJVU1fVVNCMQkxMAogI2RlZmluZSBJUE1JX0NIQU5O RUxfTUVESVVNX1VTQjIJMTEKICNkZWZpbmUgSVBNSV9DSEFOTkVMX01FRElVTV9TWVNJTlRGCTEy Ci0jZGVmaW5lIElQTUlfQ0hBTk5FTF9NRURJVU1fT0VNX01JTgkweDYwCi0jZGVmaW5lIElQTUlf Q0hBTk5FTF9NRURJVU1fT0VNX01BWAkweDdmCiAKICNlbmRpZiAvKiBfX0xJTlVYX0lQTUlfTVNH REVGU19IICovCl8K --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr Content-Type: application/octet-stream; name="revert-2.patch" Content-Disposition: attachment; filename="revert-2.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCAy NTE3NmVkNjcwMTIxZTFlMGFhZTVjODE2MTcxM2MzMzJiNzg2NTM4CkF1dGhvcjogQ29yZXkgTWlu eWFyZCA8Y21pbnlhcmRAbXZpc3RhLmNvbT4KRGF0ZTogICBUdWUgQXByIDIxIDEyOjI0OjA0IDIw MDkgLTA3MDAKCiAgICBpcG1pOiBmaXggc3RhdGlzdGljcyBjb3VudGluZyBpc3N1ZXMKICAgIAog ICAgQmVsYSBMdWJraW4gbm90aWNlZCB0aGF0IHRoZSBzdGF0aXN0aWNzIGZvciBzZW5kIElQTUIg YW5kIExBTiBjb21tYW5kcwogICAgaW4gdGhlIElQTUkgZHJpdmVyIGNvdWxkIGJlIGluY3JlbWVu dGVkIGV2ZW4gaWYgYW4gZXJyb3Igb2NjdXJyZWQuICBNb3ZlCiAgICB0aGUgaW5jcmVtZW50cyB0 byB0aGUgcHJvcGVyIHBsYWNlIHRvIGF2b2lkIHRoaXMuCiAgICAKICAgIEFsc28gYWRkIHNvbWUg c3RhdGlzdGljcyBmb3IgcmV0cmFuc21pc3Npb25zIHRoYXQgZmFpbGVkLCBhbmQgc29tZSBsaXR0 bGUKICAgIGhlbHBlciBmdW5jdGlvbnMgdG8gbmVhdGVuIHVwIHRoZSBjb2RlIGEgbGl0dGxlLgog ICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBDb3JleSBNaW55YXJkIDxjbWlueWFyZEBtdmlzdGEuY29t PgogICAgQ2M6IEJlbGEgTHVia2luIDxibHVia2luQHZtd2FyZS5jb20+CiAgICBTaWduZWQtb2Zm LWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgogICAgU2lnbmVk LW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgoK U2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4K LS0tCgogZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMgfCAgIDczICsrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNTEg ZGVsZXRpb25zKC0pCgpkaWZmIC1wdU4gZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVy LmN+cmV2ZXJ0LTIgZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKLS0tIGEvZHJp dmVycy9jaGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmN+cmV2ZXJ0LTIKKysrIGEvZHJpdmVycy9j aGFyL2lwbWkvaXBtaV9tc2doYW5kbGVyLmMKQEAgLTI4NSwxMSArMjg1LDYgQEAgZW51bSBpcG1p X3N0YXRfaW5kZXhlcyB7CiAJLyogRXZlbnRzIHRoYXQgd2VyZSByZWNlaXZlZCB3aXRoIHRoZSBw cm9wZXIgZm9ybWF0LiAqLwogCUlQTUlfU1RBVF9ldmVudHMsCiAKLQkvKiBSZXRyYW5zbWlzc2lv bnMgb24gSVBNQiB0aGF0IGZhaWxlZC4gKi8KLQlJUE1JX1NUQVRfZHJvcHBlZF9yZXhtaXRfaXBt Yl9jb21tYW5kcywKLQotCS8qIFJldHJhbnNtaXNzaW9ucyBvbiBMQU4gdGhhdCBmYWlsZWQuICov Ci0JSVBNSV9TVEFUX2Ryb3BwZWRfcmV4bWl0X2xhbl9jb21tYW5kcywKIAogCS8qIFRoaXMgKm11 c3QqIHJlbWFpbiBsYXN0LCBhZGQgbmV3IHZhbHVlcyBhYm92ZSB0aGlzLiAqLwogCUlQTUlfTlVN X1NUQVRTCkBAIC00NTAsMjAgKzQ0NSw2IEBAIHN0YXRpYyBERUZJTkVfTVVURVgoc21pX3dhdGNo ZXJzX211dGV4KTsKICNkZWZpbmUgaXBtaV9nZXRfc3RhdChpbnRmLCBzdGF0KSBcCiAJKCh1bnNp Z25lZCBpbnQpIGF0b21pY19yZWFkKCYoaW50ZiktPnN0YXRzW0lQTUlfU1RBVF8gIyMgc3RhdF0p KQogCi1zdGF0aWMgaW50IGlzX2xhbl9hZGRyKHN0cnVjdCBpcG1pX2FkZHIgKmFkZHIpCi17Ci0J cmV0dXJuIGFkZHItPmFkZHJfdHlwZSA9PSBJUE1JX0xBTl9BRERSX1RZUEU7Ci19Ci0KLXN0YXRp YyBpbnQgaXNfaXBtYl9hZGRyKHN0cnVjdCBpcG1pX2FkZHIgKmFkZHIpCi17Ci0JcmV0dXJuIGFk ZHItPmFkZHJfdHlwZSA9PSBJUE1JX0lQTUJfQUREUl9UWVBFOwotfQotCi1zdGF0aWMgaW50IGlz X2lwbWJfYmNhc3RfYWRkcihzdHJ1Y3QgaXBtaV9hZGRyICphZGRyKQotewotCXJldHVybiBhZGRy LT5hZGRyX3R5cGUgPT0gSVBNSV9JUE1CX0JST0FEQ0FTVF9BRERSX1RZUEU7Ci19CiAKIHN0YXRp YyB2b2lkIGZyZWVfcmVjdl9tc2dfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpxKQogewpAQCAtNjIw LDcgKzYwMSw4IEBAIGlwbWlfYWRkcl9lcXVhbChzdHJ1Y3QgaXBtaV9hZGRyICphZGRyMSwKIAkJ cmV0dXJuIChzbWlfYWRkcjEtPmx1biA9PSBzbWlfYWRkcjItPmx1bik7CiAJfQogCi0JaWYgKGlz X2lwbWJfYWRkcihhZGRyMSkgfHwgaXNfaXBtYl9iY2FzdF9hZGRyKGFkZHIxKSkgeworCWlmICgo YWRkcjEtPmFkZHJfdHlwZSA9PSBJUE1JX0lQTUJfQUREUl9UWVBFKQorCSAgICB8fCAoYWRkcjEt PmFkZHJfdHlwZSA9PSBJUE1JX0lQTUJfQlJPQURDQVNUX0FERFJfVFlQRSkpIHsKIAkJc3RydWN0 IGlwbWlfaXBtYl9hZGRyICppcG1iX2FkZHIxCiAJCSAgICA9IChzdHJ1Y3QgaXBtaV9pcG1iX2Fk ZHIgKikgYWRkcjE7CiAJCXN0cnVjdCBpcG1pX2lwbWJfYWRkciAqaXBtYl9hZGRyMgpAQCAtNjMw LDcgKzYxMiw3IEBAIGlwbWlfYWRkcl9lcXVhbChzdHJ1Y3QgaXBtaV9hZGRyICphZGRyMSwKIAkJ CSYmIChpcG1iX2FkZHIxLT5sdW4gPT0gaXBtYl9hZGRyMi0+bHVuKSk7CiAJfQogCi0JaWYgKGlz X2xhbl9hZGRyKGFkZHIxKSkgeworCWlmIChhZGRyMS0+YWRkcl90eXBlID09IElQTUlfTEFOX0FE RFJfVFlQRSkgewogCQlzdHJ1Y3QgaXBtaV9sYW5fYWRkciAqbGFuX2FkZHIxCiAJCQk9IChzdHJ1 Y3QgaXBtaV9sYW5fYWRkciAqKSBhZGRyMTsKIAkJc3RydWN0IGlwbWlfbGFuX2FkZHIgKmxhbl9h ZGRyMgpAQCAtNjYyLDEzICs2NDQsMTQgQEAgaW50IGlwbWlfdmFsaWRhdGVfYWRkcihzdHJ1Y3Qg aXBtaV9hZGRyIAogCSAgICB8fCAoYWRkci0+Y2hhbm5lbCA8IDApKQogCQlyZXR1cm4gLUVJTlZB TDsKIAotCWlmIChpc19pcG1iX2FkZHIoYWRkcikgfHwgaXNfaXBtYl9iY2FzdF9hZGRyKGFkZHIp KSB7CisJaWYgKChhZGRyLT5hZGRyX3R5cGUgPT0gSVBNSV9JUE1CX0FERFJfVFlQRSkKKwkgICAg fHwgKGFkZHItPmFkZHJfdHlwZSA9PSBJUE1JX0lQTUJfQlJPQURDQVNUX0FERFJfVFlQRSkpIHsK IAkJaWYgKGxlbiA8IHNpemVvZihzdHJ1Y3QgaXBtaV9pcG1iX2FkZHIpKQogCQkJcmV0dXJuIC1F SU5WQUw7CiAJCXJldHVybiAwOwogCX0KIAotCWlmIChpc19sYW5fYWRkcihhZGRyKSkgeworCWlm IChhZGRyLT5hZGRyX3R5cGUgPT0gSVBNSV9MQU5fQUREUl9UWVBFKSB7CiAJCWlmIChsZW4gPCBz aXplb2Yoc3RydWN0IGlwbWlfbGFuX2FkZHIpKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCXJldHVy biAwOwpAQCAtMTUyMCw3ICsxNTAzLDggQEAgc3RhdGljIGludCBpX2lwbWlfcmVxdWVzdChpcG1p X3VzZXJfdCAgIAogCQkJbWVtY3B5KCYoc21pX21zZy0+ZGF0YVsyXSksIG1zZy0+ZGF0YSwgbXNn LT5kYXRhX2xlbik7CiAJCXNtaV9tc2ctPmRhdGFfc2l6ZSA9IG1zZy0+ZGF0YV9sZW4gKyAyOwog CQlpcG1pX2luY19zdGF0KGludGYsIHNlbnRfbG9jYWxfY29tbWFuZHMpOwotCX0gZWxzZSBpZiAo aXNfaXBtYl9hZGRyKGFkZHIpIHx8IGlzX2lwbWJfYmNhc3RfYWRkcihhZGRyKSkgeworCX0gZWxz ZSBpZiAoKGFkZHItPmFkZHJfdHlwZSA9PSBJUE1JX0lQTUJfQUREUl9UWVBFKQorCQkgICB8fCAo YWRkci0+YWRkcl90eXBlID09IElQTUlfSVBNQl9CUk9BRENBU1RfQUREUl9UWVBFKSkgewogCQlz dHJ1Y3QgaXBtaV9pcG1iX2FkZHIgKmlwbWJfYWRkcjsKIAkJdW5zaWduZWQgY2hhciAgICAgICAg IGlwbWJfc2VxOwogCQlsb25nICAgICAgICAgICAgICAgICAgc2VxaWQ7CkBAIC0xNTk5LDYgKzE1 ODMsOCBAQCBzdGF0aWMgaW50IGlfaXBtaV9yZXF1ZXN0KGlwbWlfdXNlcl90ICAgCiAKIAkJCXNw aW5fbG9ja19pcnFzYXZlKCYoaW50Zi0+c2VxX2xvY2spLCBmbGFncyk7CiAKKwkJCWlwbWlfaW5j X3N0YXQoaW50Ziwgc2VudF9pcG1iX2NvbW1hbmRzKTsKKwogCQkJLyoKIAkJCSAqIENyZWF0ZSBh IHNlcXVlbmNlIG51bWJlciB3aXRoIGEgMSBzZWNvbmQKIAkJCSAqIHRpbWVvdXQgYW5kIDQgcmV0 cmllcy4KQEAgLTE2MjAsOCArMTYwNiw2IEBAIHN0YXRpYyBpbnQgaV9pcG1pX3JlcXVlc3QoaXBt aV91c2VyX3QgICAKIAkJCQlnb3RvIG91dF9lcnI7CiAJCQl9CiAKLQkJCWlwbWlfaW5jX3N0YXQo aW50Ziwgc2VudF9pcG1iX2NvbW1hbmRzKTsKLQogCQkJLyoKIAkJCSAqIFN0b3JlIHRoZSBzZXF1 ZW5jZSBudW1iZXIgaW4gdGhlIG1lc3NhZ2UsCiAJCQkgKiBzbyB0aGF0IHdoZW4gdGhlIHNlbmQg bWVzc2FnZSByZXNwb25zZQpAQCAtMTY1MSw3ICsxNjM1LDcgQEAgc3RhdGljIGludCBpX2lwbWlf cmVxdWVzdChpcG1pX3VzZXJfdCAgIAogCQkJICovCiAJCQlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCYoaW50Zi0+c2VxX2xvY2spLCBmbGFncyk7CiAJCX0KLQl9IGVsc2UgaWYgKGlzX2xhbl9hZGRy KGFkZHIpKSB7CisJfSBlbHNlIGlmIChhZGRyLT5hZGRyX3R5cGUgPT0gSVBNSV9MQU5fQUREUl9U WVBFKSB7CiAJCXN0cnVjdCBpcG1pX2xhbl9hZGRyICAqbGFuX2FkZHI7CiAJCXVuc2lnbmVkIGNo YXIgICAgICAgICBpcG1iX3NlcTsKIAkJbG9uZyAgICAgICAgICAgICAgICAgIHNlcWlkOwpAQCAt MTcxMiw2ICsxNjk2LDggQEAgc3RhdGljIGludCBpX2lwbWlfcmVxdWVzdChpcG1pX3VzZXJfdCAg IAogCiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmKGludGYtPnNlcV9sb2NrKSwgZmxhZ3MpOwogCisJ CQlpcG1pX2luY19zdGF0KGludGYsIHNlbnRfbGFuX2NvbW1hbmRzKTsKKwogCQkJLyoKIAkJCSAq IENyZWF0ZSBhIHNlcXVlbmNlIG51bWJlciB3aXRoIGEgMSBzZWNvbmQKIAkJCSAqIHRpbWVvdXQg YW5kIDQgcmV0cmllcy4KQEAgLTE3MzMsOCArMTcxOSw2IEBAIHN0YXRpYyBpbnQgaV9pcG1pX3Jl cXVlc3QoaXBtaV91c2VyX3QgICAKIAkJCQlnb3RvIG91dF9lcnI7CiAJCQl9CiAKLQkJCWlwbWlf aW5jX3N0YXQoaW50Ziwgc2VudF9sYW5fY29tbWFuZHMpOwotCiAJCQkvKgogCQkJICogU3RvcmUg dGhlIHNlcXVlbmNlIG51bWJlciBpbiB0aGUgbWVzc2FnZSwKIAkJCSAqIHNvIHRoYXQgd2hlbiB0 aGUgc2VuZCBtZXNzYWdlIHJlc3BvbnNlCkBAIC0xOTUzLDEwICsxOTM3LDYgQEAgc3RhdGljIGlu dCBzdGF0X2ZpbGVfcmVhZF9wcm9jKGNoYXIgKnBhZwogCQkgICAgICAgaXBtaV9nZXRfc3RhdChp bnRmLCBpbnZhbGlkX2V2ZW50cykpOwogCW91dCArPSBzcHJpbnRmKG91dCwgImV2ZW50czogICAg ICAgICAgICAgICAgICAgICAgJXVcbiIsCiAJCSAgICAgICBpcG1pX2dldF9zdGF0KGludGYsIGV2 ZW50cykpOwotCW91dCArPSBzcHJpbnRmKG91dCwgImZhaWxlZCByZXhtaXQgTEFOIG1zZ3M6ICAg ICAgJXVcbiIsCi0JCSAgICAgICBpcG1pX2dldF9zdGF0KGludGYsIGRyb3BwZWRfcmV4bWl0X2xh bl9jb21tYW5kcykpOwotCW91dCArPSBzcHJpbnRmKG91dCwgImZhaWxlZCByZXhtaXQgSVBNQiBt c2dzOiAgICAgJXVcbiIsCi0JCSAgICAgICBpcG1pX2dldF9zdGF0KGludGYsIGRyb3BwZWRfcmV4 bWl0X2lwbWJfY29tbWFuZHMpKTsKIAogCXJldHVybiAob3V0IC0gKChjaGFyICopIHBhZ2UpKTsK IH0KQEAgLTM3NTAsNyArMzczMCw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX21zZ190aW1lb3V0KGlw bWlfc21pX3QKIAkJbGlzdF9hZGRfdGFpbCgmbXNnLT5saW5rLCB0aW1lb3V0cyk7CiAJCWlmIChl bnQtPmJyb2FkY2FzdCkKIAkJCWlwbWlfaW5jX3N0YXQoaW50ZiwgdGltZWRfb3V0X2lwbWJfYnJv YWRjYXN0cyk7Ci0JCWVsc2UgaWYgKGlzX2xhbl9hZGRyKCZlbnQtPnJlY3ZfbXNnLT5hZGRyKSkK KwkJZWxzZSBpZiAoZW50LT5yZWN2X21zZy0+YWRkci5hZGRyX3R5cGUgPT0gSVBNSV9MQU5fQURE Ul9UWVBFKQogCQkJaXBtaV9pbmNfc3RhdChpbnRmLCB0aW1lZF9vdXRfbGFuX2NvbW1hbmRzKTsK IAkJZWxzZQogCQkJaXBtaV9pbmNfc3RhdChpbnRmLCB0aW1lZF9vdXRfaXBtYl9jb21tYW5kcyk7 CkBAIC0zNzY0LDE3ICszNzQ0LDE1IEBAIHN0YXRpYyB2b2lkIGNoZWNrX21zZ190aW1lb3V0KGlw bWlfc21pX3QKIAkJICovCiAJCWVudC0+dGltZW91dCA9IE1BWF9NU0dfVElNRU9VVDsKIAkJZW50 LT5yZXRyaWVzX2xlZnQtLTsKKwkJaWYgKGVudC0+cmVjdl9tc2ctPmFkZHIuYWRkcl90eXBlID09 IElQTUlfTEFOX0FERFJfVFlQRSkKKwkJCWlwbWlfaW5jX3N0YXQoaW50ZiwgcmV0cmFuc21pdHRl ZF9sYW5fY29tbWFuZHMpOworCQllbHNlCisJCQlpcG1pX2luY19zdGF0KGludGYsIHJldHJhbnNt aXR0ZWRfaXBtYl9jb21tYW5kcyk7CisKIAkJc21pX21zZyA9IHNtaV9mcm9tX3JlY3ZfbXNnKGlu dGYsIGVudC0+cmVjdl9tc2csIHNsb3QsCiAJCQkJCSAgICBlbnQtPnNlcWlkKTsKLQkJaWYgKCFz bWlfbXNnKSB7Ci0JCQlpZiAoaXNfbGFuX2FkZHIoJmVudC0+cmVjdl9tc2ctPmFkZHIpKQotCQkJ CWlwbWlfaW5jX3N0YXQoaW50ZiwKLQkJCQkJICAgICAgZHJvcHBlZF9yZXhtaXRfbGFuX2NvbW1h bmRzKTsKLQkJCWVsc2UKLQkJCQlpcG1pX2luY19zdGF0KGludGYsCi0JCQkJCSAgICAgIGRyb3Bw ZWRfcmV4bWl0X2lwbWJfY29tbWFuZHMpOworCQlpZiAoIXNtaV9tc2cpCiAJCQlyZXR1cm47Ci0J CX0KIAogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpbnRmLT5zZXFfbG9jaywgKmZsYWdzKTsK IApAQCAtMzc4NiwxNyArMzc2NCwxMCBAQCBzdGF0aWMgdm9pZCBjaGVja19tc2dfdGltZW91dChp cG1pX3NtaV90CiAJCSAqIHJlc2VudC4KIAkJICovCiAJCWhhbmRsZXJzID0gaW50Zi0+aGFuZGxl cnM7Ci0JCWlmIChoYW5kbGVycykgewotCQkJaWYgKGlzX2xhbl9hZGRyKCZlbnQtPnJlY3ZfbXNn LT5hZGRyKSkKLQkJCQlpcG1pX2luY19zdGF0KGludGYsCi0JCQkJCSAgICAgIHJldHJhbnNtaXR0 ZWRfbGFuX2NvbW1hbmRzKTsKLQkJCWVsc2UKLQkJCQlpcG1pX2luY19zdGF0KGludGYsCi0JCQkJ CSAgICAgIHJldHJhbnNtaXR0ZWRfaXBtYl9jb21tYW5kcyk7Ci0KKwkJaWYgKGhhbmRsZXJzKQog CQkJaW50Zi0+aGFuZGxlcnMtPnNlbmRlcihpbnRmLT5zZW5kX2luZm8sCiAJCQkJCSAgICAgICBz bWlfbXNnLCAwKTsKLQkJfSBlbHNlCisJCWVsc2UKIAkJCWlwbWlfZnJlZV9zbWlfbXNnKHNtaV9t c2cpOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZpbnRmLT5zZXFfbG9jaywgKmZsYWdzKTsKXwo= --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr Content-Type: application/octet-stream; name="revert-3.patch" Content-Disposition: attachment; filename="revert-3.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCA0 MDExMmFlNzUwNDc0NTc5OWU3NWVmNDE4MDU3ZjBkMmNiNzQ1MDUwCkF1dGhvcjogQ29yZXkgTWlu eWFyZCA8bWlueWFyZEBhY20ub3JnPgpEYXRlOiAgIFR1ZSBBcHIgMjEgMTI6MjQ6MDMgMjAwOSAt MDcwMAoKICAgIGlwbWk6IHRlc3QgZm9yIGV2ZW50IGJ1ZmZlciBiZWZvcmUgdXNpbmcKICAgIAog ICAgVGhlIElQTUkgZHJpdmVyIHdvdWxkIGF0dGVtcHQgdG8gdXNlIHRoZSBldmVudCBidWZmZXIg ZXZlbiBpZiB0aGF0CiAgICBkaWRuJ3QgZXhpc3Qgb24gdGhlIEJNQy4gIFRoaXMgcGF0Y2ggbW9k aWZpZWQgdGhlIElQTUkgZHJpdmVyIHRvIGNoZWNrCiAgICBmb3IgdGhlIGV2ZW50IGJ1ZmZlcidz IGV4aXN0ZW5jZSBiZWZvcmUgdHJ5aW5nIHRvIHVzZSBpdC4KICAgIAogICAgU2lnbmVkLW9mZi1i eTogQ29yZXkgTWlueWFyZCA8bWlueWFyZEBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6 IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+Ci0tLQoKIGRy aXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfaW50Zi5jIHwgIDE0OCArKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9pcG1pX21zZ2RlZnMuaCAgICAgfCAgICA2IC0KIDIg ZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTI1IGRlbGV0aW9ucygtKQoKZGlmZiAt cHVOIGRyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfaW50Zi5jfnJldmVydC0zIGRyaXZlcnMvY2hh ci9pcG1pL2lwbWlfc2lfaW50Zi5jCi0tLSBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfaW50 Zi5jfnJldmVydC0zCisrKyBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfc2lfaW50Zi5jCkBAIC04 Miw2ICs4MiwxMiBAQAogI2RlZmluZSBTSV9TSE9SVF9USU1FT1VUX1VTRUMgIDI1MCAvKiAuMjVt cyB3aGVuIHRoZSBTTSByZXF1ZXN0IGEKIAkJCQkgICAgICBzaG9ydCB0aW1lb3V0ICovCiAKKy8q IEJpdCBmb3IgQk1DIGdsb2JhbCBlbmFibGVzLiAqLworI2RlZmluZSBJUE1JX0JNQ19SQ1ZfTVNH X0lOVFIgICAgIDB4MDEKKyNkZWZpbmUgSVBNSV9CTUNfRVZUX01TR19JTlRSICAgICAweDAyCisj ZGVmaW5lIElQTUlfQk1DX0VWVF9NU0dfQlVGRiAgICAgMHgwNAorI2RlZmluZSBJUE1JX0JNQ19T WVNfTE9HICAgICAgICAgIDB4MDgKKwogZW51bSBzaV9pbnRmX3N0YXRlIHsKIAlTSV9OT1JNQUws CiAJU0lfR0VUVElOR19GTEFHUywKQEAgLTIxNCw5ICsyMjAsNiBAQCBzdHJ1Y3Qgc21pX2luZm8g ewogCQkJICAgICBPRU0yX0RBVEFfQVZBSUwpCiAJdW5zaWduZWQgY2hhciAgICAgICBtc2dfZmxh Z3M7CiAKLQkvKiBEb2VzIHRoZSBCTUMgaGF2ZSBhbiBldmVudCBidWZmZXI/ICovCi0JY2hhcgkJ ICAgIGhhc19ldmVudF9idWZmZXI7Ci0KIAkvKgogCSAqIElmIHNldCB0byB0cnVlLCB0aGlzIHdp bGwgcmVxdWVzdCBldmVudHMgdGhlIG5leHQgdGltZSB0aGUKIAkgKiBzdGF0ZSBtYWNoaW5lIGlz IGlkbGUuCkBAIC05NjUsOCArOTY4LDcgQEAgc3RhdGljIHZvaWQgcmVxdWVzdF9ldmVudHModm9p ZCAqc2VuZF9pbgogewogCXN0cnVjdCBzbWlfaW5mbyAqc21pX2luZm8gPSBzZW5kX2luZm87CiAK LQlpZiAoYXRvbWljX3JlYWQoJnNtaV9pbmZvLT5zdG9wX29wZXJhdGlvbikgfHwKLQkJCQkhc21p X2luZm8tPmhhc19ldmVudF9idWZmZXIpCisJaWYgKGF0b21pY19yZWFkKCZzbWlfaW5mby0+c3Rv cF9vcGVyYXRpb24pKQogCQlyZXR1cm47CiAKIAlhdG9taWNfc2V0KCZzbWlfaW5mby0+cmVxX2V2 ZW50cywgMSk7CkBAIC0yNDA1LDM4ICsyNDA3LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qgb2ZfcGxhdGZv cm1fZHJpdmVyIGlwbWlfb2YKIH07CiAjZW5kaWYgLyogQ09ORklHX1BQQ19PRiAqLwogCi1zdGF0 aWMgaW50IHdhaXRfZm9yX21zZ19kb25lKHN0cnVjdCBzbWlfaW5mbyAqc21pX2luZm8pCi17Ci0J ZW51bSBzaV9zbV9yZXN1bHQgICAgIHNtaV9yZXN1bHQ7Ci0KLQlzbWlfcmVzdWx0ID0gc21pX2lu Zm8tPmhhbmRsZXJzLT5ldmVudChzbWlfaW5mby0+c2lfc20sIDApOwotCWZvciAoOzspIHsKLQkJ aWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fQ0FMTF9XSVRIX0RFTEFZIHx8Ci0JCSAgICBzbWlfcmVz dWx0ID09IFNJX1NNX0NBTExfV0lUSF9USUNLX0RFTEFZKSB7Ci0JCQlzY2hlZHVsZV90aW1lb3V0 X3VuaW50ZXJydXB0aWJsZSgxKTsKLQkJCXNtaV9yZXN1bHQgPSBzbWlfaW5mby0+aGFuZGxlcnMt PmV2ZW50KAotCQkJCXNtaV9pbmZvLT5zaV9zbSwgMTAwKTsKLQkJfSBlbHNlIGlmIChzbWlfcmVz dWx0ID09IFNJX1NNX0NBTExfV0lUSE9VVF9ERUxBWSkgewotCQkJc21pX3Jlc3VsdCA9IHNtaV9p bmZvLT5oYW5kbGVycy0+ZXZlbnQoCi0JCQkJc21pX2luZm8tPnNpX3NtLCAwKTsKLQkJfSBlbHNl Ci0JCQlicmVhazsKLQl9Ci0JaWYgKHNtaV9yZXN1bHQgPT0gU0lfU01fSE9TRUQpCi0JCS8qCi0J CSAqIFdlIGNvdWxkbid0IGdldCB0aGUgc3RhdGUgbWFjaGluZSB0byBydW4sIHNvIHdoYXRldmVy J3MgYXQKLQkJICogdGhlIHBvcnQgaXMgcHJvYmFibHkgbm90IGFuIElQTUkgU01JIGludGVyZmFj ZS4KLQkJICovCi0JCXJldHVybiAtRU5PREVWOwotCi0JcmV0dXJuIDA7Ci19CiAKIHN0YXRpYyBp bnQgdHJ5X2dldF9kZXZfaWQoc3RydWN0IHNtaV9pbmZvICpzbWlfaW5mbykKIHsKIAl1bnNpZ25l ZCBjaGFyICAgICAgICAgbXNnWzJdOwogCXVuc2lnbmVkIGNoYXIgICAgICAgICAqcmVzcDsKIAl1 bnNpZ25lZCBsb25nICAgICAgICAgcmVzcF9sZW47CisJZW51bSBzaV9zbV9yZXN1bHQgICAgIHNt aV9yZXN1bHQ7CiAJaW50ICAgICAgICAgICAgICAgICAgIHJ2ID0gMDsKIAogCXJlc3AgPSBrbWFs bG9jKElQTUlfTUFYX01TR19MRU5HVEgsIEdGUF9LRVJORUwpOwpAQCAtMjQ1MSw5OCArMjQyOCwz NSBAQCBzdGF0aWMgaW50IHRyeV9nZXRfZGV2X2lkKHN0cnVjdCBzbWlfaW5mCiAJbXNnWzFdID0g SVBNSV9HRVRfREVWSUNFX0lEX0NNRDsKIAlzbWlfaW5mby0+aGFuZGxlcnMtPnN0YXJ0X3RyYW5z YWN0aW9uKHNtaV9pbmZvLT5zaV9zbSwgbXNnLCAyKTsKIAotCXJ2ID0gd2FpdF9mb3JfbXNnX2Rv bmUoc21pX2luZm8pOwotCWlmIChydikKLQkJZ290byBvdXQ7Ci0KLQlyZXNwX2xlbiA9IHNtaV9p bmZvLT5oYW5kbGVycy0+Z2V0X3Jlc3VsdChzbWlfaW5mby0+c2lfc20sCi0JCQkJCQkgIHJlc3As IElQTUlfTUFYX01TR19MRU5HVEgpOwotCi0JLyogQ2hlY2sgYW5kIHJlY29yZCBpbmZvIGZyb20g dGhlIGdldCBkZXZpY2UgaWQsIGluIGNhc2Ugd2UgbmVlZCBpdC4gKi8KLQlydiA9IGlwbWlfZGVt YW5nbGVfZGV2aWNlX2lkKHJlc3AsIHJlc3BfbGVuLCAmc21pX2luZm8tPmRldmljZV9pZCk7Ci0K LSBvdXQ6Ci0Ja2ZyZWUocmVzcCk7Ci0JcmV0dXJuIHJ2OwotfQotCi1zdGF0aWMgaW50IHRyeV9l bmFibGVfZXZlbnRfYnVmZmVyKHN0cnVjdCBzbWlfaW5mbyAqc21pX2luZm8pCi17Ci0JdW5zaWdu ZWQgY2hhciAgICAgICAgIG1zZ1szXTsKLQl1bnNpZ25lZCBjaGFyICAgICAgICAgKnJlc3A7Ci0J dW5zaWduZWQgbG9uZyAgICAgICAgIHJlc3BfbGVuOwotCWludCAgICAgICAgICAgICAgICAgICBy diA9IDA7Ci0KLQlyZXNwID0ga21hbGxvYyhJUE1JX01BWF9NU0dfTEVOR1RILCBHRlBfS0VSTkVM KTsKLQlpZiAoIXJlc3ApCi0JCXJldHVybiAtRU5PTUVNOwotCi0JbXNnWzBdID0gSVBNSV9ORVRG Tl9BUFBfUkVRVUVTVCA8PCAyOwotCW1zZ1sxXSA9IElQTUlfR0VUX0JNQ19HTE9CQUxfRU5BQkxF U19DTUQ7Ci0Jc21pX2luZm8tPmhhbmRsZXJzLT5zdGFydF90cmFuc2FjdGlvbihzbWlfaW5mby0+ c2lfc20sIG1zZywgMik7Ci0KLQlydiA9IHdhaXRfZm9yX21zZ19kb25lKHNtaV9pbmZvKTsKLQlp ZiAocnYpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkgICAgICAgImlwbWlfc2k6IEVycm9y IGdldHRpbmcgcmVzcG9uc2UgZnJvbSBnZXQgZ2xvYmFsLCIKLQkJICAgICAgICIgZW5hYmxlcyBj b21tYW5kLCB0aGUgZXZlbnQgYnVmZmVyIGlzIG5vdCIKLQkJICAgICAgICIgZW5hYmxlZC5cbiIp OwotCQlnb3RvIG91dDsKLQl9Ci0KLQlyZXNwX2xlbiA9IHNtaV9pbmZvLT5oYW5kbGVycy0+Z2V0 X3Jlc3VsdChzbWlfaW5mby0+c2lfc20sCi0JCQkJCQkgIHJlc3AsIElQTUlfTUFYX01TR19MRU5H VEgpOwotCi0JaWYgKHJlc3BfbGVuIDwgNCB8fAotCQkJcmVzcFswXSAhPSAoSVBNSV9ORVRGTl9B UFBfUkVRVUVTVCB8IDEpIDw8IDIgfHwKLQkJCXJlc3BbMV0gIT0gSVBNSV9HRVRfQk1DX0dMT0JB TF9FTkFCTEVTX0NNRCAgIHx8Ci0JCQlyZXNwWzJdICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fV0FS TklORwotCQkgICAgICAgImlwbWlfc2k6IEludmFsaWQgcmV0dXJuIGZyb20gZ2V0IGdsb2JhbCIK LQkJICAgICAgICIgZW5hYmxlcyBjb21tYW5kLCBjYW5ub3QgZW5hYmxlIHRoZSBldmVudCIKLQkJ ICAgICAgICIgYnVmZmVyLlxuIik7Ci0JCXJ2ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7CisJc21p X3Jlc3VsdCA9IHNtaV9pbmZvLT5oYW5kbGVycy0+ZXZlbnQoc21pX2luZm8tPnNpX3NtLCAwKTsK Kwlmb3IgKDs7KSB7CisJCWlmIChzbWlfcmVzdWx0ID09IFNJX1NNX0NBTExfV0lUSF9ERUxBWSB8 fAorCQkgICAgc21pX3Jlc3VsdCA9PSBTSV9TTV9DQUxMX1dJVEhfVElDS19ERUxBWSkgeworCQkJ c2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUoMSk7CisJCQlzbWlfcmVzdWx0ID0gc21p X2luZm8tPmhhbmRsZXJzLT5ldmVudCgKKwkJCQlzbWlfaW5mby0+c2lfc20sIDEwMCk7CisJCX0g ZWxzZSBpZiAoc21pX3Jlc3VsdCA9PSBTSV9TTV9DQUxMX1dJVEhPVVRfREVMQVkpIHsKKwkJCXNt aV9yZXN1bHQgPSBzbWlfaW5mby0+aGFuZGxlcnMtPmV2ZW50KAorCQkJCXNtaV9pbmZvLT5zaV9z bSwgMCk7CisJCX0gZWxzZQorCQkJYnJlYWs7CiAJfQotCi0JaWYgKHJlc3BbM10gJiBJUE1JX0JN Q19FVlRfTVNHX0JVRkYpCi0JCS8qIGJ1ZmZlciBpcyBhbHJlYWR5IGVuYWJsZWQsIG5vdGhpbmcg dG8gZG8uICovCi0JCWdvdG8gb3V0OwotCi0JbXNnWzBdID0gSVBNSV9ORVRGTl9BUFBfUkVRVUVT VCA8PCAyOwotCW1zZ1sxXSA9IElQTUlfU0VUX0JNQ19HTE9CQUxfRU5BQkxFU19DTUQ7Ci0JbXNn WzJdID0gcmVzcFszXSB8IElQTUlfQk1DX0VWVF9NU0dfQlVGRjsKLQlzbWlfaW5mby0+aGFuZGxl cnMtPnN0YXJ0X3RyYW5zYWN0aW9uKHNtaV9pbmZvLT5zaV9zbSwgbXNnLCAzKTsKLQotCXJ2ID0g d2FpdF9mb3JfbXNnX2RvbmUoc21pX2luZm8pOwotCWlmIChydikgewotCQlwcmludGsoS0VSTl9X QVJOSU5HCi0JCSAgICAgICAiaXBtaV9zaTogRXJyb3IgZ2V0dGluZyByZXNwb25zZSBmcm9tIHNl dCBnbG9iYWwsIgotCQkgICAgICAgIiBlbmFibGVzIGNvbW1hbmQsIHRoZSBldmVudCBidWZmZXIg aXMgbm90IgotCQkgICAgICAgIiBlbmFibGVkLlxuIik7CisJaWYgKHNtaV9yZXN1bHQgPT0gU0lf U01fSE9TRUQpIHsKKwkJLyoKKwkJICogV2UgY291bGRuJ3QgZ2V0IHRoZSBzdGF0ZSBtYWNoaW5l IHRvIHJ1biwgc28gd2hhdGV2ZXIncyBhdAorCQkgKiB0aGUgcG9ydCBpcyBwcm9iYWJseSBub3Qg YW4gSVBNSSBTTUkgaW50ZXJmYWNlLgorCQkgKi8KKwkJcnYgPSAtRU5PREVWOwogCQlnb3RvIG91 dDsKIAl9CiAKKwkvKiBPdGhlcndpc2UsIHdlIGdvdCBzb21lIGRhdGEuICovCiAJcmVzcF9sZW4g PSBzbWlfaW5mby0+aGFuZGxlcnMtPmdldF9yZXN1bHQoc21pX2luZm8tPnNpX3NtLAogCQkJCQkJ ICByZXNwLCBJUE1JX01BWF9NU0dfTEVOR1RIKTsKIAotCWlmIChyZXNwX2xlbiA8IDMgfHwKLQkJ CXJlc3BbMF0gIT0gKElQTUlfTkVURk5fQVBQX1JFUVVFU1QgfCAxKSA8PCAyIHx8Ci0JCQlyZXNw WzFdICE9IElQTUlfU0VUX0JNQ19HTE9CQUxfRU5BQkxFU19DTUQpIHsKLQkJcHJpbnRrKEtFUk5f V0FSTklORwotCQkgICAgICAgImlwbWlfc2k6IEludmFsaWQgcmV0dXJuIGZyb20gZ2V0IGdsb2Jh bCwiCi0JCSAgICAgICAiZW5hYmxlcyBjb21tYW5kLCBub3QgZW5hYmxlIHRoZSBldmVudCIKLQkJ ICAgICAgICIgYnVmZmVyLlxuIik7Ci0JCXJ2ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQor CS8qIENoZWNrIGFuZCByZWNvcmQgaW5mbyBmcm9tIHRoZSBnZXQgZGV2aWNlIGlkLCBpbiBjYXNl IHdlIG5lZWQgaXQuICovCisJcnYgPSBpcG1pX2RlbWFuZ2xlX2RldmljZV9pZChyZXNwLCByZXNw X2xlbiwgJnNtaV9pbmZvLT5kZXZpY2VfaWQpOwogCi0JaWYgKHJlc3BbMl0gIT0gMCkKLQkJLyoK LQkJICogQW4gZXJyb3Igd2hlbiBzZXR0aW5nIHRoZSBldmVudCBidWZmZXIgYml0IG1lYW5zCi0J CSAqIHRoYXQgdGhlIGV2ZW50IGJ1ZmZlciBpcyBub3Qgc3VwcG9ydGVkLgotCQkgKi8KLQkJcnYg PSAtRU5PRU5UOwogIG91dDoKIAlrZnJlZShyZXNwKTsKIAlyZXR1cm4gcnY7CkBAIC0yOTMzLDEw ICsyODQ3LDYgQEAgc3RhdGljIGludCB0cnlfc21pX2luaXQoc3RydWN0IHNtaV9pbmZvIAogCW5l d19zbWktPmludGZfbnVtID0gc21pX251bTsKIAlzbWlfbnVtKys7CiAKLQlydiA9IHRyeV9lbmFi bGVfZXZlbnRfYnVmZmVyKG5ld19zbWkpOwotCWlmIChydiA9PSAwKQotCQluZXdfc21pLT5oYXNf ZXZlbnRfYnVmZmVyID0gMTsKLQogCS8qCiAJICogU3RhcnQgY2xlYXJpbmcgdGhlIGZsYWdzIGJl Zm9yZSB3ZSBlbmFibGUgaW50ZXJydXB0cyBvciB0aGUKIAkgKiB0aW1lciB0byBhdm9pZCByYWNp bmcgd2l0aCB0aGUgdGltZXIuCmRpZmYgLXB1TiBpbmNsdWRlL2xpbnV4L2lwbWlfbXNnZGVmcy5o fnJldmVydC0zIGluY2x1ZGUvbGludXgvaXBtaV9tc2dkZWZzLmgKLS0tIGEvaW5jbHVkZS9saW51 eC9pcG1pX21zZ2RlZnMuaH5yZXZlcnQtMworKysgYS9pbmNsdWRlL2xpbnV4L2lwbWlfbXNnZGVm cy5oCkBAIC01OCwxMiArNTgsNiBAQAogI2RlZmluZSBJUE1JX1JFQURfRVZFTlRfTVNHX0JVRkZF Ul9DTUQJMHgzNQogI2RlZmluZSBJUE1JX0dFVF9DSEFOTkVMX0lORk9fQ01ECTB4NDIKIAotLyog Qml0IGZvciBCTUMgZ2xvYmFsIGVuYWJsZXMuICovCi0jZGVmaW5lIElQTUlfQk1DX1JDVl9NU0df SU5UUiAgICAgMHgwMQotI2RlZmluZSBJUE1JX0JNQ19FVlRfTVNHX0lOVFIgICAgIDB4MDIKLSNk ZWZpbmUgSVBNSV9CTUNfRVZUX01TR19CVUZGICAgICAweDA0Ci0jZGVmaW5lIElQTUlfQk1DX1NZ U19MT0cgICAgICAgICAgMHgwOAotCiAjZGVmaW5lIElQTUlfTkVURk5fU1RPUkFHRV9SRVFVRVNU CQkweDBhCiAjZGVmaW5lIElQTUlfTkVURk5fU1RPUkFHRV9SRVNQT05TRQkJMHgwYgogI2RlZmlu ZSBJUE1JX0FERF9TRUxfRU5UUllfQ01ECQkweDQ0Cl8K --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr Content-Type: application/octet-stream; name="revert-4.patch" Content-Disposition: attachment; filename="revert-4.patch" Content-Transfer-Encoding: base64 RnJvbTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KCmNvbW1pdCA4 YjMyYjVkMGRjYTJmNWFiNjMyZThiZWRjZDU3ZmU0YzEwOWMxM2ZlCkF1dGhvcjogQ29yZXkgTWlu eWFyZCA8bWlueWFyZEBhY20ub3JnPgpEYXRlOiAgIFR1ZSBBcHIgMjEgMTI6MjQ6MDIgMjAwOSAt MDcwMAoKICAgIGlwbWk6IGZpeCBwbGF0Zm9ybSByZXR1cm4gY2hlY2sKICAgIAogICAgVGhlIHdy b25nIHJldHVybiB2YWx1ZSBpcyBiZWluZyB0ZXN0ZWQgd2hlbiBhbGxvY2F0aW5nIGEgcGxhdGZv cm0gZGV2aWNlCiAgICBpbiB0aGUgSVBNSSBTSSBjb2RlLiAgQ2hlY2sgdGhlIHJpZ2h0IHZhbHVl LgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBDb3JleSBNaW55YXJkIDxtaW55YXJkQGFjbS5vcmc+ CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24u b3JnPgogICAgU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1m b3VuZGF0aW9uLm9yZz4KLS0tCgogZHJpdmVycy9jaGFyL2lwbWkvaXBtaV9zaV9pbnRmLmMgfCAg ICAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLXB1TiBkcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuY35yZXZlcnQtNCBkcml2ZXJz L2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYwotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3Np X2ludGYuY35yZXZlcnQtNAorKysgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3NpX2ludGYuYwpA QCAtMjg2Myw3ICsyODYzLDcgQEAgc3RhdGljIGludCB0cnlfc21pX2luaXQoc3RydWN0IHNtaV9p bmZvIAogCQkgKi8KIAkJbmV3X3NtaS0+cGRldiA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygiaXBt aV9zaSIsCiAJCQkJCQkgICAgICBuZXdfc21pLT5pbnRmX251bSk7Ci0JCWlmICghbmV3X3NtaS0+ cGRldikgeworCQlpZiAocnYpIHsKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAgICAgICJpcG1p X3NpX2ludGY6IgogCQkJICAgICAgICIgVW5hYmxlIHRvIGFsbG9jYXRlIHBsYXRmb3JtIGRldmlj ZVxuIik7Cl8K --Multipart=_Sat__16_May_2009_17_09_59_-0700_U151rbJClHbL_Wkr--