From owner-freebsd-wireless@FreeBSD.ORG Sun Nov 13 08:14:16 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 87982106564A for ; Sun, 13 Nov 2011 08:14:16 +0000 (UTC) (envelope-from adi.ninad@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 595C88FC08 for ; Sun, 13 Nov 2011 08:14:16 +0000 (UTC) Received: by iakl21 with SMTP id l21so6529545iak.13 for ; Sun, 13 Nov 2011 00:14:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=7xG3Z7FM8cKIT0rO+wP/6WS++/wjOw61HCloJm8vy2w=; b=wy8VyvVrH1LU5KClfTeW3OfVTYwwAQcC1zWQW5cx0ff7KII5C9X2dYYDhTyvG4Q20+ h81PcyezU86/0z/bwcNFX18TCx0d3FK67QLZQ2b2ShwU9tAvXWiIfJhaVO4hlSfCWofw jt/lCpPO1meWGosebsUk+cSKegMPKx8UaWUAA= MIME-Version: 1.0 Received: by 10.231.60.76 with SMTP id o12mr4272931ibh.83.1321172055693; Sun, 13 Nov 2011 00:14:15 -0800 (PST) Received: by 10.231.182.193 with HTTP; Sun, 13 Nov 2011 00:14:15 -0800 (PST) Date: Sun, 13 Nov 2011 13:44:15 +0530 Message-ID: From: Ninad Adi To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Sun, 13 Nov 2011 12:08:46 +0000 Subject: Why does iwn driver in FreeBSD is coded in just one file. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 13 Nov 2011 08:14:16 -0000 Dear Sirs, Why is that iwn driver in FreeBSD is coded in just one file, why isnt it distributed according to its features, it would be easy to understand, develop and debug such kind of framework. Ninad Adi. From owner-freebsd-wireless@FreeBSD.ORG Sun Nov 13 08:22:04 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6E111065674 for ; Sun, 13 Nov 2011 08:22:04 +0000 (UTC) (envelope-from adi.ninad@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 8892D8FC0C for ; Sun, 13 Nov 2011 08:22:04 +0000 (UTC) Received: by iakl21 with SMTP id l21so6537019iak.13 for ; Sun, 13 Nov 2011 00:22:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=s9hyqlHr7uEnDIYEWbCz9nWZflSLiS5BikvIZ3tqUog=; b=FLrbCG2oH7UzBHWQJJwcQBjE2J0SYag9oqEW17XoPQ7oCnh3KpvWez/g6ojuBg3xIm 8SeOUTNcCFBt/qcwCl9Fmae5NEvgRIZiYXZlqQGJXrivepLJuI8AnMo3TQTmcmEW5uwe DmeIaTsQzhTuk/MteJXWelOGe6G1wHkgISUTA= MIME-Version: 1.0 Received: by 10.50.169.38 with SMTP id ab6mr19083731igc.26.1321170954177; Sat, 12 Nov 2011 23:55:54 -0800 (PST) Received: by 10.231.182.193 with HTTP; Sat, 12 Nov 2011 23:55:54 -0800 (PST) Date: Sun, 13 Nov 2011 13:25:54 +0530 Message-ID: From: Ninad Adi To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Sun, 13 Nov 2011 12:08:59 +0000 Subject: Interested in development of WLAN drivers & features in FreeBSD wifi stack. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 13 Nov 2011 08:22:04 -0000 Dear Sirs, I am already working on FreeBSD wifi drivers and at the same time studying them. I would be ardently interested in contributing towards the community if given a chance. Thanks Ninad Adi. From owner-freebsd-wireless@FreeBSD.ORG Sun Nov 13 17:29:15 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 477FD106564A for ; Sun, 13 Nov 2011 17:29:15 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 014178FC0A for ; Sun, 13 Nov 2011 17:29:14 +0000 (UTC) Received: by vcbfo14 with SMTP id fo14so6645172vcb.13 for ; Sun, 13 Nov 2011 09:29:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Wj+24lo0Yd3uWNrnJgjYMTnUPT1EHMuaWfo18gwdyF4=; b=Z4Lzi8+TdWajOjv9NxG7UOMwEm8feMEO3VBZJginq3qq1WCorJV1WrE74tizphP6Zo Krm+GS+JO6u5gt27ExqKw7d9houvtqQFCq3wyGFVpm2hvsEktPyqlJvt67LEZPwkx6aY LD7dnSOHAzWjh2kQ3mwT2jrK1pkvolwpqfFuM= MIME-Version: 1.0 Received: by 10.52.92.84 with SMTP id ck20mr30763429vdb.88.1321205354292; Sun, 13 Nov 2011 09:29:14 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.52.29.198 with HTTP; Sun, 13 Nov 2011 09:29:14 -0800 (PST) In-Reply-To: References: Date: Sun, 13 Nov 2011 09:29:14 -0800 X-Google-Sender-Auth: nc4VPHoWDVNOUnt6fLHaRvcbqN8 Message-ID: From: Adrian Chadd To: Ninad Adi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: Why does iwn driver in FreeBSD is coded in just one file. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 13 Nov 2011 17:29:15 -0000 On 13 November 2011 00:14, Ninad Adi wrote: > Dear Sirs, > > Why is that iwn driver in FreeBSD is coded in just one file, why isnt > it distributed according to its features, it would be easy to > understand, develop and debug > such kind of framework. Hi, It's mostly historical. If you'd like to take charge of maintaining iwn then please feel free to propose splitting it up. :) Adrian From owner-freebsd-wireless@FreeBSD.ORG Sun Nov 13 17:29:34 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB82C1065679 for ; Sun, 13 Nov 2011 17:29:34 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id A4C1E8FC0C for ; Sun, 13 Nov 2011 17:29:34 +0000 (UTC) Received: by mail-vx0-f182.google.com with SMTP id fo14so6645172vcb.13 for ; Sun, 13 Nov 2011 09:29:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=rvb02RFhg/LKA+udVCG0Y5F7nBwLjoqUNYTDJyMdY8I=; b=WEdlHdBc+EH2NoNhsqzIzFzhdoO+38sV3W181KrqwLRfcf3Zw6c6wOaPt9VDHwkJGp UtTsBAsZvD4M7EfLDT6hBEadWxXfyhk4CCw6GN1ajvsmOksW9GsJ1I3WTGZjMU2HN+mF uvZR8+prv7vpBBLn8XI4zxjIQtbUr07a76T4A= MIME-Version: 1.0 Received: by 10.52.34.78 with SMTP id x14mr24335245vdi.122.1321205374462; Sun, 13 Nov 2011 09:29:34 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.52.29.198 with HTTP; Sun, 13 Nov 2011 09:29:34 -0800 (PST) In-Reply-To: References: Date: Sun, 13 Nov 2011 09:29:34 -0800 X-Google-Sender-Auth: XLfXS0lf6flSYjC347omGItjiXs Message-ID: From: Adrian Chadd To: Ninad Adi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: Interested in development of WLAN drivers & features in FreeBSD wifi stack. X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 13 Nov 2011 17:29:35 -0000 On 12 November 2011 23:55, Ninad Adi wrote: > Dear Sirs, > > I am already working on FreeBSD wifi drivers and at the same time studying them. > I would be ardently interested in contributing towards the community > if given a chance. Hi! Well, here's your chance. :-) Welcome! Adrian From owner-freebsd-wireless@FreeBSD.ORG Mon Nov 14 11:07:20 2011 Return-Path: Delivered-To: freebsd-wireless@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 412741065673 for ; Mon, 14 Nov 2011 11:07:20 +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 2FBBB8FC12 for ; Mon, 14 Nov 2011 11:07:20 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id pAEB7KMo083691 for ; Mon, 14 Nov 2011 11:07:20 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id pAEB7JVh083689 for freebsd-wireless@FreeBSD.org; Mon, 14 Nov 2011 11:07:19 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 14 Nov 2011 11:07:19 GMT Message-Id: <201111141107.pAEB7JVh083689@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-wireless@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-wireless@FreeBSD.org X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 14 Nov 2011 11:07:20 -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 kern/162475 wireless [ath] functions with return type HAL_BOOL (might) retu o kern/161293 wireless [iwn] hang at startup when starting network o kern/161035 wireless [ieee80211] Incorrect number describing 11ng MCS rate o kern/160391 wireless [ieee80211] [patch] Panic in mesh mode o kern/160296 wireless [zyd] [panic] 802.11 usb device reboots system on 'ifc o misc/160176 wireless [mips] [panic] Kernel panic on AR7161 platform with AR o kern/157449 wireless [ath] MAC address conflict causes system to freeze o kern/157243 wireless [ath] investigate beacon TX (AP) / RX (STA) when under o kern/156904 wireless [ath] AR9285 antenna diversity algorithm is buggy and o kern/156884 wireless [ath] ath instablity o kern/156327 wireless [bwn] bwn driver causes 20%-50% packet loss o kern/156322 wireless [wpi] no ahdemo support for if_wpi o kern/156321 wireless [ath] ahdemo doesn't work with if_ath o kern/155498 wireless [ral] ral(4) needs to be resynced with OpenBSD's to ga o kern/155100 wireless [ath] ath driver on busy channel: "stuck beacon" p kern/154598 wireless [ath] Atheros 5424/2424 can't connect to WPA network o kern/154567 wireless [ath] ath(4) lot of bad series(0) o kern/154327 wireless [ath] AR5416 in station mode hangs when transmitting f o kern/154284 wireless [ath] Modern ath wifi cards (such as AR9285) have miss o kern/154153 wireless [ath] AR5213 + MIPS + WPA group key packet corruption o kern/153448 wireless [ath] ath networking device loses association after a o kern/152750 wireless [ath] ath0 lot of bad series hwrate o kern/151198 wireless [ath] ath/5416 fails bgscan with "ath0: ath_chan_set: o kern/149786 wireless [bwn] bwn on Dell Inspiron 1150: connections stall o kern/149516 wireless [ath] ath(4) hostap with fake MAC/BSSID results in sta o kern/149373 wireless [realtek/atheros]: None of my network card working o kern/148322 wireless [ath] Triggering atheros wifi beacon misses in hostap o kern/148317 wireless [ath] FreeBSD 7.x hostap memory leak in net80211 or At o kern/148078 wireless [ath] wireless networking stops functioning o kern/145826 wireless [panic] [ath] Unable to configure adhoc mode on ath0/w o kern/144987 wireless [wpi] [panic] injecting packets with wlaninject using o bin/144109 wireless hostapd(8) uses the MAC of the wireless interface, but o kern/143868 wireless [ath] [patch] [request] allow Atheros watchdog timeout o conf/143079 wireless hostapd(8) startup missing multi wlan functionality p kern/140567 wireless [ath] [patch] ath is not worked on my notebook PC o kern/140245 wireless [ath] [panic] Kernel panic during network activity on o kern/137592 wireless [ath] panic - 7-STABLE (Aug 7, 2009 UTC) crashes on ne p bin/137484 wireless [patch] Integer overflow in wpa_supplicant(8) base64 e o kern/136943 wireless [wpi] [lor] wpi0_com_lock / wpi0 o kern/136836 wireless [ath] atheros card stops functioning after about 12 ho o kern/132722 wireless [ath] Wifi ath0 associates fine with AP, but DHCP or I o bin/131549 wireless ifconfig(8) can't clear 'monitor' mode on the wireless o kern/126475 wireless [ath] [panic] ath pcmcia card inevitably panics under o kern/125721 wireless [ath] Terrible throughput/high ping latency with Ubiqu o kern/125617 wireless [ath] [panic] ath(4) related panic o kern/125501 wireless [ath] atheros cardbus driver hangs o kern/125332 wireless [ath] [panic] crash under any non-tiny networking unde o kern/124767 wireless [iwi] Wireless connection using iwi0 driver (Intel 220 o kern/124753 wireless [ieee80211] net80211 discards power-save queue packets o docs/120456 wireless ath(4) needs to specify requirement on wlan_scan_sta o kern/119513 wireless [ath] [irq] inserting dlink dwl-g630 wireless card res o kern/116747 wireless [ndis] FreeBSD 7.0-CURRENT crash with Dell TrueMobile f kern/105348 wireless [ath] ath device stopps TX 53 problems total. From owner-freebsd-wireless@FreeBSD.ORG Tue Nov 15 00:07:39 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95974106564A for ; Tue, 15 Nov 2011 00:07:39 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 4F8D58FC0A for ; Tue, 15 Nov 2011 00:07:37 +0000 (UTC) Received: by vcbfo14 with SMTP id fo14so8212495vcb.13 for ; Mon, 14 Nov 2011 16:07:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=pZtL7orRiKQIKurcqoWt75E6NekMKmRVEVM7mFvUT9g=; b=eYD+sD2N0ODMeaoF+1hC9N0cexDtSVATP7x9U6AIzFs4G66CPdwX0N6Z64c1FHBw9i O/xLS0zirgT/Tao+e1feTXkgqkyRd6o8/kA2ht38k7omEBdwwzCXSbtHVHV+7s5wE2L/ ZR1MH3HWfQrUNHCk+s6w1/3B9SJ8UzCYmxwqQ= MIME-Version: 1.0 Received: by 10.52.68.164 with SMTP id x4mr39141058vdt.54.1321315656798; Mon, 14 Nov 2011 16:07:36 -0800 (PST) Received: by 10.52.29.198 with HTTP; Mon, 14 Nov 2011 16:07:36 -0800 (PST) Date: Mon, 14 Nov 2011 16:07:36 -0800 Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: multipart/mixed; boundary=20cf307f30a25c138804b1bac652 Subject: [patch] teach ath(4) to not flush frames during reset or run reset/tx/rx concurrently X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 15 Nov 2011 00:07:39 -0000 --20cf307f30a25c138804b1bac652 Content-Type: text/plain; charset=ISO-8859-1 Hi, One of my major outstanding issues with the atheros 11n tx/rx support is to not flush frames out of the tx and rx queue during a queue reset (eg during fatal errors, stuck beacon, etc.) I can't (yet) do much when operational changes occur. I'll work on that in subsequent commits. I'd appreciate testing and feedback before I merge this into -HEAD. Thanks, Adrian --20cf307f30a25c138804b1bac652 Content-Type: application/octet-stream; name="freebsd-head-reset-noloss.diff" Content-Disposition: attachment; filename="freebsd-head-reset-noloss.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gv0558hm0 ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aC5jIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMK aW5kZXggYzM0ODVlNC4uMzliYTRlZiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9hdGgvaWZfYXRoLmMK KysrIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMKQEAgLTE4MTksNiArMTgxOSw0MiBAQCBhdGhfc3Rv cF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnApCiB9CiAKIHN0YXRpYyB2b2lkCithdGhfdHhyeF9z dG9wKHN0cnVjdCBhdGhfc29mdGMgKnNjKQoreworCWludCBpID0gMTAwMDsKKworCUFUSF9VTkxP Q0tfQVNTRVJUKHNjKTsKKworCS8qIFN0b3AgYW55IG5ldyBUWC9SWCBmcm9tIG9jY3VyaW5nICov CisJdGFza3F1ZXVlX2Jsb2NrKHNjLT5zY190cSk7CisKKwlBVEhfTE9DSyhzYyk7CisKKwkvKgor CSAqIFNsZWVwIHVudGlsIGFsbCB0aGUgcGVuZGluZyBvcGVyYXRpb25zIGhhdmUgY29tcGxldGVk LgorCSAqCisJICogVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHJlc2V0IGhhcyBiZWVuIGlu Y3JlbWVudGVkCisJICogb3IgdGhpcyB3b24ndCBldmVyIG9jY3VyLgorCSAqLworCXdoaWxlIChz Yy0+c2Nfcnhwcm9jX2NudCB8fCBzYy0+c2NfdHhwcm9jX2NudCB8fAorCSAgICBzYy0+c2NfdHhz dGFydF9jbnQpIHsKKwkgICAgCWlmIChpIDw9IDApCisJCQlicmVhazsKKwkJbXNsZWVwKHNjLCAm c2MtPnNjX210eCwgMCwgImF0aF90eHJ4X3N0b3AiLCAxKTsKKwkJaS0tOworCX0KKworCUFUSF9V TkxPQ0soc2MpOworfQorCitzdGF0aWMgdm9pZAorYXRoX3R4cnhfc3RhcnQoc3RydWN0IGF0aF9z b2Z0YyAqc2MpCit7CisKKwl0YXNrcXVldWVfdW5ibG9jayhzYy0+c2NfdHEpOworfQorCitzdGF0 aWMgdm9pZAogYXRoX3N0b3Aoc3RydWN0IGlmbmV0ICppZnApCiB7CiAJc3RydWN0IGF0aF9zb2Z0 YyAqc2MgPSBpZnAtPmlmX3NvZnRjOwpAQCAtMTg0MiwxNyArMTg3OCw0MSBAQCBhdGhfcmVzZXQo c3RydWN0IGlmbmV0ICppZnAsIEFUSF9SRVNFVF9UWVBFIHJlc2V0X3R5cGUpCiAJc3RydWN0IGll ZWU4MDIxMWNvbSAqaWMgPSBpZnAtPmlmX2wyY29tOwogCXN0cnVjdCBhdGhfaGFsICphaCA9IHNj LT5zY19haDsKIAlIQUxfU1RBVFVTIHN0YXR1czsKKwlpbnQgaTsKIAogCURQUklOVEYoc2MsIEFU SF9ERUJVR19SRVNFVCwgIiVzOiBjYWxsZWRcbiIsIF9fZnVuY19fKTsKIAorCS8qIFhYWCBlbnN1 cmUgQVRIX0xPQ0sgaXNuJ3QgaGVsZDsgYXRoX3J4X3Byb2MgY2FuJ3QgYmUgbG9ja2VkICovCisJ QVRIX1VOTE9DS19BU1NFUlQoc2MpOworCUFUSF9MT0NLKHNjKTsKKwkvKiBYWFggaWYgd2UncmUg YWxyZWFkeSBpbnNpZGUgYSByZXNldCwgcHJpbnQgb3V0IGEgYmlnIHdhcm5pbmcgKi8KKwlpZiAo c2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5zY19kZXYsCisJ CSAgICAiJXM6IGNvbmN1cnJlbnQgYXRoX3Jlc2V0KCkhIERhbmdlciFcbiIsCisJCSAgICBfX2Z1 bmNfXyk7CisJfQorCXNjLT5zY19pbnJlc2V0X2NudCsrOworCUFUSF9VTkxPQ0soc2MpOworCisJ LyoKKwkgKiBYWFggc2hvdWxkIG5vdyB3YWl0IGZvciBwZW5kaW5nIFRYL1JYIHRvIGNvbXBsZXRl CisJICogYW5kIGJsb2NrIGZ1dHVyZSBvbmVzIGZyb20gb2NjdXJpbmcuCisJICovCisJYXRoX3R4 cnhfc3RvcChzYyk7CisKIAlhdGhfaGFsX2ludHJzZXQoYWgsIDApOwkJLyogZGlzYWJsZSBpbnRl cnJ1cHRzICovCiAJYXRoX2RyYWludHhxKHNjLCByZXNldF90eXBlKTsJLyogc3RvcCB4bWl0IHNp ZGUgKi8KIAkvKgotCSAqIFhYWCBEb24ndCBmbHVzaCBpZiBBVEhfUkVTRVRfTk9MT1NTO2J1dCB3 ZSBoYXZlIHRvIGZpcnN0Ci0JICogWFhYIG5lZWQgdG8gZW5zdXJlIHRoaXMgZG9lc24ndCByYWNl IHdpdGggYW4gb3V0c3RhbmRpbmcKLQkgKiBYWFggdGFza3F1ZXVlIGNhbGwuCisJICogSWYgd2Un cmUgZG9pbmcgYSBmbHVzaC1sZXNzIGRlcXVldWUsIHRoZW4gc3RvcCBQQ1UKKwkgKiByZWNlaXZl IHNvIHRoZSBGSUZPIGlzbid0IG92ZXJydW4sIHRoZW4gaGFuZGxlCisJICogd2hhdGV2ZXIgZnJh bWVzIGFyZSBpbiB0aGUgcXVldWUuCiAJICovCi0JYXRoX3N0b3ByZWN2KHNjKTsJCS8qIHN0b3Ag cmVjdiBzaWRlICovCisJaWYgKHJlc2V0X3R5cGUgPT0gQVRIX1JFU0VUX05PTE9TUykgeworCQlh dGhfaGFsX3N0b3BwY3VyZWN2KGFoKTsKKwkJYXRoX2hhbF9zZXRyeGZpbHRlcihhaCwgMCk7CisJ CWF0aF9yeF9wcm9jKHNjLCAwKTsKKwl9IGVsc2UKKwkJYXRoX3N0b3ByZWN2KHNjKTsJCS8qIHN0 b3AgcmVjdiBzaWRlICovCiAJYXRoX3NldHRraXBtaWMoc2MpOwkJLyogY29uZmlndXJlIFRLSVAg TUlDIGhhbmRsaW5nICovCiAJLyogTkI6IGluZGljYXRlIGNoYW5uZWwgY2hhbmdlIHNvIHdlIGRv IGEgZnVsbCByZXNldCAqLwogCWlmICghYXRoX2hhbF9yZXNldChhaCwgc2MtPnNjX29wbW9kZSwg aWMtPmljX2N1cmNoYW4sIEFIX1RSVUUsICZzdGF0dXMpKQpAQCAtMTg4MSw2ICsxOTQxLDI2IEBA IGF0aF9yZXNldChzdHJ1Y3QgaWZuZXQgKmlmcCwgQVRIX1JFU0VUX1RZUEUgcmVzZXRfdHlwZSkK IAl9CiAJYXRoX2hhbF9pbnRyc2V0KGFoLCBzYy0+c2NfaW1hc2spOwogCisJQVRIX0xPQ0soc2Mp OworCXNjLT5zY19pbnJlc2V0X2NudC0tOworCUFUSF9VTkxPQ0soc2MpOworCisJLyogUmVzdGFy dCBUWC9SWCBhcyBuZWVkZWQgKi8KKwlhdGhfdHhyeF9zdGFydChzYyk7CisKKwkvKiBYWFggUmVz dGFydCBUWCBjb21wbGV0aW9uIGFuZCBwZW5kaW5nIFRYICovCisJaWYgKHJlc2V0X3R5cGUgPT0g QVRIX1JFU0VUX05PTE9TUykgeworCQlmb3IgKGkgPSAwOyBpIDwgSEFMX05VTV9UWF9RVUVVRVM7 IGkrKykgeworCQkJaWYgKEFUSF9UWFFfU0VUVVAoc2MsIGkpKSB7CisJCQkJQVRIX1RYUV9MT0NL KCZzYy0+c2NfdHhxW2ldKTsKKwkJCQlhdGhfdHhxX3Jlc3RhcnRfZG1hKHNjLCAmc2MtPnNjX3R4 cVtpXSk7CisJCQkJYXRoX3R4cV9zY2hlZChzYywgJnNjLT5zY190eHFbaV0pOworCQkJCUFUSF9U WFFfVU5MT0NLKCZzYy0+c2NfdHhxW2ldKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIEhhbmRsZSBh bnkgZnJhbWVzIGluIHRoZSBUWCBxdWV1ZSAqLwogCWF0aF9zdGFydChpZnApOwkJCS8qIHJlc3Rh cnQgeG1pdCAqLwogCXJldHVybiAwOwogfQpAQCAtMjAyOCw2ICsyMTA4LDE4IEBAIGF0aF9zdGFy dChzdHJ1Y3QgaWZuZXQgKmlmcCkKIAogCWlmICgoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJW X1JVTk5JTkcpID09IDAgfHwgc2MtPnNjX2ludmFsaWQpCiAJCXJldHVybjsKKworCS8qIFhYWCBp cyBpdCBvayB0byBob2xkIHRoZSBBVEhfTE9DSyBoZXJlPyAqLworCUFUSF9MT0NLKHNjKTsKKwlp ZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5zY19kZXYs CisJCSAgICAiJXM6IHNjX2lucmVzZXRfY250ID4gMDsgYmFpbGluZ1xuIiwgX19mdW5jX18pOwor CQlBVEhfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwlzYy0+c2NfdHhzdGFydF9jbnQrKzsK KwlBVEhfVU5MT0NLKHNjKTsKKwogCWZvciAoOzspIHsKIAkJLyoKIAkJICogR3JhYiBhIFRYIGJ1 ZmZlciBhbmQgYXNzb2NpYXRlZCByZXNvdXJjZXMuCkBAIC0yMTExLDYgKzIyMDMsMTAgQEAgYXRo X3N0YXJ0KHN0cnVjdCBpZm5ldCAqaWZwKQogCiAJCXNjLT5zY193ZF90aW1lciA9IDU7CiAJfQor CisJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHN0YXJ0X2NudC0tOworCUFUSF9VTkxPQ0soc2Mp OwogfQogCiBzdGF0aWMgaW50CkBAIC0zNjg4LDYgKzM3ODQsMTQgQEAgYXRoX3J4X3Rhc2tsZXQo dm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAKIAlDVFIxKEFUSF9LVFJfSU5UUiwgImF0aF9yeF9w cm9jOiBwZW5kaW5nPSVkIiwgbnBlbmRpbmcpOwogCURQUklOVEYoc2MsIEFUSF9ERUJVR19SWF9Q Uk9DLCAiJXM6IHBlbmRpbmcgJXVcbiIsIF9fZnVuY19fLCBucGVuZGluZyk7CisJQVRIX0xPQ0so c2MpOworCWlmIChzYy0+c2NfaW5yZXNldF9jbnQgPiAwKSB7CisJCWRldmljZV9wcmludGYoc2Mt PnNjX2RldiwKKwkJICAgICIlczogc2NfaW5yZXNldF9jbnQgPiAwOyBza2lwcGluZ1xuIiwgX19m dW5jX18pOworCQlBVEhfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwlBVEhfVU5MT0NLKHNj KTsKIAlhdGhfcnhfcHJvYyhzYywgMSk7CiB9CiAKQEAgLTM3MTEsNiArMzgxNSwxMyBAQCBhdGhf cnhfcHJvYyhzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IHJlc2NoZWQpCiAJdV9pbnQ2NF90IHRz ZjsKIAlpbnQgbnBrdHMgPSAwOwogCisJLyogWFhYIHdlIG11c3Qgbm90IGhvbGQgdGhlIEFUSF9M T0NLIGhlcmUgKi8KKwlBVEhfVU5MT0NLX0FTU0VSVChzYyk7CisKKwlBVEhfTE9DSyhzYyk7CisJ c2MtPnNjX3J4cHJvY19jbnQrKzsKKwlBVEhfVU5MT0NLKHNjKTsKKwogCURQUklOVEYoc2MsIEFU SF9ERUJVR19SWF9QUk9DLCAiJXM6IGNhbGxlZFxuIiwgX19mdW5jX18pOwogCW5nb29kID0gMDsK IAluZiA9IGF0aF9oYWxfZ2V0Y2hhbm5vaXNlKGFoLCBzYy0+c2NfY3VyY2hhbik7CkBAIC00MDgy LDYgKzQxOTMsMTAgQEAgcnhfbmV4dDoKIAkJCWF0aF9zdGFydChpZnApOwogCX0KICN1bmRlZiBQ QTJERVNDCisKKwlBVEhfTE9DSyhzYyk7CisJc2MtPnNjX3J4cHJvY19jbnQtLTsKKwlBVEhfVU5M T0NLKHNjKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ1ODksNiArNDcwNCw3IEBAIGF0aF90eF9w cm9jX3EwKHZvaWQgKmFyZywgaW50IG5wZW5kaW5nKQogCXVpbnQzMl90IHR4cXM7CiAKIAlBVEhf TE9DSyhzYyk7CisJc2MtPnNjX3R4cHJvY19jbnQrKzsKIAl0eHFzID0gc2MtPnNjX3R4cV9hY3Rp dmU7CiAJc2MtPnNjX3R4cV9hY3RpdmUgJj0gfnR4cXM7CiAJQVRIX1VOTE9DSyhzYyk7CkBAIC00 NjA0LDYgKzQ3MjAsMTAgQEAgYXRoX3R4X3Byb2NfcTAodm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcp CiAJaWYgKHNjLT5zY19zb2Z0bGVkKQogCQlhdGhfbGVkX2V2ZW50KHNjLCBzYy0+c2NfdHhyaXgp OwogCisJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHByb2NfY250LS07CisJQVRIX1VOTE9DSyhz Yyk7CisKIAlhdGhfc3RhcnQoaWZwKTsKIH0KIApAQCAtNDYyMCw2ICs0NzQwLDcgQEAgYXRoX3R4 X3Byb2NfcTAxMjModm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAJdWludDMyX3QgdHhxczsKIAog CUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhwcm9jX2NudCsrOwogCXR4cXMgPSBzYy0+c2NfdHhx X2FjdGl2ZTsKIAlzYy0+c2NfdHhxX2FjdGl2ZSAmPSB+dHhxczsKIAlBVEhfVU5MT0NLKHNjKTsK QEAgLTQ2NDcsNiArNDc2OCwxMCBAQCBhdGhfdHhfcHJvY19xMDEyMyh2b2lkICphcmcsIGludCBu cGVuZGluZykKIAlpZiAoc2MtPnNjX3NvZnRsZWQpCiAJCWF0aF9sZWRfZXZlbnQoc2MsIHNjLT5z Y190eHJpeCk7CiAKKwlBVEhfTE9DSyhzYyk7CisJc2MtPnNjX3R4cHJvY19jbnQtLTsKKwlBVEhf VU5MT0NLKHNjKTsKKwogCWF0aF9zdGFydChpZnApOwogfQogCkBAIC00NjYyLDYgKzQ3ODcsNyBA QCBhdGhfdHhfcHJvYyh2b2lkICphcmcsIGludCBucGVuZGluZykKIAl1aW50MzJfdCB0eHFzOwog CiAJQVRIX0xPQ0soc2MpOworCXNjLT5zY190eHByb2NfY250Kys7CiAJdHhxcyA9IHNjLT5zY190 eHFfYWN0aXZlOwogCXNjLT5zY190eHFfYWN0aXZlICY9IH50eHFzOwogCUFUSF9VTkxPQ0soc2Mp OwpAQCAtNDY4Miw2ICs0ODA4LDEwIEBAIGF0aF90eF9wcm9jKHZvaWQgKmFyZywgaW50IG5wZW5k aW5nKQogCWlmIChzYy0+c2Nfc29mdGxlZCkKIAkJYXRoX2xlZF9ldmVudChzYywgc2MtPnNjX3R4 cml4KTsKIAorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhwcm9jX2NudC0tOworCUFUSF9VTkxP Q0soc2MpOworCiAJYXRoX3N0YXJ0KGlmcCk7CiB9CiAjdW5kZWYJVFhRQUNUSVZFCkBAIC00ODYz LDkgKzQ5OTMsMTQgQEAgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBBVEhfUkVT RVRfVFlQRSByZXNldF90eXBlKQogCiAJKHZvaWQpIGF0aF9zdG9wdHhkbWEoc2MpOwogCi0JZm9y IChpID0gMDsgaSA8IEhBTF9OVU1fVFhfUVVFVUVTOyBpKyspCi0JCWlmIChBVEhfVFhRX1NFVFVQ KHNjLCBpKSkKLQkJCWF0aF90eF9kcmFpbnR4cShzYywgJnNjLT5zY190eHFbaV0pOworCWZvciAo aSA9IDA7IGkgPCBIQUxfTlVNX1RYX1FVRVVFUzsgaSsrKSB7CisJCWlmIChBVEhfVFhRX1NFVFVQ KHNjLCBpKSkgeworCQkJaWYgKHJlc2V0X3R5cGUgPT0gQVRIX1JFU0VUX05PTE9TUykKKwkJCQlh dGhfdHhfcHJvY2Vzc3Eoc2MsICZzYy0+c2NfdHhxW2ldLCAwKTsKKwkJCWVsc2UKKwkJCQlhdGhf dHhfZHJhaW50eHEoc2MsICZzYy0+c2NfdHhxW2ldKTsKKwkJfQorCX0KICNpZmRlZiBBVEhfREVC VUcKIAlpZiAoc2MtPnNjX2RlYnVnICYgQVRIX0RFQlVHX1JFU0VUKSB7CiAJCXN0cnVjdCBhdGhf YnVmICpiZiA9IFRBSUxRX0ZJUlNUKCZzYy0+c2NfYmJ1Zik7CkBAIC00OTg0LDYgKzUxMTksMTYg QEAgYXRoX2NoYW5fc2V0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX2No YW5uZWwgKmNoYW4pCiAJc3RydWN0IGlmbmV0ICppZnAgPSBzYy0+c2NfaWZwOwogCXN0cnVjdCBp ZWVlODAyMTFjb20gKmljID0gaWZwLT5pZl9sMmNvbTsKIAlzdHJ1Y3QgYXRoX2hhbCAqYWggPSBz Yy0+c2NfYWg7CisJaW50IHJldCA9IDA7CisKKwkvKiBUcmVhdCB0aGlzIGFzIGFuIGludGVyZmFj ZSByZXNldCAqLworCUFUSF9MT0NLKHNjKTsKKwlpZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkK KwkJZGV2aWNlX3ByaW50ZihzYy0+c2NfZGV2LCAiJXM6IGRhbmdlciEgY29uY3VycmVudCByZXNl dCFcbiIsCisJCSAgICBfX2Z1bmNfXyk7CisJc2MtPnNjX2lucmVzZXRfY250Kys7CisJQVRIX1VO TE9DSyhzYyk7CisJYXRoX3R4cnhfc3RvcChzYyk7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdf UkVTRVQsICIlczogJXUgKCV1IE1IeiwgZmxhZ3MgMHgleClcbiIsCiAJICAgIF9fZnVuY19fLCBp ZWVlODAyMTFfY2hhbjJpZWVlKGljLCBjaGFuKSwKQEAgLTUwMDQsNyArNTE0OSw4IEBAIGF0aF9j aGFuX3NldChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpj aGFuKQogCQkJICAgICJjaGFubmVsICV1ICgldSBNSHosIGZsYWdzIDB4JXgpLCBoYWwgc3RhdHVz ICV1XG4iLAogCQkJICAgIF9fZnVuY19fLCBpZWVlODAyMTFfY2hhbjJpZWVlKGljLCBjaGFuKSwK IAkJCSAgICBjaGFuLT5pY19mcmVxLCBjaGFuLT5pY19mbGFncywgc3RhdHVzKTsKLQkJCXJldHVy biBFSU87CisJCQlyZXQgPSBFSU87CisJCQlnb3RvIGZpbmlzaDsKIAkJfQogCQlzYy0+c2NfZGl2 ZXJzaXR5ID0gYXRoX2hhbF9nZXRkaXZlcnNpdHkoYWgpOwogCkBAIC01MDE3LDcgKzUxNjMsOCBA QCBhdGhfY2hhbl9zZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBpZWVlODAyMTFfY2hh bm5lbCAqY2hhbikKIAkJaWYgKGF0aF9zdGFydHJlY3Yoc2MpICE9IDApIHsKIAkJCWlmX3ByaW50 ZihpZnAsICIlczogdW5hYmxlIHRvIHJlc3RhcnQgcmVjdiBsb2dpY1xuIiwKIAkJCSAgICBfX2Z1 bmNfXyk7Ci0JCQlyZXR1cm4gRUlPOworCQkJcmV0ID0gRUlPOworCQkJZ290byBmaW5pc2g7CiAJ CX0KIAogCQkvKgpAQCAtNTA0NCw3ICs1MTkxLDE0IEBAIGF0aF9jaGFuX3NldChzdHJ1Y3QgYXRo X3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKQogCQkgKi8KIAkJYXRo X2hhbF9pbnRyc2V0KGFoLCBzYy0+c2NfaW1hc2spOwogCX0KLQlyZXR1cm4gMDsKKworZmluaXNo OgorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfaW5yZXNldF9jbnQtLTsKKwlBVEhfVU5MT0NLKHNj KTsKKwlhdGhfdHhyeF9zdGFydChzYyk7CisKKwlyZXR1cm4gcmV0OwogfQogCiAvKgpAQCAtNTA4 Nyw3ICs1MjQxLDE4IEBAIGF0aF9jYWxpYnJhdGUodm9pZCAqYXJnKQogCQkJRFBSSU5URihzYywg QVRIX0RFQlVHX0NBTElCUkFURSwKIAkJCQkiJXM6IHJmZ2FpbiBjaGFuZ2VcbiIsIF9fZnVuY19f KTsKIAkJCXNjLT5zY19zdGF0cy5hc3RfcGVyX3JmZ2FpbisrOworCQkJLyoKKwkJCSAqIERyb3Ag bG9jayAtIHdlIGNhbid0IGhvbGQgaXQgYWNyb3NzIHRoZQorCQkJICogYXRoX3Jlc2V0KCkgY2Fs bC4gSW5zdGVhZCwgd2UnbGwgZHJvcAorCQkJICogb3V0IGhlcmUsIGRvIGEgcmVzZXQsIHRoZW4g cmVzY2hlZHVsZQorCQkJICogdGhlIGNhbGxvdXQuCisJCQkgKi8KKwkJCWNhbGxvdXRfcmVzZXQo JnNjLT5zY19jYWxfY2gsIDEsIGF0aF9jYWxpYnJhdGUsIHNjKTsKKwkJCXNjLT5zY19yZXNldGNh bCA9IDA7CisJCQlzYy0+c2NfZG9yZXNldGNhbCA9IEFIX1RSVUU7CisJCQlBVEhfVU5MT0NLKHNj KTsKIAkJCWF0aF9yZXNldChpZnAsIEFUSF9SRVNFVF9OT0xPU1MpOworCQkJcmV0dXJuOwogCQl9 CiAJCS8qCiAJCSAqIElmIHRoaXMgbG9uZyBjYWwgaXMgYWZ0ZXIgYW4gaWRsZSBwZXJpb2QsIHRo ZW4KQEAgLTU3NDIsNiArNTkwNyw3IEBAIHN0YXRpYyB2b2lkCiBhdGhfd2F0Y2hkb2codm9pZCAq YXJnKQogewogCXN0cnVjdCBhdGhfc29mdGMgKnNjID0gYXJnOworCWludCBkb19yZXNldCA9IDA7 CiAKIAlpZiAoc2MtPnNjX3dkX3RpbWVyICE9IDAgJiYgLS1zYy0+c2Nfd2RfdGltZXIgPT0gMCkg ewogCQlzdHJ1Y3QgaWZuZXQgKmlmcCA9IHNjLT5zY19pZnA7CkBAIC01NzUzLDEwICs1OTE5LDIw IEBAIGF0aF93YXRjaGRvZyh2b2lkICphcmcpCiAJCQkgICAgaGFuZ3MgJiAweGZmID8gImJiIiA6 ICJtYWMiLCBoYW5ncyk7CiAJCX0gZWxzZQogCQkJaWZfcHJpbnRmKGlmcCwgImRldmljZSB0aW1l b3V0XG4iKTsKLQkJYXRoX3Jlc2V0KGlmcCwgQVRIX1JFU0VUX05PTE9TUyk7CisJCWRvX3Jlc2V0 ID0gMTsKIAkJaWZwLT5pZl9vZXJyb3JzKys7CiAJCXNjLT5zY19zdGF0cy5hc3Rfd2F0Y2hkb2cr KzsKIAl9CisKKwkvKgorCSAqIFdlIGNhbid0IGhvbGQgdGhlIGxvY2sgYWNyb3NzIHRoZSBhdGhf cmVzZXQoKSBjYWxsLgorCSAqLworCWlmIChkb19yZXNldCkgeworCQlBVEhfVU5MT0NLKHNjKTsK KwkJYXRoX3Jlc2V0KHNjLT5zY19pZnAsIEFUSF9SRVNFVF9OT0xPU1MpOworCQlBVEhfTE9DSyhz Yyk7CisJfQorCiAJY2FsbG91dF9zY2hlZHVsZSgmc2MtPnNjX3dkX2NoLCBoeik7CiB9CiAKZGlm ZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aF90eC5jIGIvc3lzL2Rldi9hdGgvaWZfYXRoX3R4 LmMKaW5kZXggYjhjNGM4MC4uMWE4Mzk3ZiAxMDA2NDQKLS0tIGEvc3lzL2Rldi9hdGgvaWZfYXRo X3R4LmMKKysrIGIvc3lzL2Rldi9hdGgvaWZfYXRoX3R4LmMKQEAgLTQ3Nyw4ICs0NzcsNiBAQCBh dGhfdHhfaGFuZG9mZl9tY2FzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEg KnR4cSwKIAl0eHEtPmF4cV9saW5rID0gJmJmLT5iZl9sYXN0ZHMtPmRzX2xpbms7CiB9CiAKLQot CiAvKgogICogSGFuZC1vZmYgcGFja2V0IHRvIGEgaGFyZHdhcmUgcXVldWUuCiAgKi8KQEAgLTUw MSw2ICs0OTksMjkgQEAgYXRoX3R4X2hhbmRvZmZfaHcoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0 cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBhdGhfYnVmICpiZikKIAlLQVNTRVJUKHR4cS0+YXhx X3FudW0gIT0gQVRIX1RYUV9TV1EsCiAJICAgICAoImF0aF90eF9oYW5kb2ZmX2h3IGNhbGxlZCBm b3IgbWNhc3QgcXVldWUiKSk7CiAKKwlBVEhfTE9DSyhzYyk7CisJaWYgKHNjLT5zY19pbnJlc2V0 X2NudCkgeworCQlBVEhfVU5MT0NLKHNjKTsKKwkJRFBSSU5URihzYywgQVRIX0RFQlVHX1JFU0VU LAorCQkgICAgIiVzOiBjYWxsZWQgd2l0aCBzY19pbl9yZXNldCAhPSAwXG4iLAorCQkgICAgX19m dW5jX18pOworCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdfWE1JVCwKKwkJICAgICIlczogcXVldWVk OiBUWERQWyV1XSA9ICVwICglcCkgZGVwdGggJWRcbiIsCisJCSAgICBfX2Z1bmNfXywgdHhxLT5h eHFfcW51bSwKKwkJICAgIChjYWRkcl90KWJmLT5iZl9kYWRkciwgYmYtPmJmX2Rlc2MsCisJCSAg ICB0eHEtPmF4cV9kZXB0aCk7CisJCUFUSF9UWFFfSU5TRVJUX1RBSUwodHhxLCBiZiwgYmZfbGlz dCk7CisJCWlmIChiZi0+YmZfc3RhdGUuYmZzX2FnZ3IpCisJCQl0eHEtPmF4cV9hZ2dyX2RlcHRo Kys7CisJCS8qCisJCSAqIFRoZXJlJ3Mgbm8gbmVlZCB0byB1cGRhdGUgYXhxX2xpbms7IHRoZSBo YXJkd2FyZQorCQkgKiBpcyBpbiByZXNldCBhbmQgb25jZSB0aGUgcmVzZXQgaXMgY29tcGxldGUs IGFueQorCQkgKiBub24tZW1wdHkgcXVldWVzIHdpbGwgc2ltcGx5IGhhdmUgRE1BIHJlc3RhcnRl ZC4KKwkJICovCisJCXJldHVybjsKKwl9CisJQVRIX1VOTE9DSyhzYyk7CisKIAkvKiBGb3Igbm93 LCBzbyBub3QgdG8gZ2VuZXJhdGUgd2hpdGVzcGFjZSBkaWZmcyAqLwogCWlmICgxKSB7CiAjaWZk ZWYgSUVFRTgwMjExX1NVUFBPUlRfVERNQQpAQCAtMTY4OCw2ICsxNzA5LDE3IEBAIGF0aF9yYXdf eG1pdChzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1Y3QgbWJ1ZiAqbSwKIAlzdHJ1Y3Qg YXRoX2J1ZiAqYmY7CiAJaW50IGVycm9yOwogCisJQVRIX0xPQ0soc2MpOworCWlmIChzYy0+c2Nf aW5yZXNldF9jbnQgPiAwKSB7CisJCWRldmljZV9wcmludGYoc2MtPnNjX2RldiwgIiVzOiBzY19p bnJlc2V0X2NudCA+IDA7IGJhaWxpbmdcbiIsCisJCSAgICBfX2Z1bmNfXyk7CisJCWVycm9yID0g RUlPOworCQlBVEhfVU5MT0NLKHNjKTsKKwkJZ290byBiYWQwOworCX0KKwlzYy0+c2NfdHhzdGFy dF9jbnQrKzsKKwlBVEhfVU5MT0NLKHNjKTsKKwogCWlmICgoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJ RkZfRFJWX1JVTk5JTkcpID09IDAgfHwgc2MtPnNjX2ludmFsaWQpIHsKIAkJRFBSSU5URihzYywg QVRIX0RFQlVHX1hNSVQsICIlczogZGlzY2FyZCBmcmFtZSwgJXMiLCBfX2Z1bmNfXywKIAkJICAg IChpZnAtPmlmX2Rydl9mbGFncyAmIElGRl9EUlZfUlVOTklORykgPT0gMCA/CkBAIC0xNzMwLDE1 ICsxNzYyLDI0IEBAIGF0aF9yYXdfeG1pdChzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLCBzdHJ1 Y3QgbWJ1ZiAqbSwKIAlpZnAtPmlmX29wYWNrZXRzKys7CiAJc2MtPnNjX3N0YXRzLmFzdF90eF9y YXcrKzsKIAorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhzdGFydF9jbnQtLTsKKwlBVEhfVU5M T0NLKHNjKTsKKwogCXJldHVybiAwOwogYmFkMjoKIAlBVEhfVFhCVUZfTE9DSyhzYyk7CiAJVEFJ TFFfSU5TRVJUX0hFQUQoJnNjLT5zY190eGJ1ZiwgYmYsIGJmX2xpc3QpOwogCUFUSF9UWEJVRl9V TkxPQ0soc2MpOwogYmFkOgorCUFUSF9MT0NLKHNjKTsKKwlzYy0+c2NfdHhzdGFydF9jbnQtLTsK KwlBVEhfVU5MT0NLKHNjKTsKK2JhZDA6CiAJaWZwLT5pZl9vZXJyb3JzKys7CiAJc2MtPnNjX3N0 YXRzLmFzdF90eF9yYXdfZmFpbCsrOwogCWllZWU4MDIxMV9mcmVlX25vZGUobmkpOworCiAJcmV0 dXJuIGVycm9yOwogfQogCmRpZmYgLS1naXQgYS9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaCBiL3N5 cy9kZXYvYXRoL2lmX2F0aHZhci5oCmluZGV4IDIxODI5YTYyLi40NDc2MmEwIDEwMDY0NAotLS0g YS9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaAorKysgYi9zeXMvZGV2L2F0aC9pZl9hdGh2YXIuaApA QCAtNDI0LDYgKzQyNCw3IEBAIHN0cnVjdCBhdGhfc29mdGMgewogCXVfaW50CQkJc2NfdHhhbnRl bm5hOwkvKiB0eCBhbnRlbm5hIChmaXhlZCBvciBhdXRvKSAqLwogCiAJSEFMX0lOVAkJCXNjX2lt YXNrOwkvKiBpbnRlcnJ1cHQgbWFzayBjb3B5ICovCisKIAkvKgogCSAqIFRoZXNlIGFyZSBtb2Rp ZmllZCBpbiB0aGUgaW50ZXJydXB0IGhhbmRsZXIgYXMgd2VsbCBhcwogCSAqIHRoZSB0YXNrIHF1 ZXVlcyBhbmQgb3RoZXIgY29udGV4dHMuIFRodXMgdGhlc2UgbXVzdCBiZQpAQCAtNDM0LDYgKzQz NSwxMSBAQCBzdHJ1Y3QgYXRoX3NvZnRjIHsKIAkgKi8KIAl1aW50MzJfdAkJc2NfdHhxX2FjdGl2 ZTsJLyogYml0bWFwIG9mIGFjdGl2ZSBUWFFzICovCiAJdWludDMyX3QJCXNjX2tpY2twY3U7CS8q IHdoZXRoZXIgdG8ga2ljayB0aGUgUENVICovCisJdWludDMyX3QJCXNjX3J4cHJvY19jbnQ7CS8q IEluIFJYIHByb2Nlc3NpbmcgKi8KKwl1aW50MzJfdAkJc2NfdHhwcm9jX2NudDsJLyogSW4gVFgg cHJvY2Vzc2luZyAqLworCXVpbnQzMl90CQlzY190eHN0YXJ0X2NudDsJLyogSW4gVFggb3V0cHV0 IChyYXcvc3RhcnQpICovCisJdWludDMyX3QJCXNjX2lucmVzZXRfY250OwkvKiBJbiBhY3RpdmUg cmVzZXQvY2hhbmNoYW5nZSAqLworCXVpbnQzMl90CQlzY190eHJ4X2NudDsJLyogcmVmY291bnQg b24gc3RvcC9zdGFydCdpbmcgVFggKi8KIAogCXVfaW50CQkJc2Nfa2V5bWF4OwkvKiBzaXplIG9m IGtleSBjYWNoZSAqLwogCXVfaW50OF90CQlzY19rZXltYXBbQVRIX0tFWUJZVEVTXTsvKiBrZXkg dXNlIGJpdCBtYXAgKi8KQEAgLTU1Myw2ICs1NTksNyBAQCBzdHJ1Y3QgYXRoX3NvZnRjIHsKICNk ZWZpbmUJQVRIX0xPQ0soX3NjKQkJbXR4X2xvY2soJihfc2MpLT5zY19tdHgpCiAjZGVmaW5lCUFU SF9VTkxPQ0soX3NjKQkJbXR4X3VubG9jaygmKF9zYyktPnNjX210eCkKICNkZWZpbmUJQVRIX0xP Q0tfQVNTRVJUKF9zYykJbXR4X2Fzc2VydCgmKF9zYyktPnNjX210eCwgTUFfT1dORUQpCisjZGVm aW5lCUFUSF9VTkxPQ0tfQVNTRVJUKF9zYykJbXR4X2Fzc2VydCgmKF9zYyktPnNjX210eCwgTUFf Tk9UT1dORUQpCiAKIC8qCiAgKiBUaGUgUENVIGxvY2sgaXMgbm9uLXJlY3Vyc2l2ZSBhbmQgc2hv dWxkIGJlIHRyZWF0ZWQgYXMgYSBzcGlubG9jay4K --20cf307f30a25c138804b1bac652-- From owner-freebsd-wireless@FreeBSD.ORG Tue Nov 15 00:14:01 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C110A106564A for ; Tue, 15 Nov 2011 00:14:00 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7A1D18FC0A for ; Tue, 15 Nov 2011 00:14:00 +0000 (UTC) Received: by vws11 with SMTP id 11so8264288vws.13 for ; Mon, 14 Nov 2011 16:13:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=5MWE1gOiBNLZF3fcS+rpwh7ligbRtGAEwbyuvIM0Qds=; b=qAtwxnXZdKLqNgX3a5JzVjaGgkHr1SQDT1R028kGKYjpM77kysqfxkQnTrJkATbSsG FVBR2XjuCR+fEwK+yWOhZJTRYcQHd+BWebPX/29SKwX7f/SaHTK951MGAHcP63smLcML ndSRMgwCxGlwChUNNIavVNg6xoKn9369ClR68= MIME-Version: 1.0 Received: by 10.52.34.78 with SMTP id x14mr32013909vdi.122.1321316039662; Mon, 14 Nov 2011 16:13:59 -0800 (PST) Received: by 10.52.29.198 with HTTP; Mon, 14 Nov 2011 16:13:59 -0800 (PST) In-Reply-To: References: Date: Mon, 14 Nov 2011 16:13:59 -0800 Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [patch] teach ath(4) to not flush frames during reset or run reset/tx/rx concurrently X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 15 Nov 2011 00:14:01 -0000 .. and I'm now doing this development in git, rather than subversion: https://gitorious.org/~adrianchadd/freebsd/adrianchadd-freebsd-work It's the "ath_reset" branch. Adrian From owner-freebsd-wireless@FreeBSD.ORG Wed Nov 16 18:06:45 2011 Return-Path: Delivered-To: freebsd-wireless@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12F341065670; Wed, 16 Nov 2011 18:06:45 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 78CC28FC08; Wed, 16 Nov 2011 18:06:44 +0000 (UTC) Received: by vws11 with SMTP id 11so11154164vws.13 for ; Wed, 16 Nov 2011 10:06:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=WEoZC0/fIQhGbEZaeVB6mo6yqCRoloroHJ+JuSzLJ0Y=; b=aaFdOhfUUU5cDfFhWRBCr+7DgPe1vuFugusKAYMGTy+40RTP30QE/Yn7BbsnY8RVfy 9y14nwhba32cr0UgbeAp0lWUBc8vdLjUZjlToZ+PnYyGqDcGt5vgqSdD6phaBaWOtZ8F l/ZRWLh176nx9G8z4A8UsHzpF5dNDDp3C8Xk0= MIME-Version: 1.0 Received: by 10.52.34.78 with SMTP id x14mr45631521vdi.122.1321466803635; Wed, 16 Nov 2011 10:06:43 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.52.29.198 with HTTP; Wed, 16 Nov 2011 10:06:43 -0800 (PST) Date: Wed, 16 Nov 2011 10:06:43 -0800 X-Google-Sender-Auth: 2jcm0QdjKRlnHeEj9gu1iYFiUsk Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org, freebsd-mobile@freebsd.org Content-Type: multipart/mixed; boundary=20cf3079b74e69c3da04b1ddf704 Cc: Subject: [patch] updated reset handling X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Wed, 16 Nov 2011 18:06:45 -0000 --20cf3079b74e69c3da04b1ddf704 Content-Type: text/plain; charset=ISO-8859-1 Hi, This patch introduces all the missing locking/serialisation to (hopefully) ensure the reset and channel change paths are handled correctly. This fixes all of the throughput issues that occur during an interface reset. I'm not going to push it into -HEAD until I've done a lot more testing (read: more than just one station and one access point.) I'd thus like to hear feedback from the 11n testers I have out there. Thanks, Adrian --20cf3079b74e69c3da04b1ddf704 Content-Type: application/octet-stream; name="freebsd-head-reset-noloss-5.diff" Content-Disposition: attachment; filename="freebsd-head-reset-noloss-5.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gv2n6yei0 ZGlmZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aC5jIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMK aW5kZXggYzM0ODVlNC4uYTg2NzFlNSAxMDA2NDQKLS0tIGEvc3lzL2Rldi9hdGgvaWZfYXRoLmMK KysrIGIvc3lzL2Rldi9hdGgvaWZfYXRoLmMKQEAgLTEzNTksMTYgKzEzNTksMzYgQEAgYXRoX2lu dHIodm9pZCAqYXJnKQogCUhBTF9JTlQgc3RhdHVzID0gMDsKIAl1aW50MzJfdCB0eHFzOwogCisJ LyoKKwkgKiBJZiB3ZSdyZSBpbnNpZGUgYSByZXNldCBwYXRoLCBqdXN0IHByaW50IGEgd2Fybmlu ZyBhbmQKKwkgKiBjbGVhciB0aGUgSVNSLiBUaGUgcmVzZXQgcm91dGluZSB3aWxsIGZpbmlzaCBp dCBmb3IgdXMuCisJICovCisJQVRIX1BDVV9MT0NLKHNjKTsKKwlpZiAoc2MtPnNjX2lucmVzZXRf Y250KSB7CisJCUhBTF9JTlQgc3RhdHVzOworCQlhdGhfaGFsX2dldGlzcihhaCwgJnN0YXR1cyk7 CS8qIGNsZWFyIElTUiAqLworCQlhdGhfaGFsX2ludHJzZXQoYWgsIDApOwkJLyogZGlzYWJsZSBm dXJ0aGVyIGludHIncyAqLworCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdfQU5ZLAorCQkgICAgIiVz OiBpbiByZXNldCwgaWdub3Jpbmc6IHN0YXR1cz0weCV4XG4iLAorCQkgICAgX19mdW5jX18sIHN0 YXR1cyk7CisJCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwogCWlmIChzYy0+ c2NfaW52YWxpZCkgewogCQkvKgogCQkgKiBUaGUgaGFyZHdhcmUgaXMgbm90IHJlYWR5L3ByZXNl bnQsIGRvbid0IHRvdWNoIGFueXRoaW5nLgogCQkgKiBOb3RlIHRoaXMgY2FuIGhhcHBlbiBlYXJs eSBvbiBpZiB0aGUgSVJRIGlzIHNoYXJlZC4KIAkJICovCiAJCURQUklOVEYoc2MsIEFUSF9ERUJV R19BTlksICIlczogaW52YWxpZDsgaWdub3JlZFxuIiwgX19mdW5jX18pOworCQlBVEhfUENVX1VO TE9DSyhzYyk7CiAJCXJldHVybjsKIAl9Ci0JaWYgKCFhdGhfaGFsX2ludHJwZW5kKGFoKSkJCS8q IHNoYXJlZCBpcnEsIG5vdCBmb3IgdXMgKi8KKwlpZiAoIWF0aF9oYWxfaW50cnBlbmQoYWgpKSB7 CQkvKiBzaGFyZWQgaXJxLCBub3QgZm9yIHVzICovCisJCUFUSF9QQ1VfVU5MT0NLKHNjKTsKIAkJ cmV0dXJuOworCX0KKwogCWlmICgoaWZwLT5pZl9mbGFncyAmIElGRl9VUCkgPT0gMCB8fAogCSAg ICAoaWZwLT5pZl9kcnZfZmxhZ3MgJiBJRkZfRFJWX1JVTk5JTkcpID09IDApIHsKIAkJSEFMX0lO VCBzdGF0dXM7CkBAIC0xMzc3LDggKzEzOTcsMTAgQEAgYXRoX2ludHIodm9pZCAqYXJnKQogCQkJ X19mdW5jX18sIGlmcC0+aWZfZmxhZ3MpOwogCQlhdGhfaGFsX2dldGlzcihhaCwgJnN0YXR1cyk7 CS8qIGNsZWFyIElTUiAqLwogCQlhdGhfaGFsX2ludHJzZXQoYWgsIDApOwkJLyogZGlzYWJsZSBm dXJ0aGVyIGludHIncyAqLworCQlBVEhfUENVX1VOTE9DSyhzYyk7CiAJCXJldHVybjsKIAl9CisK IAkvKgogCSAqIEZpZ3VyZSBvdXQgdGhlIHJlYXNvbihzKSBmb3IgdGhlIGludGVycnVwdC4gIE5v dGUKIAkgKiB0aGF0IHRoZSBoYWwgcmV0dXJucyBhIHBzZXVkby1JU1IgdGhhdCBtYXkgaW5jbHVk ZQpAQCAtMTQwMCw5ICsxNDIyLDIzIEBAIGF0aF9pbnRyKHZvaWQgKmFyZykKIAlzdGF0dXMgJj0g c2MtPnNjX2ltYXNrOwkJCS8qIGRpc2NhcmQgdW5hc2tlZCBmb3IgYml0cyAqLwogCiAJLyogU2hv cnQtY2lyY3VpdCB1bi1oYW5kbGVkIGludGVycnVwdHMgKi8KLQlpZiAoc3RhdHVzID09IDB4MCkK KwlpZiAoc3RhdHVzID09IDB4MCkgeworCQlBVEhfUENVX1VOTE9DSyhzYyk7CiAJCXJldHVybjsK Kwl9CiAKKwkvKgorCSAqIFRha2UgYSBub3RlIHRoYXQgd2UncmUgaW5zaWRlIHRoZSBpbnRlcnJ1 cHQgaGFuZGxlciwgc28KKwkgKiB0aGUgcmVzZXQgcm91dGluZXMga25vdyB0byB3YWl0LgorCSAq LworCXNjLT5zY19pbnRyX2NudCsrOworCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKworCS8qCisJICog SGFuZGxlIHRoZSBpbnRlcnJ1cHQuIFdlIHdvbid0IHJ1biBjb25jdXJyZW50IHdpdGggdGhlIHJl c2V0CisJICogb3IgY2hhbm5lbCBjaGFuZ2Ugcm91dGluZXMgYXMgdGhleSdsbCB3YWl0IGZvciBz Y19pbnRyX2NudAorCSAqIHRvIGJlIDAgYmVmb3JlIGNvbnRpbnVpbmcuCisJICovCiAJaWYgKHN0 YXR1cyAmIEhBTF9JTlRfRkFUQUwpIHsKIAkJc2MtPnNjX3N0YXRzLmFzdF9oYXJkd2FyZSsrOwog CQlhdGhfaGFsX2ludHJzZXQoYWgsIDApOwkJLyogZGlzYWJsZSBpbnRyJ3MgdW50aWwgcmVzZXQg Ki8KQEAgLTE0NDMsNiArMTQ3OSw3IEBAIGF0aF9pbnRyKHZvaWQgKmFyZykKIAkJaWYgKHN0YXR1 cyAmIEhBTF9JTlRfUlhFT0wpIHsKIAkJCWludCBpbWFzazsKIAkJCUNUUjAoQVRIX0tUUl9FUlIs ICJhdGhfaW50cjogUlhFT0wiKTsKKwkJCUFUSF9QQ1VfTE9DSyhzYyk7CiAJCQkvKgogCQkJICog TkI6IHRoZSBoYXJkd2FyZSBzaG91bGQgcmUtcmVhZCB0aGUgbGluayB3aGVuCiAJCQkgKiAgICAg UlhFIGJpdCBpcyB3cml0dGVuLCBidXQgaXQgZG9lc24ndCB3b3JrIGF0CkBAIC0xNDU4LDcgKzE0 OTUsNiBAQCBhdGhfaW50cih2b2lkICphcmcpCiAJCQkgKiBieSBhIGNhbGwgdG8gYXRoX3Jlc2V0 KCkgc29tZWhvdywgdGhlCiAJCQkgKiBpbnRlcnJ1cHQgbWFzayB3aWxsIGJlIGNvcnJlY3RseSBy ZXByb2dyYW1tZWQuCiAJCQkgKi8KLQkJCUFUSF9MT0NLKHNjKTsKIAkJCWltYXNrID0gc2MtPnNj X2ltYXNrOwogCQkJaW1hc2sgJj0gfihIQUxfSU5UX1JYRU9MIHwgSEFMX0lOVF9SWE9STik7CiAJ CQlhdGhfaGFsX2ludHJzZXQoYWgsIGltYXNrKTsKQEAgLTE0NzYsMTMgKzE1MTIsMTMgQEAgYXRo X2ludHIodm9pZCAqYXJnKQogCQkJaWYgKCEgc2MtPnNjX2tpY2twY3UpCiAJCQkJc2MtPnNjX3J4 bGluayA9IE5VTEw7CiAJCQlzYy0+c2Nfa2lja3BjdSA9IDE7Ci0JCQlBVEhfVU5MT0NLKHNjKTsK IAkJCS8qCiAJCQkgKiBFbnF1ZXVlIGFuIFJYIHByb2MsIHRvIGhhbmRsZWQgd2hhdGV2ZXIKIAkJ CSAqIGlzIGluIHRoZSBSWCBxdWV1ZS4KIAkJCSAqIFRoaXMgd2lsbCB0aGVuIGtpY2sgdGhlIFBD VS4KIAkJCSAqLwogCQkJdGFza3F1ZXVlX2VucXVldWUoc2MtPnNjX3RxLCAmc2MtPnNjX3J4dGFz ayk7CisJCQlBVEhfUENVX1VOTE9DSyhzYyk7CiAJCX0KIAkJaWYgKHN0YXR1cyAmIEhBTF9JTlRf VFhVUk4pIHsKIAkJCXNjLT5zY19zdGF0cy5hc3RfdHh1cm4rKzsKQEAgLTE1MDAsMTIgKzE1MzYs MTIgQEAgYXRoX2ludHIodm9pZCAqYXJnKQogCQkJICogYW5kIGJsYW5rIHRoZW0uIFRoaXMgaXMg dGhlIG9ubHkgcGxhY2Ugd2Ugc2hvdWxkIGJlCiAJCQkgKiBkb2luZyB0aGlzLgogCQkJICovCi0J CQlBVEhfTE9DSyhzYyk7CisJCQlBVEhfUENVX0xPQ0soc2MpOwogCQkJdHhxcyA9IDB4ZmZmZmZm ZmY7CiAJCQlhdGhfaGFsX2dldHR4aW50cnR4cXMoc2MtPnNjX2FoLCAmdHhxcyk7CiAJCQlzYy0+ c2NfdHhxX2FjdGl2ZSB8PSB0eHFzOwotCQkJQVRIX1VOTE9DSyhzYyk7CiAJCQl0YXNrcXVldWVf ZW5xdWV1ZShzYy0+c2NfdHEsICZzYy0+c2NfdHh0YXNrKTsKKwkJCUFUSF9QQ1VfVU5MT0NLKHNj KTsKIAkJfQogCQlpZiAoc3RhdHVzICYgSEFMX0lOVF9CTUlTUykgewogCQkJc2MtPnNjX3N0YXRz LmFzdF9ibWlzcysrOwpAQCAtMTUxNyw2ICsxNTUzLDcgQEAgYXRoX2ludHIodm9pZCAqYXJnKQog CQkJc2MtPnNjX3N0YXRzLmFzdF90eF9jc3QrKzsKIAkJaWYgKHN0YXR1cyAmIEhBTF9JTlRfTUlC KSB7CiAJCQlzYy0+c2Nfc3RhdHMuYXN0X21pYisrOworCQkJQVRIX1BDVV9MT0NLKHNjKTsKIAkJ CS8qCiAJCQkgKiBEaXNhYmxlIGludGVycnVwdHMgdW50aWwgd2Ugc2VydmljZSB0aGUgTUlCCiAJ CQkgKiBpbnRlcnJ1cHQ7IG90aGVyd2lzZSBpdCB3aWxsIGNvbnRpbnVlIHRvIGZpcmUuCkBAIC0x NTMzLDEwICsxNTcwLDkgQEAgYXRoX2ludHIodm9pZCAqYXJnKQogCQkJICogUlhFT0wgYmVmb3Jl IHRoZSByeHByb2MgaGFzIGhhZCBhIGNoYW5jZQogCQkJICogdG8gcnVuLgogCQkJICovCi0JCQlB VEhfTE9DSyhzYyk7CiAJCQlpZiAoc2MtPnNjX2tpY2twY3UgPT0gMCkKIAkJCQlhdGhfaGFsX2lu dHJzZXQoYWgsIHNjLT5zY19pbWFzayk7Ci0JCQlBVEhfVU5MT0NLKHNjKTsKKwkJCUFUSF9QQ1Vf VU5MT0NLKHNjKTsKIAkJfQogCQlpZiAoc3RhdHVzICYgSEFMX0lOVF9SWE9STikgewogCQkJLyog TkI6IGhhbCBtYXJrcyBIQUxfSU5UX0ZBVEFMIHdoZW4gUlhPUk4gaXMgZmF0YWwgKi8KQEAgLTE1 NDQsNiArMTU4MCw5IEBAIGF0aF9pbnRyKHZvaWQgKmFyZykKIAkJCXNjLT5zY19zdGF0cy5hc3Rf cnhvcm4rKzsKIAkJfQogCX0KKwlBVEhfUENVX0xPQ0soc2MpOworCXNjLT5zY19pbnRyX2NudC0t OworCUFUSF9QQ1VfVU5MT0NLKHNjKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE4MTksNiArMTg1 OCw0NSBAQCBhdGhfc3RvcF9sb2NrZWQoc3RydWN0IGlmbmV0ICppZnApCiB9CiAKIHN0YXRpYyB2 b2lkCithdGhfdHhyeF9zdG9wKHN0cnVjdCBhdGhfc29mdGMgKnNjKQoreworCWludCBpID0gMTAw MDsKKworCUFUSF9VTkxPQ0tfQVNTRVJUKHNjKTsKKworCS8qIFN0b3AgYW55IG5ldyBUWC9SWCBm cm9tIG9jY3VyaW5nICovCisJdGFza3F1ZXVlX2Jsb2NrKHNjLT5zY190cSk7CisKKwlBVEhfUENV X0xPQ0soc2MpOworCisJLyoKKwkgKiBTbGVlcCB1bnRpbCBhbGwgdGhlIHBlbmRpbmcgb3BlcmF0 aW9ucyBoYXZlIGNvbXBsZXRlZC4KKwkgKgorCSAqIFRoZSBjYWxsZXIgbXVzdCBlbnN1cmUgdGhh dCByZXNldCBoYXMgYmVlbiBpbmNyZW1lbnRlZAorCSAqIG9yIHRoaXMgd29uJ3QgZXZlciBvY2N1 ci4KKwkgKi8KKwl3aGlsZSAoc2MtPnNjX3J4cHJvY19jbnQgfHwgc2MtPnNjX3R4cHJvY19jbnQg fHwKKwkgICAgc2MtPnNjX3R4c3RhcnRfY250IHx8IHNjLT5zY19pbnRyX2NudCkgeworCSAgICAJ aWYgKGkgPD0gMCkKKwkJCWJyZWFrOworCQltc2xlZXAoc2MsICZzYy0+c2NfbXR4LCAwLCAiYXRo X3R4cnhfc3RvcCIsIDEpOworCQlpLS07CisJfQorCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKworCWlm IChpIDw9IDApCisJCWRldmljZV9wcmludGYoc2MtPnNjX2RldiwKKwkJICAgICIlczogZGlkbid0 IGZpbmlzaCBhZnRlciAxMDAwIGl0ZXJhdGlvbnNcbiIsIF9fZnVuY19fKTsKK30KKworc3RhdGlj IHZvaWQKK2F0aF90eHJ4X3N0YXJ0KHN0cnVjdCBhdGhfc29mdGMgKnNjKQoreworCisJdGFza3F1 ZXVlX3VuYmxvY2soc2MtPnNjX3RxKTsKK30KKworc3RhdGljIHZvaWQKIGF0aF9zdG9wKHN0cnVj dCBpZm5ldCAqaWZwKQogewogCXN0cnVjdCBhdGhfc29mdGMgKnNjID0gaWZwLT5pZl9zb2Z0YzsK QEAgLTE4NDIsMTcgKzE5MjAsNTEgQEAgYXRoX3Jlc2V0KHN0cnVjdCBpZm5ldCAqaWZwLCBBVEhf UkVTRVRfVFlQRSByZXNldF90eXBlKQogCXN0cnVjdCBpZWVlODAyMTFjb20gKmljID0gaWZwLT5p Zl9sMmNvbTsKIAlzdHJ1Y3QgYXRoX2hhbCAqYWggPSBzYy0+c2NfYWg7CiAJSEFMX1NUQVRVUyBz dGF0dXM7CisJaW50IGk7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdfUkVTRVQsICIlczogY2Fs bGVkXG4iLCBfX2Z1bmNfXyk7CiAKKwkvKiBYWFggZW5zdXJlIEFUSF9MT0NLIGlzbid0IGhlbGQ7 IGF0aF9yeF9wcm9jIGNhbid0IGJlIGxvY2tlZCAqLworCUFUSF9QQ1VfVU5MT0NLX0FTU0VSVChz Yyk7CisJQVRIX1VOTE9DS19BU1NFUlQoc2MpOworCisJQVRIX1BDVV9MT0NLKHNjKTsKKwkvKiBY WFggaWYgd2UncmUgYWxyZWFkeSBpbnNpZGUgYSByZXNldCwgcHJpbnQgb3V0IGEgYmlnIHdhcm5p bmcgKi8KKwlpZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNj LT5zY19kZXYsCisJCSAgICAiJXM6IGNvbmN1cnJlbnQgYXRoX3Jlc2V0KCkhIERhbmdlciFcbiIs CisJCSAgICBfX2Z1bmNfXyk7CisJfQorCXNjLT5zY19pbnJlc2V0X2NudCsrOwogCWF0aF9oYWxf aW50cnNldChhaCwgMCk7CQkvKiBkaXNhYmxlIGludGVycnVwdHMgKi8KKwlBVEhfUENVX1VOTE9D SyhzYyk7CisKKwkvKgorCSAqIFhYWCBzaG91bGQgbm93IHdhaXQgZm9yIHBlbmRpbmcgVFgvUlgg dG8gY29tcGxldGUKKwkgKiBhbmQgYmxvY2sgZnV0dXJlIG9uZXMgZnJvbSBvY2N1cmluZy4KKwkg Ki8KKwlhdGhfdHhyeF9zdG9wKHNjKTsKKwogCWF0aF9kcmFpbnR4cShzYywgcmVzZXRfdHlwZSk7 CS8qIHN0b3AgeG1pdCBzaWRlICovCisKIAkvKgotCSAqIFhYWCBEb24ndCBmbHVzaCBpZiBBVEhf UkVTRVRfTk9MT1NTO2J1dCB3ZSBoYXZlIHRvIGZpcnN0Ci0JICogWFhYIG5lZWQgdG8gZW5zdXJl IHRoaXMgZG9lc24ndCByYWNlIHdpdGggYW4gb3V0c3RhbmRpbmcKLQkgKiBYWFggdGFza3F1ZXVl IGNhbGwuCisJICogUmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlJ3JlIGRvaW5nIGEgbm8tbG9zcyBm bHVzaCBvcgorCSAqIG5vdCwgc3RvcCB0aGUgUENVIGFuZCBoYW5kbGUgd2hhdCdzIGluIHRoZSBS WCBxdWV1ZS4KKwkgKiBUaGF0IHdheSBmcmFtZXMgYXJlbid0IGRyb3BwZWQgd2hpY2ggc2hvdWxk bid0IGJlLgogCSAqLwotCWF0aF9zdG9wcmVjdihzYyk7CQkvKiBzdG9wIHJlY3Ygc2lkZSAqLwor CWF0aF9oYWxfc3RvcHBjdXJlY3YoYWgpOworCWF0aF9oYWxfc2V0cnhmaWx0ZXIoYWgsIDApOwor CWF0aF9yeF9wcm9jKHNjLCAwKTsKKworCS8qCisJICogSWYgd2UncmUgbm90IGRvaW5nIGEgbm9s b3NzIHJlc2V0LCBub3cgY2FsbCBhdGhfc3RvcHJlY3YoKS4KKwkgKiBUaGlzIGZ1bGx5IHN0b3Bz IGFsbCBvZiB0aGUgUlggbWFjaGluZXJ5IGFuZCBmbHVzaGVzIHdoYXRldmVyCisJICogZnJhbWVz IGFyZSBpbiB0aGUgUlggcmluZyBidWZmZXIuIEhvcGVmdWxseSBhbGwgY29tcGxldGVkCisJICog ZnJhbWVzIGhhdmUgYmVlbiBoYW5kbGVkIGF0IHRoaXMgcG9pbnQuCisJICovCisJaWYgKHJlc2V0 X3R5cGUgIT0gQVRIX1JFU0VUX05PTE9TUykKKwkJYXRoX3N0b3ByZWN2KHNjKTsJCS8qIHN0b3Ag cmVjdiBzaWRlICovCisKIAlhdGhfc2V0dGtpcG1pYyhzYyk7CQkvKiBjb25maWd1cmUgVEtJUCBN SUMgaGFuZGxpbmcgKi8KIAkvKiBOQjogaW5kaWNhdGUgY2hhbm5lbCBjaGFuZ2Ugc28gd2UgZG8g YSBmdWxsIHJlc2V0ICovCiAJaWYgKCFhdGhfaGFsX3Jlc2V0KGFoLCBzYy0+c2Nfb3Btb2RlLCBp Yy0+aWNfY3VyY2hhbiwgQUhfVFJVRSwgJnN0YXR1cykpCkBAIC0xODc5LDggKzE5OTEsNTkgQEAg YXRoX3Jlc2V0KHN0cnVjdCBpZm5ldCAqaWZwLCBBVEhfUkVTRVRfVFlQRSByZXNldF90eXBlKQog I2VuZGlmCiAJCQlhdGhfYmVhY29uX2NvbmZpZyhzYywgTlVMTCk7CiAJfQorCisJLyoKKwkgKiBS ZWxlYXNlIHRoZSByZXNldCBsb2NrIGFuZCByZS1lbmFibGUgaW50ZXJydXB0cyBoZXJlLgorCSAq IElmIGFuIGludGVycnVwdCB3YXMgYmVpbmcgcHJvY2Vzc2VkIGluIGF0aF9pbnRyKCksCisJICog aXQgd291bGQgZGlzYWJsZSBpbnRlcnJ1cHRzIGF0IHRoaXMgcG9pbnQuIFNvIHdlIGhhdmUKKwkg KiB0byBhdG9taWNhbGx5IGVuYWJsZSBpbnRlcnJ1cHRzIGFuZCBkZWNyZW1lbnQgdGhlCisJICog cmVzZXQgY291bnRlciAtIHRoaXMgd2F5IGF0aF9pbnRyKCkgZG9lc24ndCBlbmQgdXAKKwkgKiBk aXNhYmxpbmcgaW50ZXJydXB0cyB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBlbmFibGUKKwkgKiBp biB0aGUgcmVzdCBvciBjaGFubmVsIGNoYW5nZSBwYXRoLgorCSAqLworCUFUSF9QQ1VfTE9DSyhz Yyk7CisJc2MtPnNjX2lucmVzZXRfY250LS07CisJLyogWFhYIG9ubHkgZG8gdGhpcyBpZiBzY19p bnJlc2V0X2NudCA9PSAwPyAqLwogCWF0aF9oYWxfaW50cnNldChhaCwgc2MtPnNjX2ltYXNrKTsK KwlBVEhfUENVX1VOTE9DSyhzYyk7CiAKKwkvKgorCSAqIFRYIGFuZCBSWCBjYW4gYmUgc3RhcnRl ZCBoZXJlLiBJZiBpdCB3ZXJlIHN0YXJ0ZWQgd2l0aAorCSAqIHNjX2lucmVzZXRfY250ID4gMCwg dGhlIFRYIGFuZCBSWCBwYXRoIHdvdWxkIGFib3J0LgorCSAqIFRodXMgaWYgdGhpcyBpcyBhIG5l c3RlZCBjYWxsIHRocm91Z2ggdGhlIHJlc2V0IG9yCisJICogY2hhbm5lbCBjaGFuZ2UgY29kZSwg VFggY29tcGxldGlvbiB3aWxsIG9jY3VyIGJ1dAorCSAqIFJYIGNvbXBsZXRpb24gYW5kIGF0aF9z dGFydCAvIGF0aF90eF9zdGFydCB3aWxsIG5vdAorCSAqIHJ1bi4KKwkgKi8KKworCS8qIFJlc3Rh cnQgVFgvUlggYXMgbmVlZGVkICovCisJYXRoX3R4cnhfc3RhcnQoc2MpOworCisJLyogWFhYIFJl c3RhcnQgVFggY29tcGxldGlvbiBhbmQgcGVuZGluZyBUWCAqLworCWlmIChyZXNldF90eXBlID09 IEFUSF9SRVNFVF9OT0xPU1MpIHsKKwkJZm9yIChpID0gMDsgaSA8IEhBTF9OVU1fVFhfUVVFVUVT OyBpKyspIHsKKwkJCWlmIChBVEhfVFhRX1NFVFVQKHNjLCBpKSkgeworCQkJCUFUSF9UWFFfTE9D Sygmc2MtPnNjX3R4cVtpXSk7CisJCQkJYXRoX3R4cV9yZXN0YXJ0X2RtYShzYywgJnNjLT5zY190 eHFbaV0pOworCQkJCWF0aF90eHFfc2NoZWQoc2MsICZzYy0+c2NfdHhxW2ldKTsKKwkJCQlBVEhf VFhRX1VOTE9DSygmc2MtPnNjX3R4cVtpXSk7CisJCQl9CisJCX0KKwl9CisKKwkvKgorCSAqIFRo aXMgbWF5IGhhdmUgYmVlbiBzZXQgZHVyaW5nIGFuIGF0aF9zdGFydCgpIGNhbGwgd2hpY2gKKwkg KiBzZXQgdGhpcyBvbmNlIGl0IGRldGVjdGVkIGEgY29uY3VycmVudCBUWCB3YXMgZ29pbmcgb24u CisJICogU28sIGNsZWFyIGl0LgorCSAqLworCS8qIFhYWCBkbyB0aGlzIGluc2lkZSBvZiBJRl9M T0NLPyAqLworCWlmcC0+aWZfZHJ2X2ZsYWdzICY9IH5JRkZfRFJWX09BQ1RJVkU7CisKKwkvKiBI YW5kbGUgYW55IGZyYW1lcyBpbiB0aGUgVFggcXVldWUgKi8KKwkvKgorCSAqIFhYWCBzaG91bGQg dGhpcyBiZSBkb25lIGJ5IHRoZSBjYWxsZXIsIHJhdGhlciB0aGFuCisJICogYXRoX3Jlc2V0KCkg PworCSAqLwogCWF0aF9zdGFydChpZnApOwkJCS8qIHJlc3RhcnQgeG1pdCAqLwogCXJldHVybiAw OwogfQpAQCAtMjAxMSw2ICsyMTc0LDcgQEAgYXRoX2dldGJ1ZihzdHJ1Y3QgYXRoX3NvZnRjICpz YykKIAogCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdfWE1JVCwgIiVzOiBzdG9wIHF1ZXVlXG4iLCBf X2Z1bmNfXyk7CiAJCXNjLT5zY19zdGF0cy5hc3RfdHhfcXN0b3ArKzsKKwkJLyogWFhYIGRvIHRo aXMgaW5zaWRlIG9mIElGX0xPQ0s/ICovCiAJCWlmcC0+aWZfZHJ2X2ZsYWdzIHw9IElGRl9EUlZf T0FDVElWRTsKIAl9CiAJQVRIX1RYQlVGX1VOTE9DSyhzYyk7CkBAIC0yMDI4LDYgKzIxOTIsMjAg QEAgYXRoX3N0YXJ0KHN0cnVjdCBpZm5ldCAqaWZwKQogCiAJaWYgKChpZnAtPmlmX2Rydl9mbGFn cyAmIElGRl9EUlZfUlVOTklORykgPT0gMCB8fCBzYy0+c2NfaW52YWxpZCkKIAkJcmV0dXJuOwor CisJLyogWFhYIGlzIGl0IG9rIHRvIGhvbGQgdGhlIEFUSF9MT0NLIGhlcmU/ICovCisJQVRIX1BD VV9MT0NLKHNjKTsKKwlpZiAoc2MtPnNjX2lucmVzZXRfY250ID4gMCkgeworCQlkZXZpY2VfcHJp bnRmKHNjLT5zY19kZXYsCisJCSAgICAiJXM6IHNjX2lucmVzZXRfY250ID4gMDsgYmFpbGluZ1xu IiwgX19mdW5jX18pOworCQkvKiBYWFggZG8gdGhpcyBpbnNpZGUgb2YgSUZfTE9DSz8gKi8KKwkJ aWZwLT5pZl9kcnZfZmxhZ3MgfD0gSUZGX0RSVl9PQUNUSVZFOworCQlBVEhfUENVX1VOTE9DSyhz Yyk7CisJCXJldHVybjsKKwl9CisJc2MtPnNjX3R4c3RhcnRfY250Kys7CisJQVRIX1BDVV9VTkxP Q0soc2MpOworCiAJZm9yICg7OykgewogCQkvKgogCQkgKiBHcmFiIGEgVFggYnVmZmVyIGFuZCBh c3NvY2lhdGVkIHJlc291cmNlcy4KQEAgLTIxMTEsNiArMjI4OSwxMCBAQCBhdGhfc3RhcnQoc3Ry dWN0IGlmbmV0ICppZnApCiAKIAkJc2MtPnNjX3dkX3RpbWVyID0gNTsKIAl9CisKKwlBVEhfUENV X0xPQ0soc2MpOworCXNjLT5zY190eHN0YXJ0X2NudC0tOworCUFUSF9QQ1VfVU5MT0NLKHNjKTsK IH0KIAogc3RhdGljIGludApAQCAtMzY4OCw2ICszODcwLDE0IEBAIGF0aF9yeF90YXNrbGV0KHZv aWQgKmFyZywgaW50IG5wZW5kaW5nKQogCiAJQ1RSMShBVEhfS1RSX0lOVFIsICJhdGhfcnhfcHJv YzogcGVuZGluZz0lZCIsIG5wZW5kaW5nKTsKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdfUlhfUFJP QywgIiVzOiBwZW5kaW5nICV1XG4iLCBfX2Z1bmNfXywgbnBlbmRpbmcpOworCUFUSF9QQ1VfTE9D SyhzYyk7CisJaWYgKHNjLT5zY19pbnJlc2V0X2NudCA+IDApIHsKKwkJZGV2aWNlX3ByaW50Zihz Yy0+c2NfZGV2LAorCQkgICAgIiVzOiBzY19pbnJlc2V0X2NudCA+IDA7IHNraXBwaW5nXG4iLCBf X2Z1bmNfXyk7CisJCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKwkJcmV0dXJuOworCX0KKwlBVEhfUENV X1VOTE9DSyhzYyk7CiAJYXRoX3J4X3Byb2Moc2MsIDEpOwogfQogCkBAIC0zNzExLDYgKzM5MDEs MTQgQEAgYXRoX3J4X3Byb2Moc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCByZXNjaGVkKQogCXVf aW50NjRfdCB0c2Y7CiAJaW50IG5wa3RzID0gMDsKIAorCS8qIFhYWCB3ZSBtdXN0IG5vdCBob2xk IHRoZSBBVEhfTE9DSyBoZXJlICovCisJQVRIX1VOTE9DS19BU1NFUlQoc2MpOworCUFUSF9QQ1Vf VU5MT0NLX0FTU0VSVChzYyk7CisKKwlBVEhfUENVX0xPQ0soc2MpOworCXNjLT5zY19yeHByb2Nf Y250Kys7CisJQVRIX1BDVV9VTkxPQ0soc2MpOworCiAJRFBSSU5URihzYywgQVRIX0RFQlVHX1JY X1BST0MsICIlczogY2FsbGVkXG4iLCBfX2Z1bmNfXyk7CiAJbmdvb2QgPSAwOwogCW5mID0gYXRo X2hhbF9nZXRjaGFubm9pc2UoYWgsIHNjLT5zY19jdXJjaGFuKTsKQEAgLTQwNTYsMjQgKzQyNTQs MjkgQEAgcnhfbmV4dDoKIAkgKiBuZWVkIHRvIGJlIGhhbmRsZWQsIGtpY2sgdGhlIFBDVSBpZiB0 aGVyZSdzCiAJICogYmVlbiBhbiBSWEVPTCBjb25kaXRpb24uCiAJICovCisJQVRIX1BDVV9MT0NL KHNjKTsKIAlpZiAocmVzY2hlZCAmJiBzYy0+c2Nfa2lja3BjdSkgewogCQlDVFIwKEFUSF9LVFJf RVJSLCAiYXRoX3J4X3Byb2M6IGtpY2twY3UiKTsKIAkJZGV2aWNlX3ByaW50ZihzYy0+c2NfZGV2 LCAiJXM6IGtpY2twY3U7IGhhbmRsZWQgJWQgcGFja2V0c1xuIiwKIAkJICAgIF9fZnVuY19fLCBu cGt0cyk7CiAKIAkJLyogWFhYIHJ4c2xpbms/ICovCisJCS8qCisJCSAqIFhYWCBjYW4gd2UgaG9s ZCB0aGUgUENVIGxvY2sgaGVyZT8KKwkJICogQXJlIHRoZXJlIGFueSBuZXQ4MDIxMSBidWZmZXIg Y2FsbHMgaW52b2x2ZWQ/CisJCSAqLwogCQliZiA9IFRBSUxRX0ZJUlNUKCZzYy0+c2NfcnhidWYp OwogCQlhdGhfaGFsX3B1dHJ4YnVmKGFoLCBiZi0+YmZfZGFkZHIpOwogCQlhdGhfaGFsX3J4ZW5h KGFoKTsJCS8qIGVuYWJsZSByZWN2IGRlc2NyaXB0b3JzICovCiAJCWF0aF9tb2RlX2luaXQoc2Mp OwkJLyogc2V0IGZpbHRlcnMsIGV0Yy4gKi8KIAkJYXRoX2hhbF9zdGFydHBjdXJlY3YoYWgpOwkv KiByZS1lbmFibGUgUENVL0RNQSBlbmdpbmUgKi8KIAotCQlBVEhfTE9DSyhzYyk7CiAJCWF0aF9o YWxfaW50cnNldChhaCwgc2MtPnNjX2ltYXNrKTsKIAkJc2MtPnNjX2tpY2twY3UgPSAwOwotCQlB VEhfVU5MT0NLKHNjKTsKIAl9CisJQVRIX1BDVV9VTkxPQ0soc2MpOwogCisJLyogWFhYIGNoZWNr IHRoaXMgaW5zaWRlIG9mIElGX0xPQ0s/ICovCiAJaWYgKHJlc2NoZWQgJiYgKGlmcC0+aWZfZHJ2 X2ZsYWdzICYgSUZGX0RSVl9PQUNUSVZFKSA9PSAwKSB7CiAjaWZkZWYgSUVFRTgwMjExX1NVUFBP UlRfU1VQRVJHCiAJCWllZWU4MDIxMV9mZl9hZ2VfYWxsKGljLCAxMDApOwpAQCAtNDA4Miw2ICs0 Mjg1LDEwIEBAIHJ4X25leHQ6CiAJCQlhdGhfc3RhcnQoaWZwKTsKIAl9CiAjdW5kZWYgUEEyREVT QworCisJQVRIX1BDVV9MT0NLKHNjKTsKKwlzYy0+c2Nfcnhwcm9jX2NudC0tOworCUFUSF9QQ1Vf VU5MT0NLKHNjKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQ1ODgsMjIgKzQ3OTUsMjggQEAgYXRo X3R4X3Byb2NfcTAodm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAJc3RydWN0IGlmbmV0ICppZnAg PSBzYy0+c2NfaWZwOwogCXVpbnQzMl90IHR4cXM7CiAKLQlBVEhfTE9DSyhzYyk7CisJQVRIX1BD VV9MT0NLKHNjKTsKKwlzYy0+c2NfdHhwcm9jX2NudCsrOwogCXR4cXMgPSBzYy0+c2NfdHhxX2Fj dGl2ZTsKIAlzYy0+c2NfdHhxX2FjdGl2ZSAmPSB+dHhxczsKLQlBVEhfVU5MT0NLKHNjKTsKKwlB VEhfUENVX1VOTE9DSyhzYyk7CiAKIAlpZiAoVFhRQUNUSVZFKHR4cXMsIDApICYmIGF0aF90eF9w cm9jZXNzcShzYywgJnNjLT5zY190eHFbMF0sIDEpKQogCQkvKiBYWFggd2h5IGlzIGxhc3RyeCB1 cGRhdGVkIGluIHR4IGNvZGU/ICovCiAJCXNjLT5zY19sYXN0cnggPSBhdGhfaGFsX2dldHRzZjY0 KHNjLT5zY19haCk7CiAJaWYgKFRYUUFDVElWRSh0eHFzLCBzYy0+c2NfY2FicS0+YXhxX3FudW0p KQogCQlhdGhfdHhfcHJvY2Vzc3Eoc2MsIHNjLT5zY19jYWJxLCAxKTsKKwkvKiBYWFggY2hlY2sg dGhpcyBpbnNpZGUgb2YgSUZfTE9DSz8gKi8KIAlpZnAtPmlmX2Rydl9mbGFncyAmPSB+SUZGX0RS Vl9PQUNUSVZFOwogCXNjLT5zY193ZF90aW1lciA9IDA7CiAKIAlpZiAoc2MtPnNjX3NvZnRsZWQp CiAJCWF0aF9sZWRfZXZlbnQoc2MsIHNjLT5zY190eHJpeCk7CiAKKwlBVEhfUENVX0xPQ0soc2Mp OworCXNjLT5zY190eHByb2NfY250LS07CisJQVRIX1BDVV9VTkxPQ0soc2MpOworCiAJYXRoX3N0 YXJ0KGlmcCk7CiB9CiAKQEAgLTQ2MTksMTAgKzQ4MzIsMTEgQEAgYXRoX3R4X3Byb2NfcTAxMjMo dm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAJaW50IG5hY2tlZDsKIAl1aW50MzJfdCB0eHFzOwog Ci0JQVRIX0xPQ0soc2MpOworCUFUSF9QQ1VfTE9DSyhzYyk7CisJc2MtPnNjX3R4cHJvY19jbnQr KzsKIAl0eHFzID0gc2MtPnNjX3R4cV9hY3RpdmU7CiAJc2MtPnNjX3R4cV9hY3RpdmUgJj0gfnR4 cXM7Ci0JQVRIX1VOTE9DSyhzYyk7CisJQVRIX1BDVV9VTkxPQ0soc2MpOwogCiAJLyoKIAkgKiBQ cm9jZXNzIGVhY2ggYWN0aXZlIHF1ZXVlLgpAQCAtNDY0MSwxMiArNDg1NSwxNyBAQCBhdGhfdHhf cHJvY19xMDEyMyh2b2lkICphcmcsIGludCBucGVuZGluZykKIAlpZiAobmFja2VkKQogCQlzYy0+ c2NfbGFzdHJ4ID0gYXRoX2hhbF9nZXR0c2Y2NChzYy0+c2NfYWgpOwogCisJLyogWFhYIGNoZWNr IHRoaXMgaW5zaWRlIG9mIElGX0xPQ0s/ICovCiAJaWZwLT5pZl9kcnZfZmxhZ3MgJj0gfklGRl9E UlZfT0FDVElWRTsKIAlzYy0+c2Nfd2RfdGltZXIgPSAwOwogCiAJaWYgKHNjLT5zY19zb2Z0bGVk KQogCQlhdGhfbGVkX2V2ZW50KHNjLCBzYy0+c2NfdHhyaXgpOwogCisJQVRIX1BDVV9MT0NLKHNj KTsKKwlzYy0+c2NfdHhwcm9jX2NudC0tOworCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKwogCWF0aF9z dGFydChpZnApOwogfQogCkBAIC00NjYxLDEwICs0ODgwLDExIEBAIGF0aF90eF9wcm9jKHZvaWQg KmFyZywgaW50IG5wZW5kaW5nKQogCWludCBpLCBuYWNrZWQ7CiAJdWludDMyX3QgdHhxczsKIAot CUFUSF9MT0NLKHNjKTsKKwlBVEhfUENVX0xPQ0soc2MpOworCXNjLT5zY190eHByb2NfY250Kys7 CiAJdHhxcyA9IHNjLT5zY190eHFfYWN0aXZlOwogCXNjLT5zY190eHFfYWN0aXZlICY9IH50eHFz OwotCUFUSF9VTkxPQ0soc2MpOworCUFUSF9QQ1VfVU5MT0NLKHNjKTsKIAogCS8qCiAJICogUHJv Y2VzcyBlYWNoIGFjdGl2ZSBxdWV1ZS4KQEAgLTQ2NzYsMTIgKzQ4OTYsMTcgQEAgYXRoX3R4X3By b2Modm9pZCAqYXJnLCBpbnQgbnBlbmRpbmcpCiAJaWYgKG5hY2tlZCkKIAkJc2MtPnNjX2xhc3Ry eCA9IGF0aF9oYWxfZ2V0dHNmNjQoc2MtPnNjX2FoKTsKIAorCS8qIFhYWCBjaGVjayB0aGlzIGlu c2lkZSBvZiBJRl9MT0NLPyAqLwogCWlmcC0+aWZfZHJ2X2ZsYWdzICY9IH5JRkZfRFJWX09BQ1RJ VkU7CiAJc2MtPnNjX3dkX3RpbWVyID0gMDsKIAogCWlmIChzYy0+c2Nfc29mdGxlZCkKIAkJYXRo X2xlZF9ldmVudChzYywgc2MtPnNjX3R4cml4KTsKIAorCUFUSF9QQ1VfTE9DSyhzYyk7CisJc2Mt PnNjX3R4cHJvY19jbnQtLTsKKwlBVEhfUENVX1VOTE9DSyhzYyk7CisKIAlhdGhfc3RhcnQoaWZw KTsKIH0KICN1bmRlZglUWFFBQ1RJVkUKQEAgLTQ4NjMsOSArNTA4OCwxOCBAQCBhdGhfZHJhaW50 eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIEFUSF9SRVNFVF9UWVBFIHJlc2V0X3R5cGUpCiAKIAko dm9pZCkgYXRoX3N0b3B0eGRtYShzYyk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgSEFMX05VTV9UWF9R VUVVRVM7IGkrKykKLQkJaWYgKEFUSF9UWFFfU0VUVVAoc2MsIGkpKQotCQkJYXRoX3R4X2RyYWlu dHhxKHNjLCAmc2MtPnNjX3R4cVtpXSk7CisJZm9yIChpID0gMDsgaSA8IEhBTF9OVU1fVFhfUVVF VUVTOyBpKyspIHsKKwkJLyoKKwkJICogWFhYIFRPRE86IHNob3VsZCB3ZSBqdXN0IGhhbmRsZSB0 aGUgY29tcGxldGVkIFRYIGZyYW1lcworCQkgKiBoZXJlLCB3aGV0aGVyIG9yIG5vdCB0aGUgcmVz ZXQgaXMgYSBmdWxsIG9uZSBvciBub3Q/CisJCSAqLworCQlpZiAoQVRIX1RYUV9TRVRVUChzYywg aSkpIHsKKwkJCWlmIChyZXNldF90eXBlID09IEFUSF9SRVNFVF9OT0xPU1MpCisJCQkJYXRoX3R4 X3Byb2Nlc3NxKHNjLCAmc2MtPnNjX3R4cVtpXSwgMCk7CisJCQllbHNlCisJCQkJYXRoX3R4X2Ry YWludHhxKHNjLCAmc2MtPnNjX3R4cVtpXSk7CisJCX0KKwl9CiAjaWZkZWYgQVRIX0RFQlVHCiAJ aWYgKHNjLT5zY19kZWJ1ZyAmIEFUSF9ERUJVR19SRVNFVCkgewogCQlzdHJ1Y3QgYXRoX2J1ZiAq YmYgPSBUQUlMUV9GSVJTVCgmc2MtPnNjX2JidWYpOwpAQCAtNDg3OSw2ICs1MTEzLDcgQEAgYXRo X2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBBVEhfUkVTRVRfVFlQRSByZXNldF90eXBl KQogCQl9CiAJfQogI2VuZGlmIC8qIEFUSF9ERUJVRyAqLworCS8qIFhYWCBjaGVjayB0aGlzIGlu c2lkZSBvZiBJRl9MT0NLPyAqLwogCWlmcC0+aWZfZHJ2X2ZsYWdzICY9IH5JRkZfRFJWX09BQ1RJ VkU7CiAJc2MtPnNjX3dkX3RpbWVyID0gMDsKIH0KQEAgLTQ5ODQsNiArNTIxOSwyMiBAQCBhdGhf Y2hhbl9zZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAq Y2hhbikKIAlzdHJ1Y3QgaWZuZXQgKmlmcCA9IHNjLT5zY19pZnA7CiAJc3RydWN0IGllZWU4MDIx MWNvbSAqaWMgPSBpZnAtPmlmX2wyY29tOwogCXN0cnVjdCBhdGhfaGFsICphaCA9IHNjLT5zY19h aDsKKwlpbnQgcmV0ID0gMDsKKwlpbnQgZG9pbnRyID0gMDsKKworCS8qIFRyZWF0IHRoaXMgYXMg YW4gaW50ZXJmYWNlIHJlc2V0ICovCisJQVRIX1BDVV9MT0NLKHNjKTsKKwlpZiAoc2MtPnNjX2lu cmVzZXRfY250ID4gMCkKKwkJZGV2aWNlX3ByaW50ZihzYy0+c2NfZGV2LCAiJXM6IGRhbmdlciEg Y29uY3VycmVudCByZXNldCFcbiIsCisJCSAgICBfX2Z1bmNfXyk7CisJc2MtPnNjX2lucmVzZXRf Y250Kys7CisJaWYgKGNoYW4gIT0gc2MtPnNjX2N1cmNoYW4pIHsKKwkJZG9pbnRyID0gMTsKKwkJ LyogWFhYIG9ubHkgZG8gdGhpcyBpZiBpbnJlc2V0X2NudCBpcyAxPyAqLworCQlhdGhfaGFsX2lu dHJzZXQoYWgsIDApOworCX0KKwlBVEhfUENVX1VOTE9DSyhzYyk7CisJYXRoX3R4cnhfc3RvcChz Yyk7CiAKIAlEUFJJTlRGKHNjLCBBVEhfREVCVUdfUkVTRVQsICIlczogJXUgKCV1IE1IeiwgZmxh Z3MgMHgleClcbiIsCiAJICAgIF9fZnVuY19fLCBpZWVlODAyMTFfY2hhbjJpZWVlKGljLCBjaGFu KSwKQEAgLTQ5OTYsNyArNTI0Nyw5IEBAIGF0aF9jaGFuX3NldChzdHJ1Y3QgYXRoX3NvZnRjICpz Yywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKQogCQkgKiBoYXJkd2FyZSBhdCB0aGUg bmV3IGZyZXF1ZW5jeSwgYW5kIHRoZW4gcmUtZW5hYmxlCiAJCSAqIHRoZSByZWxldmFudCBiaXRz IG9mIHRoZSBoL3cuCiAJCSAqLworI2lmIDAKIAkJYXRoX2hhbF9pbnRyc2V0KGFoLCAwKTsJCS8q IGRpc2FibGUgaW50ZXJydXB0cyAqLworI2VuZGlmCiAJCWF0aF9kcmFpbnR4cShzYywgQVRIX1JF U0VUX0ZVTEwpOwkvKiBjbGVhciBwZW5kaW5nIHR4IGZyYW1lcyAqLwogCQlhdGhfc3RvcHJlY3Yo c2MpOwkJLyogdHVybiBvZmYgZnJhbWUgcmVjdiAqLwogCQlpZiAoIWF0aF9oYWxfcmVzZXQoYWgs IHNjLT5zY19vcG1vZGUsIGNoYW4sIEFIX1RSVUUsICZzdGF0dXMpKSB7CkBAIC01MDA0LDcgKzUy NTcsOCBAQCBhdGhfY2hhbl9zZXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBpZWVlODAy MTFfY2hhbm5lbCAqY2hhbikKIAkJCSAgICAiY2hhbm5lbCAldSAoJXUgTUh6LCBmbGFncyAweCV4 KSwgaGFsIHN0YXR1cyAldVxuIiwKIAkJCSAgICBfX2Z1bmNfXywgaWVlZTgwMjExX2NoYW4yaWVl ZShpYywgY2hhbiksCiAJCQkgICAgY2hhbi0+aWNfZnJlcSwgY2hhbi0+aWNfZmxhZ3MsIHN0YXR1 cyk7Ci0JCQlyZXR1cm4gRUlPOworCQkJcmV0ID0gRUlPOworCQkJZ290byBmaW5pc2g7CiAJCX0K IAkJc2MtPnNjX2RpdmVyc2l0eSA9IGF0aF9oYWxfZ2V0ZGl2ZXJzaXR5KGFoKTsKIApAQCAtNTAx Nyw3ICs1MjcxLDggQEAgYXRoX2NoYW5fc2V0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3Qg aWVlZTgwMjExX2NoYW5uZWwgKmNoYW4pCiAJCWlmIChhdGhfc3RhcnRyZWN2KHNjKSAhPSAwKSB7 CiAJCQlpZl9wcmludGYoaWZwLCAiJXM6IHVuYWJsZSB0byByZXN0YXJ0IHJlY3YgbG9naWNcbiIs CiAJCQkgICAgX19mdW5jX18pOwotCQkJcmV0dXJuIEVJTzsKKwkJCXJldCA9IEVJTzsKKwkJCWdv dG8gZmluaXNoOwogCQl9CiAKIAkJLyoKQEAgLTUwMzksMTIgKzUyOTQsMjggQEAgYXRoX2NoYW5f c2V0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW4p CiAJCQlhdGhfYmVhY29uX2NvbmZpZyhzYywgTlVMTCk7CiAJCX0KIAorI2lmIDAKIAkJLyoKIAkJ ICogUmUtZW5hYmxlIGludGVycnVwdHMuCiAJCSAqLwogCQlhdGhfaGFsX2ludHJzZXQoYWgsIHNj LT5zY19pbWFzayk7CisjZW5kaWYKIAl9Ci0JcmV0dXJuIDA7CisKK2ZpbmlzaDoKKwlBVEhfUENV X0xPQ0soc2MpOworCXNjLT5zY19pbnJlc2V0X2NudC0tOworCS8qIFhYWCBvbmx5IGRvIHRoaXMg aWYgc2NfaW5yZXNldF9jbnQgPT0gMD8gKi8KKwlpZiAoZG9pbnRyKQorCQlhdGhfaGFsX2ludHJz ZXQoYWgsIHNjLT5zY19pbWFzayk7CisJQVRIX1BDVV9VTkxPQ0soc2MpOworCisJLyogWFhYIGRv IHRoaXMgaW5zaWRlIG9mIElGX0xPQ0s/ICovCisJaWZwLT5pZl9kcnZfZmxhZ3MgJj0gfklGRl9E UlZfT0FDVElWRTsKKwlhdGhfdHhyeF9zdGFydChzYyk7CisJLyogWFhYIGF0aF9zdGFydD8gKi8K KworCXJldHVybiByZXQ7CiB9CiAKIC8qCkBAIC01MDg3LDcgKzUzNTgsMTggQEAgYXRoX2NhbGli cmF0ZSh2b2lkICphcmcpCiAJCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdfQ0FMSUJSQVRFLAogCQkJ CSIlczogcmZnYWluIGNoYW5nZVxuIiwgX19mdW5jX18pOwogCQkJc2MtPnNjX3N0YXRzLmFzdF9w ZXJfcmZnYWluKys7CisJCQkvKgorCQkJICogRHJvcCBsb2NrIC0gd2UgY2FuJ3QgaG9sZCBpdCBh Y3Jvc3MgdGhlCisJCQkgKiBhdGhfcmVzZXQoKSBjYWxsLiBJbnN0ZWFkLCB3ZSdsbCBkcm9wCisJ CQkgKiBvdXQgaGVyZSwgZG8gYSByZXNldCwgdGhlbiByZXNjaGVkdWxlCisJCQkgKiB0aGUgY2Fs bG91dC4KKwkJCSAqLworCQkJY2FsbG91dF9yZXNldCgmc2MtPnNjX2NhbF9jaCwgMSwgYXRoX2Nh bGlicmF0ZSwgc2MpOworCQkJc2MtPnNjX3Jlc2V0Y2FsID0gMDsKKwkJCXNjLT5zY19kb3Jlc2V0 Y2FsID0gQUhfVFJVRTsKKwkJCUFUSF9VTkxPQ0soc2MpOwogCQkJYXRoX3Jlc2V0KGlmcCwgQVRI X1JFU0VUX05PTE9TUyk7CisJCQlyZXR1cm47CiAJCX0KIAkJLyoKIAkJICogSWYgdGhpcyBsb25n IGNhbCBpcyBhZnRlciBhbiBpZGxlIHBlcmlvZCwgdGhlbgpAQCAtNTc0Miw2ICs2MDI0LDcgQEAg c3RhdGljIHZvaWQKIGF0aF93YXRjaGRvZyh2b2lkICphcmcpCiB7CiAJc3RydWN0IGF0aF9zb2Z0 YyAqc2MgPSBhcmc7CisJaW50IGRvX3Jlc2V0ID0gMDsKIAogCWlmIChzYy0+c2Nfd2RfdGltZXIg IT0gMCAmJiAtLXNjLT5zY193ZF90aW1lciA9PSAwKSB7CiAJCXN0cnVjdCBpZm5ldCAqaWZwID0g c2MtPnNjX2lmcDsKQEAgLTU3NTMsMTAgKzYwMzYsMjAgQEAgYXRoX3dhdGNoZG9nKHZvaWQgKmFy ZykKIAkJCSAgICBoYW5ncyAmIDB4ZmYgPyAiYmIiIDogIm1hYyIsIGhhbmdzKTsKIAkJfSBlbHNl CiAJCQlpZl9wcmludGYoaWZwLCAiZGV2aWNlIHRpbWVvdXRcbiIpOwotCQlhdGhfcmVzZXQoaWZw LCBBVEhfUkVTRVRfTk9MT1NTKTsKKwkJZG9fcmVzZXQgPSAxOwogCQlpZnAtPmlmX29lcnJvcnMr KzsKIAkJc2MtPnNjX3N0YXRzLmFzdF93YXRjaGRvZysrOwogCX0KKworCS8qCisJICogV2UgY2Fu J3QgaG9sZCB0aGUgbG9jayBhY3Jvc3MgdGhlIGF0aF9yZXNldCgpIGNhbGwuCisJICovCisJaWYg KGRvX3Jlc2V0KSB7CisJCUFUSF9VTkxPQ0soc2MpOworCQlhdGhfcmVzZXQoc2MtPnNjX2lmcCwg QVRIX1JFU0VUX05PTE9TUyk7CisJCUFUSF9MT0NLKHNjKTsKKwl9CisKIAljYWxsb3V0X3NjaGVk dWxlKCZzYy0+c2Nfd2RfY2gsIGh6KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3lzL2Rldi9hdGgvaWZf YXRoX3R4LmMgYi9zeXMvZGV2L2F0aC9pZl9hdGhfdHguYwppbmRleCBiOGM0YzgwLi41NjI1YmYy IDEwMDY0NAotLS0gYS9zeXMvZGV2L2F0aC9pZl9hdGhfdHguYworKysgYi9zeXMvZGV2L2F0aC9p Zl9hdGhfdHguYwpAQCAtNDc3LDggKzQ3Nyw2IEBAIGF0aF90eF9oYW5kb2ZmX21jYXN0KHN0cnVj dCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLAogCXR4cS0+YXhxX2xpbmsgPSAm YmYtPmJmX2xhc3Rkcy0+ZHNfbGluazsKIH0KIAotCi0KIC8qCiAgKiBIYW5kLW9mZiBwYWNrZXQg dG8gYSBoYXJkd2FyZSBxdWV1ZS4KICAqLwpAQCAtNTAxLDYgKzQ5OSwzNiBAQCBhdGhfdHhfaGFu ZG9mZl9odyhzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSwgc3RydWN0 IGF0aF9idWYgKmJmKQogCUtBU1NFUlQodHhxLT5heHFfcW51bSAhPSBBVEhfVFhRX1NXUSwKIAkg ICAgICgiYXRoX3R4X2hhbmRvZmZfaHcgY2FsbGVkIGZvciBtY2FzdCBxdWV1ZSIpKTsKIAorI2lm IDAKKwkvKgorCSAqIFRoaXMgY2F1c2VzIGEgTE9SLiBGaW5kIG91dCB3aGVyZSB0aGUgUENVIGxv Y2sgaXMgYmVpbmcKKwkgKiBoZWxkIHdoaWxzdCB0aGUgVFhRIGxvY2sgaXMgZ3JhYmJlZCAtIHRo YXQgc2hvdWxkbid0CisJICogYmUgb2NjdXJpbmcuCisJICovCisJQVRIX1BDVV9MT0NLKHNjKTsK KwlpZiAoc2MtPnNjX2lucmVzZXRfY250KSB7CisJCUFUSF9QQ1VfVU5MT0NLKHNjKTsKKwkJRFBS SU5URihzYywgQVRIX0RFQlVHX1JFU0VULAorCQkgICAgIiVzOiBjYWxsZWQgd2l0aCBzY19pbl9y ZXNldCAhPSAwXG4iLAorCQkgICAgX19mdW5jX18pOworCQlEUFJJTlRGKHNjLCBBVEhfREVCVUdf WE1JVCwKKwkJICAgICIlczogcXVldWVkOiBUWERQWyV1XSA9ICVwICglcCkgZGVwdGggJWRcbiIs CisJCSAgICBfX2Z1bmNfXywgdHhxLT5heHFfcW51bSwKKwkJICAgIChjYWRkcl90KWJmLT5iZl9k YWRkciwgYmYtPmJmX2Rlc2MsCisJCSAgICB0eHEtPmF4cV9kZXB0aCk7CisJCUFUSF9UWFFfSU5T RVJUX1RBSUwodHhxLCBiZiwgYmZfbGlzdCk7CisJCWlmIChiZi0+YmZfc3RhdGUuYmZzX2FnZ3Ip CisJCQl0eHEtPmF4cV9hZ2dyX2RlcHRoKys7CisJCS8qCisJCSAqIFRoZXJlJ3Mgbm8gbmVlZCB0 byB1cGRhdGUgYXhxX2xpbms7IHRoZSBoYXJkd2FyZQorCQkgKiBpcyBpbiByZXNldCBhbmQgb25j ZSB0aGUgcmVzZXQgaXMgY29tcGxldGUsIGFueQorCQkgKiBub24tZW1wdHkgcXVldWVzIHdpbGwg c2ltcGx5IGhhdmUgRE1BIHJlc3RhcnRlZC4KKwkJICovCisJCXJldHVybjsKKwkJfQorCUFUSF9Q Q1VfVU5MT0NLKHNjKTsKKyNlbmRpZgorCiAJLyogRm9yIG5vdywgc28gbm90IHRvIGdlbmVyYXRl IHdoaXRlc3BhY2UgZGlmZnMgKi8KIAlpZiAoMSkgewogI2lmZGVmIElFRUU4MDIxMV9TVVBQT1JU X1RETUEKQEAgLTE2ODgsNiArMTcxNiwxNyBAQCBhdGhfcmF3X3htaXQoc3RydWN0IGllZWU4MDIx MV9ub2RlICpuaSwgc3RydWN0IG1idWYgKm0sCiAJc3RydWN0IGF0aF9idWYgKmJmOwogCWludCBl cnJvcjsKIAorCUFUSF9QQ1VfTE9DSyhzYyk7CisJaWYgKHNjLT5zY19pbnJlc2V0X2NudCA+IDAp IHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+c2NfZGV2LCAiJXM6IHNjX2lucmVzZXRfY250ID4gMDsg YmFpbGluZ1xuIiwKKwkJICAgIF9fZnVuY19fKTsKKwkJZXJyb3IgPSBFSU87CisJCUFUSF9QQ1Vf VU5MT0NLKHNjKTsKKwkJZ290byBiYWQwOworCX0KKwlzYy0+c2NfdHhzdGFydF9jbnQrKzsKKwlB VEhfUENVX1VOTE9DSyhzYyk7CisKIAlpZiAoKGlmcC0+aWZfZHJ2X2ZsYWdzICYgSUZGX0RSVl9S VU5OSU5HKSA9PSAwIHx8IHNjLT5zY19pbnZhbGlkKSB7CiAJCURQUklOVEYoc2MsIEFUSF9ERUJV R19YTUlULCAiJXM6IGRpc2NhcmQgZnJhbWUsICVzIiwgX19mdW5jX18sCiAJCSAgICAoaWZwLT5p Zl9kcnZfZmxhZ3MgJiBJRkZfRFJWX1JVTk5JTkcpID09IDAgPwpAQCAtMTczMCwxNSArMTc2OSwy NCBAQCBhdGhfcmF3X3htaXQoc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwgc3RydWN0IG1idWYg Km0sCiAJaWZwLT5pZl9vcGFja2V0cysrOwogCXNjLT5zY19zdGF0cy5hc3RfdHhfcmF3Kys7CiAK KwlBVEhfUENVX0xPQ0soc2MpOworCXNjLT5zY190eHN0YXJ0X2NudC0tOworCUFUSF9QQ1VfVU5M T0NLKHNjKTsKKwogCXJldHVybiAwOwogYmFkMjoKIAlBVEhfVFhCVUZfTE9DSyhzYyk7CiAJVEFJ TFFfSU5TRVJUX0hFQUQoJnNjLT5zY190eGJ1ZiwgYmYsIGJmX2xpc3QpOwogCUFUSF9UWEJVRl9V TkxPQ0soc2MpOwogYmFkOgorCUFUSF9QQ1VfTE9DSyhzYyk7CisJc2MtPnNjX3R4c3RhcnRfY250 LS07CisJQVRIX1BDVV9VTkxPQ0soc2MpOworYmFkMDoKIAlpZnAtPmlmX29lcnJvcnMrKzsKIAlz Yy0+c2Nfc3RhdHMuYXN0X3R4X3Jhd19mYWlsKys7CiAJaWVlZTgwMjExX2ZyZWVfbm9kZShuaSk7 CisKIAlyZXR1cm4gZXJyb3I7CiB9CiAKZGlmZiAtLWdpdCBhL3N5cy9kZXYvYXRoL2lmX2F0aHZh ci5oIGIvc3lzL2Rldi9hdGgvaWZfYXRodmFyLmgKaW5kZXggMjE4MjlhNjIuLjMzMWJlYTQgMTAw NjQ0Ci0tLSBhL3N5cy9kZXYvYXRoL2lmX2F0aHZhci5oCisrKyBiL3N5cy9kZXYvYXRoL2lmX2F0 aHZhci5oCkBAIC00MjQsNiArNDI0LDcgQEAgc3RydWN0IGF0aF9zb2Z0YyB7CiAJdV9pbnQJCQlz Y190eGFudGVubmE7CS8qIHR4IGFudGVubmEgKGZpeGVkIG9yIGF1dG8pICovCiAKIAlIQUxfSU5U CQkJc2NfaW1hc2s7CS8qIGludGVycnVwdCBtYXNrIGNvcHkgKi8KKwogCS8qCiAJICogVGhlc2Ug YXJlIG1vZGlmaWVkIGluIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBhcyB3ZWxsIGFzCiAJICogdGhl IHRhc2sgcXVldWVzIGFuZCBvdGhlciBjb250ZXh0cy4gVGh1cyB0aGVzZSBtdXN0IGJlCkBAIC00 MzQsNiArNDM1LDEyIEBAIHN0cnVjdCBhdGhfc29mdGMgewogCSAqLwogCXVpbnQzMl90CQlzY190 eHFfYWN0aXZlOwkvKiBiaXRtYXAgb2YgYWN0aXZlIFRYUXMgKi8KIAl1aW50MzJfdAkJc2Nfa2lj a3BjdTsJLyogd2hldGhlciB0byBraWNrIHRoZSBQQ1UgKi8KKwl1aW50MzJfdAkJc2Nfcnhwcm9j X2NudDsJLyogSW4gUlggcHJvY2Vzc2luZyAqLworCXVpbnQzMl90CQlzY190eHByb2NfY250Owkv KiBJbiBUWCBwcm9jZXNzaW5nICovCisJdWludDMyX3QJCXNjX3R4c3RhcnRfY250OwkvKiBJbiBU WCBvdXRwdXQgKHJhdy9zdGFydCkgKi8KKwl1aW50MzJfdAkJc2NfaW5yZXNldF9jbnQ7CS8qIElu IGFjdGl2ZSByZXNldC9jaGFuY2hhbmdlICovCisJdWludDMyX3QJCXNjX3R4cnhfY250OwkvKiBy ZWZjb3VudCBvbiBzdG9wL3N0YXJ0J2luZyBUWCAqLworCXVpbnQzMl90CQlzY19pbnRyX2NudDsJ LyogcmVmY291bnQgb24gaW50ZXJydXB0IGhhbmRsaW5nICovCiAKIAl1X2ludAkJCXNjX2tleW1h eDsJLyogc2l6ZSBvZiBrZXkgY2FjaGUgKi8KIAl1X2ludDhfdAkJc2Nfa2V5bWFwW0FUSF9LRVlC WVRFU107Lyoga2V5IHVzZSBiaXQgbWFwICovCkBAIC01NTMsNiArNTYwLDcgQEAgc3RydWN0IGF0 aF9zb2Z0YyB7CiAjZGVmaW5lCUFUSF9MT0NLKF9zYykJCW10eF9sb2NrKCYoX3NjKS0+c2NfbXR4 KQogI2RlZmluZQlBVEhfVU5MT0NLKF9zYykJCW10eF91bmxvY2soJihfc2MpLT5zY19tdHgpCiAj ZGVmaW5lCUFUSF9MT0NLX0FTU0VSVChfc2MpCW10eF9hc3NlcnQoJihfc2MpLT5zY19tdHgsIE1B X09XTkVEKQorI2RlZmluZQlBVEhfVU5MT0NLX0FTU0VSVChfc2MpCW10eF9hc3NlcnQoJihfc2Mp LT5zY19tdHgsIE1BX05PVE9XTkVEKQogCiAvKgogICogVGhlIFBDVSBsb2NrIGlzIG5vbi1yZWN1 cnNpdmUgYW5kIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgc3BpbmxvY2suCkBAIC01ODQsNiArNTky LDggQEAgc3RydWN0IGF0aF9zb2Z0YyB7CiAjZGVmaW5lCUFUSF9QQ1VfVU5MT0NLKF9zYykJCW10 eF91bmxvY2soJihfc2MpLT5zY19wY3VfbXR4KQogI2RlZmluZQlBVEhfUENVX0xPQ0tfQVNTRVJU KF9zYykJbXR4X2Fzc2VydCgmKF9zYyktPnNjX3BjdV9tdHgsCVwKIAkJTUFfT1dORUQpCisjZGVm aW5lCUFUSF9QQ1VfVU5MT0NLX0FTU0VSVChfc2MpCW10eF9hc3NlcnQoJihfc2MpLT5zY19wY3Vf bXR4LAlcCisJCU1BX05PVE9XTkVEKQogCiAjZGVmaW5lCUFUSF9UWFFfU0VUVVAoc2MsIGkpCSgo c2MpLT5zY190eHFzZXR1cCAmICgxPDxpKSkKIAo= --20cf3079b74e69c3da04b1ddf704-- From owner-freebsd-wireless@FreeBSD.ORG Fri Nov 18 03:56:51 2011 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30543106566C; Fri, 18 Nov 2011 03:56:51 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 07F508FC13; Fri, 18 Nov 2011 03:56:51 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id pAI3uoo6096680; Fri, 18 Nov 2011 03:56:50 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id pAI3uoke096676; Fri, 18 Nov 2011 03:56:50 GMT (envelope-from adrian) Date: Fri, 18 Nov 2011 03:56:50 GMT Message-Id: <201111180356.pAI3uoke096676@freefall.freebsd.org> To: adrian@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-wireless@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/162647: [ath] 11n TX aggregation session / TX hang X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 18 Nov 2011 03:56:51 -0000 Synopsis: [ath] 11n TX aggregation session / TX hang Responsible-Changed-From-To: freebsd-bugs->freebsd-wireless Responsible-Changed-By: adrian Responsible-Changed-When: Fri Nov 18 03:56:39 UTC 2011 Responsible-Changed-Why: Punt http://www.freebsd.org/cgi/query-pr.cgi?pr=162647 From owner-freebsd-wireless@FreeBSD.ORG Fri Nov 18 06:40:55 2011 Return-Path: Delivered-To: freebsd-wireless@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CAF91065674; Fri, 18 Nov 2011 06:40:55 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 144358FC15; Fri, 18 Nov 2011 06:40:55 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id pAI6esDI083764; Fri, 18 Nov 2011 06:40:54 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id pAI6eskM083754; Fri, 18 Nov 2011 06:40:54 GMT (envelope-from linimon) Date: Fri, 18 Nov 2011 06:40:54 GMT Message-Id: <201111180640.pAI6eskM083754@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-wireless@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/162648: [ath] AR9227 ADC DC calibration failure X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 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: Fri, 18 Nov 2011 06:40:55 -0000 Synopsis: [ath] AR9227 ADC DC calibration failure Responsible-Changed-From-To: freebsd-bugs->freebsd-wireless Responsible-Changed-By: linimon Responsible-Changed-When: Fri Nov 18 06:40:44 UTC 2011 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=162648