From owner-freebsd-wireless@freebsd.org Thu Sep 17 06:39:38 2015 Return-Path: Delivered-To: freebsd-wireless@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CC8899CE13D for ; Thu, 17 Sep 2015 06:39:38 +0000 (UTC) (envelope-from mgrooms@shrew.net) Received: from mx1.shrew.net (mx1.shrew.net [38.97.5.131]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 718EC108B for ; Thu, 17 Sep 2015 06:39:37 +0000 (UTC) (envelope-from mgrooms@shrew.net) Received: from mail.shrew.net (mail.shrew.prv [10.24.10.20]) by mx1.shrew.net (8.14.7/8.14.7) with ESMTP id t8H6bOiw082426; Thu, 17 Sep 2015 01:37:24 -0500 (CDT) (envelope-from mgrooms@shrew.net) Received: from [10.22.200.30] (cpe-72-179-24-154.austin.res.rr.com [72.179.24.154]) by mail.shrew.net (Postfix) with ESMTPSA id 73EFA18B903; Thu, 17 Sep 2015 01:37:18 -0500 (CDT) Subject: Re: urtwn and hostap To: Adrian Chadd References: <55F90187.10809@shrew.net> <55F906CB.9030007@shrew.net> <55F996FD.5060804@shrew.net> Cc: "freebsd-wireless@freebsd.org" From: Matthew Grooms Message-ID: <55FA6022.8090609@shrew.net> Date: Thu, 17 Sep 2015 01:39:30 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------080104090206010805030600" X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (mx1.shrew.net [10.24.10.10]); Thu, 17 Sep 2015 01:37:24 -0500 (CDT) X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Sep 2015 06:39:38 -0000 This is a multi-part message in MIME format. --------------080104090206010805030600 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Seems to behave better now and hostap appears to be working ... #ifconfig wlan0 create wlandev urtwn0 wlanmode hostap #ifconfig wlan0 list caps drivercaps=2181c401 #ifconfig wlan0 up ssid freebsdap mode 11g channel 1 #ifconfig bridge0 create up addm em0 addm wlan0 #ifconfig wlan0 wlan0: flags=8943 metric 0 mtu 1500 ether 00:c3:e1:16:11:32 nd6 options=29 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: running ssid freebsdap channel 1 (2412 MHz 11g) bssid 00:c3:e1:16:11:32 country US authmode OPEN privacy OFF txpower 0 scanvalid 60 protmode CTS dtimperiod 1 -dfs groups: wlan #ifconfig bridge0 bridge0: flags=8843 metric 0 mtu 1500 ether 02:df:20:d2:42:00 nd6 options=1 groups: bridge id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15 maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200 root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0 member: wlan0 flags=143 ifmaxaddr 0 port 3 priority 128 path cost 370370 member: em0 flags=143 ifmaxaddr 0 port 1 priority 128 path cost 20000 The speed leaves a lot to be desired. Throughput for the associated host is typically about 2Mbit down and 6Mbit up. I'm assume that's indicative of a problem. Occasionally I also see the this message on the console when I'm bringing the adapter up ... wlan0: ieee80211_new_state_locked: pending INIT -> SCAN transition lost If I down and up the adapter again, it seems to correct itself. Not sure what that's all about. I am passing the USB adapter through to a VM inside of ESXi to test the patch, so maybe that has something to do with these quirks. I'll try to run some tests with the adapter associated to a physical AP tomorrow to get a baseline. Thanks, -Matthew On 9/16/2015 11:24 AM, Adrian Chadd wrote: > The only one to look at is ath(4). I've not fixed/hacked on any other > hostap chips. :) > > if_ath_beacon.c has the logic - it gets a reference when creating a > beacon frame. > > > > -adrian > > > On 16 September 2015 at 09:21, Matthew Grooms wrote: >> On 9/16/2015 10:58 AM, Adrian Chadd wrote: >>> I think the net80211 beacon create routine doesn't allocate a node >>> ref. Yeah, it doesn't. You have to do ieee80211_ref_node() after >>> calling becaon_create(), and deref it if the tx fails. The TX success >>> will free the node ref for you. >>> >> Got it. I'll take another look at one of the drivers that support hostap to >> make sure I'm following the same pattern. Thanks again for the feedback! >> >> -Matthew >> >> >>> -adrian >>> >>> >>> On 16 September 2015 at 04:27, Idwer Vollering wrote: >>>> 2015-09-16 8:06 GMT+02:00 Matthew Grooms : >>>> >>>>> It looks like my screenshot got scrubbed. Here is my hopefully faithful >>>>> transcription ... >>>>> >>>>> Fatal trap 9: general protection fault while in kernel mode >>>>> cpuid = 3; apic id = 03 >>>>> instruction pointer = 0x20:0xffffffff80a01105 >>>>> stack pointer = 0x28:0xfffffe0092fe86f0 >>>>> frame pointer = 0x28:0xfffffe0092fe8740 >>>>> code segment = base 0x0, limit 0xfffff, type 0x1b >>>>> = DPL 0, pres 1, long 1, def32 0, gran >>>>> 1 >>>>> processor eflags = interrupt enabled, resume, IOPL = 0 >>>>> current process = 716 (ifconfig) >>>>> [thread pid 716 tid 100082 ] >>>>> Stopped at __mtx_lock_flags+0x55: movq (%r13),%rax >>>>> db> bt >>>>> Tracing pid 716 tid 100082 td 0xffffff800512814d0 >>>>> __mtx_lock_flags() at __mtx_lock_flags+0x55/frame 0xfffffe0092fe8740 >>>>> ieee80211_free_node() at ieee80211_free_node()_0x38/frame >>>>> 0xfffffe0092fe8780 >>>>> ieee80211_node_vdetach() at ieee80211_node_vdetach()+0x2d/frame >>>>> 0xfffffe0092fe87a0 >>>>> ieee80211_vap_detach() at ieee80211_vap_detach()+0x35e/frame >>>>> 0xfffffe0092fe87d0 >>>>> urtwn_vap_delete() at urtwn_vap_delete()+0xe/frame 0xfffffe0092fe87f0 >>>>> if_clone_destroyif() at if_clone_destroyif()+0x1aa/frame >>>>> 0xfffffe0092fe8840 >>>>> if_clone_destroy() at if_clone_destroy()0x8e/frame 0xfffffe0092fe8860 >>>>> kern_ioctl() at kern_ioctl()+0x230/frame 0xfffffe0092fe88c0 >>>>> sys_ioctl() at sys_ioctl()+0x153/frame 0xfffffe0092fe89a0 >>>>> amd64_syscall() at amd64_syscall()+0x282/frame 0xfffffe0092fe8ab0 >>>>> Xfast_syscall() at Xfast_syscall()+0xfb/frame 0xfffffe0092fe8ab0 >>>>> -- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x8011e8c8a, rsp = >>>>> 0x7fffffffe2f8, rbp = 0x7fffffffe310 -- >>>>> db> >>>> Assuming dumpdev="AUTO" is set in /etc/rc.conf, you should have >>>> entered 'dump' at the db> blinker :) >>>> >>>> The trap details are found in /var/crash/, run kgdb: "kgdb >>>> /boot/kernel/kernel /var/crash/vmcore.last", then run 'bt' and 'up' at >>>> its prompt. >>>> >>>>> -Matthew >>>>> _______________________________________________ >>>>> freebsd-wireless@freebsd.org mailing list >>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-wireless >>>>> To unsubscribe, send any mail to >>>>> "freebsd-wireless-unsubscribe@freebsd.org" >>>> _______________________________________________ >>>> freebsd-wireless@freebsd.org mailing list >>>> https://lists.freebsd.org/mailman/listinfo/freebsd-wireless >>>> To unsubscribe, send any mail to >>>> "freebsd-wireless-unsubscribe@freebsd.org" >>> _______________________________________________ >>> freebsd-wireless@freebsd.org mailing list >>> https://lists.freebsd.org/mailman/listinfo/freebsd-wireless >>> To unsubscribe, send any mail to >>> "freebsd-wireless-unsubscribe@freebsd.org" >> >> _______________________________________________ >> freebsd-wireless@freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-wireless >> To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org" --------------080104090206010805030600 Content-Type: text/plain; charset=UTF-8; name="urtwn.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="urtwn.diff" SW5kZXg6IHN5cy9kZXYvdXNiL3dsYW4vaWZfdXJ0d24uYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBz eXMvZGV2L3VzYi93bGFuL2lmX3VydHduLmMJKHJldmlzaW9uIDI4NzM0MikKKysrIHN5cy9k ZXYvdXNiL3dsYW4vaWZfdXJ0d24uYwkod29ya2luZyBjb3B5KQpAQCAtMTgxLDYgKzE4MSw4 IEBACiBzdGF0aWMgc3RydWN0IG1idWYgKgl1cnR3bl9yeGVvZihzdHJ1Y3QgdXNiX3hmZXIg Kiwgc3RydWN0IHVydHduX2RhdGEgKiwKIAkJCSAgICBpbnQgKiwgaW50OF90ICopOwogc3Rh dGljIHZvaWQJCXVydHduX3R4ZW9mKHN0cnVjdCB1c2JfeGZlciAqLCBzdHJ1Y3QgdXJ0d25f ZGF0YSAqKTsKK2ludAkJCXVydHduX3R4YmNuKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwK KwkJCSAgICBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKik7CiBzdGF0aWMgaW50CQl1cnR3bl9h bGxvY19saXN0KHN0cnVjdCB1cnR3bl9zb2Z0YyAqLAogCQkJICAgIHN0cnVjdCB1cnR3bl9k YXRhW10sIGludCwgaW50KTsKIHN0YXRpYyBpbnQJCXVydHduX2FsbG9jX3J4X2xpc3Qoc3Ry dWN0IHVydHduX3NvZnRjICopOwpAQCAtNDM2LDYgKzQzOCwxMCBAQAogCQl8IElFRUU4MDIx MV9DX1dQQQkJLyogODAyLjExaSAqLwogCQk7CiAKKwlpZiAoc2MtPmNoaXAgJiBVUlRXTl9D SElQXzg4RSkKKwkJaWMtPmljX2NhcHMgfD0KKwkJICAgIElFRUU4MDIxMV9DX0hPU1RBUDsJ CS8qIEhvc3RBcCBtb2RlIHN1cHBvcnRlZCAqLworCiAJYmFuZHMgPSAwOwogCXNldGJpdCgm YmFuZHMsIElFRUU4MDIxMV9NT0RFXzExQik7CiAJc2V0Yml0KCZiYW5kcywgSUVFRTgwMjEx X01PREVfMTFHKTsKQEAgLTg1Nyw2ICs4NjMsMzkgQEAKIAlzYy0+c2NfdHh0aW1lciA9IDA7 CiB9CiAKKy8qCisgKiBQdXNoIGEgYmVhY29uIGZyYW1lIGludG8gdGhlIGNoaXAgYW5kIGNo ZWNrIGlmIGl0IHdhcyBhY2NlcHRlZC4gIEJlYWNvbiB3aWxsCisgKiBiZSByZXBlYXRlZCBi eSB0aGUgY2hpcCBldmVyeSBSOTJDX0JDTl9JTlRFUlZBTC4KKyAqLworaW50Cit1cnR3bl90 eGJjbihzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAq bmkpCit7CisJc3RydWN0IGllZWU4MDIxMWNvbSAqaWMgPSBuaS0+bmlfaWM7CisJc3RydWN0 IHVydHduX3NvZnRjICpzYyA9IGljLT5pY19zb2Z0YzsKKwlzdHJ1Y3QgdXJ0d25fZGF0YSAq YmY7CisJc3RydWN0IG1idWYgKm07CisKKwlpZWVlODAyMTFfcmVmX25vZGUobmkpOworCW0g PSBpZWVlODAyMTFfYmVhY29uX2FsbG9jKG5pLCAmVVJUV05fVkFQKHZhcCktPmJvKTsKKwor CWJmID0gdXJ0d25fZ2V0YnVmKHNjKTsKKwlpZiAoYmYgPT0gTlVMTCkgeworCQlpZWVlODAy MTFfZnJlZV9ub2RlKG5pKTsKKwkJbV9mcmVlbShtKTsKKwkJcmV0dXJuIChFTk9CVUZTKTsK Kwl9CisKKwlpZiAodXJ0d25fdHhfc3RhcnQoc2MsIG5pLCBtLCBiZikgIT0gMCkgeworCQlp ZWVlODAyMTFfZnJlZV9ub2RlKG5pKTsKKwkJU1RBSUxRX0lOU0VSVF9IRUFEKCZzYy0+c2Nf dHhfaW5hY3RpdmUsIGJmLCBuZXh0KTsKKwkJcmV0dXJuIChFSU8pOworCX0KKworCXNjLT5z Y190eHRpbWVyID0gNTsKKworCXJldHVybiAoMCk7Cit9CisKIHN0YXRpYyB2b2lkCiB1cnR3 bl9idWxrX3R4X2NhbGxiYWNrKHN0cnVjdCB1c2JfeGZlciAqeGZlciwgdXNiX2Vycm9yX3Qg ZXJyb3IpCiB7CkBAIC0xNDY2LDYgKzE1MDUsNyBAQAogCXN0cnVjdCBpZWVlODAyMTFfbm9k ZSAqbmk7CiAJZW51bSBpZWVlODAyMTFfc3RhdGUgb3N0YXRlOwogCXVpbnQzMl90IHJlZzsK KwlpbnQgZXJyb3I7CiAKIAlvc3RhdGUgPSB2YXAtPml2X3N0YXRlOwogCURQUklOVEYoIiVz IC0+ICVzXG4iLCBpZWVlODAyMTFfc3RhdGVfbmFtZVtvc3RhdGVdLApAQCAtMTU1MywyMyAr MTU5Myw2OCBAQAogCQl9CiAKIAkJbmkgPSBpZWVlODAyMTFfcmVmX25vZGUodmFwLT5pdl9i c3MpOwotCQkvKiBTZXQgbWVkaWEgc3RhdHVzIHRvICdBc3NvY2lhdGVkJy4gKi8KLQkJcmVn ID0gdXJ0d25fcmVhZF80KHNjLCBSOTJDX0NSKTsKLQkJcmVnID0gUlcocmVnLCBSOTJDX0NS X05FVFRZUEUsIFI5MkNfQ1JfTkVUVFlQRV9JTkZSQSk7Ci0JCXVydHduX3dyaXRlXzQoc2Ms IFI5MkNfQ1IsIHJlZyk7CiAKLQkJLyogU2V0IEJTU0lELiAqLwotCQl1cnR3bl93cml0ZV80 KHNjLCBSOTJDX0JTU0lEICsgMCwgTEVfUkVBRF80KCZuaS0+bmlfYnNzaWRbMF0pKTsKLQkJ dXJ0d25fd3JpdGVfNChzYywgUjkyQ19CU1NJRCArIDQsIExFX1JFQURfMigmbmktPm5pX2Jz c2lkWzRdKSk7CisJCWlmIChpYy0+aWNfb3Btb2RlID09IElFRUU4MDIxMV9NX1NUQSkgewor CQkJLyogU2V0IEJTU0lELiAqLworCQkJdXJ0d25fd3JpdGVfNChzYywgUjkyQ19CU1NJRCAr IDAsCisJCQkJTEVfUkVBRF80KCZuaS0+bmlfYnNzaWRbMF0pKTsKKwkJCXVydHduX3dyaXRl XzQoc2MsIFI5MkNfQlNTSUQgKyA0LAorCQkJCUxFX1JFQURfMigmbmktPm5pX2Jzc2lkWzRd KSk7CiAKLQkJaWYgKGljLT5pY19jdXJtb2RlID09IElFRUU4MDIxMV9NT0RFXzExQikKLQkJ CXVydHduX3dyaXRlXzEoc2MsIFI5MkNfSU5JUlRTX1JBVEVfU0VMLCAwKTsKLQkJZWxzZQkv KiA4MDIuMTFiL2cgKi8KLQkJCXVydHduX3dyaXRlXzEoc2MsIFI5MkNfSU5JUlRTX1JBVEVf U0VMLCAzKTsKKwkJCWlmIChpYy0+aWNfY3VybW9kZSA9PSBJRUVFODAyMTFfTU9ERV8xMUIp CisJCQkJdXJ0d25fd3JpdGVfMShzYywgUjkyQ19JTklSVFNfUkFURV9TRUwsIDApOworCQkJ ZWxzZQkvKiA4MDIuMTFiL2cgKi8KKwkJCQl1cnR3bl93cml0ZV8xKHNjLCBSOTJDX0lOSVJU U19SQVRFX1NFTCwgMyk7CiAKLQkJLyogRW5hYmxlIFJ4IG9mIGRhdGEgZnJhbWVzLiAqLwot CQl1cnR3bl93cml0ZV8yKHNjLCBSOTJDX1JYRkxUTUFQMiwgMHhmZmZmKTsKKwkJCS8qIEVu YWJsZSBSeCBvZiBkYXRhIGZyYW1lcy4gKi8KKwkJCXVydHduX3dyaXRlXzIoc2MsIFI5MkNf UlhGTFRNQVAyLCAweGZmZmYpOwogCisJCQkvKiBBbGxvdyBSeCBmcm9tIG91ciBCU1NJRCBv bmx5LiAqLworCQkJdXJ0d25fd3JpdGVfNChzYywgUjkyQ19SQ1IsIHVydHduX3JlYWRfNChz YywgUjkyQ19SQ1IpIHwKKwkJCSAgICBSOTJDX1JDUl9DQlNTSURfREFUQSB8IFI5MkNfUkNS X0NCU1NJRF9CQ04pOworCisJCQkvKiBTZXQgbWVkaWEgc3RhdHVzIHRvICdBc3NvY2lhdGVk Jy4gKi8KKwkJCXJlZyA9IHVydHduX3JlYWRfNChzYywgUjkyQ19DUik7CisJCQlyZWcgPSBS VyhyZWcsIFI5MkNfQ1JfTkVUVFlQRSwgUjkyQ19DUl9ORVRUWVBFX0lORlJBKTsKKwkJCXVy dHduX3dyaXRlXzQoc2MsIFI5MkNfQ1IsIHJlZyk7CisJCX0KKworCQlpZiAoaWMtPmljX29w bW9kZSA9PSBJRUVFODAyMTFfTV9IT1NUQVApIHsKKwkJCS8qIFNldCBtZWRpYSBzdGF0dXMg dG8gJ0FQJy4gKi8KKwkJCXJlZyA9IHVydHduX3JlYWRfNChzYywgUjkyQ19DUik7CisJCQly ZWcgPSBSVyhyZWcsIFI5MkNfQ1JfTkVUVFlQRSwgUjkyQ19DUl9ORVRUWVBFX0FQKTsKKwkJ CXVydHduX3dyaXRlXzQoc2MsIFI5MkNfQ1IsIHJlZyk7CisKKwkJCS8qIFNldCBCU1NJRC4g Ki8KKwkJCXVydHduX3dyaXRlXzQoc2MsIFI5MkNfQlNTSUQgKyAwLAorCQkJICAgIExFX1JF QURfNCgmbmktPm5pX2Jzc2lkWzBdKSk7CisJCQl1cnR3bl93cml0ZV80KHNjLCBSOTJDX0JT U0lEICsgNCwKKwkJCSAgICBMRV9SRUFEXzIoJm5pLT5uaV9ic3NpZFs0XSkpOworCisJCQkv KgorCQkJICogSWYgM3JkIG9yIDR0aCBiaXRzIGFyZSBzZXQgdG8gemVybyBjaGlwIHdpbGwg c3RvcAorCQkJICogcmVwZWF0aW5nIGJlYWNvbiBhZnRlciBmaXJzdCB0cmFuc21pc3Npb24g Zm9yIHBvcnQwCisJCQkgKiBhbmQgcG9ydDEgcmVzcGVjdGl2ZWx5LiBUaGlzIHdpbGwgY2F1 c2UgU1RBcyB0bworCQkJICogZGlzY29ubmVjdCBhZnRlciBzaG9ydCBwZXJpb2Qgb2YgdGlt ZS4KKwkJCSAqLworCQkJcmVnID0gdXJ0d25fcmVhZF8xKHNjLCBSOTJDX01CSURfTlVNKTsK KwkJCXJlZyB8PSAweDg7CisJCQlyZWcgfD0gMHgxMDsKKwkJCXVydHduX3dyaXRlXzEoc2Ms IFI5MkNfTUJJRF9OVU0sIHJlZyk7CisKKwkJCS8qIEludmFsaWRhdGUgY2FtIGVudHJpZXMg Ki8KKwkJCXVydHduX2NhbV9pbml0KHNjKTsKKworCQkJLyogU2V0IGNoYW4vYncgKi8KKwkJ CXVydHduX3NldF9jaGFuKHNjLCBpYy0+aWNfY3VyY2hhbiwgTlVMTCk7CisKKwkJCS8qIFB1 c2ggYmVhY29uIGZyYW1lIGludG8gdGhlIGNoaXAgKi8KKwkJCWVycm9yID0gdXJ0d25fdHhi Y24odmFwLCBuaSk7CisJCQlpZiAoZXJyb3IgIT0gMCkKKwkJCQlwcmludGYoIiVzOiB1bmFi bGUgdG8gcHVzaCBiZWFjb24gaW50byB0aGUiCisJCQkJICAgICIgY2hpcFxuIiwgZGV2aWNl X2dldF9uYW1ldW5pdChzYy0+c2NfZGV2KSk7CisJCX0KKwogCQkvKiBGbHVzaCBhbGwgQUMg cXVldWVzLiAqLwogCQl1cnR3bl93cml0ZV8xKHNjLCBSOTJDX1RYUEFVU0UsIDApOwogCkBA IC0xNTc2LDExICsxNjYxLDYgQEAKIAkJLyogU2V0IGJlYWNvbiBpbnRlcnZhbC4gKi8KIAkJ dXJ0d25fd3JpdGVfMihzYywgUjkyQ19CQ05fSU5URVJWQUwsIG5pLT5uaV9pbnR2YWwpOwog Ci0JCS8qIEFsbG93IFJ4IGZyb20gb3VyIEJTU0lEIG9ubHkuICovCi0JCXVydHduX3dyaXRl XzQoc2MsIFI5MkNfUkNSLAotCQkgICAgdXJ0d25fcmVhZF80KHNjLCBSOTJDX1JDUikgfAot CQkgICAgUjkyQ19SQ1JfQ0JTU0lEX0RBVEEgfCBSOTJDX1JDUl9DQlNTSURfQkNOKTsKLQog CQkvKiBFbmFibGUgVFNGIHN5bmNocm9uaXphdGlvbi4gKi8KIAkJdXJ0d25fdHNmX3N5bmNf ZW5hYmxlKHNjKTsKIApAQCAtMTc1NCw3ICsxODM0LDcgQEAKIAlzdHJ1Y3QgaWVlZTgwMjEx dmFwICp2YXAgPSBuaS0+bmlfdmFwOwogCXN0cnVjdCB1c2JfeGZlciAqeGZlcjsKIAlzdHJ1 Y3QgcjkyY190eF9kZXNjICp0eGQ7Ci0JdWludDhfdCByYWlkLCB0eXBlOworCXVpbnQ4X3Qg cmFpZCwgdHlwZSwgc3VidHlwZTsKIAl1aW50MTZfdCBzdW07CiAJaW50IGksIGhhc3Fvcywg eGZlcmxlbjsKIAlzdHJ1Y3QgdXNiX3hmZXIgKnVydHduX3BpcGVzWzRdID0gewpAQCAtMTc3 MSw2ICsxODUxLDcgQEAKIAkgKi8KIAl3aCA9IG10b2QobTAsIHN0cnVjdCBpZWVlODAyMTFf ZnJhbWUgKik7CiAJdHlwZSA9IHdoLT5pX2ZjWzBdICYgSUVFRTgwMjExX0ZDMF9UWVBFX01B U0s7CisJc3VidHlwZSA9IHdoLT5pX2ZjWzBdICYgSUVFRTgwMjExX0ZDMF9TVUJUWVBFX01B U0s7CiAKIAlpZiAod2gtPmlfZmNbMV0gJiBJRUVFODAyMTFfRkMxX1BST1RFQ1RFRCkgewog CQlrID0gaWVlZTgwMjExX2NyeXB0b19lbmNhcChuaSwgbTApOwpAQCAtMTgxOSw3ICsxOTAw LDcgQEAKIAkJaWYgKHNjLT5jaGlwICYgVVJUV05fQ0hJUF84OEUpIHsKIAkJCXR4ZC0+dHhk dzEgfD0gaHRvbGUzMigKIAkJCSAgICBTTShSODhFX1RYRFcxX01BQ0lELCBVUlRXTl9NQUNJ RF9CU1MpIHwKLQkJCSAgICBTTShSOTJDX1RYRFcxX1FTRUwsIFI5MkNfVFhEVzFfUVNFTF9C RSkgfAorCQkJICAgIFNNKFI5MkNfVFhEVzFfUVNFTCwgUjg4RV9UWERXMV9RU0VMX0JFKSB8 CiAJCQkgICAgU00oUjkyQ19UWERXMV9SQUlELCByYWlkKSk7CiAJCQl0eGQtPnR4ZHcyIHw9 IGh0b2xlMzIoUjg4RV9UWERXMl9BR0dCSyk7CiAJCX0gZWxzZSB7CkBAIC0xODQzLDkgKzE5 MjQsMjAgQEAKIAkJLyogU2VuZCBkYXRhIGF0IE9GRE01NC4gKi8KIAkJdHhkLT50eGR3NSB8 PSBodG9sZTMyKFNNKFI5MkNfVFhEVzVfREFUQVJBVEUsIDExKSk7CiAJfSBlbHNlIHsKKwkJ LyoKKwkJICogSWYgYmVhY29uIGZyYW1lIGlzIHB1c2hlZCBpbnRvIHdyb25nIHF1ZXVlLCB0 aGUgY2hpcCB3b24ndAorCQkgKiBzdGFydCByZXBlYXRpbmcgaXQuCisJCSAqLworCQlpZiAo c3VidHlwZSA9PSBJRUVFODAyMTFfRkMwX1NVQlRZUEVfQkVBQ09OICYmCisJCSAgICBzYy0+ Y2hpcCAmIFVSVFdOX0NISVBfODhFKQorCQkJdHhkLT50eGR3MSB8PSBodG9sZTMyKFNNKFI5 MkNfVFhEVzFfUVNFTCwKKwkJCSAgICBSODhFX1RYRFcxX1FTRUxfTUdOVCkpOworCQllbHNl CisJCQl0eGQtPnR4ZHcxIHw9IGh0b2xlMzIoU00oUjkyQ19UWERXMV9RU0VMLAorCQkJICAg IFI5MkNfVFhEVzFfUVNFTF9NR05UKSk7CisKIAkJdHhkLT50eGR3MSB8PSBodG9sZTMyKAog CQkgICAgU00oUjkyQ19UWERXMV9NQUNJRCwgMCkgfAotCQkgICAgU00oUjkyQ19UWERXMV9R U0VMLCBSOTJDX1RYRFcxX1FTRUxfTUdOVCkgfAogCQkgICAgU00oUjkyQ19UWERXMV9SQUlE LCBSOTJDX1JBSURfMTFCKSk7CiAKIAkJLyogRm9yY2UgQ0NLMS4gKi8KSW5kZXg6IHN5cy9k ZXYvdXNiL3dsYW4vaWZfdXJ0d25yZWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvZGV2L3Vz Yi93bGFuL2lmX3VydHducmVnLmgJKHJldmlzaW9uIDI4NzM0MikKKysrIHN5cy9kZXYvdXNi L3dsYW4vaWZfdXJ0d25yZWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTAxOSw3ICsxMDE5LDkg QEAKICNkZWZpbmUgUjkyQ19UWERXMV9RU0VMX00JMHgwMDAwMWYwMAogI2RlZmluZSBSOTJD X1RYRFcxX1FTRUxfUwk4CiAjZGVmaW5lIFI5MkNfVFhEVzFfUVNFTF9CRQkweDAwCisjZGVm aW5lIFI4OEVfVFhEVzFfUVNFTF9CRQkweDAzCiAjZGVmaW5lIFI5MkNfVFhEVzFfUVNFTF9N R05UCTB4MTIKKyNkZWZpbmUgUjg4RV9UWERXMV9RU0VMX01HTlQJMHgxMAogI2RlZmluZSBS OTJDX1RYRFcxX1JBSURfTQkweDAwMGYwMDAwCiAjZGVmaW5lIFI5MkNfVFhEVzFfUkFJRF9T CTE2CiAjZGVmaW5lIFI5MkNfVFhEVzFfQ0lQSEVSX00JMHgwMGMwMDAwMAo= --------------080104090206010805030600--