Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:63570 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756460Ab0FAPVJ (ORCPT ); Tue, 1 Jun 2010 11:21:09 -0400 Received: by wyi11 with SMTP id 11so1069836wyi.19 for ; Tue, 01 Jun 2010 08:21:08 -0700 (PDT) MIME-Version: 1.0 Reply-To: sedat.dilek@gmail.com In-Reply-To: <1275404221.2839.2.camel@maxim-laptop> References: <1275395142.14385.6.camel@maxim-laptop> <1275404221.2839.2.camel@maxim-laptop> Date: Tue, 1 Jun 2010 17:21:07 +0200 Message-ID: Subject: Re: IWL3945 problems in 2.6.35-rc1 From: Sedat Dilek To: Maxim Levitsky Cc: linux-wireless , iwlwifi maling list Content-Type: multipart/mixed; boundary=00163642759dca979e0487f98574 Sender: linux-wireless-owner@vger.kernel.org List-ID: --00163642759dca979e0487f98574 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Maxim, that's a known issue... and there were several mails to LKML and here on the ML (as I see you are very active on both lists :-)). Unfortunately, the patch in [1] didnt go into any (GIT) reposoitory. I know= . I am attaching the original patch and give it a meaningfull name, so people see it on patchwork.kernel.org (linux-wireless). Kind Regards, - Sedat - [1] http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=3D2208 On Tue, Jun 1, 2010 at 4:57 PM, Maxim Levitsky wr= ote: > On Tue, 2010-06-01 at 15:25 +0300, Maxim Levitsky wrote: >> Hi, >> >> in 2.6.35-rc1 the wireless became just unusable. >> >> These are problems that I have: >> >> 1. very frequent oopses.This appears to be mention on the list already, >> but patches I tried don't help. >> >> I currently use this bandaid patch, and I still get some crashes: > > > The crash happens here: > > 0xec3d is in iwl3945_request_scan (/home/maxim/software/kernel/linux-2.6/= drivers/net/wireless/iwlwifi/iwl3945-base.c:1878). > 1873 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0if (chan->band !=3D band) > 1874 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continue; > 1875 > 1876 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0scan_ch->channel =3D chan->hw_value; > 1877 > 1878 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0ch_info =3D iwl_get_channel_info(priv, band, scan_ch->channel); > 1879 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0if (!is_channel_valid(ch_info)) { > 1880 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IWL_DEBUG_SCAN(priv, "Channel %d is INVALID = for this band.\n", > 1881 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 scan_ch->channel); > 1882 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0continue; > > > The backtrace: > > <1>[14212.708840] BUG: unable to handle kernel paging request at 00000002= ffffffb1 > <1>[14212.709870] IP: [] iwl3945_request_scan+0x61d/0xf= 90 [iwl3945] > <4>[14212.710763] PGD 0 > <0>[14212.711636] Oops: 0000 [#1] PREEMPT SMP > <0>[14212.712519] last sysfs file: /sys/devices/pci0000:00/0000:00:01.0/0= 000:01:00.0/hwmon/hwmon1/temp1_input > <4>[14212.713416] CPU 0 > <4>[14212.713432] Modules linked in: tg3 libphy iwl3945 iwlcore mac80211 = cfg80211 ntfs vfat msdos fat lirc_ene0100 lirc_dev af_packet nfsd exportfs = nfs lockd nfs_acl auth_rpcgss usb_storage usb_libusual cpufreq_powersave cp= ufreq_conservative r852 snd_hda_codec_realtek uvcvideo sm_common cpufreq_us= erspace acpi_cpufreq snd_hda_intel videodev mperf nand snd_hda_codec nand_i= ds sdhci_pci iTCO_wdt v4l2_compat_ioctl32 joydev snd_hwdep nand_ecc uhci_hc= d sunrpc iTCO_vendor_support sdhci ehci_hcd psmouse snd_pcm mmc_core mtd us= bcore coretemp ac sg battery evdev serio_raw snd_page_alloc video nouveau t= tm drm_kms_helper drm i2c_algo_bit [last unloaded: cfg80211] > <4>[14212.718797] > <4>[14212.718797] Pid: 4263, comm: iwl3945 Not tainted 2.6.35-rc1 #30 Net= tiling/Aspire 5720 > <4>[14212.718797] RIP: 0010:[] =C2=A0[] iwl3945_request_scan+0x61d/0xf90 [iwl3945] > <4>[14212.718797] RSP: 0018:ffff88006ce91c80 =C2=A0EFLAGS: 00010297 > <4>[14212.718797] RAX: ffff880066e74100 RBX: ffff88001b2c1dc0 RCX: 000000= 02ffffffb1 > <4>[14212.718797] RDX: 0000000000000000 RSI: 00000000ffff8800 RDI: ffff88= 001b2c1dc0 > <4>[14212.718797] RBP: ffff88006ce91d70 R08: 000000000000030e R09: 000000= 00ffffffff > <4>[14212.718797] R10: 0000000000000058 R11: 0000000000000001 R12: 000000= 0000000000 > <4>[14212.718797] R13: ffff88001b295800 R14: 0000000000000000 R15: ffff88= 001b2958f2 > <4>[14212.718797] FS: =C2=A00000000000000000(0000) GS:ffff880002400000(00= 00) knlGS:0000000000000000 > <4>[14212.718797] CS: =C2=A00010 DS: 0000 ES: 0000 CR0: 000000008005003b > <4>[14212.718797] CR2: 00000002ffffffb1 CR3: 000000000155b000 CR4: 000000= 00000006f0 > <4>[14212.718797] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 000000= 0000000000 > <4>[14212.718797] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 000000= 0000000400 > <4>[14212.718797] Process iwl3945 (pid: 4263, threadinfo ffff88006ce90000= , task ffff88006d04a280) > <0>[14212.718797] Stack: > <4>[14212.718797] =C2=A0ffffffffa02c3810 ffff88006d04a2f0 ffff88006ce91cb= 0 ffffffff81036911 > <4>[14212.718797] <0> 0000000000000000 0000000000000001 ffff88006ce91cd0 = ffffffff00000000 > <4>[14212.718797] <0> 0057000000000246 0000005800000021 ffff88006ce91fd8 = 0058ffff813a07bf > <0>[14212.718797] Call Trace: > <4>[14212.718797] =C2=A0[] ? iwl_bg_start_internal_scan= +0x0/0x3d0 [iwlcore] > <4>[14212.718797] =C2=A0[] ? get_parent_ip+0x11/0x50 > <4>[14212.718797] =C2=A0[] ? iwl_bg_start_internal_scan= +0x0/0x3d0 [iwlcore] > <4>[14212.718797] =C2=A0[] iwl_bg_start_internal_scan+0= x31a/0x3d0 [iwlcore] > <4>[14212.718797] =C2=A0[] ? worker_thread+0x1ce/0x390 > <4>[14212.718797] =C2=A0[] worker_thread+0x220/0x390 > <4>[14212.718797] =C2=A0[] ? worker_thread+0x1ce/0x390 > <4>[14212.718797] =C2=A0[] ? autoremove_wake_function+0= x0/0x40 > <4>[14212.718797] =C2=A0[] ? worker_thread+0x0/0x390 > <4>[14212.718797] =C2=A0[] kthread+0xae/0xc0 > <4>[14212.718797] =C2=A0[] kernel_thread_helper+0x4/0x1= 0 > <4>[14212.718797] =C2=A0[] ? kthread+0x0/0xc0 > <4>[14212.718797] =C2=A0[] ? kernel_thread_helper+0x0/0= x10 > <0>[14212.718797] Code: ff ff 41 8d 52 ff 66 89 95 56 ff ff ff eb 14 0f 1= f 80 00 00 00 00 41 ff c4 44 3b 60 0c 0f 83 eb 00 00 00 49 63 d4 48 8b 4c d= 0 38 <44> 3b 31 75 e6 0f b7 41 06 44 89 f6 41 88 47 01 0f b6 d0 48 89 > <1>[14212.718797] RIP =C2=A0[] iwl3945_request_scan+0x6= 1d/0xf90 [iwl3945] > <4>[14212.718797] =C2=A0RSP > <0>[14212.718797] CR2: 00000002ffffffb1 > <4>[14212.760163] ---[ end trace 7075fd19298c88a3 ]--- > <0>[14212.761267] Kernel panic - not syncing: Fatal exception > <4>[14212.762226] Pid: 4263, comm: iwl3945 Tainted: G =C2=A0 =C2=A0 =C2= =A0D =C2=A0 =C2=A0 2.6.35-rc1 #30 > <4>[14212.763193] Call Trace: > <4>[14212.764143] =C2=A0[] panic+0x90/0x10a > <4>[14212.765084] =C2=A0[] oops_end+0xcc/0xe0 > <4>[14212.765095] =C2=A0[] no_context+0xf3/0x260 > <4>[14212.765106] =C2=A0[] ? sched_clock_local+0x25/0x9= 0 > <4>[14212.765116] =C2=A0[] __bad_area_nosemaphore+0x115= /0x1d0 > <4>[14212.765128] =C2=A0[] bad_area_nosemaphore+0xe/0x1= 0 > <4>[14212.765138] =C2=A0[] do_page_fault+0x2e6/0x390 > <4>[14212.765148] =C2=A0[] ? sched_clock_local+0x25/0x9= 0 > <4>[14212.765158] =C2=A0[] ? sched_clock_cpu+0xc0/0x110 > <4>[14212.765169] =C2=A0[] ? native_sched_clock+0x27/0x= 80 > <4>[14212.765179] =C2=A0[] ? sched_clock_local+0x25/0x9= 0 > <4>[14212.765191] =C2=A0[] page_fault+0x1f/0x30 > <4>[14212.765207] =C2=A0[] ? iwl3945_request_scan+0x61d= /0xf90 [iwl3945] > <4>[14212.765232] =C2=A0[] ? iwl_bg_start_internal_scan= +0x0/0x3d0 [iwlcore] > <4>[14212.765246] =C2=A0[] ? get_parent_ip+0x11/0x50 > <4>[14212.765266] =C2=A0[] ? iwl_bg_start_internal_scan= +0x0/0x3d0 [iwlcore] > <4>[14212.765286] =C2=A0[] iwl_bg_start_internal_scan+0= x31a/0x3d0 [iwlcore] > <4>[14212.765299] =C2=A0[] ? worker_thread+0x1ce/0x390 > <4>[14212.765310] =C2=A0[] worker_thread+0x220/0x390 > <4>[14212.765320] =C2=A0[] ? worker_thread+0x1ce/0x390 > <4>[14212.765333] =C2=A0[] ? autoremove_wake_function+0= x0/0x40 > <4>[14212.765344] =C2=A0[] ? worker_thread+0x0/0x390 > <4>[14212.765353] =C2=A0[] kthread+0xae/0xc0 > <4>[14212.765365] =C2=A0[] kernel_thread_helper+0x4/0x1= 0 > <4>[14212.765376] =C2=A0[] ? kthread+0x0/0xc0 > <4>[14212.765386] =C2=A0[] ? kernel_thread_helper+0x0/0= x10 > <3>[14212.765402] [drm:drm_fb_helper_panic] *ERROR* panic occurred, switc= hing back to text console >> >> diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/w= ireless/iwlwifi/iwl3945-base.c >> index 3e5bffb..1aef988 100644 >> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c >> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c >> @@ -1861,6 +1861,11 @@ static int iwl3945_get_channels_for_scan(struct i= wl_priv *priv, >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!sband) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0; >> >> + =C2=A0 =C2=A0 =C2=A0 if(!priv->scan_request) { >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 WARN_ON(1); >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return 0; >> + =C2=A0 =C2=A0 =C2=A0 } >> + >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 active_dwell =3D iwl_get_active_dwell_time(p= riv, band, n_probes); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 passive_dwell =3D iwl_get_passive_dwell_time= (priv, band, vif); >> >> >> 2. mulicast/broadcast is broken. >> this results in DHCP non working on open access point. >> It seems that DHCP does work on my home wireless, but avahi-autoipd does= n't see any neighbours, and this is annoying. >> It can be worked around by doing (sudo ifconfig wlan0 promisc) >> >> > Best regards, > =C2=A0 =C2=A0 =C2=A0 =C2=A0Maxim Levitsky > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless"= in > the body of a message to majordomo@vger.kernel.org > More majordomo info at =C2=A0http://vger.kernel.org/majordomo-info.html > --00163642759dca979e0487f98574 Content-Type: text/x-diff; charset=US-ASCII; name="iwl3945-Fix-internal-scan-races.patch" Content-Disposition: attachment; filename="iwl3945-Fix-internal-scan-races.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9wvi7ef0 ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDM5NDUtYmFzZS5jCmluZGV4IDcxYWVi YmIuLjZlNTMxNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXds Mzk0NS1iYXNlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wzOTQ1LWJh c2UuYwpAQCAtMTc4Myw2ICsxNzgzLDc0IEBAIHN0YXRpYyB2b2lkIGl3bDM5NDVfaXJxX3Rhc2ts ZXQoc3RydWN0IGl3bF9wcml2ICpwcml2KQogI2VuZGlmCiB9CiAKK3N0YXRpYyBpbnQgaXdsMzk0 NV9nZXRfc2luZ2xlX2NoYW5uZWxfZm9yX3NjYW4oc3RydWN0IGl3bF9wcml2ICpwcml2LAorCQkJ CQkgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAorCQkJCQkgICBlbnVtIGllZWU4MDIxMV9i YW5kIGJhbmQsCisJCQkJCSAgIHN0cnVjdCBpd2wzOTQ1X3NjYW5fY2hhbm5lbCAqc2Nhbl9jaCkK K3sKKwljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZDsKKwljb25z dCBzdHJ1Y3QgaXdsX2NoYW5uZWxfaW5mbyAqY2hfaW5mbzsKKwl1MTYgcGFzc2l2ZV9kd2VsbCA9 IDA7CisJdTE2IGFjdGl2ZV9kd2VsbCA9IDA7CisJaW50IGksIGFkZGVkID0gMDsKKwl1MTYgY2hh bm5lbCA9IDA7CisKKwlzYmFuZCA9IGl3bF9nZXRfaHdfbW9kZShwcml2LCBiYW5kKTsKKwlpZiAo IXNiYW5kKSB7CisJCUlXTF9FUlIocHJpdiwgImludmFsaWQgYmFuZFxuIik7CisJCXJldHVybiBh ZGRlZDsKKwl9CisKKwlhY3RpdmVfZHdlbGwgPSBpd2xfZ2V0X2FjdGl2ZV9kd2VsbF90aW1lKHBy aXYsIGJhbmQsIDApOworCXBhc3NpdmVfZHdlbGwgPSBpd2xfZ2V0X3Bhc3NpdmVfZHdlbGxfdGlt ZShwcml2LCBiYW5kLCB2aWYpOworCisJaWYgKHBhc3NpdmVfZHdlbGwgPD0gYWN0aXZlX2R3ZWxs KQorCQlwYXNzaXZlX2R3ZWxsID0gYWN0aXZlX2R3ZWxsICsgMTsKKworCS8qIG9ubHkgc2NhbiBz aW5nbGUgY2hhbm5lbCwgZ29vZCBlbm91Z2ggdG8gcmVzZXQgdGhlIFJGICovCisJLyogcGljayB0 aGUgZmlyc3QgdmFsaWQgbm90IGluLXVzZSBjaGFubmVsICovCisJaWYgKGJhbmQgPT0gSUVFRTgw MjExX0JBTkRfNUdIWikgeworCQlmb3IgKGkgPSAxNDsgaSA8IHByaXYtPmNoYW5uZWxfY291bnQ7 IGkrKykgeworCQkJaWYgKHByaXYtPmNoYW5uZWxfaW5mb1tpXS5jaGFubmVsICE9CisJCQkgICAg bGUxNl90b19jcHUocHJpdi0+c3RhZ2luZ19yeG9uLmNoYW5uZWwpKSB7CisJCQkJY2hhbm5lbCA9 IHByaXYtPmNoYW5uZWxfaW5mb1tpXS5jaGFubmVsOworCQkJCWNoX2luZm8gPSBpd2xfZ2V0X2No YW5uZWxfaW5mbyhwcml2LAorCQkJCQliYW5kLCBjaGFubmVsKTsKKwkJCQlpZiAoaXNfY2hhbm5l bF92YWxpZChjaF9pbmZvKSkKKwkJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9IGVsc2UgeworCQlm b3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykgeworCQkJaWYgKHByaXYtPmNoYW5uZWxfaW5mb1tpXS5j aGFubmVsICE9CisJCQkgICAgbGUxNl90b19jcHUocHJpdi0+c3RhZ2luZ19yeG9uLmNoYW5uZWwp KSB7CisJCQkJCWNoYW5uZWwgPQorCQkJCQkJcHJpdi0+Y2hhbm5lbF9pbmZvW2ldLmNoYW5uZWw7 CisJCQkJCWNoX2luZm8gPSBpd2xfZ2V0X2NoYW5uZWxfaW5mbyhwcml2LAorCQkJCQkJYmFuZCwg Y2hhbm5lbCk7CisJCQkJCWlmIChpc19jaGFubmVsX3ZhbGlkKGNoX2luZm8pKQorCQkJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwlpZiAoY2hhbm5lbCkgeworCQlzY2FuX2NoLT5jaGFubmVs ID0gY3B1X3RvX2xlMTYoY2hhbm5lbCk7CisJCXNjYW5fY2gtPnR5cGUgPSBTQ0FOX0NIQU5ORUxf VFlQRV9QQVNTSVZFOworCQlzY2FuX2NoLT5hY3RpdmVfZHdlbGwgPSBjcHVfdG9fbGUxNihhY3Rp dmVfZHdlbGwpOworCQlzY2FuX2NoLT5wYXNzaXZlX2R3ZWxsID0gY3B1X3RvX2xlMTYocGFzc2l2 ZV9kd2VsbCk7CisJCS8qIFNldCB0eHBvd2VyIGxldmVscyB0byBkZWZhdWx0cyAqLworCQlzY2Fu X2NoLT50cGMuZHNwX2F0dGVuID0gMTEwOworCQlpZiAoYmFuZCA9PSBJRUVFODAyMTFfQkFORF81 R0haKQorCQkJc2Nhbl9jaC0+dHBjLnR4X2dhaW4gPSAoKDEgPDwgNSkgfCAoMyA8PCAzKSkgfCAz OworCQllbHNlCisJCQlzY2FuX2NoLT50cGMudHhfZ2FpbiA9ICgoMSA8PCA1KSB8ICg1IDw8IDMp KTsKKwkJYWRkZWQrKzsKKwl9IGVsc2UKKwkJSVdMX0VSUihwcml2LCAibm8gdmFsaWQgY2hhbm5l bCBmb3VuZFxuIik7CisJcmV0dXJuIGFkZGVkOworfQorCiBzdGF0aWMgaW50IGl3bDM5NDVfZ2V0 X2NoYW5uZWxzX2Zvcl9zY2FuKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwKIAkJCQkJIGVudW0gaWVl ZTgwMjExX2JhbmQgYmFuZCwKIAkJCQkgICAgIHU4IGlzX2FjdGl2ZSwgdTggbl9wcm9iZXMsCkBA IC0yOTMzLDEwICszMDAxLDIzIEBAIHZvaWQgaXdsMzk0NV9yZXF1ZXN0X3NjYW4oc3RydWN0IGl3 bF9wcml2ICpwcml2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKQogCS8qIHNlbGVjdCBSeCBh bnRlbm5hcyAqLwogCXNjYW4tPmZsYWdzIHw9IGl3bDM5NDVfZ2V0X2FudGVubmFfZmxhZ3MocHJp dik7CiAKLQlzY2FuLT5jaGFubmVsX2NvdW50ID0KKwlpZiAocHJpdi0+aXNfaW50ZXJuYWxfc2hv cnRfc2NhbikgeworCQlzY2FuLT5jaGFubmVsX2NvdW50ID0KKwkJCWl3bDM5NDVfZ2V0X3Npbmds ZV9jaGFubmVsX2Zvcl9zY2FuKHByaXYsIHZpZiwgYmFuZCwKKwkJCQkodm9pZCAqKSZzY2FuLT5k YXRhW2xlMTZfdG9fY3B1KAorCQkJCXNjYW4tPnR4X2NtZC5sZW4pXSk7CisJfSBlbHNlIHsKKwkJ c2Nhbi0+Y2hhbm5lbF9jb3VudCA9CisJCQlpd2wzOTQ1X2dldF9jaGFubmVsc19mb3Jfc2Nhbihw cml2LCBiYW5kLAorCQkJCWlzX2FjdGl2ZSwgbl9wcm9iZXMsCisJCQkJKHZvaWQgKikmc2Nhbi0+ ZGF0YVtsZTE2X3RvX2NwdSgKKwkJCQlzY2FuLT50eF9jbWQubGVuKV0sIHZpZik7CisJfQorCisJ LypzY2FuLT5jaGFubmVsX2NvdW50ID0KIAkJaXdsMzk0NV9nZXRfY2hhbm5lbHNfZm9yX3NjYW4o cHJpdiwgYmFuZCwgaXNfYWN0aXZlLCBuX3Byb2JlcywKIAkJCSh2b2lkICopJnNjYW4tPmRhdGFb bGUxNl90b19jcHUoc2Nhbi0+dHhfY21kLmxlbildLCB2aWYpOwotCisqLwogCWlmIChzY2FuLT5j aGFubmVsX2NvdW50ID09IDApIHsKIAkJSVdMX0RFQlVHX1NDQU4ocHJpdiwgImNoYW5uZWwgY291 bnQgJWRcbiIsIHNjYW4tPmNoYW5uZWxfY291bnQpOwogCQlnb3RvIGRvbmU7Cg== --00163642759dca979e0487f98574--