From owner-freebsd-mips@FreeBSD.ORG Wed Apr 14 01:12:06 2010 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 050A0106566B for ; Wed, 14 Apr 2010 01:12:06 +0000 (UTC) (envelope-from weongyo.jeong@gmail.com) Received: from mail-yx0-f174.google.com (mail-yx0-f174.google.com [209.85.210.174]) by mx1.freebsd.org (Postfix) with ESMTP id A72B58FC08 for ; Wed, 14 Apr 2010 01:12:05 +0000 (UTC) Received: by yxe4 with SMTP id 4so3775244yxe.28 for ; Tue, 13 Apr 2010 18:12:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:from:date:to:cc :subject:message-id:reply-to:references:mime-version:content-type :content-disposition:in-reply-to:user-agent:organization :x-operation-sytem; bh=vwV2MtMB85cWbsi5GP70qNPbfCIlrYnzoe9f2d/H/cA=; b=uE5LW82+sPMUut8/UmMiytoU7oYy3wsEYIqPpaHSSCUB96R1nUbV82xQ8jl/KPQ6Sg irUgCge6AGsOebqDlPXSAaM0eaKpoM6fdvxneLTCuxrfG1ZBqSmjg2GJUeSMLV5Um6Pu eTUt5CecV8Cx7OHtLKMq1ipXScysbpavqSv0E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:date:to:cc:subject:message-id:reply-to:references:mime-version :content-type:content-disposition:in-reply-to:user-agent :organization:x-operation-sytem; b=HOBZLkvW7fYjJ3SWPgdI1QaMduFwD11v4zqtdwY7VhHjaAXcaevC/sepFcc7wEKpoA QXv9pgJGMsTsM4eMBGoutDQ2CY4ZEFAyCGBUW49CnIRr3wVYul/xg9H9IjQ8rlHyfPEx dp9kUPE8zCSIuYPG8W9NViNTgul9Kou2Kt2Bo= Received: by 10.101.5.28 with SMTP id h28mr12372463ani.91.1271205759879; Tue, 13 Apr 2010 17:42:39 -0700 (PDT) Received: from weongyo ([174.35.1.224]) by mx.google.com with ESMTPS id 7sm1624172ywf.55.2010.04.13.17.42.38 (version=SSLv3 cipher=RC4-MD5); Tue, 13 Apr 2010 17:42:38 -0700 (PDT) Received: by weongyo (sSMTP sendmail emulation); Tue, 13 Apr 2010 17:43:07 -0700 From: Weongyo Jeong Date: Tue, 13 Apr 2010 17:43:07 -0700 To: Alexandr Rybalko Message-ID: <20100414004307.GH6799@weongyo> References: <20100409134113.6c3b52f1.ray@dlink.ua> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100409134113.6c3b52f1.ray@dlink.ua> User-Agent: Mutt/1.4.2.3i Organization: CDNetworks. X-Operation-Sytem: FreeBSD Cc: mips@freebsd.org Subject: Re: BCM5354 status (D-Link DIR-320) X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Weongyo Jeong List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 01:12:06 -0000 On Fri, Apr 09, 2010 at 01:41:13PM +0300, Alexandr Rybalko wrote: > Hi, > > If anyone is interested, completed work on a big chat DIR-320 with the > profile of IPSec Firmware available here > http://www.dlink.ua/files/products/ftp/pub/Router/DIR-320/firmware/A1/FreeBSD_D-Link_DIR-320_ipsec-router_9.0.2.img > Description read here http://wiki.ddteam.net/wiki.cgi?page=DIR-320+FreeBSD > Many thing's have not yet ready, but the device may > already serve as IPSec router. > And all this in the 4M flash memory. It's a really cool! I think this is a great work! regards, Weongyo Jeong From owner-freebsd-mips@FreeBSD.ORG Wed Apr 14 08:59:32 2010 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65159106566B; Wed, 14 Apr 2010 08:59:32 +0000 (UTC) (envelope-from ray@dlink.ua) Received: from dlink.ua (smtp.dlink.ua [193.138.187.146]) by mx1.freebsd.org (Postfix) with ESMTP id 6768C8FC13; Wed, 14 Apr 2010 08:59:30 +0000 (UTC) Received: from gw ([192.168.10.10] helo=terran) by dlink.ua with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from ) id 1O1yNa-0006az-Q3; Wed, 14 Apr 2010 11:55:26 +0300 Date: Wed, 14 Apr 2010 12:00:54 +0300 From: Alexandr Rybalko To: Weongyo Jeong Message-Id: <20100414120054.0027fa56.ray@dlink.ua> In-Reply-To: <20100414004307.GH6799@weongyo> References: <20100409134113.6c3b52f1.ray@dlink.ua> <20100414004307.GH6799@weongyo> Organization: D-Link X-Mailer: Sylpheed 2.7.1 (GTK+ 2.16.6; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: mips@freebsd.org, Weongyo Jeong Subject: Re: BCM5354 status (D-Link DIR-320) X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 08:59:32 -0000 On Tue, 13 Apr 2010 17:43:07 -0700 Weongyo Jeong wrote: >> On Fri, Apr 09, 2010 at 01:41:13PM +0300, Alexandr Rybalko wrote: >> > Hi, >> > >> > If anyone is interested, completed work on a big chat DIR-320 with the >> > profile of IPSec Firmware available here >> > http://www.dlink.ua/files/products/ftp/pub/Router/DIR-320/firmware/A1/FreeBSD_D-Link_DIR-320_ipsec-router_9.0.2.img >> > Description read here http://wiki.ddteam.net/wiki.cgi?page=DIR-320+FreeBSD >> > Many thing's have not yet ready, but the device may >> > already serve as IPSec router. >> > And all this in the 4M flash memory. >> >> It's a really cool! I think this is a great work! >> >> regards, >> Weongyo Jeong >> Thanks. I think time to start porting of your bwn driver. :) Have You try to make driver spitted by different MAC chips, different radio chips source parts? I think it is necessary to make driver in separate parts, because Flash space very limited and device may not be extended via buses (like PCI). -- Alexandr Rybalko aka Alex RAY From owner-freebsd-mips@FreeBSD.ORG Wed Apr 14 23:11:27 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 706051065670 for ; Wed, 14 Apr 2010 23:11:27 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-yx0-f174.google.com (mail-yx0-f174.google.com [209.85.210.174]) by mx1.freebsd.org (Postfix) with ESMTP id 2BA258FC13 for ; Wed, 14 Apr 2010 23:11:26 +0000 (UTC) Received: by yxe4 with SMTP id 4so356788yxe.28 for ; Wed, 14 Apr 2010 16:11:26 -0700 (PDT) MIME-Version: 1.0 Sender: juli@clockworksquid.com Received: by 10.231.144.11 with HTTP; Wed, 14 Apr 2010 16:11:06 -0700 (PDT) From: Juli Mallett Date: Wed, 14 Apr 2010 16:11:06 -0700 X-Google-Sender-Auth: add4794465ab1f5c Received: by 10.150.250.42 with SMTP id x42mr7612562ybh.193.1271286686238; Wed, 14 Apr 2010 16:11:26 -0700 (PDT) Message-ID: To: freebsd-mips@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: My MIPS branch's patches for review. n32, n64 support; general cleanup X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 23:11:27 -0000 Hey folks, As many of you know I've been working on a branch, /user/jmallett/octeon, in Subversion for improving Octeon, new ABI, 64-bit and general MIPS support. I've reached the point where I have too many outstanding changes and am going to work on merging many of them in the near future. I've posted a diff here: http://people.freebsd.org/~jmallett/octeon-branch.diff And a summary of the changes here: http://people.freebsd.org/~jmallett/octeon-branch.txt If you have any specific questions or comments, please let me know! I'll probably update the patch and summary as things are merged or fixed. And if you wish to try out e.g. an n32 world and kernel from that patch or my branch, just set TARGET_ABI to n32 and use buildworld and buildkernel, and set TARGET_CPUTYPE to mips32 or mips64 or whatever is appropriate for your system. Thanks! Juli. From owner-freebsd-mips@FreeBSD.ORG Wed Apr 14 23:35:21 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BDA291065670; Wed, 14 Apr 2010 23:35:21 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 61D358FC08; Wed, 14 Apr 2010 23:35:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o3ENSThH055611; Wed, 14 Apr 2010 17:28:29 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 14 Apr 2010 17:28:43 -0600 (MDT) Message-Id: <20100414.172843.117603859823085328.imp@bsdimp.com> To: jmallett@freebsd.org From: "M. Warner Losh" In-Reply-To: References: X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-mips@freebsd.org Subject: Re: My MIPS branch's patches for review. n32, n64 support; general cleanup X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 23:35:21 -0000 In message: : And if you wish to try out e.g. an n32 world and kernel from that : patch or my branch, just set TARGET_ABI to n32 and use buildworld and : buildkernel, and set TARGET_CPUTYPE to mips32 or mips64 or whatever is : appropriate for your system. Just a heads up. Don't get too used to TARGET_ABI... That bit of the branch will almost certainly change when I integrate in the tbemd branch, which changes how we specify what we build. Warner From owner-freebsd-mips@FreeBSD.ORG Wed Apr 14 23:35:22 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4533B1065674; Wed, 14 Apr 2010 23:35:22 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 069FA8FC0A; Wed, 14 Apr 2010 23:35:21 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o3ENSqNV055634; Wed, 14 Apr 2010 17:28:52 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 14 Apr 2010 17:29:05 -0600 (MDT) Message-Id: <20100414.172905.665218485416618752.imp@bsdimp.com> To: jmallett@freebsd.org From: "M. Warner Losh" In-Reply-To: References: X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-mips@freebsd.org Subject: Re: My MIPS branch's patches for review. n32, n64 support; general cleanup X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Apr 2010 23:35:22 -0000 In message: Juli Mallett writes: : Hey folks, : : As many of you know I've been working on a branch, : /user/jmallett/octeon, in Subversion for improving Octeon, new ABI, : 64-bit and general MIPS support. I've reached the point where I have : too many outstanding changes and am going to work on merging many of : them in the near future. I've posted a diff here: : : http://people.freebsd.org/~jmallett/octeon-branch.diff : : And a summary of the changes here: : : http://people.freebsd.org/~jmallett/octeon-branch.txt : : If you have any specific questions or comments, please let me know! : I'll probably update the patch and summary as things are merged or : fixed. Woot! Can't wait for it. Warner From owner-freebsd-mips@FreeBSD.ORG Sat Apr 17 22:40:48 2010 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0E3BC106564A for ; Sat, 17 Apr 2010 22:40:48 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-pz0-f201.google.com (mail-pz0-f201.google.com [209.85.222.201]) by mx1.freebsd.org (Postfix) with ESMTP id C347F8FC1B for ; Sat, 17 Apr 2010 22:40:47 +0000 (UTC) Received: by pzk39 with SMTP id 39so2644964pzk.7 for ; Sat, 17 Apr 2010 15:40:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:received:message-id :subject:from:to:cc:content-type; bh=wYd59MN1cDTmARnCx0Lr/DvCvT7d5EbfRUQNWzZgcPo=; b=VOOBOnqK6ZgTcR6vcf1mzvFHcNO6OKXRK+lQyuh1H6Y7xjPSrakSm0JNpXXIuFF8k8 J8As3N6J0XmTEuyVzhpjrMOSwN5Y89oDXNqZQbh9d6VDcjoC+ht3W9E3hlwGDMjTpvLK T6X/D530HNyMQ1QDcarPY7ttWXDmwFZ6jzYBY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=Jv2tnS65Nyyh2zgERg7NdqYGov9g29nMi6GkXHU6bcSKM1MKc2iC2jTyar4CYoJuPb dXo5980euz8Kil96/FOzY+enrdwuKYolhyY2oyrL/5n+sb//u2mdwky1f9/fxD4IMBNG blTcKUhmSyqaGg0viLUtul0DGcOTRgS4uOdqE= MIME-Version: 1.0 Received: by 10.141.29.15 with HTTP; Sat, 17 Apr 2010 15:40:47 -0700 (PDT) Date: Sun, 18 Apr 2010 04:10:47 +0530 Received: by 10.140.58.10 with SMTP id g10mr932543rva.85.1271544047229; Sat, 17 Apr 2010 15:40:47 -0700 (PDT) Message-ID: From: "C. Jayachandran" To: Randall Stewart Content-Type: multipart/mixed; boundary=001636b2be3f405cb90484766b03 Cc: freebsd-mips@freebsd.org Subject: SMP support for XLR processors. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Apr 2010 22:40:48 -0000 --001636b2be3f405cb90484766b03 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I've a set of initial patches to enable SMP for RMI processors. It comes up in multi-user with 32 CPUs. =A0I could do buildworld before I updated to HEAD - with head there is a hang during buildworld which I'm looking at, but I think the initial work can be checked in. Neel, can you have a look at the first two patches - one is to enable ULE scheduler and the second one is to move platform_init_ap to slightly later in the initialization sequence. The patches are : 1. mips-ule-support.patch - Enable ULE scheduler for MIPS 2. mips-smp-move-platform.patch - We need a hook to setup message ring and its interrupts, we use platform_init_ap now, and move it be called later for XLR 3. rmi-prid.patch Add RMI processor ID prints - right now it prints unknown processor. 4. rmi-pcib-fix.patch XLR pci bridge should be off the IODI bus, currently it is off the nexus bus which will cause issue when bus_setup_intr on nexus is called 5. cleanup-reorg-cpuid-rge-kx.patch This set has a many changes rolled up: =A0- clean up rge driver, remove unused code paths and commented code (long way to go still) =A0- xlr_cpu_id(), xlr_core_id() and xlr_thr_id() updated and usage updated =A0- fix a bug - we cannot use MIPS_PHYS_TO_KSEG0 on physical addresses here, I have made changes for using XKPHYS to do the same process. =A0- the KX bit is enabled and interrupts are disabled before the physical memory is read, to avoid the KX bit setting from affecting other code. - move message ring code to on_chip.c from xlr_machdep.c, now all message ring code is in on_chip.c 6. rmi-xlr-smp.patch SMP Support for XLR - mpwait.S added to get the other CPUs out of bootloader code at startup. - SMP platform related functions. - disable shared TLB code for SMP - since threads have different mappings. The patches are also available at http://sites.google.com/site/cjayachandran/files Enabling all 32 threads will need a minor fix in the SMP code, see the patch subr_smp-fix.patch at the same place. Regards, JC. --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="mips-ule-support.patch" Content-Disposition: attachment; filename="mips-ule-support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503ozq0 SW5kZXg6IHN5cy9rZXJuL3NjaGVkX3VsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9rZXJuL3NjaGVk X3VsZS5jCShyZXZpc2lvbiAyMDY3MzUpCisrKyBzeXMva2Vybi9zY2hlZF91bGUuYwkod29ya2lu ZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQAogI2luY2x1ZGUgPG1hY2hpbmUvY3B1Lmg+CiAjaW5j bHVkZSA8bWFjaGluZS9zbXAuaD4KIAotI2lmIGRlZmluZWQoX19zcGFyYzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCisjaWYgZGVmaW5lZChfX3NwYXJjNjRfXykKICNlcnJvciAiVGhpcyBhcmNo aXRlY3R1cmUgaXMgbm90IGN1cnJlbnRseSBjb21wYXRpYmxlIHdpdGggVUxFIgogI2VuZGlmCiAK SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvc21wLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvaW5j bHVkZS9zbXAuaAkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMvaW5jbHVkZS9zbXAuaAko d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2RlZmluZQlJUElfQVNUCQkJMHgwMDA0 CiAjZGVmaW5lCUlQSV9TVE9QCQkweDAwMDgKICNkZWZpbmUJSVBJX1NUT1BfSEFSRAkJMHgwMDA4 CisjZGVmaW5lCUlQSV9QUkVFTVBUCQkweDAwMTAKIAogI2lmbmRlZiBMT0NPUkUKIApJbmRleDog c3lzL21pcHMvbWlwcy9tcF9tYWNoZGVwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvbWlwcy9t cF9tYWNoZGVwLmMJKHJldmlzaW9uIDIwNjczNSkKKysrIHN5cy9taXBzL21pcHMvbXBfbWFjaGRl cC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNiArMTQxLDEwIEBACiAJCQlhdG9taWNfY2xlYXJf aW50KCZzdG9wcGVkX2NwdXMsIGNwdW1hc2spOwogCQkJQ1RSMChLVFJfU01QLCAiSVBJX1NUT1Ag KHJlc3RhcnQpIik7CiAJCQlicmVhazsKKwkJY2FzZSBJUElfUFJFRU1QVDoKKwkJCUNUUjEoS1RS X1NNUCwgIiVzOiBJUElfUFJFRU1QVCIsIF9fZnVuY19fKTsKKwkJCXNjaGVkX3ByZWVtcHQoY3Vy dGhyZWFkKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJcGFuaWMoIlVua25vd24gSVBJIDB4 JTB4IG9uIGNwdSAlZCIsIGlwaSwgY3VyY3B1KTsKIAkJfQo= --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="mips-smp-move-platform.patch" Content-Disposition: attachment; filename="mips-smp-move-platform.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503rlm1 SW5kZXg6IHN5cy9taXBzL21pcHMvbXBib290LlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvbWlw cy9tcGJvb3QuUwkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMvbWlwcy9tcGJvb3QuUwko d29ya2luZyBjb3B5KQpAQCAtNzYsOSArNzYsMTAgQEAKIAogCVBUUl9MQQlncCwgX0NfTEFCRUwo X2dwKQogCisjaWZuZGVmIFRBUkdFVF9YTFJfWExTCiAJamFsCXBsYXRmb3JtX2luaXRfYXAKIAlt b3ZlCWEwLCBzMAotCisjZW5kaWYKIAlqYWwJc21wX2luaXRfc2Vjb25kYXJ5CiAJbW92ZQlhMCwg czAKIApJbmRleDogc3lzL21pcHMvbWlwcy9tcF9tYWNoZGVwLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz L21pcHMvbWlwcy9tcF9tYWNoZGVwLmMJKHJldmlzaW9uIDIwNjczNSkKKysrIHN5cy9taXBzL21p cHMvbXBfbWFjaGRlcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yMzQsNyArMjM4LDkgQEAKIHZvaWQK IHNtcF9pbml0X3NlY29uZGFyeSh1X2ludDMyX3QgY3B1aWQpCiB7CisjaWZuZGVmIFRBUkdFVF9Y TFJfWExTCiAJaW50IGlwaV9pbnRfbWFzaywgY2xvY2tfaW50X21hc2s7CisjZW5kaWYKIAogCS8q IFRMQiAqLwogCU1pcHNfU2V0V0lSRUQoMCk7CkBAIC0yODgsMTIgKzI5NCwxNiBAQAogCXdoaWxl IChzbXBfc3RhcnRlZCA9PSAwKQogCQk7IC8qIG5vdGhpbmcgKi8KIAorI2lmbmRlZiBUQVJHRVRf WExSX1hMUwogCS8qCiAJICogVW5tYXNrIHRoZSBjbG9jayBhbmQgaXBpIGludGVycnVwdHMuCiAJ ICovCiAJY2xvY2tfaW50X21hc2sgPSBoYXJkX2ludF9tYXNrKDUpOwogCWlwaV9pbnRfbWFzayA9 IGhhcmRfaW50X21hc2socGxhdGZvcm1faXBpX2ludHJudW0oKSk7CiAJc2V0X2ludHJfbWFzayhB TExfSU5UX01BU0sgJiB+KGlwaV9pbnRfbWFzayB8IGNsb2NrX2ludF9tYXNrKSk7CisjZWxzZQor CXBsYXRmb3JtX2luaXRfYXAoY3B1aWQpOworI2VuZGlmCiAKIAkvKgogCSAqIEJvb3RzdHJhcCB0 aGUgY29tcGFyZSByZWdpc3Rlci4K --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="rmi-prid.patch" Content-Disposition: attachment; filename="rmi-prid.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503t7w2 SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvbG9jb3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMv aW5jbHVkZS9sb2NvcmUuaAkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMvaW5jbHVkZS9s b2NvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQAogCQkJCS8qCTB4MDkJdW5h bm5vdW5jZWQgKi8KIAkJCQkvKgkweDBhCXVuYW5ub3VuY2VkICovCiAjZGVmaW5lICAgICBNSVBT X1BSSURfQ0lEX0xFWFJBCQkweDBiCS8qIExleHJhICovCisjZGVmaW5lICAgICBNSVBTX1BSSURf Q0lEX1JNSQkJMHgwYwkvKiBSTUkgKi8KICNkZWZpbmUgICAgIE1JUFNfUFJJRF9DSURfQ0FWSVVN CTB4MGQJLyogQ2F2aXVtICovCiAjZGVmaW5lIE1JUFNfUFJJRF9DT1BUUyh4KQkoKCh4KSA+PiAy NCkgJiAweDAwZmYpCS8qIENvbXBhbnkgT3B0aW9ucyAqLwogCkluZGV4OiBzeXMvbWlwcy9taXBz L2NwdS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL21pcHMvY3B1LmMJKHJldmlzaW9uIDIwNjcz NSkKKysrIHN5cy9taXBzL21pcHMvY3B1LmMJKHdvcmtpbmcgY29weSkKQEAgLTE3OCw2ICsxNzgs OSBAQAogCWNhc2UgTUlQU19QUklEX0NJRF9MRVhSQToKIAkJcHJpbnRmKCJMZXhyYSIpOwogCQli cmVhazsKKwljYXNlIE1JUFNfUFJJRF9DSURfUk1JOgorCQlwcmludGYoIlJNSSIpOworCQlicmVh azsKIAljYXNlIE1JUFNfUFJJRF9DSURfQ0FWSVVNOgogCQlwcmludGYoIkNhdml1bSIpOwogCQli cmVhazsK --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="rmi-pcib-fix.patch" Content-Disposition: attachment; filename="rmi-pcib-fix.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503tvt3 SW5kZXg6IHN5cy9taXBzL3JtaS94bHJfcGNpLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvcm1p L3hscl9wY2kuYwkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMvcm1pL3hscl9wY2kuYwko d29ya2luZyBjb3B5KQpAQCAtNjM2LDQgKzYzNiw0IEBACiAJc2l6ZW9mKHN0cnVjdCB4bHJfcGNp Yl9zb2Z0YyksCiB9OwogCi1EUklWRVJfTU9EVUxFKHBjaWIsIG5leHVzLCB4bHJfcGNpYl9kcml2 ZXIsIHBjaWJfZGV2Y2xhc3MsIDAsIDApOworRFJJVkVSX01PRFVMRShwY2liLCBpb2RpLCB4bHJf cGNpYl9kcml2ZXIsIHBjaWJfZGV2Y2xhc3MsIDAsIDApOwpJbmRleDogc3lzL21pcHMvcm1pL2lv ZGkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9ybWkvaW9kaS5jCShyZXZpc2lvbiAyMDY3MzUp CisrKyBzeXMvbWlwcy9ybWkvaW9kaS5jCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNiArMjIzLDcg QEAKIAkgKi8KIAlkZXZpY2VfYWRkX2NoaWxkKGRldiwgInVhcnQiLCAwKTsKIAlkZXZpY2VfYWRk X2NoaWxkKGRldiwgInhscl9pMmMiLCAwKTsKKwlkZXZpY2VfYWRkX2NoaWxkKGRldiwgInBjaWIi LCAwKTsKIAogCWlmICh4bHJfYm9hcmRfaW5mby51c2IpCiAJCWRldmljZV9hZGRfY2hpbGQoZGV2 LCAiZWhjaSIsIDApOwo= --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="cleanup-reorg-cpuid-rge-kx.patch" Content-Disposition: attachment; filename="cleanup-reorg-cpuid-rge-kx.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503uif4 SW5kZXg6IHN5cy9taXBzL3JtaS9kZXYveGxyL3JnZS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBz L3JtaS9kZXYveGxyL3JnZS5jCShyZXZpc2lvbiAyMDY3MzUpCisrKyBzeXMvbWlwcy9ybWkvZGV2 L3hsci9yZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsNyBAQAogI2luY2x1ZGUgPG1h Y2hpbmUvcGFyYW0uaD4KICNpbmNsdWRlIDxtYWNoaW5lL2ludHJfbWFjaGRlcC5oPgogI2luY2x1 ZGUgPG1hY2hpbmUvY2xvY2suaD4JLyogZm9yIERFTEFZICovCisjaW5jbHVkZSA8bWFjaGluZS9j cHVyZWdzLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9idXMuaD4JLyogKi8KICNpbmNsdWRlIDxtYWNo aW5lL3Jlc291cmNlLmg+CiAjaW5jbHVkZSA8bWlwcy9ybWkvaW50ZXJydXB0Lmg+CkBAIC0xMTIs NyArMTEzLDYgQEAKIE1PRFVMRV9ERVBFTkQocmdlLCBtaWlidXMsIDEsIDEsIDEpOwogCiAvKiAj ZGVmaW5lIERFQlVHICovCi0vKiNkZWZpbmUgUlhfQ09QWSAqLwogCiAjZGVmaW5lIFJHRV9UWF9U SFJFU0hPTEQgMTAyNAogI2RlZmluZSBSR0VfVFhfUV9TSVpFIDEwMjQKQEAgLTIwNCwxMCArMjA0 LDE4IEBACiAJcmV0dXJuIHZhbHVlOwogfQogCitzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCAK K3hscl9lbmFibGVfa3godm9pZCkKK3sKKwl1aW50MzJfdCBzciA9IG1pcHNfcmRfc3RhdHVzKCk7 CisKKwltaXBzX3dyX3N0YXR1cygoc3IgJiB+TUlQU19TUl9JTlRfSUUpIHwgTUlQU19TUl9LWCk7 CisJcmV0dXJuIHNyOworfQorCiAvKiAjZGVmaW5lIG1hY19zdGF0c19hZGQoeCwgdmFsKSAoeyh4 KSArPSAodmFsKTt9KSAqLwogI2RlZmluZSBtYWNfc3RhdHNfYWRkKHgsIHZhbCkgbGRhZGRfd3Uo dmFsLCAmeCkKIAotCiAjZGVmaW5lIFhMUl9NQVhfQ09SRSA4CiAjZGVmaW5lIFJHRV9MT0NLX0lO SVQoX3NjLCBfbmFtZSkgXAogICBtdHhfaW5pdCgmKF9zYyktPnJnZV9tdHgsIF9uYW1lLCBNVFhf TkVUV09SS19MT0NLLCBNVFhfREVGKQpAQCAtMzMyLDU2ICszNDAsNiBAQAogI2RlZmluZSBTVFIo eCkgX19TVFIoeCkKICNlbmRpZgogCi0jZGVmaW5lIFhLUEhZUyAgICAgICAgMHg4MDAwMDAwMDAw MDAwMDAwCi0vKiAtLSBObyBsb25nZXIgbmVlZGVkIFJSUwotc3RhdGljIF9faW5saW5lX18gdWlu dDMyX3QKLWx3XzQwYml0X3BoeXModWludDY0X3QgcGh5cywgaW50IGNjYSkKLXsKLQl1aW50NjRf dCBhZGRyOwotCXVpbnQzMl90IHZhbHVlID0gMDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0J YWRkciA9IFhLUEhZUyB8ICgodWludDY0X3QpIGNjYSA8PCA1OSkgfCAocGh5cyAmIDB4ZmZmZmZm ZmZmY1VMTCk7Ci0KLQllbmFibGVfS1goZmxhZ3MpOwotCV9fYXNtX18gX192b2xhdGlsZV9fKAot CSAgICAgICAgICAgICIuc2V0IHB1c2hcbiIKLQkgICAgICAgICAgICAiLnNldCBub3Jlb3JkZXJc biIKLQkgICAgICAgICAgICAiLnNldCBtaXBzNjRcbiIKLQkgICAgICAgICAgICAibHcgICAgJTAs IDAoJTEpIFxuIgotCSAgICAgICAgICAgICIuc2V0IHBvcFxuIgotCSAgICA6ICAgICAgICI9ciIo dmFsdWUpCi0JICAgIDogICAgICAgInIiKGFkZHIpKTsKLQotCWRpc2FibGVfS1goZmxhZ3MpOwot CXJldHVybiB2YWx1ZTsKLX0KLSovCi0vKiAtLSBObyBsb25nZXIgdXNlZCBSUlMKLXN0YXRpYyBf X2lubGluZV9fIHVpbnQ2NF90Ci1sZF80MGJpdF9waHlzKHVpbnQ2NF90IHBoeXMsIGludCBjY2Ep Ci17Ci0JdWludDY0X3QgYWRkcjsKLQl1aW50NjRfdCB2YWx1ZSA9IDA7Ci0JdW5zaWduZWQgbG9u ZyBmbGFnczsKLQotCi0JYWRkciA9IFhLUEhZUyB8ICgodWludDY0X3QpIGNjYSA8PCA1OSkgfCAo cGh5cyAmIDB4ZmZmZmZmZmZmY1VMTCk7Ci0JZW5hYmxlX0tYKGZsYWdzKTsKLQlfX2FzbV9fIF9f dm9sYXRpbGVfXygKLQkgICAgICAgICAgICAiLnNldCBwdXNoXG4iCi0JICAgICAgICAgICAgIi5z ZXQgbm9yZW9yZGVyXG4iCi0JICAgICAgICAgICAgIi5zZXQgbWlwczY0XG4iCi0JICAgICAgICAg ICAgImxkICAgICUwLCAwKCUxKSBcbiIKLQkgICAgICAgICAgICAiLnNldCBwb3BcbiIKLQkgICAg OiAgICAgICAiPXIiKHZhbHVlKQotCSAgICA6ICAgICAgICJyIihhZGRyKSk7Ci0KLQlkaXNhYmxl X0tYKGZsYWdzKTsKLQlyZXR1cm4gdmFsdWU7Ci19Ci0qLwotCiB2b2lkICp4bHJfdHhfcmluZ19t ZW07CiAKIHN0cnVjdCB0eF9kZXNjX25vZGUgewpAQCAtNDQ5LDcgKzQwNyw3IEBACiAKIAlmb3Ig KGkgPSAwOyBpIDwgMzI7IGkrKykgewogCQlpZiAoY3B1bWFzayAmICgxIDw8IGkpKSB7Ci0JCQlj cHUgPSBjcHVfbHRvcF9tYXBbaV07CisJCQljcHUgPSBpOwogCQkJaWYgKCFhY3RpdmVfY29yZVtj cHUgLyA0XSkgewogCQkJCWFjdGl2ZV9jb3JlW2NwdSAvIDRdID0gMTsKIAkJCQl4bHJfdG90YWxf YWN0aXZlX2NvcmUrKzsKQEAgLTUwNyw3ICs0NjUsNyBAQAogewogCXN0cnVjdCB0eF9kZXNjX25v ZGUgKm5vZGU7CiAJc3RydWN0IHAyZF90eF9kZXNjICp0eF9kZXNjID0gTlVMTDsKLQlpbnQgY3B1 ID0geGxyX2NwdV9pZCgpOworCWludCBjcHUgPSB4bHJfY29yZV9pZCgpOwogCiAJbXR4X2xvY2tf c3BpbigmdHhfZGVzY19sb2NrW2NwdV0pOwogCW5vZGUgPSBUQUlMUV9GSVJTVCgmdHhfZnJhZ19k ZXNjW2NwdV0pOwpAQCAtNTI3LDcgKzQ4NSw3IEBACiBmcmVlX3AyZF9kZXNjKHN0cnVjdCBwMmRf dHhfZGVzYyAqdHhfZGVzYykKIHsKIAlzdHJ1Y3QgdHhfZGVzY19ub2RlICpub2RlOwotCWludCBj cHUgPSB4bHJfY3B1X2lkKCk7CisJaW50IGNwdSA9IHhscl9jb3JlX2lkKCk7CiAKIAltdHhfbG9j a19zcGluKCZ0eF9kZXNjX2xvY2tbY3B1XSk7CiAJbm9kZSA9IFRBSUxRX0ZJUlNUKCZmcmVlX3R4 X2ZyYWdfZGVzY1tjcHVdKTsKQEAgLTU1Myw3ICs1MTEsNyBAQAogCXZtX29mZnNldF90IHRhZGRy OwogCXVpbnQ2NF90IGZyX3N0aWQ7CiAKLQlmcl9zdGlkID0gKHhscl9jcHVfaWQoKSA8PCAzKSAr IHhscl90aHJfaWQoKSArIDQ7CisJZnJfc3RpZCA9ICh4bHJfY29yZV9pZCgpIDw8IDMpICsgeGxy X3Rocl9pZCgpICsgNDsKIAogCWlmICh0eF9kZXNjID09IE5VTEwpCiAJCXJldHVybiAxOwpAQCAt NjIwLDIxICs1NzgsNiBAQAogc3RhdGljIHZvaWQKIHJlbGVhc2VfdHhfZGVzYyhzdHJ1Y3QgbXNn cm5nX21zZyAqbXNnLCBpbnQgcmVsX2J1ZikKIHsKLQkvKgotCSAqIE9MRCBjb2RlOiB2bV9wYWRk cl90IHBhZGRyID0gbXNnLT5tc2cwICYgMHhmZmZmZmZmZmZmVUxMOwotCSAqIHVpbnQ2NF90IHRl bXA7IHN0cnVjdCBwMmRfdHhfZGVzYyAqdHhfZGVzYzsgc3RydWN0IG1idWYgKm07Ci0JICogCi0J ICogcGFkZHIgKz0gKFhMUl9NQVhfVFhfRlJBR1MgKiBzaXplb2YodWludDY0X3QpKTsgKioqIElu IG8zMiB3ZSB3aWxsCi0JICogY3Jhc2ggaGVyZSAqKioqKiogdGVtcCA9IGxkXzQwYml0X3BoeXMo cGFkZHIsIDMpOyB0eF9kZXNjID0KLQkgKiAoc3RydWN0IHAyZF90eF9kZXNjICopKCh2bV9vZmZz ZXRfdCl0ZW1wKTsKLQkgKiAKLQkgKiBpZiAocmVsX2J1ZikgeyBwYWRkciArPSBzaXplb2YodWlu dDY0X3QpOwotCSAqIAotCSAqIHRlbXAgPSBsZF80MGJpdF9waHlzKHBhZGRyLCAzKTsKLQkgKiAK LQkgKiBtID0gKHN0cnVjdCBtYnVmICopKCh2bV9vZmZzZXRfdCl0ZW1wKTsgbV9mcmVlbShtKTsg fSBwcmludGYoIkNhbGwKLQkgKiBmcmVfcDJkX2Rlc2NcbiIpOyBmcmVlX3AyZF9kZXNjKHR4X2Rl c2MpOwotCSAqLwogCXN0cnVjdCBwMmRfdHhfZGVzYyAqdHhfZGVzYywgKmNoa19hZGRyOwogCXN0 cnVjdCBtYnVmICptOwogCkBAIC02NTIsNTMgKzU5NSw3IEBACiAJZnJlZV9wMmRfZGVzYyh0eF9k ZXNjKTsKIH0KIAotI2lmZGVmIFJYX0NPUFkKLSNkZWZpbmUgUkdFX01BWF9OVU1fREVTQyAoNiAq IE1BWF9OVU1fREVTQykKLXVpbnQ4X3QgKnJnZV9yeF9idWZmZXJzW1JHRV9NQVhfTlVNX0RFU0Nd Owotc3RhdGljIHN0cnVjdCBtdHggcmdlX3J4X210eDsKLWludCBnX3J4X2J1Zl9oZWFkOwogCi1z dGF0aWMgdm9pZAotaW5pdF9yeF9idWYodm9pZCkKLXsKLQlpbnQgaTsKLQl1aW50OF90ICpidWYs ICpzdGFydDsKLQl1aW50MzJfdCBzaXplLCAqcHRyOwotCi0JbXR4X2luaXQoJnJnZV9yeF9tdHgs ICJ4bHIgcnhfZGVzYyIsIE5VTEwsIE1UWF9TUElOKTsKLQotCXNpemUgPSAoUkdFX01BWF9OVU1f REVTQyAqIChNQVhfRlJBTUVfU0laRSArIFhMUl9DQUNIRUxJTkVfU0laRSkpOwotCi0Jc3RhcnQg PSAodWludDhfdCAqKSBjb250aWdtYWxsb2Moc2l6ZSwgTV9ERVZCVUYsIE1fTk9XQUlUIHwgTV9a RVJPLAotCSAgICAwLCAweGZmZmZmZmZmLCBYTFJfQ0FDSEVMSU5FX1NJWkUsIDApOwotCWlmIChz dGFydCA9PSBOVUxMKQotCQlwYW5pYygiTk8gUlggQlVGRkVSUyIpOwotCWJ1ZiA9IHN0YXJ0Owot CXNpemUgPSAoTUFYX0ZSQU1FX1NJWkUgKyBYTFJfQ0FDSEVMSU5FX1NJWkUpOwotCWZvciAoaSA9 IDA7IGkgPCBSR0VfTUFYX05VTV9ERVNDOyBpKyspIHsKLQkJYnVmID0gc3RhcnQgKyAoaSAqIHNp emUpOwotCQlwdHIgPSAodWludDMyX3QgKikgYnVmOwotCQkqcHRyID0gKHVpbnQzMl90KSBidWY7 Ci0JCXJnZV9yeF9idWZmZXJzW2ldID0gYnVmICsgWExSX0NBQ0hFTElORV9TSVpFOwotCX0KLX0K LQotc3RhdGljIHZvaWQgKgotZ2V0X3J4X2J1Zih2b2lkKQotewotCXZvaWQgKnB0ciA9IE5VTEw7 Ci0KLQltdHhfbG9ja19zcGluKCZyZ2VfcnhfbXR4KTsKLQlpZiAoZ19yeF9idWZfaGVhZCA8IFJH RV9NQVhfTlVNX0RFU0MpIHsKLQkJcHRyID0gKHZvaWQgKilyZ2VfcnhfYnVmZmVyc1tnX3J4X2J1 Zl9oZWFkXTsKLQkJZ19yeF9idWZfaGVhZCsrOwotCX0KLQltdHhfdW5sb2NrX3NwaW4oJnJnZV9y eF9tdHgpOwotCXJldHVybiBwdHI7Ci19Ci0KLSNlbmRpZgotCiBzdGF0aWMgc3RydWN0IG1idWYg KgogZ2V0X21idWYodm9pZCkKIHsKQEAgLTcxNiwyMyArNjEzLDE2IEBACiBmcmVlX2J1Zih2bV9w YWRkcl90IHBhZGRyKQogewogCXN0cnVjdCBtYnVmICptOwotCXVpbnQzMl90ICp0ZW1wOwotCXVp bnQzMl90IG1hZywgdW07CisJdWludDMyX3QgbWFnLCB1bSwgc3I7CiAKLQkvKgotCSAqIFRoaXMg d2lsbCBjcmFzaCBJIHRoaW5rLiBSUlMgdGVtcCA9IGx3XzQwYml0X3BoeXMoKHBhZGRyIC0KLQkg KiBYTFJfQ0FDSEVMSU5FX1NJWkUpLCAzKTsgbSA9IChzdHJ1Y3QgbWJ1ZiAqKXRlbXA7Ci0JICov Ci0JLyoKLQkgKiBUaGlzIGdldHMgdXMgYSBrc2VnMCBhZGRyZXNzIGZvciB0aGUgbWJ1Zi9tYWdp YyBvbiB0aGUgcmluZyBidXQKLQkgKiB3ZSBuZWVkIHRvIGdldCB0aGUgdmEgdG8gZnJlZSB0aGUg bWJ1Zi4gVGhpcyBpcyBzdG9yZWQgYXQgKnRlbXA7Ci0JICovCi0JdGVtcCA9ICh1aW50MzJfdCAq KSBNSVBTX1BIWVNfVE9fS1NFRzAocGFkZHIgLSBYTFJfQ0FDSEVMSU5FX1NJWkUpOwotCXVtID0g dGVtcFswXTsKLQltYWcgPSB0ZW1wWzFdOworCXNyID0geGxyX2VuYWJsZV9reCgpOworCXVtID0g eGxyX3BhZGRyX2x3KHBhZGRyIC0gWExSX0NBQ0hFTElORV9TSVpFKTsKKwltYWcgPSB4bHJfcGFk ZHJfbHcocGFkZHIgLSBYTFJfQ0FDSEVMSU5FX1NJWkUgKyBzaXplb2YodWludDMyX3QpKTsKKwlt aXBzX3dyX3N0YXR1cyhzcik7CisKIAlpZiAobWFnICE9IDB4ZjAwYmFkKSB7Ci0JCXByaW50Zigi U29tZXRoaW5nIGlzIHdyb25nIGtzZWc6JXAgZm91bmQgbWFnOiV4IG5vdCAweGYwMGJhZFxuIiwK LQkJICAgIHRlbXAsIG1hZyk7CisJCXByaW50ZigiU29tZXRoaW5nIGlzIHdyb25nIGtzZWc6JWx4 IGZvdW5kIG1hZzoleCBub3QgMHhmMDBiYWRcbiIsCisJCSAgICAodV9sb25nKXBhZGRyLCBtYWcp OwogCQlyZXR1cm47CiAJfQogCW0gPSAoc3RydWN0IG1idWYgKil1bTsKQEAgLTc0MywxOSArNjMz LDEzIEBACiBzdGF0aWMgdm9pZCAqCiBnZXRfYnVmKHZvaWQpCiB7Ci0jaWZkZWYgUlhfQ09QWQot CXJldHVybiBnZXRfcnhfYnVmKCk7Ci0jZWxzZQogCXN0cnVjdCBtYnVmICptX25ldyA9IE5VTEw7 Ci0KKwl1bnNpZ25lZCBpbnQgKm1kOwogI2lmZGVmIElOVkFSSUFOVFMKIAl2bV9wYWRkcl90IHRl bXAxLCB0ZW1wMjsKLQogI2VuZGlmCi0JdW5zaWduZWQgaW50ICptZDsKIAogCW1fbmV3ID0gZ2V0 X21idWYoKTsKLQogCWlmIChtX25ldyA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIApAQCAtNzY1 LDggKzY0OSw2IEBACiAJbWRbMV0gPSAweGYwMGJhZDsKIAltX2FkaihtX25ldywgWExSX0NBQ0hF TElORV9TSVpFKTsKIAotCi0JLyogcmV0dXJuICh2b2lkICopbV9uZXc7ICovCiAjaWZkZWYgSU5W QVJJQU5UUwogCXRlbXAxID0gdnRvcGh5cygodm1fb2Zmc2V0X3QpbV9uZXctPm1fZGF0YSk7CiAJ dGVtcDIgPSB2dG9waHlzKCh2bV9vZmZzZXRfdCltX25ldy0+bV9kYXRhICsgMTUzNik7CkBAIC03 NzQsNyArNjU2LDYgQEAKIAkJcGFuaWMoIkFMTE9DRUQgQlVGRkVSIElTIE5PVCBDT05USUdVT1VT XG4iKTsKICNlbmRpZgogCXJldHVybiAodm9pZCAqKW1fbmV3LT5tX2RhdGE7Ci0jZW5kaWYKIH0K IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKQEAgLTgyNiwxMyArNzA3LDEzIEBACiB7CiAJaW50IHN0aWQgPSBw cml2LT5yZnJidWNrZXQ7CiAJc3RydWN0IG1zZ3JuZ19tc2cgbXNnOwotCWludCB2Y3B1ID0gKHhs cl9jcHVfaWQoKSA8PCAyKSArIHhscl90aHJfaWQoKTsKKwlpbnQgdmNwdSA9IHhscl9jcHVfaWQo KTsKIAogCW1hY19tYWtlX2Rlc2NfcmZyKCZtc2csIGFkZHIpOwogCiAJLyogU2VuZCB0aGUgcGFj a2V0IHRvIE1BQyAqLwotCWRiZ19tc2coIm1hY18lZDogU2VuZGluZyBmcmVlIHBhY2tldCAlbGx4 IHRvIHN0aWQgJWRcbiIsCi0JICAgIHByaXYtPmluc3RhbmNlLCBhZGRyLCBzdGlkKTsKKwlkYmdf bXNnKCJtYWNfJWQ6IFNlbmRpbmcgZnJlZSBwYWNrZXQgJWx4IHRvIHN0aWQgJWRcbiIsCisJICAg IHByaXYtPmluc3RhbmNlLCAodV9sb25nKWFkZHIsIHN0aWQpOwogCWlmIChwcml2LT50eXBlID09 IFhMUl9YR01BQykgewogCQl3aGlsZSAobWVzc2FnZV9zZW5kKDEsIE1TR1JOR19DT0RFX1hHTUFD LCBzdGlkLCAmbXNnKSk7CiAJfSBlbHNlIHsKQEAgLTEwODgsNyArOTY5LDcgQEAKIAogCWZvciAo aSA9IDA7IGkgPCAzMjsgaSsrKSB7CiAJCWlmIChjcHVtYXNrICYgKDEgPDwgaSkpIHsKLQkJCWNw dSA9IGNwdV9sdG9wX21hcFtpXTsKKwkJCWNwdSA9IGk7CiAJCQlidWNrZXQgPSAoKGNwdSA+PiAy KSA8PCAzKTsKIAkJCS8vfChjcHUgJiAweDAzKTsKIAkJCWJ1Y2tldF9tYXAgfD0gKDFVTEwgPDwg YnVja2V0KTsKQEAgLTE2MTMsMTAgKzE0OTQsNyBAQAogc3RhdGljIHZvaWQKIG1hY19mcmluX3Jl cGxlbmlzaCh2b2lkICphcmdzIC8qIGlnbm9yZWQgKi8gKQogewotI2lmZGVmIFJYX0NPUFkKLQly ZXR1cm47Ci0jZWxzZQotCWludCBjcHUgPSB4bHJfY3B1X2lkKCk7CisJaW50IGNwdSA9IHhscl9j b3JlX2lkKCk7CiAJaW50IGRvbmUgPSAwOwogCWludCBpID0gMDsKIApAQCAtMTY4NSw3ICsxNTYz LDYgQEAKIAkJaWYgKGRvbmUgPT0gWExSX01BWF9NQUNTKQogCQkJYnJlYWs7CiAJfQotI2VuZGlm CiB9CiAKIHN0YXRpYyB2b2xhdGlsZSB1aW50MzJfdCBnX3R4X2ZybV90eF9vaz0wOwpAQCAtMTcx Niw4ICsxNTkzLDggQEAKIAlzdHJ1Y3QgcmdlX3NvZnRjICpzYyA9IE5VTEw7CiAJc3RydWN0IGRy aXZlcl9kYXRhICpwcml2ID0gMDsKIAlzdHJ1Y3QgaWZuZXQgKmlmcDsKLQlpbnQgY3B1ID0geGxy X2NwdV9pZCgpOwotCWludCB2Y3B1ID0gKGNwdSA8PCAyKSArIHhscl90aHJfaWQoKTsKKwlpbnQg dmNwdSA9IHhscl9jcHVfaWQoKTsKKwlpbnQgY3B1ID0geGxyX2NvcmVfaWQoKTsKIAogCWRiZ19t c2coIm1hYzogYnVja2V0PSVkLCBzaXplPSVkLCBjb2RlPSVkLCBzdGlkPSVkLCBtc2cwPSVsbHgg bXNnMT0lbGx4XG4iLAogCSAgICBidWNrZXQsIHNpemUsIGNvZGUsIHN0aWQsIG1zZy0+bXNnMCwg bXNnLT5tc2cxKTsKQEAgLTIwOTgsODAgKzE5NzUsMTggQEAKIHVpbnQzMl90IGdtYWNfcnhfZmFp bFszMl07CiB1aW50MzJfdCBnbWFjX3J4X3Bhc3NbMzJdOwogCi0jaWZkZWYgUlhfQ09QWQogc3Rh dGljIHZvaWQKIHJnZV9yeChzdHJ1Y3QgcmdlX3NvZnRjICpzYywgdm1fcGFkZHJfdCBwYWRkciwg aW50IGxlbikKIHsKLQkvKgotCSAqIHN0cnVjdCBtYnVmICptID0gKHN0cnVjdCBtYnVmICopKih1 bnNpZ25lZCBpbnQgKikoKGNoYXIgKilhZGRyIC0KLQkgKiBYTFJfQ0FDSEVMSU5FX1NJWkUpOwot CSAqLwogCXN0cnVjdCBtYnVmICptOwotCXZvaWQgKnB0cjsKLQl1aW50MzJfdCAqdGVtcDsKKwl1 aW50MzJfdCB0bSwgbWFnLCBzcjsKIAlzdHJ1Y3QgaWZuZXQgKmlmcCA9IHNjLT5yZ2VfaWZwOwot CXVuc2lnbmVkIGxvbmcgbXNncm5nX2ZsYWdzOwotCWludCBjcHUgPSBQQ1BVX0dFVChjcHVpZCk7 CiAKKwlzciA9IHhscl9lbmFibGVfa3goKTsKKwl0bSA9IHhscl9wYWRkcl9sdyhwYWRkciAtIFhM Ul9DQUNIRUxJTkVfU0laRSk7CisJbWFnID0geGxyX3BhZGRyX2x3KHBhZGRyIC0gWExSX0NBQ0hF TElORV9TSVpFICsgc2l6ZW9mKHVpbnQzMl90KSk7CisJbWlwc193cl9zdGF0dXMoc3IpOwogCi0J dGVtcCA9ICh1aW50MzJfdCAqKSBNSVBTX1BIWVNfVE9fS1NFRzAocGFkZHIgLSBYTFJfQ0FDSEVM SU5FX1NJWkUpOwotCi0JcHRyID0gKHZvaWQgKikodGVtcCArIFhMUl9DQUNIRUxJTkVfU0laRSk7 Ci0JbSA9IG1fZ2V0Y2woTV9ET05UV0FJVCwgTVRfREFUQSwgTV9QS1RIRFIpOwotCWlmIChtICE9 IE5VTEwpIHsKLQkJbS0+bV9sZW4gPSBtLT5tX3BrdGhkci5sZW4gPSBNQ0xCWVRFUzsKLQkJbV9j b3B5YmFjayhtLCAwLCBsZW4gKyBCWVRFX09GRlNFVCwgcHRyKTsKLQkJLyogYWxpZ24gdGhlIGRh dGEgKi8KLQkJbS0+bV9kYXRhICs9IEJZVEVfT0ZGU0VUOwotCQltLT5tX3BrdGhkci5sZW4gPSBt LT5tX2xlbiA9IGxlbjsKLQkJbS0+bV9wa3RoZHIucmN2aWYgPSBpZnA7Ci0JCWdtYWNfcnhfcGFz c1tjcHVdKys7Ci0JfSBlbHNlIHsKLQkJZ21hY19yeF9mYWlsW2NwdV0rKzsKLQl9Ci0JbXNncm5n X2FjY2Vzc19lbmFibGUobXNncm5nX2ZsYWdzKTsKLQl4bHJfbWFjX3NlbmRfZnIoJnNjLT5wcml2 LCBwYWRkciwgTUFYX0ZSQU1FX1NJWkUpOwotCW1zZ3JuZ19hY2Nlc3NfZGlzYWJsZShtc2dybmdf ZmxhZ3MpOwotCi0jaWZkZWYgRFVNUF9QQUNLRVRTCi0JewotCQlpbnQgaSA9IDA7Ci0JCXVuc2ln bmVkIGNoYXIgKmJ1ZiA9IChjaGFyICopbS0+bV9kYXRhOwotCi0JCXByaW50ZigiUnggUGFja2V0 OiBsZW5ndGg9JWRcbiIsIGxlbik7Ci0JCWZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7Ci0JCQlp ZiAoaSAmJiAoaSAlIDE2KSA9PSAwKQotCQkJCXByaW50ZigiXG4iKTsKLQkJCXByaW50ZigiJTAy eCAiLCBidWZbaV0pOwotCQl9Ci0JCXByaW50ZigiXG4iKTsKLQl9Ci0jZW5kaWYKLQotCi0JaWYg KG0pIHsKLQkJaWZwLT5pZl9pcGFja2V0cysrOwotCQkoKmlmcC0+aWZfaW5wdXQpIChpZnAsIG0p OwotCX0KLX0KLQotI2Vsc2UKLXN0YXRpYyB2b2lkCi1yZ2Vfcngoc3RydWN0IHJnZV9zb2Z0YyAq c2MsIHZtX3BhZGRyX3QgcGFkZHIsIGludCBsZW4pCi17Ci0JLyoKLQkgKiBzdHJ1Y3QgbWJ1ZiAq bSA9IChzdHJ1Y3QgbWJ1ZiAqKSoodW5zaWduZWQgaW50ICopKChjaGFyICopYWRkciAtCi0JICog WExSX0NBQ0hFTElORV9TSVpFKTsKLQkgKi8KLQlzdHJ1Y3QgbWJ1ZiAqbTsKLQl1aW50MzJfdCAq dGVtcCwgdG0sIG1hZzsKLQotCXN0cnVjdCBpZm5ldCAqaWZwID0gc2MtPnJnZV9pZnA7Ci0KLQot CXRlbXAgPSAodWludDMyX3QgKikgTUlQU19QSFlTX1RPX0tTRUcwKHBhZGRyIC0gWExSX0NBQ0hF TElORV9TSVpFKTsKLQl0bSA9IHRlbXBbMF07Ci0JbWFnID0gdGVtcFsxXTsKIAltID0gKHN0cnVj dCBtYnVmICopdG07CiAJaWYgKG1hZyAhPSAweGYwMGJhZCkgewogCQkvKiBzb21lYm9keSBlbHNl IHBhY2tldCBFcnJvciAtIEZJWE1FIGluIGludGlhbGl6YXRpb24gKi8KQEAgLTIyMDEsOCArMjAx Niw2IEBACiAJKCppZnAtPmlmX2lucHV0KSAoaWZwLCBtKTsKIH0KIAotI2VuZGlmCi0KIHN0YXRp YyB2b2lkCiByZ2VfaW50cih2b2lkICphcmcpCiB7CkBAIC0yMjY4LDggKzIwODEsOCBAQAogCWlu dCBwcmVwZW5kX3BrdCA9IDA7CiAJaW50IGkgPSAwOwogCXN0cnVjdCBwMmRfdHhfZGVzYyAqdHhf ZGVzYyA9IE5VTEw7Ci0JaW50IGNwdSA9IHhscl9jcHVfaWQoKTsKLQl1aW50MzJfdCB2Y3B1ID0g KGNwdSA8PCAyKSArIHhscl90aHJfaWQoKTsKKwlpbnQgY3B1ID0geGxyX2NvcmVfaWQoKTsKKwl1 aW50MzJfdCB2Y3B1ID0geGxyX2NwdV9pZCgpOwogCiAJaWYgKCEoaWZwLT5pZl9kcnZfZmxhZ3Mg JiBJRkZfRFJWX1JVTk5JTkcpKQogCQlyZXR1cm47CkBAIC0yNzE2LDkgKzI1MjksNiBAQAogewog CWluaXRfcDJkX2FsbG9jYXRpb24oKTsKIAlpbml0X3R4X3JpbmcoKTsKLSNpZmRlZiBSWF9DT1BZ Ci0JaW5pdF9yeF9idWYoKTsKLSNlbmRpZgogCiAJaWYgKHhscl9ib2FyZF9pbmZvLmlzX3hscykg ewogCQlpZiAocmVnaXN0ZXJfbXNncmluZ19oYW5kbGVyKFRYX1NUTl9HTUFDMCwKSW5kZXg6IHN5 cy9taXBzL3JtaS94bHJjb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9ybWkveGxyY29u ZmlnLmgJKHJldmlzaW9uIDIwNjczNSkKKysrIHN5cy9taXBzL3JtaS94bHJjb25maWcuaAkod29y a2luZyBjb3B5KQpAQCAtMTI3LDM5ICsxMjcsMzUgQEAKICAgICAgICAgOiIkOCIsICIkOSIpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IHdoaWxlKDAp CiAKLSNpZiAwCi0jZGVmaW5lIHhscl9wcm9jZXNzb3JfaWQoKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorI2RlZmluZSB4bHJfY3B1X2lkKCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICh7aW50IF9faWQ7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hc21fXyBfX3ZvbGF0 aWxlX18gKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICAgICAiLnNldCBwdXNoXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgIi5zZXQgbm9yZW9yZGVyXG4iICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgICAgICIud29yZCAweDQwMDg4MDA3XG4iICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAic3JsICAkOCwgJDgsIDEwXG4iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgImFuZGkgJTAsICQ4 LCAweDNmXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICJt ZmMwICQ4LCAkMTUsIDFcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICAgICAiYW5kaSAlMCwgJDgsIDB4MWZcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgICAgIi5zZXQgcG9wXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICAgIDogIj1yIiAoX19pZCkgOiA6ICIkOCIpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9faWQ7fSkKLSNlbmRpZgogCi0jZGVmaW5lIHhs cl9jcHVfaWQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisjZGVm aW5lIHhscl9jb3JlX2lkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAogKHtpbnQgX19pZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICIuc2V0IHB1c2hcbiIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAiLnNldCBub3Jl b3JkZXJcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg Ii53b3JkIDB4NDAwODgwMDdcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g ICAgICAgICAgICJzcmwgICQ4LCAkOCwgNFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgICAgICAgICAiYW5kaSAlMCwgJDgsIDB4N1xuIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAibWZjMCAkOCwgJDE1LCAxXG4iICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgImFuZGkgJTAsICQ4LCAweDFm XG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICIuc2V0IHBv cFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg ICA6ICI9ciIgKF9faWQpIDogOiAiJDgiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSBfX2lkO30pCisgX19pZC80O30pCiAKLSNkZWZpbmUgeGxyX3Rocl9pZCgpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgeGxyX3Rocl9pZCgpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAoe2ludCBfX2lkOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXNt X18gX192b2xhdGlsZV9fICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgIi5zZXQgcHVzaFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCiAgICAgICAgICAgICIuc2V0IG5vcmVvcmRlclxuIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAiLndvcmQgMHg0MDA4ODAwN1xuIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgImFuZGkgJTAsICQ4 LCAweDAzXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICJt ZmMwICQ4LCAkMTUsIDFcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICAgICAiYW5kaSAlMCwgJDgsIDB4M1xuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgICAgIi5zZXQgcG9wXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICAgIDogIj1yIiAoX19pZCkgOiA6ICIkOCIpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9faWQ7fSkKQEAgLTMzMyw0ICszMjksMjYgQEAK IAkgICAgOiAgICAgICAiJDgiLCAiJDkiKTsKIH0KIAorc3RhdGljIF9faW5saW5lX18gdWludDMy X3QKK3hscl9wYWRkcl9sdyh1aW50NjRfdCBwYWRkcikKK3sKKyAgICAgICAgdWludDMyX3QgaGln aCwgbG93LCB0bXA7CisKKyAgICAgICAgaGlnaCA9IDB4OTgwMDAwMDAgfCAocGFkZHIgPj4gMzIp OworICAgICAgICBsb3cgPSBwYWRkciAmIDB4ZmZmZmZmZmY7CisKKyAgICAgICAgX19hc21fXyBf X3ZvbGF0aWxlX18oCisgICAgICAgICAgICAgICAgICAgICIuc2V0IHB1c2ggICAgICAgICBcblx0 IgorICAgICAgICAgICAgICAgICAgICAiLnNldCBtaXBzNjQgICAgICAgXG5cdCIKKyAgICAgICAg ICAgICAgICAgICAgImRzbGwzMiAlMSwgJTEsIDAgIFxuXHQiCisgICAgICAgICAgICAgICAgICAg ICJkc2xsMzIgJTIsICUyLCAwICBcblx0IiAgLyogZ2V0IHJpZCBvZiB0aGUgKi8KKyAgICAgICAg ICAgICAgICAgICAgImRzcmwzMiAlMiwgJTIsIDAgIFxuXHQiICAvKiBzaWduIGV4dGVuZCAqLwor ICAgICAgICAgICAgICAgICAgICAib3IgICAgICUxLCAlMSwgJTIgXG5cdCIKKyAgICAgICAgICAg ICAgICAgICAgImx3ICAgICAlMCwgMCglMSkgIFxuXHQiCisgICAgICAgICAgICAgICAgICAgICIu c2V0IHBvcCAgICAgICAgICAgXG4iCisgICAgICAgICAgICA6ICAgICAgICI9ciIodG1wKQorICAg ICAgICAgICAgOiAgICAgICAiciIoaGlnaCksICJyIihsb3cpKTsKKworCXJldHVybiB0bXA7Cit9 CiAjZW5kaWYKSW5kZXg6IHN5cy9taXBzL3JtaS9vbl9jaGlwLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz L21pcHMvcm1pL29uX2NoaXAuYwkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMvcm1pL29u X2NoaXAuYwkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsMTggQEAKICNpbmNsdWRlIDxzeXMv bGltaXRzLmg+CiAjaW5jbHVkZSA8c3lzL2J1cy5oPgogCisjaW5jbHVkZSA8c3lzL2t0ci5oPgor I2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMva3RocmVhZC5oPgorI2luY2x1 ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNldmFyLmg+CisjaW5jbHVkZSA8 c3lzL3NjaGVkLmg+CisjaW5jbHVkZSA8c3lzL3VuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9zeXNj dGwuaD4KKwogI2luY2x1ZGUgPG1hY2hpbmUvcmVnLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9jcHUu aD4KKyNpbmNsdWRlIDxtYWNoaW5lL2h3ZnVuYy5oPgogI2luY2x1ZGUgPG1hY2hpbmUvbWlwc19v cGNvZGUuaD4KIAogI2luY2x1ZGUgPG1hY2hpbmUvcGFyYW0uaD4KQEAgLTYyLDYgKzcyLDE2IEBA CiAJdm9pZCAqZGV2X2lkOwogfTsKIAorc3RydWN0IG1zZ3JpbmdfaXRocmVhZCB7CisJc3RydWN0 IHRocmVhZCAqaV90aHJlYWQ7CisJdV9pbnQgaV9wZW5kaW5nOworCXVfaW50IGlfZmxhZ3M7CisJ aW50IGlfY3B1OworfTsKKworc3RydWN0IG1zZ3JpbmdfaXRocmVhZCBtc2dyaW5nX2l0aHJlYWRz W01BWENQVV07CitjaGFyIGl0aGRfbmFtZVtNQVhDUFVdWzMyXTsKKwogLyogZ2xvYmFscyAqLwog c3RhdGljIHN0cnVjdCB0eF9zdG5faGFuZGxlciB0eF9zdG5faGFuZGxlcnNbTUFYX1RYX1NUTlNd OwogCkBAIC05MSw4ICsxMTEsNiBAQAogCiB1aW50MzJfdCBtc2dybmdfbXNnX2N5Y2xlcyA9IDA7 CiAKLWludCB4bHJfY291bnRlcnNbTUFYQ1BVXVtYTFJfTUFYX0NPVU5URVJTXSBfX2FsaWduZWQo WExSX0NBQ0hFTElORV9TSVpFKTsKLQogdm9pZCB4bHJfbXNncmluZ19oYW5kbGVyKHN0cnVjdCB0 cmFwZnJhbWUgKik7CiAKIHZvaWQgCkBAIC0xMDMsMTEgKzEyMSwxMiBAQAogCWludCBpZDsKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JLyogaWYgbm90IHRocmVhZCAwICovCi0JaWYgKHhscl90 aHJfaWQoKSAhPSAwKQotCQlyZXR1cm47Ci0JaWQgPSB4bHJfY3B1X2lkKCk7CisJS0FTU0VSVCh4 bHJfdGhyX2lkKCkgPT0gMCwKKwkJKCJ4bHJfbXNncmluZ19jcHVfaW5pdCBmcm9tIG5vbi16ZXJv IHRocmVhZFxuIikpOwogCisJaWQgPSB4bHJfY29yZV9pZCgpOworCXByaW50ZigibXNncm5nIGlu aXQgb24gY29yZSAlZCwgdGhyICVkXG4iLCAgaWQsIHhscl90aHJfaWQoKSk7CisKIAlidWNrZXRf c2l6ZXMgPSB4bHJfYm9hcmRfaW5mby5idWNrZXRfc2l6ZXM7CiAJY2NfY29uZmlnID0geGxyX2Jv YXJkX2luZm8uY3JlZGl0X2NvbmZpZ3NbaWRdOwogCkBAIC0xNTYsMTAgKzE3NSw2IEBACiAKIAlt c2dyaW5nX3dhdGVybWFya19jb3VudCA9IDE7CiAJbXNncmluZ190aHJlYWRfbWFzayA9IDB4MDE7 Ci0vKiAgIHByaW50ZigiWyVzXTogaW50X3R5cGUgPSAweCV4LCBwb3BfbnVtX2J1Y2tldHM9JWQs IHBvcF9idWNrZXRfbWFzaz0leCIgKi8KLS8qICAgICAgICAgICJ3YXRlcm1hcmtfY291bnQ9JWQs IHRocmVhZF9tYXNrPSV4XG4iLCBfX0ZVTkNUSU9OX18sICovCi0vKiAgICAgICAgICBtc2dyaW5n X2ludF90eXBlLCBtc2dyaW5nX3BvcF9udW1fYnVja2V0cywgbXNncmluZ19wb3BfYnVja2V0X21h c2ssICovCi0vKiAgICAgICAgICBtc2dyaW5nX3dhdGVybWFya19jb3VudCwgbXNncmluZ190aHJl YWRfbWFzayk7ICovCiB9CiAKIHZvaWQgCkBAIC0xNzIsNyArMTg3LDYgQEAKIAl1bnNpZ25lZCBp bnQgYnVja2V0X2VtcHR5X2JtID0gMDsKIAl1bnNpZ25lZCBpbnQgc3RhdHVzID0gMDsKIAotCXhs cl9pbmNfY291bnRlcihNU0dSTkdfSU5UKTsKIAkvKiBUT0RPOiBub3QgbmVjZXNzYXJ5IHRvIGRp c2FibGUgcHJlZW1wdGlvbiAqLwogCW1zZ3JuZ19mbGFnc19zYXZlKG1mbGFncyk7CiAKQEAgLTE4 NSw4ICsxOTksNiBAQAogCQkJYnJlYWs7CiAKIAkJZm9yIChidWNrZXQgPSAwOyBidWNrZXQgPCBt c2dyaW5nX3BvcF9udW1fYnVja2V0czsgYnVja2V0KyspIHsKLQkJCXVpbnQzMl90IGN5Y2xlcyA9 IDA7Ci0KIAkJCWlmICgoYnVja2V0X2VtcHR5X2JtICYgKDEgPDwgYnVja2V0KSkgLyogZW1wdHkg Ki8gKQogCQkJCWNvbnRpbnVlOwogCkBAIC0xOTQsMTAgKzIwNiw2IEBACiAJCQlpZiAoc3RhdHVz KQogCQkJCWNvbnRpbnVlOwogCi0JCQl4bHJfaW5jX2NvdW50ZXIoTVNHUk5HX01TRyk7Ci0JCQlt c2dybmdfbXNnX2N5Y2xlcyA9IG1pcHNfcmRfY291bnQoKTsKLQkJCWN5Y2xlcyA9IG1zZ3JuZ19t c2dfY3ljbGVzOwotCiAJCQl0eF9zdGlkID0geGxyX2JvYXJkX2luZm8ubXNnbWFwW3J4X3N0aWRd OwogCiAJCQlpZiAoIXR4X3N0bl9oYW5kbGVyc1t0eF9zdGlkXS5hY3Rpb24pIHsKQEAgLTIxMSwx NyArMjE5LDEyIEBACiAJCQkJICAgICZtc2csIHR4X3N0bl9oYW5kbGVyc1t0eF9zdGlkXS5kZXZf aWQpOwogCQkJCW1zZ3JuZ19mbGFnc19zYXZlKG1mbGFncyk7CiAJCQl9Ci0JCQl4bHJfc2V0X2Nv dW50ZXIoTVNHUk5HX01TR19DWUNMRVMsIChyZWFkX2MwX2NvdW50KCkgLSBjeWNsZXMpKTsKIAkJ fQogCX0KIAogCXhscl9zZXRfY291bnRlcihNU0dSTkdfRVhJVF9TVEFUVVMsIG1zZ3JuZ19yZWFk X3N0YXR1cygpKTsKIAogCW1zZ3JuZ19mbGFnc19yZXN0b3JlKG1mbGFncyk7Ci0KLQkvL2RiZ19t c2coIk9VVCBpcnE9JWRcbiIsIGlycSk7Ci0KLQkvKiBDYWxsIHRoZSBtc2cgY2FsbGJhY2sgKi8K IH0KIAogdm9pZCAKQEAgLTI0OSw5ICsyNTIsMTE3IEBACiAJbXNncm5nX2FjY2Vzc19yZXN0b3Jl KCZtc2dybmdfbG9jaywgbWZsYWdzKTsKIH0KIAotZXh0ZXJuIHZvaWQgcGxhdGZvcm1fcHJlcF9z bXBfbGF1bmNoKHZvaWQpOwotZXh0ZXJuIHZvaWQgbXNncmluZ19wcm9jZXNzX2Zhc3RfaW50cih2 b2lkICphcmcpOworc3RhdGljIGludAorbXNncmluZ19wcm9jZXNzX2Zhc3RfaW50cih2b2lkICph cmcpCit7CisJaW50IGNwdSA9IFBDUFVfR0VUKGNwdWlkKTsKKwl2b2xhdGlsZSBzdHJ1Y3QgbXNn cmluZ19pdGhyZWFkICppdDsKKwlzdHJ1Y3QgdGhyZWFkICp0ZDsKIAorCS8qIHdha2V1cCBhbiBh cHByb3ByaWF0ZSBpbnRyX3RocmVhZCBmb3IgcHJvY2Vzc2luZyB0aGlzIGludGVycnVwdCAqLwor CWl0ID0gKHZvbGF0aWxlIHN0cnVjdCBtc2dyaW5nX2l0aHJlYWQgKikmbXNncmluZ19pdGhyZWFk c1tjcHVdOworCXRkID0gaXQtPmlfdGhyZWFkOworCisJLyoKKwkgKiBJbnRlcnJ1cHQgdGhyZWFk IHdpbGwgZW5hYmxlIHRoZSBpbnRlcnJ1cHRzIGFmdGVyIHByb2Nlc3NpbmcgYWxsCisJICogbWVz c2FnZXMKKwkgKi8KKwlkaXNhYmxlX21zZ3JpbmdfaW50KE5VTEwpOworCWF0b21pY19zdG9yZV9y ZWxfaW50KCZpdC0+aV9wZW5kaW5nLCAxKTsKKwl0aHJlYWRfbG9jayh0ZCk7CisJaWYgKFREX0FX QUlUSU5HX0lOVFIodGQpKSB7CisJCVREX0NMUl9JV0FJVCh0ZCk7CisJCXNjaGVkX2FkZCh0ZCwg U1JRX0lOVFIpOworCX0KKwl0aHJlYWRfdW5sb2NrKHRkKTsKKwlyZXR1cm4gRklMVEVSX0hBTkRM RUQ7Cit9CisKK3N0YXRpYyB2b2lkCittc2dyaW5nX3Byb2Nlc3Modm9pZCAqYXJnKQoreworCXZv bGF0aWxlIHN0cnVjdCBtc2dyaW5nX2l0aHJlYWQgKml0aGQ7CisJc3RydWN0IHRocmVhZCAqdGQ7 CisJc3RydWN0IHByb2MgKnA7CisKKwl0ZCA9IGN1cnRocmVhZDsKKwlwID0gdGQtPnRkX3Byb2M7 CisJaXRoZCA9ICh2b2xhdGlsZSBzdHJ1Y3QgbXNncmluZ19pdGhyZWFkICopYXJnOworCUtBU1NF UlQoaXRoZC0+aV90aHJlYWQgPT0gdGQsCisJICAgICgiJXM6bXNnX2l0aHJlYWQgYW5kIHByb2Mg bGlua2FnZSBvdXQgb2Ygc3luYyIsIF9fZnVuY19fKSk7CisKKwkvKiBGaXJzdCBiaW5kIHRoaXMg dGhyZWFkIHRvIHRoZSByaWdodCBDUFUgKi8KKwl0aHJlYWRfbG9jayh0ZCk7CisJc2NoZWRfYmlu ZCh0ZCwgaXRoZC0+aV9jcHUpOworCXRocmVhZF91bmxvY2sodGQpOworCisJLy9wcmludGYoIlN0 YXJ0ZWQgJXMgb24gQ1BVICVkXG4iLCBfX0ZVTkNUSU9OX18sIGl0aGQtPmlfY3B1KTsKKworCXdo aWxlICgxKSB7CisJCXdoaWxlIChpdGhkLT5pX3BlbmRpbmcpIHsKKwkJCS8qCisJCQkgKiBUaGlz IG1pZ2h0IG5lZWQgYSBmdWxsIHJlYWQgYW5kIHdyaXRlIGJhcnJpZXIgdG8KKwkJCSAqIG1ha2Ug c3VyZSB0aGF0IHRoaXMgd3JpdGUgcG9zdHMgYmVmb3JlIGFueSBvZiB0aGUKKwkJCSAqIG1lbW9y eSBvciBkZXZpY2UgYWNjZXNzZXMgaW4gdGhlIGhhbmRsZXJzLgorCQkJICovCisJCQl4bHJfbXNn cmluZ19oYW5kbGVyKE5VTEwpOworCQkJYXRvbWljX3N0b3JlX3JlbF9pbnQoJml0aGQtPmlfcGVu ZGluZywgMCk7CisJCQllbmFibGVfbXNncmluZ19pbnQoTlVMTCk7CisJCX0KKwkJaWYgKCFpdGhk LT5pX3BlbmRpbmcpIHsKKwkJCXRocmVhZF9sb2NrKHRkKTsKKwkJCWlmIChpdGhkLT5pX3BlbmRp bmcpIHsKKwkJCSAgdGhyZWFkX3VubG9jayh0ZCk7CisJCQkgIGNvbnRpbnVlOworCQkJfQorCQkJ c2NoZWRfY2xhc3ModGQsIFBSSV9JVEhEKTsKKwkJCVREX1NFVF9JV0FJVCh0ZCk7CisJCQltaV9z d2l0Y2goU1dfVk9MLCBOVUxMKTsKKwkJCXRocmVhZF91bmxvY2sodGQpOworCQl9CisJfQorCit9 CisKK3N0YXRpYyB2b2lkIAorY3JlYXRlX21zZ3JpbmdfdGhyZWFkcyh2b2lkKQoreworCWludCBj cHU7CisJdWludDMyX3QgY3B1X21hc2s7CisJc3RydWN0IG1zZ3JpbmdfaXRocmVhZCAqaXRoZDsK KwlzdHJ1Y3QgdGhyZWFkICp0ZDsKKwlzdHJ1Y3QgcHJvYyAqcDsKKwlpbnQgZXJyb3I7CisKKwlj cHVfbWFzayA9IFBDUFVfR0VUKGNwdW1hc2spIHwgUENQVV9HRVQob3RoZXJfY3B1cyk7CisKKwkv KiBDcmVhdGUga2VybmVsIHRocmVhZHMgZm9yIG1lc3NhZ2UgcmluZyBpbnRlcnJ1cHQgcHJvY2Vz c2luZyAqLworCS8qIEN1cnJlbnRseSBjcmVhdGUgb25lIHRhc2sgZm9yIHRocmVhZCAwIG9mIGVh Y2ggY29yZSAqLworCWZvciAoY3B1ID0gMDsgY3B1IDwgTUFYQ1BVOyBjcHUgKz0gNCkgeworCQlp dGhkID0gJm1zZ3JpbmdfaXRocmVhZHNbY3B1XTsKKwkJc3ByaW50ZihpdGhkX25hbWVbY3B1XSwg Im1zZ19pbnRyJWQiLCBjcHUpOworCQllcnJvciA9IGtwcm9jX2NyZWF0ZShtc2dyaW5nX3Byb2Nl c3MsCisJCSAgICAodm9pZCAqKWl0aGQsCisJCSAgICAmcCwKKwkJICAgIChSRlNUT1BQRUQgfCBS RkhJR0hQSUQpLAorCQkgICAgMiwKKwkJICAgIGl0aGRfbmFtZVtjcHVdKTsKKworCQlpZiAoZXJy b3IpCisJCQlwYW5pYygia3Byb2NfY3JlYXRlKCkgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisJ CXRkID0gRklSU1RfVEhSRUFEX0lOX1BST0MocCk7CS8qIFhYWEtTRSAqLworCisJCXRocmVhZF9s b2NrKHRkKTsKKwkJc2NoZWRfY2xhc3ModGQsIFBSSV9JVEhEKTsKKwkJVERfU0VUX0lXQUlUKHRk KTsKKwkJdGhyZWFkX3VubG9jayh0ZCk7CisJCWl0aGQtPmlfdGhyZWFkID0gdGQ7CisJCWl0aGQt PmlfcGVuZGluZyA9IDA7CisJCWl0aGQtPmlfY3B1ID0gY3B1OworCQlDVFIyKEtUUl9JTlRSLCAi JXM6IGNyZWF0ZWQgJXMiLCBfX2Z1bmNfXywgaXRoZF9uYW1lW2NwdV0pOworCX0KK30KKwogaW50 IAogcmVnaXN0ZXJfbXNncmluZ19oYW5kbGVyKGludCBtYWpvciwKICAgICB2b2lkICgqYWN0aW9u KSAoaW50LCBpbnQsIGludCwgaW50LCBzdHJ1Y3QgbXNncm5nX21zZyAqLCB2b2lkICopLApAQCAt MjcyLDggKzM4Myw3IEBACiAJICBtdHhfdW5sb2NrX3NwaW4oJm1zZ3JuZ19sb2NrKTsKIAogCWlm ICh4bHJfdGVzdF9hbmRfc2V0KCZtc2dyaW5nX2ludF9lbmFibGVkKSkgewotCQlwbGF0Zm9ybV9w cmVwX3NtcF9sYXVuY2goKTsKLQorCQljcmVhdGVfbXNncmluZ190aHJlYWRzKCk7CiAJCWNwdV9l c3RhYmxpc2hfaGFyZGludHIoIm1zZ3JpbmciLCAoZHJpdmVyX2ZpbHRlcl90ICopIG1zZ3Jpbmdf cHJvY2Vzc19mYXN0X2ludHIsCiAJCQlOVUxMLCBOVUxMLCBJUlFfTVNHUklORywgCiAJCQlJTlRS X1RZUEVfTkVUIHwgSU5UUl9GQVNULCAmY29va2llKTsKQEAgLTMwMyw3ICs0MTMsOCBAQAogCQkg KiBVc2UgbG9jYWwgc2NoZWR1bGluZyBhbmQgaGlnaCBwb2xhcml0eSBmb3IgYWxsIElSVHMKIAkJ ICogSW52YWxpZGF0ZSBhbGwgSVJUcywgYnkgZGVmYXVsdAogCQkgKi8KLQkJeGxyX3dyaXRlX3Jl ZyhtbWlvLCBQSUNfSVJUXzFfQkFTRSArIGksIChsZXZlbCA8PCAzMCkgfCAoMSA8PCA2KSB8IChQ SUNfSVJRX0JBU0UgKyBpKSk7CisJCXhscl93cml0ZV9yZWcobW1pbywgUElDX0lSVF8xX0JBU0Ug KyBpLCAobGV2ZWwgPDwgMzApIHwgKDEgPDwgNikgfAorCQkgICAgKFBJQ19JUlFfQkFTRSArIGkp KTsKIAl9CiAJZGJnX21zZygiUElDIGluaXQgbm93IGRvbmVcbiIpOwogfQpAQCAtMzExLDggKzQy Miw2IEBACiB2b2lkIAogb25fY2hpcF9pbml0KHZvaWQpCiB7Ci0JaW50IGkgPSAwLCBqID0gMDsK LQogCS8qIFNldCB4bHJfaW9fYmFzZSB0byB0aGUgcnVuIHRpbWUgdmFsdWUgKi8KIAltdHhfaW5p dCgmbXNncm5nX2xvY2ssICJtc2dyaW5nIiwgTlVMTCwgTVRYX1NQSU4gfCBNVFhfUkVDVVJTRSk7 CiAJbXR4X2luaXQoJnhscl9waWNfbG9jaywgInBpYyIsIE5VTEwsIE1UWF9TUElOKTsKQEAgLTMy NSw4ICs0MzQsNCBAQAogCXBpY19pbml0KCk7CiAKIAl4bHJfbXNncmluZ19jcHVfaW5pdCgpOwot Ci0JZm9yIChpID0gMDsgaSA8IE1BWENQVTsgaSsrKQotCQlmb3IgKGogPSAwOyBqIDwgWExSX01B WF9DT1VOVEVSUzsgaisrKQotCQkJYXRvbWljX3NldF9pbnQoJnhscl9jb3VudGVyc1tpXVtqXSwg MCk7CiB9CkluZGV4OiBzeXMvbWlwcy9ybWkveGxyX21hY2hkZXAuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBz eXMvbWlwcy9ybWkveGxyX21hY2hkZXAuYwkocmV2aXNpb24gMjA2NzM1KQorKysgc3lzL21pcHMv cm1pL3hscl9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTM2LDE5ICszNiwxMSBAQAogI2lu Y2x1ZGUgPHN5cy9ydHByaW8uaD4KICNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KICNpbmNsdWRlIDxz eXMvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgotI2luY2x1ZGUgPHN5cy9r dGhyZWFkLmg+Ci0jaW5jbHVkZSA8c3lzL2t0ci5oPgogI2luY2x1ZGUgPHN5cy9saW1pdHMuaD4K ICNpbmNsdWRlIDxzeXMvbG9jay5oPgogI2luY2x1ZGUgPHN5cy9tYWxsb2MuaD4KICNpbmNsdWRl IDxzeXMvbXV0ZXguaD4KLSNpbmNsdWRlIDxzeXMvcHJvYy5oPgogI2luY2x1ZGUgPHN5cy9yYW5k b20uaD4KLSNpbmNsdWRlIDxzeXMvcmVzb3VyY2V2YXIuaD4KLSNpbmNsdWRlIDxzeXMvc2NoZWQu aD4KLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8c3lzL3VuaXN0ZC5oPgogCiAj aW5jbHVkZSA8c3lzL2NvbnMuaD4JCS8qIGNpbml0KCkgKi8KICNpbmNsdWRlIDxzeXMva2RiLmg+ CkBAIC04NywxNiArNzksMTEgQEAKICNpbmNsdWRlIDxtaXBzL3JtaS9wZXJmbW9uLmg+CiAjZW5k aWYKIAotCi0KLXZvaWQgcGxhdGZvcm1fcHJlcF9zbXBfbGF1bmNoKHZvaWQpOwotCiB1bnNpZ25l ZCBsb25nIHhscl9pb19iYXNlID0gKHVuc2lnbmVkIGxvbmcpKERFRkFVTFRfWExSX0lPX0JBU0Up OwogCiAvKiA0S0Igc3RhdGljIGRhdGEgYXJlYWQgdG8ga2VlcCBhIGNvcHkgb2YgdGhlIGJvb3Rs b2FkIGVudiB1bnRpbAogICAgdGhlIGR5bmFtaWMga2VudiBpcyBzZXR1cCAqLwogY2hhciBib290 MV9lbnZbNDA5Nl07Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBfZ3A7CiBpbnQgcm1pX3NwaW5fbXV0 ZXhfc2FmZT0wOwogLyoKICAqIFBhcmFtZXRlcnMgZnJvbSBib290IGxvYWRlcgpAQCAtMTA4LDE2 ICs5NSw2IEBACiBjaGFyICoqeGxyX2FyZ3YsICoqeGxyX2VudnA7CiB1aW50NjRfdCBjcHVfbWFz a19pbmZvOwogdWludDMyX3QgeGxyX29ubGluZV9jcHVtYXNrOwotCi0jaWZkZWYgU01QCi1zdGF0 aWMgdW5zaWduZWQgbG9uZyB4bHJfc2Vjb25kYXJ5X2dwW01BWENQVV07Ci1zdGF0aWMgdW5zaWdu ZWQgbG9uZyB4bHJfc2Vjb25kYXJ5X3NwW01BWENQVV07Ci0KLSNlbmRpZgotZXh0ZXJuIGludCBt aXBzX2NwdV9vbmxpbmVfbWFzazsKLWV4dGVybiBpbnQgbWlwc19jcHVfbG9naWNhbF9tYXNrOwot dWludDMyX3QgY3B1X2x0b3BfbWFwW01BWENQVV07Ci11aW50MzJfdCBjcHVfcHRvbF9tYXBbTUFY Q1BVXTsKIHVpbnQzMl90IHhscl9jb3JlX2NwdV9tYXNrID0gMHgxOwkvKiBDb3JlIDAgdGhyZWFk IDAgaXMgYWx3YXlzIHRoZXJlICovCiAKIHZvaWQKQEAgLTEzMCwyNyArMTA3LDYgQEAKIAltbWlv WzhdID0gMHgxOwogfQogCi12b2lkIAotcGxhdGZvcm1fc2Vjb25kYXJ5X2luaXQodm9pZCkKLXsK LSNpZmRlZiBTTVAKLQl4bHJfbXNncmluZ19jcHVfaW5pdCgpOwotCi0JLyogU2V0dXAgaW50ZXJy dXB0cyBmb3Igc2Vjb25kYXJ5IENQVXMgaGVyZSAqLwotCW1pcHNfbWFza19oYXJkX2lycShJUElf U01QX0NBTExfRlVOQ1RJT04pOwotCW1pcHNfbWFza19oYXJkX2lycShJUElfU1RPUCk7Ci0JbWlw c19tYXNrX2hhcmRfaXJxKElQSV9SRU5ERVpWT1VTKTsKLQltaXBzX21hc2tfaGFyZF9pcnEoSVBJ X0FTVCk7Ci0JbWlwc19tYXNrX2hhcmRfaXJxKElSUV9USU1FUik7Ci0jaWZkZWYgWExSX1BFUkZN T04KLQltaXBzX21hc2tfaGFyZF9pcnEoSVBJX1BFUkZNT04pOwotI2VuZGlmCi0KLQlyZXR1cm47 Ci0jZW5kaWYKLX0KLQotCiBpbnQgeGxyX2FzaWRfcGNwdSA9IDI1NjsJLyogVGhpcyB0aGUgZGVm YXVsdCAqLwogaW50IHhscl9zaHRsYl9lbmFibGVkID0gMDsKIApAQCAtMTY4LDEzICsxMjQsMTMg QEAKIAlpbnQgbW11X3NldHVwOwogCWludCB2YWx1ZSA9IDA7CiAJdWludDMyX3QgY3B1X21hcCA9 IHhscl9ib290MV9pbmZvLmNwdV9vbmxpbmVfbWFwOwotCXVpbnQzMl90IHRocl9tYXNrID0gY3B1 X21hcCA+PiAoeGxyX2NwdV9pZCgpIDw8IDIpOworCXVpbnQzMl90IHRocl9tYXNrID0gY3B1X21h cCA+PiAoeGxyX2NvcmVfaWQoKSA8PCAyKTsKIAl1aW50OF90IGNvcmUwID0geGxyX2Jvb3QxX2lu Zm8uY3B1X29ubGluZV9tYXAgJiAweGY7CiAJdWludDhfdCBjb3JlX3Rocl9tYXNrOwogCWludCBp ID0gMCwgY291bnQgPSAwOwogCiAJLyogSWYgQ1BVMCBkaWQgbm90IGVuYWJsZSBzaGFyZWQgVExC LCBvdGhlciBjb3JlcyBuZWVkIHRvIGZvbGxvdyAqLwotCWlmICgoeGxyX2NwdV9pZCgpICE9IDAp ICYmICh4bHJfc2h0bGJfZW5hYmxlZCA9PSAwKSkKKwlpZiAoKHhscl9jb3JlX2lkKCkgIT0gMCkg JiYgKHhscl9zaHRsYl9lbmFibGVkID09IDApKQogCQlyZXR1cm47CiAJLyogRmlyc3QgY2hlY2sg aWYgZWFjaCBjb3JlIGlzIGJyb3VnaHQgdXAgd2l0aCB0aGUgc2FtZSBtYXNrICovCiAJZm9yIChp ID0gMTsgaSA8IDg7IGkrKykgewpAQCAtMjg3LDIzICsyNDMsNyBAQAogfQogCiAKLSNpZmRlZiBT TVAKLWV4dGVybiB2b2lkIHhscl9zZWNvbmRhcnlfc3RhcnQodW5zaWduZWQgbG9uZywgdW5zaWdu ZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CiBzdGF0aWMgdm9pZCAKLXhscl9zZWNvbmRhcnlfZW50 cnkodm9pZCAqZGF0YSkKLXsKLQl1bnNpZ25lZCBsb25nIHNwLCBncDsKLQl1bnNpZ25lZCBpbnQg Y3B1ID0gKHhscl9jcHVfaWQoKSA8PCAyKSArIHhscl90aHJfaWQoKTsKLQotCXNwID0geGxyX3Nl Y29uZGFyeV9zcFtjcHVdOwotCWdwID0geGxyX3NlY29uZGFyeV9ncFtjcHVdOwotCi0JeGxyX3Nl Y29uZGFyeV9zdGFydCgodW5zaWduZWQgbG9uZyltaXBzX3NlY29uZGFyeV93YWl0LCBzcCwgZ3Ap OwotfQotCi0jZW5kaWYKLQotc3RhdGljIHZvaWQgCiB4bHJfc2V0X2Jvb3RfZmxhZ3Modm9pZCkK IHsKIAljaGFyICpwOwpAQCAtMzQxLDcgKzI4MSw2IEBACiB9CiBleHRlcm4gdWludDMyX3QgX2Vu ZDsKIAotCiBzdGF0aWMgdm9pZAogbWlwc19pbml0KHZvaWQpCiB7CkBAIC0zNTMsOSArMjkyLDYg QEAKIAltaXBzX2NwdV9pbml0KCk7CiAJcG1hcF9ib290c3RyYXAoKTsKICNpZmRlZiBEREIKLSNp ZmRlZiBTTVAKLQlzZXR1cF9ubWkoKTsKLSNlbmRpZgkJCQkvKiBTTVAgKi8KIAlrZGJfaW5pdCgp OwogCWlmIChib290aG93dG8gJiBSQl9LREIpIHsKIAkJa2RiX2VudGVyKCJCb290IGZsYWdzIHJl cXVlc3RlZCBkZWJ1Z2dlciIsIE5VTEwpOwpAQCAtNTIxLDI5ICs0NTcsMTcgQEAKIAlmb3IgKGkg PSAxLCBqID0gMTsgaSA8IDMyOyBpKyspIHsKIAkJLyogQWxsb2NhdGUgc3RhY2sgZm9yIGFsbCBv dGhlciBjcHVzIGZyb20gZmJzZCBrc2VnMCBtZW1vcnkuICovCiAJCWlmICgoMVUgPDwgaSkgJiB4 bHJfYm9vdDFfaW5mby5jcHVfb25saW5lX21hcCkgewotCQkJeGxyX3NlY29uZGFyeV9ncFtpXSA9 Ci0JCQkgICAgcG1hcF9zdGVhbF9tZW1vcnkoUEFHRV9TSVpFKTsKLQkJCWlmICgheGxyX3NlY29u ZGFyeV9ncFtpXSkKLQkJCQlwYW5pYygiQWxsb2NhdGlvbiBmYWlsZWQgZm9yIHNlY29uZGFyeSBj cHUgc3RhY2tzIik7Ci0JCQl4bHJfc2Vjb25kYXJ5X3NwW2ldID0KLQkJCSAgICB4bHJfc2Vjb25k YXJ5X2dwW2ldICsgUEFHRV9TSVpFIC0gQ0FMTEZSQU1FX1NJWjsKLQkJCXhscl9zZWNvbmRhcnlf Z3BbaV0gPSAodW5zaWduZWQgbG9uZykmX2dwOwotCQkJLyogQnVpbGQgbHRvcCBhbmQgcHRvbCBj cHUgbWFwLiAqLwotCQkJY3B1X2x0b3BfbWFwW2pdID0gaTsKLQkJCWNwdV9wdG9sX21hcFtpXSA9 IGo7CiAJCQlpZiAoKGkgJiAweDMpID09IDApCS8qIHN0b3JlIHRocmVhZDAgb2YgZWFjaCBjb3Jl ICovCiAJCQkJeGxyX2NvcmVfY3B1X21hc2sgfD0gKDEgPDwgaik7Ci0JCQltaXBzX2NwdV9sb2dp Y2FsX21hc2sgfD0gKDEgPDwgaik7CiAJCQlqKys7CiAJCX0KIAl9CiAKLQltaXBzX2NwdV9vbmxp bmVfbWFzayB8PSB4bHJfYm9vdDFfaW5mby5jcHVfb25saW5lX21hcDsKIAl3YWtldXAgPSAoKHZv aWQgKCopICh2b2lkICosIHZvaWQgKiwgdW5zaWduZWQgaW50KSkKIAkgICAgKHVuc2lnbmVkIGxv bmcpKHhscl9ib290MV9pbmZvLndha2V1cCkpOwogCXByaW50ZigiV2FraW5nIHVwIENQVXMgMHgl bGx4LlxuIiwgeGxyX2Jvb3QxX2luZm8uY3B1X29ubGluZV9tYXAgJiB+KDB4MVUpKTsKIAlpZiAo eGxyX2Jvb3QxX2luZm8uY3B1X29ubGluZV9tYXAgJiB+KDB4MVUpKQotCQl3YWtldXAoeGxyX3Nl Y29uZGFyeV9lbnRyeSwgMCwKKwkJd2FrZXVwKG1wd2FpdCwgMCwKIAkJICAgICh1bnNpZ25lZCBp bnQpeGxyX2Jvb3QxX2luZm8uY3B1X29ubGluZV9tYXApOwogI2VuZGlmCiAKQEAgLTU4MSwxNDUg KzUwNSwzIEBACiBwbGF0Zm9ybV90cmFwX2V4aXQodm9pZCkKIHsKIH0KLQotCi0vKgotIHZvaWQK LSBwbGF0Zm9ybV91cGRhdGVfaW50cm1hc2soaW50IGludHIpCi0gewotICAgd3JpdGVfYzBfZWlt cjY0KHJlYWRfYzBfZWltcjY0KCkgfCAoMVVMTDw8aW50cikpOwotIH0KLSovCi0KLXZvaWQgCi1k aXNhYmxlX21zZ3JpbmdfaW50KHZvaWQgKmFyZyk7Ci12b2lkIAotZW5hYmxlX21zZ3JpbmdfaW50 KHZvaWQgKmFyZyk7Ci12b2lkIHhscl9tc2dyaW5nX2hhbmRsZXIoc3RydWN0IHRyYXBmcmFtZSAq dGYpOwotaW50IG1zZ3JpbmdfcHJvY2Vzc19mYXN0X2ludHIodm9pZCAqYXJnKTsKLQotc3RydWN0 IG1zZ3JpbmdfaXRocmVhZCB7Ci0Jc3RydWN0IHRocmVhZCAqaV90aHJlYWQ7Ci0JdV9pbnQgaV9w ZW5kaW5nOwotCXVfaW50IGlfZmxhZ3M7Ci0JaW50IGlfY3B1OwotfTsKLXN0cnVjdCBtc2dyaW5n X2l0aHJlYWQgbXNncmluZ19pdGhyZWFkc1tNQVhDUFVdOwotY2hhciBpdGhkX25hbWVbTUFYQ1BV XVszMl07Ci0KLWludAotbXNncmluZ19wcm9jZXNzX2Zhc3RfaW50cih2b2lkICphcmcpCi17Ci0J aW50IGNwdSA9IFBDUFVfR0VUKGNwdWlkKTsKLQl2b2xhdGlsZSBzdHJ1Y3QgbXNncmluZ19pdGhy ZWFkICppdDsKLQlzdHJ1Y3QgdGhyZWFkICp0ZDsKLQotCS8qIHdha2V1cCBhbiBhcHByb3ByaWF0 ZSBpbnRyX3RocmVhZCBmb3IgcHJvY2Vzc2luZyB0aGlzIGludGVycnVwdCAqLwotCWl0ID0gKHZv bGF0aWxlIHN0cnVjdCBtc2dyaW5nX2l0aHJlYWQgKikmbXNncmluZ19pdGhyZWFkc1tjcHVdOwot CXRkID0gaXQtPmlfdGhyZWFkOwotCi0JLyoKLQkgKiBJbnRlcnJ1cHQgdGhyZWFkIHdpbGwgZW5h YmxlIHRoZSBpbnRlcnJ1cHRzIGFmdGVyIHByb2Nlc3NpbmcgYWxsCi0JICogbWVzc2FnZXMKLQkg Ki8KLQlkaXNhYmxlX21zZ3JpbmdfaW50KE5VTEwpOwotCWF0b21pY19zdG9yZV9yZWxfaW50KCZp dC0+aV9wZW5kaW5nLCAxKTsKLQl0aHJlYWRfbG9jayh0ZCk7Ci0JaWYgKFREX0FXQUlUSU5HX0lO VFIodGQpKSB7Ci0JCVREX0NMUl9JV0FJVCh0ZCk7Ci0JCXNjaGVkX2FkZCh0ZCwgU1JRX0lOVFIp OwotCX0KLQl0aHJlYWRfdW5sb2NrKHRkKTsKLQlyZXR1cm4gRklMVEVSX0hBTkRMRUQ7Ci19Ci0K LXN0YXRpYyB2b2lkCi1tc2dyaW5nX3Byb2Nlc3Modm9pZCAqYXJnKQotewotCXZvbGF0aWxlIHN0 cnVjdCBtc2dyaW5nX2l0aHJlYWQgKml0aGQ7Ci0Jc3RydWN0IHRocmVhZCAqdGQ7Ci0Jc3RydWN0 IHByb2MgKnA7Ci0KLQl0ZCA9IGN1cnRocmVhZDsKLQlwID0gdGQtPnRkX3Byb2M7Ci0JaXRoZCA9 ICh2b2xhdGlsZSBzdHJ1Y3QgbXNncmluZ19pdGhyZWFkICopYXJnOwotCUtBU1NFUlQoaXRoZC0+ aV90aHJlYWQgPT0gdGQsCi0JICAgICgiJXM6bXNnX2l0aHJlYWQgYW5kIHByb2MgbGlua2FnZSBv dXQgb2Ygc3luYyIsIF9fZnVuY19fKSk7Ci0KLQkvKiBGaXJzdCBiaW5kIHRoaXMgdGhyZWFkIHRv IHRoZSByaWdodCBDUFUgKi8KLQl0aHJlYWRfbG9jayh0ZCk7Ci0Jc2NoZWRfYmluZCh0ZCwgaXRo ZC0+aV9jcHUpOwotCXRocmVhZF91bmxvY2sodGQpOwotCi0JLy9wcmludGYoIlN0YXJ0ZWQgJXMg b24gQ1BVICVkXG4iLCBfX0ZVTkNUSU9OX18sIGl0aGQtPmlfY3B1KTsKLQotCXdoaWxlICgxKSB7 Ci0JCXdoaWxlIChpdGhkLT5pX3BlbmRpbmcpIHsKLQkJCS8qCi0JCQkgKiBUaGlzIG1pZ2h0IG5l ZWQgYSBmdWxsIHJlYWQgYW5kIHdyaXRlIGJhcnJpZXIgdG8KLQkJCSAqIG1ha2Ugc3VyZSB0aGF0 IHRoaXMgd3JpdGUgcG9zdHMgYmVmb3JlIGFueSBvZiB0aGUKLQkJCSAqIG1lbW9yeSBvciBkZXZp Y2UgYWNjZXNzZXMgaW4gdGhlIGhhbmRsZXJzLgotCQkJICovCi0JCQl4bHJfbXNncmluZ19oYW5k bGVyKE5VTEwpOwotCQkJYXRvbWljX3N0b3JlX3JlbF9pbnQoJml0aGQtPmlfcGVuZGluZywgMCk7 Ci0JCQllbmFibGVfbXNncmluZ19pbnQoTlVMTCk7Ci0JCX0KLQkJaWYgKCFpdGhkLT5pX3BlbmRp bmcpIHsKLQkJCXRocmVhZF9sb2NrKHRkKTsKLQkJCWlmIChpdGhkLT5pX3BlbmRpbmcpIHsKLQkJ CSAgdGhyZWFkX3VubG9jayh0ZCk7Ci0JCQkgIGNvbnRpbnVlOwotCQkJfQotCQkJc2NoZWRfY2xh c3ModGQsIFBSSV9JVEhEKTsKLQkJCVREX1NFVF9JV0FJVCh0ZCk7Ci0JCQltaV9zd2l0Y2goU1df Vk9MLCBOVUxMKTsKLQkJCXRocmVhZF91bmxvY2sodGQpOwotCQl9Ci0JfQotCi19Ci12b2lkIAot cGxhdGZvcm1fcHJlcF9zbXBfbGF1bmNoKHZvaWQpCi17Ci0JaW50IGNwdTsKLQl1aW50MzJfdCBj cHVfbWFzazsKLQlzdHJ1Y3QgbXNncmluZ19pdGhyZWFkICppdGhkOwotCXN0cnVjdCB0aHJlYWQg KnRkOwotCXN0cnVjdCBwcm9jICpwOwotCWludCBlcnJvcjsKLQotCWNwdV9tYXNrID0gUENQVV9H RVQoY3B1bWFzaykgfCBQQ1BVX0dFVChvdGhlcl9jcHVzKTsKLQotCS8qIENyZWF0ZSBrZXJuZWwg dGhyZWFkcyBmb3IgbWVzc2FnZSByaW5nIGludGVycnVwdCBwcm9jZXNzaW5nICovCi0JLyogQ3Vy cmVudGx5IGNyZWF0ZSBvbmUgdGFzayBmb3IgdGhyZWFkIDAgb2YgZWFjaCBjb3JlICovCi0JZm9y IChjcHUgPSAwOyBjcHUgPCBNQVhDUFU7IGNwdSArPSAxKSB7Ci0KLQkJaWYgKCEoKDEgPDwgY3B1 KSAmIGNwdV9tYXNrKSkKLQkJCWNvbnRpbnVlOwotCi0JCWlmICgoY3B1X2x0b3BfbWFwW2NwdV0g JSA0KSAhPSAwKQotCQkJY29udGludWU7Ci0KLQkJaXRoZCA9ICZtc2dyaW5nX2l0aHJlYWRzW2Nw dV07Ci0JCXNwcmludGYoaXRoZF9uYW1lW2NwdV0sICJtc2dfaW50ciVkIiwgY3B1KTsKLQkJZXJy b3IgPSBrcHJvY19jcmVhdGUobXNncmluZ19wcm9jZXNzLAotCQkgICAgKHZvaWQgKilpdGhkLAot CQkgICAgJnAsCi0JCSAgICAoUkZTVE9QUEVEIHwgUkZISUdIUElEKSwKLQkJICAgIDIsCi0JCSAg ICBpdGhkX25hbWVbY3B1XSk7Ci0KLQkJaWYgKGVycm9yKQotCQkJcGFuaWMoImtwcm9jX2NyZWF0 ZSgpIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwotCQl0ZCA9IEZJUlNUX1RIUkVBRF9JTl9QUk9D KHApOwkvKiBYWFhLU0UgKi8KLQotCQl0aHJlYWRfbG9jayh0ZCk7Ci0JCXNjaGVkX2NsYXNzKHRk LCBQUklfSVRIRCk7Ci0JCVREX1NFVF9JV0FJVCh0ZCk7Ci0JCXRocmVhZF91bmxvY2sodGQpOwot CQlpdGhkLT5pX3RocmVhZCA9IHRkOwotCQlpdGhkLT5pX3BlbmRpbmcgPSAwOwotCQlpdGhkLT5p X2NwdSA9IGNwdTsKLQkJQ1RSMihLVFJfSU5UUiwgIiVzOiBjcmVhdGVkICVzIiwgX19mdW5jX18s IGl0aGRfbmFtZVtjcHVdKTsKLQl9Ci19CkluZGV4OiBzeXMvbWlwcy9taXBzL21hY2hkZXAuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL21hY2hkZXAuYwkocmV2aXNpb24gMjA2NzM1KQor Kysgc3lzL21pcHMvbWlwcy9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTM0Nyw3ICszNDcs NyBAQAogCWJjb3B5KE1pcHNUTEJNaXNzLCAodm9pZCAqKVRMQl9NSVNTX0VYQ19WRUMsCiAJICAg ICAgTWlwc1RMQk1pc3NFbmQgLSBNaXBzVExCTWlzcyk7CiAKLSNpZmRlZiBUQVJHRVRfT0NURU9O CisjaWYgZGVmaW5lZChUQVJHRVRfT0NURU9OKSB8fCBkZWZpbmVkKFRBUkdFVF9YTFJfWExTKQog LyogRmFrZSwgYnV0IHN1ZmZpY2llbnQsIGZvciB0aGUgMzItYml0IHdpdGggNjQtYml0IGhhcmR3 YXJlIGFkZHJlc3NlcyAgKi8KIAliY29weShNaXBzVExCTWlzcywgKHZvaWQgKilYVExCX01JU1Nf RVhDX1ZFQywKIAkgICAgICBNaXBzVExCTWlzc0VuZCAtIE1pcHNUTEJNaXNzKTsK --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="rmi-xlr-smp.patch" Content-Disposition: attachment; filename="rmi-xlr-smp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8503vpr5 ZGlmZiAtdXJOIHN5cy9taXBzL2luY2x1ZGUvcGFyYW0uaCBzeXMvbWlwcy9pbmNsdWRlL3BhcmFt LmgKLS0tIHN5cy9taXBzL2luY2x1ZGUvcGFyYW0uaAkyMDEwLTA0LTE3IDA5OjM3OjMyLjAwMDk0 MTAwMCArMDUzMAorKysgc3lzL21pcHMvaW5jbHVkZS9wYXJhbS5oCTIwMTAtMDQtMTcgMjI6MTA6 MzIuMDAwMDEzMDAwICswNTMwCkBAIC03MCw3ICs3MCw3IEBACiAjZGVmaW5lCU1JRF9NQUNISU5F CTAJLyogTm9uZSBidXQgaGFzIHRvIGJlIGRlZmluZWQgKi8KIAogI2lmZGVmIFNNUAotI2RlZmlu ZQlNQVhTTVBDUFUJMTYKKyNkZWZpbmUJTUFYU01QQ1BVCTMyCiAjZGVmaW5lCU1BWENQVQkJTUFY U01QQ1BVCiAjZWxzZQogI2RlZmluZQlNQVhTTVBDUFUJMQpkaWZmIC11ck4gc3lzL21pcHMvcm1p L2ZpbGVzLnhsciBzeXMvbWlwcy9ybWkvZmlsZXMueGxyCi0tLSBzeXMvbWlwcy9ybWkvZmlsZXMu eGxyCTIwMTAtMDQtMTcgMDk6MjY6MzQuMDAwMjA0MDAwICswNTMwCisrKyBzeXMvbWlwcy9ybWkv ZmlsZXMueGxyCTIwMTAtMDQtMTcgMjI6MTA6MzIuMDAwMDMwMDAwICswNTMwCkBAIC05LDYgKzks NyBAQAogbWlwcy9ybWkvYm9hcmQuYwkJCQlzdGFuZGFyZAogbWlwcy9ybWkvb25fY2hpcC5jCQkJ CXN0YW5kYXJkCiBtaXBzL3JtaS9pbnRyX21hY2hkZXAuYwkJCSAgICAgICAgc3RhbmRhcmQKK21p cHMvcm1pL21wd2FpdC5TCQkJICAgICAgICBvcHRpb25hbCBzbXAKIG1pcHMvcm1pL3hscl9pMmMu YyAgICAgICAgICAgICAgCQlvcHRpb25hbCBpaWMKIG1pcHMvcm1pL3VhcnRfYnVzX3hscl9pb2Rp LmMJCQlvcHRpb25hbCB1YXJ0IAogbWlwcy9ybWkvdWFydF9jcHVfbWlwc194bHIuYwkJCW9wdGlv bmFsIHVhcnQgCmRpZmYgLXVyTiBzeXMvbWlwcy9ybWkvaW50ZXJydXB0Lmggc3lzL21pcHMvcm1p L2ludGVycnVwdC5oCi0tLSBzeXMvbWlwcy9ybWkvaW50ZXJydXB0LmgJMjAxMC0wNC0xNyAwOToy NjozNC4wMDAyODUwMDAgKzA1MzAKKysrIHN5cy9taXBzL3JtaS9pbnRlcnJ1cHQuaAkyMDEwLTA0 LTE4IDAwOjAxOjM0LjAwMDAyNjAwMCArMDUzMApAQCAtMzIsMTIgKzMyLDkgQEAKIAogLyogRGVm aW5lcyBmb3IgdGhlIElSUSBudW1iZXJzICovCiAKLSNkZWZpbmUgSVJRX0RVTU1ZX1VBUlQgICAg ICAgICAgIDIKLSNkZWZpbmUgSVJRX0lQSV9TTVBfRlVOQ1RJT04gICAgIDMKLSNkZWZpbmUgSVJR X0lQSV9TTVBfUkVTQ0hFRFVMRSAgIDQKLSNkZWZpbmUgSVJRX1JFTU9URV9ERUJVRyAgICAgICAg IDUKLSNkZWZpbmUgSVJRX01TR1JJTkcgICAgICAgICAgICAgIDYKLSNkZWZpbmUgSVJRX1RJTUVS ICAgICAgICAgICAgICAgIDcKKyNkZWZpbmUgSVJRX0lQSQkJCTQxICAvKiA4LTM5IGFyZSBtYXBw ZWQgYnkgUElDIGludHIgMC0zMSAqLworI2RlZmluZSBJUlFfTVNHUklORyAgICAgICAgICAgICA2 CisjZGVmaW5lIElSUV9USU1FUiAgICAgICAgICAgICAgIDcKIAogLyoKICAqIFhMUiBuZWVkcyBj dXN0b20gcHJlIGFuZCBwb3N0IGhhbmRsZXJzIGZvciBQQ0kvUENJLWUgaW50ZXJydXB0cwpkaWZm IC11ck4gc3lzL21pcHMvcm1pL2ludHJfbWFjaGRlcC5jIHN5cy9taXBzL3JtaS9pbnRyX21hY2hk ZXAuYwotLS0gc3lzL21pcHMvcm1pL2ludHJfbWFjaGRlcC5jCTIwMTAtMDQtMTcgMDk6MjY6MzQu MDAwMzc5MDAwICswNTMwCisrKyBzeXMvbWlwcy9ybWkvaW50cl9tYWNoZGVwLmMJMjAxMC0wNC0x OCAwMDo0MDozOC4wMTgwNTIwMDAgKzA1MzAKQEAgLTE1NywyNiArMTU3LDcgQEAKIAlmb3IgKGkg PSBzaXplb2YoZWlycikgKiA4IC0gMTsgaSA+PSAwOyBpLS0pIHsKIAkJaWYgKChlaXJyICYgKDFV TEwgPDwgaSkpID09IDApCiAJCQljb250aW51ZTsKLSNpZmRlZiBTTVAKLQkJLyogVGhlc2UgYXJl IHJlc2VydmVkIGludGVycnVwdHMgKi8KLQkJaWYgKChpID09IElQSV9BU1QpIHx8IChpID09IElQ SV9SRU5ERVpWT1VTKSB8fCAoaSA9PSBJUElfU1RPUCkKLQkJICAgIHx8IChpID09IElQSV9TTVBf Q0FMTF9GVU5DVElPTikpIHsKLQkJCXdyaXRlX2MwX2VpcnI2NCgxVUxMIDw8IGkpOwotCQkJcGlj X2FjayhpLCAwKTsKLQkJCXNtcF9oYW5kbGVfaXBpKHRmLCBpKTsKLQkJCXBpY19kZWxheWVkX2Fj ayhpLCAwKTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0jaWZkZWYgWExSX1BFUkZNT04KLQkJaWYgKGkg PT0gSVBJX1BFUkZNT04pIHsKLQkJCXdyaXRlX2MwX2VpcnI2NCgxVUxMIDw8IGkpOwotCQkJcGlj X2FjayhpLCAwKTsKLQkJCXhscl9wZXJmbW9uX3NhbXBsZXIoTlVMTCk7Ci0JCQlwaWNfZGVsYXll ZF9hY2soaSwgMCk7Ci0JCQljb250aW51ZTsKLQkJfQotI2VuZGlmCi0jZW5kaWYKKwogCQlpZSA9 IG1pcHNfaW50cl9ldmVudHNbaV07CiAJCS8qIGF0b21pY19hZGRfbG9uZyhtaWgtPmNudHAsIDEp OyAqLwogCmRpZmYgLXVyTiBzeXMvbWlwcy9ybWkvbXB3YWl0LlMgc3lzL21pcHMvcm1pL21wd2Fp dC5TCi0tLSBzeXMvbWlwcy9ybWkvbXB3YWl0LlMJMTk3MC0wMS0wMSAwNTozMDowMC4wMDAwMDAw MDAgKzA1MzAKKysrIHN5cy9taXBzL3JtaS9tcHdhaXQuUwkyMDEwLTA0LTE3IDIyOjEwOjMyLjAw MDA1NjAwMCArMDUzMApAQCAtMCwwICsxLDY4IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAx MCBSTUkgVGVjaG5vbG9naWVzIEx0ZC4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05U UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9S IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VT IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU RSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklM SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg SU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogJEZy ZWVCU0QkCisgKi8KKworI2luY2x1ZGUgPG1hY2hpbmUvYXNtLmg+CisjaW5jbHVkZSA8bWFjaGlu ZS9jcHUuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL2NwdXJlZ3MuaD4KKworI2luY2x1ZGUgImFzc3lt LnMiCisKKwkudGV4dAorCS5zZXQJbm9hdAorCS5zZXQJbm9yZW9yZGVyCisKKy8qCisgKiBPbiBY TFIgdGhlIHNsYXZlIHByb2Nlc3NvcnMgYW5kIHRocmVhZHMgd2lsbCBiZSBleGVjdXRpbmcgYm9v dAorICogbG9hZGVyIGNvZGUgb24gc3RhcnR1cC4gV2UgbmVlZCB0byBtYWtlIHRoZW0gcnVuIG91 ciBjb2RlIGJlZm9yZQorICogYmxvd2luZyBhd2F5IGJvb3QgbG9hZGVyIG1lbW9yeS4KKyAqLwor TEVBRihtcHdhaXQpCisJUFRSX0xBICBncCwgX0NfTEFCRUwoX2dwKQorCVBUUl9MQSAgdDEsIF9D X0xBQkVMKHhscl9hcF9yZWxlYXNlKQorCW1mYzAJdDIsICQxNSwgMQorCWFuZGkJdDIsIDB4MWYK KwlzbGwJdDIsIHQyLCAyCisJYWRkCXQxLCB0MgorCisxOglsdwl0MCwgMCh0MSkKKwlibmV6CXQw LCAyZgorCW5vcCAgICAgLyogV2Ugc2hvdWxkIG5vdCBidXN5IHdhaXQgaW4gY29yZTAgdGhyZWFk cyAqLworCW5vcCAgICAgLyogb24gYm9vdHVwLCB0aGlzIHdpbGwgc2xvdyB0aGUgY3B1MCB0aHJl YWQgKi8KKwlub3AgICAgIC8qIGRvd24gLSBUT0RPIC0gd2FpdCB3aXRoIElQSSBiYXNlZCB3YWtl dXAgKi8KKwlub3AKKwlub3AKKwlub3AKKwlub3AKKwlub3AKKwlqCTFiCisJbm9wCisyOgorCVBU Ul9MQSAgdDEsIF9DX0xBQkVMKG1wZW50cnkpCisJanIJdDEKKwlub3AKK0VORChtcHdhaXQpCmRp ZmYgLXVyTiBzeXMvbWlwcy9ybWkvb25fY2hpcC5jIHN5cy9taXBzL3JtaS9vbl9jaGlwLmMKLS0t IHN5cy9taXBzL3JtaS9vbl9jaGlwLmMJMjAxMC0wNC0xNyAyMjowNDo0Mi4wMDAwNzUwMDAgKzA1 MzAKKysrIHN5cy9taXBzL3JtaS9vbl9jaGlwLmMJMjAxMC0wNC0xNyAyMzoyNzoyOC4wMDAxMDgw MDAgKzA1MzAKQEAgLTEyNSw3ICsxMjUsNiBAQAogCQkoInhscl9tc2dyaW5nX2NwdV9pbml0IGZy b20gbm9uLXplcm8gdGhyZWFkXG4iKSk7CiAKIAlpZCA9IHhscl9jb3JlX2lkKCk7Ci0JcHJpbnRm KCJtc2dybmcgaW5pdCBvbiBjb3JlICVkLCB0aHIgJWRcbiIsICBpZCwgeGxyX3Rocl9pZCgpKTsK IAogCWJ1Y2tldF9zaXplcyA9IHhscl9ib2FyZF9pbmZvLmJ1Y2tldF9zaXplczsKIAljY19jb25m aWcgPSB4bHJfYm9hcmRfaW5mby5jcmVkaXRfY29uZmlnc1tpZF07CmRpZmYgLXVyTiBzeXMvbWlw cy9ybWkvcGljLmggc3lzL21pcHMvcm1pL3BpYy5oCi0tLSBzeXMvbWlwcy9ybWkvcGljLmgJMjAx MC0wNC0xNyAwOToyNjozNC4wMDAzMjMwMDAgKzA1MzAKKysrIHN5cy9taXBzL3JtaS9waWMuaAky MDEwLTA0LTE3IDIyOjEwOjMyLjAwMDA3MzAwMCArMDUzMApAQCAtMjgxLDQgKzI4MSwxNiBAQAog CX0KIH0KIAorc3RhdGljIGlubGluZQordm9pZCBwaWNfc2VuZF9pcGkoaW50IGNwdSwgaW50IGlw aSwgaW50IGhhc2xvY2spCit7CisgICAgICAgIHhscl9yZWdfdCAqbW1pbyA9IHhscl9pb19tbWlv KFhMUl9JT19QSUNfT0ZGU0VUKTsKKyAgICAgICAgaW50IHRpZCwgcGlkOworCisgICAgICAgIHRp ZCA9IGNwdSAmIDB4MzsKKyAgICAgICAgcGlkID0gKGNwdSA+PiAyKSAmIDB4NzsKKworCXhscl93 cml0ZV9yZWcobW1pbywgUElDX0lQSSwgIChwaWQgPDwgMjApIHwgKHRpZCA8PCAxNikgfCBpcGkp OworfQorCiAjZW5kaWYJCQkJLyogX1JNSV9QSUNfSF8gKi8KZGlmZiAtdXJOIHN5cy9taXBzL3Jt aS94bHJfbWFjaGRlcC5jIHN5cy9taXBzL3JtaS94bHJfbWFjaGRlcC5jCi0tLSBzeXMvbWlwcy9y bWkveGxyX21hY2hkZXAuYwkyMDEwLTA0LTE3IDIyOjA0OjQyLjAwMDA5NTAwMCArMDUzMAorKysg c3lzL21pcHMvcm1pL3hscl9tYWNoZGVwLmMJMjAxMC0wNC0xNyAyMjoxNjo1Ny4wMDAwMjEwMDAg KzA1MzAKQEAgLTc5LDYgKzc5LDkgQEAKICNpbmNsdWRlIDxtaXBzL3JtaS9wZXJmbW9uLmg+CiAj ZW5kaWYKIAordm9pZCBtcHdhaXQodm9pZCk7Cit2b2lkIGVuYWJsZV9tc2dyaW5nX2ludCh2b2lk ICphcmcpOworCiB1bnNpZ25lZCBsb25nIHhscl9pb19iYXNlID0gKHVuc2lnbmVkIGxvbmcpKERF RkFVTFRfWExSX0lPX0JBU0UpOwogCiAvKiA0S0Igc3RhdGljIGRhdGEgYXJlYWQgdG8ga2VlcCBh IGNvcHkgb2YgdGhlIGJvb3Rsb2FkIGVudiB1bnRpbApAQCAtMTEwLDYgKzExMyw3IEBACiBpbnQg eGxyX2FzaWRfcGNwdSA9IDI1NjsJLyogVGhpcyB0aGUgZGVmYXVsdCAqLwogaW50IHhscl9zaHRs Yl9lbmFibGVkID0gMDsKIAorI2lmbmRlZiBTTVAKIC8qIFRoaXMgZnVuY3Rpb24gc2V0cyB1cCB0 aGUgbnVtYmVyIG9mIHRsYiBlbnRyaWVzIGF2YWlsYWJsZQogICAgdG8gdGhlIGtlcm5lbCBiYXNl ZCBvbiB0aGUgbnVtYmVyIG9mIHRocmVhZHMgYnJvdWdodCB1cC4KICAgIFRoZSBBU0lEIHJhbmdl IGFsc28gZ2V0cyBkaXZpZGVkIHNpbWlsYXJseS4KQEAgLTE3Myw2ICsxNzcsNyBAQAogCXdyaXRl XzMyYml0X3BobnhfY3RybF9yZWcoNCwgMCwgbW11X3NldHVwKTsKIAogfQorI2VuZGlmCiAKIC8q CiAgKiBQbGF0Zm9ybSBzcGVjaWZpYyByZWdpc3RlciBzZXR1cCBmb3IgQ1BVcwpAQCAtMTg3LDgg KzE5MiwxMyBAQAogCWNoYXIgKmh3X2VudjsKIAljaGFyICpzdGFydCwgKmVuZDsKIAl1aW50MzJf dCByZWcsIHZhbDsKKyNpZm5kZWYgU01QCiAJaW50IHRocl9pZCA9IHhscl90aHJfaWQoKTsKIAor LyoKKyAqIFhYWDogU01QIG5vdyBuZWVkIGRpZmZlcmVudCB3aXJlZCBtYXBwaW5ncyBmb3IgdGhy ZWFkcyAKKyAqIHdlIGNhbm5vdCBzaGFyZSBUTEJzLgorICovCiAJaWYgKHRocl9pZCA9PSAwKSB7 CiAJCWlmICgoaHdfZW52ID0gZ2V0ZW52KCJ4bHIuc2h0bGIiKSkgIT0gTlVMTCkgewogCQkJc3Rh cnQgPSBod19lbnY7CkBAIC0yMDAsNiArMjEwLDcgQEAKIAkJCXNldHVwX3RsYl9yZXNvdXJjZSgp OwogCQl9CiAJfQorI2VuZGlmCiAJaWYgKChod19lbnYgPSBnZXRlbnYoInhsci5jciIpKSA9PSBO VUxMKQogCQlyZXR1cm47CiAKQEAgLTUwNSwzICs1MTYsNjEgQEAKIHBsYXRmb3JtX3RyYXBfZXhp dCh2b2lkKQogewogfQorCisjaWZkZWYgU01QCitpbnQgeGxyX2FwX3JlbGVhc2VbTUFYQ1BVXTsK KworaW50IHBsYXRmb3JtX3N0YXJ0X2FwKGludCBjcHVpZCkKK3sKKwkvKgorCSAqIG90aGVyIGNw dXMgYXJlIGVuYWJsZWQgYnkgdGhlIGJvb3QgbG9hZGVyIGFuZCB0aGV5IHdpbGwgYmUgCisJICog YWxyZWFkeSBsb29waW5nIGluIG1wd2FpdCwgcmVsZWFzZSB0aGVtCisJICovCisJYXRvbWljX3N0 b3JlX3JlbF9pbnQoJnhscl9hcF9yZWxlYXNlW2NwdWlkXSwgMSk7CisJcmV0dXJuIDA7Cit9CisK K3ZvaWQgcGxhdGZvcm1faW5pdF9hcChpbnQgcHJvY2Vzc29yX2lkKQoreworCXVpbnQzMl90IHN0 YXQ7CisKKwkvKiBTZXR1cCBpbnRlcnJ1cHRzIGZvciBzZWNvbmRhcnkgQ1BVcyBoZXJlICovCisJ c3RhdCA9IG1pcHNfcmRfc3RhdHVzKCk7CisJc3RhdCB8PSBNSVBTX1NSX0NPUF8yX0JJVCB8IE1J UFNfU1JfQ09QXzBfQklUOworCW1pcHNfd3Jfc3RhdHVzKHN0YXQpOworCisJeGxyX3VubWFza19o YXJkX2lycSgodm9pZCAqKXBsYXRmb3JtX2lwaV9pbnRybnVtKCkpOworCXhscl91bm1hc2tfaGFy ZF9pcnEoKHZvaWQgKilJUlFfVElNRVIpOworCWlmICh4bHJfdGhyX2lkKCkgPT0gMCkgeworCQl4 bHJfbXNncmluZ19jcHVfaW5pdCgpOyAKKyAgICAgICAgCWVuYWJsZV9tc2dyaW5nX2ludChOVUxM KTsKKwkJeGxyX3VubWFza19oYXJkX2lycSgodm9pZCAqKUlSUV9NU0dSSU5HKTsKKwl9CisJCQor CXJldHVybjsKK30KKworaW50IHBsYXRmb3JtX2lwaV9pbnRybnVtKHZvaWQpIAoreworCXJldHVy biBJUlFfSVBJOworfQorCit2b2lkIHBsYXRmb3JtX2lwaV9zZW5kKGludCBjcHVpZCkKK3sKKwlw aWNfc2VuZF9pcGkoY3B1aWQsIHBsYXRmb3JtX2lwaV9pbnRybnVtKCksIDApOworfQorCit2b2lk IHBsYXRmb3JtX2lwaV9jbGVhcih2b2lkKQoreworfQorCitpbnQgcGxhdGZvcm1fcHJvY2Vzc29y X2lkKHZvaWQpCit7CisJcmV0dXJuIHhscl9jcHVfaWQoKTsKK30KKworaW50IHBsYXRmb3JtX251 bV9wcm9jZXNzb3JzKHZvaWQpCit7CisJcmV0dXJuIGZscyh4bHJfYm9vdDFfaW5mby5jcHVfb25s aW5lX21hcCk7Cit9CisjZW5kaWYK --001636b2be3f405cb90484766b03 Content-Type: application/octet-stream; name="subr_smp-fix.patch" Content-Disposition: attachment; filename="subr_smp-fix.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g850fs2g6 SW5kZXg6IHN5cy9rZXJuL3N1YnJfc21wLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2tlcm4vc3Vicl9z bXAuYwkocmV2aXNpb24gMjA1NDQ0KQorKysgc3lzL2tlcm4vc3Vicl9zbXAuYwkod29ya2luZyBj b3B5KQpAQCAtNTAyLDcgKzUwMiwxMCBAQAogCXRvcCA9ICZncm91cFswXTsKIAl0b3AtPmNnX3Bh cmVudCA9IE5VTEw7CiAJdG9wLT5jZ19jaGlsZCA9IE5VTEw7Ci0JdG9wLT5jZ19tYXNrID0gKDEg PDwgbXBfbmNwdXMpIC0gMTsKKwlpZiAobXBfbmNwdXMgPT0gc2l6ZW9mKHRvcC0+Y2dfbWFzaykg KiA4KQorCQl0b3AtPmNnX21hc2sgPSAtMTsKKwllbHNlCisJCXRvcC0+Y2dfbWFzayA9ICgxIDw8 IG1wX25jcHVzKSAtIDE7CiAJdG9wLT5jZ19jb3VudCA9IG1wX25jcHVzOwogCXRvcC0+Y2dfY2hp bGRyZW4gPSAwOwogCXRvcC0+Y2dfbGV2ZWwgPSBDR19TSEFSRV9OT05FOwo= --001636b2be3f405cb90484766b03--