From owner-freebsd-wireless@FreeBSD.ORG Mon Sep 19 05:25:05 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 A61C11065673; Mon, 19 Sep 2011 05:25:05 +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 7E8858FC13; Mon, 19 Sep 2011 05:25:05 +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 p8J5P5oc028239; Mon, 19 Sep 2011 05:25:05 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p8J5P5Sm028235; Mon, 19 Sep 2011 05:25:05 GMT (envelope-from linimon) Date: Mon, 19 Sep 2011 05:25:05 GMT Message-Id: <201109190525.p8J5P5Sm028235@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-wireless@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: kern/160815: [patch] [iwn] Fix channel switching in monitor mode 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, 19 Sep 2011 05:25:05 -0000 Synopsis: [patch] [iwn] Fix channel switching in monitor mode Responsible-Changed-From-To: freebsd-bugs->freebsd-wireless Responsible-Changed-By: linimon Responsible-Changed-When: Mon Sep 19 05:24:51 UTC 2011 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=160815 From owner-freebsd-wireless@FreeBSD.ORG Mon Sep 19 11:07:18 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 5C9021065673 for ; Mon, 19 Sep 2011 11:07:18 +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 417438FC14 for ; Mon, 19 Sep 2011 11:07:18 +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 p8JB7Ina073683 for ; Mon, 19 Sep 2011 11:07:18 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p8JB7HIS073681 for freebsd-wireless@FreeBSD.org; Mon, 19 Sep 2011 11:07:17 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 19 Sep 2011 11:07:17 GMT Message-Id: <201109191107.p8JB7HIS073681@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, 19 Sep 2011 11:07:18 -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/160815 wireless [patch] [iwn] Fix channel switching in monitor mode 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/149307 wireless [ath] Doesn't work Atheros 9285 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/148112 wireless [ath] Atheros 9285 cannot register with wifi AP (timeo 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 o kern/140796 wireless [ath] [panic] Cannot attach (unable to attach hardware 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 54 problems total. From owner-freebsd-wireless@FreeBSD.ORG Tue Sep 20 04:40:11 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 16E33106566C for ; Tue, 20 Sep 2011 04:40:11 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 076748FC0C for ; Tue, 20 Sep 2011 04:40:11 +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 p8K4eAi3047042 for ; Tue, 20 Sep 2011 04:40:10 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p8K4eAtp047038; Tue, 20 Sep 2011 04:40:10 GMT (envelope-from gnats) Date: Tue, 20 Sep 2011 04:40:10 GMT Message-Id: <201109200440.p8K4eAtp047038@freefall.freebsd.org> To: freebsd-wireless@FreeBSD.org From: dfilter@FreeBSD.ORG (dfilter service) Cc: Subject: Re: kern/160815: commit references a PR X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: dfilter service 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, 20 Sep 2011 04:40:11 -0000 The following reply was made to PR kern/160815; it has been noted by GNATS. From: dfilter@FreeBSD.ORG (dfilter service) To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/160815: commit references a PR Date: Tue, 20 Sep 2011 04:30:38 +0000 (UTC) Author: adrian Date: Tue Sep 20 04:30:23 2011 New Revision: 225686 URL: http://svn.freebsd.org/changeset/base/225686 Log: Manually set the channel when using monitor mode - the firmware doesn't select it automatically. Submitted by: nox Reviewed by: bschmidt Approved by: re PR: kern/160815 Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c ============================================================================== --- head/sys/dev/iwn/if_iwn.c Tue Sep 20 04:20:55 2011 (r225685) +++ head/sys/dev/iwn/if_iwn.c Tue Sep 20 04:30:23 2011 (r225686) @@ -6952,12 +6952,24 @@ iwn_set_channel(struct ieee80211com *ic) const struct ieee80211_channel *c = ic->ic_curchan; struct ifnet *ifp = ic->ic_ifp; struct iwn_softc *sc = ifp->if_softc; + int error; IWN_LOCK(sc); sc->sc_rxtap.wr_chan_freq = htole16(c->ic_freq); sc->sc_rxtap.wr_chan_flags = htole16(c->ic_flags); sc->sc_txtap.wt_chan_freq = htole16(c->ic_freq); sc->sc_txtap.wt_chan_flags = htole16(c->ic_flags); + + /* + * Only need to set the channel in Monitor mode. AP scanning and auth + * are already taken care of by their respective firmware commands. + */ + if (ic->ic_opmode == IEEE80211_M_MONITOR) { + error = iwn_config(sc); + if (error != 0) + device_printf(sc->sc_dev, + "%s: error %d settting channel\n", __func__, error); + } IWN_UNLOCK(sc); } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" From owner-freebsd-wireless@FreeBSD.ORG Tue Sep 20 04:42:13 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 DE4E91065676; Tue, 20 Sep 2011 04:42:13 +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 B77318FC16; Tue, 20 Sep 2011 04:42:13 +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 p8K4gDba055051; Tue, 20 Sep 2011 04:42:13 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p8K4gDHt055047; Tue, 20 Sep 2011 04:42:13 GMT (envelope-from adrian) Date: Tue, 20 Sep 2011 04:42:13 GMT Message-Id: <201109200442.p8K4gDHt055047@freefall.freebsd.org> To: nox@FreeBSD.org, adrian@FreeBSD.org, freebsd-wireless@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/160815: [patch] [iwn] Fix channel switching in monitor mode 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, 20 Sep 2011 04:42:13 -0000 Synopsis: [patch] [iwn] Fix channel switching in monitor mode State-Changed-From-To: open->closed State-Changed-By: adrian State-Changed-When: Tue Sep 20 04:42:04 UTC 2011 State-Changed-Why: Committed to -HEAD. http://www.freebsd.org/cgi/query-pr.cgi?pr=160815 From owner-freebsd-wireless@FreeBSD.ORG Tue Sep 20 13:49:42 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 579B0106566C; Tue, 20 Sep 2011 13:49:42 +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 300688FC13; Tue, 20 Sep 2011 13:49:42 +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 p8KDngKB091474; Tue, 20 Sep 2011 13:49:42 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p8KDngom091470; Tue, 20 Sep 2011 13:49:42 GMT (envelope-from adrian) Date: Tue, 20 Sep 2011 13:49:42 GMT Message-Id: <201109201349.p8KDngom091470@freefall.freebsd.org> To: nox@FreeBSD.org, adrian@FreeBSD.org, freebsd-wireless@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/160815: [patch] [iwn] Fix channel switching in monitor mode 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, 20 Sep 2011 13:49:42 -0000 Synopsis: [patch] [iwn] Fix channel switching in monitor mode State-Changed-From-To: closed->patched State-Changed-By: adrian State-Changed-When: Tue Sep 20 13:49:16 UTC 2011 State-Changed-Why: As pointed out by gavin@, this should be in patched so someone else can take care of MFCing it as appropriate. http://www.freebsd.org/cgi/query-pr.cgi?pr=160815 From owner-freebsd-wireless@FreeBSD.ORG Thu Sep 22 00:04: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 F387E1065670 for ; Thu, 22 Sep 2011 00:04:14 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.213.182]) by mx1.freebsd.org (Postfix) with ESMTP id 7A5398FC13 for ; Thu, 22 Sep 2011 00:04:14 +0000 (UTC) Received: by yxk36 with SMTP id 36so2024203yxk.13 for ; Wed, 21 Sep 2011 17:04:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:from:to:content-type:content-transfer-encoding :mime-version:subject:date:cc:x-mailer; bh=/wfCiHDyrm4g/aOuRLIrT97MTPSLjYY+cGkb8cMtr0Y=; b=ZiRtGAQbd+1fuES8bmq6hMGxIabq44jDEIUTcDPyZuiycV0Qjcv0qrricfTShnPbP7 qEyeOTk3ljQRAzj4N9ov27FzoFI1fhOJtF+4iXrq0hkZaAM07sZdJUJADMn27w445xlV YEHYJEV6ZjxznsvpHVMwBkvXK2EORSNaFt/R4= Received: by 10.236.173.129 with SMTP id v1mr9457360yhl.25.1316648193669; Wed, 21 Sep 2011 16:36:33 -0700 (PDT) Received: from triad.knownspace (216-15-41-8.c3-0.gth-ubr1.lnh-gth.md.cable.rcn.com. [216.15.41.8]) by mx.google.com with ESMTPS id n67sm8847478yhi.9.2011.09.21.16.36.32 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 21 Sep 2011 16:36:32 -0700 (PDT) Message-Id: <4D05F135-FAD8-4C15-A942-D99F4F552FF6@gmail.com> From: Justin Hibbits To: FreeBSD PowerPC ML Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) Date: Wed, 21 Sep 2011 19:36:27 -0400 X-Mailer: Apple Mail (2.936) Cc: freebsd-wireless@freebsd.org Subject: if_bwi on PowerBook G4 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: Thu, 22 Sep 2011 00:04:15 -0000 I'm trying to get a Linksys wireless card working on my PowerBook G4 (PC card, not built-in airport), and running into problems. I've loaded the firmware, but when I load the module, it prints the following messages, and won't try again: bwi0: mem 0x88000000-0x88001fff irq 58 at device 0.0 on cardbus0 bwi0: BBP: id 0x4318, rev 0x2, pkg 2 bwi0: MAC: rev 9 bwi0: PHY: type 2, rev 7, ver 3 bwi0: RF: manu 0x17f, type 0x2050, rev 8 bwi0: invalid antenna gain in sprom I've googled, and seen successes on PowerPC, but not with CardBus (which isn't enabled by default, so could contribute), and seen reports with the same error message, but followed by the antenna gain being read successfully. I'm clueless as to how to proceed with this. Any ideas? - Justin From owner-freebsd-wireless@FreeBSD.ORG Thu Sep 22 00:07:43 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 5B6A6106566C for ; Thu, 22 Sep 2011 00:07:43 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 06E248FC13 for ; Thu, 22 Sep 2011 00:07:38 +0000 (UTC) Received: by ywp17 with SMTP id 17so2036547ywp.13 for ; Wed, 21 Sep 2011 17:07:38 -0700 (PDT) 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 :content-transfer-encoding; bh=X6pAnqwyxrQxn/aKaQvJUASWh+jJwAM0aCdGud0x6sQ=; b=VRjUYirhV5LbOsb+dyeanjO5SWlKap/GmUgWFzJjafyGSxwKaBb8DQarsFoos1bweQ ZQoi3ug4GfSPfrpCfjYTwmsbI2m422oIgJ61RAIHnufw6b4vicncuCBzDZ3cvvd1fSlj s35xtb3hejUWHPbGgsfIoEiE4own75OggjSn4= MIME-Version: 1.0 Received: by 10.236.136.234 with SMTP id w70mr9827572yhi.21.1316650058292; Wed, 21 Sep 2011 17:07:38 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.236.111.42 with HTTP; Wed, 21 Sep 2011 17:07:38 -0700 (PDT) In-Reply-To: <4D05F135-FAD8-4C15-A942-D99F4F552FF6@gmail.com> References: <4D05F135-FAD8-4C15-A942-D99F4F552FF6@gmail.com> Date: Thu, 22 Sep 2011 08:07:38 +0800 X-Google-Sender-Auth: 5XDVldpf5Q5oETVwiI5NZam4zVs Message-ID: From: Adrian Chadd To: Justin Hibbits Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-wireless@freebsd.org, FreeBSD PowerPC ML Subject: Re: if_bwi on PowerBook G4 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: Thu, 22 Sep 2011 00:07:43 -0000 On 22 September 2011 07:36, Justin Hibbits wrote: > I'm trying to get a Linksys wireless card working on my PowerBook G4 (PC > card, not built-in airport), and running into problems. =A0I've loaded th= e > firmware, but when I load the module, it prints the following messages, a= nd > won't try again: > > bwi0: mem 0x88000000-0x88001fff > irq 58 at device 0.0 on cardbus0 > bwi0: BBP: id 0x4318, rev 0x2, pkg 2 > bwi0: MAC: rev 9 > bwi0: PHY: type 2, rev 7, ver 3 > bwi0: RF: manu 0x17f, type 0x2050, rev 8 > bwi0: invalid antenna gain in sprom > > I've googled, and seen successes on PowerPC, but not with CardBus (which > isn't enabled by default, so could contribute), and seen reports with the > same error message, but followed by the antenna gain being read > successfully. =A0I'm clueless as to how to proceed with this. I'd start by looking at the source to see why this is the case. It's possible there are endian-ness issues in the driver; I've seen people with issues w/ the broadcom code in Linux when run on PPC. Adrian From owner-freebsd-wireless@FreeBSD.ORG Thu Sep 22 04:25:43 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 74B6F106566B for ; Thu, 22 Sep 2011 04:25:43 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 391CA8FC16 for ; Thu, 22 Sep 2011 04:25:42 +0000 (UTC) Received: by ywp17 with SMTP id 17so2150301ywp.13 for ; Wed, 21 Sep 2011 21:25:42 -0700 (PDT) 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=n2Vy4C77h+Zrm1g7zr/7ZYd0+J5aaG+uNUwTl4GeI9s=; b=PyG3u2LblyeKMbpTfBpWbV8S/90Uhi86funDDp0yX9ag11gkX0KUnTnef9uPPP9zVd 2WQKuZKERsTuU9MB2M2uqVARqBqLR/UdVPT0zXNKcfxIBkp1IOfUfKXTLI+nrSI9dv9T IntCdOhZP7oltnB16Kgw1Dfbmj2oTiHPlssgY= MIME-Version: 1.0 Received: by 10.236.129.165 with SMTP id h25mr10470418yhi.38.1316665542426; Wed, 21 Sep 2011 21:25:42 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.236.111.42 with HTTP; Wed, 21 Sep 2011 21:25:42 -0700 (PDT) Date: Thu, 22 Sep 2011 12:25:42 +0800 X-Google-Sender-Auth: hvHPVua58e6c0Qxf32IuQqCI-f8 Message-ID: From: Adrian Chadd To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: ath 11n update: please test 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: Thu, 22 Sep 2011 04:25:43 -0000 Hi all, I've made quite a few changes to my 11n branch and I'd appreciate testing. * The AR5212/AR5416 HAL code wasn't reinitialising the AID field in the hardware after a reset; this has been fixed * I've been fiddling with the multicast group key configuration in STA mode, but I may revert those changes now that I've identified what the problem is * I've chased down and fixed a rather annoying bug with this AR9160 in station mode, where it seems to occasionally receive frames destined to other stations. This messed up all kinds of crypto and A-MPDU state keeping. This required a patch to net80211 as the driver doesn't have the relevant information available in the RX process. If you're trying my code then you'll have to build a replacement net80211 as well as ath/ath_pci modules. There are some outstanding issues that Berislav has reported, so I'm going to work on those now. I haven't yet tested out AR9285 or AR9287 in STA or hostap mode. I've not wanted to get too distracted just yet. There are a few outstanding issues with the first pass of this work (before I shift focus to tidying things up in preparation for HEAD). Those are documented in the Wiki (mostly for me, so I don't forget.) Thanks, Adrian From owner-freebsd-wireless@FreeBSD.ORG Thu Sep 22 07:06:30 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 7EC471065674; Thu, 22 Sep 2011 07:06:30 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id 1781F8FC19; Thu, 22 Sep 2011 07:06:29 +0000 (UTC) Received: by gxk26 with SMTP id 26so1184831gxk.13 for ; Thu, 22 Sep 2011 00:06:29 -0700 (PDT) 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=2DX+z7fYvCLpmcUnnHuVwwQmGx7woAuvliWR/lX/tYQ=; b=V0ICoSpMVCI/EmeGxrNuR7Pl3ZzdFFFvxd+fXaDaL2C5zpYPDdagp8UYAyJS0/NcH5 uwQotic9iKbtp+K2g1P9oMiXsbbpicbM3pn77788Erqe3Lu4fPfokvo3fbG0Mne+THjx IqcK+tKK4eFNGReOKOmfJ6NAhdFkRWxsZyyms= MIME-Version: 1.0 Received: by 10.236.75.227 with SMTP id z63mr11047531yhd.55.1316675189381; Thu, 22 Sep 2011 00:06:29 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.236.111.42 with HTTP; Thu, 22 Sep 2011 00:06:29 -0700 (PDT) In-Reply-To: <4E7ADA31.10307@freebsd.org> References: <4D05F135-FAD8-4C15-A942-D99F4F552FF6@gmail.com> <4E7ADA31.10307@freebsd.org> Date: Thu, 22 Sep 2011 15:06:29 +0800 X-Google-Sender-Auth: jYbQK-l_GRnKfB8Dr5PU4Wn5abg Message-ID: From: Adrian Chadd To: Nathan Whitehorn Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org, Justin Hibbits , FreeBSD PowerPC ML Subject: Re: if_bwi on PowerBook G4 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: Thu, 22 Sep 2011 07:06:30 -0000 Can someone please go over this with a fine tooth endian comb? This smells to me like endian issues. Adrian From owner-freebsd-wireless@FreeBSD.ORG Thu Sep 22 07:48:24 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 29166106564A for ; Thu, 22 Sep 2011 07:48:23 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id BE5D28FC12 for ; Thu, 22 Sep 2011 07:48:23 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LRW00M00W8L2F00@smtpauth1.wiscmail.wisc.edu>; Thu, 22 Sep 2011 01:48:21 -0500 (CDT) Received: from wanderer.tachypleus.net (nl119-197-51.student.uu.se [130.243.197.51]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LRW00DA1W8IYS20@smtpauth1.wiscmail.wisc.edu>; Thu, 22 Sep 2011 01:48:20 -0500 (CDT) Date: Thu, 22 Sep 2011 08:48:17 +0200 From: Nathan Whitehorn In-reply-to: To: Adrian Chadd Message-id: <4E7ADA31.10307@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=130.243.197.51 X-Spam-PmxInfo: Server=avs-14, Version=5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.9.22.63615, SenderIP=130.243.197.51 References: <4D05F135-FAD8-4C15-A942-D99F4F552FF6@gmail.com> User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:6.0.2) Gecko/20110917 Thunderbird/6.0.2 X-Mailman-Approved-At: Thu, 22 Sep 2011 11:20:24 +0000 Cc: freebsd-wireless@freebsd.org, Justin Hibbits , FreeBSD PowerPC ML Subject: Re: if_bwi on PowerBook G4 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: Thu, 22 Sep 2011 07:48:24 -0000 On 09/22/11 02:07, Adrian Chadd wrote: > On 22 September 2011 07:36, Justin Hibbits wrote: >> I'm trying to get a Linksys wireless card working on my PowerBook G4 (PC >> card, not built-in airport), and running into problems. I've loaded the >> firmware, but when I load the module, it prints the following messages, and >> won't try again: >> >> bwi0: mem 0x88000000-0x88001fff >> irq 58 at device 0.0 on cardbus0 >> bwi0: BBP: id 0x4318, rev 0x2, pkg 2 >> bwi0: MAC: rev 9 >> bwi0: PHY: type 2, rev 7, ver 3 >> bwi0: RF: manu 0x17f, type 0x2050, rev 8 >> bwi0: invalid antenna gain in sprom >> >> I've googled, and seen successes on PowerPC, but not with CardBus (which >> isn't enabled by default, so could contribute), and seen reports with the >> same error message, but followed by the antenna gain being read >> successfully. I'm clueless as to how to proceed with this. > > I'd start by looking at the source to see why this is the case. > It's possible there are endian-ness issues in the driver; I've seen > people with issues w/ the broadcom code in Linux when run on PPC. For whatever it's worth, bwn(4) works on my G4 iBook, despite reporting the same error. However, it ends up running at very much the wrong gain, and I need to be 4 times closer to the AP when running FreeBSD than OS X. -Nathan From owner-freebsd-wireless@FreeBSD.ORG Fri Sep 23 11:10:31 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 50E30106566B for ; Fri, 23 Sep 2011 11:10:31 +0000 (UTC) (envelope-from monthadar@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 125F98FC13 for ; Fri, 23 Sep 2011 11:10:30 +0000 (UTC) Received: by iadk27 with SMTP id k27so6036337iad.13 for ; Fri, 23 Sep 2011 04:10:30 -0700 (PDT) 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=Sm0bQhtOi8KISYlX1LMyAVa2+DtYSLtT+8EAnIWQ+LM=; b=QSVL7i2Fq3KXVLCjrrbNYBy7zn73XX0wDt9diblSlYO6NmZV5RVg661dEuTZFW/Z0W O1/63B/TNxgoNoSsuBdOo1olm4PUUbieDTj3MTBj0WFRsEdgeOtjOiomR/FWicYsLUyX Cn7XcagXRYaCcrd0Yx4QjNYAbFms+AzskNnGU= MIME-Version: 1.0 Received: by 10.42.155.5 with SMTP id s5mr4132559icw.52.1316776230333; Fri, 23 Sep 2011 04:10:30 -0700 (PDT) Received: by 10.42.172.198 with HTTP; Fri, 23 Sep 2011 04:10:30 -0700 (PDT) In-Reply-To: References: Date: Fri, 23 Sep 2011 13:10:30 +0200 Message-ID: From: Monthadar Al Jaberi To: freebsd-wireless@freebsd.org, Adrian Chadd Content-Type: multipart/mixed; boundary=90e6ba1efd78752b9804ad99db4f Cc: Subject: Re: FreeBSD net80211s HWMP code 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, 23 Sep 2011 11:10:31 -0000 --90e6ba1efd78752b9804ad99db4f Content-Type: text/plain; charset=ISO-8859-1 Hi again, This diff fixed the broken parts in the last one. So it should be usable instead of the current FreeBSD HWMP. Also this diff is updated to draft 12.0. I hope you could try it and let me know how it goes. Will work with Adrian to break it into smaller commits to HEAD. br, On Fri, Sep 16, 2011 at 12:00 PM, Monthadar Al Jaberi wrote: > Hi, > > I am attaching my first update of the IEEE80211s HWMP code based on Draft 8.0. > > It is not complete, some stuff works better, others are broken and > there are more things to todo. > > So I would like it if some are interesting in testing the code. > > Broken: > For now only use ondemand routing and not proactive (HWMPROOTMODE=disabled). > > Works better: > PERR frames: if an MP is removed PERR frames will make sure that all > neighbour mesh nodes tables will be updated correctly. > PREQ/PREP: had some errors in code and did not follow standard correct. > > Things todo: > External address support (called Proxy in freebsd code, will change it > to reflect standard naming) > Lifetime of paths don't decrement (but because we have better PERR > frames its not a big problem for now) > And much more!! > > Attaching a diff of the code. > > In the hope it will be useful for someone. > br, > -- > //Monthadar Al Jaberi > -- //Monthadar Al Jaberi --90e6ba1efd78752b9804ad99db4f Content-Type: text/x-patch; charset=US-ASCII; name="patch0.patch" Content-Disposition: attachment; filename="patch0.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gsx2fg3l1 ZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfZXRoZXJzdWJyLmMgYi9zeXMvbmV0L2lmX2V0aGVyc3Vi ci5jCmluZGV4IDFkMTZhZTYuLmU3M2RiNDAgMTAwNjQ0Ci0tLSBhL3N5cy9uZXQvaWZfZXRoZXJz dWJyLmMKKysrIGIvc3lzL25ldC9pZl9ldGhlcnN1YnIuYwpAQCAtOTY4LDkgKzk2OCwxMyBAQCBk aXNjYXJkOgogY2hhciAqCiBldGhlcl9zcHJpbnRmKGNvbnN0IHVfY2hhciAqYXApCiB7Ci0Jc3Rh dGljIGNoYXIgZXRoZXJidWZbMThdOwotCXNucHJpbnRmKGV0aGVyYnVmLCBzaXplb2YgKGV0aGVy YnVmKSwgIiU2RCIsIGFwLCAiOiIpOwotCXJldHVybiAoZXRoZXJidWYpOworCXN0YXRpYyBjaGFy IGV0aGVyYnVmWzZdWzE4XTsKKwlzdGF0aWMgaW50IGkgPSAwOworCWNoYXIgKmJ1ZjsKKwlzbnBy aW50ZihldGhlcmJ1ZltpXSwgc2l6ZW9mIChldGhlcmJ1ZlswXSksICIlNkQiLCBhcCwgIjoiKTsK KwlidWYgPSBldGhlcmJ1ZltpXTsKKwlpID0gKGkrMSklNjsKKwlyZXR1cm4gKGJ1Zik7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS9zeXMvbmV0ODAyMTEvaWVlZTgwMjExX2h3bXAuYyBiL3N5cy9uZXQ4 MDIxMS9pZWVlODAyMTFfaHdtcC5jCmluZGV4IDc4NzI5ZmMuLjBmNTAyMDMgMTAwNjQ0Ci0tLSBh L3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHdtcC5jCisrKyBiL3N5cy9uZXQ4MDIxMS9pZWVlODAy MTFfaHdtcC5jCkBAIC0xLDYgKzEsNyBAQAogLyotIAogICogQ29weXJpZ2h0IChjKSAyMDA5IFRo ZSBGcmVlQlNEIEZvdW5kYXRpb24gCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAKKyAqIENvcHly aWdodCAoYykgMjAxMSBNb250aGFkYXIgQWwgSmFiZXJpLCBUZXJyYU5ldCBBQi4KKyAqIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFRoaXMgc29mdHdhcmUgd2FzIGRldmVsb3BlZCBieSBS dWkgUGF1bG8gdW5kZXIgc3BvbnNvcnNoaXAgZnJvbSB0aGUKICAqIEZyZWVCU0QgRm91bmRhdGlv bi4gCkBAIC00MCw4ICs0MSw4IEBAIF9fRkJTRElEKCIkRnJlZUJTRCQiKTsKICNpbmNsdWRlICJv cHRfd2xhbi5oIgogCiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+Ci0jaW5jbHVkZSA8c3lzL3N5c3Rt Lmg+IAotI2luY2x1ZGUgPHN5cy9tYnVmLmg+ICAgCisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+Cisj aW5jbHVkZSA8c3lzL21idWYuaD4KICNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CiAjaW5jbHVkZSA8 c3lzL2tlcm5lbC5oPgogCkBAIC0xMTgsNiArMTE5LDEyIEBAIHN0YXRpYyB2b2lkCWh3bXBfcGVl cmRvd24oc3RydWN0IGllZWU4MDIxMV9ub2RlICopOwogCiBzdGF0aWMgc3RydWN0IHRpbWV2YWwg aWVlZTgwMjExX2h3bXBfcHJlcW1pbmludCA9IHsgMCwgMTAwMDAwIH07CiBzdGF0aWMgc3RydWN0 IHRpbWV2YWwgaWVlZTgwMjExX2h3bXBfcGVycm1pbmludCA9IHsgMCwgMTAwMDAwIH07CitzdGF0 aWMgc3RydWN0IHRpbWV2YWwgaWVlZTgwMjExX2h3bXBfcm9vdG1pbl9jb25maW50OworCitNQUxM T0NfREVGSU5FKE1fODAyMTFfSFdNUF9SQU5OLCAiODAyMTFyYW5uIiwgIjgwMi4xMSBIV01QIFJv b3QgQW5ub3VuY21lbnQgZnJhbWUiKTsKK01BTExPQ19ERUZJTkUoTV84MDIxMV9IV01QX1BSRVEs ICI4MDIxMXByZXEiLCAiODAyLjExIEhXTVAgUGF0aCBSZXF1ZXN0IGZyYW1lIik7CitNQUxMT0Nf REVGSU5FKE1fODAyMTFfSFdNUF9QUkVQLCAiODAyMTFwcmVwIiwgIjgwMi4xMSBIV01QIFBhdGgg UmVwbHkgZnJhbWUiKTsKK01BTExPQ19ERUZJTkUoTV84MDIxMV9IV01QX1BFUlIsICI4MDIxMXBl cnIiLCAiODAyLjExIEhXTVAgUGF0aCBFcnJvciBmcmFtZSIpOwogCiAvKiB1bmFsbGlnbmVkIGxp dHRsZSBlbmRpYW4gYWNjZXNzICovCiAjZGVmaW5lIExFX1dSSVRFXzIocCwgdikgZG8gewkJCQlc CkBAIC0xMzksOSArMTQ2LDE3IEBAIHN0YXRpYyBjb25zdCB1aW50OF90CWJyb2FkY2FzdGFkZHJb SUVFRTgwMjExX0FERFJfTEVOXSA9CiB0eXBlZGVmIHVpbnQzMl90IGllZWU4MDIxMV9od21wX3Nl cTsKICNkZWZpbmUJSFdNUF9TRVFfTFQoYSwgYikJKChpbnQzMl90KSgoYSktKGIpKSA8IDApCiAj ZGVmaW5lCUhXTVBfU0VRX0xFUShhLCBiKQkoKGludDMyX3QpKChhKS0oYikpIDw9IDApCisjZGVm aW5lCUhXTVBfU0VRX0VRKGEsIGIpCSgoaW50MzJfdCkoKGEpLShiKSkgPT0gMCkKICNkZWZpbmUJ SFdNUF9TRVFfR1QoYSwgYikJKChpbnQzMl90KSgoYSktKGIpKSA+IDApCiAjZGVmaW5lCUhXTVBf U0VRX0dFUShhLCBiKQkoKGludDMyX3QpKChhKS0oYikpID49IDApCiAKKy8qIFRoZSBsb25nZXIg b25lIG9mIHRoZSBsaWZldGltZSBzaG91bGQgYmUgc3RvcmVkIGFzIG5ldyBsaWZldGltZSAqLwor I2RlZmluZSBNRVNIX1JPVVRFX0xJRkVUSU1FX01BWChhLCBiKQkoYSA+IGIgPyBhIDogYikKKwor I2RlZmluZQlNRVNIX1JUX0xPQ0sobXMpCW10eF9sb2NrKCYobXMpLT5tc19ydF9sb2NrKQorI2Rl ZmluZQlNRVNIX1JUX0xPQ0tfQVNTRVJUKG1zKQltdHhfYXNzZXJ0KCYobXMpLT5tc19ydF9sb2Nr LCBNQV9PV05FRCkKKyNkZWZpbmUJTUVTSF9SVF9VTkxPQ0sobXMpCW10eF91bmxvY2soJihtcykt Pm1zX3J0X2xvY2spCisKIC8qCiAgKiBQcml2YXRlIGV4dGVuc2lvbiBvZiBpZWVlODAyMTFfbWVz aF9yb3V0ZS4KICAqLwpAQCAtMTUwLDEyICsxNjUsMTUgQEAgc3RydWN0IGllZWU4MDIxMV9od21w X3JvdXRlIHsKIAlpZWVlODAyMTFfaHdtcF9zZXEJaHJfcHJlcWlkOwkvKiBsYXN0IFBSRVEgSUQg c2VlbiBmcm9tIGRzdCAqLwogCWllZWU4MDIxMV9od21wX3NlcQlocl9vcmlnc2VxOwkvKiBzZXEu IG5vLiBvbiBvdXIgbGF0ZXN0IFBSRVEqLwogCWludAkJCWhyX3ByZXFyZXRyaWVzOworCWludAkJ CWhyX3Byb19wcmVwOwkvKiB3aGV0aGVyIG1lc2ggZ2VuZXJhdGVzIFByb2FjdGl2ZSBQUkVQICov CisJaW50CQkJaHJfc2VudF9wcmVwOwkvKiB3aGV0aGVyIG1lc2ggaGFzIHNlbnQgYSBQcm9hY3Rp dmUgUFJFUCAqLwogfTsKIHN0cnVjdCBpZWVlODAyMTFfaHdtcF9zdGF0ZSB7CiAJaWVlZTgwMjEx X2h3bXBfc2VxCWhzX3NlcTsJCS8qIG5leHQgc2VxIHRvIGJlIHVzZWQgKi8KIAlpZWVlODAyMTFf aHdtcF9zZXEJaHNfcHJlcWlkOwkvKiBuZXh0IFBSRVEgSUQgdG8gYmUgdXNlZCAqLwogCXN0cnVj dCB0aW1ldmFsCQloc19sYXN0cHJlcTsJLyogbGFzdCB0aW1lIHdlIHNlbnQgYSBQUkVRICovCiAJ c3RydWN0IHRpbWV2YWwJCWhzX2xhc3RwZXJyOwkvKiBsYXN0IHRpbWUgd2Ugc2VudCBhIFBFUlIg Ki8KKwlzdHJ1Y3QgdGltZXZhbAkJaHNfbGFzdHJvb3Rjb25mOy8qIGxhc3QgdGltZSB3ZSBzZW50 IGEgUFJFUSB0byByb290ICovCiAJaW50CQkJaHNfcm9vdG1vZGU7CS8qIHByb2FjdGl2ZSBIV01Q ICovCiAJc3RydWN0IGNhbGxvdXQJCWhzX3Jvb3R0aW1lcjsKIAl1aW50OF90CQkJaHNfbWF4aG9w czsJLyogbWF4IGhvcCBjb3VudCAqLwpAQCAtMTY2LDE3ICsxODQsMjIgQEAgU1lTQ1RMX05PREUo X25ldF93bGFuLCBPSURfQVVUTywgaHdtcCwgQ1RMRkxBR19SRCwgMCwKIHN0YXRpYyBpbnQJaWVl ZTgwMjExX2h3bXBfdGFyZ2V0b25seSA9IDA7CiBTWVNDVExfSU5UKF9uZXRfd2xhbl9od21wLCBP SURfQVVUTywgdGFyZ2V0b25seSwgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLAogICAgICZpZWVl ODAyMTFfaHdtcF90YXJnZXRvbmx5LCAwLCAiU2V0IFRPIGJpdCBvbiBnZW5lcmF0ZWQgUFJFUXMi KTsKLXN0YXRpYyBpbnQJaWVlZTgwMjExX2h3bXBfcmVwbHlmb3J3YXJkID0gMTsKLVNZU0NUTF9J TlQoX25ldF93bGFuX2h3bXAsIE9JRF9BVVRPLCByZXBseWZvcndhcmQsIENUTFRZUEVfSU5UIHwg Q1RMRkxBR19SVywKLSAgICAmaWVlZTgwMjExX2h3bXBfcmVwbHlmb3J3YXJkLCAwLCAiU2V0IFJG IGJpdCBvbiBnZW5lcmF0ZWQgUFJFUXMiKTsKIHN0YXRpYyBpbnQJaWVlZTgwMjExX2h3bXBfcGF0 aHRpbWVvdXQgPSAtMTsKIFNZU0NUTF9QUk9DKF9uZXRfd2xhbl9od21wLCBPSURfQVVUTywgcGF0 aGxpZmV0aW1lLCBDVExUWVBFX0lOVCB8IENUTEZMQUdfUlcsCiAgICAgJmllZWU4MDIxMV9od21w X3BhdGh0aW1lb3V0LCAwLCBpZWVlODAyMTFfc3lzY3RsX21zZWNzX3RpY2tzLCAiSSIsCiAgICAg InBhdGggZW50cnkgbGlmZXRpbWUgKG1zKSIpOworc3RhdGljIGludAlpZWVlODAyMTFfaHdtcF9y b290Y29uZmludCA9IC0xOworU1lTQ1RMX1BST0MoX25ldF93bGFuX2h3bXAsIE9JRF9BVVRPLCBy b290Y29uZmludCwgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLAorICAgICZpZWVlODAyMTFfaHdt cF9yb290Y29uZmludCwgMCwgaWVlZTgwMjExX3N5c2N0bF9tc2Vjc190aWNrcywgIkkiLAorICAg ICJyb290IGNvbmZpcm1hdGlvbiBpbnRlcnZhbCAobXMpIik7CiBzdGF0aWMgaW50CWllZWU4MDIx MV9od21wX3Jvb3R0aW1lb3V0ID0gLTE7CiBTWVNDVExfUFJPQyhfbmV0X3dsYW5faHdtcCwgT0lE X0FVVE8sIHJvb3R0aW1lb3V0LCBDVExUWVBFX0lOVCB8IENUTEZMQUdfUlcsCiAgICAgJmllZWU4 MDIxMV9od21wX3Jvb3R0aW1lb3V0LCAwLCBpZWVlODAyMTFfc3lzY3RsX21zZWNzX3RpY2tzLCAi SSIsCiAgICAgInJvb3QgUFJFUSB0aW1lb3V0IChtcykiKTsKK3N0YXRpYyBpbnQJaWVlZTgwMjEx X2h3bXBfcmFubnRpbWVvdXQgPSAtMTsKK1NZU0NUTF9QUk9DKF9uZXRfd2xhbl9od21wLCBPSURf QVVUTywgcmFubnRpbWVvdXQsIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywKKyAgICAmaWVlZTgw MjExX2h3bXBfcmFubnRpbWVvdXQsIDAsIGllZWU4MDIxMV9zeXNjdGxfbXNlY3NfdGlja3MsICJJ IiwKKyAgICAiUkFOTiBQUkVRIHRpbWVvdXQgKG1zKSIpOwogc3RhdGljIGludAlpZWVlODAyMTFf aHdtcF9yb290aW50ID0gLTE7CiBTWVNDVExfUFJPQyhfbmV0X3dsYW5faHdtcCwgT0lEX0FVVE8s IHJvb3RpbnQsIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywKICAgICAmaWVlZTgwMjExX2h3bXBf cm9vdGludCwgMCwgaWVlZTgwMjExX3N5c2N0bF9tc2Vjc190aWNrcywgIkkiLApAQCAtMTg3LDYg KzIxMCw3IEBAIFNZU0NUTF9QUk9DKF9uZXRfd2xhbl9od21wLCBPSURfQVVUTywgcmFubmludCwg Q1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLAogICAgICJyb290IGFubm91bmNlbWVudCBpbnRlcnZh bCAobXMpIik7CiAKICNkZWZpbmUJSUVFRTgwMjExX0hXTVBfREVGQVVMVF9NQVhIT1BTCTMxCisj ZGVmaW5lCUlFRUU4MDIxMV9IV01QX1BFUlJfTUFYREVTVAkxMAogCiBzdGF0aWMJaWVlZTgwMjEx X3JlY3ZfYWN0aW9uX2Z1bmMgaHdtcF9yZWN2X2FjdGlvbl9tZXNocGF0aDsKIApAQCAtMjA4LDEw ICsyMzIsMTUgQEAgU1lTQ1RMX1BST0MoX25ldF93bGFuX2h3bXAsIE9JRF9BVVRPLCBpbmFjdCwg Q1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLAogc3RhdGljIHZvaWQKIGllZWU4MDIxMV9od21wX2lu aXQodm9pZCkKIHsKKwlpZWVlODAyMTFfaHdtcF9yb290Y29uZmludCA9IG1zZWNzX3RvX3RpY2tz KDUqMTAwMCk7CiAJaWVlZTgwMjExX2h3bXBfcGF0aHRpbWVvdXQgPSBtc2Vjc190b190aWNrcyg1 KjEwMDApOwogCWllZWU4MDIxMV9od21wX3Jvb3R0aW1lb3V0ID0gbXNlY3NfdG9fdGlja3MoNSox MDAwKTsKKwlpZWVlODAyMTFfaHdtcF9yYW5udGltZW91dCA9IG1zZWNzX3RvX3RpY2tzKDUqMTAw MCk7CiAJaWVlZTgwMjExX2h3bXBfcm9vdGludCA9IG1zZWNzX3RvX3RpY2tzKDIqMTAwMCk7CiAJ aWVlZTgwMjExX2h3bXBfcmFubmludCA9IG1zZWNzX3RvX3RpY2tzKDEqMTAwMCk7CisJCisJaWVl ZTgwMjExX2h3bXBfcm9vdG1pbl9jb25maW50LnR2X3NlYyA9IHRpY2tzX3RvX3NlY3MoaWVlZTgw MjExX2h3bXBfcm9vdGNvbmZpbnQpOworCWllZWU4MDIxMV9od21wX3Jvb3RtaW5fY29uZmludC50 dl91c2VjID0gMDsKIAogCS8qCiAJICogUmVnaXN0ZXIgYWN0aW9uIGZyYW1lIGhhbmRsZXIuCkBA IC0yNDMsNiArMjcyLDcgQEAgaHdtcF92YXR0YWNoKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCkK IAkJcHJpbnRmKCIlczogY291bGRuJ3QgYWxsb2MgSFdNUCBzdGF0ZVxuIiwgX19mdW5jX18pOwog CQlyZXR1cm47CiAJfQorCQogCWhzLT5oc19tYXhob3BzID0gSUVFRTgwMjExX0hXTVBfREVGQVVM VF9NQVhIT1BTOwogCWNhbGxvdXRfaW5pdCgmaHMtPmhzX3Jvb3R0aW1lciwgQ0FMTE9VVF9NUFNB RkUpOwogCXZhcC0+aXZfaHdtcCA9IGhzOwpAQCAtMjU2LDcgKzI4Niw3IEBAIGh3bXBfdmRldGFj aChzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXApCiAJY2FsbG91dF9kcmFpbigmaHMtPmhzX3Jvb3R0 aW1lcik7CiAJZnJlZSh2YXAtPml2X2h3bXAsIE1fODAyMTFfVkFQKTsKIAl2YXAtPml2X2h3bXAg PSBOVUxMOwotfSAKK30KIAogaW50CiBod21wX25ld3N0YXRlKHN0cnVjdCBpZWVlODAyMTF2YXAg KnZhcCwgZW51bSBpZWVlODAyMTFfc3RhdGUgb3N0YXRlLCBpbnQgYXJnKQpAQCAtMjgxLDEwICsz MTEsMTAgQEAgaHdtcF9yZWN2X2FjdGlvbl9tZXNocGF0aChzdHJ1Y3QgaWVlZTgwMjExX25vZGUg Km5pLAogCWNvbnN0IHVpbnQ4X3QgKmZybSwgY29uc3QgdWludDhfdCAqZWZybSkKIHsKIAlzdHJ1 Y3QgaWVlZTgwMjExdmFwICp2YXAgPSBuaS0+bmlfdmFwOwotCXN0cnVjdCBpZWVlODAyMTFfbWVz aHByZXFfaWUgcHJlcTsKLQlzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llIHByZXA7Ci0Jc3Ry dWN0IGllZWU4MDIxMV9tZXNocGVycl9pZSBwZXJyOwotCXN0cnVjdCBpZWVlODAyMTFfbWVzaHJh bm5faWUgcmFubjsKKwlzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVxX2llICpwcmVxOworCXN0cnVj dCBpZWVlODAyMTFfbWVzaHByZXBfaWUgKnByZXA7CisJc3RydWN0IGllZWU4MDIxMV9tZXNocGVy cl9pZSAqcGVycjsKKwlzdHJ1Y3QgaWVlZTgwMjExX21lc2hyYW5uX2llICpyYW5uOwogCWNvbnN0 IHVpbnQ4X3QgKmllZnJtID0gZnJtICsgMjsgLyogYWN0aW9uICsgY29kZSAqLwogCWludCBmb3Vu ZCA9IDA7CiAKQEAgLTI5Myw5MCArMzIzLDE1NiBAQCBod21wX3JlY3ZfYWN0aW9uX21lc2hwYXRo KHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmksCiAJCXN3aXRjaCAoKmllZnJtKSB7CiAJCWNhc2Ug SUVFRTgwMjExX0VMRU1JRF9NRVNIUFJFUToKIAkJewotCQkJY29uc3Qgc3RydWN0IGllZWU4MDIx MV9tZXNocHJlcV9pZSAqbXByZXEgPQotCQkJICAgIChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX21l c2hwcmVxX2llICopIGllZnJtOwotCQkJLyogWFhYID4gMSB0YXJnZXQgKi8KLQkJCWlmIChtcHJl cS0+cHJlcV9sZW4gIT0KLQkJCSAgICBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocHJlcV9p ZSkgLSAyKSB7CisJCQlpbnQgaSA9IDA7CisJCQlwcmVxID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qg aWVlZTgwMjExX21lc2hwcmVxX2llKSArCisJCQkgICAgKGllZnJtWzI3XS0xKSpzaXplb2YoKnBy ZXEtPnByZXFfdGFyZ2V0cyksCisJCQkgICAgTV84MDIxMV9IV01QX1BSRVEsIE1fTk9XQUlUIHwg TV9aRVJPKTsKKwkJCUtBU1NFUlQocHJlcSAhPSBOVUxMLCAoInByZXEgPT0gTlVMTCIpKTsKKwor CQkJcHJlcS0+cHJlcV9pZSA9ICppZWZybSsrOworCQkJcHJlcS0+cHJlcV9sZW4gPSAqaWVmcm0r KzsKKwkJCXByZXEtPnByZXFfZmxhZ3MgPSAqaWVmcm0rKzsKKwkJCXByZXEtPnByZXFfaG9wY291 bnQgPSAqaWVmcm0rKzsKKwkJCXByZXEtPnByZXFfdHRsID0gKmllZnJtKys7CisJCQlwcmVxLT5w cmVxX2lkID0gTEVfUkVBRF80KGllZnJtKTsgaWVmcm0gKz0gNDsKKwkJCUlFRUU4MDIxMV9BRERS X0NPUFkocHJlcS0+cHJlcV9vcmlnYWRkciwgaWVmcm0pOworCQkJaWVmcm0gKz0gNjsKKwkJCXBy ZXEtPnByZXFfb3JpZ3NlcSA9IExFX1JFQURfNChpZWZybSk7IGllZnJtICs9IDQ7CisJCQkvKiBO QjogbWF5IGhhdmUgT3JpZ2luYXRvciBQcm94aWVkIEFkZHJlc3MgKi8KKwkJCXByZXEtPnByZXFf bGlmZXRpbWUgPSBMRV9SRUFEXzQoaWVmcm0pOyBpZWZybSArPSA0OworCQkJcHJlcS0+cHJlcV9t ZXRyaWMgPSBMRV9SRUFEXzQoaWVmcm0pOyBpZWZybSArPSA0OworCQkJcHJlcS0+cHJlcV90Y291 bnQgPSAqaWVmcm0rKzsKKwkJCQorCQkJaWYgKHByZXEtPnByZXFfbGVuICE9IElFRUU4MDIxMV9N RVNIUFJFUV9CQVNFX1NaICsKKwkJCSAgICBwcmVxLT5wcmVxX3Rjb3VudCAqIElFRUU4MDIxMV9N RVNIUFJFUV9UUkdUX1NaKSB7CiAJCQkJSUVFRTgwMjExX0RJU0NBUkQodmFwLAogCQkJCSAgICBJ RUVFODAyMTFfTVNHX0FDVElPTiB8IElFRUU4MDIxMV9NU0dfSFdNUCwKIAkJCQkgICAgd2gsIE5V TEwsICIlcyIsICJQUkVRIHdpdGggd3JvbmcgbGVuIik7CiAJCQkJdmFwLT5pdl9zdGF0cy5pc19y eF9tZ3RkaXNjYXJkKys7CisJCQkJZnJlZShwcmVxLCBNXzgwMjExX0hXTVBfUFJFUSk7CiAJCQkJ YnJlYWs7CiAJCQl9Ci0JCQltZW1jcHkoJnByZXEsIG1wcmVxLCBzaXplb2YocHJlcSkpOwotCQkJ cHJlcS5wcmVxX2lkID0gTEVfUkVBRF80KCZtcHJlcS0+cHJlcV9pZCk7Ci0JCQlwcmVxLnByZXFf b3JpZ3NlcSA9IExFX1JFQURfNCgmbXByZXEtPnByZXFfb3JpZ3NlcSk7Ci0JCQlwcmVxLnByZXFf bGlmZXRpbWUgPSBMRV9SRUFEXzQoJm1wcmVxLT5wcmVxX2xpZmV0aW1lKTsKLQkJCXByZXEucHJl cV9tZXRyaWMgPSBMRV9SRUFEXzQoJm1wcmVxLT5wcmVxX21ldHJpYyk7Ci0JCQlwcmVxLnByZXFf dGFyZ2V0c1swXS50YXJnZXRfc2VxID0KLQkJCSAgICBMRV9SRUFEXzQoJm1wcmVxLT5wcmVxX3Rh cmdldHNbMF0udGFyZ2V0X3NlcSk7Ci0JCQlod21wX3JlY3ZfcHJlcSh2YXAsIG5pLCB3aCwgJnBy ZXEpOworCisJCQlmb3IgKGkgPSAwOyBpIDwgcHJlcS0+cHJlcV90Y291bnQ7IGkrKykgeworCQkJ CXByZXEtPnByZXFfdGFyZ2V0c1tpXS50YXJnZXRfZmxhZ3MgPSAqaWVmcm0rKzsKKwkJCQlJRUVF ODAyMTFfQUREUl9DT1BZKAorCQkJCSAgICBwcmVxLT5wcmVxX3RhcmdldHNbaV0udGFyZ2V0X2Fk ZHIsIGllZnJtKTsKKwkJCQlpZWZybSArPSA2OworCQkJCXByZXEtPnByZXFfdGFyZ2V0c1tpXS50 YXJnZXRfc2VxID0KKwkJCQkgICAgTEVfUkVBRF80KGllZnJtKTsgaWVmcm0gKz0gNDsKKwkJCX0K KworCQkJaHdtcF9yZWN2X3ByZXEodmFwLCBuaSwgd2gsIHByZXEpOworCQkJZnJlZShwcmVxLCBN XzgwMjExX0hXTVBfUFJFUSk7CiAJCQlmb3VuZCsrOwotCQkJYnJlYWs7CQorCQkJYnJlYWs7CiAJ CX0KIAkJY2FzZSBJRUVFODAyMTFfRUxFTUlEX01FU0hQUkVQOgogCQl7Ci0JCQljb25zdCBzdHJ1 Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llICptcHJlcCA9Ci0JCQkgICAgKGNvbnN0IHN0cnVjdCBp ZWVlODAyMTFfbWVzaHByZXBfaWUgKikgaWVmcm07Ci0JCQlpZiAobXByZXAtPnByZXBfbGVuICE9 Ci0JCQkgICAgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfbWVzaHByZXBfaWUpIC0gMikgeworCQkJ cHJlcCA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocHJlcF9pZSksCisJCQkg ICAgTV84MDIxMV9IV01QX1BSRVAsIE1fTk9XQUlUIHwgTV9aRVJPKTsKKwkJCUtBU1NFUlQocHJl cCAhPSBOVUxMLCAoInByZXAgPT0gTlVMTCIpKTsKKworCQkJcHJlcC0+cHJlcF9pZSA9ICppZWZy bSsrOworCQkJcHJlcC0+cHJlcF9sZW4gPSAqaWVmcm0rKzsKKworCQkJaWYgKHByZXAtPnByZXBf bGVuICE9IElFRUU4MDIxMV9NRVNIUFJFUF9CQVNFX1NaKSB7CiAJCQkJSUVFRTgwMjExX0RJU0NB UkQodmFwLAogCQkJCSAgICBJRUVFODAyMTFfTVNHX0FDVElPTiB8IElFRUU4MDIxMV9NU0dfSFdN UCwKIAkJCQkgICAgd2gsIE5VTEwsICIlcyIsICJQUkVQIHdpdGggd3JvbmcgbGVuIik7CiAJCQkJ dmFwLT5pdl9zdGF0cy5pc19yeF9tZ3RkaXNjYXJkKys7CisJCQkJZnJlZShwcmVwLCBNXzgwMjEx X0hXTVBfUFJFUCk7CiAJCQkJYnJlYWs7CiAJCQl9Ci0JCQltZW1jcHkoJnByZXAsIG1wcmVwLCBz aXplb2YocHJlcCkpOwotCQkJcHJlcC5wcmVwX3RhcmdldHNlcSA9IExFX1JFQURfNCgmbXByZXAt PnByZXBfdGFyZ2V0c2VxKTsKLQkJCXByZXAucHJlcF9saWZldGltZSA9IExFX1JFQURfNCgmbXBy ZXAtPnByZXBfbGlmZXRpbWUpOwotCQkJcHJlcC5wcmVwX21ldHJpYyA9IExFX1JFQURfNCgmbXBy ZXAtPnByZXBfbWV0cmljKTsKLQkJCXByZXAucHJlcF9vcmlnc2VxID0gTEVfUkVBRF80KCZtcHJl cC0+cHJlcF9vcmlnc2VxKTsKLQkJCWh3bXBfcmVjdl9wcmVwKHZhcCwgbmksIHdoLCAmcHJlcCk7 CisKKwkJCXByZXAtPnByZXBfZmxhZ3MgPSAqaWVmcm0rKzsKKwkJCXByZXAtPnByZXBfaG9wY291 bnQgPSAqaWVmcm0rKzsKKwkJCXByZXAtPnByZXBfdHRsID0gKmllZnJtKys7CisJCQlJRUVFODAy MTFfQUREUl9DT1BZKHByZXAtPnByZXBfdGFyZ2V0YWRkciwgaWVmcm0pOworCQkJaWVmcm0gKz0g NjsKKwkJCXByZXAtPnByZXBfdGFyZ2V0c2VxID0gTEVfUkVBRF80KGllZnJtKTsgaWVmcm0gKz0g NDsKKwkJCS8qIE5COiBNYXkgaGF2ZSBUYXJnZXQgUHJveGllZCBBZGRyZXNzICovCisJCQlwcmVw LT5wcmVwX2xpZmV0aW1lID0gTEVfUkVBRF80KGllZnJtKTsgaWVmcm0gKz0gNDsKKwkJCXByZXAt PnByZXBfbWV0cmljID0gTEVfUkVBRF80KGllZnJtKTsgaWVmcm0gKz0gNDsKKwkJCUlFRUU4MDIx MV9BRERSX0NPUFkocHJlcC0+cHJlcF9vcmlnYWRkciwgaWVmcm0pOworCQkJaWVmcm0gKz0gNjsK KwkJCXByZXAtPnByZXBfb3JpZ3NlcSA9IExFX1JFQURfNChpZWZybSk7IGllZnJtICs9IDQ7CisK KwkJCWh3bXBfcmVjdl9wcmVwKHZhcCwgbmksIHdoLCBwcmVwKTsKKwkJCWZyZWUocHJlcCwgTV84 MDIxMV9IV01QX1BSRVApOwogCQkJZm91bmQrKzsKIAkJCWJyZWFrOwogCQl9CiAJCWNhc2UgSUVF RTgwMjExX0VMRU1JRF9NRVNIUEVSUjoKIAkJewotCQkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV9t ZXNocGVycl9pZSAqbXBlcnIgPQotCQkJICAgIChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hw ZXJyX2llICopIGllZnJtOwotCQkJLyogWFhYID4gMSB0YXJnZXQgKi8KLQkJCWlmIChtcGVyci0+ cGVycl9sZW4gIT0KLQkJCSAgICBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocGVycl9pZSkg LSAyKSB7CisJCQlpbnQgaSA9IDA7CisJCQlwZXJyID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgaWVl ZTgwMjExX21lc2hwZXJyX2llKSArCisJCQkgICAgKGllZnJtWzNdLTEpKnNpemVvZigqcGVyci0+ cGVycl9kZXN0cyksCisJCQkgICAgTV84MDIxMV9IV01QX1BFUlIsIE1fTk9XQUlUIHwgTV9aRVJP KTsKKwkJCUtBU1NFUlQocGVyciAhPSBOVUxMLCAoInBlcnIgPT0gTlVMTCIpKTsKKwkJCXBlcnIt PnBlcnJfaWUgPSAqaWVmcm0rKzsKKwkJCXBlcnItPnBlcnJfbGVuID0gKmllZnJtKys7CisJCQlw ZXJyLT5wZXJyX3R0bCA9ICppZWZybSsrOworCQkJcGVyci0+cGVycl9uZGVzdHMgPSAqaWVmcm0r KzsKKworCQkJaWYgKHBlcnItPnBlcnJfbGVuICE9IChJRUVFODAyMTFfTUVTSFBFUlJfQkFTRV9T WiArCisJCQkgICAgcGVyci0+cGVycl9uZGVzdHMgKiBJRUVFODAyMTFfTUVTSFBFUlJfREVTVF9T WikpIHsKIAkJCQlJRUVFODAyMTFfRElTQ0FSRCh2YXAsCiAJCQkJICAgIElFRUU4MDIxMV9NU0df QUNUSU9OIHwgSUVFRTgwMjExX01TR19IV01QLAotCQkJCSAgICB3aCwgTlVMTCwgIiVzIiwgIlBF UlIgd2l0aCB3cm9uZyBsZW4iKTsKKwkJCQkgICAgd2gsIE5VTEwsICIlcyIsICJQRVJSIHdpdGgg d3JvbmcgbGVuLCAlcyIsCisJCQkJICAgIHBlcnItPnBlcnJfbGVuKTsKIAkJCQl2YXAtPml2X3N0 YXRzLmlzX3J4X21ndGRpc2NhcmQrKzsKKwkJCQlmcmVlKHBlcnIsIE1fODAyMTFfSFdNUF9QRVJS KTsKIAkJCQlicmVhazsKIAkJCX0KLQkJCW1lbWNweSgmcGVyciwgbXBlcnIsIHNpemVvZihwZXJy KSk7Ci0JCQlwZXJyLnBlcnJfZGVzdHNbMF0uZGVzdF9zZXEgPQotCQkJICAgIExFX1JFQURfNCgm bXBlcnItPnBlcnJfZGVzdHNbMF0uZGVzdF9zZXEpOwotCQkJaHdtcF9yZWN2X3BlcnIodmFwLCBu aSwgd2gsICZwZXJyKTsKKworCQkJZm9yKGkgPSAwOyBpPHBlcnItPnBlcnJfbmRlc3RzOyBpKysp IHsKKwkJCQlwZXJyLT5wZXJyX2Rlc3RzW2ldLmRlc3RfZmxhZ3MgPSAqaWVmcm0rKzsKKwkJCQlJ RUVFODAyMTFfQUREUl9DT1BZKAorCQkJCSAgICBwZXJyLT5wZXJyX2Rlc3RzW2ldLmRlc3RfYWRk ciwgaWVmcm0pOworCQkJCWllZnJtICs9IDY7CisJCQkJcGVyci0+cGVycl9kZXN0c1tpXS5kZXN0 X3NlcSA9IExFX1JFQURfNChpZWZybSk7CisJCQkJaWVmcm0gKz0gNDsKKwkJCQkvKiBOQjogTWF5 IGhhdmUgVGFyZ2V0IFByb3hpZWQgQWRkcmVzcyAqLworCQkJCXBlcnItPnBlcnJfZGVzdHNbaV0u ZGVzdF9yY29kZSA9CisJCQkJICAgIExFX1JFQURfMihpZWZybSk7CisJCQkJaWVmcm0gKz0gMjsK KwkJCX0KKworCQkJaHdtcF9yZWN2X3BlcnIodmFwLCBuaSwgd2gsIHBlcnIpOworCQkJZnJlZShw ZXJyLCBNXzgwMjExX0hXTVBfUEVSUik7CiAJCQlmb3VuZCsrOwogCQkJYnJlYWs7CiAJCX0KIAkJ Y2FzZSBJRUVFODAyMTFfRUxFTUlEX01FU0hSQU5OOgogCQl7Ci0JCQljb25zdCBzdHJ1Y3QgaWVl ZTgwMjExX21lc2hyYW5uX2llICptcmFubiA9Ci0JCQkgICAgKGNvbnN0IHN0cnVjdCBpZWVlODAy MTFfbWVzaHJhbm5faWUgKikgaWVmcm07Ci0JCQlpZiAobXJhbm4tPnJhbm5fbGVuICE9Ci0JCQkg ICAgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfbWVzaHJhbm5faWUpIC0gMikgeworCQkJcmFubiA9 IG1hbGxvYyhzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocmFubl9pZSksCisJCQkgICAgTV84 MDIxMV9IV01QX1JBTk4sIE1fTk9XQUlUIHwgTV9aRVJPKTsKKwkJCUtBU1NFUlQocmFubiAhPSBO VUxMLCAoInBlcnIgPT0gTlVMTCIpKTsKKwkJCWlmIChpZWZybVsxXSAhPSBJRUVFODAyMTFfTUVT SFJBTk5fQkFTRV9TWikgewogCQkJCUlFRUU4MDIxMV9ESVNDQVJEKHZhcCwKIAkJCQkgICAgSUVF RTgwMjExX01TR19BQ1RJT04gfCBJRUVFODAyMTFfTVNHX0hXTVAsCi0JCQkJICAgIHdoLCBOVUxM LCAiJXMiLCAiUkFOIHdpdGggd3JvbmcgbGVuIik7CisJCQkJICAgIHdoLCBOVUxMLCAiUkFOTiB3 aXRoIHdyb25nIGxlbj0lZCIsCisJCQkJICAgIGllZnJtWzFdKTsKIAkJCQl2YXAtPml2X3N0YXRz LmlzX3J4X21ndGRpc2NhcmQrKzsKLQkJCQlyZXR1cm4gMTsKKwkJCQlmcmVlKHJhbm4sIE1fODAy MTFfSFdNUF9SQU5OKTsKKwkJCQlicmVhazsKIAkJCX0KLQkJCW1lbWNweSgmcmFubiwgbXJhbm4s IHNpemVvZihyYW5uKSk7Ci0JCQlyYW5uLnJhbm5fc2VxID0gTEVfUkVBRF80KCZtcmFubi0+cmFu bl9zZXEpOwotCQkJcmFubi5yYW5uX21ldHJpYyA9IExFX1JFQURfNCgmbXJhbm4tPnJhbm5fbWV0 cmljKTsKLQkJCWh3bXBfcmVjdl9yYW5uKHZhcCwgbmksIHdoLCAmcmFubik7CisJCQlyYW5uLT5y YW5uX2llID0gKmllZnJtKys7CisJCQlyYW5uLT5yYW5uX2xlbiA9ICppZWZybSsrOzsKKwkJCXJh bm4tPnJhbm5fZmxhZ3MgPSAqaWVmcm0rKzsKKwkJCXJhbm4tPnJhbm5faG9wY291bnQgPSAqaWVm cm0rKzsKKwkJCXJhbm4tPnJhbm5fdHRsID0gKmllZnJtKys7CisJCQlJRUVFODAyMTFfQUREUl9D T1BZKHJhbm4tPnJhbm5fYWRkciwgaWVmcm0pOyBpZWZybSArPSA2OworCQkJcmFubi0+cmFubl9z ZXEgPSBMRV9SRUFEXzQoaWVmcm0pOyBpZWZybSArPSA0OworCQkJcmFubi0+cmFubl9pbnRlcnZh bCA9IExFX1JFQURfNChpZWZybSk7IGllZnJtICs9IDQ7CisJCQlyYW5uLT5yYW5uX21ldHJpYyA9 IExFX1JFQURfNChpZWZybSk7IGllZnJtICs9IDQ7CisJCQlod21wX3JlY3ZfcmFubih2YXAsIG5p LCB3aCwgcmFubik7CisJCQlmcmVlKHJhbm4sIE1fODAyMTFfSFdNUF9SQU5OKTsKIAkJCWZvdW5k Kys7CiAJCQlicmVhazsKIAkJfQogCQl9Ci0JCWllZnJtICs9IGllZnJtWzFdICsgMjsKIAl9CiAJ aWYgKCFmb3VuZCkgewogCQlJRUVFODAyMTFfRElTQ0FSRCh2YXAsCkBAIC00OTMsOSArNTg5LDgg QEAgaHdtcF9hZGRfbWVzaHByZXEodWludDhfdCAqZnJtLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjEx X21lc2hwcmVxX2llICpwcmVxKQogewogCWludCBpOwogCi0JKmZybSsrID0gSUVFRTgwMjExX0VM RU1JRF9NRVNIUFJFUTsKLQkqZnJtKysgPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocHJl cV9pZSkgLSAyICsKLQkgICAgKHByZXEtPnByZXFfdGNvdW50IC0gMSkgKiBzaXplb2YoKnByZXEt PnByZXFfdGFyZ2V0cyk7CisJKmZybSsrID0gcHJlcS0+cHJlcV9pZTsKKwkqZnJtKysgPSBwcmVx LT5wcmVxX2xlbjsKIAkqZnJtKysgPSBwcmVxLT5wcmVxX2ZsYWdzOwogCSpmcm0rKyA9IHByZXEt PnByZXFfaG9wY291bnQ7CiAJKmZybSsrID0gcHJlcS0+cHJlcV90dGw7CkBAIC01MjAsOCArNjE1 LDggQEAgaHdtcF9hZGRfbWVzaHByZXEodWludDhfdCAqZnJtLCBjb25zdCBzdHJ1Y3QgaWVlZTgw MjExX21lc2hwcmVxX2llICpwcmVxKQogc3RhdGljIHVpbnQ4X3QgKgogaHdtcF9hZGRfbWVzaHBy ZXAodWludDhfdCAqZnJtLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llICpwcmVw KQogewotCSpmcm0rKyA9IElFRUU4MDIxMV9FTEVNSURfTUVTSFBSRVA7Ci0JKmZybSsrID0gc2l6 ZW9mKHN0cnVjdCBpZWVlODAyMTFfbWVzaHByZXBfaWUpIC0gMjsKKwkqZnJtKysgPSBwcmVwLT5w cmVwX2llOworCSpmcm0rKyA9IHByZXAtPnByZXBfbGVuOwogCSpmcm0rKyA9IHByZXAtPnByZXBf ZmxhZ3M7CiAJKmZybSsrID0gcHJlcC0+cHJlcF9ob3Bjb3VudDsKIAkqZnJtKysgPSBwcmVwLT5w cmVwX3R0bDsKQEAgLTU0Miw5ICs2MzcsOCBAQCBod21wX2FkZF9tZXNocGVycih1aW50OF90ICpm cm0sIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfbWVzaHBlcnJfaWUgKnBlcnIpCiB7CiAJaW50IGk7 CiAKLQkqZnJtKysgPSBJRUVFODAyMTFfRUxFTUlEX01FU0hQRVJSOwotCSpmcm0rKyA9IHNpemVv ZihzdHJ1Y3QgaWVlZTgwMjExX21lc2hwZXJyX2llKSAtIDIgKwotCSAgICAocGVyci0+cGVycl9u ZGVzdHMgLSAxKSAqIHNpemVvZigqcGVyci0+cGVycl9kZXN0cyk7CisJKmZybSsrID0gcGVyci0+ cGVycl9pZTsKKwkqZnJtKysgPSBwZXJyLT5wZXJyX2xlbjsKIAkqZnJtKysgPSBwZXJyLT5wZXJy X3R0bDsKIAkqZnJtKysgPSBwZXJyLT5wZXJyX25kZXN0czsKIAlmb3IgKGkgPSAwOyBpIDwgcGVy ci0+cGVycl9uZGVzdHM7IGkrKykgewpAQCAtNTYzLDEzICs2NTcsMTQgQEAgaHdtcF9hZGRfbWVz aHBlcnIodWludDhfdCAqZnJtLCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hwZXJyX2llICpw ZXJyKQogc3RhdGljIHVpbnQ4X3QgKgogaHdtcF9hZGRfbWVzaHJhbm4odWludDhfdCAqZnJtLCBj b25zdCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hyYW5uX2llICpyYW5uKQogewotCSpmcm0rKyA9IElF RUU4MDIxMV9FTEVNSURfTUVTSFJBTk47Ci0JKmZybSsrID0gc2l6ZW9mKHN0cnVjdCBpZWVlODAy MTFfbWVzaHJhbm5faWUpIC0gMjsKKwkqZnJtKysgPSByYW5uLT5yYW5uX2llOworCSpmcm0rKyA9 IHJhbm4tPnJhbm5fbGVuOwogCSpmcm0rKyA9IHJhbm4tPnJhbm5fZmxhZ3M7CiAJKmZybSsrID0g cmFubi0+cmFubl9ob3Bjb3VudDsKIAkqZnJtKysgPSByYW5uLT5yYW5uX3R0bDsKIAlJRUVFODAy MTFfQUREUl9DT1BZKGZybSwgcmFubi0+cmFubl9hZGRyKTsgZnJtICs9IDY7CiAJQUREV09SRChm cm0sIHJhbm4tPnJhbm5fc2VxKTsKKwlBRERXT1JEKGZybSwgcmFubi0+cmFubl9pbnRlcnZhbCk7 CiAJQUREV09SRChmcm0sIHJhbm4tPnJhbm5fbWV0cmljKTsKIAlyZXR1cm4gZnJtOwogfQpAQCAt NjI4LDcgKzcyMyw3IEBAIGh3bXBfcm9vdG1vZGVfY2Iodm9pZCAqYXJnKQogCXByZXEucHJlcV90 Y291bnQgPSAxOwogCUlFRUU4MDIxMV9BRERSX0NPUFkoUFJFUV9UQUREUigwKSwgYnJvYWRjYXN0 YWRkcik7CiAJUFJFUV9URkxBR1MoMCkgPSBJRUVFODAyMTFfTUVTSFBSRVFfVEZMQUdTX1RPIHwK LQkgICAgSUVFRTgwMjExX01FU0hQUkVRX1RGTEFHU19SRjsKKwkgICAgSUVFRTgwMjExX01FU0hQ UkVRX1RGTEFHU19VU047CiAJUFJFUV9UU0VRKDApID0gMDsKIAl2YXAtPml2X3N0YXRzLmlzX2h3 bXBfcm9vdHJlcXMrKzsKIAlod21wX3NlbmRfcHJlcSh2YXAtPml2X2JzcywgdmFwLT5pdl9teWFk ZHIsIGJyb2FkY2FzdGFkZHIsICZwcmVxKTsKQEAgLTY3NSw5ICs3NzAsMTAgQEAgaHdtcF9yZWN2 X3ByZXEoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5p LAogICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfZnJhbWUgKndoLCBjb25zdCBzdHJ1Y3QgaWVl ZTgwMjExX21lc2hwcmVxX2llICpwcmVxKQogewogCXN0cnVjdCBpZWVlODAyMTFfbWVzaF9zdGF0 ZSAqbXMgPSB2YXAtPml2X21lc2g7Ci0Jc3RydWN0IGllZWU4MDIxMV9tZXNoX3JvdXRlICpydCA9 IE5VTEw7Ci0Jc3RydWN0IGllZWU4MDIxMV9tZXNoX3JvdXRlICpydG9yaWcgPSBOVUxMOwotCXN0 cnVjdCBpZWVlODAyMTFfaHdtcF9yb3V0ZSAqaHJvcmlnOworCXN0cnVjdCBpZWVlODAyMTFfbWVz aF9yb3V0ZSAqcnQgPSBOVUxMOyAvLyBUYXJnZXQgcm91dGUKKwlzdHJ1Y3QgaWVlZTgwMjExX21l c2hfcm91dGUgKnJ0b3JpZyA9IE5VTEw7IC8vIE9yaWdpbmF0b3Igcm91dGUKKwlzdHJ1Y3QgaWVl ZTgwMjExX2h3bXBfcm91dGUgKmhyb3JpZyA9IE5VTEw7CisJc3RydWN0IGllZWU4MDIxMV9od21w X3JvdXRlICpociA9IE5VTEw7CiAJc3RydWN0IGllZWU4MDIxMV9od21wX3N0YXRlICpocyA9IHZh cC0+aXZfaHdtcDsKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llIHByZXA7CiAKQEAgLTY5 MiwxNjkgKzc4OCwxNzMgQEAgaHdtcF9yZWN2X3ByZXEoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFw LCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCQlyZXR1cm47CiAKIAlJRUVFODAyMTFfTk9U RSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JICAgICJyZWNlaXZlZCBQUkVRLCBzb3Vy Y2UgJXMiLCBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpKTsKKwkgICAgInJlY2Vp dmVkIFBSRVEsIG9yaWdpbmF0b3IgJXMsIHRhcmdldCAlcyIsCisJICAgIGV0aGVyX3NwcmludGYo cHJlcS0+cHJlcV9vcmlnYWRkciksIGV0aGVyX3NwcmludGYoUFJFUV9UQUREUigwKSkpOwogCiAJ LyoKLQkgKiBBY2NlcHRhbmNlIGNyaXRlcmlhOiBpZiB0aGUgUFJFUSBpcyBub3QgZm9yIHVzIGFu ZAotCSAqIGZvcndhcmRpbmcgaXMgZGlzYWJsZWQsIGRpc2NhcmQgdGhpcyBQUkVRLgorCSAqIEFj Y2VwdGFuY2UgY3JpdGVyaWE6IGlmIHRoZSBQUkVRIGlzIG5vdCBmb3IgdXMgb3Igbm90IGJyb2Fk Y2FzdAorCSAqIEFORCBmb3J3YXJkaW5nIGlzIGRpc2FibGVkLCBkaXNjYXJkIHRoaXMgUFJFUS4K IAkgKi8KLQlpZiAoIUlFRUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RBRERS KDApKSAmJgorCWlmICgoIUlFRUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RB RERSKDApKSB8fCAvKiBYWFg6IHRlc3QgZm9yIHByb3h5IGFkZHJlc3MqLworCSAgICAhSUVFRTgw MjExX0lTX01VTFRJQ0FTVChQUkVRX1RBRERSKDApKSkgJiYKIAkgICAgIShtcy0+bXNfZmxhZ3Mg JiBJRUVFODAyMTFfTUVTSEZMQUdTX0ZXRCkpIHsKIAkJSUVFRTgwMjExX0RJU0NBUkRfTUFDKHZh cCwgSUVFRTgwMjExX01TR19IV01QLAotCQkgICAgcHJlcS0+cHJlcV9vcmlnYWRkciwgTlVMTCwg IiVzIiwgIm5vdCBhY2NlcHRpbmcgUFJFUSIpOworCQkgICAgbmktPm5pX21hY2FkZHIsIE5VTEws ICJub3QgYWNjZXB0aW5nIFBSRVEsIG9yaWdpbmF0b3IgJXMiLAorCQkgICAgZXRoZXJfc3ByaW50 ZihwcmVxLT5wcmVxX29yaWdhZGRyKSk7CisJCXJldHVybjsKKwl9CisJLyoKKwkgKiBBY2NlcHRh bmNlIGNyaXRlcmlhOiBpZiB1bmljYXN0IGFkZHJlc3NlZCAKKwkgKiBBTkQgbm8gdmFsaWQgZm9y d2FyZGluZyBmb3IgVGFyZ2V0IG9mIFBSRVEsIGRpc2NhcmQgdGhpcyBQUkVRLgorCSAqLworCXJ0 ID0gaWVlZTgwMjExX21lc2hfcnRfZmluZCh2YXAsIFBSRVFfVEFERFIoMCkpOworCWlmKHJ0ICE9 IE5VTEwpCisJCWhyID0gSUVFRTgwMjExX01FU0hfUk9VVEVfUFJJVihydCwgc3RydWN0IGllZWU4 MDIxMV9od21wX3JvdXRlKTsKKwlpZigocHJlcS0+cHJlcV9mbGFncyAmIElFRUU4MDIxMV9NRVNI UFJFUV9GTEFHU19BTSkgPT0gMCAmJiAvKiBhZGRyZXNzIG1vZGU6IHVjYXN0ICovCisJICAgIHJ0 ID09IE5VTEwgJiYKKwkgICAgIUlFRUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVR X1RBRERSKDApKSkgeworCQlJRUVFODAyMTFfRElTQ0FSRF9NQUModmFwLCBJRUVFODAyMTFfTVNH X0hXTVAsIG5pLT5uaV9tYWNhZGRyLAorCQkgICAgTlVMTCwgInVuaWNhc3QgYWRkcmVzc2VkIFBS RVEsIG9yaWdpbmF0b3IgJXMsIHVua25vd24gdGFyZ2V0ICVzIiwKKwkJICAgICAgZXRoZXJfc3By aW50ZihwcmVxLT5wcmVxX29yaWdhZGRyKSwKKwkJICAgICAgZXRoZXJfc3ByaW50ZihQUkVRX1RB RERSKDApKSk7CiAJCXJldHVybjsKIAl9CisKKwkvKiBQUkVRIEFDQ0VQVEVEICovCisKIAlydG9y aWcgPSBpZWVlODAyMTFfbWVzaF9ydF9maW5kKHZhcCwgcHJlcS0+cHJlcV9vcmlnYWRkcik7Ci0J aWYgKHJ0b3JpZyA9PSBOVUxMKQorCWlmIChydG9yaWcgPT0gTlVMTCl7CiAJCXJ0b3JpZyA9IGll ZWU4MDIxMV9tZXNoX3J0X2FkZCh2YXAsIHByZXEtPnByZXFfb3JpZ2FkZHIpOworCQlJRUVFODAy MTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCisJCQkiYWRkaW5nIG9yaWdpbmF0 b3IgJXMiLAorCQkJZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdhZGRyKSk7CisJfQogCWlm IChydG9yaWcgPT0gTlVMTCkgewogCQkvKiBYWFggc3RhdCAqLwogCQlyZXR1cm47CiAJfQogCWhy b3JpZyA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BSSVYocnRvcmlnLCBzdHJ1Y3QgaWVlZTgwMjEx X2h3bXBfcm91dGUpOwotCS8qCi0JICogU2VxdWVuY2UgbnVtYmVyIHZhbGlkYXRpb24uCi0JICov Ci0JaWYgKEhXTVBfU0VRX0xFUShwcmVxLT5wcmVxX2lkLCBocm9yaWctPmhyX3ByZXFpZCkgJiYK LQkgICAgSFdNUF9TRVFfTEVRKHByZXEtPnByZXFfb3JpZ3NlcSwgaHJvcmlnLT5ocl9zZXEpKSB7 Ci0JCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBuaSwKLQkJICAgICJk aXNjYXJkIFBSRVEgZnJvbSAlcywgb2xkIHNlcSBubyAldSA8PSAldSIsCi0JCSAgICBldGhlcl9z cHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpLAotCQkgICAgcHJlcS0+cHJlcV9vcmlnc2VxLCBo cm9yaWctPmhyX3NlcSk7Ci0JCXJldHVybjsKLQl9Ci0JaHJvcmlnLT5ocl9wcmVxaWQgPSBwcmVx LT5wcmVxX2lkOwotCWhyb3JpZy0+aHJfc2VxID0gcHJlcS0+cHJlcV9vcmlnc2VxOwogCi0JLyoK LQkgKiBDaGVjayBpZiB0aGUgUFJFUSBpcyBhZGRyZXNzZWQgdG8gdXMuCi0JICovCi0JaWYgKElF RUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RBRERSKDApKSkgewotCQlJRUVF ODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAgICAicmVwbHkgdG8g JXMiLCBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpKTsKKwlpZihIV01QX1NFUV9H VChwcmVxLT5wcmVxX29yaWdzZXEsIGhyb3JpZy0+aHJfc2VxKSB8fAorCSAgICAoSFdNUF9TRVFf RVEocHJlcS0+cHJlcV9vcmlnc2VxLCBocm9yaWctPmhyX3NlcSkgJiYKKwkgICAgcHJlcS0+cHJl cV9tZXRyaWMgPCBydG9yaWctPnJ0X21ldHJpYykpewogCQkvKgotCQkgKiBCdWlsZCBhbmQgc2Vu ZCBhIFBSRVAgZnJhbWUuCisJCSAqIERhdGEgY3JlYXRpb24gYW5kIHVwZGF0ZSBvZiBmb3J3YXJk aW5nIGluZm9ybWF0aW9uCisJCSAqIGFjY29yZGluZyB0byBUYWJsZSAxMUMtOCBmb3Igb3JpZ2lu YXRvciBtZXNoIFNUQS4KIAkJICovCi0JCXByZXAucHJlcF9mbGFncyA9IDA7Ci0JCXByZXAucHJl cF9ob3Bjb3VudCA9IDA7Ci0JCXByZXAucHJlcF90dGwgPSBtcy0+bXNfdHRsOwotCQlJRUVFODAy MTFfQUREUl9DT1BZKHByZXAucHJlcF90YXJnZXRhZGRyLCB2YXAtPml2X215YWRkcik7Ci0JCXBy ZXAucHJlcF90YXJnZXRzZXEgPSArK2hzLT5oc19zZXE7Ci0JCXByZXAucHJlcF9saWZldGltZSA9 IHByZXEtPnByZXFfbGlmZXRpbWU7Ci0JCXByZXAucHJlcF9tZXRyaWMgPSBJRUVFODAyMTFfTUVT SExNRVRSSUNfSU5JVElBTFZBTDsKLQkJSUVFRTgwMjExX0FERFJfQ09QWShwcmVwLnByZXBfb3Jp Z2FkZHIsIHByZXEtPnByZXFfb3JpZ2FkZHIpOwotCQlwcmVwLnByZXBfb3JpZ3NlcSA9IHByZXEt PnByZXFfb3JpZ3NlcTsKLQkJaHdtcF9zZW5kX3ByZXAobmksIHZhcC0+aXZfbXlhZGRyLCB3aC0+ aV9hZGRyMiwgJnByZXApOworCQlocm9yaWctPmhyX3NlcSA9IHByZXEtPnByZXFfb3JpZ3NlcTsK KwkJSUVFRTgwMjExX0FERFJfQ09QWShydG9yaWctPnJ0X25leHRob3AsIHdoLT5pX2FkZHIyKTsK KwkJcnRvcmlnLT5ydF9tZXRyaWMgPSBwcmVxLT5wcmVxX21ldHJpYyArCisJCSAgICBtcy0+bXNf cG1ldHJpYy0+bXBtX21ldHJpYyhuaSk7CisJCXJ0b3JpZy0+cnRfbmhvcHMgID0gcHJlcS0+cHJl cV9ob3Bjb3VudCArIDE7CisJCXJ0b3JpZy0+cnRfbGlmZXRpbWUgID0gTUVTSF9ST1VURV9MSUZF VElNRV9NQVgoCisJCSAgICBwcmVxLT5wcmVxX2xpZmV0aW1lLCBydG9yaWctPnJ0X2xpZmV0aW1l KTsKKwkJLyogcGF0aCB0byBvcmlnIGlzIHZhbGlkIG5vdyAqLworCQlydG9yaWctPnJ0X2ZsYWdz IHw9IElFRUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQ7CisJCQogCQkvKgotCQkgKiBCdWlsZCB0 aGUgcmV2ZXJzZSBwYXRoLCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHkuCisJCSAqIERhdGEg Y3JlYXRpb24gYW5kIHVwZGF0ZSBvZiBmb3J3YXJkaW5nIGluZm9ybWF0aW9uCisJCSAqIGZvciB0 cmFuc21pdHRlciBtZXNoIFNUQSBbT1BUSU9OQUw6IGlmIG1ldHJpYyBpbXByb3ZlZF0uCiAJCSAq LwotCQlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQodmFwLCBwcmVxLT5wcmVxX29yaWdhZGRy KTsKLQkJaWYgKHJ0ID09IE5VTEwpCi0JCQlod21wX2Rpc2NvdmVyKHZhcCwgcHJlcS0+cHJlcV9v cmlnYWRkciwgTlVMTCk7Ci0JCWVsc2UgaWYgKChydC0+cnRfZmxhZ3MgJiBJRUVFODAyMTFfTUVT SFJUX0ZMQUdTX1ZBTElEKSA9PSAwKQotCQkJaHdtcF9kaXNjb3Zlcih2YXAsIHJ0LT5ydF9kZXN0 LCBOVUxMKTsKKwl9ZWxzZSBpZihociAhPSBOVUxMICYmCisJICAgIEhXTVBfU0VRX0VRKGhyLT5o cl9zZXEsIFBSRVFfVFNFUSgwKSkgJiYKKwkgICAgSFdNUF9TRVFfR1QoaHJvcmlnLT5ocl9wcmVx aWQsIHByZXEtPnByZXFfaWQpICYmCisJICAgIChydG9yaWctPnJ0X2ZsYWdzICYgSUVFRTgwMjEx X01FU0hSVF9GTEFHU19WQUxJRCkgPT0gMCl7CisJCS8qCisJCSAqIFRhcmdldCBpcyBrbm93biwg VGFyZ2V0IEhXTVAgc2VxIGlzIGVxdWFsIGFuZAorCQkgKiBvcmlnaW5hdG9yL1ByZXEgSUQgdW5r b3duLgorCQkgKiBYWFg6IHRoaXMgaXMgdHJpY2t5LCBoaWdoIHByb2JhYmlsaXR5IHRoYXQKKwkJ ICogaXQgaXMgbm90IGludGVwcmV0ZWQgY29ycmVjdGx5LgorCQkgKi8KKwkJSUVFRTgwMjExX05P VEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkgICAgInJlY2VpdmVkIFBSRVEsIG9y aWdpbmF0b3IgJXMiLCAidW5rbm93biIpOworCX1lbHNleworCQlJRUVFODAyMTFfRElTQ0FSRF9N QUModmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLT5uaV9tYWNhZGRyLAorCQkgICAgTlVMTCwg IlBSRVEsIG9yaWdpbmF0b3IgJXMsIGxhc3Qgc2VlbiBvcmlnLnNlcSAlZCwiCisJCSAgICAicHJl cSBvcmlnLnNlcSAlZCIsCisJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIp LCBocm9yaWctPmhyX3NlcSwKKwkJICAgIHByZXEtPnByZXFfb3JpZ3NlcSk7CiAJCXJldHVybjsK IAl9CisKKwlocm9yaWctPmhyX3ByZXFpZCA9IHByZXEtPnByZXFfaWQ7IC8qIFJlY29yZCBsYXN0 IHNlZW4gUHJlcSBJRCAqLworCiAJLyoKLQkgKiBQcm9hY3RpdmUgUFJFUTogcmVwbHkgd2l0aCBh IHByb2FjdGl2ZSBQUkVQIHRvIHRoZQotCSAqIHJvb3QgU1RBIGlmIHJlcXVlc3RlZC4KKwkgKiBQ cm9jZXNzaW5nIG9mIFBSRVFzIHdpdGggdGFyZ2V0IGNvdW50ID0gMS4KIAkgKi8KLQlpZiAoSUVF RTgwMjExX0FERFJfRVEoUFJFUV9UQUREUigwKSwgYnJvYWRjYXN0YWRkcikgJiYKLQkgICAgKFBS RVFfVEZMQUdTKDApICYKLQkgICAgKChJRUVFODAyMTFfTUVTSFBSRVFfVEZMQUdTX1RPfElFRUU4 MDIxMV9NRVNIUFJFUV9URkxBR1NfUkYpID09Ci0JICAgIChJRUVFODAyMTFfTUVTSFBSRVFfVEZM QUdTX1RPfElFRUU4MDIxMV9NRVNIUFJFUV9URkxBR1NfUkYpKSkpIHsKLQkJdWludDhfdCByb290 bWFjW0lFRUU4MDIxMV9BRERSX0xFTl07Ci0KLQkJSUVFRTgwMjExX0FERFJfQ09QWShyb290bWFj LCBwcmVxLT5wcmVxX29yaWdhZGRyKTsKLQkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9maW5kKHZh cCwgcm9vdG1hYyk7Ci0JCWlmIChydCA9PSBOVUxMKSB7Ci0JCQlydCA9IGllZWU4MDIxMV9tZXNo X3J0X2FkZCh2YXAsIHJvb3RtYWMpOwotCQkJaWYgKHJ0ID09IE5VTEwpIHsKLQkJCQlJRUVFODAy MTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkJICAgICJ1bmFibGUgdG8g YWRkIHJvb3QgbWVzaCBwYXRoIHRvICVzIiwKLQkJCQkgICAgZXRoZXJfc3ByaW50Zihyb290bWFj KSk7Ci0JCQkJdmFwLT5pdl9zdGF0cy5pc19tZXNoX3J0YWRkZmFpbGVkKys7Ci0JCQkJcmV0dXJu OwotCQkJfQotCQl9Ci0JCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBu aSwKLQkJICAgICJyb290IG1lc2ggc3RhdGlvbiBAICVzIiwgZXRoZXJfc3ByaW50Zihyb290bWFj KSk7Ci0KKwlpZiAocHJlcS0+cHJlcV90Y291bnQgPT0gMSkgeworCQlzdHJ1Y3QgaWVlZTgwMjEx X21lc2hwcmVxX2llIHBwcmVxOyAvKiBwcm9wYWdhdGVkIFBSRVEgKi8KKwkJY29uc3QgdWludDhf dCAqcHJlcV90cmFuc21pdF9hZGRyID0gYnJvYWRjYXN0YWRkcjsgCisJCQogCQkvKgotCQkgKiBS ZXBseSB3aXRoIGEgUFJFUCBpZiB3ZSBkb24ndCBoYXZlIGEgcGF0aCB0byB0aGUgcm9vdAotCQkg KiBvciBpZiB0aGUgcm9vdCBzZW50IHVzIGEgcHJvYWN0aXZlIFBSRVEuCisJCSAqIENoZWNrIGlm IHRoZSBQUkVRIGlzIGFkZHJlc3NlZCB0byB1cy4KKwkJICogVE9ETzogYWxzbyBjaGVjayBpZiB3 ZSBhcmUgdGhlIHByb3h5IG9mIHRoZSB0YXJnZXQgTUFDLgogCQkgKi8KLQkJaWYgKChydC0+cnRf ZmxhZ3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZMQUdTX1ZBTElEKSA9PSAwIHx8Ci0JCSAgICAocHJl cS0+cHJlcV9mbGFncyAmIElFRUU4MDIxMV9NRVNIUFJFUV9GTEFHU19QUCkpIHsKKwkJaWYgKElF RUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RBRERSKDApKSkgeworCQkJSUVF RTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkJICAgICJyZXBseSBQ UkVQLCBvcmlnaW5hdG9yICVzIiwKKwkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3Jp Z2FkZHIpKTsKKwkJCS8qCisJCQkqIEJ1aWxkIGFuZCBzZW5kIGEgUFJFUCBmcmFtZS4KKwkJCSov CiAJCQlwcmVwLnByZXBfZmxhZ3MgPSAwOwogCQkJcHJlcC5wcmVwX2hvcGNvdW50ID0gMDsKIAkJ CXByZXAucHJlcF90dGwgPSBtcy0+bXNfdHRsOwotCQkJSUVFRTgwMjExX0FERFJfQ09QWShwcmVw LnByZXBfb3JpZ2FkZHIsIHJvb3RtYWMpOwotCQkJcHJlcC5wcmVwX29yaWdzZXEgPSBwcmVxLT5w cmVxX29yaWdzZXE7Ci0JCQlwcmVwLnByZXBfbGlmZXRpbWUgPSBwcmVxLT5wcmVxX2xpZmV0aW1l OwotCQkJcHJlcC5wcmVwX21ldHJpYyA9IElFRUU4MDIxMV9NRVNITE1FVFJJQ19JTklUSUFMVkFM OwogCQkJSUVFRTgwMjExX0FERFJfQ09QWShwcmVwLnByZXBfdGFyZ2V0YWRkciwKIAkJCSAgICB2 YXAtPml2X215YWRkcik7CiAJCQlwcmVwLnByZXBfdGFyZ2V0c2VxID0gKytocy0+aHNfc2VxOwot CQkJaHdtcF9zZW5kX3ByZXAodmFwLT5pdl9ic3MsIHZhcC0+aXZfbXlhZGRyLAotCQkJICAgIGJy b2FkY2FzdGFkZHIsICZwcmVwKTsKKwkJCXByZXAucHJlcF9saWZldGltZSA9IHByZXEtPnByZXFf bGlmZXRpbWU7CisJCQlwcmVwLnByZXBfbWV0cmljID0gSUVFRTgwMjExX01FU0hMTUVUUklDX0lO SVRJQUxWQUw7CisJCQlJRUVFODAyMTFfQUREUl9DT1BZKHByZXAucHJlcF9vcmlnYWRkciwKKwkJ CSAgICBwcmVxLT5wcmVxX29yaWdhZGRyKTsKKwkJCXByZXAucHJlcF9vcmlnc2VxID0gcHJlcS0+ cHJlcV9vcmlnc2VxOworCQkJaHdtcF9zZW5kX3ByZXAobmksIHZhcC0+aXZfbXlhZGRyLCB3aC0+ aV9hZGRyMiwgJnByZXApOworCQkJcmV0dXJuOworCQkvKgorCQkgKiBQUkVRIGlzIG5vdCBmb3Ig dXMsIGJ1dCBoYXMgQUUgZmxhZyBzZXQuIFVwZGF0ZSBwcm94eQorCQkgKiBmb3J3YXJkaW5nIGlu Zm9ybWF0aW9uIGZvciBvcmlnaW5hdG9yIGV4dGVybmFsIGFkZHJlc3MuCisJCSAqLworCQl9IGVs c2UgaWYgKChwcmVxLT5wcmVxX2ZsYWdzICYgSUVFRTgwMjExX01FU0hQUkVRX0ZMQUdTX0FFKSkg eworCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkJICAg ICIlcyIsICJQcm94eSBVcGRhdGUgKFBYVSkiKTsKKwkJCS8qCisJCQkgKiBOQjogZmFsbCB0aHJv dWdoIHRvIHRlc3QgZm9yIHZhbGlkIHJvdXRlIAorCQkJICogYW5kIHByby1hY3RpdmUgUFJFUS4K KwkJCSAqLwogCQl9Ci0JCWh3bXBfZGlzY292ZXIodmFwLCByb290bWFjLCBOVUxMKTsKLQkJcmV0 dXJuOwotCX0KLQlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQodmFwLCBQUkVRX1RBRERSKDAp KTsKIAotCS8qCi0JICogRm9yd2FyZGluZyBhbmQgSW50ZXJtZWRpYXRlIHJlcGx5IGZvciBQUkVR cyB3aXRoIDEgdGFyZ2V0LgotCSAqLwotCWlmIChwcmVxLT5wcmVxX3Rjb3VudCA9PSAxKSB7Ci0J CXN0cnVjdCBpZWVlODAyMTFfbWVzaHByZXFfaWUgcHByZXE7IC8qIHByb3BhZ2F0ZWQgUFJFUSAq LworCQltZW1jcHkoJnBwcmVxLCBwcmVxLCBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocHJl cV9pZSkpOwogCi0JCW1lbWNweSgmcHByZXEsIHByZXEsIHNpemVvZihwcHJlcSkpOwogCQkvKgog CQkgKiBXZSBoYXZlIGEgdmFsaWQgcm91dGUgdG8gdGhpcyBub2RlLgogCQkgKi8KIAkJaWYgKHJ0 ICE9IE5VTEwgJiYKIAkJICAgIChydC0+cnRfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZMQUdT X1ZBTElEKSkgewotCQkJaWYgKHByZXEtPnByZXFfdHRsID4gMSAmJgotCQkJICAgIHByZXEtPnBy ZXFfaG9wY291bnQgPCBocy0+aHNfbWF4aG9wcykgeworCQkJLyoKKwkJCSAqIENoZWNrIGlmIHdl IGNhbiBzZW5kIGFuIGludGVybWVkaWF0ZSBQYXRoIFJlcGx5LAorCQkJICogaS5lLiwgVGFyZ2V0 IE9ubHkgYml0IGlzIG5vdC4KKwkJCSAqLworCQkJaWYgKCEoUFJFUV9URkxBR1MoMCkgJiBJRUVF ODAyMTFfTUVTSFBSRVFfVEZMQUdTX1RPKSAmJgorCQkJCUhXTVBfU0VRX0dFUShoci0+aHJfc2Vx LCBQUkVRX1RTRVEoMCkpKSB7CisJCQkJc3RydWN0IGllZWU4MDIxMV9tZXNocHJlcF9pZSBwcmVw OworCiAJCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkJ CSAgICAiZm9yd2FyZCBQUkVRIGZyb20gJXMiLAotCQkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEt PnByZXFfb3JpZ2FkZHIpKTsKKwkJCQkgICAgImludGVybWVkaWF0ZSBQUkVQLCBvcmlnaW5hdG9y ICVzLCB0YXJnZXQgJXMiLAorCQkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2Fk ZHIpLAorCQkJCSAgICBldGhlcl9zcHJpbnRmKFBSRVFfVEFERFIoMCkpKTsKIAkJCQkvKgotCQkJ CSAqIFByb3BhZ2F0ZSB0aGUgb3JpZ2luYWwgUFJFUS4KLQkJCQkgKi8KLQkJCQlwcHJlcS5wcmVx X2hvcGNvdW50ICs9IDE7Ci0JCQkJcHByZXEucHJlcV90dGwgLT0gMTsKLQkJCQlwcHJlcS5wcmVx X21ldHJpYyArPQotCQkJCSAgICBtcy0+bXNfcG1ldHJpYy0+bXBtX21ldHJpYyhuaSk7Ci0JCQkJ LyoKLQkJCQkgKiBTZXQgVE8gYW5kIHVuc2V0IFJGIGJpdHMgYmVjYXVzZSB3ZSBhcmUgZ29pbmcK KwkJCQkgKiBTZXQgVE8gYml0IGJlY2F1c2Ugd2UgYXJlIGdvaW5nCiAJCQkJICogdG8gc2VuZCBh IFBSRVAgbmV4dC4KIAkJCQkgKi8KIAkJCQlwcHJlcS5wcmVxX3RhcmdldHNbMF0udGFyZ2V0X2Zs YWdzIHw9CiAJCQkJICAgIElFRUU4MDIxMV9NRVNIUFJFUV9URkxBR1NfVE87Ci0JCQkJcHByZXEu cHJlcV90YXJnZXRzWzBdLnRhcmdldF9mbGFncyAmPQotCQkJCSAgICB+SUVFRTgwMjExX01FU0hQ UkVRX1RGTEFHU19SRjsKLQkJCQlod21wX3NlbmRfcHJlcShuaSwgdmFwLT5pdl9teWFkZHIsCi0J CQkJICAgIGJyb2FkY2FzdGFkZHIsICZwcHJlcSk7Ci0JCQl9Ci0JCQkvKgotCQkJICogQ2hlY2sg aWYgd2UgY2FuIHNlbmQgYW4gaW50ZXJtZWRpYXRlIFBhdGggUmVwbHksCi0JCQkgKiBpLmUuLCBU YXJnZXQgT25seSBiaXQgaXMgbm90IHNldC4KLQkJCSAqLwotCSAgICAJCWlmICghKFBSRVFfVEZM QUdTKDApICYgSUVFRTgwMjExX01FU0hQUkVRX1RGTEFHU19UTykpIHsKLQkJCQlzdHJ1Y3QgaWVl ZTgwMjExX21lc2hwcmVwX2llIHByZXA7CiAKLQkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4 MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkJICAgICJpbnRlcm1lZGlhdGUgcmVwbHkgZm9yIFBSRVEg ZnJvbSAlcyIsCi0JCQkJICAgIGV0aGVyX3NwcmludGYocHJlcS0+cHJlcV9vcmlnYWRkcikpOwog CQkJCXByZXAucHJlcF9mbGFncyA9IDA7Ci0JCQkJcHJlcC5wcmVwX2hvcGNvdW50ID0gcnQtPnJ0 X25ob3BzICsgMTsKKwkJCQlwcmVwLnByZXBfaG9wY291bnQgPSBydC0+cnRfbmhvcHM7CiAJCQkJ cHJlcC5wcmVwX3R0bCA9IG1zLT5tc190dGw7CiAJCQkJSUVFRTgwMjExX0FERFJfQ09QWSgmcHJl cC5wcmVwX3RhcmdldGFkZHIsCiAJCQkJICAgIFBSRVFfVEFERFIoMCkpOwotCQkJCXByZXAucHJl cF90YXJnZXRzZXEgPSBocm9yaWctPmhyX3NlcTsKKwkJCQlwcmVwLnByZXBfdGFyZ2V0c2VxID0g aHItPmhyX3NlcTsKIAkJCQlwcmVwLnByZXBfbGlmZXRpbWUgPSBwcmVxLT5wcmVxX2xpZmV0aW1l OwogCQkJCXByZXAucHJlcF9tZXRyaWMgPSBydC0+cnRfbWV0cmljICsKIAkJCQkgICAgbXMtPm1z X3BtZXRyaWMtPm1wbV9tZXRyaWMobmkpOwpAQCAtODYyLDQyICs5NjIsNzUgQEAgaHdtcF9yZWN2 X3ByZXEoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5p LAogCQkJCSAgICBwcmVxLT5wcmVxX29yaWdhZGRyKTsKIAkJCQlwcmVwLnByZXBfb3JpZ3NlcSA9 IGhyb3JpZy0+aHJfc2VxOwogCQkJCWh3bXBfc2VuZF9wcmVwKG5pLCB2YXAtPml2X215YWRkciwK LQkJCQkgICAgYnJvYWRjYXN0YWRkciwgJnByZXApOworCQkJCSAgICB3aC0+aV9hZGRyMiwgJnBy ZXApOworCQkJfQorCQkJCisJCQkvKgorCQkJICogVGhpcyBpcyBhIHVuaWNhc3QgUFJFUSwgdXNl ZCBlLmcuIHdoZW4gcmVxdWVzdGluZworCQkJICogYSBwYXRoIHRvIGEgcm9vdCBtZXNoIHdpdGgg UkFOTiBtb2RlLgorCQkJICovCisJCQlpZighKHByZXEtPnByZXFfZmxhZ3MgJiBJRUVFODAyMTFf TUVTSFBSRVFfRkxBR1NfQU0pKXsKKwkJCQlwcmVxX3RyYW5zbWl0X2FkZHIgPSBydC0+cnRfbmV4 dGhvcDsKIAkJCX0KIAkJLyoKLQkJICogV2UgaGF2ZSBubyBpbmZvcm1hdGlvbiBhYm91dCB0aGlz IHBhdGgsCi0JCSAqIHByb3BhZ2F0ZSB0aGUgUFJFUS4KKwkJICogUHJvYWN0aXZlIFBSRVE6IHJl cGx5IHdpdGggYSBwcm9hY3RpdmUgUFJFUCB0byB0aGUKKwkJICogcm9vdCBTVEEgaWYgcmVxdWVz dGVkLgorCQkgKiBOQjogcHJlcS0+cHJlcV9vcmlnYWRkciBpcyB0aGUgcm9vdG1hYy4KIAkJICov Ci0JCX0gZWxzZSBpZiAocHJlcS0+cHJlcV90dGwgPiAxICYmCi0JCSAgICBwcmVxLT5wcmVxX2hv cGNvdW50IDwgaHMtPmhzX21heGhvcHMpIHsKLQkJCWlmIChydCA9PSBOVUxMKSB7Ci0JCQkJcnQg PSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBQUkVRX1RBRERSKDApKTsKLQkJCQlpZiAocnQg PT0gTlVMTCkgewotCQkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwK LQkJCQkJICAgIG5pLCAidW5hYmxlIHRvIGFkZCBQUkVRIHBhdGggdG8gJXMiLAotCQkJCQkgICAg ZXRoZXJfc3ByaW50ZihQUkVRX1RBRERSKDApKSk7Ci0JCQkJCXZhcC0+aXZfc3RhdHMuaXNfbWVz aF9ydGFkZGZhaWxlZCsrOwotCQkJCQlyZXR1cm47Ci0JCQkJfQorCQl9IGVsc2UgaWYgKElFRUU4 MDIxMV9BRERSX0VRKFBSRVFfVEFERFIoMCksIGJyb2FkY2FzdGFkZHIpICYmCisJCSAgICAoUFJF UV9URkxBR1MoMCkgJiBJRUVFODAyMTFfTUVTSFBSRVFfVEZMQUdTX1RPKSkgeworCQkJSUVFRTgw MjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkJICAgICJyb290IG1lc2gg c3RhdGlvbiBAICVzIiwKKwkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIp KTsKKworCQkJLyoKKwkJCSAqIFJlcGx5IHdpdGggYSBQUkVQIGlmIHdlIGRvbid0IGhhdmUgYSBw YXRoIHRvIHRoZSByb290CisJCQkgKiBvciBpZiB0aGUgcm9vdCBzZW50IHVzIGEgcHJvYWN0aXZl IFBSRVEuCisJCQkgKiBYWFg6IEZvciBub3cgd2UgYXNzdW1lIHdlIGFsd2F5cyBuZWVkIHRvIHNl bmQgZGF0YSB0bworCQkJICogcm9vdCBldmVuIGlmIGl0IHdhcyBub3QgcmVxdWVzdGVkIGJ5IHJv b3QuCisJCQkgKi8KKwkJCWlmICgocnRvcmlnLT5ydF9mbGFncyAmIElFRUU4MDIxMV9NRVNIUlRf RkxBR1NfVkFMSUQpID09IDAgfHwKKwkJCSAgICBwcmVxLT5wcmVxX2ZsYWdzICYgSUVFRTgwMjEx X01FU0hQUkVRX0ZMQUdTX1BQKSB7CisJCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFf TVNHX0hXTVAsIG5pLAorCQkJCSAgICAicmVwbHkgcHJvYWN0aXZlIFBSRVAsIHJvb3QgJXMsIHRv ICVzIiwKKwkJCQkgICAgZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdhZGRyKSwKKwkJCQkg ICAgZXRoZXJfc3ByaW50ZihydG9yaWctPnJ0X25leHRob3ApKTsKKwkJCQlwcmVwLnByZXBfZmxh Z3MgPSAwOworCQkJCXByZXAucHJlcF9ob3Bjb3VudCA9IDA7CisJCQkJcHJlcC5wcmVwX3R0bCA9 IG1zLT5tc190dGw7CisJCQkJSUVFRTgwMjExX0FERFJfQ09QWShwcmVwLnByZXBfb3JpZ2FkZHIs CisJCQkJICAgIHByZXEtPnByZXFfb3JpZ2FkZHIpOworCQkJCXByZXAucHJlcF9vcmlnc2VxID0g cHJlcS0+cHJlcV9vcmlnc2VxOworCQkJCXByZXAucHJlcF9saWZldGltZSA9IHByZXEtPnByZXFf bGlmZXRpbWU7CisJCQkJcHJlcC5wcmVwX21ldHJpYyA9CisJCQkJICAgIElFRUU4MDIxMV9NRVNI TE1FVFJJQ19JTklUSUFMVkFMOworCQkJCUlFRUU4MDIxMV9BRERSX0NPUFkocHJlcC5wcmVwX3Rh cmdldGFkZHIsCisJCQkJICAgIHZhcC0+aXZfbXlhZGRyKTsKKwkJCQlwcmVwLnByZXBfdGFyZ2V0 c2VxID0gKytocy0+aHNfc2VxOworCQkJCWh3bXBfc2VuZF9wcmVwKHZhcC0+aXZfYnNzLCB2YXAt Pml2X215YWRkciwKKwkJCQkgICAgcnRvcmlnLT5ydF9uZXh0aG9wLCAmcHJlcCk7CiAJCQl9Ci0J CQlydC0+cnRfbWV0cmljID0gcHJlcS0+cHJlcV9tZXRyaWM7Ci0JCQlydC0+cnRfbGlmZXRpbWUg PSBwcmVxLT5wcmVxX2xpZmV0aW1lOwotCQkJaHJvcmlnID0gSUVFRTgwMjExX01FU0hfUk9VVEVf UFJJVihydCwKLQkJCSAgICBzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUpOwotCQkJaHJvcmln LT5ocl9zZXEgPSBwcmVxLT5wcmVxX29yaWdzZXE7Ci0JCQlocm9yaWctPmhyX3ByZXFpZCA9IHBy ZXEtPnByZXFfaWQ7CisJCX0KIAorCQkvKiBQcm9wYWdhdGUgYSBQUkVRLiAqLworCQlpZiAocHJl cS0+cHJlcV90dGwgPiAxICYmCisJCSAgICBwcmVxLT5wcmVxX2hvcGNvdW50IDwgaHMtPmhzX21h eGhvcHMpIHsKIAkJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBuaSwK LQkJCSAgICAiZm9yd2FyZCBQUkVRIGZyb20gJXMiLAotCQkJICAgIGV0aGVyX3NwcmludGYocHJl cS0+cHJlcV9vcmlnYWRkcikpOworCQkJICAgICJwcm9wYWdhdGUgUFJFUSwgb3JpZ2luYXRvciAl cywgdGFyZ2V0ICVzLCBuZXh0aG9wICVzIiwKKwkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnBy ZXFfb3JpZ2FkZHIpLAorCQkJICAgIGV0aGVyX3NwcmludGYoUFJFUV9UQUREUigwKSksCisJCQkg ICAgZXRoZXJfc3ByaW50ZihwcmVxX3RyYW5zbWl0X2FkZHIpKTsKKwkJCXBwcmVxLnByZXFfZmxh Z3MgfD0gSUVFRTgwMjExX01FU0hQUkVRX0ZMQUdTX0FNOwogCQkJcHByZXEucHJlcV9ob3Bjb3Vu dCArPSAxOwogCQkJcHByZXEucHJlcV90dGwgLT0gMTsKIAkJCXBwcmVxLnByZXFfbWV0cmljICs9 IG1zLT5tc19wbWV0cmljLT5tcG1fbWV0cmljKG5pKTsKLQkJCWh3bXBfc2VuZF9wcmVxKG5pLCB2 YXAtPml2X215YWRkciwgYnJvYWRjYXN0YWRkciwKKwkJCWh3bXBfc2VuZF9wcmVxKG5pLCB2YXAt Pml2X215YWRkciwgcHJlcV90cmFuc21pdF9hZGRyLAogCQkJICAgICZwcHJlcSk7CiAJCX0KKwl9 ZWxzZXsKKwkJSUVFRTgwMjExX0RJU0NBUkRfTUFDKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBu aS0+bmlfbWFjYWRkciwgCisJCSAgICBOVUxMLCAiUFJFUSwgd2l0aCB0YXJnZXQgY291bnQgPSAl ZCIsIHByZXEtPnByZXFfdGNvdW50KTsKIAl9Ci0KIH0KICN1bmRlZglQUkVRX1RGTEFHUwogI3Vu ZGVmCVBSRVFfVEFERFIKQEAgLTkxNCwyMiArMTA0NywyOCBAQCBod21wX3NlbmRfcHJlcShzdHJ1 Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCS8qCiAJICogRW5mb3JjZSBQUkVRIGludGVydmFsLgog CSAqLwotCWlmIChyYXRlY2hlY2soJmhzLT5oc19sYXN0cHJlcSwgJmllZWU4MDIxMV9od21wX3By ZXFtaW5pbnQpID09IDApCisJaWYgKHJhdGVjaGVjaygmaHMtPmhzX2xhc3RwcmVxLCAmaWVlZTgw MjExX2h3bXBfcHJlcW1pbmludCkgPT0gMCl7CisJCUlFRUU4MDIxMV9ESVNDQVJEX01BQyhuaS0+ bmlfdmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIAorCQkgICAgbmktPm5pX21hY2FkZHIsIE5VTEws ICJQUkVRIHJhdGUgbGltaXQsIHNhICVzLCBkYSAlcyIsCisJCSAgICBldGhlcl9zcHJpbnRmKHNh KSwKKwkJICAgIGV0aGVyX3NwcmludGYoZGEpKTsKIAkJcmV0dXJuIEVBTFJFQURZOworCX0KIAln ZXRtaWNyb3VwdGltZSgmaHMtPmhzX2xhc3RwcmVxKTsKIAogCS8qCiAJICogbWVzaCBwcmVxIGFj dGlvbiBmcmFtZSBmb3JtYXQKIAkgKiAgICAgWzZdIGRhCi0JICogICAgIFs2XSBzYSAKKwkgKiAg ICAgWzZdIHNhCiAJICogICAgIFs2XSBhZGRyMyA9IHNhCiAJICogICAgIFsxXSBhY3Rpb24KIAkg KiAgICAgWzFdIGNhdGVnb3J5CiAJICogICAgIFt0bHZdIG1lc2ggcGF0aCByZXF1ZXN0CiAJICov CiAJcHJlcS0+cHJlcV9pZSA9IElFRUU4MDIxMV9FTEVNSURfTUVTSFBSRVE7Ci0JcmV0dXJuIGh3 bXBfc2VuZF9hY3Rpb24obmksIHNhLCBkYSwgKHVpbnQ4X3QgKilwcmVxLAotCSAgICBzaXplb2Yo c3RydWN0IGllZWU4MDIxMV9tZXNocHJlcV9pZSkpOworCXByZXEtPnByZXFfbGVuID0gSUVFRTgw MjExX01FU0hQUkVRX0JBU0VfU1ogKworCSAgICBwcmVxLT5wcmVxX3Rjb3VudCAqIElFRUU4MDIx MV9NRVNIUFJFUV9UUkdUX1NaOworCXJldHVybiBod21wX3NlbmRfYWN0aW9uKG5pLCBzYSwgZGEs ICh1aW50OF90ICopcHJlcSwgcHJlcS0+cHJlcV9sZW4rMik7CiB9CiAKIHN0YXRpYyB2b2lkCkBA IC05MzksODEgKzEwNzgsMTE1IEBAIGh3bXBfcmVjdl9wcmVwKHN0cnVjdCBpZWVlODAyMTF2YXAg KnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hf c3RhdGUgKm1zID0gdmFwLT5pdl9tZXNoOwogCXN0cnVjdCBpZWVlODAyMTFfaHdtcF9zdGF0ZSAq aHMgPSB2YXAtPml2X2h3bXA7CiAJc3RydWN0IGllZWU4MDIxMV9tZXNoX3JvdXRlICpydCA9IE5V TEw7CisJc3RydWN0IGllZWU4MDIxMV9tZXNoX3JvdXRlICpydG9yaWcgPSBOVUxMOwogCXN0cnVj dCBpZWVlODAyMTFfaHdtcF9yb3V0ZSAqaHI7CiAJc3RydWN0IGllZWU4MDIxMWNvbSAqaWMgPSB2 YXAtPml2X2ljOwogCXN0cnVjdCBpZm5ldCAqaWZwID0gdmFwLT5pdl9pZnA7CiAJc3RydWN0IG1i dWYgKm0sICpuZXh0OworCXVpbnQzMl90IG1ldHJpYyA9IDA7CiAKIAkvKgotCSAqIEFjY2VwdGFu Y2UgY3JpdGVyaWE6IGlmIHRoZSBjb3JyZXNwb25kaW5nIFBSRVEgd2FzIG5vdCBnZW5lcmF0ZWQK KwkgKiBBY2NlcHRhbmNlIGNyaXRlcmlhOiBpZiB0aGUgY29ycmVzcG9uZGluZyBQUkVQIHdhcyBu b3QgZ2VuZXJhdGVkCiAJICogYnkgdXMgYW5kIGZvcndhcmRpbmcgaXMgZGlzYWJsZWQsIGRpc2Nh cmQgdGhpcyBQUkVQLgogCSAqLwogCWlmIChuaSA9PSB2YXAtPml2X2JzcyB8fAogCSAgICBuaS0+ bmlfbWxzdGF0ZSAhPSBJRUVFODAyMTFfTk9ERV9NRVNIX0VTVEFCTElTSEVEKQogCQlyZXR1cm47 Ci0JaWYgKCFJRUVFODAyMTFfQUREUl9FUSh2YXAtPml2X215YWRkciwgcHJlcC0+cHJlcF9vcmln YWRkcikgJiYKLQkgICAgIShtcy0+bXNfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSEZMQUdTX0ZXRCkp CisJLyogWFhYOiB0ZXN0IGZvciBwcm94eSBhZGRyZXNzICovCisJaWYgKCFJRUVFODAyMTFfQURE Ul9FUSh2YXAtPml2X215YWRkciwgcHJlcC0+cHJlcF9vcmlnYWRkcikgJiYgCisJICAgICEobXMt Pm1zX2ZsYWdzICYgSUVFRTgwMjExX01FU0hGTEFHU19GV0QpKXsKKwkJSUVFRTgwMjExX0RJU0NB UkRfTUFDKHZhcCwgSUVFRTgwMjExX01TR19IV01QLAorCQkgICAgbmktPm5pX21hY2FkZHIsIE5V TEwsCisJCSAgICAibm90IGFjY2VwdGluZyBQUkVQLCBvcmlnaW5hdG9yICVzLCBmb3J3YXJkaW5n IGRpc2FibGVkIiwKKwkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF9vcmlnYWRkcikpOwog CQlyZXR1cm47CisJfQorCisJLyogUFJFUCBBQ0NFUFRFRCAqLwogCiAJSUVFRTgwMjExX05PVEUo dmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCSAgICAicmVjZWl2ZWQgUFJFUCBmcm9tICVz IiwgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpKTsKKwkgICAgInJlY2VpdmVk IFBSRVAsIG9yaWdpbmF0b3IgJXMsIHRhcmdldCAlcyIsCisJICAgIGV0aGVyX3NwcmludGYocHJl cC0+cHJlcF9vcmlnYWRkciksCisJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF90YXJnZXRh ZGRyKSk7CiAKIAlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQodmFwLCBwcmVwLT5wcmVwX3Rh cmdldGFkZHIpOwogCWlmIChydCA9PSBOVUxMKSB7Ci0JCS8qCi0JCSAqIElmIHdlIGhhdmUgbm8g ZW50cnkgdGhpcyBjb3VsZCBiZSBhIHJlcGx5IHRvIGEgcm9vdCBQUkVRLgotCQkgKi8KLQkJaWYg KGhzLT5oc19yb290bW9kZSAhPSBJRUVFODAyMTFfSFdNUF9ST09UTU9ERV9ESVNBQkxFRCkgewot CQkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBwcmVwLT5wcmVwX3RhcmdldGFkZHIp OwotCQkJaWYgKHJ0ID09IE5VTEwpIHsKLQkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIx MV9NU0dfSFdNUCwKLQkJCQkgICAgbmksICJ1bmFibGUgdG8gYWRkIFBSRVAgcGF0aCB0byAlcyIs Ci0JCQkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF90YXJnZXRhZGRyKSk7Ci0JCQkJdmFw LT5pdl9zdGF0cy5pc19tZXNoX3J0YWRkZmFpbGVkKys7Ci0JCQkJcmV0dXJuOwotCQkJfQotCQkJ SUVFRTgwMjExX0FERFJfQ09QWShydC0+cnRfbmV4dGhvcCwgd2gtPmlfYWRkcjIpOwotCQkJcnQt PnJ0X25ob3BzID0gcHJlcC0+cHJlcF9ob3Bjb3VudDsKLQkJCXJ0LT5ydF9saWZldGltZSA9IHBy ZXAtPnByZXBfbGlmZXRpbWU7Ci0JCQlydC0+cnRfbWV0cmljID0gcHJlcC0+cHJlcF9tZXRyaWM7 Ci0JCQlydC0+cnRfZmxhZ3MgfD0gSUVFRTgwMjExX01FU0hSVF9GTEFHU19WQUxJRDsKLQkJCUlF RUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBuaSwKLQkJCSAgICAiYWRkIHJv b3QgcGF0aCB0byAlcyBuaG9wcyAlZCBtZXRyaWMgJWQgKFBSRVApIiwKLQkJCSAgICBldGhlcl9z cHJpbnRmKHByZXAtPnByZXBfdGFyZ2V0YWRkciksCi0JCQkgICAgcnQtPnJ0X25ob3BzLCBydC0+ cnRfbWV0cmljKTsKKwkJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBwcmVwLT5wcmVw X3RhcmdldGFkZHIpOworCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwg bmksCisJCQkiYWRkaW5nIHRhcmdldCAlcyIsCisJCQlldGhlcl9zcHJpbnRmKHByZXAtPnByZXBf dGFyZ2V0YWRkcikpOworCQlpZiAocnQgPT0gTlVMTCkgeworCQkJSUVFRTgwMjExX05PVEUodmFw LCBJRUVFODAyMTFfTVNHX0hXTVAsCisJCQkJbmksICJ1bmFibGUgdG8gYWRkIFBSRVAgcGF0aCB0 byAlcyIsCisJCQkJZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpKTsKKwkJCXZh cC0+aXZfc3RhdHMuaXNfbWVzaF9ydGFkZGZhaWxlZCsrOwogCQkJcmV0dXJuOwotCQl9IAotCQly ZXR1cm47CisJCX0KIAl9CisKIAkvKgotCSAqIFNlcXVlbmNlIG51bWJlciB2YWxpZGF0aW9uLgor CSAqIERhdGEgY3JlYXRpb24gYW5kIHVwZGF0ZSBvZiBmb3J3YXJkaW5nIGluZm9ybWF0aW9uCisJ ICogYWNjb3JkaW5nIHRvIFRhYmxlIDExQy04IGZvciBvcmlnaW5hdG9yIG1lc2ggU1RBLgogCSAq LwogCWhyID0gSUVFRTgwMjExX01FU0hfUk9VVEVfUFJJVihydCwgc3RydWN0IGllZWU4MDIxMV9o d21wX3JvdXRlKTsKLQlpZiAoSFdNUF9TRVFfTEVRKHByZXAtPnByZXBfdGFyZ2V0c2VxLCBoci0+ aHJfc2VxKSkgewotCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmks Ci0JCSAgICAiZGlzY2FyZCBQUkVQIGZyb20gJXMsIG9sZCBzZXEgbm8gJXUgPD0gJXUiLAotCQkg ICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLAotCQkgICAgcHJlcC0+cHJl cF90YXJnZXRzZXEsIGhyLT5ocl9zZXEpOworCWlmKEhXTVBfU0VRX0dUKHByZXAtPnByZXBfdGFy Z2V0c2VxLCBoci0+aHJfc2VxKSB8fAorCQkoSFdNUF9TRVFfRVEocHJlcC0+cHJlcF90YXJnZXRz ZXEsIGhyLT5ocl9zZXEpICYmCisJCSAgICBwcmVwLT5wcmVwX21ldHJpYyA8IHJ0LT5ydF9tZXRy aWMpKXsKKwkJbWV0cmljID0gcHJlcC0+cHJlcF9tZXRyaWMgKyBtcy0+bXNfcG1ldHJpYy0+bXBt X21ldHJpYyhuaSk7CisJCWlmKChydC0+cnRfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZMQUdT X1ZBTElEKSA9PSAwKXsKKwkJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01Q LCBuaSwKKwkJCSAgICAiY3JlYXRlIHBhdGggdG8gJXMsIGhvcGNvdW50ICVkIG1ldHJpYyAlZCIs CisJCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLAorCQkJICAgIHBy ZXAtPnByZXBfaG9wY291bnQgKyAxLAorCQkJICAgIG1ldHJpYyk7CisJCX1lbHNleworCQkJSUVF RTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkJICAgICJwcmVmZXIg cGF0aCB0byAlcywgaG9wY291bnQgJWQ6WyVkXSIKKwkJCSAgICAibWV0cmljICVkOlslZF0iLAor CQkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF90YXJnZXRhZGRyKSwKKwkJCSAgICBwcmVw LT5wcmVwX2hvcGNvdW50ICsgMSwgcnQtPnJ0X25ob3BzLAorCQkJICAgIG1ldHJpYywgcnQtPnJ0 X21ldHJpYyk7CisJCX0KKwkJaHItPmhyX3NlcSA9IHByZXAtPnByZXBfdGFyZ2V0c2VxOworCQlJ RUVFODAyMTFfQUREUl9DT1BZKHJ0LT5ydF9uZXh0aG9wLCB3aC0+aV9hZGRyMik7CisJCXJ0LT5y dF9tZXRyaWMgPSBtZXRyaWM7CisJCXJ0LT5ydF9uaG9wcyAgPSBwcmVwLT5wcmVwX2hvcGNvdW50 ICsgMTsKKwkJcnQtPnJ0X2xpZmV0aW1lICA9IE1FU0hfUk9VVEVfTElGRVRJTUVfTUFYKHByZXAt PnByZXBfbGlmZXRpbWUsCisJCSAgICBydC0+cnRfbGlmZXRpbWUpOworCQkvKiBwYXRoIHRhcmdl dCBpcyB2YWxpZCBub3cgKi8KKwkJcnQtPnJ0X2ZsYWdzIHw9IElFRUU4MDIxMV9NRVNIUlRfRkxB R1NfVkFMSUQ7CisJfWVsc2V7CisJCUlFRUU4MDIxMV9ESVNDQVJEX01BQyh2YXAsIElFRUU4MDIx MV9NU0dfSFdNUCwgbmktPm5pX21hY2FkZHIsCisJCQlOVUxMLCAiUFJFUCwgb3JpZ2luYXRvciAl cywgbGFzdCBzZWVuIG9yaWcuc2VxICVkLCIKKwkJCSJwcmVwIG9yaWcuc2VxICVkIiwgZXRoZXJf c3ByaW50ZihwcmVwLT5wcmVwX29yaWdhZGRyKSwKKwkJCWhyLT5ocl9zZXEsIHByZXAtPnByZXBf b3JpZ3NlcSk7CiAJCXJldHVybjsKIAl9Ci0JaHItPmhyX3NlcSA9IHByZXAtPnByZXBfdGFyZ2V0 c2VxOworCiAJLyoKIAkgKiBJZiBpdCdzIE5PVCBmb3IgdXMsIHByb3BhZ2F0ZSB0aGUgUFJFUC4K IAkgKi8KIAlpZiAoIUlFRUU4MDIxMV9BRERSX0VRKHZhcC0+aXZfbXlhZGRyLCBwcmVwLT5wcmVw X29yaWdhZGRyKSAmJgogCSAgICBwcmVwLT5wcmVwX3R0bCA+IDEgJiYgcHJlcC0+cHJlcF9ob3Bj b3VudCA8IGhzLT5oc19tYXhob3BzKSB7CiAJCXN0cnVjdCBpZWVlODAyMTFfbWVzaHByZXBfaWUg cHByZXA7IC8qIHByb3BhZ2F0ZWQgUFJFUCAqLwotCisJCXJ0b3JpZyA9IGllZWU4MDIxMV9tZXNo X3J0X2ZpbmQodmFwLCBwcmVwLT5wcmVwX29yaWdhZGRyKTsKKwkJaWYocnRvcmlnID09IE5VTEwp eworCQkJSUVFRTgwMjExX0RJU0NBUkRfTUFDKHZhcCwgSUVFRTgwMjExX01TR19IV01QLAorCQkJ ICAgIG5pLT5uaV9tYWNhZGRyLCBOVUxMLCAiUFJFUCwgb3JpZ2luYXRvciAlcyB1bmtub3duIiwK KwkJCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBfb3JpZ2FkZHIpKTsKKwkJCXJldHVybjsK KwkJfQogCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAg ICAicHJvcGFnYXRlIFBSRVAgZnJvbSAlcyIsCi0JCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnBy ZXBfdGFyZ2V0YWRkcikpOworCQkgICAgInByb3BhZ2F0ZSBQUkVQLCBvcmlnaW5hdG9yICVzLCB0 YXJnZXQgJXMsIHRvICVzIiwKKwkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+cHJlcF9vcmlnYWRk ciksCisJCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBfdGFyZ2V0YWRkciksCisJCSAgICBl dGhlcl9zcHJpbnRmKHJ0b3JpZy0+cnRfbmV4dGhvcCkpOwogCi0JCW1lbWNweSgmcHByZXAsIHBy ZXAsIHNpemVvZihwcHJlcCkpOworCQltZW1jcHkoJnBwcmVwLCBwcmVwLCBzaXplb2Yoc3RydWN0 IGllZWU4MDIxMV9tZXNocHJlcF9pZSkpOwogCQlwcHJlcC5wcmVwX2hvcGNvdW50ICs9IDE7CiAJ CXBwcmVwLnByZXBfdHRsIC09IDE7CiAJCXBwcmVwLnByZXBfbWV0cmljICs9IG1zLT5tc19wbWV0 cmljLT5tcG1fbWV0cmljKG5pKTsKLQkJSUVFRTgwMjExX0FERFJfQ09QWShwcHJlcC5wcmVwX3Rh cmdldGFkZHIsIHZhcC0+aXZfbXlhZGRyKTsKLQkJaHdtcF9zZW5kX3ByZXAobmksIHZhcC0+aXZf bXlhZGRyLCBicm9hZGNhc3RhZGRyLCAmcHByZXApOworCQlod21wX3NlbmRfcHJlcChuaSwgdmFw LT5pdl9teWFkZHIsIHJ0b3JpZy0+cnRfbmV4dGhvcCwgJnBwcmVwKTsKIAl9CiAJaHIgPSBJRUVF ODAyMTFfTUVTSF9ST1VURV9QUklWKHJ0LCBzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUpOwog CWlmIChydC0+cnRfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZMQUdTX1BST1hZKSB7CkBAIC0x MDIyLDQxICsxMTk1LDcgQEAgaHdtcF9yZWN2X3ByZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFw LCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCQkgICAgImRpc2NhcmQgUFJFUCBmb3IgJXMs IHJvdXRlIGlzIG1hcmtlZCBQUk9YWSIsCiAJCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBf dGFyZ2V0YWRkcikpOwogCQl2YXAtPml2X3N0YXRzLmlzX2h3bXBfcHJveHkrKzsKLQl9IGVsc2Ug aWYgKHByZXAtPnByZXBfb3JpZ3NlcSA9PSBoci0+aHJfb3JpZ3NlcSkgewotCQkvKgotCQkgKiBD aGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBwYXRoIHRvIHRoaXMgbm9kZS4KLQkJICogSWYgd2Ug ZG8sIGNoZWNrIGlmIHRoaXMgcGF0aCByZXBseSBjb250YWlucyBhCi0JCSAqIGJldHRlciByb3V0 ZS4KLQkJICovCi0JCWlmICgocnQtPnJ0X2ZsYWdzICYgSUVFRTgwMjExX01FU0hSVF9GTEFHU19W QUxJRCkgPT0gMCB8fAotCQkgICAgKHByZXAtPnByZXBfaG9wY291bnQgPCBydC0+cnRfbmhvcHMg fHwKLQkJICAgICBwcmVwLT5wcmVwX21ldHJpYyA8IHJ0LT5ydF9tZXRyaWMpKSB7Ci0JCQlJRUVF ODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkgICAgIiVzIHBhdGgg dG8gJXMsIGhvcGNvdW50ICVkOiVkIG1ldHJpYyAlZDolZCIsCi0JCQkgICAgcnQtPnJ0X2ZsYWdz ICYgSUVFRTgwMjExX01FU0hSVF9GTEFHU19WQUxJRCA/Ci0JCQkJInByZWZlciIgOiAidXBkYXRl IiwKLQkJCSAgICBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBfb3JpZ2FkZHIpLAotCQkJICAgIHJ0 LT5ydF9uaG9wcywgcHJlcC0+cHJlcF9ob3Bjb3VudCwKLQkJCSAgICBydC0+cnRfbWV0cmljLCBw cmVwLT5wcmVwX21ldHJpYyk7Ci0JCQlJRUVFODAyMTFfQUREUl9DT1BZKHJ0LT5ydF9uZXh0aG9w LCB3aC0+aV9hZGRyMik7Ci0JCQlydC0+cnRfbmhvcHMgPSBwcmVwLT5wcmVwX2hvcGNvdW50Owot CQkJcnQtPnJ0X2xpZmV0aW1lID0gcHJlcC0+cHJlcF9saWZldGltZTsKLQkJCXJ0LT5ydF9tZXRy aWMgPSBwcmVwLT5wcmVwX21ldHJpYzsKLQkJCXJ0LT5ydF9mbGFncyB8PSBJRUVFODAyMTFfTUVT SFJUX0ZMQUdTX1ZBTElEOwotCQl9IGVsc2UgewotCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVF ODAyMTFfTVNHX0hXTVAsIG5pLAotCQkJICAgICJpZ25vcmUgUFJFUCBmb3IgJXMsIGhvcGNvdW50 ICVkOiVkIG1ldHJpYyAlZDolZCIsCi0JCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3Rh cmdldGFkZHIpLAotCQkJICAgIHJ0LT5ydF9uaG9wcywgcHJlcC0+cHJlcF9ob3Bjb3VudCwKLQkJ CSAgICBydC0+cnRfbWV0cmljLCBwcmVwLT5wcmVwX21ldHJpYyk7Ci0JCX0KLQl9IGVsc2Ugewot CQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAgICAiZGlz Y2FyZCBQUkVQIGZvciAlcywgd3Jvbmcgc2Vxbm8gJXUgIT0gJXUiLAotCQkgICAgZXRoZXJfc3By aW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLCBwcmVwLT5wcmVwX29yaWdzZXEsCi0JCSAgICBo ci0+aHJfc2VxKTsKLQkJdmFwLT5pdl9zdGF0cy5pc19od21wX3dyb25nc2VxKys7Ci0JfSAKKwl9 CiAJLyoKIAkgKiBDaGVjayBmb3IgZnJhbWVzIHF1ZXVlZCBhd2FpdGluZyBwYXRoIGRpc2NvdmVy eS4KIAkgKiBYWFggcHJvYmFibHkgY2FuIHRlbGwgZXhhY3RseSBhbmQgYXZvaWQgcmVtb3ZlIGNh bGwKQEAgLTEwNjQsOSArMTIwMyw5IEBAIGh3bXBfcmVjdl9wcmVwKHN0cnVjdCBpZWVlODAyMTF2 YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkgKiAgICAgc3R1Y2sgYmFjayBv biB0aGUgc3RhZ2VxIGJlY2F1c2UgdGhlcmUgd29uJ3QgYmUKIAkgKiAgICAgYSBwYXRoLgogCSAq LwotCW0gPSBpZWVlODAyMTFfYWdlcV9yZW1vdmUoJmljLT5pY19zdGFnZXEsIAorCW0gPSBpZWVl ODAyMTFfYWdlcV9yZW1vdmUoJmljLT5pY19zdGFnZXEsCiAJICAgIChzdHJ1Y3QgaWVlZTgwMjEx X25vZGUgKikodWludHB0cl90KQotCQlpZWVlODAyMTFfbWFjX2hhc2goaWMsIHJ0LT5ydF9kZXN0 KSk7CisJICAgIGllZWU4MDIxMV9tYWNfaGFzaChpYywgcnQtPnJ0X2Rlc3QpKTsKIAlmb3IgKDsg bSAhPSBOVUxMOyBtID0gbmV4dCkgewogCQluZXh0ID0gbS0+bV9uZXh0cGt0OwogCQltLT5tX25l eHRwa3QgPSBOVUxMOwpAQCAtMTA5NCwyMiArMTIzMywyOCBAQCBod21wX3NlbmRfcHJlcChzdHJ1 Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCSAqICAgICBbdGx2XSBtZXNoIHBhdGggcmVwbHkKIAkg Ki8KIAlwcmVwLT5wcmVwX2llID0gSUVFRTgwMjExX0VMRU1JRF9NRVNIUFJFUDsKLQlyZXR1cm4g aHdtcF9zZW5kX2FjdGlvbihuaSwgc2EsIGRhLCAodWludDhfdCAqKXByZXAsCi0JICAgIHNpemVv ZihzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llKSk7CisJcHJlcC0+cHJlcF9sZW4gPSBJRUVF ODAyMTFfTUVTSFBSRVBfQkFTRV9TWjsKKwlyZXR1cm4gaHdtcF9zZW5kX2FjdGlvbihuaSwgc2Es IGRhLCAodWludDhfdCAqKXByZXAsIHByZXAtPnByZXBfbGVuICsgMik7CiB9CiAKLSNkZWZpbmUJ UEVSUl9ERkxBR1MobikJcGVyci5wZXJyX2Rlc3RzW25dLmRlc3RfZmxhZ3MKLSNkZWZpbmUJUEVS Ul9EQUREUihuKQlwZXJyLnBlcnJfZGVzdHNbbl0uZGVzdF9hZGRyCi0jZGVmaW5lCVBFUlJfRFNF UShuKQlwZXJyLnBlcnJfZGVzdHNbbl0uZGVzdF9zZXEKLSNkZWZpbmUJUEVSUl9EUkNPREUobikJ cGVyci5wZXJyX2Rlc3RzW25dLmRlc3RfcmNvZGUKKyNkZWZpbmUJUEVSUl9ERkxBR1MobikJcGVy ci0+cGVycl9kZXN0c1tuXS5kZXN0X2ZsYWdzCisjZGVmaW5lCVBFUlJfREFERFIobikJcGVyci0+ cGVycl9kZXN0c1tuXS5kZXN0X2FkZHIKKyNkZWZpbmUJUEVSUl9EU0VRKG4pCXBlcnItPnBlcnJf ZGVzdHNbbl0uZGVzdF9zZXEKKyNkZWZpbmUJUEVSUl9EUkNPREUobikJcGVyci0+cGVycl9kZXN0 c1tuXS5kZXN0X3Jjb2RlCiBzdGF0aWMgdm9pZAogaHdtcF9wZWVyZG93bihzdHJ1Y3QgaWVlZTgw MjExX25vZGUgKm5pKQogewogCXN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCA9IG5pLT5uaV92YXA7 CiAJc3RydWN0IGllZWU4MDIxMV9tZXNoX3N0YXRlICptcyA9IHZhcC0+aXZfbWVzaDsKLQlzdHJ1 Y3QgaWVlZTgwMjExX21lc2hwZXJyX2llIHBlcnI7Ci0Jc3RydWN0IGllZWU4MDIxMV9tZXNoX3Jv dXRlICpydDsKKwlzdHJ1Y3QgaWVlZTgwMjExX21lc2hwZXJyX2llICpwZXJyOworCXN0cnVjdCBp ZWVlODAyMTFfbWVzaF9yb3V0ZSAqcnQsICpuZXh0OwogCXN0cnVjdCBpZWVlODAyMTFfaHdtcF9y b3V0ZSAqaHI7CisJaW50IGkgPSAwOworCQorCXBlcnIgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBp ZWVlODAyMTFfbWVzaHBlcnJfaWUpICsgCisJCQlJRUVFODAyMTFfSFdNUF9QRVJSX01BWERFU1Qq c2l6ZW9mKCpwZXJyLT5wZXJyX2Rlc3RzKSwKKwkJCU1fODAyMTFfSFdNUF9QRVJSLCBNX05PV0FJ VCB8IE1fWkVSTyk7CisJS0FTU0VSVChwZXJyICE9IE5VTEwsICgiZXJyb3IgYWxsb2NhdGlvbmcg UEVSUiIpKTsKIAogCXJ0ID0gaWVlZTgwMjExX21lc2hfcnRfZmluZCh2YXAsIG5pLT5uaV9tYWNh ZGRyKTsKIAlpZiAocnQgPT0gTlVMTCkKQEAgLTExMTcsMTggKzEyNjIsMzUgQEAgaHdtcF9wZWVy ZG93bihzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pKQogCWhyID0gSUVFRTgwMjExX01FU0hfUk9V VEVfUFJJVihydCwgc3RydWN0IGllZWU4MDIxMV9od21wX3JvdXRlKTsKIAlJRUVFODAyMTFfTk9U RSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCiAJICAgICIlcyIsICJkZWxldGUgcm91dGUg ZW50cnkiKTsKLQlwZXJyLnBlcnJfdHRsID0gbXMtPm1zX3R0bDsKLQlwZXJyLnBlcnJfbmRlc3Rz ID0gMTsKLQlQRVJSX0RGTEFHUygwKSA9IDA7Ci0JaWYgKGhyLT5ocl9zZXEgPT0gMCkKLQkJUEVS Ul9ERkxBR1MoMCkgfD0gSUVFRTgwMjExX01FU0hQRVJSX0RGTEFHU19VU047Ci0JUEVSUl9ERkxB R1MoMCkgfD0gSUVFRTgwMjExX01FU0hQRVJSX0RGTEFHU19SQzsKLQlJRUVFODAyMTFfQUREUl9D T1BZKFBFUlJfREFERFIoMCksIHJ0LT5ydF9kZXN0KTsKLQlQRVJSX0RTRVEoMCkgPSBoci0+aHJf c2VxOwotCVBFUlJfRFJDT0RFKDApID0gSUVFRTgwMjExX1JFQVNPTl9NRVNIX1BFUlJfREVTVF9V TlJFQUNIOworCXBlcnItPnBlcnJfdHRsID0gbXMtPm1zX3R0bDsKKwkKKwkvKiBmaW5kIGFsbCBk ZXN0aW5hdGlvbnMgdGhhdCBoYXZlIG5pLT5uaV9tYWNhZGRyIGFzIG5leHRob3AgYW5kIGFkZCB0 byBQRVJSKi8KKwlNRVNIX1JUX0xPQ0sobXMpOworCVRBSUxRX0ZPUkVBQ0hfU0FGRShydCwgJm1z LT5tc19yb3V0ZXMsIHJ0X25leHQsIG5leHQpIHsKKwkJaWYgKChydC0+cnRfZmxhZ3MgJiBJRUVF ODAyMTFfTUVTSFJUX0ZMQUdTX1ZBTElEKSAmJgorCQkgICAgSUVFRTgwMjExX0FERFJfRVEocnQt PnJ0X25leHRob3AsIG5pLT5uaV9tYWNhZGRyKSl7CisJCQlociA9IElFRUU4MDIxMV9NRVNIX1JP VVRFX1BSSVYocnQsIHN0cnVjdCBpZWVlODAyMTFfaHdtcF9yb3V0ZSk7CisJCQlLQVNTRVJUKGkg PCBJRUVFODAyMTFfSFdNUF9QRVJSX01BWERFU1QsICgiUEVSUiBtYXggZGVzdGluYXRpb24gb3Zl cmZsb3ciKSk7CisJCQlQRVJSX0RGTEFHUyhpKSA9IDA7CisJCQlpZiAoaHItPmhyX3NlcSA9PSAw KQorCQkJCVBFUlJfREZMQUdTKGkpIHw9IElFRUU4MDIxMV9NRVNIUEVSUl9ERkxBR1NfVVNOOwor CQkJSUVFRTgwMjExX0FERFJfQ09QWShQRVJSX0RBRERSKGkpLCBydC0+cnRfZGVzdCk7CisJCQlQ RVJSX0RTRVEoaSkgPSArK2hyLT5ocl9zZXE7CisJCQlQRVJSX0RSQ09ERShpKSA9IElFRUU4MDIx MV9SRUFTT05fTUVTSF9QRVJSX0RFU1RfVU5SRUFDSDsKKwkJCUlFRUU4MDIxMV9OT1RFKHZhcCwg SUVFRTgwMjExX01TR19IV01QLCBuaSwKKwkJCSAgICAiUEVSUjogZm91bmQgdW5yZWNoYWJsZSBk ZXN0aW5hdGlvbiAlcyIsCisJCQkgICAgZXRoZXJfc3ByaW50ZihQRVJSX0RBRERSKGkpKSk7CisJ CQkrK2k7CisJCX0KKwl9CisJTUVTSF9SVF9VTkxPQ0sobXMpOworCQorCXBlcnItPnBlcnJfbmRl c3RzID0gaTsKKwkKIAkvKiBOQjogZmx1c2ggZXZlcnl0aGluZyBwYXNzaW5nIHRocm91Z2ggcGVl ciAqLwogCWllZWU4MDIxMV9tZXNoX3J0X2ZsdXNoX3BlZXIodmFwLCBuaS0+bmlfbWFjYWRkcik7 Ci0JaHdtcF9zZW5kX3BlcnIodmFwLT5pdl9ic3MsIHZhcC0+aXZfbXlhZGRyLCBicm9hZGNhc3Rh ZGRyLCAmcGVycik7CisJaHdtcF9zZW5kX3BlcnIodmFwLT5pdl9ic3MsIHZhcC0+aXZfbXlhZGRy LCBicm9hZGNhc3RhZGRyLCBwZXJyKTsKKwlmcmVlKHBlcnIsIE1fODAyMTFfSFdNUF9QRVJSKTsK IH0KICN1bmRlZglQRVJSX0RGTEFHUwogI3VuZGVmCVBFUlJfREFERFIKQEAgLTExNDYsNDQgKzEz MDgsMTAxIEBAIGh3bXBfcmVjdl9wZXJyKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwgc3RydWN0 IGllZWU4MDIxMV9ub2RlICpuaSwKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hfc3RhdGUgKm1zID0g dmFwLT5pdl9tZXNoOwogCXN0cnVjdCBpZWVlODAyMTFfbWVzaF9yb3V0ZSAqcnQgPSBOVUxMOwog CXN0cnVjdCBpZWVlODAyMTFfaHdtcF9yb3V0ZSAqaHI7Ci0gCXN0cnVjdCBpZWVlODAyMTFfbWVz aHBlcnJfaWUgcHBlcnI7Ci0JaW50IGksIGZvcndhcmQgPSAwOworCXN0cnVjdCBpZWVlODAyMTFf bWVzaHBlcnJfaWUgKnBwZXJyOworCWludCBpLCBrLCBmb3J3YXJkID0gMDsKKwlpbnQgbnVtX3Vu cmNoYmxfZGVzdCA9IDA7IC8qIFVucmVhY2hhYmxlIGRlc3RpbmF0aW9uIHJlbGV2YW50IHRvIHVz LiAqLworCWludCB1bnJjaGJsX2Rlc3RbSUVFRTgwMjExX0hXTVBfUEVSUl9NQVhERVNUXTsKIAog CS8qCiAJICogQWNjZXB0YW5jZSBjcml0ZXJpYTogY2hlY2sgaWYgd2UgcmVjZWl2ZWQgYSBQRVJS IGZyb20gYQotCSAqIG5laWdoYm9yIGFuZCBmb3J3YXJkaW5nIGlzIGVuYWJsZWQuCisJICogbmVp Z2hib3IuCiAJICovCiAJaWYgKG5pID09IHZhcC0+aXZfYnNzIHx8Ci0JICAgIG5pLT5uaV9tbHN0 YXRlICE9IElFRUU4MDIxMV9OT0RFX01FU0hfRVNUQUJMSVNIRUQgfHwKLQkgICAgIShtcy0+bXNf ZmxhZ3MgJiBJRUVFODAyMTFfTUVTSEZMQUdTX0ZXRCkpCisJICAgIG5pLT5uaV9tbHN0YXRlICE9 IElFRUU4MDIxMV9OT0RFX01FU0hfRVNUQUJMSVNIRUQpCiAJCXJldHVybjsKKwkJCiAJLyoKLQkg KiBGaW5kIGFsbCByb3V0aW5nIGVudHJpZXMgdGhhdCBtYXRjaCBhbmQgZGVsZXRlIHRoZW0uCisJ ICogQWNjZXB0YW5jZSBjcml0ZXJpYTogY2hlY2sgaWYgb25lIG9mIHRoZSBkZXN0aW5hdGlvbiBh ZGRyZXNzZXMKKwkgKiBpbiBQRVJSIGlzIGluIGZvcndhcmRpbmcgaW5mb3JtYXRpb24gd2l0aCBu ZXh0IGhvcCBlcXVhbHMgdG8KKwkgKiB0cmFuc21pdHRlciBhZGRyZXNzLgorCSAqIEFsc28gYnVp bGQgYSBsaXN0IG9mIHVucmVhY2hibGUgZGVzdGluYXRpb24gcmVsYXZhbnQgZm9yIHVzLAorCSAq IGlmIFBFUlIgZ2V0cyBhY2NlcHRlZC4KIAkgKi8KKwlrID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwg cGVyci0+cGVycl9uZGVzdHM7IGkrKykgewogCQlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQo dmFwLCBQRVJSX0RBRERSKGkpKTsKIAkJaWYgKHJ0ID09IE5VTEwpCiAJCQljb250aW51ZTsKKwkJ aWYoKHJ0LT5ydF9mbGFncyAmIElFRUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQpICYmCisJCQlJ RUVFODAyMTFfQUREUl9FUShydC0+cnRfbmV4dGhvcCwgd2gtPmlfYWRkcjIpKXsKKwkJCXVucmNo YmxfZGVzdFtrKytdID0gaTsKKwkJCSsrbnVtX3VucmNoYmxfZGVzdDsKKwkJfQorCX0KKwlpZigh bnVtX3VucmNoYmxfZGVzdCl7CisJCUlFRUU4MDIxMV9ESVNDQVJEX01BQyh2YXAsIElFRUU4MDIx MV9NU0dfSFdNUCwgbmktPm5pX21hY2FkZHIsIAorCQkJCU5VTEwsICIlcyIsICJQRVJSIHVucmVs ZXZhbnQiKTsKKwkJcmV0dXJuOworCX0KKwkKKwkvKiBQRVJSIEFDQ0VQVEVEICovCisJCisJSUVF RTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCSAgICAicmVjZWl2ZWQg UEVSUiwgbnVtYmVyIG9mIGRlc3RpbmF0aW9ucyAlZCwgdW5yZWFjaGFibGUgJWQiLAorCSAgICBw ZXJyLT5wZXJyX25kZXN0cywgbnVtX3VucmNoYmxfZGVzdCk7CisJCisJZm9yKGkgPSAwOyBpPG51 bV91bnJjaGJsX2Rlc3Q7IGkrKykgeworCQlydCA9IGllZWU4MDIxMV9tZXNoX3J0X2ZpbmQodmFw LCBQRVJSX0RBRERSKGkpKTsKKwkJaWYgKHJ0ID09IE5VTEwpIC8vWFhYOiB3ZSAga25vdyBpdCBp cyBub3QgbnVsbCEKKwkJCWNvbnRpbnVlOwogCQlociA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BS SVYocnQsIHN0cnVjdCBpZWVlODAyMTFfaHdtcF9yb3V0ZSk7Ci0JCWlmICghKFBFUlJfREZMQUdT KDApICYgSUVFRTgwMjExX01FU0hQRVJSX0RGTEFHU19VU04pICYmIAotCQkgICAgSFdNUF9TRVFf R0VRKFBFUlJfRFNFUShpKSwgaHItPmhyX3NlcSkpIHsKLQkJCWllZWU4MDIxMV9tZXNoX3J0X2Rl bCh2YXAsIHJ0LT5ydF9kZXN0KTsKLQkJCWllZWU4MDIxMV9tZXNoX3J0X2ZsdXNoX3BlZXIodmFw LCBydC0+cnRfZGVzdCk7Ci0JCQlydCA9IE5VTEw7Ci0JCQlmb3J3YXJkID0gMTsKKwkJCisJCWlm KChQRVJSX0RSQ09ERShpKSAmIElFRUU4MDIxMV9SRUFTT05fTUVTSF9QRVJSX05PX0ZJKSAmJgor CQkJUEVSUl9EU0VRKGkpID09IDApeworCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFf TVNHX0hXTVAsIG5pLAorCQkJICAgICJQRVJSOiBubyBmb3J3YXJkaW5nIGluZm9ybWF0aW9uIGZv ciBkZXN0aW5hdGlvbiAlcyIsCisJCQkgICAgZXRoZXJfc3ByaW50ZihQRVJSX0RBRERSKHVucmNo YmxfZGVzdFtpXSkpKTsKKwkJCWhyLT5ocl9zZXErKzsgLy8gMTFDLjkuMTEuNC4zIGVmZmVjdCBv ZiByZWNlaXB0IGNhc2UgYikKKwkJfWVsc2UgaWYoKChQRVJSX0RSQ09ERShpKSAmIElFRUU4MDIx MV9SRUFTT05fTUVTSF9QRVJSX05PX0ZJKSAmJgorCQkgICAgUEVSUl9EU0VRKGkpICE9IDApCisJ CSAgICB8fAorCQkgICAgKChQRVJSX0RSQ09ERShpKSAmIElFRUU4MDIxMV9SRUFTT05fTUVTSF9Q RVJSX0RFU1RfVU5SRUFDSCkKKwkJICAgICYmIChIV01QX1NFUV9HVChQRVJSX0RTRVEoaSksIGhy LT5ocl9zZXEpKSkpeyAvL2Nhc2UgYykKKwkJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjEx X01TR19IV01QLCBuaSwKKwkJCSAgICAiUEVSUjogdW5yZWNoYWJsZSBkZXN0aW5hdGlvbiAlcyB3 aXRoIgorCQkJICAgICJwZXJyIHNlcSAlZCA+IHN0b3JlZCBzZXEgJWQiLAorCQkJICAgIGV0aGVy X3NwcmludGYoUEVSUl9EQUREUih1bnJjaGJsX2Rlc3RbaV0pKSwKKwkJCSAgICBQRVJSX0RTRVEo aSksIGhyLT5ocl9zZXEpOworCQkJaHItPmhyX3NlcSA9IFBFUlJfRFNFUShpKTsKKwkJCS8qIGlu dmxpZGF0ZSBmb3J3YXJkaW5nIGluZm9ybWF0aW9uICovCisJCQlydC0+cnRfZmxhZ3MgJj0gfklF RUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQ7CisJCQkrK2ZvcndhcmQ7CisJCX1lbHNleworCQkJ SUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCQkJICAgICJQRVJS OiB1bnJlY2hhYmxlIGRlc3RpbmF0aW9uICVzIHdpdGgiCisJCQkgICAgInBlcnIgc2VxICVkIDwg c3RvcmVkIHNlcSAlZCIsCisJCQkgICAgZXRoZXJfc3ByaW50ZihQRVJSX0RBRERSKHVucmNoYmxf ZGVzdFtpXSkpLAorCQkJICAgIFBFUlJfRFNFUShpKSwgaHItPmhyX3NlcSk7CiAJCX0KIAl9CisK IAkvKgogCSAqIFByb3BhZ2F0ZSB0aGUgUEVSUiBpZiB3ZSBwcmV2aW91c2x5IGZvdW5kIGl0IG9u IG91ciByb3V0aW5nIHRhYmxlLgotCSAqIFhYWCBoYW5kbGUgbmRlc3QgPiAxCiAJICovCi0JaWYg KGZvcndhcmQgJiYgcGVyci0+cGVycl90dGwgPiAxKSB7CisJaWYgKGZvcndhcmQgPiAxMDAgJiYg cGVyci0+cGVycl90dGwgPiAxICYmCisJICAgIChtcy0+bXNfZmxhZ3MgJiBJRUVFODAyMTFfTUVT SEZMQUdTX0ZXRCkpIHsKKwkJcHBlcnIgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFf bWVzaHBlcnJfaWUpICsKKwkJICAgIChwZXJyLT5wZXJyX25kZXN0cy0xKSpzaXplb2YoKnBlcnIt PnBlcnJfZGVzdHMpLAorCQkgICAgTV84MDIxMV9IV01QX1BFUlIsIE1fTk9XQUlUIHwgTV9aRVJP KTsKKwkJS0FTU0VSVChwcGVyciAhPSBOVUxMLCAoImVycm9yIGFsbG9jYXRpb25nIFBFUlIiKSk7 CisJCW1lbWNweShwcGVyciwgcGVyciwgc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfbWVzaHBlcnJf aWUpICsKKwkJICAgIChwZXJyLT5wZXJyX25kZXN0cy0xKSpzaXplb2YoKnBlcnItPnBlcnJfZGVz dHMpKTsKIAkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAogCQkg ICAgInByb3BhZ2F0ZSBQRVJSIGZyb20gJXMiLCBldGhlcl9zcHJpbnRmKHdoLT5pX2FkZHIyKSk7 Ci0JCW1lbWNweSgmcHBlcnIsIHBlcnIsIHNpemVvZigqcGVycikpOwotCQlwcGVyci5wZXJyX3R0 bC0tOwotCQlod21wX3NlbmRfcGVycih2YXAtPml2X2JzcywgdmFwLT5pdl9teWFkZHIsIGJyb2Fk Y2FzdGFkZHIsCi0JCSAgICAmcHBlcnIpOworCQlwcGVyci0+cGVycl90dGwtLTsKKwkJaHdtcF9z ZW5kX3BlcnIodmFwLT5pdl9ic3MsIHZhcC0+aXZfbXlhZGRyLAorCQkgICAgYnJvYWRjYXN0YWRk ciwgcHBlcnIpOworCQlmcmVlKHBwZXJyLCBNXzgwMjExX0hXTVBfUEVSUik7CiAJfQogfQogI3Vu ZGVmCVBFRVJfREFERFIKQEAgLTEyMTQsMTAgKzE0MzMsMTQgQEAgaHdtcF9zZW5kX3BlcnIoc3Ry dWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkgKiAgICAgW3Rsdl0gbWVzaCBwYXRoIGVycm9yCiAJ ICovCiAJcGVyci0+cGVycl9pZSA9IElFRUU4MDIxMV9FTEVNSURfTUVTSFBFUlI7Ci0JcmV0dXJu IGh3bXBfc2VuZF9hY3Rpb24obmksIHNhLCBkYSwgKHVpbnQ4X3QgKilwZXJyLAotCSAgICBzaXpl b2Yoc3RydWN0IGllZWU4MDIxMV9tZXNocGVycl9pZSkpOworCXBlcnItPnBlcnJfbGVuID0gSUVF RTgwMjExX01FU0hQRVJSX0JBU0VfU1ogKworCSAgICBwZXJyLT5wZXJyX25kZXN0cyAqIElFRUU4 MDIxMV9NRVNIUEVSUl9ERVNUX1NaOworCXJldHVybiBod21wX3NlbmRfYWN0aW9uKG5pLCBzYSwg ZGEsICh1aW50OF90ICopcGVyciwgcGVyci0+cGVycl9sZW4rMik7CiB9CiAKKyNkZWZpbmUJUFJF UV9URkxBR1MobikJcHJlcS5wcmVxX3RhcmdldHNbbl0udGFyZ2V0X2ZsYWdzCisjZGVmaW5lCVBS RVFfVEFERFIobikJcHJlcS5wcmVxX3RhcmdldHNbbl0udGFyZ2V0X2FkZHIKKyNkZWZpbmUJUFJF UV9UU0VRKG4pCXByZXEucHJlcV90YXJnZXRzW25dLnRhcmdldF9zZXEKIHN0YXRpYyB2b2lkCiBo d21wX3JlY3ZfcmFubihzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFf bm9kZSAqbmksCiAgICAgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9mcmFtZSAqd2gsIGNvbnN0IHN0 cnVjdCBpZWVlODAyMTFfbWVzaHJhbm5faWUgKnJhbm4pCkBAIC0xMjI2LDcgKzE0NDksOSBAQCBo d21wX3JlY3ZfcmFubihzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFf bm9kZSAqbmksCiAJc3RydWN0IGllZWU4MDIxMV9od21wX3N0YXRlICpocyA9IHZhcC0+aXZfaHdt cDsKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hfcm91dGUgKnJ0ID0gTlVMTDsKIAlzdHJ1Y3QgaWVl ZTgwMjExX2h3bXBfcm91dGUgKmhyOworCXN0cnVjdCBpZWVlODAyMTFfbWVzaHByZXFfaWUgcHJl cTsKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hyYW5uX2llIHByYW5uOworCXVpbnQzMl90IG1ldHJp YyA9IDA7CiAKIAlpZiAobmkgPT0gdmFwLT5pdl9ic3MgfHwKIAkgICAgbmktPm5pX21sc3RhdGUg IT0gSUVFRTgwMjExX05PREVfTUVTSF9FU1RBQkxJU0hFRCB8fApAQCAtMTIzOSwyNCArMTQ2NCw4 NSBAQCBod21wX3JlY3ZfcmFubihzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVl ODAyMTFfbm9kZSAqbmksCiAJICogSWYgd2UgYWxyZWFkeSBrbm93IGl0LCBwcm9wYWdhdGUgdGhl IFJBTk4gZWxlbWVudC4KIAkgKi8KIAlpZiAocnQgPT0gTlVMTCkgeworCQlJRUVFODAyMTFfTk9U RSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCisJCSAgICAicmVjZWl2ZWQgUkFOTiwgbmV3 IHJvb3RtYWMgJXMiLAorCQkgICAgZXRoZXJfc3ByaW50ZihyYW5uLT5yYW5uX2FkZHIpKTsKIAkJ aHdtcF9kaXNjb3Zlcih2YXAsIHJhbm4tPnJhbm5fYWRkciwgTlVMTCk7CiAJCXJldHVybjsKIAl9 CiAJaHIgPSBJRUVFODAyMTFfTUVTSF9ST1VURV9QUklWKHJ0LCBzdHJ1Y3QgaWVlZTgwMjExX2h3 bXBfcm91dGUpOwotCWlmIChIV01QX1NFUV9HVChyYW5uLT5yYW5uX3NlcSwgaHItPmhyX3NlcSkp IHsKLQkJaHItPmhyX3NlcSA9IHJhbm4tPnJhbm5fc2VxOwotCQlpZiAocmFubi0+cmFubl90dGwg PiAxICYmCi0JCSAgICByYW5uLT5yYW5uX2hvcGNvdW50IDwgaHMtPmhzX21heGhvcHMgJiYKLQkJ ICAgIChtcy0+bXNfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSEZMQUdTX0ZXRCkpIHsKLQkJCW1lbWNw eSgmcHJhbm4sIHJhbm4sIHNpemVvZihwcmFubikpOwotCQkJcHJhbm4ucmFubl9ob3Bjb3VudCAr PSAxOwotCQkJcHJhbm4ucmFubl90dGwgLT0gMTsKLQkJCXByYW5uLnJhbm5fbWV0cmljICs9IG1z LT5tc19wbWV0cmljLT5tcG1fbWV0cmljKG5pKTsKLQkJCWh3bXBfc2VuZF9yYW5uKHZhcC0+aXZf YnNzLCB2YXAtPml2X215YWRkciwKLQkJCSAgICBicm9hZGNhc3RhZGRyLCAmcHJhbm4pOwotCQl9 CisKKwkvKgorCSAqIEFjY2VwdGFuY2UgY3JpdGVyaWE6IGlmIFJBTk4gaGFzIG9sZCBzZXF1ZW5j ZSBudW1iZXIKKwkgKiBvciBzYW1lIHNlcXVlbmNlIG51bWJlciBidXQgd29yc2UgbWV0cmljIHRo YW4gaW4KKwkgKiBmb3J3YXJkaW5nIGluZm9ybWF0aW9uLCBkaXNjYXJkIHRoaXMgUkFOTi4KKwkg Ki8KKwlpZiAoSFdNUF9TRVFfTFQocmFubi0+cmFubl9zZXEsIGhyLT5ocl9zZXEpIHx8CisJICAg IChIV01QX1NFUV9FUShyYW5uLT5yYW5uX3NlcSwgaHItPmhyX3NlcSkgJiYKKwkgICAgcmFubi0+ cmFubl9tZXRyaWMgPiBydC0+cnRfbWV0cmljKSkgeworCQlJRUVFODAyMTFfRElTQ0FSRF9NQUMo dmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLT5uaV9tYWNhZGRyLAorCQkgICAgTlVMTCwgIlJB Tk4sIHJvb3RtYWMgJXMsIGxhc3Qgc2VlbiBvcmlnLnNlcSAlZCwgcmFubi5zZXEgJWQiLAorCQkg ICAgZXRoZXJfc3ByaW50ZihyYW5uLT5yYW5uX2FkZHIpLCBoci0+aHJfc2VxLCByYW5uLT5yYW5u X3NlcSk7CisJCXJldHVybjsKKwl9CisKKwkvKiBSQU5OIEFDQ0VQVEVEICovCisJSUVFRTgwMjEx X05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAorCSAgICAicmVjZWl2ZWQgUkFOTiwg cm9vdG1hYyAlcyIsCisJICAgIGV0aGVyX3NwcmludGYocmFubi0+cmFubl9hZGRyKSk7CisKKy8v IAlpZWVlODAyMTFfaHdtcF9yYW5uaW50ID0gcmFubi0+cmFubl9pbnRlcnZhbDsKKworCS8qCisJ ICogTWVzaCBTVEEgbWF5IGluaXRpYXRlIGEgUFJFUS9QUkVQIGV4Y2hhbmdlIHdpdGggcm9vdC4K KwkgKiBTZWUgMTFDLjkuOS4zIChjb25kaXRpb24gZm9yIGdlbmVyYXRpbmcgYW5kIHNlbmRpbmcg YSBQUkVRKSBDYXNlIEQuCisJICovCisJbWV0cmljID0gcmFubi0+cmFubl9tZXRyaWMgKyBtcy0+ bXNfcG1ldHJpYy0+bXBtX21ldHJpYyhuaSk7CisJaWYobWV0cmljIDwgcnQtPnJ0X21ldHJpYyB8 fAorCSAgICByYXRlY2hlY2soJmhzLT5oc19sYXN0cm9vdGNvbmYsICZpZWVlODAyMTFfaHdtcF9y b290bWluX2NvbmZpbnQpKXsKKwkJZ2V0bWljcm91cHRpbWUoJmhzLT5oc19sYXN0cm9vdGNvbmYp OworCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCisJCSJQUkVR L1BSRVAgZXhjaGFuZ2Ugd2l0aCByb290ICVzLCBuZXh0aG9wICVzIiwKKwkJZXRoZXJfc3ByaW50 ZihyYW5uLT5yYW5uX2FkZHIpLAorCQlldGhlcl9zcHJpbnRmKHJ0LT5ydF9uZXh0aG9wKSk7CisJ CXByZXEucHJlcV9mbGFncyA9IDA7IC8qIHVuaWNhc3QgUFJFUSAqLworCQlwcmVxLnByZXFfaG9w Y291bnQgPSAwOworCQlwcmVxLnByZXFfdHRsID0gbXMtPm1zX3R0bDsKKwkJcHJlcS5wcmVxX2lk ID0gMDsgLyogTkI6IG5vdCB1c2VkICovCisJCUlFRUU4MDIxMV9BRERSX0NPUFkocHJlcS5wcmVx X29yaWdhZGRyLCB2YXAtPml2X215YWRkcik7CisJCXByZXEucHJlcV9vcmlnc2VxID0gKytocy0+ aHNfc2VxOworCQlwcmVxLnByZXFfbGlmZXRpbWUgPSBpZWVlODAyMTFfaHdtcF9yYW5udGltZW91 dDsKKwkJcHJlcS5wcmVxX21ldHJpYyA9IElFRUU4MDIxMV9NRVNITE1FVFJJQ19JTklUSUFMVkFM OworCQlwcmVxLnByZXFfdGNvdW50ID0gMTsKKwkJUFJFUV9URkxBR1MoMCkgPSBJRUVFODAyMTFf TUVTSFBSRVFfVEZMQUdTX1RPOworCQlJRUVFODAyMTFfQUREUl9DT1BZKFBSRVFfVEFERFIoMCks IHJhbm4tPnJhbm5fYWRkcik7CisJCVBSRVFfVFNFUSgwKSA9IHJhbm4tPnJhbm5fc2VxOworCQlo d21wX3NlbmRfcHJlcSh2YXAtPml2X2JzcywgdmFwLT5pdl9teWFkZHIsCisJCQkJcnQtPnJ0X25l eHRob3AsICZwcmVxKTsKKwl9CisKKwkvKiBNYXkgdXBkYXRlIGZvcndhcmRpbmcgaWZvcm1hdGlv biB0byByb290LiAqLworCWhyLT5ocl9zZXEgPSByYW5uLT5yYW5uX3NlcTsKKwlydC0+cnRfbmhv cHMgPSByYW5uLT5yYW5uX2hvcGNvdW50KzE7CisJcnQtPnJ0X21ldHJpYyA9IG1ldHJpYzsKKwor CWlmIChyYW5uLT5yYW5uX3R0bCA+IDEgJiYKKwkgICAgcmFubi0+cmFubl9ob3Bjb3VudCA8IGhz LT5oc19tYXhob3BzICYmCisJICAgIChtcy0+bXNfZmxhZ3MgJiBJRUVFODAyMTFfTUVTSEZMQUdT X0ZXRCkpIHsKKwkJbWVtY3B5KCZwcmFubiwgcmFubiwgc2l6ZW9mKHByYW5uKSk7CisJCXByYW5u LnJhbm5faG9wY291bnQgKz0gMTsKKwkJcHJhbm4ucmFubl90dGwgLT0gMTsKKwkJcHJhbm4ucmFu bl9tZXRyaWMgKz0gbXMtPm1zX3BtZXRyaWMtPm1wbV9tZXRyaWMobmkpOworCQlJRUVFODAyMTFf Tk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCisJCSAgICAicHJvcGFnYXRlIFJBTk4s IHJvb3RtYWMgJXMiLAorCQkgICAgZXRoZXJfc3ByaW50ZihyYW5uLT5yYW5uX2FkZHIpKTsKKwkJ aHdtcF9zZW5kX3Jhbm4odmFwLT5pdl9ic3MsIHZhcC0+aXZfbXlhZGRyLAorCQkgICAgYnJvYWRj YXN0YWRkciwgJnByYW5uKTsKIAl9CiB9CisjdW5kZWYJUFJFUV9URkxBR1MKKyN1bmRlZglQUkVR X1RBRERSCisjdW5kZWYJUFJFUV9UU0VRCiAKIHN0YXRpYyBpbnQKIGh3bXBfc2VuZF9yYW5uKHN0 cnVjdCBpZWVlODAyMTFfbm9kZSAqbmksCkBAIC0xMjc0LDggKzE1NjAsOSBAQCBod21wX3NlbmRf cmFubihzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCSAqICAgICBbdGx2XSByb290IGFubm91 Y2VtZW50CiAJICovCiAJcmFubi0+cmFubl9pZSA9IElFRUU4MDIxMV9FTEVNSURfTUVTSFJBTk47 CisJcmFubi0+cmFubl9sZW4gPSBJRUVFODAyMTFfTUVTSFJBTk5fQkFTRV9TWjsKIAlyZXR1cm4g aHdtcF9zZW5kX2FjdGlvbihuaSwgc2EsIGRhLCAodWludDhfdCAqKXJhbm4sCi0JICAgIHNpemVv ZihzdHJ1Y3QgaWVlZTgwMjExX21lc2hyYW5uX2llKSk7CisJICAgIHJhbm4tPnJhbm5fbGVuICsg Mik7CiB9CiAKICNkZWZpbmUJUFJFUV9URkxBR1MobikJcHJlcS5wcmVxX3RhcmdldHNbbl0udGFy Z2V0X2ZsYWdzCkBAIC0xMzIzLDE4ICsxNjEwLDE5IEBAIGh3bXBfZGlzY292ZXIoc3RydWN0IGll ZWU4MDIxMXZhcCAqdmFwLAogCQkJLyogWFhYIGNoZWNrIHByZXEgcmV0cmllcyAqLwogCQkJc2Vu ZHByZXEgPSAxOwogCQkJSUVFRTgwMjExX05PVEVfTUFDKHZhcCwgSUVFRTgwMjExX01TR19IV01Q LCBkZXN0LAotCQkJICAgICJzdGFydCBwYXRoIGRpc2NvdmVyeSAoc3JjICVzKSIsCisJCQkgICAg InN0YXJ0IHBhdGggZGlzY292ZXJ5IChzcmMgJXMpLCB0YXJnZXQgc2VxICV1IiwKIAkJCSAgICBt ID09IE5VTEwgPyAiPG5vbmU+IiA6IGV0aGVyX3NwcmludGYoCi0JCQkJbXRvZChtLCBzdHJ1Y3Qg ZXRoZXJfaGVhZGVyICopLT5ldGhlcl9zaG9zdCkpOworCQkJICAgIG10b2QobSwgc3RydWN0IGV0 aGVyX2hlYWRlciAqKS0+ZXRoZXJfc2hvc3QpLAorCQkJICAgIGhyLT5ocl9zZXEpOwogCQkJLyoK IAkJCSAqIFRyeSB0byBkaXNjb3ZlciB0aGUgcGF0aCBmb3IgdGhpcyBub2RlLgogCQkJICovCi0J CQlwcmVxLnByZXFfZmxhZ3MgPSAwOworCQkJcHJlcS5wcmVxX2ZsYWdzID0gSUVFRTgwMjExX01F U0hQUkVRX0ZMQUdTX0FNOwogCQkJcHJlcS5wcmVxX2hvcGNvdW50ID0gMDsKIAkJCXByZXEucHJl cV90dGwgPSBtcy0+bXNfdHRsOwogCQkJcHJlcS5wcmVxX2lkID0gKytocy0+aHNfcHJlcWlkOwog CQkJSUVFRTgwMjExX0FERFJfQ09QWShwcmVxLnByZXFfb3JpZ2FkZHIsIHZhcC0+aXZfbXlhZGRy KTsKLQkJCXByZXEucHJlcV9vcmlnc2VxID0gaHItPmhyX29yaWdzZXE7CisJCQlwcmVxLnByZXFf b3JpZ3NlcSA9ICsraHMtPmhzX3NlcTsKIAkJCXByZXEucHJlcV9saWZldGltZSA9IHJ0LT5ydF9s aWZldGltZTsKIAkJCXByZXEucHJlcV9tZXRyaWMgPSBydC0+cnRfbWV0cmljOwogCQkJcHJlcS5w cmVxX3Rjb3VudCA9IDE7CkBAIC0xMzQyLDEwICsxNjMwLDggQEAgaHdtcF9kaXNjb3ZlcihzdHJ1 Y3QgaWVlZTgwMjExdmFwICp2YXAsCiAJCQlQUkVRX1RGTEFHUygwKSA9IDA7CiAJCQlpZiAoaWVl ZTgwMjExX2h3bXBfdGFyZ2V0b25seSkKIAkJCQlQUkVRX1RGTEFHUygwKSB8PSBJRUVFODAyMTFf TUVTSFBSRVFfVEZMQUdTX1RPOwotCQkJaWYgKGllZWU4MDIxMV9od21wX3JlcGx5Zm9yd2FyZCkK LQkJCQlQUkVRX1RGTEFHUygwKSB8PSBJRUVFODAyMTFfTUVTSFBSRVFfVEZMQUdTX1JGOwogCQkJ UFJFUV9URkxBR1MoMCkgfD0gSUVFRTgwMjExX01FU0hQUkVRX1RGTEFHU19VU047Ci0JCQlQUkVR X1RTRVEoMCkgPSAwOworCQkJUFJFUV9UU0VRKDApID0gaHItPmhyX3NlcTsKIAkJCS8qIFhYWCBj aGVjayByZXR1cm4gdmFsdWUgKi8KIAkJCWh3bXBfc2VuZF9wcmVxKHZhcC0+aXZfYnNzLCB2YXAt Pml2X215YWRkciwKIAkJCSAgICBicm9hZGNhc3RhZGRyLCAmcHJlcSk7CmRpZmYgLS1naXQgYS9z eXMvbmV0ODAyMTEvaWVlZTgwMjExX21lc2guaCBiL3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfbWVz aC5oCmluZGV4IGFkMWIwMmEuLmNlOTIwOTYgMTAwNjQ0Ci0tLSBhL3N5cy9uZXQ4MDIxMS9pZWVl ODAyMTFfbWVzaC5oCisrKyBiL3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfbWVzaC5oCkBAIC0xNzAs NiArMTcwLDcgQEAgc3RydWN0IGllZWU4MDIxMV9tZXNocGFubl9pZSB7CiB9IF9fcGFja2VkOwog CiAvKiBSb290IChNUCkgQW5ub3VjZW1lbnQgKi8KKyNkZWZpbmUgSUVFRTgwMjExX01FU0hSQU5O X0JBU0VfU1ogCSgyMSkKIHN0cnVjdCBpZWVlODAyMTFfbWVzaHJhbm5faWUgewogCXVpbnQ4X3QJ CXJhbm5faWU7CQkvKiBJRUVFODAyMTFfRUxFTUlEX01FU0hSQU5OICovCiAJdWludDhfdAkJcmFu bl9sZW47CkBAIC0xNzksMTAgKzE4MCwxNSBAQCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hyYW5uX2ll IHsKIAl1aW50OF90CQlyYW5uX3R0bDsKIAl1aW50OF90CQlyYW5uX2FkZHJbSUVFRTgwMjExX0FE RFJfTEVOXTsKIAl1aW50MzJfdAlyYW5uX3NlcTsJCS8qIEhXTVAgU2VxdWVuY2UgTnVtYmVyICov CisJdWludDMyX3QJcmFubl9pbnRlcnZhbDsKIAl1aW50MzJfdAlyYW5uX21ldHJpYzsKIH0gX19w YWNrZWQ7CitNQUxMT0NfREVDTEFSRShNXzgwMjExX0hXTVBfUkFOTik7CiAKIC8qIE1lc2ggUGF0 aCBSZXF1ZXN0ICovCisjZGVmaW5lIElFRUU4MDIxMV9NRVNIUFJFUV9CQVNFX1NaIAkoMjYpCisj ZGVmaW5lIElFRUU4MDIxMV9NRVNIUFJFUV9CQVNFX1NaX0FFIAkoMzIpCisjZGVmaW5lIElFRUU4 MDIxMV9NRVNIUFJFUV9UUkdUX1NaIAkoMTEpCiBzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVxX2ll IHsKIAl1aW50OF90CQlwcmVxX2llOwkvKiBJRUVFODAyMTFfRUxFTUlEX01FU0hQUkVRICovCiAJ dWludDhfdAkJcHJlcV9sZW47CkBAIC0xOTYsMjEgKzIwMiwyNCBAQCBzdHJ1Y3QgaWVlZTgwMjEx X21lc2hwcmVxX2llIHsKIAl1aW50MzJfdAlwcmVxX2lkOwogCXVpbnQ4X3QJCXByZXFfb3JpZ2Fk ZHJbSUVFRTgwMjExX0FERFJfTEVOXTsKIAl1aW50MzJfdAlwcmVxX29yaWdzZXE7CS8qIEhXTVAg U2VxdWVuY2UgTnVtYmVyICovCi0JLyogTkI6IG1heSBoYXZlIE9yaWdpbmF0b3IgUHJveGllZCBB ZGRyZXNzICovCisJLyogTkI6IG1heSBoYXZlIE9yaWdpbmF0b3IgRXh0ZXJuYWwgQWRkcmVzcyAq LworCXVpbnQ4X3QJCXByZXFfb3JpZ19leHRfYWRkcltJRUVFODAyMTFfQUREUl9MRU5dOwogCXVp bnQzMl90CXByZXFfbGlmZXRpbWU7CiAJdWludDMyX3QJcHJlcV9tZXRyaWM7CiAJdWludDhfdAkJ cHJlcV90Y291bnQ7CS8qIHRhcmdldCBjb3VudCAqLwogCXN0cnVjdCB7CiAJCXVpbnQ4X3QJCXRh cmdldF9mbGFnczsKICNkZWZpbmUJSUVFRTgwMjExX01FU0hQUkVRX1RGTEFHU19UTwkweDAxCS8q IFRhcmdldCBPbmx5ICovCi0jZGVmaW5lCUlFRUU4MDIxMV9NRVNIUFJFUV9URkxBR1NfUkYJMHgw MgkvKiBSZXBseSBhbmQgRm9yd2FyZCAqLwogI2RlZmluZQlJRUVFODAyMTFfTUVTSFBSRVFfVEZM QUdTX1VTTgkweDA0CS8qIFVua25vd24gSFdNUCBzZXEgbnVtYmVyICovCiAJCXVpbnQ4X3QJCXRh cmdldF9hZGRyW0lFRUU4MDIxMV9BRERSX0xFTl07CiAJCXVpbnQzMl90CXRhcmdldF9zZXE7CS8q IEhXTVAgU2VxdWVuY2UgTnVtYmVyICovCiAJfSBfX3BhY2tlZCBwcmVxX3RhcmdldHNbMV07CQkv KiBOQjogdmFyaWFibGUgc2l6ZSAqLwogfSBfX3BhY2tlZDsKK01BTExPQ19ERUNMQVJFKE1fODAy MTFfSFdNUF9QUkVRKTsKIAogLyogTWVzaCBQYXRoIFJlcGx5ICovCisjZGVmaW5lIElFRUU4MDIx MV9NRVNIUFJFUF9CQVNFX1NaIAkoMzEpCisjZGVmaW5lIElFRUU4MDIxMV9NRVNIUFJFUF9CQVNF X1NaX0FFIAkoMzcpCiBzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llIHsKIAl1aW50OF90CQlw cmVwX2llOwkvKiBJRUVFODAyMTFfRUxFTUlEX01FU0hQUkVQICovCiAJdWludDhfdAkJcHJlcF9s ZW47CkBAIC0yMTksMTQgKzIyOCwxOSBAQCBzdHJ1Y3QgaWVlZTgwMjExX21lc2hwcmVwX2llIHsK IAl1aW50OF90CQlwcmVwX3R0bDsKIAl1aW50OF90CQlwcmVwX3RhcmdldGFkZHJbSUVFRTgwMjEx X0FERFJfTEVOXTsKIAl1aW50MzJfdAlwcmVwX3RhcmdldHNlcTsKLQkvKiBOQjogTWF5IGhhdmUg VGFyZ2V0IFByb3hpZWQgQWRkcmVzcyAqLworCS8qIE5COiBNYXkgaGF2ZSBUYXJnZXQgRXh0ZXJu YWwgQWRkcmVzcyAqLworCXVpbnQ4X3QJCXByZXBfdGFyZ2V0X2V4dF9hZGRyW0lFRUU4MDIxMV9B RERSX0xFTl07CiAJdWludDMyX3QJcHJlcF9saWZldGltZTsKIAl1aW50MzJfdAlwcmVwX21ldHJp YzsKIAl1aW50OF90CQlwcmVwX29yaWdhZGRyW0lFRUU4MDIxMV9BRERSX0xFTl07CiAJdWludDMy X3QJcHJlcF9vcmlnc2VxOwkvKiBIV01QIFNlcXVlbmNlIE51bWJlciAqLwogfSBfX3BhY2tlZDsK K01BTExPQ19ERUNMQVJFKE1fODAyMTFfSFdNUF9QUkVQKTsKIAogLyogTWVzaCBQYXRoIEVycm9y ICovCisjZGVmaW5lIElFRUU4MDIxMV9NRVNIUEVSUl9CQVNFX1NaIAkoMikKKyNkZWZpbmUgSUVF RTgwMjExX01FU0hQRVJSX0RFU1RfU1ogCSgxMykKKyNkZWZpbmUgSUVFRTgwMjExX01FU0hQRVJS X0RFU1RfU1pfQUUgCSgxOSkKIHN0cnVjdCBpZWVlODAyMTFfbWVzaHBlcnJfaWUgewogCXVpbnQ4 X3QJCXBlcnJfaWU7CS8qIElFRUU4MDIxMV9FTEVNSURfTUVTSFBFUlIgKi8KIAl1aW50OF90CQlw ZXJyX2xlbjsKQEAgLTIzOCw5ICsyNTIsMTIgQEAgc3RydWN0IGllZWU4MDIxMV9tZXNocGVycl9p ZSB7CiAjZGVmaW5lCUlFRUU4MDIxMV9NRVNIUEVSUl9ERkxBR1NfUkMJMHgwMgogCQl1aW50OF90 CQlkZXN0X2FkZHJbSUVFRTgwMjExX0FERFJfTEVOXTsKIAkJdWludDMyX3QJZGVzdF9zZXE7CS8q IEhXTVAgU2VxdWVuY2UgTnVtYmVyICovCisJCS8qIE5COiBNYXkgaGF2ZSBEZXN0aW5hdGlvbiBF eHRlcm5hbCBBZGRyZXNzICovCisJCXVpbnQ4X3QJCWRlc3RfZXh0X2FkZHJbSUVFRTgwMjExX0FE RFJfTEVOXTsKIAkJdWludDE2X3QJZGVzdF9yY29kZTsKIAl9IF9fcGFja2VkIHBlcnJfZGVzdHNb MV07CQkvKiBOQjogdmFyaWFibGUgc2l6ZSAqLwogfSBfX3BhY2tlZDsKK01BTExPQ19ERUNMQVJF KE1fODAyMTFfSFdNUF9QRVJSKTsKIAogI2lmZGVmIG5vdHlldAogLyogTWVzaCBQcm94eSBVcGRh dGUgKi8KIAo= --90e6ba1efd78752b9804ad99db4f-- From owner-freebsd-wireless@FreeBSD.ORG Fri Sep 23 11:23:26 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 E1340106566C for ; Fri, 23 Sep 2011 11:23:26 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com [209.85.161.182]) by mx1.freebsd.org (Postfix) with ESMTP id A4DD88FC12 for ; Fri, 23 Sep 2011 11:23:26 +0000 (UTC) Received: by gxk26 with SMTP id 26so2260893gxk.13 for ; Fri, 23 Sep 2011 04:23:26 -0700 (PDT) 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 :cc:content-type; bh=nHMfKO8LEBeZuHg7u+OZyx7WQSsvqCaBuWNhEpel88o=; b=aevpVw6plkgDqsnuCt8HFxzCkqMexs3bm1Q1//zVUzTXe3LixDIOzgPHWxjJKEXBNr TYH0U7RJ2CqkY/4riUBm2jBDQ1qbsbxwWAeQqPYQLBhNRHkncdRNP5RJXGqRNTCO1g2h VDueCIo1ZmXhkXeo8Dyzp1cQByuzjAiyCLKtA= MIME-Version: 1.0 Received: by 10.236.124.97 with SMTP id w61mr20373227yhh.106.1316776546388; Fri, 23 Sep 2011 04:15:46 -0700 (PDT) Received: by 10.236.111.42 with HTTP; Fri, 23 Sep 2011 04:15:46 -0700 (PDT) In-Reply-To: References: Date: Fri, 23 Sep 2011 19:15:46 +0800 Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: FreeBSD net80211s HWMP code 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, 23 Sep 2011 11:23:27 -0000 On 23 September 2011 19:10, Monthadar Al Jaberi wrote: > Hi again, > > This diff fixed the broken parts in the last one. So it should be > usable instead of the current FreeBSD HWMP. Also this diff is updated > to draft 12.0. Thanks very much for this! > I hope you could try it and let me know how it goes. > > Will work with Adrian to break it into smaller commits to HEAD. Cool. Let's get the simulator tidied up and dumped into -HEAD once it reopens for commit. Then we can work on fixing up mesh related issues in small chunks. I'd first like to see if we can get some automated scripts written (like what you've already done, but "more" :) to do some automated mesh testing; then we can run it on each commit. Finally - have you done any interoperability testing yet with LInux? Adrian From owner-freebsd-wireless@FreeBSD.ORG Fri Sep 23 11:42:35 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 286C01065674 for ; Fri, 23 Sep 2011 11:42:35 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id DF1D48FC0A for ; Fri, 23 Sep 2011 11:42:34 +0000 (UTC) Received: by ywp17 with SMTP id 17so3302755ywp.13 for ; Fri, 23 Sep 2011 04:42:34 -0700 (PDT) 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 :cc:content-type; bh=aKtkJaJNFE1M5jTt/kIBXAGAxwsdC7jXRentXe/Pre0=; b=IsK+SQmLCfCDjbDJ3sXyFnGEZIQ/yfA4O9UuGeoyyL1Oy65SWTFfvINycHaQNI06VC ypO6NhbRW3iZu9TK02aVNhZaf9WiGLTBH92Ss8nWzrvj6usQUQ1v1+nFF00460aS3D6R myXLxvlvanwqEKpsBqj6jAd5nj9N9SDD2S2Q4= MIME-Version: 1.0 Received: by 10.42.146.7 with SMTP id h7mr4129303icv.197.1316778154076; Fri, 23 Sep 2011 04:42:34 -0700 (PDT) Received: by 10.42.172.198 with HTTP; Fri, 23 Sep 2011 04:42:34 -0700 (PDT) In-Reply-To: References: Date: Fri, 23 Sep 2011 13:42:34 +0200 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-wireless@freebsd.org Subject: Re: FreeBSD net80211s HWMP code 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, 23 Sep 2011 11:42:35 -0000 On Fri, Sep 23, 2011 at 1:15 PM, Adrian Chadd wrote: > On 23 September 2011 19:10, Monthadar Al Jaberi wrote: >> Hi again, >> >> This diff fixed the broken parts in the last one. So it should be >> usable instead of the current FreeBSD HWMP. Also this diff is updated >> to draft 12.0. > > Thanks very much for this! > >> I hope you could try it and let me know how it goes. >> >> Will work with Adrian to break it into smaller commits to HEAD. > > Cool. Let's get the simulator tidied up and dumped into -HEAD once it > reopens for commit. > Then we can work on fixing up mesh related issues in small chunks. Sounds like a plan. > > I'd first like to see if we can get some automated scripts written > (like what you've already done, but "more" :) to do some automated > mesh testing; then we can run it on each commit. > > Finally - have you done any interoperability testing yet with LInux? No, but I have talked to the Linux guys and they are willing to put a Freebsd node in their Linux testbench. I just need to make sure they are theoretically compatible. > > > > Adrian > -- //Monthadar Al Jaberi From owner-freebsd-wireless@FreeBSD.ORG Sat Sep 24 15:14:08 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 04E12106566B; Sat, 24 Sep 2011 15:14:08 +0000 (UTC) (envelope-from chmeeedalf@gmail.com) Received: from mail-yi0-f54.google.com (mail-yi0-f54.google.com [209.85.218.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9F12B8FC0C; Sat, 24 Sep 2011 15:14:07 +0000 (UTC) Received: by yia13 with SMTP id 13so4257322yia.13 for ; Sat, 24 Sep 2011 08:14:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=sender:message-id:from:to:content-type:content-transfer-encoding :mime-version:subject:date:cc:x-mailer; bh=7O7Ggt023GGRVzq571fZzesxAn3yYpfd+N4jAWbeBH0=; b=BbHbIy5I5GVw0TLV41LJ5XDbFA4peZllYubghHqu+IbW9dPXS4hKidznr6Hdixo78k NINShiR4M6LBRPjnPH+EhXKG4IeHfvLNfwAv/RlbKn7rcUjHcMPTErwUdwyrn6a7CQDj qGedTxOQqg0a7CCW0X3cLMaD6dupVARA8T72Q= Received: by 10.101.147.3 with SMTP id z3mr4266991ann.168.1316877246902; Sat, 24 Sep 2011 08:14:06 -0700 (PDT) Received: from triad.knownspace (216-15-41-8.c3-0.gth-ubr1.lnh-gth.md.cable.rcn.com. [216.15.41.8]) by mx.google.com with ESMTPS id k12sm50816814anc.19.2011.09.24.08.14.05 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 24 Sep 2011 08:14:05 -0700 (PDT) Sender: Justin Hibbits Message-Id: <9CA9DCD5-2B81-443D-BAC9-1B5D9E703B15@alumni.cwru.edu> From: Justin Hibbits To: freebsd-wireless@freebsd.org Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v936) Date: Sat, 24 Sep 2011 11:14:02 -0400 X-Mailer: Apple Mail (2.936) Cc: FreeBSD PowerPC ML Subject: if_wi attachment for mac-io 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: Sat, 24 Sep 2011 15:14:08 -0000 In my quest to get some form of wireless on my TiBook, I decided to write the necessary mac-io attachment for if_wi (putting the if_bwi off to the side for now). However, it appears that there's an endian issue with it: pci0: driver added pci1: driver added pci2: driver added found-> vendor=0x11c1, dev=0x5811, revid=0x00 domain=2, bus=0, slot=14, func=0 class=0c-00-10, hdrtype=0x00, mfdev=0 cmdreg=0x0006, statreg=0x0290, cachelnsz=8 (dwords) lattimer=0x10 (480 ns), mingnt=0x0c (3000 ns), maxlat=0x18 (6000 ns) intpin=a, irq=40 powerspec 2 supports D0 D1 D2 D3 current D0 pci2:0:14:0: reprobing on driver added wi0: mem 0x30000-0x300ff,0x1a000-0x1a0ff,0-0xff irq 57 on macio0 wi0: record read mismatch, rid=fd0b, got=bfd wi0: using Unknown Lucent chip wi0: record read mismatch, rid=fd20, got=20fd wi0: Hermes Firmware: Station (0.0.0) wi0: Sorry, this card is not supported (type 1, firmware ver 0) device_attach: wi0 attach returned 45 Is there a way to add a shim underneath the driver, or something else so as not to be too intrusive to the if_wi driver? - Justin