From owner-freebsd-hackers@FreeBSD.ORG Sun Oct 22 15:33:54 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BB46216A407; Sun, 22 Oct 2006 15:33:54 +0000 (UTC) (envelope-from tataz@tataz.chchile.org) Received: from smtp2-g19.free.fr (smtp2-g19.free.fr [212.27.42.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 48AFA43D64; Sun, 22 Oct 2006 15:33:48 +0000 (GMT) (envelope-from tataz@tataz.chchile.org) Received: from tatooine.tataz.chchile.org (tataz.chchile.org [82.233.239.98]) by smtp2-g19.free.fr (Postfix) with ESMTP id 409AB759F8; Sun, 22 Oct 2006 17:33:48 +0200 (CEST) Received: from obiwan.tataz.chchile.org (unknown [192.168.1.25]) by tatooine.tataz.chchile.org (Postfix) with ESMTP id BBEB29E6C2; Sun, 22 Oct 2006 15:34:36 +0000 (UTC) Received: by obiwan.tataz.chchile.org (Postfix, from userid 1000) id 8FF4E405B; Sun, 22 Oct 2006 17:34:36 +0200 (CEST) Date: Sun, 22 Oct 2006 17:34:36 +0200 From: Jeremie Le Hen To: Ruslan Ermilov Message-ID: <20061022153436.GW53114@obiwan.tataz.chchile.org> References: <20061020150848.GQ53114@obiwan.tataz.chchile.org> <20061020191332.GC59856@rambler-co.ru> <20061021162635.GS53114@obiwan.tataz.chchile.org> <20061021172533.GA69551@rambler-co.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20061021172533.GA69551@rambler-co.ru> User-Agent: Mutt/1.5.13 (2006-08-11) Cc: freebsd-hackers@FreeBSD.org Subject: Re: src.conf(5) seems to affect ports build X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Oct 2006 15:33:54 -0000 Ruslan, On Sat, Oct 21, 2006 at 09:25:33PM +0400, Ruslan Ermilov wrote: > > Also, your patch avoids performing the WITH(OUT)_* stuff for ports in > > order to prevent from polluting the namespace. If there is to be > > some WITH(OUT)_* knobs which leads to CFLAGS modification in the future > > (I'm thinking about ProPolice with the upcoming GCC 4.1), wouldn't it > > be worth benefiting this framework for ports ? > > It avoids only /etc/src.conf stuff when running bsd.port.mk; if you put > WITH(OUT)_* in /etc/make.conf it will still be picked up. Yes indeed, but MK_FOO won't be set and this would require to either duplicate the code that modifies CFLAGS, or at least test for MK_FOO or WITH_FOO at the same time. Let me show you an example. I have an additional that is included from both bsd.sys.mk and bsd.port.mk: % .if ${MK_SSP} != "no" % SSP_CFLAGS ?= -fstack-protector % CFLAGS += ${SSP_CFLAGS} % . if defined(WARNS) && ${WARNS} >= 7 && !empty(SSP_CFLAGS) % CWARNFLAGS += -Wstack-protector % . endif % .endif Currently it is thus quite useful to use MK_SSP when this file is included from bsd.ports.mk. With your whole patch I would have to either duplicate these bits in bsd.ports.mk or turn the condition to something like: % .if (defined(MK_SSP) && ${MK_SSP} != "no") || defined(WITH_SSP) What do you advice me to do ? Thank you for your help. Best regards, -- Jeremie Le Hen < jeremie at le-hen dot org >< ttz at chchile dot org > From owner-freebsd-hackers@FreeBSD.ORG Sun Oct 22 17:21:45 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E265616A47E for ; Sun, 22 Oct 2006 17:21:45 +0000 (UTC) (envelope-from nicolas@i.0x5.de) Received: from n.0x5.de (n.0x5.de [217.197.85.144]) by mx1.FreeBSD.org (Postfix) with ESMTP id 645C343D45 for ; Sun, 22 Oct 2006 17:21:44 +0000 (GMT) (envelope-from nicolas@i.0x5.de) Received: by pc5.i.0x5.de (Postfix, from userid 1003) id A16E561C2D; Sun, 22 Oct 2006 19:21:42 +0200 (CEST) Date: Sun, 22 Oct 2006 19:21:42 +0200 From: Nicolas Rachinsky To: freebsd-hackers@FreeBSD.org Message-ID: <20061022172142.GA2765@mid.pc5.i.0x5.de> Mail-Followup-To: freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Powered-by: FreeBSD X-Homepage: http://www.rachinsky.de X-PGP-Keyid: 887BAE72 X-PGP-Fingerprint: 039E 9433 115F BC5F F88D 4524 5092 45C4 887B AE72 X-PGP-Keys: http://www.rachinsky.de/nicolas/gpg/nicolas_rachinsky.asc User-Agent: Mutt/1.5.13 (2006-08-11) Cc: Subject: moused vs. init / single user mode from $firewall_script X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Oct 2006 17:21:46 -0000 Hallo, I wanted to change my $firewall_script to be able to stop the boot and go to single user mode. So I added "kill -TERM $$" (like in some other rc.d scripts). But the system failed to go to singel user mode, I got only "can't get /dev/console for controlling terminal: Permission denied". If I kill moused (started by devd) before the "kill -TERM $$" in my $firewall_script the system goes to single user mode as expected. Is this my fault? Adding "killall moused" to be able to go to single user mode seems strange. Thank you, Nicolas -- http://www.rachinsky.de/nicolas From owner-freebsd-hackers@FreeBSD.ORG Mon Oct 23 15:29:06 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E083A16A47B for ; Mon, 23 Oct 2006 15:29:06 +0000 (UTC) (envelope-from dgilbert@daveg.ca) Received: from ox.eicat.ca (ox.eicat.ca [66.96.30.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4DB8943D73 for ; Mon, 23 Oct 2006 15:29:03 +0000 (GMT) (envelope-from dgilbert@daveg.ca) Received: by ox.eicat.ca (Postfix, from userid 66) id 5E59E36057; Mon, 23 Oct 2006 11:29:02 -0400 (EDT) Received: by canoe.dclg.ca (Postfix, from userid 101) id A3D264AC2B; Mon, 23 Oct 2006 11:29:03 -0400 (EDT) From: David Gilbert MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17724.57279.631710.606674@canoe.dclg.ca> Date: Mon, 23 Oct 2006 11:29:03 -0400 To: freebsd-hackers@freebsd.org X-Mailer: VM 7.17 under 21.4 (patch 19) "Constant Variable" XEmacs Lucid Subject: dhclient-script impotence. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 15:29:07 -0000 According to the documentation, dhclient calls dhclient-script for every action. It does not. It appears that dhclient only calls dhclient-script (now) to set the media. At the very least, the documentation is wrong. But the functionality that was dhclient-script was useful in many ways... not the least of which is situations where adding a default route is not the right activity. I have also noticed that dhclient (the new one) doesn't appear to correctly notice atheros wireless state changes. It doesn't appear to try to reacquire ip addresses when you roam into a new open access point network. Dave. -- ============================================================================ |David Gilbert, Independent Contractor. | Two things can be | |Mail: dave@daveg.ca | equal if and only if they | |http://daveg.ca | are precisely opposite. | =========================================================GLO================ From owner-freebsd-hackers@FreeBSD.ORG Mon Oct 23 23:06:09 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 44A2916A407 for ; Mon, 23 Oct 2006 23:06:09 +0000 (UTC) (envelope-from psionic@gmail.com) Received: from wr-out-0506.google.com (wr-out-0506.google.com [64.233.184.224]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3706043D66 for ; Mon, 23 Oct 2006 23:06:03 +0000 (GMT) (envelope-from psionic@gmail.com) Received: by wr-out-0506.google.com with SMTP id i2so411191wra for ; Mon, 23 Oct 2006 16:06:02 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=X9svbrGc6OirgQN/2MqDFISjDUX2tU0B1EK15b/ujjiIocK43HwcXcGmNGQPsNZYfd/6V67JcrF5lPeIFYcmu0Vn1yCOnSzeel2w3yrEFT0f07dTGlAn8kFKIKkG4lqUS+JXjtkmZssoG52QNc9pF5QTtS5XNbqQX5kHiSgmuA8= Received: by 10.78.139.1 with SMTP id m1mr8175561hud; Mon, 23 Oct 2006 16:06:01 -0700 (PDT) Received: by 10.78.100.10 with HTTP; Mon, 23 Oct 2006 16:06:01 -0700 (PDT) Message-ID: <5ad23a300610231606w16d65333g3a2b00cb1f4b1909@mail.gmail.com> Date: Mon, 23 Oct 2006 16:06:01 -0700 From: "Jordan Sissel" To: "David Gilbert" In-Reply-To: <17724.57279.631710.606674@canoe.dclg.ca> MIME-Version: 1.0 References: <17724.57279.631710.606674@canoe.dclg.ca> X-Mailman-Approved-At: Mon, 23 Oct 2006 23:18:17 +0000 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-hackers@freebsd.org Subject: Re: dhclient-script impotence. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Oct 2006 23:06:09 -0000 On 10/23/06, David Gilbert wrote: > > According to the documentation, dhclient calls dhclient-script for > every action. It does not. It appears that dhclient only calls > dhclient-script (now) to set the media. At the very least, the > documentation is wrong. But the functionality that was > dhclient-script was useful in many ways... not the least of which is > situations where adding a default route is not the right activity. > > I have also noticed that dhclient (the new one) doesn't appear to > correctly notice atheros wireless state changes. It doesn't appear to > try to reacquire ip addresses when you roam into a new open access > point network. > > Dave. This is due to a "feature" of the new dhclient that FreeBSD has. I think it comes from OpenBSD? At any rate, whatever Openbsd (or FreeBSD?) did to it severely crippled it's functionality regarding dhclient-script. I made an attempt to fix it, but gave up a short way through (ENOTIME). I've seen other patch attempts to fix this but those failed aswell. I'd be happy if this were fixed, though it is a not-entirely-trivial patch, iirc. -Jordan From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 09:12:18 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0D28116A40F; Tue, 24 Oct 2006 09:12:18 +0000 (UTC) (envelope-from kpielorz@tdx.co.uk) Received: from caladan.tdx.co.uk (caladan.tdx.co.uk [62.13.130.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4970A43D49; Tue, 24 Oct 2006 09:12:16 +0000 (GMT) (envelope-from kpielorz@tdx.co.uk) Received: from quadro.tdx.co.uk (rainbow.tdx.co.uk [62.13.130.232] (may be forged)) by caladan.tdx.co.uk (8.13.6/8.13.6/Kp) with ESMTP id k9O9CFKa049662; Tue, 24 Oct 2006 10:12:15 +0100 (BST) Date: Tue, 24 Oct 2006 10:13:05 +0100 From: Karl Pielorz To: Robert Watson Message-ID: In-Reply-To: <20061020134552.H38852@fledge.watson.org> References: <20061020110151.GU55428@deviant.kiev.zoral.com.ua> <82C14B40C9061504218D7585@Unsupported> <20061020134552.H38852@fledge.watson.org> X-Mailer: Mulberry/4.0.4 (Win32) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Cc: Kostik Belousov , freebsd-hackers@freebsd.org Subject: Re: 6.1-STABLE hangs, ddb shows 'acpi_timer_read'? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 09:12:18 -0000 --On 20 October 2006 13:47 +0100 Robert Watson wrote: >> I'm just a little hesitant to put it all in, and end up with a machine >> that's 80% slower :( > > Depends a lot on your workload. WITNESS used to really, really slow > things down for kernel lock intensive workloads (VFS especially); now it > just really slows things down. INVARIANTS overhead is generally > measurable, but for most workloads it is likely <20%. The place > INVARIANTS hits you is when the kernel is allocating and freeing lots of > memory, during which INVARIANTS will be scrubbing and checking for use > after free, etc. It's worth running with WITNESS when debugging > deadlocks if possible, because it is, essentially, a deadlock debugging > tool. A moderate number of people run with INVARIANTS in production, but > you generally don't want to do that with WITNESS. Well this is happening on an almost daily basis for me, so I threw everything in. I'd rather have lousy performance for a couple of days - and get all the info needed to fix the problem, than fsck a terrabyte, and mop up after a hung machine daily ;) Thanks for the replies, crossing fingers now :) -Karl From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 09:31:40 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8480C16A417 for ; Tue, 24 Oct 2006 09:31:40 +0000 (UTC) (envelope-from rosmir@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.185]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6927343D4C for ; Tue, 24 Oct 2006 09:31:39 +0000 (GMT) (envelope-from rosmir@gmail.com) Received: by nf-out-0910.google.com with SMTP id p77so148333nfc for ; Tue, 24 Oct 2006 02:31:38 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=BL3KozN4AcWVFI+9ejvXoQo2athWuZnDfUn81jjQG8zCyPw6oHMOybocKHHDcWBaLan4aBrS/rhXS8C6M7UradPpHh77oE3DpPhEKAfmnTBVFFwKiFhUuEJK+HrBc3R3VjWHxmSfGjQPXwjH8ocgj6xdvWjooJLBgL0A3QFMICk= Received: by 10.78.160.2 with SMTP id i2mr8877441hue; Tue, 24 Oct 2006 02:31:37 -0700 (PDT) Received: by 10.78.115.17 with HTTP; Tue, 24 Oct 2006 02:31:37 -0700 (PDT) Message-ID: <9c6e52b10610240231h72fdb7a9xec1078e0937ed24b@mail.gmail.com> Date: Tue, 24 Oct 2006 13:31:37 +0400 From: "Stepan A. Baranov" To: davidxu@freebsd.org, freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3894_21344688.1161682297840" Cc: Subject: scheduler CORE for RELENG_6 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 09:31:40 -0000 ------=_Part_3894_21344688.1161682297840 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, I prepared patch to port scheduler from HEAD to RELENG_6. I applied this patch for my workstation and scheduler CORE works fine. After applying patch you can say: options SCHED_CORE # CORE scheduler in your KERN CONF file and rebuild your kernel. Please, test it and fix it. Stepan Baranov. ------=_Part_3894_21344688.1161682297840 Content-Type: application/octet-stream; name=patch-add-CORE Content-Transfer-Encoding: base64 X-Attachment-Id: f_etnv1i65 Content-Disposition: attachment; filename="patch-add-CORE" SW5kZXg6IC4vc3lzL3N5cy9zY2hlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMv c3JjL3N5cy9zeXMvc2NoZWQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNApkaWZmIC11IC1y MS4yNCBzY2hlZC5oCi0tLSAuL3N5cy9zeXMvc2NoZWQuaAkxOSBBcHIgMjAwNSAwNDowMToyNSAt MDAwMAkxLjI0CisrKyAuL3N5cy9zeXMvc2NoZWQuaAkyNCBPY3QgMjAwNiAwOToxMDowNyAtMDAw MApAQCAtNzgsNiArNzgsOCBAQAogdm9pZAlzY2hlZF9hZGQoc3RydWN0IHRocmVhZCAqdGQsIGlu dCBmbGFncyk7CiB2b2lkCXNjaGVkX2Nsb2NrKHN0cnVjdCB0aHJlYWQgKnRkKTsKIHZvaWQJc2No ZWRfcmVtKHN0cnVjdCB0aHJlYWQgKnRkKTsKK3ZvaWQJc2NoZWRfdGljayh2b2lkKTsKK3ZvaWQJ c2NoZWRfcmVsaW5xdWlzaChzdHJ1Y3QgdGhyZWFkICp0ZCk7CiAKIC8qCiAgKiBCaW5kaW5nIG1h a2VzIGNwdSBhZmZpbml0eSBwZXJtYW5lbnQgd2hpbGUgcGlubmluZyBpcyB1c2VkIHRvIHRlbXBv cmFyaWx5CkluZGV4OiAuL3N5cy9zeXMvc3lzdG0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9t ZS9uY3ZzL3NyYy9zeXMvc3lzL3N5c3RtLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjM0LjIu NQpkaWZmIC11IC1yMS4yMzQuMi41IHN5c3RtLmgKLS0tIC4vc3lzL3N5cy9zeXN0bS5oCTYgSnVs IDIwMDYgMDg6MzI6NTAgLTAwMDAJMS4yMzQuMi41CisrKyAuL3N5cy9zeXMvc3lzdG0uaAkyNCBP Y3QgMjAwNiAwOToxMDoxMCAtMDAwMApAQCAtMjM5LDYgKzIzOSwxMiBAQAogaW50CXVuc2V0ZW52 KGNvbnN0IGNoYXIgKm5hbWUpOwogaW50CXRlc3RlbnYoY29uc3QgY2hhciAqbmFtZSk7CiAKK3R5 cGVkZWYgdWludDY0X3QgKGNwdV90aWNrX2YpKHZvaWQpOwordm9pZCBzZXRfY3B1dGlja2VyKGNw dV90aWNrX2YgKmZ1bmMsIHVpbnQ2NF90IGZyZXEsIHVuc2lnbmVkIHZhcik7CitleHRlcm4gY3B1 X3RpY2tfZiAqY3B1X3RpY2tzOwordWludDY0X3QgY3B1X3RpY2tyYXRlKHZvaWQpOwordWludDY0 X3QgY3B1dGljazJ1c2VjKHVpbnQ2NF90IHRpY2spOworCiAjaWZkZWYgQVBNX0ZJWFVQX0NBTExU T0RPCiBzdHJ1Y3QgdGltZXZhbDsKIHZvaWQJYWRqdXN0X3RpbWVvdXRfY2FsbHRvZG8oc3RydWN0 IHRpbWV2YWwgKnRpbWVfY2hhbmdlKTsKSW5kZXg6IC4vc3lzL2tlcm4vc2NoZWRfdWxlLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRfdWxlLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUzLjIuMwpkaWZmIC11IC1yMS4xNTMuMi4zIHNjaGVkX3Vs ZS5jCi0tLSAuL3N5cy9rZXJuL3NjaGVkX3VsZS5jCTI3IFNlcCAyMDA1IDEyOjAwOjMxIC0wMDAw CTEuMTUzLjIuMworKysgLi9zeXMva2Vybi9zY2hlZF91bGUuYwkyNCBPY3QgMjAwNiAwOToxMDo0 MSAtMDAwMApAQCAtMTk2Miw2ICsxOTYyLDE5IEBACiAJcmV0dXJuICh0ZC0+dGRfa3NlLT5rZV9m bGFncyAmIEtFRl9CT1VORCk7CiB9CiAKK3ZvaWQKK3NjaGVkX3JlbGlucXVpc2goc3RydWN0IHRo cmVhZCAqdGQpCit7CisJc3RydWN0IGtzZWdycCAqa2c7CisgCisJa2cgPSB0ZC0+dGRfa3NlZ3Jw OworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChrZy0+a2dfcHJpX2NsYXNzID09 IFBSSV9USU1FU0hBUkUpCisJCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhfVElNRVNIQVJFKTsKKwlt aV9zd2l0Y2goU1dfVk9MLCBOVUxMKTsKKwltdHhfdW5sb2NrX3NwaW4oJnNjaGVkX2xvY2spOwor fQorCiBpbnQKIHNjaGVkX2xvYWQodm9pZCkKIHsKQEAgLTE5OTUsNSArMjAwOCwxMCBAQAogewog CXJldHVybiAoc2l6ZW9mKHN0cnVjdCB0aHJlYWQpICsgc2l6ZW9mKHN0cnVjdCB0ZF9zY2hlZCkp OwogfQorCit2b2lkCitzY2hlZF90aWNrKHZvaWQpCit7Cit9CiAjZGVmaW5lIEtFUk5fU1dJVENI X0lOQ0xVREUgMQogI2luY2x1ZGUgImtlcm4va2Vybl9zd2l0Y2guYyIKSW5kZXg6IC4vc3lzL2tl cm4vc2NoZWRfY29yZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC4vc3lzL2tlcm4vc2NoZWRfY29y ZS5jCmRpZmYgLU4gLi9zeXMva2Vybi9zY2hlZF9jb3JlLmMKLS0tIC9kZXYvbnVsbAkxIEphbiAx OTcwIDAwOjAwOjAwIC0wMDAwCisrKyAuL3N5cy9rZXJuL3NjaGVkX2NvcmUuYwkyNCBPY3QgMjAw NiAwOToxMTowOCAtMDAwMApAQCAtMCwwICsxLDE3NDEgQEAKKy8qLQorICogQ29weXJpZ2h0IChj KSAyMDA1LTIwMDYsIERhdmlkIFh1IDx5Znh1QGNvcnAubmV0ZWFzZS5jb20+CisgKiBBbGwgcmln aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0 OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVT UyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVW RU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwK KyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B R0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor I2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEOiAvcmVwb21hbi9yL25j dnMvc3JjL3N5cy9rZXJuL3NjaGVkX2NvcmUuYyx2IDEuOSAyMDA2LzA2LzI5IDEyOjI5OjIwIGRh dmlkeHUgRXhwICQiKTsKKworI2luY2x1ZGUgIm9wdF9od3BtY19ob29rcy5oIgorI2luY2x1ZGUg Im9wdF9zY2hlZC5oIgorCisjZGVmaW5lIGtzZSB0ZF9zY2hlZAorCisjaW5jbHVkZSA8c3lzL3Bh cmFtLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisjaW5jbHVkZSA8c3lzL2tkYi5oPgorI2lu Y2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMva3RocmVhZC5oPgorI2luY2x1ZGUg PHN5cy9rdHIuaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5o PgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5j bHVkZSA8c3lzL3Jlc291cmNldmFyLmg+CisjaW5jbHVkZSA8c3lzL3NjaGVkLmg+CisjaW5jbHVk ZSA8c3lzL3NtcC5oPgorI2luY2x1ZGUgPHN5cy9zeC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwu aD4KKyNpbmNsdWRlIDxzeXMvc3lzcHJvdG8uaD4KKyNpbmNsdWRlIDxzeXMvdHVybnN0aWxlLmg+ CisjaW5jbHVkZSA8c3lzL3VuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy92bW1ldGVyLmg+CisjaWZk ZWYgS1RSQUNFCisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2luY2x1ZGUgPHN5cy9rdHJhY2UuaD4K KyNlbmRpZgorCisjaWZkZWYgSFdQTUNfSE9PS1MKKyNpbmNsdWRlIDxzeXMvcG1ja2Vybi5oPgor I2VuZGlmCisKKyNpbmNsdWRlIDxtYWNoaW5lL2NwdS5oPgorI2luY2x1ZGUgPG1hY2hpbmUvc21w Lmg+CisKKy8qIGdldCBwcm9jZXNzJ3MgbmljZSB2YWx1ZSwgc2tpcCB2YWx1ZSAyMCB3aGljaCBp cyBub3Qgc3VwcG9ydGVkICovCisjZGVmaW5lCVBST0NfTklDRShwKQkJTUlOKChwKS0+cF9uaWNl LCAxOSkKKworLyogY29udmVydCBuaWNlIHRvIGtlcm5lbCB0aHJlYWQgcHJpb3JpdHkgKi8KKyNk ZWZpbmUJTklDRV9UT19QUkkobmljZSkJKFBVU0VSICsgMjAgKyAobmljZSkpCisKKy8qIGdldCBw cm9jZXNzJ3Mgc3RhdGljIHByaW9yaXR5ICovCisjZGVmaW5lCVBST0NfUFJJKHApCQlOSUNFX1RP X1BSSShQUk9DX05JQ0UocCkpCisKKy8qIGNvbnZlcnQga2VybmVsIHRocmVhZCBwcmlvcml0eSB0 byB1c2VyIHByaW9yaXR5ICovCisjZGVmaW5lCVVTRVJfUFJJKHByaSkJCU1JTigocHJpKSAtIFBV U0VSLCAzOSkKKworLyogY29udmVydCBuaWNlIHZhbHVlIHRvIHVzZXIgcHJpb3JpdHkgKi8KKyNk ZWZpbmUJUFJPQ19VU0VSX1BSSShwKQkoUFJPQ19OSUNFKHApICsgMjApCisKKy8qIG1heGltdW0g dXNlciBwcmlvcml0eSwgaGlnaGVzdCBwcmlvICsgMSAqLworI2RlZmluZQlNQVhfVVNFUl9QUkkJ CTQwCisKKy8qIG1heGltdW0ga2VybmVsIHByaW9yaXR5IGl0cyBuaWNlIGlzIDE5ICovCisjZGVm aW5lIFBVU0VSX01BWAkJKFBVU0VSICsgMzkpCisKKy8qIHRpY2tzIGFuZCBuYW5vc2Vjb25kIGNv bnZlcnRlcnMgKi8KKyNkZWZpbmUJTlNfVE9fSFoobikJCSgobikgLyAoMTAwMDAwMDAwMCAvIGh6 KSkKKyNkZWZpbmUJSFpfVE9fTlMoaCkJCSgoaCkgKiAoMTAwMDAwMDAwMCAvIGh6KSkKKworLyog dGlja3MgYW5kIG1pY3Jvc2Vjb25kIGNvbnZlcnRlcnMgKi8KKyNkZWZpbmUgTVNfVE9fSFoobSkJ CSgobSkgLyAoMTAwMDAwMCAvIGh6KSkKKworI2RlZmluZQlQUklfU0NPUkVfUkFUSU8JCTI1Cisj ZGVmaW5lCU1BWF9TQ09SRQkJKE1BWF9VU0VSX1BSSSAqIFBSSV9TQ09SRV9SQVRJTyAvIDEwMCkK KyNkZWZpbmUJTUFYX1NMRUVQX1RJTUUJCShkZWZfdGltZXNsaWNlICogTUFYX1NDT1JFKQorI2Rl ZmluZQlOU19NQVhfU0xFRVBfVElNRQkoSFpfVE9fTlMoTUFYX1NMRUVQX1RJTUUpKQorI2RlZmlu ZQlTVEFSVkFUSU9OX1RJTUUJCShNQVhfU0xFRVBfVElNRSkKKworI2RlZmluZQlDVVJSRU5UX1ND T1JFKGtnKQlcCisgICAoTUFYX1NDT1JFICogTlNfVE9fSFooKGtnKS0+a2dfc2xwdGltZSkgLyBN QVhfU0xFRVBfVElNRSkKKworI2RlZmluZQlTQ0FMRV9VU0VSX1BSSSh4LCB1cHJpKQlcCisgICAg TUFYKHggKiAodXByaSArIDEpIC8gKE1BWF9VU0VSX1BSSS8yKSwgbWluX3RpbWVzbGljZSkKKwor LyoKKyAqIEZvciBhIHRocmVhZCB3aG9zZSBuaWNlIGlzIHplcm8sIHRoZSBzY29yZSBpcyB1c2Vk IHRvIGRldGVybWluZQorICogaWYgaXQgaXMgYW4gaW50ZXJhY3RpdmUgdGhyZWFkLgorICovCisj ZGVmaW5lCUlOVEVSQUNUSVZFX0JBU0VfU0NPUkUJKE1BWF9TQ09SRSAqIDIwKS8xMDAKKworLyoK KyAqIENhbGN1bGF0ZSBhIHNjb3JlIHdoaWNoIGEgdGhyZWFkIG11c3QgaGF2ZSB0byBwcm92ZSBp dHNlbGYgaXMKKyAqIGFuIGludGVyYWN0aXZlIHRocmVhZC4KKyAqLworI2RlZmluZQlJTlRFUkFD VElWRV9TQ09SRShrZSkJCVwKKyAgICAoUFJPQ19OSUNFKChrZSktPmtlX3Byb2MpICogTUFYX1ND T1JFIC8gNDAgKyBJTlRFUkFDVElWRV9CQVNFX1NDT1JFKQorCisvKiBUZXN0IGlmIGEgdGhyZWFk IGlzIGFuIGludGVyYWN0aXZlIHRocmVhZCAqLworI2RlZmluZQlUSFJFQURfSVNfSU5URVJBQ1RJ VkUoa2UpCVwKKyAgICAoKGtlKS0+a2Vfa3NlZ3JwLT5rZ191c2VyX3ByaSA8PQlcCisJUFJPQ19Q UkkoKGtlKS0+a2VfcHJvYykgLSBJTlRFUkFDVElWRV9TQ09SRShrZSkpCisKKy8qCisgKiBDYWxj dWxhdGUgaG93IGxvbmcgYSB0aHJlYWQgbXVzdCBzbGVlcCB0byBwcm92ZSBpdHNlbGYgaXMgYW4K KyAqIGludGVyYWN0aXZlIHNsZWVwLgorICovCisjZGVmaW5lCUlOVEVSQUNUSVZFX1NMRUVQX1RJ TUUoa2UpCVwKKyAgICAoSFpfVE9fTlMoTUFYX1NMRUVQX1RJTUUgKgkJXAorCShNQVhfU0NPUkUg LyAyICsgSU5URVJBQ1RJVkVfU0NPUkUoKGtlKSkgKyAxKSAvIE1BWF9TQ09SRSAtIDEpKQorCisj ZGVmaW5lCUNISUxEX1dFSUdIVAk5MAorI2RlZmluZQlQQVJFTlRfV0VJR0hUCTkwCisjZGVmaW5l CUVYSVRfV0VJR0hUCTMKKworI2RlZmluZQlTQ0hFRF9MT0FEX1NDQUxFCTEyOFVMCisKKyNkZWZp bmUJSURMRQkJMAorI2RlZmluZSBJRExFX0lETEUJMQorI2RlZmluZSBOT1RfSURMRQkyCisKKyNk ZWZpbmUgS1FCX0xFTgkJKDgpCQkvKiBOdW1iZXIgb2YgcHJpb3JpdHkgc3RhdHVzIHdvcmRzLiAq LworI2RlZmluZSBLUUJfTDJCUFcJKDUpCQkvKiBMb2cyKHNpemVvZihycWJfd29yZF90KSAqIE5C QlkpKS4gKi8KKyNkZWZpbmUgS1FCX0JQVwkJKDE8PEtRQl9MMkJQVykJLyogQml0cyBpbiBhbiBy cWJfd29yZF90LiAqLworCisjZGVmaW5lIEtRQl9CSVQocHJpKQkoMSA8PCAoKHByaSkgJiAoS1FC X0JQVyAtIDEpKSkKKyNkZWZpbmUgS1FCX1dPUkQocHJpKQkoKHByaSkgPj4gS1FCX0wyQlBXKQor I2RlZmluZSBLUUJfRkZTKHdvcmQpCShmZnMod29yZCkgLSAxKQorCisjZGVmaW5lCUtRX05RUwkJ MjU2CisKKy8qCisgKiBUeXBlIG9mIHJ1biBxdWV1ZSBzdGF0dXMgd29yZC4KKyAqLwordHlwZWRl ZiB1X2ludDMyX3QJa3FiX3dvcmRfdDsKKworLyoKKyAqIEhlYWQgb2YgcnVuIHF1ZXVlcy4KKyAq LworVEFJTFFfSEVBRChrcnFoZWFkLCBrc2UpOworCisvKgorICogQml0IGFycmF5IHdoaWNoIG1h aW50YWlucyB0aGUgc3RhdHVzIG9mIGEgcnVuIHF1ZXVlLiAgV2hlbiBhIHF1ZXVlIGlzCisgKiBu b24tZW1wdHkgdGhlIGJpdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBxdWV1ZSBudW1iZXIgd2lsbCBi ZSBzZXQuCisgKi8KK3N0cnVjdCBrcnFiaXRzIHsKKwlrcWJfd29yZF90CXJxYl9iaXRzW0tRQl9M RU5dOworfTsKKworLyoKKyAqIFJ1biBxdWV1ZSBzdHJ1Y3R1cmUuIENvbnRhaW5zIGFuIGFycmF5 IG9mIHJ1biBxdWV1ZXMgb24gd2hpY2ggcHJvY2Vzc2VzCisgKiBhcmUgcGxhY2VkLCBhbmQgYSBz dHJ1Y3R1cmUgdG8gbWFpbnRhaW4gdGhlIHN0YXR1cyBvZiBlYWNoIHF1ZXVlLgorICovCitzdHJ1 Y3Qga3J1bnEgeworCXN0cnVjdCBrcnFiaXRzCXJxX3N0YXR1czsKKwlzdHJ1Y3Qga3JxaGVhZAly cV9xdWV1ZXNbS1FfTlFTXTsKK307CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGRhdGFzdHJ1Y3R1 cmVzIGFyZSBhbGxvY2F0ZWQgd2l0aGluIHRoZWlyIHBhcmVudCBzdHJ1Y3R1cmUKKyAqIGJ1dCBh cmUgc2NoZWR1bGVyIHNwZWNpZmljLgorICovCisvKgorICogVGhlIHNjaGVkdWxhYmxlIGVudGl0 eSB0aGF0IGNhbiBiZSBnaXZlbiBhIGNvbnRleHQgdG8gcnVuLiAgQSBwcm9jZXNzIG1heQorICog aGF2ZSBzZXZlcmFsIG9mIHRoZXNlLgorICovCitzdHJ1Y3Qga3NlIHsKKwlzdHJ1Y3QgdGhyZWFk CSprZV90aHJlYWQ7CS8qICgqKSBBY3RpdmUgYXNzb2NpYXRlZCB0aHJlYWQuICovCisJVEFJTFFf RU5UUlkoa3NlKSBrZV9wcm9jcTsJLyogKGoveikgUnVuIHF1ZXVlLiAqLworCWludAkJa2VfZmxh Z3M7CS8qIChqKSBLRUZfKiBmbGFncy4gKi8KKwlmaXhwdF90CQlrZV9wY3RjcHU7CS8qIChqKSAl Y3B1IGR1cmluZyBwX3N3dGltZS4gKi8KKwl1X2NoYXIJCWtlX3JxaW5kZXg7CS8qIChqKSBSdW4g cXVldWUgaW5kZXguICovCisJZW51bSB7CisJCUtFU19USFJFQUQgPSAweDAsCS8qIHNsYXZlZCB0 byB0aHJlYWQgc3RhdGUgKi8KKwkJS0VTX09OUlVOUQorCX0ga2Vfc3RhdGU7CQkJLyogKGopIHRo cmVhZCBzY2hlZCBzcGVjaWZpYyBzdGF0dXMuICovCisJaW50CQlrZV9zbGljZTsJLyogVGltZSBz bGljZSBpbiB0aWNrcyAqLworCXN0cnVjdCBrc2VxCSprZV9rc2VxOwkvKiBLc2VxIHRoZSB0aHJl YWQgYmVsb25ncyB0byAqLworCXN0cnVjdCBrcnVucQkqa2VfcnVucTsJLyogQXNzaW9jaWF0ZWQg cnVucXVldWUgKi8KKyNpZmRlZiBTTVAKKwlpbnQJCWtlX2NwdTsJCS8qIENQVSB0aGF0IHdlIGhh dmUgYWZmaW5pdHkgZm9yLiAqLworCWludAkJa2Vfd2FrZXVwX2NwdTsJLyogQ1BVIHRoYXQgaGFz IGFjdGl2YXRlZCB1cy4gKi8KKyNlbmRpZgorCWludAkJa2VfYWN0aXZhdGVkOwkvKiBIb3cgaXMg dGhlIHRocmVhZCBhY3RpdmF0ZWQuICovCisJdWludDY0X3QJa2VfdGltZXN0YW1wOwkvKiBMYXN0 IHRpbWVzdGFtcCBkZXBlbmRlbnQgb24gc3RhdGUuKi8KKwl1bnNpZ25lZAlrZV9sYXN0cmFuOwkv KiBMYXN0IHRpbWVzdGFtcCB0aGUgdGhyZWFkIHJhbi4gKi8KKworCS8qIFRoZSBmb2xsb3dpbmcg dmFyaWFibGVzIGFyZSBvbmx5IHVzZWQgZm9yIHBjdGNwdSBjYWxjdWxhdGlvbiAqLworCWludAkJ a2VfbHRpY2s7CS8qIExhc3QgdGljayB0aGF0IHdlIHdlcmUgcnVubmluZyBvbiAqLworCWludAkJ a2VfZnRpY2s7CS8qIEZpcnN0IHRpY2sgdGhhdCB3ZSB3ZXJlIHJ1bm5pbmcgb24gKi8KKwlpbnQJ CWtlX3RpY2tzOwkvKiBUaWNrIGNvdW50ICovCit9OworCisjZGVmaW5lCXRkX2tzZQkJCXRkX3Nj aGVkCisjZGVmaW5lIGtlX3Byb2MJCQlrZV90aHJlYWQtPnRkX3Byb2MKKyNkZWZpbmUga2Vfa3Nl Z3JwCQlrZV90aHJlYWQtPnRkX2tzZWdycAorCisvKiBmbGFncyBrZXB0IGluIGtlX2ZsYWdzICov CisjZGVmaW5lCUtFRl9CT1VORAkweDAwMDEJCS8qIFRocmVhZCBjYW4gbm90IG1pZ3JhdGUuICov CisjZGVmaW5lCUtFRl9QUkVFTVBURUQJMHgwMDAyCQkvKiBUaHJlYWQgd2FzIHByZWVtcHRlZC4g Ki8KKyNkZWZpbmUgS0VGX01JR1JBVElORwkweDAwMDQJCS8qIFRocmVhZCBpcyBtaWdyYXRpbmcu ICovCisjZGVmaW5lCUtFRl9TTEVFUAkweDAwMDgJCS8qIFRocmVhZCBkaWQgc2xlZXAuICovCisj ZGVmaW5lCUtFRl9ESURSVU4JMHgwMDEwCQkvKiBUaHJlYWQgYWN0dWFsbHkgcmFuLiAqLworI2Rl ZmluZQlLRUZfRVhJVAkweDAwMjAJCS8qIFRocmVhZCBpcyBiZWluZyBraWxsZWQuICovCisjZGVm aW5lIEtFRl9ORVhUUlEJMHgwNDAwCQkvKiBUaHJlYWQgc2hvdWxkIGJlIGluIG5leHQgcXVldWUu ICovCisjZGVmaW5lIEtFRl9GSVJTVF9TTElDRQkweDA4MDAJCS8qIFRocmVhZCBoYXMgZmlyc3Qg dGltZSBzbGljZSBsZWZ0LiAqLworCitzdHJ1Y3Qga2dfc2NoZWQgeworCXN0cnVjdCB0aHJlYWQJ KnNrZ19sYXN0X2Fzc2lnbmVkOyAvKiAoaikgTGFzdCB0aHJlYWQgYXNzaWduZWQgdG8gKi8KKwkJ CQkJICAgIC8qIHRoZSBzeXN0ZW0gc2NoZWR1bGVyICovCisJdV9sb25nCXNrZ19zbHB0aW1lOwkJ LyogKGopIE51bWJlciBvZiB0aWNrcyB3ZSB2b2wuIHNsZXB0ICovCisJdV9sb25nCXNrZ19ydW50 aW1lOwkJLyogKGopIFRlbXAgdG90YWwgcnVuIHRpbWUuICovCisJaW50CXNrZ19hdmFpbF9vcGVu bmluZ3M7CS8qIChqKSBOdW0gdW5maWxsZWQgc2xvdHMgaW4gZ3JvdXAuKi8KKwlpbnQJc2tnX2Nv bmN1cnJlbmN5OwkvKiAoaikgTnVtIHRocmVhZHMgcmVxdWVzdGVkIGluIGdyb3VwLiovCit9Owor I2RlZmluZSBrZ19sYXN0X2Fzc2lnbmVkCWtnX3NjaGVkLT5za2dfbGFzdF9hc3NpZ25lZAorI2Rl ZmluZSBrZ19hdmFpbF9vcGVubmluZ3MJa2dfc2NoZWQtPnNrZ19hdmFpbF9vcGVubmluZ3MKKyNk ZWZpbmUga2dfY29uY3VycmVuY3kJCWtnX3NjaGVkLT5za2dfY29uY3VycmVuY3kKKyNkZWZpbmUg a2dfc2xwdGltZQkJa2dfc2NoZWQtPnNrZ19zbHB0aW1lCisjZGVmaW5lIGtnX3J1bnRpbWUJCWtn X3NjaGVkLT5za2dfcnVudGltZQorCisjZGVmaW5lIFNMT1RfUkVMRUFTRShrZykJKGtnKS0+a2df YXZhaWxfb3Blbm5pbmdzKysKKyNkZWZpbmUJU0xPVF9VU0Uoa2cpCQkoa2cpLT5rZ19hdmFpbF9v cGVubmluZ3MtLQorCisvKgorICogQ3B1IHBlcmNlbnRhZ2UgY29tcHV0YXRpb24gbWFjcm9zIGFu ZCBkZWZpbmVzLgorICoKKyAqIFNDSEVEX0NQVV9USU1FOglOdW1iZXIgb2Ygc2Vjb25kcyB0byBh dmVyYWdlIHRoZSBjcHUgdXNhZ2UgYWNyb3NzLgorICogU0NIRURfQ1BVX1RJQ0tTOglOdW1iZXIg b2YgaHogdGlja3MgdG8gYXZlcmFnZSB0aGUgY3B1IHVzYWdlIGFjcm9zcy4KKyAqLworCisjZGVm aW5lCVNDSEVEX0NQVV9USU1FCQkxMAorI2RlZmluZQlTQ0hFRF9DUFVfVElDS1MJCShoeiAqIFND SEVEX0NQVV9USU1FKQorCisvKgorICoga3NlcSAtIHBlciBwcm9jZXNzb3IgcnVucXMgYW5kIHN0 YXRpc3RpY3MuCisgKi8KK3N0cnVjdCBrc2VxIHsKKwlzdHJ1Y3Qga3J1bnEJKmtzcV9jdXJyOwkJ LyogQ3VycmVudCBxdWV1ZS4gKi8KKwlzdHJ1Y3Qga3J1bnEJKmtzcV9uZXh0OwkJLyogTmV4dCB0 aW1lc2hhcmUgcXVldWUuICovCisJc3RydWN0IGtydW5xCWtzcV90aW1lc2hhcmVbMl07CS8qIFJ1 biBxdWV1ZXMgZm9yICFJRExFLiAqLworCXN0cnVjdCBrcnVucQlrc3FfaWRsZTsJCS8qIFF1ZXVl IG9mIElETEUgdGhyZWFkcy4gKi8KKwlpbnQJCWtzcV9sb2FkOworCXVpbnQ2NF90CWtzcV9sYXN0 X3RpbWVzdGFtcDsJLyogUGVyLWNwdSBsYXN0IGNsb2NrIHRpY2sgKi8KKwl1bnNpZ25lZAlrc3Ff ZXhwaXJlZF90aWNrOwkvKiBGaXJzdCBleHBpcmVkIHRpY2sgKi8KKwlzaWduZWQgY2hhcglrc3Ff ZXhwaXJlZF9uaWNlOwkvKiBMb3dlc3QgbmljZSBpbiBuZXh0cSAqLworfTsKKworc3RhdGljIHN0 cnVjdCBrc2Uga3NlMDsKK3N0YXRpYyBzdHJ1Y3Qga2dfc2NoZWQga2dfc2NoZWQwOworCitzdGF0 aWMgaW50IG1pbl90aW1lc2xpY2UgPSA1Oworc3RhdGljIGludCBkZWZfdGltZXNsaWNlID0gMTAw Oworc3RhdGljIGludCBncmFudWxhcml0eSA9IDEwOworc3RhdGljIGludCByZWFsc3RhdGh6Owor c3RhdGljIGludCBzY2hlZF90ZGNudDsKK3N0YXRpYyBzdHJ1Y3Qga3NlcSBrc2VxX2dsb2JhbDsK KworLyoKKyAqIE9uZSBrc2UgcXVldWUgcGVyIHByb2Nlc3Nvci4KKyAqLworI2lmZGVmIFNNUAor c3RhdGljIHN0cnVjdCBrc2VxCWtzZXFfY3B1W01BWENQVV07CisKKyNkZWZpbmUJS1NFUV9TRUxG KCkJKCZrc2VxX2NwdVtQQ1BVX0dFVChjcHVpZCldKQorI2RlZmluZQlLU0VRX0NQVSh4KQkoJmtz ZXFfY3B1Wyh4KV0pCisjZGVmaW5lCUtTRVFfSUQoeCkJKCh4KSAtIGtzZXFfY3B1KQorCitzdGF0 aWMgY3B1bWFza190CWNwdV9zaWJsaW5nW01BWENQVV07CisKKyNlbHNlCS8qICFTTVAgKi8KKwor I2RlZmluZQlLU0VRX1NFTEYoKQkoJmtzZXFfZ2xvYmFsKQorI2RlZmluZQlLU0VRX0NQVSh4KQko JmtzZXFfZ2xvYmFsKQorI2VuZGlmCisKKy8qIGRlY2F5IDk1JSBvZiBgcF9wY3RjcHUnIGluIDYw IHNlY29uZHM7IHNlZSBDQ1BVX1NISUZUIGJlZm9yZSBjaGFuZ2luZyAqLworc3RhdGljIGZpeHB0 X3QgIGNjcHUgPSAwLjk1MTIyOTQyNDUwMDcxNDAwOTA5ICogRlNDQUxFOyAvKiBleHAoLTEvMjAp ICovCitTWVNDVExfSU5UKF9rZXJuLCBPSURfQVVUTywgY2NwdSwgQ1RMRkxBR19SRCwgJmNjcHUs IDAsICIiKTsKKworc3RhdGljIHZvaWQgc2NoZWRfc2V0dXAodm9pZCAqZHVtbXkpOworU1lTSU5J VChzY2hlZF9zZXR1cCwgU0lfU1VCX1JVTl9RVUVVRSwgU0lfT1JERVJfRklSU1QsIHNjaGVkX3Nl dHVwLCBOVUxMKTsKKworc3RhdGljIHZvaWQgc2NoZWRfaW5pdHRpY2tzKHZvaWQgKmR1bW15KTsK K1NZU0lOSVQoc2NoZWRfaW5pdHRpY2tzLCBTSV9TVUJfQ0xPQ0tTLCBTSV9PUkRFUl9USElSRCwg c2NoZWRfaW5pdHRpY2tzLCBOVUxMKQorCitzdGF0aWMgU1lTQ1RMX05PREUoX2tlcm4sIE9JRF9B VVRPLCBzY2hlZCwgQ1RMRkxBR19SVywgMCwgIlNjaGVkdWxlciIpOworCitTWVNDVExfU1RSSU5H KF9rZXJuX3NjaGVkLCBPSURfQVVUTywgbmFtZSwgQ1RMRkxBR19SRCwgIkNPUkUiLCAwLAorICAg ICJTY2hlZHVsZXIgbmFtZSIpOworCisjaWZkZWYgU01QCisvKiBFbmFibGUgZm9yd2FyZGluZyBv ZiB3YWtldXBzIHRvIGFsbCBvdGhlciBjcHVzICovCitTWVNDVExfTk9ERShfa2Vybl9zY2hlZCwg T0lEX0FVVE8sIGlwaXdha2V1cCwgQ1RMRkxBR19SRCwgTlVMTCwgIktlcm5lbCBTTVAiKTsKKwor c3RhdGljIGludCBydW5xX2Z1enogPSAwOworU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwgT0lEX0FV VE8sIHJ1bnFfZnV6eiwgQ1RMRkxBR19SVywgJnJ1bnFfZnV6eiwgMCwgIiIpOworCitzdGF0aWMg aW50IGZvcndhcmRfd2FrZXVwX2VuYWJsZWQgPSAxOworU1lTQ1RMX0lOVChfa2Vybl9zY2hlZF9p cGl3YWtldXAsIE9JRF9BVVRPLCBlbmFibGVkLCBDVExGTEFHX1JXLAorCSAgICZmb3J3YXJkX3dh a2V1cF9lbmFibGVkLCAwLAorCSAgICJGb3J3YXJkaW5nIG9mIHdha2V1cCB0byBpZGxlIENQVXMi KTsKKworc3RhdGljIGludCBmb3J3YXJkX3dha2V1cHNfcmVxdWVzdGVkID0gMDsKK1NZU0NUTF9J TlQoX2tlcm5fc2NoZWRfaXBpd2FrZXVwLCBPSURfQVVUTywgcmVxdWVzdGVkLCBDVExGTEFHX1JE LAorCSAgICZmb3J3YXJkX3dha2V1cHNfcmVxdWVzdGVkLCAwLAorCSAgICJSZXF1ZXN0cyBmb3Ig Rm9yd2FyZGluZyBvZiB3YWtldXAgdG8gaWRsZSBDUFVzIik7CisKK3N0YXRpYyBpbnQgZm9yd2Fy ZF93YWtldXBzX2RlbGl2ZXJlZCA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1 cCwgT0lEX0FVVE8sIGRlbGl2ZXJlZCwgQ1RMRkxBR19SRCwKKwkgICAmZm9yd2FyZF93YWtldXBz X2RlbGl2ZXJlZCwgMCwKKwkgICAiQ29tcGxldGVkIEZvcndhcmRpbmcgb2Ygd2FrZXVwIHRvIGlk bGUgQ1BVcyIpOworCitzdGF0aWMgaW50IGZvcndhcmRfd2FrZXVwX3VzZV9tYXNrID0gMTsKK1NZ U0NUTF9JTlQoX2tlcm5fc2NoZWRfaXBpd2FrZXVwLCBPSURfQVVUTywgdXNlbWFzaywgQ1RMRkxB R19SVywKKwkgICAmZm9yd2FyZF93YWtldXBfdXNlX21hc2ssIDAsCisJICAgIlVzZSB0aGUgbWFz ayBvZiBpZGxlIGNwdXMiKTsKKworc3RhdGljIGludCBmb3J3YXJkX3dha2V1cF91c2VfbG9vcCA9 IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwgT0lEX0FVVE8sIHVzZWxvb3As IENUTEZMQUdfUlcsCisJICAgJmZvcndhcmRfd2FrZXVwX3VzZV9sb29wLCAwLAorCSAgICJVc2Ug YSBsb29wIHRvIGZpbmQgaWRsZSBjcHVzIik7CisKK3N0YXRpYyBpbnQgZm9yd2FyZF93YWtldXBf dXNlX3NpbmdsZSA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwgT0lEX0FV VE8sIG9uZWNwdSwgQ1RMRkxBR19SVywKKwkgICAmZm9yd2FyZF93YWtldXBfdXNlX3NpbmdsZSwg MCwKKwkgICAiT25seSBzaWduYWwgb25lIGlkbGUgY3B1Iik7CisKK3N0YXRpYyBpbnQgZm9yd2Fy ZF93YWtldXBfdXNlX2h0dCA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwg T0lEX0FVVE8sIGh0dDIsIENUTEZMQUdfUlcsCisJICAgJmZvcndhcmRfd2FrZXVwX3VzZV9odHQs IDAsCisJICAgImFjY291bnQgZm9yIGh0dCIpOworI2VuZGlmCisKK3N0YXRpYyB2b2lkIHNsb3Rf ZmlsbChzdHJ1Y3Qga3NlZ3JwICopOworCitzdGF0aWMgdm9pZCBrcnVucV9hZGQoc3RydWN0IGty dW5xICosIHN0cnVjdCBrc2UgKik7CitzdGF0aWMgc3RydWN0IGtzZSAqa3J1bnFfY2hvb3NlKHN0 cnVjdCBrcnVucSAqKTsKK3N0YXRpYyB2b2lkIGtydW5xX2NscmJpdChzdHJ1Y3Qga3J1bnEgKnJx LCBpbnQgcHJpKTsKK3N0YXRpYyBpbnQga3J1bnFfZmluZGJpdChzdHJ1Y3Qga3J1bnEgKnJxKTsK K3N0YXRpYyB2b2lkIGtydW5xX2luaXQoc3RydWN0IGtydW5xICopOworc3RhdGljIHZvaWQga3J1 bnFfcmVtb3ZlKHN0cnVjdCBrcnVucSAqLCBzdHJ1Y3Qga3NlICopOworCitzdGF0aWMgc3RydWN0 IGtzZSAqIGtzZXFfY2hvb3NlKHN0cnVjdCBrc2VxICopOworc3RhdGljIHZvaWQga3NlcV9sb2Fk X2FkZChzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9sb2Fk X3JlbShzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9ydW5x X2FkZChzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9ydW5x X3JlbShzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9zZXR1 cChzdHJ1Y3Qga3NlcSAqKTsKKworc3RhdGljIGludCBzY2hlZF9pc190aW1lc2hhcmUoc3RydWN0 IGtzZWdycCAqa2cpOworc3RhdGljIHN0cnVjdCBrc2UgKnNjaGVkX2Nob29zZSh2b2lkKTsKK3N0 YXRpYyBpbnQgc2NoZWRfY2FsY19wcmkoc3RydWN0IGtzZWdycCAqa2cpOworc3RhdGljIGludCBz Y2hlZF9zdGFydmluZyhzdHJ1Y3Qga3NlcSAqLCB1bnNpZ25lZCwgc3RydWN0IGtzZSAqKTsKK3N0 YXRpYyB2b2lkIHNjaGVkX3BjdGNwdV91cGRhdGUoc3RydWN0IGtzZSAqKTsKK3N0YXRpYyB2b2lk IHNjaGVkX3RocmVhZF9wcmlvcml0eShzdHJ1Y3QgdGhyZWFkICosIHVfY2hhcik7CitzdGF0aWMg dWludDY0X3QJc2NoZWRfdGltZXN0YW1wKHZvaWQpOworc3RhdGljIGludCBzY2hlZF9yZWNhbGNf cHJpKHN0cnVjdCBrc2UgKmtlLCB1aW50NjRfdCBub3cpOworc3RhdGljIGludCBzY2hlZF90aW1l c2xpY2Uoc3RydWN0IGtzZSAqa2UpOworc3RhdGljIHZvaWQgc2NoZWRfdXBkYXRlX3J1bnRpbWUo c3RydWN0IGtzZSAqa2UsIHVpbnQ2NF90IG5vdyk7CitzdGF0aWMgdm9pZCBzY2hlZF9jb21taXRf cnVudGltZShzdHJ1Y3Qga3NlICprZSk7CisKKy8qCisgKiBJbml0aWFsaXplIGEgcnVuIHN0cnVj dHVyZS4KKyAqLworc3RhdGljIHZvaWQKK2tydW5xX2luaXQoc3RydWN0IGtydW5xICpycSkKK3sK KwlpbnQgaTsKKworCWJ6ZXJvKHJxLCBzaXplb2YgKnJxKTsKKwlmb3IgKGkgPSAwOyBpIDwgS1Ff TlFTOyBpKyspCisJCVRBSUxRX0lOSVQoJnJxLT5ycV9xdWV1ZXNbaV0pOworfQorCisvKgorICog Q2xlYXIgdGhlIHN0YXR1cyBiaXQgb2YgdGhlIHF1ZXVlIGNvcnJlc3BvbmRpbmcgdG8gcHJpb3Jp dHkgbGV2ZWwgcHJpLAorICogaW5kaWNhdGluZyB0aGF0IGl0IGlzIGVtcHR5LgorICovCitzdGF0 aWMgaW5saW5lIHZvaWQKK2tydW5xX2NscmJpdChzdHJ1Y3Qga3J1bnEgKnJxLCBpbnQgcHJpKQor eworCXN0cnVjdCBrcnFiaXRzICpycWI7CisKKwlycWIgPSAmcnEtPnJxX3N0YXR1czsKKwlycWIt PnJxYl9iaXRzW0tRQl9XT1JEKHByaSldICY9IH5LUUJfQklUKHByaSk7Cit9CisKKy8qCisgKiBG aW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgbm9uLWVtcHR5IHJ1biBxdWV1ZS4gIFRoaXMgaXMg ZG9uZSBieQorICogc2Nhbm5pbmcgdGhlIHN0YXR1cyBiaXRzLCBhIHNldCBiaXQgaW5kaWNhdGVz IGEgbm9uLWVtcHR5IHF1ZXVlLgorICovCitzdGF0aWMgaW50CitrcnVucV9maW5kYml0KHN0cnVj dCBrcnVucSAqcnEpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKwlpbnQgcHJpOworCWludCBp OworCisJcnFiID0gJnJxLT5ycV9zdGF0dXM7CisJZm9yIChpID0gMDsgaSA8IEtRQl9MRU47IGkr KykgeworCQlpZiAocnFiLT5ycWJfYml0c1tpXSkgeworCQkJcHJpID0gS1FCX0ZGUyhycWItPnJx Yl9iaXRzW2ldKSArIChpIDw8IEtRQl9MMkJQVyk7CisJCQlyZXR1cm4gKHByaSk7CisJCX0KKwl9 CisJcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK2tydW5xX2NoZWNrKHN0cnVjdCBrcnVu cSAqcnEpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKwlpbnQgaTsKKworCXJxYiA9ICZycS0+ cnFfc3RhdHVzOworCWZvciAoaSA9IDA7IGkgPCBLUUJfTEVOOyBpKyspIHsKKwkJaWYgKHJxYi0+ cnFiX2JpdHNbaV0pCisJCQlyZXR1cm4gKDEpOworCX0KKwlyZXR1cm4gKDApOworfQorCisvKgor ICogU2V0IHRoZSBzdGF0dXMgYml0IG9mIHRoZSBxdWV1ZSBjb3JyZXNwb25kaW5nIHRvIHByaW9y aXR5IGxldmVsIHByaSwKKyAqIGluZGljYXRpbmcgdGhhdCBpdCBpcyBub24tZW1wdHkuCisgKi8K K3N0YXRpYyBpbmxpbmUgdm9pZAora3J1bnFfc2V0Yml0KHN0cnVjdCBrcnVucSAqcnEsIGludCBw cmkpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKworCXJxYiA9ICZycS0+cnFfc3RhdHVzOwor CXJxYi0+cnFiX2JpdHNbS1FCX1dPUkQocHJpKV0gfD0gS1FCX0JJVChwcmkpOworfQorCisvKgor ICogQWRkIHRoZSBLU0UgdG8gdGhlIHF1ZXVlIHNwZWNpZmllZCBieSBpdHMgcHJpb3JpdHksIGFu ZCBzZXQgdGhlCisgKiBjb3JyZXNwb25kaW5nIHN0YXR1cyBiaXQuCisgKi8KK3N0YXRpYyB2b2lk CitrcnVucV9hZGQoc3RydWN0IGtydW5xICpycSwgc3RydWN0IGtzZSAqa2UpCit7CisJc3RydWN0 IGtycWhlYWQgKnJxaDsKKwlpbnQgcHJpOworCisJcHJpID0ga2UtPmtlX3RocmVhZC0+dGRfcHJp b3JpdHk7CisJa2UtPmtlX3JxaW5kZXggPSBwcmk7CisJa3J1bnFfc2V0Yml0KHJxLCBwcmkpOwor CXJxaCA9ICZycS0+cnFfcXVldWVzW3ByaV07CisJaWYgKGtlLT5rZV9mbGFncyAmIEtFRl9QUkVF TVBURUQpCisJCVRBSUxRX0lOU0VSVF9IRUFEKHJxaCwga2UsIGtlX3Byb2NxKTsKKwllbHNlCisJ CVRBSUxRX0lOU0VSVF9UQUlMKHJxaCwga2UsIGtlX3Byb2NxKTsKK30KKworLyoKKyAqIEZpbmQg dGhlIGhpZ2hlc3QgcHJpb3JpdHkgcHJvY2VzcyBvbiB0aGUgcnVuIHF1ZXVlLgorICovCitzdGF0 aWMgc3RydWN0IGtzZSAqCitrcnVucV9jaG9vc2Uoc3RydWN0IGtydW5xICpycSkKK3sKKwlzdHJ1 Y3Qga3JxaGVhZCAqcnFoOworCXN0cnVjdCBrc2UgKmtlOworCWludCBwcmk7CisKKwltdHhfYXNz ZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJaWYgKChwcmkgPSBrcnVucV9maW5kYml0KHJx KSkgIT0gLTEpIHsKKwkJcnFoID0gJnJxLT5ycV9xdWV1ZXNbcHJpXTsKKwkJa2UgPSBUQUlMUV9G SVJTVChycWgpOworCQlLQVNTRVJUKGtlICE9IE5VTEwsICgia3J1bnFfY2hvb3NlOiBubyB0aHJl YWQgb24gYnVzeSBxdWV1ZSIpKTsKKyNpZmRlZiBTTVAKKwkJaWYgKHByaSA8PSBQUklfTUFYX0lU SEQgfHwgcnVucV9mdXp6IDw9IDApCisJCQlyZXR1cm4gKGtlKTsKKworCQkvKgorCQkgKiBJbiB0 aGUgZmlyc3QgY291cGxlIG9mIGVudHJpZXMsIGNoZWNrIGlmCisJCSAqIHRoZXJlIGlzIG9uZSBm b3Igb3VyIENQVSBhcyBhIHByZWZlcmVuY2UuCisJCSAqLworCQlzdHJ1Y3Qga3NlICprZTIgPSBr ZTsKKwkJY29uc3QgaW50IG15Y3B1ID0gUENQVV9HRVQoY3B1aWQpOworCQljb25zdCBpbnQgbXlt YXNrID0gMSA8PCBteWNwdTsKKwkJaW50IGNvdW50ID0gcnVucV9mdXp6OworCisJCXdoaWxlIChj b3VudC0tICYmIGtlMikgeworCQkJY29uc3QgaW50IGNwdSA9IGtlMi0+a2Vfd2FrZXVwX2NwdTsK KwkJCWlmIChjcHVfc2libGluZ1tjcHVdICYgbXltYXNrKSB7CisJCQkJa2UgPSBrZTI7CisJCQkJ YnJlYWs7CisJCQl9CisJCQlrZTIgPSBUQUlMUV9ORVhUKGtlMiwga2VfcHJvY3EpOworCQl9Cisj ZW5kaWYKKwkJcmV0dXJuIChrZSk7CisJfQorCisJcmV0dXJuIChOVUxMKTsKK30KKworLyoKKyAq IFJlbW92ZSB0aGUgS1NFIGZyb20gdGhlIHF1ZXVlIHNwZWNpZmllZCBieSBpdHMgcHJpb3JpdHks IGFuZCBjbGVhciB0aGUKKyAqIGNvcnJlc3BvbmRpbmcgc3RhdHVzIGJpdCBpZiB0aGUgcXVldWUg YmVjb21lcyBlbXB0eS4KKyAqIENhbGxlciBtdXN0IHNldCBrZS0+a2Vfc3RhdGUgYWZ0ZXJ3YXJk cy4KKyAqLworc3RhdGljIHZvaWQKK2tydW5xX3JlbW92ZShzdHJ1Y3Qga3J1bnEgKnJxLCBzdHJ1 Y3Qga3NlICprZSkKK3sKKwlzdHJ1Y3Qga3JxaGVhZCAqcnFoOworCWludCBwcmk7CisKKwlLQVNT RVJUKGtlLT5rZV9wcm9jLT5wX3NmbGFnICYgUFNfSU5NRU0sCisJCSgicnVucV9yZW1vdmU6IHBy b2Nlc3Mgc3dhcHBlZCBvdXQiKSk7CisJcHJpID0ga2UtPmtlX3JxaW5kZXg7CisJcnFoID0gJnJx LT5ycV9xdWV1ZXNbcHJpXTsKKwlLQVNTRVJUKGtlICE9IE5VTEwsICgia3J1bnFfcmVtb3ZlOiBu byBwcm9jIG9uIGJ1c3kgcXVldWUiKSk7CisJVEFJTFFfUkVNT1ZFKHJxaCwga2UsIGtlX3Byb2Nx KTsKKwlpZiAoVEFJTFFfRU1QVFkocnFoKSkKKwkJa3J1bnFfY2xyYml0KHJxLCBwcmkpOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQKK2tzZXFfcnVucV9hZGQoc3RydWN0IGtzZXEgKmtzZXEsIHN0 cnVjdCBrc2UgKmtlKQoreworCWtydW5xX2FkZChrZS0+a2VfcnVucSwga2UpOworCWtlLT5rZV9r c2VxID0ga3NlcTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitrc2VxX3J1bnFfcmVtKHN0cnVj dCBrc2VxICprc2VxLCBzdHJ1Y3Qga3NlICprZSkKK3sKKwlrcnVucV9yZW1vdmUoa2UtPmtlX3J1 bnEsIGtlKTsKKwlrZS0+a2Vfa3NlcSA9IE5VTEw7CisJa2UtPmtlX3J1bnEgPSBOVUxMOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQKK2tzZXFfbG9hZF9hZGQoc3RydWN0IGtzZXEgKmtzZXEsIHN0 cnVjdCBrc2UgKmtlKQoreworCWtzZXEtPmtzcV9sb2FkKys7CisJaWYgKChrZS0+a2VfcHJvYy0+ cF9mbGFnICYgUF9OT0xPQUQpID09IDApCisJCXNjaGVkX3RkY250Kys7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZAora3NlcV9sb2FkX3JlbShzdHJ1Y3Qga3NlcSAqa3NlcSwgc3RydWN0IGtzZSAq a2UpCit7CisJa3NlcS0+a3NxX2xvYWQtLTsKKwlpZiAoKGtlLT5rZV9wcm9jLT5wX2ZsYWcgJiBQ X05PTE9BRCkgPT0gMCkKKwkJc2NoZWRfdGRjbnQtLTsKK30KKworLyoKKyAqIFBpY2sgdGhlIGhp Z2hlc3QgcHJpb3JpdHkgdGFzayB3ZSBoYXZlIGFuZCByZXR1cm4gaXQuCisgKi8KK3N0YXRpYyBz dHJ1Y3Qga3NlICoKK2tzZXFfY2hvb3NlKHN0cnVjdCBrc2VxICprc2VxKQoreworCXN0cnVjdCBr cnVucSAqc3dhcDsKKwlzdHJ1Y3Qga3NlICprZTsKKworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ss IE1BX09XTkVEKTsKKwlrZSA9IGtydW5xX2Nob29zZShrc2VxLT5rc3FfY3Vycik7CisJaWYgKGtl ICE9IE5VTEwpCisJCXJldHVybiAoa2UpOworCisJa3NlcS0+a3NxX2V4cGlyZWRfbmljZSA9IFBS SU9fTUFYICsgMTsKKwlrc2VxLT5rc3FfZXhwaXJlZF90aWNrID0gMDsKKwlzd2FwID0ga3NlcS0+ a3NxX2N1cnI7CisJa3NlcS0+a3NxX2N1cnIgPSBrc2VxLT5rc3FfbmV4dDsKKwlrc2VxLT5rc3Ff bmV4dCA9IHN3YXA7CisJa2UgPSBrcnVucV9jaG9vc2Uoa3NlcS0+a3NxX2N1cnIpOworCWlmIChr ZSAhPSBOVUxMKQorCQlyZXR1cm4gKGtlKTsKKworCXJldHVybiBrcnVucV9jaG9vc2UoJmtzZXEt PmtzcV9pZGxlKTsKK30KKworc3RhdGljIGlubGluZSB1aW50NjRfdAorc2NoZWRfdGltZXN0YW1w KHZvaWQpCit7CisJdWludDY0X3Qgbm93ID0gY3B1dGljazJ1c2VjKGNwdV90aWNrcygpKSAqIDEw MDA7CisJcmV0dXJuIChub3cpOworfQorCitzdGF0aWMgaW5saW5lIGludAorc2NoZWRfdGltZXNs aWNlKHN0cnVjdCBrc2UgKmtlKQoreworCXN0cnVjdCBwcm9jICpwID0ga2UtPmtlX3Byb2M7CisK KwlpZiAoa2UtPmtlX3Byb2MtPnBfbmljZSA8IDApCisJCXJldHVybiBTQ0FMRV9VU0VSX1BSSShk ZWZfdGltZXNsaWNlKjQsIFBST0NfVVNFUl9QUkkocCkpOworICAgICAgICBlbHNlCisJCXJldHVy biBTQ0FMRV9VU0VSX1BSSShkZWZfdGltZXNsaWNlLCBQUk9DX1VTRVJfUFJJKHApKTsKK30KKwor c3RhdGljIGlubGluZSBpbnQKK3NjaGVkX2lzX3RpbWVzaGFyZShzdHJ1Y3Qga3NlZ3JwICprZykK K3sKKwlyZXR1cm4gKGtnLT5rZ19wcmlfY2xhc3MgPT0gUFJJX1RJTUVTSEFSRSk7Cit9CisKK3N0 YXRpYyBpbnQKK3NjaGVkX2NhbGNfcHJpKHN0cnVjdCBrc2VncnAgKmtnKQoreworCWludCBzY29y ZSwgcHJpOworCisJaWYgKHNjaGVkX2lzX3RpbWVzaGFyZShrZykpIHsKKwkJc2NvcmUgPSBDVVJS RU5UX1NDT1JFKGtnKSAtIE1BWF9TQ09SRSAvIDI7CisJCXByaSA9IFBST0NfUFJJKGtnLT5rZ19w cm9jKSAtIHNjb3JlOworCQlpZiAocHJpIDwgUFVTRVIpCisJCQlwcmkgPSBQVVNFUjsKKwkJZWxz ZSBpZiAocHJpID4gUFVTRVJfTUFYKQorCQkJcHJpID0gUFVTRVJfTUFYOworCQlyZXR1cm4gKHBy aSk7CisJfQorCXJldHVybiAoa2ctPmtnX3VzZXJfcHJpKTsKK30KKworc3RhdGljIGludAorc2No ZWRfcmVjYWxjX3ByaShzdHJ1Y3Qga3NlICprZSwgdWludDY0X3Qgbm93KQoreworCXVpbnQ2NF90 CWRlbHRhOworCXVuc2lnbmVkIGludAlzbGVlcF90aW1lOworCXN0cnVjdCBrc2VncnAJKmtnOwor CisJa2cgPSBrZS0+a2Vfa3NlZ3JwOworCWRlbHRhID0gbm93IC0ga2UtPmtlX3RpbWVzdGFtcDsK KwlpZiAoX19wcmVkaWN0X2ZhbHNlKCFzY2hlZF9pc190aW1lc2hhcmUoa2cpKSkKKwkJcmV0dXJu IChrZy0+a2dfdXNlcl9wcmkpOworCisJaWYgKGRlbHRhID4gTlNfTUFYX1NMRUVQX1RJTUUpCisJ CXNsZWVwX3RpbWUgPSBOU19NQVhfU0xFRVBfVElNRTsKKwllbHNlCisJCXNsZWVwX3RpbWUgPSAo dW5zaWduZWQgaW50KWRlbHRhOworCWlmIChfX3ByZWRpY3RfZmFsc2Uoc2xlZXBfdGltZSA9PSAw KSkKKwkJZ290byBvdXQ7CisKKwlpZiAoa2UtPmtlX2FjdGl2YXRlZCAhPSAtMSAmJgorCSAgICBz bGVlcF90aW1lID4gSU5URVJBQ1RJVkVfU0xFRVBfVElNRShrZSkpIHsKKwkJa2ctPmtnX3NscHRp bWUgPSBIWl9UT19OUyhNQVhfU0xFRVBfVElNRSAtIGRlZl90aW1lc2xpY2UpOworCX0gZWxzZSB7 CisJCXNsZWVwX3RpbWUgKj0gKE1BWF9TQ09SRSAtIENVUlJFTlRfU0NPUkUoa2cpKSA/IDogMTsK KworCQkvKgorCQkgKiBJZiB0aHJlYWQgaXMgd2FraW5nIGZyb20gdW5pbnRlcnJ1cHRpYmxlIHNs ZWVwLCBpdCBpcworCQkgKiB1bmxpa2VseSBhbiBpbnRlcmFjdGl2ZSBzbGVlcCwgbGltaXQgaXRz IHNsZWVwIHRpbWUgdG8KKwkJICogcHJldmVudCBpdCBmcm9tIGJlaW5nIGFuIGludGVyYWN0aXZl IHRocmVhZC4KKwkJICovCisJCWlmIChrZS0+a2VfYWN0aXZhdGVkID09IC0xKSB7CisJCQlpZiAo a2ctPmtnX3NscHRpbWUgPj0gSU5URVJBQ1RJVkVfU0xFRVBfVElNRShrZSkpCisJCQkJc2xlZXBf dGltZSA9IDA7CisJCQllbHNlIGlmIChrZy0+a2dfc2xwdGltZSArIHNsZWVwX3RpbWUgPj0KKwkJ CQlJTlRFUkFDVElWRV9TTEVFUF9USU1FKGtlKSkgeworCQkJCWtnLT5rZ19zbHB0aW1lID0gSU5U RVJBQ1RJVkVfU0xFRVBfVElNRShrZSk7CisJCQkJc2xlZXBfdGltZSA9IDA7CisJCQl9CisJCX0K KworCQkvKgorCQkgKiBUaHJlYWQgZ2V0cyBwcmlvcml0eSBib29zdCBoZXJlLgorICAgICAgICAg ICAgICAgICAqLworCQlrZy0+a2dfc2xwdGltZSArPSBzbGVlcF90aW1lOworCisJCS8qIFNsZWVw IHRpbWUgc2hvdWxkIG5ldmVyIGJlIGxhcmdlciB0aGFuIG1heGltdW0gKi8KKwkJaWYgKGtnLT5r Z19zbHB0aW1lID4gTlNfTUFYX1NMRUVQX1RJTUUpCisJCQlrZy0+a2dfc2xwdGltZSA9IE5TX01B WF9TTEVFUF9USU1FOworCX0KKworb3V0OgorCXJldHVybiAoc2NoZWRfY2FsY19wcmkoa2cpKTsK K30KKworc3RhdGljIHZvaWQKK3NjaGVkX3VwZGF0ZV9ydW50aW1lKHN0cnVjdCBrc2UgKmtlLCB1 aW50NjRfdCBub3cpCit7CisJdWludDY0X3QgcnVudGltZTsKKwlzdHJ1Y3Qga3NlZ3JwICprZyA9 IGtlLT5rZV9rc2VncnA7CisKKwlpZiAoc2NoZWRfaXNfdGltZXNoYXJlKGtnKSkgeworCQlpZiAo KGludDY0X3QpKG5vdyAtIGtlLT5rZV90aW1lc3RhbXApIDwgTlNfTUFYX1NMRUVQX1RJTUUpIHsK KwkJCXJ1bnRpbWUgPSBub3cgLSBrZS0+a2VfdGltZXN0YW1wOworCQkJaWYgKChpbnQ2NF90KShu b3cgLSBrZS0+a2VfdGltZXN0YW1wKSA8IDApCisJCQkJcnVudGltZSA9IDA7CisJCX0gZWxzZSB7 CisJCQlydW50aW1lID0gTlNfTUFYX1NMRUVQX1RJTUU7CisJCX0KKwkJcnVudGltZSAvPSAoQ1VS UkVOVF9TQ09SRShrZykgPyA6IDEpOworCQlrZy0+a2dfcnVudGltZSArPSBydW50aW1lOworCQlr ZS0+a2VfdGltZXN0YW1wID0gbm93OworCX0KK30KKworc3RhdGljIHZvaWQKK3NjaGVkX2NvbW1p dF9ydW50aW1lKHN0cnVjdCBrc2UgKmtlKQoreworCXN0cnVjdCBrc2VncnAgKmtnID0ga2UtPmtl X2tzZWdycDsKKworCWlmIChrZy0+a2dfcnVudGltZSA+IGtnLT5rZ19zbHB0aW1lKQorCQlrZy0+ a2dfc2xwdGltZSA9IDA7CisJZWxzZQorCQlrZy0+a2dfc2xwdGltZSAtPSBrZy0+a2dfcnVudGlt ZTsKKwlrZy0+a2dfcnVudGltZSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkCitrc2VxX3NldHVwKHN0 cnVjdCBrc2VxICprc2VxKQoreworCWtydW5xX2luaXQoJmtzZXEtPmtzcV90aW1lc2hhcmVbMF0p OworCWtydW5xX2luaXQoJmtzZXEtPmtzcV90aW1lc2hhcmVbMV0pOworCWtydW5xX2luaXQoJmtz ZXEtPmtzcV9pZGxlKTsKKwlrc2VxLT5rc3FfY3VyciA9ICZrc2VxLT5rc3FfdGltZXNoYXJlWzBd OworCWtzZXEtPmtzcV9uZXh0ID0gJmtzZXEtPmtzcV90aW1lc2hhcmVbMV07CisJa3NlcS0+a3Nx X2V4cGlyZWRfbmljZSA9IFBSSU9fTUFYICsgMTsKKwlrc2VxLT5rc3FfZXhwaXJlZF90aWNrID0g MDsKK30KKworc3RhdGljIHZvaWQKK3NjaGVkX3NldHVwKHZvaWQgKmR1bW15KQoreworI2lmZGVm IFNNUAorCWludCBpOworI2VuZGlmCisKKwkvKgorCSAqIFRvIGF2b2lkIGRpdmlkZS1ieS16ZXJv LCB3ZSBzZXQgcmVhbHN0YXRoeiBhIGR1bW15IHZhbHVlCisJICogaW4gY2FzZSB3aGljaCBzY2hl ZF9jbG9jaygpIGNhbGxlZCBiZWZvcmUgc2NoZWRfaW5pdHRpY2tzKCkuCisJICovCisJcmVhbHN0 YXRoegk9IGh6OworCW1pbl90aW1lc2xpY2UJPSBNQVgoNSAqIGh6IC8gMTAwMCwgMSk7CisJZGVm X3RpbWVzbGljZQk9IE1BWCgxMDAgKiBoeiAvIDEwMDAsIDEpOworCWdyYW51bGFyaXR5CT0gTUFY KDEwICogaHogLyAxMDAwLCAxKTsKKworCWtzZXFfc2V0dXAoJmtzZXFfZ2xvYmFsKTsKKyNpZmRl ZiBTTVAKKwlydW5xX2Z1enogPSBNSU4obXBfbmNwdXMgKiAyLCA4KTsKKwkvKgorCSAqIEluaXRp YWxpemUgdGhlIGtzZXFzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBNQVhDUFU7IGkrKykgewor CQlzdHJ1Y3Qga3NlcSAqa3NxOworCisJCWtzcSA9ICZrc2VxX2NwdVtpXTsKKwkJa3NlcV9zZXR1 cCgma3NlcV9jcHVbaV0pOworCQljcHVfc2libGluZ1tpXSA9IDEgPDwgaTsKKwl9CisJaWYgKHNt cF90b3BvbG9neSAhPSBOVUxMKSB7CisJCWludCBpLCBqOworCQljcHVtYXNrX3QgdmlzaXRlZDsK KwkJc3RydWN0IGNwdV9ncm91cCAqY2c7CisKKwkJdmlzaXRlZCA9IDA7CisJCWZvciAoaSA9IDA7 IGkgPCBzbXBfdG9wb2xvZ3ktPmN0X2NvdW50OyBpKyspIHsKKwkJCWNnID0gJnNtcF90b3BvbG9n eS0+Y3RfZ3JvdXBbaV07CisJCQlpZiAoY2ctPmNnX21hc2sgJiB2aXNpdGVkKQorCQkJCXBhbmlj KCJkdXBsaWNhdGVkIGNwdW1hc2sgaW4gY3RfZ3JvdXAuIik7CisJCQlpZiAoY2ctPmNnX21hc2sg PT0gMCkKKwkJCQljb250aW51ZTsKKwkJCXZpc2l0ZWQgfD0gY2ctPmNnX21hc2s7CisJCQlmb3Ig KGogPSAwOyBqIDwgTUFYQ1BVOyBqKyspIHsKKwkJCQlpZiAoKGNnLT5jZ19tYXNrICYgKDEgPDwg aikpICE9IDApCisJCQkJCWNwdV9zaWJsaW5nW2pdIHw9IGNnLT5jZ19tYXNrOworCQkJfQorCQl9 CisJfQorI2VuZGlmCisKKwltdHhfbG9ja19zcGluKCZzY2hlZF9sb2NrKTsKKwlrc2VxX2xvYWRf YWRkKEtTRVFfU0VMRigpLCAma3NlMCk7CisJbXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsK K30KKworLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCitzY2hlZF9pbml0dGlja3Modm9pZCAq ZHVtbXkpCit7CisJbXR4X2xvY2tfc3Bpbigmc2NoZWRfbG9jayk7CisJcmVhbHN0YXRoeiA9IHN0 YXRoeiA/IHN0YXRoeiA6IGh6OworCW10eF91bmxvY2tfc3Bpbigmc2NoZWRfbG9jayk7Cit9CisK Ky8qCisgKiBWZXJ5IGVhcmx5IGluIHRoZSBib290IHNvbWUgc2V0dXAgb2Ygc2NoZWR1bGVyLXNw ZWNpZmljCisgKiBwYXJ0cyBvZiBwcm9jMCBhbmQgb2Ygc29lbSBzY2hlZHVsZXIgcmVzb3VyY2Vz IG5lZWRzIHRvIGJlIGRvbmUuCisgKiBDYWxsZWQgZnJvbToKKyAqICBwcm9jMF9pbml0KCkKKyAq Lwordm9pZAorc2NoZWRpbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXQgdXAgdGhlIHNjaGVkdWxl ciBzcGVjaWZpYyBwYXJ0cyBvZiBwcm9jMC4KKwkgKi8KKwlwcm9jMC5wX3NjaGVkID0gTlVMTDsg LyogWFhYICovCisJa3NlZ3JwMC5rZ19zY2hlZCA9ICZrZ19zY2hlZDA7CisJdGhyZWFkMC50ZF9z Y2hlZCA9ICZrc2UwOworCWtzZTAua2VfdGhyZWFkID0gJnRocmVhZDA7CisJa3NlMC5rZV9zdGF0 ZSA9IEtFU19USFJFQUQ7CisJa3NlMC5rZV9zbGljZSA9IDEwMDsKKwlrZ19zY2hlZDAuc2tnX2Nv bmN1cnJlbmN5ID0gMTsKKwlrZ19zY2hlZDAuc2tnX2F2YWlsX29wZW5uaW5ncyA9IDA7IC8qIHdl IGFyZSBhbHJlYWR5IHJ1bm5pbmcgKi8KK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBzb21ld2hh dCBhY2N1cmF0ZSBzaW5jZSBnaXZlbiBtYW55IHByb2Nlc3NlcyBvZiB0aGUgc2FtZQorICogcHJp b3JpdHkgdGhleSB3aWxsIHN3aXRjaCB3aGVuIHRoZWlyIHNsaWNlcyBydW4gb3V0LCB3aGljaCB3 aWxsIGJlCisgKiBhdCBtb3N0IFNDSEVEX1NMSUNFX01BWC4KKyAqLworaW50CitzY2hlZF9ycl9p bnRlcnZhbCh2b2lkKQoreworCXJldHVybiAoZGVmX3RpbWVzbGljZSk7Cit9CisKK3N0YXRpYyB2 b2lkCitzY2hlZF9wY3RjcHVfdXBkYXRlKHN0cnVjdCBrc2UgKmtlKQoreworCS8qCisJICogQWRq dXN0IGNvdW50ZXJzIGFuZCB3YXRlcm1hcmsgZm9yIHBjdGNwdSBjYWxjLgorCSAqLworCWlmIChr ZS0+a2VfbHRpY2sgPiB0aWNrcyAtIFNDSEVEX0NQVV9USUNLUykgeworCQkvKgorCQkgKiBTaGlm dCB0aGUgdGljayBjb3VudCBvdXQgc28gdGhhdCB0aGUgZGl2aWRlIGRvZXNuJ3QKKwkJICogcm91 bmQgYXdheSBvdXIgcmVzdWx0cy4KKwkJICovCisJCWtlLT5rZV90aWNrcyA8PD0gMTA7CisJCWtl LT5rZV90aWNrcyA9IChrZS0+a2VfdGlja3MgLyAodGlja3MgLSBrZS0+a2VfZnRpY2spKSAqCisJ CSAgICBTQ0hFRF9DUFVfVElDS1M7CisJCWtlLT5rZV90aWNrcyA+Pj0gMTA7CisJfSBlbHNlCisJ CWtlLT5rZV90aWNrcyA9IDA7CisJa2UtPmtlX2x0aWNrID0gdGlja3M7CisJa2UtPmtlX2Z0aWNr ID0ga2UtPmtlX2x0aWNrIC0gU0NIRURfQ1BVX1RJQ0tTOworfQorCitzdGF0aWMgdm9pZAorc2No ZWRfdGhyZWFkX3ByaW9yaXR5KHN0cnVjdCB0aHJlYWQgKnRkLCB1X2NoYXIgcHJpbykKK3sKKwlz dHJ1Y3Qga3NlICprZTsKKworCWtlID0gdGQtPnRkX2tzZTsKKwltdHhfYXNzZXJ0KCZzY2hlZF9s b2NrLCBNQV9PV05FRCk7CisJaWYgKF9fcHJlZGljdF9mYWxzZSh0ZC0+dGRfcHJpb3JpdHkgPT0g cHJpbykpCisJCXJldHVybjsKKworCWlmIChURF9PTl9SVU5RKHRkKSkgeworCQkvKgorCQkgKiBJ ZiB0aGUgcHJpb3JpdHkgaGFzIGJlZW4gZWxldmF0ZWQgZHVlIHRvIHByaW9yaXR5CisJCSAqIHBy b3BhZ2F0aW9uLCB3ZSBtYXkgaGF2ZSB0byBtb3ZlIG91cnNlbHZlcyB0byBhIG5ldworCQkgKiBx dWV1ZS4gIFdlIHN0aWxsIGNhbGwgYWRqdXN0cnVucXVldWUgYmVsb3cgaW4gY2FzZSBrc2UKKwkJ ICogbmVlZHMgdG8gZml4IHRoaW5ncyB1cC4KKwkJICovCisJCWlmIChwcmlvIDwgdGQtPnRkX3By aW9yaXR5ICYmIGtlLT5rZV9ydW5xICE9IE5VTEwgJiYKKwkJICAgIGtlLT5rZV9ydW5xICE9IGtl LT5rZV9rc2VxLT5rc3FfY3VycikgeworCQkJa3J1bnFfcmVtb3ZlKGtlLT5rZV9ydW5xLCBrZSk7 CisJCQlrZS0+a2VfcnVucSA9IGtlLT5rZV9rc2VxLT5rc3FfY3VycjsKKwkJCWtydW5xX2FkZChr ZS0+a2VfcnVucSwga2UpOworCQl9CisJCWFkanVzdHJ1bnF1ZXVlKHRkLCBwcmlvKTsKKwl9IGVs c2UKKwkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsKK30KKworLyoKKyAqIFVwZGF0ZSBhIHRocmVh ZCdzIHByaW9yaXR5IHdoZW4gaXQgaXMgbGVudCBhbm90aGVyIHRocmVhZCdzCisgKiBwcmlvcml0 eS4KKyAqLwordm9pZAorc2NoZWRfbGVuZF9wcmlvKHN0cnVjdCB0aHJlYWQgKnRkLCB1X2NoYXIg cHJpbykKK3sKKworCXRkLT50ZF9mbGFncyB8PSBUREZfQk9SUk9XSU5HOworCXNjaGVkX3RocmVh ZF9wcmlvcml0eSh0ZCwgcHJpbyk7Cit9CisKKy8qCisgKiBSZXN0b3JlIGEgdGhyZWFkJ3MgcHJp b3JpdHkgd2hlbiBwcmlvcml0eSBwcm9wYWdhdGlvbiBpcworICogb3Zlci4gIFRoZSBwcmlvIGFy Z3VtZW50IGlzIHRoZSBtaW5pbXVtIHByaW9yaXR5IHRoZSB0aHJlYWQKKyAqIG5lZWRzIHRvIGhh dmUgdG8gc2F0aXNmeSBvdGhlciBwb3NzaWJsZSBwcmlvcml0eSBsZW5kaW5nCisgKiByZXF1ZXN0 cy4gIElmIHRoZSB0aHJlYWQncyByZWd1bGFyIHByaW9yaXR5IGlzIGxlc3MKKyAqIGltcG9ydGFu dCB0aGFuIHByaW8sIHRoZSB0aHJlYWQgd2lsbCBrZWVwIGEgcHJpb3JpdHkgYm9vc3QKKyAqIG9m IHByaW8uCisgKi8KK3ZvaWQKK3NjaGVkX3VubGVuZF9wcmlvKHN0cnVjdCB0aHJlYWQgKnRkLCB1 X2NoYXIgcHJpbykKK3sKKwl1X2NoYXIgYmFzZV9wcmk7CisKKwlpZiAodGQtPnRkX2Jhc2VfcHJp ID49IFBSSV9NSU5fVElNRVNIQVJFICYmCisJICAgIHRkLT50ZF9iYXNlX3ByaSA8PSBQUklfTUFY X1RJTUVTSEFSRSkKKwkJYmFzZV9wcmkgPSB0ZC0+dGRfa3NlZ3JwLT5rZ191c2VyX3ByaTsKKwll bHNlCisJCWJhc2VfcHJpID0gdGQtPnRkX2Jhc2VfcHJpOworCWlmIChwcmlvID49IGJhc2VfcHJp KSB7CisJCXRkLT50ZF9mbGFncyAmPSB+VERGX0JPUlJPV0lORzsKKwkJc2NoZWRfdGhyZWFkX3By aW9yaXR5KHRkLCBiYXNlX3ByaSk7CisJfSBlbHNlCisJCXNjaGVkX2xlbmRfcHJpbyh0ZCwgcHJp byk7Cit9CisKK3ZvaWQKK3NjaGVkX3ByaW8oc3RydWN0IHRocmVhZCAqdGQsIHVfY2hhciBwcmlv KQoreworCXVfY2hhciBvbGRwcmlvOworCisJaWYgKHRkLT50ZF9rc2VncnAtPmtnX3ByaV9jbGFz cyA9PSBQUklfVElNRVNIQVJFKQorCQlwcmlvID0gTUlOKHByaW8sIFBVU0VSX01BWCk7CisKKwkv KiBGaXJzdCwgdXBkYXRlIHRoZSBiYXNlIHByaW9yaXR5LiAqLworCXRkLT50ZF9iYXNlX3ByaSA9 IHByaW87CisKKwkvKgorCSAqIElmIHRoZSB0aHJlYWQgaXMgYm9ycm93aW5nIGFub3RoZXIgdGhy ZWFkJ3MgcHJpb3JpdHksIGRvbid0CisJICogZXZlciBsb3dlciB0aGUgcHJpb3JpdHkuCisJICov CisJaWYgKHRkLT50ZF9mbGFncyAmIFRERl9CT1JST1dJTkcgJiYgdGQtPnRkX3ByaW9yaXR5IDwg cHJpbykKKwkJcmV0dXJuOworCisJLyogQ2hhbmdlIHRoZSByZWFsIHByaW9yaXR5LiAqLworCW9s ZHByaW8gPSB0ZC0+dGRfcHJpb3JpdHk7CisJc2NoZWRfdGhyZWFkX3ByaW9yaXR5KHRkLCBwcmlv KTsKKworCS8qCisJICogSWYgdGhlIHRocmVhZCBpcyBvbiBhIHR1cm5zdGlsZSwgdGhlbiBsZXQg dGhlIHR1cm5zdGlsZSB1cGRhdGUKKwkgKiBpdHMgc3RhdGUuCisJICovCisJaWYgKFREX09OX0xP Q0sodGQpICYmIG9sZHByaW8gIT0gcHJpbykKKwkJdHVybnN0aWxlX2FkanVzdCh0ZCwgb2xkcHJp byk7Cit9CisKK3ZvaWQKK3NjaGVkX3N3aXRjaChzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IHRo cmVhZCAqbmV3dGQsIGludCBmbGFncykKK3sKKwlzdHJ1Y3Qga3NlcSAqa3NxOworCXN0cnVjdCBr c2UgKmtlOworCXN0cnVjdCBrc2VncnAgKmtnOworCXVpbnQ2NF90IG5vdzsKKworCW10eF9hc3Nl cnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCW5vdyA9IHNjaGVkX3RpbWVzdGFtcCgpOwor CWtlID0gdGQtPnRkX2tzZTsKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJa3NxID0gS1NFUV9TRUxG KCk7CisKKwl0ZC0+dGRfbGFzdGNwdSA9IHRkLT50ZF9vbmNwdTsKKwl0ZC0+dGRfb25jcHUgPSBO T0NQVTsKKwl0ZC0+dGRfZmxhZ3MgJj0gflRERl9ORUVEUkVTQ0hFRDsKKwl0ZC0+dGRfb3dlcHJl ZW1wdCA9IDA7CisKKwlpZiAodGQgPT0gUENQVV9HRVQoaWRsZXRocmVhZCkpIHsKKwkJVERfU0VU X0NBTl9SVU4odGQpOworCX0gZWxzZSB7CisJCXNjaGVkX3VwZGF0ZV9ydW50aW1lKGtlLCBub3cp OworCQkvKiBXZSBhcmUgZW5kaW5nIG91ciBydW4gc28gbWFrZSBvdXIgc2xvdCBhdmFpbGFibGUg YWdhaW4gKi8KKwkJU0xPVF9SRUxFQVNFKHRkLT50ZF9rc2VncnApOworCQlrc2VxX2xvYWRfcmVt KGtzcSwga2UpOworCQlpZiAoVERfSVNfUlVOTklORyh0ZCkpIHsKKwkJCXNldHJ1bnF1ZXVlKHRk LCAoZmxhZ3MgJiBTV19QUkVFTVBUKSA/CisJCQkgICAgU1JRX09VUlNFTEZ8U1JRX1lJRUxESU5H fFNSUV9QUkVFTVBURUQgOgorCQkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVMRElORyk7CisJCX0g ZWxzZSB7CisJCQlpZiAoKHRkLT50ZF9wcm9jLT5wX2ZsYWcgJiBQX0hBRFRIUkVBRFMpICYmCisJ CQkgICAgKG5ld3RkID09IE5VTEwgfHwKKwkJCSAgICAgbmV3dGQtPnRkX2tzZWdycCAhPSB0ZC0+ dGRfa3NlZ3JwKSkgeworCQkJCS8qCisJCQkJICogV2Ugd2lsbCBub3QgYmUgb24gdGhlIHJ1biBx dWV1ZS4KKwkJCQkgKiBTbyB3ZSBtdXN0IGJlIHNsZWVwaW5nIG9yIHNpbWlsYXIuCisJCQkJICog RG9uJ3QgdXNlIHRoZSBzbG90IGlmIHdlIHdpbGwgbmVlZCBpdCAKKwkJCQkgKiBmb3IgbmV3dGQu CisJCQkJICovCisJCQkJc2xvdF9maWxsKHRkLT50ZF9rc2VncnApOworCQkJfQorCQkJa2UtPmtl X2ZsYWdzICY9IH5LRUZfTkVYVFJROworCQl9CisJfQorCisJaWYgKG5ld3RkICE9IE5VTEwpIHsK KwkJLyoKKwkJICogSWYgd2UgYnJpbmcgaW4gYSB0aHJlYWQgYWNjb3VudCBmb3IgaXQgYXMgaWYg aXQgaGFkIGJlZW4KKwkJICogYWRkZWQgdG8gdGhlIHJ1biBxdWV1ZSBhbmQgdGhlbiBjaG9zZW4u CisJCSAqLworCQlTTE9UX1VTRShuZXd0ZC0+dGRfa3NlZ3JwKTsKKwkJbmV3dGQtPnRkX2tzZS0+ a2VfZmxhZ3MgfD0gS0VGX0RJRFJVTjsKKwkJbmV3dGQtPnRkX2tzZS0+a2VfdGltZXN0YW1wID0g bm93OworCQlURF9TRVRfUlVOTklORyhuZXd0ZCk7CisJCWtzZXFfbG9hZF9hZGQoa3NxLCBuZXd0 ZC0+dGRfa3NlKTsKKwl9IGVsc2UgeworCQluZXd0ZCA9IGNob29zZXRocmVhZCgpOworCQkvKiBz Y2hlZF9jaG9vc2Ugc2V0cyBrZV90aW1lc3RhbXAsIGp1c3QgcmV1c2UgaXQgKi8KKwl9CisJaWYg KHRkICE9IG5ld3RkKSB7CisJCWtlLT5rZV9sYXN0cmFuID0gdGljazsKKworI2lmZGVmCUhXUE1D X0hPT0tTCisJCWlmIChQTUNfUFJPQ19JU19VU0lOR19QTUNTKHRkLT50ZF9wcm9jKSkKKwkJCVBN Q19TV0lUQ0hfQ09OVEVYVCh0ZCwgUE1DX0ZOX0NTV19PVVQpOworI2VuZGlmCisJCWNwdV9zd2l0 Y2godGQsIG5ld3RkKTsKKyNpZmRlZglIV1BNQ19IT09LUworCQlpZiAoUE1DX1BST0NfSVNfVVNJ TkdfUE1DUyh0ZC0+dGRfcHJvYykpCisJCQlQTUNfU1dJVENIX0NPTlRFWFQodGQsIFBNQ19GTl9D U1dfSU4pOworI2VuZGlmCisJfQorCisJc2NoZWRfbG9jay5tdHhfbG9jayA9ICh1aW50cHRyX3Qp dGQ7CisKKwl0ZC0+dGRfb25jcHUgPSBQQ1BVX0dFVChjcHVpZCk7Cit9CisKK3ZvaWQKK3NjaGVk X25pY2Uoc3RydWN0IHByb2MgKnAsIGludCBuaWNlKQoreworCXN0cnVjdCBrc2VncnAgKmtnOwor CXN0cnVjdCB0aHJlYWQgKnRkOworCisJUFJPQ19MT0NLX0FTU0VSVChwLCBNQV9PV05FRCk7CisJ bXR4X2Fzc2VydCgmc2NoZWRfbG9jaywgTUFfT1dORUQpOworCXAtPnBfbmljZSA9IG5pY2U7CisJ Rk9SRUFDSF9LU0VHUlBfSU5fUFJPQyhwLCBrZykgeworCQlpZiAoa2ctPmtnX3ByaV9jbGFzcyA9 PSBQUklfVElNRVNIQVJFKSB7CisJCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9jYWxjX3ByaShr Zyk7CisJCQlGT1JFQUNIX1RIUkVBRF9JTl9HUk9VUChrZywgdGQpCisJCQkJdGQtPnRkX2ZsYWdz IHw9IFRERl9ORUVEUkVTQ0hFRDsKKwkJfQorCX0KK30KKwordm9pZAorc2NoZWRfc2xlZXAoc3Ry dWN0IHRocmVhZCAqdGQpCit7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhfYXNzZXJ0KCZzY2hl ZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCWlmICh0ZC0+dGRfZmxhZ3Mg JiBUREZfU0lOVFIpCisJCWtlLT5rZV9hY3RpdmF0ZWQgPSAwOworCWVsc2UKKwkJa2UtPmtlX2Fj dGl2YXRlZCA9IC0xOworCWtlLT5rZV9mbGFncyB8PSBLRUZfU0xFRVA7Cit9CisKK3ZvaWQKK3Nj aGVkX3dha2V1cChzdHJ1Y3QgdGhyZWFkICp0ZCkKK3sKKwlzdHJ1Y3Qga3NlICprZTsKKwlzdHJ1 Y3Qga3NlZ3JwICprZzsKKwlzdHJ1Y3Qga3NlcSAqa3NlcSwgKm15a3NlcTsKKwl1aW50NjRfdCBu b3c7CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRf a3NlOworCWtnID0gdGQtPnRkX2tzZWdycDsKKwlteWtzZXEgPSBLU0VRX1NFTEYoKTsKKwlpZiAo a2UtPmtlX2ZsYWdzICYgS0VGX1NMRUVQKSB7CisJCWtlLT5rZV9mbGFncyAmPSB+S0VGX1NMRUVQ OworCQlpZiAoc2NoZWRfaXNfdGltZXNoYXJlKGtnKSkgeworCQkJc2NoZWRfY29tbWl0X3J1bnRp bWUoa2UpOworCQkJbm93ID0gc2NoZWRfdGltZXN0YW1wKCk7CisJCQlrc2VxID0gS1NFUV9DUFUo dGQtPnRkX2xhc3RjcHUpOworI2lmZGVmIFNNUAorCQkJaWYgKGtzZXEgIT0gbXlrc2VxKQorCQkJ CW5vdyA9IG5vdyAtIG15a3NlcS0+a3NxX2xhc3RfdGltZXN0YW1wICsKKwkJCQkgICAga3NlcS0+ a3NxX2xhc3RfdGltZXN0YW1wOworI2VuZGlmCisJCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9y ZWNhbGNfcHJpKGtlLCBub3cpOworCQl9CisJfQorCXNldHJ1bnF1ZXVlKHRkLCBTUlFfQk9SSU5H KTsKK30KKworLyoKKyAqIFBlbmFsaXplIHRoZSBwYXJlbnQgZm9yIGNyZWF0aW5nIGEgbmV3IGNo aWxkIGFuZCBpbml0aWFsaXplIHRoZSBjaGlsZCdzCisgKiBwcmlvcml0eS4KKyAqLwordm9pZAor c2NoZWRfZm9yayhzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IHRocmVhZCAqY2hpbGR0ZCkKK3sK KworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKwlzY2hlZF9mb3JrX2tzZWdy cCh0ZCwgY2hpbGR0ZC0+dGRfa3NlZ3JwKTsKKwlzY2hlZF9mb3JrX3RocmVhZCh0ZCwgY2hpbGR0 ZCk7Cit9CisKK3ZvaWQKK3NjaGVkX2Zvcmtfa3NlZ3JwKHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1 Y3Qga3NlZ3JwICpjaGlsZCkKK3sKKwlzdHJ1Y3Qga3NlZ3JwICprZyA9IHRkLT50ZF9rc2VncnA7 CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJY2hpbGQtPmtnX3NscHRp bWUgPSBrZy0+a2dfc2xwdGltZSAqIENISUxEX1dFSUdIVCAvIDEwMDsKKwlpZiAoY2hpbGQtPmtn X3ByaV9jbGFzcyA9PSBQUklfVElNRVNIQVJFKQorCQljaGlsZC0+a2dfdXNlcl9wcmkgPSBzY2hl ZF9jYWxjX3ByaShjaGlsZCk7CisJa2ctPmtnX3NscHRpbWUgPSBrZy0+a2dfc2xwdGltZSAqIFBB UkVOVF9XRUlHSFQgLyAxMDA7Cit9CisKK3ZvaWQKK3NjaGVkX2ZvcmtfdGhyZWFkKHN0cnVjdCB0 aHJlYWQgKnRkLCBzdHJ1Y3QgdGhyZWFkICpjaGlsZCkKK3sKKwlzdHJ1Y3Qga3NlICprZTsKKwlz dHJ1Y3Qga3NlICprZTI7CisKKwlzY2hlZF9uZXd0aHJlYWQoY2hpbGQpOworCisJa2UgPSB0ZC0+ dGRfa3NlOworCWtlMiA9IGNoaWxkLT50ZF9rc2U7CisJa2UyLT5rZV9zbGljZSA9IChrZS0+a2Vf c2xpY2UgKyAxKSA+PiAxOworCWtlMi0+a2VfZmxhZ3MgfD0gS0VGX0ZJUlNUX1NMSUNFIHwgKGtl LT5rZV9mbGFncyAmIEtFRl9ORVhUUlEpOworCWtlMi0+a2VfYWN0aXZhdGVkID0gMDsKKwlrZS0+ a2Vfc2xpY2UgPj49IDE7CisgICAgICAgIGlmIChrZS0+a2Vfc2xpY2UgPT0gMCkgeworCQlrZS0+ a2Vfc2xpY2UgPSAxOworCQlzY2hlZF90aWNrKCk7CisJfQorCisJLyogR3JhYiBvdXIgcGFyZW50 cyBjcHUgZXN0aW1hdGlvbiBpbmZvcm1hdGlvbi4gKi8KKwlrZTItPmtlX3RpY2tzID0ga2UtPmtl X3RpY2tzOworCWtlMi0+a2VfbHRpY2sgPSBrZS0+a2VfbHRpY2s7CisJa2UyLT5rZV9mdGljayA9 IGtlLT5rZV9mdGljazsKK30KKwordm9pZAorc2NoZWRfY2xhc3Moc3RydWN0IGtzZWdycCAqa2cs IGludCBjbGFzcykKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2ct PmtnX3ByaV9jbGFzcyA9IGNsYXNzOworfQorCisvKgorICogUmV0dXJuIHNvbWUgb2YgdGhlIGNo aWxkJ3MgcHJpb3JpdHkgYW5kIGludGVyYWN0aXZpdHkgdG8gdGhlIHBhcmVudC4KKyAqLwordm9p ZAorc2NoZWRfZXhpdChzdHJ1Y3QgcHJvYyAqcCwgc3RydWN0IHRocmVhZCAqY2hpbGR0ZCkKK3sK KwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJc2NoZWRfZXhpdF90aHJlYWQo RklSU1RfVEhSRUFEX0lOX1BST0MocCksIGNoaWxkdGQpOworCXNjaGVkX2V4aXRfa3NlZ3JwKEZJ UlNUX0tTRUdSUF9JTl9QUk9DKHApLCBjaGlsZHRkKTsKK30KKwordm9pZAorc2NoZWRfZXhpdF9r c2VncnAoc3RydWN0IGtzZWdycCAqcGFyZW50a2csIHN0cnVjdCB0aHJlYWQgKnRkKQoreworCWlm ICh0ZC0+dGRfa3NlZ3JwLT5rZ19zbHB0aW1lIDwgcGFyZW50a2ctPmtnX3NscHRpbWUpIHsKKwkJ cGFyZW50a2ctPmtnX3NscHRpbWUgPSBwYXJlbnRrZy0+a2dfc2xwdGltZSAvCisJCQkoRVhJVF9X RUlHSFQpICogKEVYSVRfV0VJR0hUIC0gMSkgKworCQkJdGQtPnRkX2tzZWdycC0+a2dfc2xwdGlt ZSAvIEVYSVRfV0VJR0hUOworCX0KK30KKwordm9pZAorc2NoZWRfZXhpdF90aHJlYWQoc3RydWN0 IHRocmVhZCAqdGQsIHN0cnVjdCB0aHJlYWQgKmNoaWxkdGQpCit7CisJc3RydWN0IGtzZSAqY2hp bGRrZSAgPSBjaGlsZHRkLT50ZF9rc2U7CisJc3RydWN0IGtzZSAqcGFyZW50a2UgPSB0ZC0+dGRf a3NlOworCisJa3NlcV9sb2FkX3JlbShLU0VRX1NFTEYoKSwgY2hpbGRrZSk7CisJc2NoZWRfdXBk YXRlX3J1bnRpbWUoY2hpbGRrZSwgc2NoZWRfdGltZXN0YW1wKCkpOworCXNjaGVkX2NvbW1pdF9y dW50aW1lKGNoaWxka2UpOworCWlmICgoY2hpbGRrZS0+a2VfZmxhZ3MgJiBLRUZfRklSU1RfU0xJ Q0UpICYmCisJICAgIHRkLT50ZF9wcm9jID09IGNoaWxkdGQtPnRkX3Byb2MtPnBfcHB0cikgewor CQlwYXJlbnRrZS0+a2Vfc2xpY2UgKz0gY2hpbGRrZS0+a2Vfc2xpY2U7CisJCWlmIChwYXJlbnRr ZS0+a2Vfc2xpY2UgPiBzY2hlZF90aW1lc2xpY2UocGFyZW50a2UpKQorCQkJcGFyZW50a2UtPmtl X3NsaWNlID0gc2NoZWRfdGltZXNsaWNlKHBhcmVudGtlKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQK K3NjaGVkX3N0YXJ2aW5nKHN0cnVjdCBrc2VxICprc3EsIHVuc2lnbmVkIG5vdywgc3RydWN0IGtz ZSAqa2UpCit7CisJdWludDY0X3QgZGVsdGE7CisKKwlpZiAoa2UtPmtlX3Byb2MtPnBfbmljZSA+ IGtzcS0+a3NxX2V4cGlyZWRfbmljZSkKKwkJcmV0dXJuICgxKTsKKwlpZiAoa3NxLT5rc3FfZXhw aXJlZF90aWNrID09IDApCisJCXJldHVybiAoMCk7CisJZGVsdGEgPSBIWl9UT19OUygodWludDY0 X3Qpbm93IC0ga3NxLT5rc3FfZXhwaXJlZF90aWNrKTsKKwlpZiAoZGVsdGEgPiBTVEFSVkFUSU9O X1RJTUUgKiBrc3EtPmtzcV9sb2FkKQorCQlyZXR1cm4gKDEpOworCXJldHVybiAoMCk7Cit9CisK Ky8qCisgKiBBbiBpbnRlcmFjdGl2ZSB0aHJlYWQgaGFzIHNtYWxsZXIgdGltZSBzbGljZSBncmFu dWxhcml0eSwKKyAqIGEgY3B1IGhvZyBjYW4gaGF2ZSBsYXJnZXIgZ3JhbnVsYXJpdHkuCisgKi8K K3N0YXRpYyBpbmxpbmUgaW50CitzY2hlZF90aW1lc2xpY2Vfc3BsaXQoc3RydWN0IGtzZSAqa2Up Cit7CisJaW50IHNjb3JlLCBnOworCisJc2NvcmUgPSAoaW50KShNQVhfU0NPUkUgLSBDVVJSRU5U X1NDT1JFKGtlLT5rZV9rc2VncnApKTsKKwlpZiAoc2NvcmUgPT0gMCkKKwkJc2NvcmUgPSAxOwor I2lmZGVmIFNNUAorCWcgPSBncmFudWxhcml0eSAqICgoMSA8PCBzY29yZSkgLSAxKSAqIHNtcF9j cHVzOworI2Vsc2UKKwlnID0gZ3JhbnVsYXJpdHkgKiAoKDEgPDwgc2NvcmUpIC0gMSk7CisjZW5k aWYKKwlyZXR1cm4gKGtlLT5rZV9zbGljZSA+PSBnICYmIGtlLT5rZV9zbGljZSAlIGcgPT0gMCk7 Cit9CisKK3ZvaWQKK3NjaGVkX3RpY2sodm9pZCkKK3sKKwlzdHJ1Y3QgdGhyZWFkCSp0ZDsKKwlz dHJ1Y3QgcHJvYwkqcDsKKwlzdHJ1Y3Qga3NlCSprZTsKKwlzdHJ1Y3Qga3NlZ3JwCSprZzsKKwlz dHJ1Y3Qga3NlcQkqa3NlcTsKKwl1aW50NjRfdAlub3c7CisJaW50CQljcHVpZDsKKwlpbnQJCWNs YXNzOworCQorCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCXRkID0gY3Vy dGhyZWFkOworCWtlID0gdGQtPnRkX2tzZTsKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJcCA9IHRk LT50ZF9wcm9jOworCWNsYXNzID0gUFJJX0JBU0Uoa2ctPmtnX3ByaV9jbGFzcyk7CisJbm93ID0g c2NoZWRfdGltZXN0YW1wKCk7CisJY3B1aWQgPSBQQ1BVX0dFVChjcHVpZCk7CisJa3NlcSA9IEtT RVFfQ1BVKGNwdWlkKTsKKwlrc2VxLT5rc3FfbGFzdF90aW1lc3RhbXAgPSBub3c7CisKKwlpZiAo Y2xhc3MgPT0gUFJJX0lETEUpIHsKKwkJLyoKKwkJICogUHJvY2Vzc2VzIG9mIGVxdWFsIGlkbGUg cHJpb3JpdHkgYXJlIHJ1biByb3VuZC1yb2Jpbi4KKwkJICovCisJCWlmICh0ZCAhPSBQQ1BVX0dF VChpZGxldGhyZWFkKSAmJiAtLWtlLT5rZV9zbGljZSA8PSAwKSB7CisJCQlrZS0+a2Vfc2xpY2Ug PSBkZWZfdGltZXNsaWNlOworCQkJdGQtPnRkX2ZsYWdzIHw9IFRERl9ORUVEUkVTQ0hFRDsKKwkJ fQorCQlyZXR1cm47CisJfQorCisJaWYgKGNsYXNzID09IFBSSV9SRUFMVElNRSkgeworCQkvKgor CQkgKiBSZWFsdGltZSBzY2hlZHVsaW5nLCBkbyByb3VuZCByb2JpbiBmb3IgUlIgY2xhc3MsIEZJ Rk8KKwkJICogaXMgbm90IGFmZmVjdGVkLgorCQkgKi8KKwkJaWYgKFBSSV9ORUVEX1JSKGtnLT5r Z19wcmlfY2xhc3MpICYmIC0ta2UtPmtlX3NsaWNlIDw9IDApIHsKKwkJCWtlLT5rZV9zbGljZSA9 IGRlZl90aW1lc2xpY2U7CisJCQl0ZC0+dGRfZmxhZ3MgfD0gVERGX05FRURSRVNDSEVEOworCQl9 CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFdlIHNraXAga2VybmVsIHRocmVhZCwgdGhvdWdo IGl0IG1heSBiZSBjbGFzc2lmaWVkIGFzIFRJTUVTSEFSRS4KKwkgKi8KKwlpZiAoY2xhc3MgIT0g UFJJX1RJTUVTSEFSRSB8fCAocC0+cF9mbGFnICYgUF9LVEhSRUFEKSAhPSAwKQorCQlyZXR1cm47 CisKKwlpZiAoLS1rZS0+a2Vfc2xpY2UgPD0gMCkgeworCQl0ZC0+dGRfZmxhZ3MgfD0gVERGX05F RURSRVNDSEVEOworCQlzY2hlZF91cGRhdGVfcnVudGltZShrZSwgbm93KTsKKwkJc2NoZWRfY29t bWl0X3J1bnRpbWUoa2UpOworCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9jYWxjX3ByaShrZyk7 CisJCWtlLT5rZV9zbGljZSA9IHNjaGVkX3RpbWVzbGljZShrZSk7CisJCWtlLT5rZV9mbGFncyAm PSB+S0VGX0ZJUlNUX1NMSUNFOworCQlpZiAoa2UtPmtlX2ZsYWdzICYgS0VGX0JPVU5EIHx8IHRk LT50ZF9waW5uZWQpIHsKKwkJCWlmIChrc2VxLT5rc3FfZXhwaXJlZF90aWNrID09IDApCisJCQkJ a3NlcS0+a3NxX2V4cGlyZWRfdGljayA9IHRpY2s7CisJCX0gZWxzZSB7CisJCQlpZiAoa3NlcV9n bG9iYWwua3NxX2V4cGlyZWRfdGljayA9PSAwKQorCQkJCWtzZXFfZ2xvYmFsLmtzcV9leHBpcmVk X3RpY2sgPSB0aWNrOworCQl9CisJCWlmICghVEhSRUFEX0lTX0lOVEVSQUNUSVZFKGtlKSB8fAor CQkgICAgc2NoZWRfc3RhcnZpbmcoa3NlcSwgdGljaywga2UpIHx8CisJCSAgICBzY2hlZF9zdGFy dmluZygma3NlcV9nbG9iYWwsIHRpY2ssIGtlKSkgeworCQkJLyogVGhlIHRoZWFkIGJlY29tZXMg Y3B1IGhvZywgc2NoZWR1bGUgaXQgb2ZmLiAqLworCQkJa2UtPmtlX2ZsYWdzIHw9IEtFRl9ORVhU UlE7CisJCQlpZiAoa2UtPmtlX2ZsYWdzICYgS0VGX0JPVU5EIHx8IHRkLT50ZF9waW5uZWQpIHsK KwkJCQlpZiAocC0+cF9uaWNlIDwga3NlcS0+a3NxX2V4cGlyZWRfbmljZSkKKwkJCQkJa3NlcS0+ a3NxX2V4cGlyZWRfbmljZSA9IHAtPnBfbmljZTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKHAtPnBf bmljZSA8IGtzZXFfZ2xvYmFsLmtzcV9leHBpcmVkX25pY2UpCisJCQkJCWtzZXFfZ2xvYmFsLmtz cV9leHBpcmVkX25pY2UgPQorCQkJCQkJcC0+cF9uaWNlOworCQkJfQorCQl9CisJfSBlbHNlIHsK KwkJLyoKKwkJICogRG9uJ3QgYWxsb3cgYW4gaW50ZXJhY3RpdmUgdGhyZWFkIHdoaWNoIGhhcyBs b25nIHRpbWVzbGljZQorCQkgKiB0byBtb25vcG9saXplIENQVSwgc3BsaXQgdGhlIGxvbmcgdGlt ZXNsaWNlIGludG8gc21hbGwKKwkJICogY2h1bmtzLiBUaGlzIGVzc2VudGlhbGx5IGRvZXMgcm91 bmQtcm9iaW4gYmV0d2VlbgorCQkgKiBpbnRlcmFjdGl2ZSB0aHJlYWRzLgorCQkgKi8KKwkJaWYg KFRIUkVBRF9JU19JTlRFUkFDVElWRShrZSkgJiYgc2NoZWRfdGltZXNsaWNlX3NwbGl0KGtlKSkK KwkJCXRkLT50ZF9mbGFncyB8PSBUREZfTkVFRFJFU0NIRUQ7CisJfQorfQorCit2b2lkCitzY2hl ZF9jbG9jayhzdHJ1Y3QgdGhyZWFkICp0ZCkKK3sKKwlzdHJ1Y3Qga3NlZ3JwICprZzsKKwlzdHJ1 Y3Qga3NlICprZTsKKworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKwlrZSA9 IHRkLT50ZF9rc2U7CisJa2cgPSBrZS0+a2Vfa3NlZ3JwOworCisJLyogQWRqdXN0IHRpY2tzIGZv ciBwY3RjcHUgKi8KKwlrZS0+a2VfdGlja3MrKzsKKwlrZS0+a2VfbHRpY2sgPSB0aWNrczsKKwor CS8qIEdvIHVwIHRvIG9uZSBzZWNvbmQgYmV5b25kIG91ciBtYXggYW5kIHRoZW4gdHJpbSBiYWNr IGRvd24gKi8KKwlpZiAoa2UtPmtlX2Z0aWNrICsgU0NIRURfQ1BVX1RJQ0tTICsgaHogPCBrZS0+ a2VfbHRpY2spCisJCXNjaGVkX3BjdGNwdV91cGRhdGUoa2UpOworfQorCitzdGF0aWMgaW50Citr c2VxX3J1bm5hYmxlKHN0cnVjdCBrc2VxICprc2VxKQoreworCXJldHVybiAoa3J1bnFfY2hlY2so a3NlcS0+a3NxX2N1cnIpIHx8CisJICAgICAgICBrcnVucV9jaGVjayhrc2VxLT5rc3FfbmV4dCkg fHwKKwkJa3J1bnFfY2hlY2soJmtzZXEtPmtzcV9pZGxlKSk7Cit9CisKK2ludAorc2NoZWRfcnVu bmFibGUodm9pZCkKK3sKKyNpZmRlZiBTTVAKKwlyZXR1cm4gKGtzZXFfcnVubmFibGUoJmtzZXFf Z2xvYmFsKSB8fCBrc2VxX3J1bm5hYmxlKEtTRVFfU0VMRigpKSk7CisjZWxzZQorCXJldHVybiAo a3NlcV9ydW5uYWJsZSgma3NlcV9nbG9iYWwpKTsKKyNlbmRpZgorfQorCit2b2lkCitzY2hlZF91 c2VycmV0KHN0cnVjdCB0aHJlYWQgKnRkKQoreworCXN0cnVjdCBrc2VncnAgKmtnOworCisJS0FT U0VSVCgodGQtPnRkX2ZsYWdzICYgVERGX0JPUlJPV0lORykgPT0gMCwKKwkgICAgKCJ0aHJlYWQg d2l0aCBib3Jyb3dlZCBwcmlvcml0eSByZXR1cm5pbmcgdG8gdXNlcmxhbmQiKSk7CisJa2cgPSB0 ZC0+dGRfa3NlZ3JwOworCWlmICh0ZC0+dGRfcHJpb3JpdHkgIT0ga2ctPmtnX3VzZXJfcHJpKSB7 CisJCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCQl0ZC0+dGRfcHJpb3JpdHkgPSBrZy0+ a2dfdXNlcl9wcmk7CisJCXRkLT50ZF9iYXNlX3ByaSA9IGtnLT5rZ191c2VyX3ByaTsKKwkJbXR4 X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKKwl9Cit9CisKK3N0cnVjdCBrc2UgKgorc2NoZWRf Y2hvb3NlKHZvaWQpCit7CisJc3RydWN0IGtzZSAgKmtlOworCXN0cnVjdCBrc2VxICprc2VxOwor CisjaWZkZWYgU01QCisJc3RydWN0IGtzZSAqa2VjcHU7CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9s b2NrLCBNQV9PV05FRCk7CisJa3NlcSA9ICZrc2VxX2dsb2JhbDsKKwlrZSA9IGtzZXFfY2hvb3Nl KCZrc2VxX2dsb2JhbCk7CisJa2VjcHUgPSBrc2VxX2Nob29zZShLU0VRX1NFTEYoKSk7CisKKwlp ZiAoa2UgPT0gTlVMTCB8fCAKKwkgICAgKGtlY3B1ICE9IE5VTEwgJiYgCisJICAgICBrZWNwdS0+ a2VfdGhyZWFkLT50ZF9wcmlvcml0eSA8IGtlLT5rZV90aHJlYWQtPnRkX3ByaW9yaXR5KSkgewor CQlrZSA9IGtlY3B1OworCQlrc2VxID0gS1NFUV9TRUxGKCk7CisJfQorI2Vsc2UKKwlrc2VxID0g JmtzZXFfZ2xvYmFsOworCWtlID0ga3NlcV9jaG9vc2Uoa3NlcSk7CisjZW5kaWYKKworCWlmIChr ZSAhPSBOVUxMKSB7CisJCWtzZXFfcnVucV9yZW0oa3NlcSwga2UpOworCQlrZS0+a2Vfc3RhdGUg PSBLRVNfVEhSRUFEOworCQlrZS0+a2VfZmxhZ3MgJj0gfktFRl9QUkVFTVBURUQ7CisJCWtlLT5r ZV90aW1lc3RhbXAgPSBzY2hlZF90aW1lc3RhbXAoKTsKKwl9CisKKwlyZXR1cm4gKGtlKTsKK30K KworI2lmZGVmIFNNUAorc3RhdGljIGludAorZm9yd2FyZF93YWtldXAoaW50IGNwdW51bSwgY3B1 bWFza190IG1lKQoreworCWNwdW1hc2tfdCBtYXAsIGRvbnR1c2U7CisJY3B1bWFza190IG1hcDI7 CisJc3RydWN0IHBjcHUgKnBjOworCWNwdW1hc2tfdCBpZCwgbWFwMzsKKworCW10eF9hc3NlcnQo JnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCUNUUjAoS1RSX1JVTlEsICJmb3J3YXJkX3dha2V1 cCgpIik7CisKKwlpZiAoKCFmb3J3YXJkX3dha2V1cF9lbmFibGVkKSB8fAorCSAgICAgKGZvcndh cmRfd2FrZXVwX3VzZV9tYXNrID09IDAgJiYgZm9yd2FyZF93YWtldXBfdXNlX2xvb3AgPT0gMCkp CisJCXJldHVybiAoMCk7CisJaWYgKCFzbXBfc3RhcnRlZCB8fCBjb2xkIHx8IHBhbmljc3RyKQor CQlyZXR1cm4gKDApOworCisJZm9yd2FyZF93YWtldXBzX3JlcXVlc3RlZCsrOworCisJLyoKKwkg KiBjaGVjayB0aGUgaWRsZSBtYXNrIHdlIHJlY2VpdmVkIGFnYWluc3Qgd2hhdCB3ZSBjYWxjdWxh dGVkIGJlZm9yZQorCSAqIGluIHRoZSBvbGQgdmVyc2lvbi4KKwkgKi8KKwkvKiAKKwkgKiBkb24n dCBib3RoZXIgaWYgd2Ugc2hvdWxkIGJlIGRvaW5nIGl0IG91cnNlbGYuLgorCSAqLworCWlmICgo bWUgJiBpZGxlX2NwdXNfbWFzaykgJiYgKGNwdW51bSA9PSBOT0NQVSB8fCBtZSA9PSAoMSA8PCBj cHVudW0pKSkKKwkJcmV0dXJuICgwKTsKKworCWRvbnR1c2UgPSBtZSB8IHN0b3BwZWRfY3B1cyB8 IGhsdF9jcHVzX21hc2s7CisJbWFwMyA9IDA7CisJaWYgKGZvcndhcmRfd2FrZXVwX3VzZV9sb29w KSB7CisJCVNMSVNUX0ZPUkVBQ0gocGMsICZjcHVoZWFkLCBwY19hbGxjcHUpIHsKKwkJCWlkID0g cGMtPnBjX2NwdW1hc2s7CisJCQlpZiAoIChpZCAmIGRvbnR1c2UpID09IDAgJiYKKwkJCSAgICBw Yy0+cGNfY3VydGhyZWFkID09IHBjLT5wY19pZGxldGhyZWFkKSB7CisJCQkJbWFwMyB8PSBpZDsK KwkJCX0KKwkJfQorCX0KKworCWlmIChmb3J3YXJkX3dha2V1cF91c2VfbWFzaykgeworCQltYXAg PSAwOworCQltYXAgPSBpZGxlX2NwdXNfbWFzayAmIH5kb250dXNlOworCisJCS8qIElmIHRoZXkg YXJlIGJvdGggb24sIGNvbXBhcmUgYW5kIHVzZSBsb29wIGlmIGRpZmZlcmVudCAqLworCQlpZiAo Zm9yd2FyZF93YWtldXBfdXNlX2xvb3ApIHsKKwkJCWlmIChtYXAgIT0gbWFwMykgeworCQkJCXBy aW50ZigibWFwICglMDJYKSAhPSBtYXAzICglMDJYKVxuIiwKKwkJCQkJCW1hcCwgbWFwMyk7CisJ CQkJbWFwID0gbWFwMzsKKwkJCX0KKwkJfQorCX0gZWxzZSB7CisJCW1hcCA9IG1hcDM7CisJfQor CS8qIElmIHdlIG9ubHkgYWxsb3cgYSBzcGVjaWZpYyBDUFUsIHRoZW4gbWFzayBvZmYgYWxsIHRo ZSBvdGhlcnMgKi8KKwlpZiAoY3B1bnVtICE9IE5PQ1BVKSB7CisJCUtBU1NFUlQoKGNwdW51bSA8 PSBtcF9tYXhjcHVzKSwoImZvcndhcmRfd2FrZXVwOiBiYWQgY3B1bnVtLiIpKTsKKwkJbWFwICY9 ICgxIDw8IGNwdW51bSk7CisJfSBlbHNlIHsKKwkJLyogVHJ5IGNob29zZSBhbiBpZGxlIGRpZS4g Ki8KKwkJaWYgKGZvcndhcmRfd2FrZXVwX3VzZV9odHQpIHsKKwkJCW1hcDIgPSAgKG1hcCAmICht YXAgPj4gMSkpICYgMHg1NTU1OworCQkJaWYgKG1hcDIpIHsKKwkJCQltYXAgPSBtYXAyOworCQkJ fQorCQl9CisKKwkJLyogc2V0IG9ubHkgb25lIGJpdCAqLyAKKwkJaWYgKGZvcndhcmRfd2FrZXVw X3VzZV9zaW5nbGUpIHsKKwkJCW1hcCA9IG1hcCAmICgofm1hcCkgKyAxKTsKKwkJfQorCX0KKwlp ZiAobWFwKSB7CisJCWZvcndhcmRfd2FrZXVwc19kZWxpdmVyZWQrKzsKKwkJaXBpX3NlbGVjdGVk KG1hcCwgSVBJX0FTVCk7CisJCXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9CisjZW5k aWYKKwordm9pZAorc2NoZWRfYWRkKHN0cnVjdCB0aHJlYWQgKnRkLCBpbnQgZmxhZ3MpCit7CisJ c3RydWN0IGtzZXEgKmtzcTsKKwlzdHJ1Y3Qga3NlZ3JwICprZzsKKwlzdHJ1Y3Qga3NlICprZTsK KwlzdHJ1Y3QgdGhyZWFkICpteXRkOworCWludCBjbGFzczsKKwlpbnQgbmV4dHJxOworCWludCBu ZWVkX3Jlc2NoZWQgPSAwOworI2lmZGVmIFNNUAorCWludCBjcHU7CisJaW50IG15Y3B1OworCWlu dCBwaW5uZWQ7CisJc3RydWN0IGtzZXEgKm15a3NxOworI2VuZGlmCisKKwltdHhfYXNzZXJ0KCZz Y2hlZF9sb2NrLCBNQV9PV05FRCk7CisJbXl0ZCA9IGN1cnRocmVhZDsKKwlrZSA9IHRkLT50ZF9r c2U7CisJa2cgPSB0ZC0+dGRfa3NlZ3JwOworCUtBU1NFUlQoa2UtPmtlX3N0YXRlICE9IEtFU19P TlJVTlEsCisJICAgICgic2NoZWRfYWRkOiBrc2UgJXAgKCVzKSBhbHJlYWR5IGluIHJ1biBxdWV1 ZSIsIGtlLAorCSAgICBrZS0+a2VfcHJvYy0+cF9jb21tKSk7CisJS0FTU0VSVChrZS0+a2VfcHJv Yy0+cF9zZmxhZyAmIFBTX0lOTUVNLAorCSAgICAoInNjaGVkX2FkZDogcHJvY2VzcyBzd2FwcGVk IG91dCIpKTsKKwlLQVNTRVJUKGtlLT5rZV9ydW5xID09IE5VTEwsCisJICAgICgic2NoZWRfYWRk OiBLU0UgJXAgaXMgc3RpbGwgYXNzaWduZWQgdG8gYSBydW4gcXVldWUiLCBrZSkpOworCisJY2xh c3MgPSBQUklfQkFTRShrZy0+a2dfcHJpX2NsYXNzKTsKKyNpZmRlZiBTTVAKKwlteWNwdSA9IFBD UFVfR0VUKGNwdWlkKTsKKwlteWtzcSA9IEtTRVFfQ1BVKG15Y3B1KTsKKwlrZS0+a2Vfd2FrZXVw X2NwdSA9IG15Y3B1OworI2VuZGlmCisJbmV4dHJxID0gKGtlLT5rZV9mbGFncyAmIEtFRl9ORVhU UlEpOworCWtlLT5rZV9mbGFncyAmPSB+S0VGX05FWFRSUTsKKwlpZiAoZmxhZ3MgJiBTUlFfUFJF RU1QVEVEKQorCQlrZS0+a2VfZmxhZ3MgfD0gS0VGX1BSRUVNUFRFRDsKKwlrc3EgPSAma3NlcV9n bG9iYWw7CisjaWZkZWYgU01QCisJaWYgKHRkLT50ZF9waW5uZWQgIT0gMCkgeworCQljcHUgPSB0 ZC0+dGRfbGFzdGNwdTsKKwkJa3NxID0gS1NFUV9DUFUoY3B1KTsKKwkJcGlubmVkID0gMTsKKwl9 IGVsc2UgaWYgKChrZSktPmtlX2ZsYWdzICYgS0VGX0JPVU5EKSB7CisJCWNwdSA9IGtlLT5rZV9j cHU7CisJCWtzcSA9IEtTRVFfQ1BVKGNwdSk7CisJCXBpbm5lZCA9IDE7CisJfSBlbHNlIHsKKwkJ cGlubmVkID0gMDsKKwkJY3B1ID0gTk9DUFU7CisJfQorI2VuZGlmCisJc3dpdGNoIChjbGFzcykg eworCWNhc2UgUFJJX0lUSEQ6CisJY2FzZSBQUklfUkVBTFRJTUU6CisJCWtlLT5rZV9ydW5xID0g a3NxLT5rc3FfY3VycjsKKwkJYnJlYWs7CisJY2FzZSBQUklfVElNRVNIQVJFOgorCQlpZiAoKHRk LT50ZF9mbGFncyAmIFRERl9CT1JST1dJTkcpID09IDAgJiYgbmV4dHJxKQorCQkJa2UtPmtlX3J1 bnEgPSBrc3EtPmtzcV9uZXh0OworCQllbHNlCisJCQlrZS0+a2VfcnVucSA9IGtzcS0+a3NxX2N1 cnI7CisJCWJyZWFrOworCWNhc2UgUFJJX0lETEU6CisJCS8qCisJCSAqIFRoaXMgaXMgZm9yIHBy aW9yaXR5IHByb3AuCisJCSAqLworCQlpZiAodGQtPnRkX3ByaW9yaXR5IDwgUFJJX01JTl9JRExF KQorCQkJa2UtPmtlX3J1bnEgPSBrc3EtPmtzcV9jdXJyOworCQllbHNlCisJCQlrZS0+a2VfcnVu cSA9ICZrc3EtPmtzcV9pZGxlOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwYW5pYygiVW5rbm93 biBwcmkgY2xhc3MuIik7CisJCWJyZWFrOworCX0KKworI2lmZGVmIFNNUAorCWlmICgoa2UtPmtl X3J1bnEgPT0ga3NlcV9nbG9iYWwua3NxX2N1cnIgfHwKKwkgICAgIGtlLT5rZV9ydW5xID09IG15 a3NxLT5rc3FfY3VycikgJiYKKwkgICAgIHRkLT50ZF9wcmlvcml0eSA8IG15dGQtPnRkX3ByaW9y aXR5KSB7CisjZWxzZQorCWlmIChrZS0+a2VfcnVucSA9PSBrc2VxX2dsb2JhbC5rc3FfY3VyciAm JgorCSAgICB0ZC0+dGRfcHJpb3JpdHkgPCBteXRkLT50ZF9wcmlvcml0eSkgeworI2VuZGlmCisJ CXN0cnVjdCBrcnVucSAqcnE7CisKKwkJcnEgPSBrZS0+a2VfcnVucTsKKwkJa2UtPmtlX3J1bnEg PSBOVUxMOworCQlpZiAoKGZsYWdzICYgU1JRX1lJRUxESU5HKSA9PSAwICYmIG1heWJlX3ByZWVt cHQodGQpKQorCQkJcmV0dXJuOworCQlrZS0+a2VfcnVucSA9IHJxOworCQluZWVkX3Jlc2NoZWQg PSBUREZfTkVFRFJFU0NIRUQ7CisJfQorCisJU0xPVF9VU0Uoa2cpOworCWtlLT5rZV9zdGF0ZSA9 IEtFU19PTlJVTlE7CisJa3NlcV9ydW5xX2FkZChrc3EsIGtlKTsKKwlrc2VxX2xvYWRfYWRkKGtz cSwga2UpOworCisjaWZkZWYgU01QCisJaWYgKHBpbm5lZCkgeworCQlpZiAoY3B1ICE9IG15Y3B1 KSB7CisJCQlzdHJ1Y3QgdGhyZWFkICpydW5uaW5nID0gcGNwdV9maW5kKGNwdSktPnBjX2N1cnRo cmVhZDsKKwkJCWlmIChrc3EtPmtzcV9jdXJyID09IGtlLT5rZV9ydW5xICYmCisJCQkgICAgcnVu bmluZy0+dGRfcHJpb3JpdHkgPCB0ZC0+dGRfcHJpb3JpdHkpIHsKKwkJCQlpZiAodGQtPnRkX3By aW9yaXR5IDw9IFBSSV9NQVhfSVRIRCkKKwkJCQkJaXBpX3NlbGVjdGVkKDEgPDwgY3B1LCBJUElf UFJFRU1QVCk7CisJCQkJZWxzZSB7CisJCQkJCXJ1bm5pbmctPnRkX2ZsYWdzIHw9IFRERl9ORUVE UkVTQ0hFRDsKKwkJCQkJaXBpX3NlbGVjdGVkKDEgPDwgY3B1LCBJUElfQVNUKTsKKwkJCQl9CisJ CQl9CisJCX0gZWxzZQorCQkJY3VydGhyZWFkLT50ZF9mbGFncyB8PSBuZWVkX3Jlc2NoZWQ7CisJ fSBlbHNlIHsKKwkJY3B1bWFza190IG1lID0gMSA8PCBteWNwdTsKKwkJY3B1bWFza190IGlkbGUg PSBpZGxlX2NwdXNfbWFzayAmIG1lOworCQlpbnQgZm9yd2FyZGVkID0gMDsKKworCQlpZiAoIWlk bGUgJiYgKChmbGFncyAmIFNSUV9JTlRSKSA9PSAwKSAmJgorCQkgICAgKGlkbGVfY3B1c19tYXNr ICYgfihobHRfY3B1c19tYXNrIHwgbWUpKSkKKwkJCWZvcndhcmRlZCA9IGZvcndhcmRfd2FrZXVw KGNwdSwgbWUpOworCQlpZiAoZm9yd2FyZGVkID09IDApCisJCQljdXJ0aHJlYWQtPnRkX2ZsYWdz IHw9IG5lZWRfcmVzY2hlZDsKKwl9CisjZWxzZQorCW15dGQtPnRkX2ZsYWdzIHw9IG5lZWRfcmVz Y2hlZDsKKyNlbmRpZgorfQorCit2b2lkCitzY2hlZF9yZW0oc3RydWN0IHRocmVhZCAqdGQpCit7 CisJc3RydWN0IGtzZXEgKmtzZXE7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhfYXNzZXJ0KCZz Y2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCUtBU1NFUlQoKGtlLT5r ZV9zdGF0ZSA9PSBLRVNfT05SVU5RKSwKKwkgICAgKCJzY2hlZF9yZW06IEtTRSBub3Qgb24gcnVu IHF1ZXVlIikpOworCisJa3NlcSA9IGtlLT5rZV9rc2VxOworCVNMT1RfUkVMRUFTRSh0ZC0+dGRf a3NlZ3JwKTsKKwlrc2VxX3J1bnFfcmVtKGtzZXEsIGtlKTsKKwlrc2VxX2xvYWRfcmVtKGtzZXEs IGtlKTsKKwlrZS0+a2Vfc3RhdGUgPSBLRVNfVEhSRUFEOworfQorCitmaXhwdF90CitzY2hlZF9w Y3RjcHUoc3RydWN0IHRocmVhZCAqdGQpCit7CisJZml4cHRfdCBwY3RjcHU7CisJc3RydWN0IGtz ZSAqa2U7CisKKwlwY3RjcHUgPSAwOworCWtlID0gdGQtPnRkX2tzZTsKKwlpZiAoa2UgPT0gTlVM TCkKKwkJcmV0dXJuICgwKTsKKworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChr ZS0+a2VfdGlja3MpIHsKKwkJaW50IHJ0aWNrOworCisJCS8qCisJCSAqIERvbid0IHVwZGF0ZSBt b3JlIGZyZXF1ZW50bHkgdGhhbiB0d2ljZSBhIHNlY29uZC4gIEFsbG93aW5nCisJCSAqIHRoaXMg Y2F1c2VzIHRoZSBjcHUgdXNhZ2UgdG8gZGVjYXkgYXdheSB0b28gcXVpY2tseSBkdWUgdG8KKwkJ ICogcm91bmRpbmcgZXJyb3JzLgorCQkgKi8KKwkJaWYgKGtlLT5rZV9mdGljayArIFNDSEVEX0NQ VV9USUNLUyA8IGtlLT5rZV9sdGljayB8fAorCQkgICAga2UtPmtlX2x0aWNrIDwgKHRpY2tzIC0g KGh6IC8gMikpKQorCQkJc2NoZWRfcGN0Y3B1X3VwZGF0ZShrZSk7CisJCS8qIEhvdyBtYW55IHJ0 aWNrIHBlciBzZWNvbmQgPyAqLworCQlydGljayA9IE1JTihrZS0+a2VfdGlja3MgLyBTQ0hFRF9D UFVfVElNRSwgU0NIRURfQ1BVX1RJQ0tTKTsKKwkJcGN0Y3B1ID0gKEZTQ0FMRSAqICgoRlNDQUxF ICogcnRpY2spL3JlYWxzdGF0aHopKSA+PiBGU0hJRlQ7CisJfQorCisJa2UtPmtlX3Byb2MtPnBf c3d0aW1lID0ga2UtPmtlX2x0aWNrIC0ga2UtPmtlX2Z0aWNrOworCW10eF91bmxvY2tfc3Bpbigm c2NoZWRfbG9jayk7CisKKwlyZXR1cm4gKHBjdGNwdSk7Cit9CisKK3ZvaWQKK3NjaGVkX2JpbmQo c3RydWN0IHRocmVhZCAqdGQsIGludCBjcHUpCit7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhf YXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCWtlLT5r ZV9mbGFncyB8PSBLRUZfQk9VTkQ7CisjaWZkZWYgU01QCisJa2UtPmtlX2NwdSA9IGNwdTsKKwlp ZiAoUENQVV9HRVQoY3B1aWQpID09IGNwdSkKKwkJcmV0dXJuOworCW1pX3N3aXRjaChTV19WT0ws IE5VTEwpOworI2VuZGlmCit9CisKK3ZvaWQKK3NjaGVkX3VuYmluZChzdHJ1Y3QgdGhyZWFkICp0 ZCkKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJdGQtPnRkX2tzZS0+ a2VfZmxhZ3MgJj0gfktFRl9CT1VORDsKK30KKworaW50CitzY2hlZF9pc19ib3VuZChzdHJ1Y3Qg dGhyZWFkICp0ZCkKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJcmV0 dXJuICh0ZC0+dGRfa3NlLT5rZV9mbGFncyAmIEtFRl9CT1VORCk7Cit9CisKK2ludAorc2NoZWRf bG9hZCh2b2lkKQoreworCXJldHVybiAoc2NoZWRfdGRjbnQpOworfQorCit2b2lkCitzY2hlZF9y ZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQoreworCXN0cnVjdCBrc2VncnAgKmtnOworCisJ a2cgPSB0ZC0+dGRfa3NlZ3JwOworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChz Y2hlZF9pc190aW1lc2hhcmUoa2cpKSB7CisJCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhfVElNRVNI QVJFKTsKKwkJdGQtPnRkX2tzZS0+a2VfZmxhZ3MgfD0gS0VGX05FWFRSUTsKKwl9CisJbWlfc3dp dGNoKFNXX1ZPTCwgTlVMTCk7CisJbXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKK30KKwor aW50CitzY2hlZF9zaXplb2Zfa3NlZ3JwKHZvaWQpCit7CisJcmV0dXJuIChzaXplb2Yoc3RydWN0 IGtzZWdycCkgKyBzaXplb2Yoc3RydWN0IGtnX3NjaGVkKSk7Cit9CisKK2ludAorc2NoZWRfc2l6 ZW9mX3Byb2Modm9pZCkKK3sKKwlyZXR1cm4gKHNpemVvZihzdHJ1Y3QgcHJvYykpOworfQorCitp bnQKK3NjaGVkX3NpemVvZl90aHJlYWQodm9pZCkKK3sKKwlyZXR1cm4gKHNpemVvZihzdHJ1Y3Qg dGhyZWFkKSArIHNpemVvZihzdHJ1Y3QgdGRfc2NoZWQpKTsKK30KKyNkZWZpbmUgS0VSTl9TV0lU Q0hfSU5DTFVERSAxCisjaW5jbHVkZSAia2Vybi9rZXJuX3N3aXRjaC5jIgpJbmRleDogLi9zeXMv a2Vybi9zY2hlZF80YnNkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lz L2tlcm4vc2NoZWRfNGJzZC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc3LjIuMQpkaWZmIC11 IC1yMS43Ny4yLjEgc2NoZWRfNGJzZC5jCi0tLSAuL3N5cy9rZXJuL3NjaGVkXzRic2QuYwkxNiBK dW4gMjAwNiAyMjoxMTo1NSAtMDAwMAkxLjc3LjIuMQorKysgLi9zeXMva2Vybi9zY2hlZF80YnNk LmMJMjQgT2N0IDIwMDYgMDk6MTE6MjYgLTAwMDAKQEAgLTEzNTQsNiArMTM1NCwxOSBAQAogCXJl dHVybiAodGQtPnRkX2tzZS0+a2VfZmxhZ3MgJiBLRUZfQk9VTkQpOwogfQogCit2b2lkCitzY2hl ZF9yZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQoreyAKKwlzdHJ1Y3Qga3NlZ3JwICprZzsK KyAKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJbXR4X2xvY2tfc3Bpbigmc2NoZWRfbG9jayk7CisJ aWYgKGtnLT5rZ19wcmlfY2xhc3MgPT0gUFJJX1RJTUVTSEFSRSkKKwkJc2NoZWRfcHJpbyh0ZCwg UFJJX01BWF9USU1FU0hBUkUpOworCW1pX3N3aXRjaChTV19WT0wsIE5VTEwpOworCW10eF91bmxv Y2tfc3Bpbigmc2NoZWRfbG9jayk7Cit9CisKIGludAogc2NoZWRfbG9hZCh2b2lkKQogewpAQCAt MTM4Niw1ICsxMzk5LDEwIEBACiAKIAlyZXR1cm4gKDApOwogfQorCit2b2lkCitzY2hlZF90aWNr KHZvaWQpCit7Cit9CiAjZGVmaW5lIEtFUk5fU1dJVENIX0lOQ0xVREUgMQogI2luY2x1ZGUgImtl cm4va2Vybl9zd2l0Y2guYyIKSW5kZXg6IC4vc3lzL2tlcm4va2Vybl9zd2l0Y2guYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9rZXJuX3N3aXRjaC5jLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjExNi4yLjEKZGlmZiAtdSAtcjEuMTE2LjIuMSBrZXJuX3N3aXRj aC5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fc3dpdGNoLmMJNiBBdWcgMjAwNSAwMzowNjoyNSAtMDAw MAkxLjExNi4yLjEKKysrIC4vc3lzL2tlcm4va2Vybl9zd2l0Y2guYwkyNCBPY3QgMjAwNiAwOTox MTo1MiAtMDAwMApAQCAtMzAzLDcgKzMwMywxMiBAQAogCWlmICgodGQtPnRkX3Byb2MtPnBfZmxh ZyAmIFBfSEFEVEhSRUFEUykgPT0gMCkgewogCQkvKiBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGtz ZSBpbiB0aGUgcnVuIHF1ZXVlLiAqLwogCQl0ZC0+dGRfcHJpb3JpdHkgPSBuZXdwcmk7Ci0JCWlm IChrZS0+a2VfcnFpbmRleCAhPSAobmV3cHJpIC8gUlFfUFBRKSkgeworI2lmbmRlZiBTQ0hFRF9D T1JFCisJCWlmIChrZS0+a2VfcnFpbmRleCAhPSAobmV3cHJpIC8gUlFfUFBRKSkKKyNlbHNlCisJ CWlmIChrZS0+a2VfcnFpbmRleCAhPSBuZXdwcmkpCisjZW5kaWYKKwkJewogCQkJc2NoZWRfcmVt KHRkKTsKIAkJCXNjaGVkX2FkZCh0ZCwgU1JRX0JPUklORyk7CiAJCX0KSW5kZXg6IC4vc3lzL2tl cm4va2Vybl9jbG9jay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9r ZXJuL2tlcm5fY2xvY2suYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNzguMi4zCmRpZmYgLXUg LXIxLjE3OC4yLjMga2Vybl9jbG9jay5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fY2xvY2suYwkxMCBN YXIgMjAwNiAxOTozNzozMyAtMDAwMAkxLjE3OC4yLjMKKysrIC4vc3lzL2tlcm4va2Vybl9jbG9j ay5jCTI0IE9jdCAyMDA2IDA5OjEyOjA1IC0wMDAwCkBAIC0yMDQsNiArMjA0LDcgQEAKIAkgKiBS dW4gY3VycmVudCBwcm9jZXNzJ3MgdmlydHVhbCBhbmQgcHJvZmlsZSB0aW1lLCBhcyBuZWVkZWQu CiAJICovCiAJbXR4X2xvY2tfc3Bpbl9mbGFncygmc2NoZWRfbG9jaywgTVRYX1FVSUVUKTsKKwlz Y2hlZF90aWNrKCk7CiAJaWYgKHAtPnBfZmxhZyAmIFBfU0EpIHsKIAkJLyogWFhYS1NFIFdoYXQg dG8gZG8/ICovCiAJfSBlbHNlIHsKSW5kZXg6IC4vc3lzL2tlcm4va2Vybl90Yy5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL2tlcm5fdGMuYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNjQKZGlmZiAtdSAtcjEuMTY0IGtlcm5fdGMuYwotLS0gLi9zeXMva2Vy bi9rZXJuX3RjLmMJMjYgTWFyIDIwMDUgMjA6MDQ6MjggLTAwMDAJMS4xNjQKKysrIC4vc3lzL2tl cm4va2Vybl90Yy5jCTI0IE9jdCAyMDA2IDA5OjEyOjM3IC0wMDAwCkBAIC04LDcgKzgsNyBAQAog ICovCiAKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogc3JjL3N5 cy9rZXJuL2tlcm5fdGMuYyx2IDEuMTY0IDIwMDUvMDMvMjYgMjA6MDQ6MjggcGhrIEV4cCAkIik7 CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IC9yZXBvbWFuL3IvbmN2cy9zcmMvc3lzL2tlcm4va2Vybl90 Yy5jLHYgMS4xNzcgMjAwNi8wOC8wNCAwNzo1NjozNSB5YXIgRXhwICQiKTsKIAogI2luY2x1ZGUg Im9wdF9udHAuaCIKIApAQCAtNjEsNyArNjEsNyBAQAogCXN0cnVjdCB0aW1laGFuZHMJKnRoX25l eHQ7CiB9OwogCi1leHRlcm4gc3RydWN0IHRpbWVoYW5kcyB0aDA7CitzdGF0aWMgc3RydWN0IHRp bWVoYW5kcyB0aDA7CiBzdGF0aWMgc3RydWN0IHRpbWVoYW5kcyB0aDkgPSB7IE5VTEwsIDAsIDAs IDAsIHswLCAwfSwgezAsIDB9LCB7MCwgMH0sIDAsICZ0aDB9Owogc3RhdGljIHN0cnVjdCB0aW1l aGFuZHMgdGg4ID0geyBOVUxMLCAwLCAwLCAwLCB7MCwgMH0sIHswLCAwfSwgezAsIDB9LCAwLCAm dGg5fTsKIHN0YXRpYyBzdHJ1Y3QgdGltZWhhbmRzIHRoNyA9IHsgTlVMTCwgMCwgMCwgMCwgezAs IDB9LCB7MCwgMH0sIHswLCAwfSwgMCwgJnRoOH07CkBAIC04OCw3ICs4OCw3IEBACiBzdGF0aWMg c3RydWN0IHRpbWVjb3VudGVyICp0aW1lY291bnRlcnMgPSAmZHVtbXlfdGltZWNvdW50ZXI7CiAK IHRpbWVfdCB0aW1lX3NlY29uZCA9IDE7Ci10aW1lX3QgdGltZV91cHRpbWUgPSAwOwordGltZV90 IHRpbWVfdXB0aW1lID0gMTsKIAogc3RhdGljIHN0cnVjdCBiaW50aW1lIGJvb3R0aW1lYmluOwog c3RydWN0IHRpbWV2YWwgYm9vdHRpbWU7CkBAIC05Nyw2ICs5Nyw3IEBACiAgICAgTlVMTCwgMCwg c3lzY3RsX2tlcm5fYm9vdHRpbWUsICJTLHRpbWV2YWwiLCAiU3lzdGVtIGJvb3R0aW1lIik7CiAK IFNZU0NUTF9OT0RFKF9rZXJuLCBPSURfQVVUTywgdGltZWNvdW50ZXIsIENUTEZMQUdfUlcsIDAs ICIiKTsKK1NZU0NUTF9OT0RFKF9rZXJuX3RpbWVjb3VudGVyLCBPSURfQVVUTywgdGMsIENUTEZM QUdfUlcsIDAsICIiKTsKIAogc3RhdGljIGludCB0aW1lc3RlcHdhcm5pbmdzOwogU1lTQ1RMX0lO VChfa2Vybl90aW1lY291bnRlciwgT0lEX0FVVE8sIHN0ZXB3YXJuaW5ncywgQ1RMRkxBR19SVywK QEAgLTExNiw2ICsxMTcsNyBAQAogI3VuZGVmIFRDX1NUQVRTCiAKIHN0YXRpYyB2b2lkIHRjX3dp bmR1cCh2b2lkKTsKK3N0YXRpYyB2b2lkIGNwdV90aWNrX2NhbGlicmF0ZShpbnQpOwogCiBzdGF0 aWMgaW50CiBzeXNjdGxfa2Vybl9ib290dGltZShTWVNDVExfSEFORExFUl9BUkdTKQpAQCAtMTMx LDYgKzEzMywyNyBAQAogI2VuZGlmCiAJCXJldHVybiBTWVNDVExfT1VUKHJlcSwgJmJvb3R0aW1l LCBzaXplb2YoYm9vdHRpbWUpKTsKIH0KKworc3RhdGljIGludAorc3lzY3RsX2tlcm5fdGltZWNv dW50ZXJfZ2V0KFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJdV9pbnQgbmNvdW50OworCXN0cnVj dCB0aW1lY291bnRlciAqdGMgPSBhcmcxOworCisJbmNvdW50ID0gdGMtPnRjX2dldF90aW1lY291 bnQodGMpOworCXJldHVybiBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmbmNvdW50LCBzaXplb2Yo bmNvdW50KSwgcmVxKTsKK30KKworc3RhdGljIGludAorc3lzY3RsX2tlcm5fdGltZWNvdW50ZXJf ZnJlcShTWVNDVExfSEFORExFUl9BUkdTKQoreworCXVfaW50NjRfdCBmcmVxOworCXN0cnVjdCB0 aW1lY291bnRlciAqdGMgPSBhcmcxOworCisJZnJlcSA9IHRjLT50Y19mcmVxdWVuY3k7CisJcmV0 dXJuIHN5c2N0bF9oYW5kbGVfaW50KG9pZHAsICZmcmVxLCBzaXplb2YoZnJlcSksIHJlcSk7Cit9 CisKIC8qCiAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZWhhbmRzJyBj b3VudGVyIHZhbHVlIG5vdyBhbmQgd2hhdAogICogd2FzIHdoZW4gd2UgY29waWVkIGl0IHRvIHRo ZSB0aW1laGFuZHMnIG9mZnNldF9jb3VudC4KQEAgLTMwNyw2ICszMzAsNyBAQAogdGNfaW5pdChz dHJ1Y3QgdGltZWNvdW50ZXIgKnRjKQogewogCXVfaW50IHU7CisJc3RydWN0IHN5c2N0bF9vaWQg KnRjX3Jvb3Q7CiAKIAl1ID0gdGMtPnRjX2ZyZXF1ZW5jeSAvIHRjLT50Y19jb3VudGVyX21hc2s7 CiAJLyogWFhYOiBXZSBuZWVkIHNvbWUgbWFyZ2luIGhlcmUsIDEwJSBpcyBhIGd1ZXNzICovCkBA IC0zMjgsNiArMzUyLDI0IEBACiAJdGMtPnRjX25leHQgPSB0aW1lY291bnRlcnM7CiAJdGltZWNv dW50ZXJzID0gdGM7CiAJLyoKKwkgKiBTZXQgdXAgc3lzY3RsIHRyZWUgZm9yIHRoaXMgY291bnRl ci4KKwkgKi8KKwl0Y19yb290ID0gU1lTQ1RMX0FERF9OT0RFKE5VTEwsCisJICAgIFNZU0NUTF9T VEFUSUNfQ0hJTERSRU4oX2tlcm5fdGltZWNvdW50ZXJfdGMpLCBPSURfQVVUTywgdGMtPnRjX25h bWUsCisJICAgIENUTEZMQUdfUlcsIDAsICJ0aW1lY291bnRlciBkZXNjcmlwdGlvbiIpOworCVNZ U0NUTF9BRERfVUlOVChOVUxMLCBTWVNDVExfQ0hJTERSRU4odGNfcm9vdCksIE9JRF9BVVRPLAor CSAgICAibWFzayIsIENUTEZMQUdfUkQsICYodGMtPnRjX2NvdW50ZXJfbWFzayksIDAsCisJICAg ICJtYXNrIGZvciBpbXBsZW1lbnRlZCBiaXRzIik7CisJU1lTQ1RMX0FERF9QUk9DKE5VTEwsIFNZ U0NUTF9DSElMRFJFTih0Y19yb290KSwgT0lEX0FVVE8sCisJICAgICJjb3VudGVyIiwgQ1RMVFlQ RV9VSU5UIHwgQ1RMRkxBR19SRCwgdGMsIHNpemVvZigqdGMpLAorCSAgICBzeXNjdGxfa2Vybl90 aW1lY291bnRlcl9nZXQsICJJVSIsICJjdXJyZW50IHRpbWVjb3VudGVyIHZhbHVlIik7CisJU1lT Q1RMX0FERF9QUk9DKE5VTEwsIFNZU0NUTF9DSElMRFJFTih0Y19yb290KSwgT0lEX0FVVE8sCisJ ICAgICJmcmVxdWVuY3kiLCBDVExUWVBFX1FVQUQgfCBDVExGTEFHX1JELCB0Yywgc2l6ZW9mKCp0 YyksCisJICAgICBzeXNjdGxfa2Vybl90aW1lY291bnRlcl9mcmVxLCAiSVUiLCAidGltZWNvdW50 ZXIgZnJlcXVlbmN5Iik7CisJU1lTQ1RMX0FERF9JTlQoTlVMTCwgU1lTQ1RMX0NISUxEUkVOKHRj X3Jvb3QpLCBPSURfQVVUTywKKwkgICAgInF1YWxpdHkiLCBDVExGTEFHX1JELCAmKHRjLT50Y19x dWFsaXR5KSwgMCwKKwkgICAgImdvb2RuZXNzIG9mIHRpbWUgY291bnRlciIpOworCS8qCiAJICog TmV2ZXIgYXV0b21hdGljYWxseSB1c2UgYSB0aW1lY291bnRlciB3aXRoIG5lZ2F0aXZlIHF1YWxp dHkuCiAJICogRXZlbiB0aG91Z2ggd2UgcnVuIG9uIHRoZSBkdW1teSBjb3VudGVyLCBzd2l0Y2hp bmcgaGVyZSBtYXkgYmUKIAkgKiB3b3JzZSBzaW5jZSB0aGlzIHRpbWVjb3VudGVyIG1heSBub3Qg YmUgbW9ub3Rvbm91cy4KQEAgLTM2MCwxMiArNDAyLDE0IEBACiB2b2lkCiB0Y19zZXRjbG9jayhz dHJ1Y3QgdGltZXNwZWMgKnRzKQogewotCXN0cnVjdCB0aW1lc3BlYyB0czI7CisJc3RydWN0IHRp bWVzcGVjIHRiZWYsIHRhZnQ7CiAJc3RydWN0IGJpbnRpbWUgYnQsIGJ0MjsKIAorCWNwdV90aWNr X2NhbGlicmF0ZSgxKTsKIAluc2V0Y2xvY2srKzsKLQliaW51cHRpbWUoJmJ0Mik7CisJbmFub3Rp bWUoJnRiZWYpOwogCXRpbWVzcGVjMmJpbnRpbWUodHMsICZidCk7CisJYmludXB0aW1lKCZidDIp OwogCWJpbnRpbWVfc3ViKCZidCwgJmJ0Mik7CiAJYmludGltZV9hZGQoJmJ0MiwgJmJvb3R0aW1l YmluKTsKIAlib290dGltZWJpbiA9IGJ0OwpAQCAtMzczLDEyICs0MTcsMTUgQEAKIAogCS8qIFhY WCBmaWRkbGUgYWxsIHRoZSBsaXR0bGUgY3JpbmtseSBiaXRzIGFyb3VuZCB0aGUgZmlvcmRzLi4u ICovCiAJdGNfd2luZHVwKCk7CisJbmFub3RpbWUoJnRhZnQpOwogCWlmICh0aW1lc3RlcHdhcm5p bmdzKSB7Ci0JCWJpbnRpbWUydGltZXNwZWMoJmJ0MiwgJnRzMik7Ci0JCWxvZyhMT0dfSU5GTywg IlRpbWUgc3RlcHBlZCBmcm9tICVqZC4lMDlsZCB0byAlamQuJTA5bGRcbiIsCi0JCSAgICAoaW50 bWF4X3QpdHMyLnR2X3NlYywgdHMyLnR2X25zZWMsCisJCWxvZyhMT0dfSU5GTywKKwkJICAgICJU aW1lIHN0ZXBwZWQgZnJvbSAlamQuJTA5bGQgdG8gJWpkLiUwOWxkICglamQuJTA5bGQpXG4iLAor CQkgICAgKGludG1heF90KXRiZWYudHZfc2VjLCB0YmVmLnR2X25zZWMsCisJCSAgICAoaW50bWF4 X3QpdGFmdC50dl9zZWMsIHRhZnQudHZfbnNlYywKIAkJICAgIChpbnRtYXhfdCl0cy0+dHZfc2Vj LCB0cy0+dHZfbnNlYyk7CiAJfQorCWNwdV90aWNrX2NhbGlicmF0ZSgxKTsKIH0KIAogLyoKQEAg LTQ3NSw4ICs1MjIsOCBAQAogCSAqCSB4ID0gYSAqIDJeMzIgLyAxMF45ID0gYSAqIDQuMjk0OTY3 Mjk2CiAJICoKIAkgKiBUaGUgcmFuZ2Ugb2YgdGhfYWRqdXN0bWVudCBpcyArLy0gNTAwMFBQTSBz byBpbnNpZGUgYSA2NGJpdCBpbnQKLQkgKiB3ZSBjYW4gb25seSBtdWx0aXBseSBieSBhYm91dCA4 NTAgd2l0aG91dCBvdmVyZmxvd2luZywgYnV0IHRoYXQKLQkgKiBsZWF2ZXMgc3VpdGFibHkgcHJl Y2lzZSBmcmFjdGlvbnMgZm9yIG11bHRpcGx5IGJlZm9yZSBkaXZpZGUuCisJICogd2UgY2FuIG9u bHkgbXVsdGlwbHkgYnkgYWJvdXQgODUwIHdpdGhvdXQgb3ZlcmZsb3dpbmcsIHRoYXQKKwkgKiBs ZWF2ZXMgbm8gc3VpdGFibHkgcHJlY2lzZSBmcmFjdGlvbnMgZm9yIG11bHRpcGx5IGJlZm9yZSBk aXZpZGUuCiAJICoKIAkgKiBEaXZpZGUgYmVmb3JlIG11bHRpcGx5IHdpdGggYSBmcmFjdGlvbiBv ZiAyMTk5LzUxMiByZXN1bHRzIGluIGEKIAkgKiBzeXN0ZW1hdGljIHVuZGVyY29tcGVuc2F0aW9u IG9mIDEwUFBNIG9mIHRoX2FkanVzdG1lbnQuICBPbiBhCkBAIC03NDksMTEgKzc5NiwxNiBAQAog dGNfdGlja3RvY2sodm9pZCkKIHsKIAlzdGF0aWMgaW50IGNvdW50OworCXN0YXRpYyB0aW1lX3Qg bGFzdF9jYWxpYjsKIAogCWlmICgrK2NvdW50IDwgdGNfdGljaykKIAkJcmV0dXJuOwogCWNvdW50 ID0gMDsKIAl0Y193aW5kdXAoKTsKKwlpZiAodGltZV91cHRpbWUgIT0gbGFzdF9jYWxpYiAmJiAh KHRpbWVfdXB0aW1lICYgMHhmKSkgeworCQljcHVfdGlja19jYWxpYnJhdGUoMCk7CisJCWxhc3Rf Y2FsaWIgPSB0aW1lX3VwdGltZTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC03ODIsMyArODM0 LDE0NyBAQAogfQogCiBTWVNJTklUKHRpbWVjb3VudGVyLCBTSV9TVUJfQ0xPQ0tTLCBTSV9PUkRF Ul9TRUNPTkQsIGluaXR0aW1lY291bnRlciwgTlVMTCkKKworLyogQ3B1IHRpY2sgaGFuZGxpbmcg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0 YXRpYyBpbnQgY3B1X3RpY2tfdmFyaWFibGU7CitzdGF0aWMgdWludDY0X3QJY3B1X3RpY2tfZnJl cXVlbmN5OworCitzdGF0aWMgdWludDY0X3QKK3RjX2NwdV90aWNrcyh2b2lkKQoreworCXN0YXRp YyB1aW50NjRfdCBiYXNlOworCXN0YXRpYyB1bnNpZ25lZCBsYXN0OworCXVuc2lnbmVkIHU7CisJ c3RydWN0IHRpbWVjb3VudGVyICp0YzsKKworCXRjID0gdGltZWhhbmRzLT50aF9jb3VudGVyOwor CXUgPSB0Yy0+dGNfZ2V0X3RpbWVjb3VudCh0YykgJiB0Yy0+dGNfY291bnRlcl9tYXNrOworCWlm ICh1IDwgbGFzdCkKKwkJYmFzZSArPSAodWludDY0X3QpdGMtPnRjX2NvdW50ZXJfbWFzayArIDE7 CisJbGFzdCA9IHU7CisJcmV0dXJuICh1ICsgYmFzZSk7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0 aW9uIGdldHMgY2FsbGVkIGV2ZXIgMTYgc2Vjb25kcyBvbiBvbmx5IG9uZSBkZXNpZ25hdGVkCisg KiBDUFUgaW4gdGhlIHN5c3RlbSBmcm9tIGhhcmRjbG9jaygpIHZpYSB0Y190aWNrdG9jaygpLgor ICoKKyAqIFdoZW5ldmVyIHRoZSByZWFsIHRpbWUgY2xvY2sgaXMgc3RlcHBlZCB3ZSBnZXQgY2Fs bGVkIHdpdGggcmVzZXQ9MQorICogdG8gbWFrZSBzdXJlIHdlIGhhbmRsZSBzdXNwZW5kL3Jlc3Vt ZSBhbmQgc2ltaWxhciBldmVudHMgY29ycmVjdGx5LgorICovCisKK3N0YXRpYyB2b2lkCitjcHVf dGlja19jYWxpYnJhdGUoaW50IHJlc2V0KQoreworCXN0YXRpYyB1aW50NjRfdCBjX2xhc3Q7CisJ dWludDY0X3QgY190aGlzLCBjX2RlbHRhOworCXN0YXRpYyBzdHJ1Y3QgYmludGltZSAgdF9sYXN0 OworCXN0cnVjdCBiaW50aW1lIHRfdGhpcywgdF9kZWx0YTsKKwl1aW50MzJfdCBkaXZpOworCisJ aWYgKHJlc2V0KSB7CisJCS8qIFRoZSBjbG9jayB3YXMgc3RlcHBlZCwgYWJvcnQgJiByZXNldCAq LworCQl0X2xhc3Quc2VjID0gMDsKKwkJcmV0dXJuOworCX0KKworCS8qIHdlIGRvbid0IGNhbGli cmF0ZSBmaXhlZCByYXRlIGNwdXRpY2tzICovCisJaWYgKCFjcHVfdGlja192YXJpYWJsZSkKKwkJ cmV0dXJuOworCisJZ2V0YmludXB0aW1lKCZ0X3RoaXMpOworCWNfdGhpcyA9IGNwdV90aWNrcygp OworCWlmICh0X2xhc3Quc2VjICE9IDApIHsKKwkJY19kZWx0YSA9IGNfdGhpcyAtIGNfbGFzdDsK KwkJdF9kZWx0YSA9IHRfdGhpczsKKwkJYmludGltZV9zdWIoJnRfZGVsdGEsICZ0X2xhc3QpOwor CQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0IDE2ICsvLSAxLzI1NiBzZWNvbmRzIHBhc3NlZC4gCisJ CSAqIEFmdGVyIGRpdmlzaW9uIGJ5IDE2IHRoaXMgZ2l2ZXMgdXMgYSBwcmVjaXNpb24gb2YKKwkJ ICogcm91Z2hseSAyNTBQUE0gd2hpY2ggaXMgc3VmZmljaWVudAorCQkgKi8KKwkJaWYgKHRfZGVs dGEuc2VjID4gMTYgfHwgKAorCQkgICAgdF9kZWx0YS5zZWMgPT0gMTYgJiYgdF9kZWx0YS5mcmFj ID49ICgweDAxTEwgPDwgNTYpKSkgeworCQkJLyogdG9vIGxvbmcgKi8KKwkJCWlmIChib290dmVy Ym9zZSkKKwkJCQlwcmludGYoIiVqdS4lMDE2anggdG9vIGxvbmdcbiIsCisJCQkJICAgICh1aW50 bWF4X3QpdF9kZWx0YS5zZWMsCisJCQkJICAgICh1aW50bWF4X3QpdF9kZWx0YS5mcmFjKTsKKwkJ fSBlbHNlIGlmICh0X2RlbHRhLnNlYyA8IDE1IHx8CisJCSAgICAodF9kZWx0YS5zZWMgPT0gMTUg JiYgdF9kZWx0YS5mcmFjIDw9ICgweGZmTEwgPDwgNTYpKSkgeworCQkJLyogdG9vIHNob3J0ICov CisJCQlpZiAoYm9vdHZlcmJvc2UpCisJCQkJcHJpbnRmKCIlanUuJTAxNmp4IHRvbyBzaG9ydFxu IiwKKwkJCQkgICAgKHVpbnRtYXhfdCl0X2RlbHRhLnNlYywKKwkJCQkgICAgKHVpbnRtYXhfdCl0 X2RlbHRhLmZyYWMpOworCQl9IGVsc2UgeworCQkJLyoganVzdCByaWdodCAqLworCQkJLyoKKwkJ CSAqIEhlYWRyb29tOgorCQkJICogCTJeKDY0LTIwKSAvIDE2W3NdID0KKwkJCSAqIAkyXig0NCkg LyAxNltzXSA9CisJCQkgKiAJMTcuNTkyLjE4Ni4wNDQuNDE2IC8gMTYgPQorCQkJICogCTEuMDk5 LjUxMS42MjcuNzc2IFtIel0KKwkJCSAqLworCQkJZGl2aSA9IHRfZGVsdGEuc2VjIDw8IDIwOwor CQkJZGl2aSB8PSB0X2RlbHRhLmZyYWMgPj4gKDY0IC0gMjApOworCQkJY19kZWx0YSA8PD0gMjA7 CisJCQljX2RlbHRhIC89IGRpdmk7CisJCQlpZiAoY19kZWx0YSAgPiBjcHVfdGlja19mcmVxdWVu Y3kpIHsKKwkJCQlpZiAoMCAmJiBib290dmVyYm9zZSkKKwkJCQkJcHJpbnRmKCJjcHVfdGljayBp bmNyZWFzZWQgdG8gJWp1IEh6XG4iLAorCQkJCQkgICAgY19kZWx0YSk7CisJCQkJY3B1X3RpY2tf ZnJlcXVlbmN5ID0gY19kZWx0YTsKKwkJCX0KKwkJfQorCX0KKwljX2xhc3QgPSBjX3RoaXM7CisJ dF9sYXN0ID0gdF90aGlzOworfQorCit2b2lkCitzZXRfY3B1dGlja2VyKGNwdV90aWNrX2YgKmZ1 bmMsIHVpbnQ2NF90IGZyZXEsIHVuc2lnbmVkIHZhcikKK3sKKworCWlmIChmdW5jID09IE5VTEwp IHsKKwkJY3B1X3RpY2tzID0gdGNfY3B1X3RpY2tzOworCX0gZWxzZSB7CisJCWNwdV90aWNrX2Zy ZXF1ZW5jeSA9IGZyZXE7CisJCWNwdV90aWNrX3ZhcmlhYmxlID0gdmFyOworCQljcHVfdGlja3Mg PSBmdW5jOworCX0KK30KKwordWludDY0X3QKK2NwdV90aWNrcmF0ZSh2b2lkKQoreworCisJaWYg KGNwdV90aWNrcyA9PSB0Y19jcHVfdGlja3MpIAorCQlyZXR1cm4gKHRjX2dldGZyZXF1ZW5jeSgp KTsKKwlyZXR1cm4gKGNwdV90aWNrX2ZyZXF1ZW5jeSk7Cit9CisKKy8qCisgKiBXZSBuZWVkIHRv IGJlIHNsaWdodGx5IGNhcmVmdWwgY29udmVydGluZyBjcHV0aWNrcyB0byBtaWNyb3NlY29uZHMu CisgKiBUaGVyZSBpcyBwbGVudHkgb2YgbWFyZ2luIGluIDY0IGJpdHMgb2YgbWljcm9zZWNvbmRz IChoYWxmIGEgbWlsbGlvbgorICogeWVhcnMpIGFuZCBpbiA2NCBiaXRzIGF0IDQgR0h6ICgxNDYg eWVhcnMpLCBidXQgaWYgd2UgZG8gYSBtdWx0aXBseQorICogYmVmb3JlIGRpdmlkZSBjb252ZXJz aW9uICh0byByZXRhaW4gcHJlY2lzaW9uKSB3ZSBmaW5kIHRoYXQgdGhlCisgKiBtYXJnaW4gc2hy aW5rcyB0byAxLjUgaG91cnMgKG9uZSBtaWxsaW9udGggb2YgMTQ2eSkuCisgKiBXaXRoIGEgdGhy ZWUgcHJvbmcgYXBwcm9hY2ggd2UgbmV2ZXIgbG9zZSBzaWduaWZpY2FudCBiaXRzLCBubworICog bWF0dGVyIHdoYXQgdGhlIGNwdXRpY2sgcmF0ZSBhbmQgbGVuZ3RoIG9mIHRpbWVpbnRlcnZhbCBp cy4KKyAqLworCit1aW50NjRfdAorY3B1dGljazJ1c2VjKHVpbnQ2NF90IHRpY2spCit7CisKKwlp ZiAodGljayA+IDE4NDQ2NzQ0MDczNzA5NTUxTEwpCQkvKiBmbG9vcigyXjY0IC8gMTAwMCkgKi8K KwkJcmV0dXJuICh0aWNrIC8gKGNwdV90aWNrcmF0ZSgpIC8gMTAwMDAwMExMKSk7CisJZWxzZSBp ZiAodGljayA+IDE4NDQ2NzQ0MDczNzA5TEwpCS8qIGZsb29yKDJeNjQgLyAxMDAwMDAwKSAqLwor CQlyZXR1cm4gKCh0aWNrICogMTAwMExMKSAvIChjcHVfdGlja3JhdGUoKSAvIDEwMDBMTCkpOwor CWVsc2UKKwkJcmV0dXJuICgodGljayAqIDEwMDAwMDBMTCkgLyBjcHVfdGlja3JhdGUoKSk7Cit9 CisKK2NwdV90aWNrX2YJKmNwdV90aWNrcyA9IHRjX2NwdV90aWNrczsKSW5kZXg6IC4vc3lzL2tl cm4va2Vybl9zeW5jaC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9r ZXJuL2tlcm5fc3luY2guYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNzAuMi42CmRpZmYgLXUg LXIxLjI3MC4yLjYga2Vybl9zeW5jaC5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fc3luY2guYwk2IEp1 bCAyMDA2IDA4OjMyOjUwIC0wMDAwCTEuMjcwLjIuNgorKysgLi9zeXMva2Vybi9rZXJuX3N5bmNo LmMJMjQgT2N0IDIwMDYgMDk6MTM6MDUgLTAwMDAKQEAgLTUzNywxNCArNTM3LDcgQEAKIGludAog eWllbGQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCB5aWVsZF9hcmdzICp1YXApCiB7Ci0Jc3Ry dWN0IGtzZWdycCAqa2c7Ci0KLQlrZyA9IHRkLT50ZF9rc2VncnA7CiAJbXR4X2Fzc2VydCgmR2lh bnQsIE1BX05PVE9XTkVEKTsKLQltdHhfbG9ja19zcGluKCZzY2hlZF9sb2NrKTsKLQlzY2hlZF9w cmlvKHRkLCBQUklfTUFYX1RJTUVTSEFSRSk7Ci0JbWlfc3dpdGNoKFNXX1ZPTCwgTlVMTCk7Ci0J bXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKLQl0ZC0+dGRfcmV0dmFsWzBdID0gMDsKKwlz Y2hlZF9yZWxpbnF1aXNoKHRkKTsKIAlyZXR1cm4gKDApOwogfQpJbmRleDogLi9zeXMvY29uZi9v cHRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9jb25mL29wdGlv bnMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTEwLjIuMTkKZGlmZiAtdSAtcjEuNTEwLjIuMTkg b3B0aW9ucwotLS0gLi9zeXMvY29uZi9vcHRpb25zCTIgU2VwIDIwMDYgMTM6MTI6MDggLTAwMDAJ MS41MTAuMi4xOQorKysgLi9zeXMvY29uZi9vcHRpb25zCTI0IE9jdCAyMDA2IDA5OjEzOjE5IC0w MDAwCkBAIC0xMjcsNiArMTI3LDcgQEAKIFBVQ19GQVNUSU5UUglvcHRfcHVjLmgKIFFVT1RBCiBT Q0hFRF80QlNECW9wdF9zY2hlZC5oCitTQ0hFRF9DT1JFCW9wdF9zY2hlZC5oCiBTQ0hFRF9VTEUJ b3B0X3NjaGVkLmgKIFNIT1dfQlVTWUJVRlMKIFNMRUVQUVVFVUVfUFJPRklMSU5HCkluZGV4OiAu L3N5cy9jb25mL2ZpbGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9j b25mL2ZpbGVzLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwMzEuMi40NQpkaWZmIC11IC1yMS4x MDMxLjIuNDUgZmlsZXMKLS0tIC4vc3lzL2NvbmYvZmlsZXMJMjEgT2N0IDIwMDYgMDU6Mjg6NTAg LTAwMDAJMS4xMDMxLjIuNDUKKysrIC4vc3lzL2NvbmYvZmlsZXMJMjQgT2N0IDIwMDYgMDk6MTM6 NTIgLTAwMDAKQEAgLTEsNCArMSw0IEBACi0jICRGcmVlQlNEOiBzcmMvc3lzL2NvbmYvZmlsZXMs diAxLjEwMzEuMi40NSAyMDA2LzEwLzIxIDA1OjI4OjUwIHNjb3R0bCBFeHAgJAorIyAkRnJlZUJT RDogc3JjL3N5cy9jb25mL2ZpbGVzLHYgMS4xMDMxLjIuNDQgMjAwNi8xMC8xNiAwNTozNjoxOSBk ZWxwaGlqIEV4cCAkCiAjCiAjIFRoZSBsb25nIGNvbXBpbGUtd2l0aCBhbmQgZGVwZW5kZW5jeSBs aW5lcyBhcmUgcmVxdWlyZWQgYmVjYXVzZSBvZgogIyBsaW1pdGF0aW9ucyBpbiBjb25maWc6IGJh Y2tzbGFzaC1uZXdsaW5lIGRvZXNuJ3Qgd29yayBpbiBzdHJpbmdzLCBhbmQKQEAgLTY3MCw3ICs2 NzAsNiBAQAogZGV2L21kL21kLmMJCQlvcHRpb25hbCBtZAogZGV2L21lbS9tZW1kZXYuYwkJb3B0 aW9uYWwgbWVtCiBkZXYvbWZpL21maS5jCQkJb3B0aW9uYWwgbWZpCi1kZXYvbWZpL21maV9kZWJ1 Zy5jCQlvcHRpb25hbCBtZmkKIGRldi9tZmkvbWZpX3BjaS5jCQlvcHRpb25hbCBtZmkgcGNpCiBk ZXYvbWZpL21maV9kaXNrLmMJCW9wdGlvbmFsIG1maQogZGV2L21maS9tZmlfbGludXguYwkJb3B0 aW9uYWwgbWZpIGNvbXBhdF9saW51eApAQCAtMTMwMiw2ICsxMzAxLDcgQEAKIGtlcm4vbWQ0Yy5j CQkJb3B0aW9uYWwgbmV0c21iCiBrZXJuL21kNWMuYwkJCXN0YW5kYXJkCiBrZXJuL3NjaGVkXzRi c2QuYwkJb3B0aW9uYWwgc2NoZWRfNGJzZAora2Vybi9zY2hlZF9jb3JlLmMJCW9wdGlvbmFsIHNj aGVkX2NvcmUKIGtlcm4vc2NoZWRfdWxlLmMJCW9wdGlvbmFsIHNjaGVkX3VsZQoga2Vybi9zdWJy X2F1dG9jb25mLmMJCXN0YW5kYXJkCiBrZXJuL3N1YnJfYmxpc3QuYwkJc3RhbmRhcmQKSW5kZXg6 IC4vc3lzL3Bvc2l4NC9rc2NoZWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3Ny Yy9zeXMvcG9zaXg0L2tzY2hlZC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjI2CmRpZmYgLXUg LXIxLjI2IGtzY2hlZC5jCi0tLSAuL3N5cy9wb3NpeDQva3NjaGVkLmMJNyBKYW4gMjAwNSAwMjoy OToxOSAtMDAwMAkxLjI2CisrKyAuL3N5cy9wb3NpeDQva3NjaGVkLmMJMjQgT2N0IDIwMDYgMDk6 MTM6NTkgLTAwMDAKQEAgLTI0Niw5ICsyNDYsNyBAQAogICovCiBpbnQga3NjaGVkX3lpZWxkKHJl Z2lzdGVyX3QgKnJldCwgc3RydWN0IGtzY2hlZCAqa3NjaGVkKQogewotCW10eF9sb2NrX3NwaW4o JnNjaGVkX2xvY2spOwotCWN1cnRocmVhZC0+dGRfZmxhZ3MgfD0gVERGX05FRURSRVNDSEVEOwot CW10eF91bmxvY2tfc3Bpbigmc2NoZWRfbG9jayk7CisJc2NoZWRfcmVsaW5xdWlzaChjdXJ0aHJl YWQpOwogCXJldHVybiAwOwogfQogCg== ------=_Part_3894_21344688.1161682297840-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 09:50:53 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B26BD16A415 for ; Tue, 24 Oct 2006 09:50:53 +0000 (UTC) (envelope-from rosmir@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.186]) by mx1.FreeBSD.org (Postfix) with ESMTP id A9BAA43D6B for ; Tue, 24 Oct 2006 09:50:48 +0000 (GMT) (envelope-from rosmir@gmail.com) Received: by nf-out-0910.google.com with SMTP id p77so153888nfc for ; Tue, 24 Oct 2006 02:50:47 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=OLshJGdrS43GTCJ26YxziFDLRu9+prNjQzMqwnLba2EiNVM8XXQnIfX9xBBV0+RcOZCG9k/i1WlpyboYJdhxsTVkRjb0O/pnHiLjecDETi1KduAyIvagYSW1b0HqDUYdTRP2lUo+Jys9e4SsQjrlJ68gp44YrLBJetk6RGCCK/8= Received: by 10.78.97.7 with SMTP id u7mr8894996hub; Tue, 24 Oct 2006 02:50:46 -0700 (PDT) Received: by 10.78.115.17 with HTTP; Tue, 24 Oct 2006 02:50:46 -0700 (PDT) Message-ID: <9c6e52b10610240250m7a59f192o263d7d8853d8cd90@mail.gmail.com> Date: Tue, 24 Oct 2006 13:50:46 +0400 From: "Stepan A. Baranov" To: davidxu@freebsd.org, freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4050_22482066.1161683446506" Cc: Subject: scheduler CORE for RELENG_6 #2 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 09:50:53 -0000 ------=_Part_4050_22482066.1161683446506 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, In previous email I attached patch without extension txt. Stepan Baranov. ------=_Part_4050_22482066.1161683446506 Content-Type: text/plain; name=patch-add-CORE.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_etnvql9x Content-Disposition: attachment; filename="patch-add-CORE.txt" SW5kZXg6IC4vc3lzL3N5cy9zY2hlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMv c3JjL3N5cy9zeXMvc2NoZWQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNApkaWZmIC11IC1y MS4yNCBzY2hlZC5oCi0tLSAuL3N5cy9zeXMvc2NoZWQuaAkxOSBBcHIgMjAwNSAwNDowMToyNSAt MDAwMAkxLjI0CisrKyAuL3N5cy9zeXMvc2NoZWQuaAkyNCBPY3QgMjAwNiAwOTo0NTozMiAtMDAw MApAQCAtNzgsNiArNzgsOCBAQAogdm9pZAlzY2hlZF9hZGQoc3RydWN0IHRocmVhZCAqdGQsIGlu dCBmbGFncyk7CiB2b2lkCXNjaGVkX2Nsb2NrKHN0cnVjdCB0aHJlYWQgKnRkKTsKIHZvaWQJc2No ZWRfcmVtKHN0cnVjdCB0aHJlYWQgKnRkKTsKK3ZvaWQJc2NoZWRfdGljayh2b2lkKTsKK3ZvaWQJ c2NoZWRfcmVsaW5xdWlzaChzdHJ1Y3QgdGhyZWFkICp0ZCk7CiAKIC8qCiAgKiBCaW5kaW5nIG1h a2VzIGNwdSBhZmZpbml0eSBwZXJtYW5lbnQgd2hpbGUgcGlubmluZyBpcyB1c2VkIHRvIHRlbXBv cmFyaWx5CkluZGV4OiAuL3N5cy9zeXMvc3lzdG0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9t ZS9uY3ZzL3NyYy9zeXMvc3lzL3N5c3RtLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjM0LjIu NQpkaWZmIC11IC1yMS4yMzQuMi41IHN5c3RtLmgKLS0tIC4vc3lzL3N5cy9zeXN0bS5oCTYgSnVs IDIwMDYgMDg6MzI6NTAgLTAwMDAJMS4yMzQuMi41CisrKyAuL3N5cy9zeXMvc3lzdG0uaAkyNCBP Y3QgMjAwNiAwOTo0NTozNSAtMDAwMApAQCAtMjM5LDYgKzIzOSwxMiBAQAogaW50CXVuc2V0ZW52 KGNvbnN0IGNoYXIgKm5hbWUpOwogaW50CXRlc3RlbnYoY29uc3QgY2hhciAqbmFtZSk7CiAKK3R5 cGVkZWYgdWludDY0X3QgKGNwdV90aWNrX2YpKHZvaWQpOwordm9pZCBzZXRfY3B1dGlja2VyKGNw dV90aWNrX2YgKmZ1bmMsIHVpbnQ2NF90IGZyZXEsIHVuc2lnbmVkIHZhcik7CitleHRlcm4gY3B1 X3RpY2tfZiAqY3B1X3RpY2tzOwordWludDY0X3QgY3B1X3RpY2tyYXRlKHZvaWQpOwordWludDY0 X3QgY3B1dGljazJ1c2VjKHVpbnQ2NF90IHRpY2spOworCiAjaWZkZWYgQVBNX0ZJWFVQX0NBTExU T0RPCiBzdHJ1Y3QgdGltZXZhbDsKIHZvaWQJYWRqdXN0X3RpbWVvdXRfY2FsbHRvZG8oc3RydWN0 IHRpbWV2YWwgKnRpbWVfY2hhbmdlKTsKSW5kZXg6IC4vc3lzL2tlcm4vc2NoZWRfdWxlLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vc2NoZWRfdWxlLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUzLjIuMwpkaWZmIC11IC1yMS4xNTMuMi4zIHNjaGVkX3Vs ZS5jCi0tLSAuL3N5cy9rZXJuL3NjaGVkX3VsZS5jCTI3IFNlcCAyMDA1IDEyOjAwOjMxIC0wMDAw CTEuMTUzLjIuMworKysgLi9zeXMva2Vybi9zY2hlZF91bGUuYwkyNCBPY3QgMjAwNiAwOTo0NToz OCAtMDAwMApAQCAtMTk2Miw2ICsxOTYyLDE5IEBACiAJcmV0dXJuICh0ZC0+dGRfa3NlLT5rZV9m bGFncyAmIEtFRl9CT1VORCk7CiB9CiAKK3ZvaWQKK3NjaGVkX3JlbGlucXVpc2goc3RydWN0IHRo cmVhZCAqdGQpCit7CisJc3RydWN0IGtzZWdycCAqa2c7CisgCisJa2cgPSB0ZC0+dGRfa3NlZ3Jw OworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChrZy0+a2dfcHJpX2NsYXNzID09 IFBSSV9USU1FU0hBUkUpCisJCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhfVElNRVNIQVJFKTsKKwlt aV9zd2l0Y2goU1dfVk9MLCBOVUxMKTsKKwltdHhfdW5sb2NrX3NwaW4oJnNjaGVkX2xvY2spOwor fQorCiBpbnQKIHNjaGVkX2xvYWQodm9pZCkKIHsKQEAgLTE5OTUsNSArMjAwOCwxMCBAQAogewog CXJldHVybiAoc2l6ZW9mKHN0cnVjdCB0aHJlYWQpICsgc2l6ZW9mKHN0cnVjdCB0ZF9zY2hlZCkp OwogfQorCit2b2lkCitzY2hlZF90aWNrKHZvaWQpCit7Cit9CiAjZGVmaW5lIEtFUk5fU1dJVENI X0lOQ0xVREUgMQogI2luY2x1ZGUgImtlcm4va2Vybl9zd2l0Y2guYyIKSW5kZXg6IC4vc3lzL2tl cm4vc2NoZWRfY29yZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC4vc3lzL2tlcm4vc2NoZWRfY29y ZS5jCmRpZmYgLU4gLi9zeXMva2Vybi9zY2hlZF9jb3JlLmMKLS0tIC9kZXYvbnVsbAkxIEphbiAx OTcwIDAwOjAwOjAwIC0wMDAwCisrKyAuL3N5cy9rZXJuL3NjaGVkX2NvcmUuYwkyNCBPY3QgMjAw NiAwOTo0NTo0MyAtMDAwMApAQCAtMCwwICsxLDE3NDEgQEAKKy8qLQorICogQ29weXJpZ2h0IChj KSAyMDA1LTIwMDYsIERhdmlkIFh1IDx5Znh1QGNvcnAubmV0ZWFzZS5jb20+CisgKiBBbGwgcmln aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0 OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVT UyBPUgorICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KKyAqIElOIE5PIEVW RU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwK KyAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B R0VTIChJTkNMVURJTkcsIEJVVAorICogTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor I2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEOiAvcmVwb21hbi9yL25j dnMvc3JjL3N5cy9rZXJuL3NjaGVkX2NvcmUuYyx2IDEuOSAyMDA2LzA2LzI5IDEyOjI5OjIwIGRh dmlkeHUgRXhwICQiKTsKKworI2luY2x1ZGUgIm9wdF9od3BtY19ob29rcy5oIgorI2luY2x1ZGUg Im9wdF9zY2hlZC5oIgorCisjZGVmaW5lIGtzZSB0ZF9zY2hlZAorCisjaW5jbHVkZSA8c3lzL3Bh cmFtLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisjaW5jbHVkZSA8c3lzL2tkYi5oPgorI2lu Y2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMva3RocmVhZC5oPgorI2luY2x1ZGUg PHN5cy9rdHIuaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5o PgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5j bHVkZSA8c3lzL3Jlc291cmNldmFyLmg+CisjaW5jbHVkZSA8c3lzL3NjaGVkLmg+CisjaW5jbHVk ZSA8c3lzL3NtcC5oPgorI2luY2x1ZGUgPHN5cy9zeC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwu aD4KKyNpbmNsdWRlIDxzeXMvc3lzcHJvdG8uaD4KKyNpbmNsdWRlIDxzeXMvdHVybnN0aWxlLmg+ CisjaW5jbHVkZSA8c3lzL3VuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy92bW1ldGVyLmg+CisjaWZk ZWYgS1RSQUNFCisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2luY2x1ZGUgPHN5cy9rdHJhY2UuaD4K KyNlbmRpZgorCisjaWZkZWYgSFdQTUNfSE9PS1MKKyNpbmNsdWRlIDxzeXMvcG1ja2Vybi5oPgor I2VuZGlmCisKKyNpbmNsdWRlIDxtYWNoaW5lL2NwdS5oPgorI2luY2x1ZGUgPG1hY2hpbmUvc21w Lmg+CisKKy8qIGdldCBwcm9jZXNzJ3MgbmljZSB2YWx1ZSwgc2tpcCB2YWx1ZSAyMCB3aGljaCBp cyBub3Qgc3VwcG9ydGVkICovCisjZGVmaW5lCVBST0NfTklDRShwKQkJTUlOKChwKS0+cF9uaWNl LCAxOSkKKworLyogY29udmVydCBuaWNlIHRvIGtlcm5lbCB0aHJlYWQgcHJpb3JpdHkgKi8KKyNk ZWZpbmUJTklDRV9UT19QUkkobmljZSkJKFBVU0VSICsgMjAgKyAobmljZSkpCisKKy8qIGdldCBw cm9jZXNzJ3Mgc3RhdGljIHByaW9yaXR5ICovCisjZGVmaW5lCVBST0NfUFJJKHApCQlOSUNFX1RP X1BSSShQUk9DX05JQ0UocCkpCisKKy8qIGNvbnZlcnQga2VybmVsIHRocmVhZCBwcmlvcml0eSB0 byB1c2VyIHByaW9yaXR5ICovCisjZGVmaW5lCVVTRVJfUFJJKHByaSkJCU1JTigocHJpKSAtIFBV U0VSLCAzOSkKKworLyogY29udmVydCBuaWNlIHZhbHVlIHRvIHVzZXIgcHJpb3JpdHkgKi8KKyNk ZWZpbmUJUFJPQ19VU0VSX1BSSShwKQkoUFJPQ19OSUNFKHApICsgMjApCisKKy8qIG1heGltdW0g dXNlciBwcmlvcml0eSwgaGlnaGVzdCBwcmlvICsgMSAqLworI2RlZmluZQlNQVhfVVNFUl9QUkkJ CTQwCisKKy8qIG1heGltdW0ga2VybmVsIHByaW9yaXR5IGl0cyBuaWNlIGlzIDE5ICovCisjZGVm aW5lIFBVU0VSX01BWAkJKFBVU0VSICsgMzkpCisKKy8qIHRpY2tzIGFuZCBuYW5vc2Vjb25kIGNv bnZlcnRlcnMgKi8KKyNkZWZpbmUJTlNfVE9fSFoobikJCSgobikgLyAoMTAwMDAwMDAwMCAvIGh6 KSkKKyNkZWZpbmUJSFpfVE9fTlMoaCkJCSgoaCkgKiAoMTAwMDAwMDAwMCAvIGh6KSkKKworLyog dGlja3MgYW5kIG1pY3Jvc2Vjb25kIGNvbnZlcnRlcnMgKi8KKyNkZWZpbmUgTVNfVE9fSFoobSkJ CSgobSkgLyAoMTAwMDAwMCAvIGh6KSkKKworI2RlZmluZQlQUklfU0NPUkVfUkFUSU8JCTI1Cisj ZGVmaW5lCU1BWF9TQ09SRQkJKE1BWF9VU0VSX1BSSSAqIFBSSV9TQ09SRV9SQVRJTyAvIDEwMCkK KyNkZWZpbmUJTUFYX1NMRUVQX1RJTUUJCShkZWZfdGltZXNsaWNlICogTUFYX1NDT1JFKQorI2Rl ZmluZQlOU19NQVhfU0xFRVBfVElNRQkoSFpfVE9fTlMoTUFYX1NMRUVQX1RJTUUpKQorI2RlZmlu ZQlTVEFSVkFUSU9OX1RJTUUJCShNQVhfU0xFRVBfVElNRSkKKworI2RlZmluZQlDVVJSRU5UX1ND T1JFKGtnKQlcCisgICAoTUFYX1NDT1JFICogTlNfVE9fSFooKGtnKS0+a2dfc2xwdGltZSkgLyBN QVhfU0xFRVBfVElNRSkKKworI2RlZmluZQlTQ0FMRV9VU0VSX1BSSSh4LCB1cHJpKQlcCisgICAg TUFYKHggKiAodXByaSArIDEpIC8gKE1BWF9VU0VSX1BSSS8yKSwgbWluX3RpbWVzbGljZSkKKwor LyoKKyAqIEZvciBhIHRocmVhZCB3aG9zZSBuaWNlIGlzIHplcm8sIHRoZSBzY29yZSBpcyB1c2Vk IHRvIGRldGVybWluZQorICogaWYgaXQgaXMgYW4gaW50ZXJhY3RpdmUgdGhyZWFkLgorICovCisj ZGVmaW5lCUlOVEVSQUNUSVZFX0JBU0VfU0NPUkUJKE1BWF9TQ09SRSAqIDIwKS8xMDAKKworLyoK KyAqIENhbGN1bGF0ZSBhIHNjb3JlIHdoaWNoIGEgdGhyZWFkIG11c3QgaGF2ZSB0byBwcm92ZSBp dHNlbGYgaXMKKyAqIGFuIGludGVyYWN0aXZlIHRocmVhZC4KKyAqLworI2RlZmluZQlJTlRFUkFD VElWRV9TQ09SRShrZSkJCVwKKyAgICAoUFJPQ19OSUNFKChrZSktPmtlX3Byb2MpICogTUFYX1ND T1JFIC8gNDAgKyBJTlRFUkFDVElWRV9CQVNFX1NDT1JFKQorCisvKiBUZXN0IGlmIGEgdGhyZWFk IGlzIGFuIGludGVyYWN0aXZlIHRocmVhZCAqLworI2RlZmluZQlUSFJFQURfSVNfSU5URVJBQ1RJ VkUoa2UpCVwKKyAgICAoKGtlKS0+a2Vfa3NlZ3JwLT5rZ191c2VyX3ByaSA8PQlcCisJUFJPQ19Q UkkoKGtlKS0+a2VfcHJvYykgLSBJTlRFUkFDVElWRV9TQ09SRShrZSkpCisKKy8qCisgKiBDYWxj dWxhdGUgaG93IGxvbmcgYSB0aHJlYWQgbXVzdCBzbGVlcCB0byBwcm92ZSBpdHNlbGYgaXMgYW4K KyAqIGludGVyYWN0aXZlIHNsZWVwLgorICovCisjZGVmaW5lCUlOVEVSQUNUSVZFX1NMRUVQX1RJ TUUoa2UpCVwKKyAgICAoSFpfVE9fTlMoTUFYX1NMRUVQX1RJTUUgKgkJXAorCShNQVhfU0NPUkUg LyAyICsgSU5URVJBQ1RJVkVfU0NPUkUoKGtlKSkgKyAxKSAvIE1BWF9TQ09SRSAtIDEpKQorCisj ZGVmaW5lCUNISUxEX1dFSUdIVAk5MAorI2RlZmluZQlQQVJFTlRfV0VJR0hUCTkwCisjZGVmaW5l CUVYSVRfV0VJR0hUCTMKKworI2RlZmluZQlTQ0hFRF9MT0FEX1NDQUxFCTEyOFVMCisKKyNkZWZp bmUJSURMRQkJMAorI2RlZmluZSBJRExFX0lETEUJMQorI2RlZmluZSBOT1RfSURMRQkyCisKKyNk ZWZpbmUgS1FCX0xFTgkJKDgpCQkvKiBOdW1iZXIgb2YgcHJpb3JpdHkgc3RhdHVzIHdvcmRzLiAq LworI2RlZmluZSBLUUJfTDJCUFcJKDUpCQkvKiBMb2cyKHNpemVvZihycWJfd29yZF90KSAqIE5C QlkpKS4gKi8KKyNkZWZpbmUgS1FCX0JQVwkJKDE8PEtRQl9MMkJQVykJLyogQml0cyBpbiBhbiBy cWJfd29yZF90LiAqLworCisjZGVmaW5lIEtRQl9CSVQocHJpKQkoMSA8PCAoKHByaSkgJiAoS1FC X0JQVyAtIDEpKSkKKyNkZWZpbmUgS1FCX1dPUkQocHJpKQkoKHByaSkgPj4gS1FCX0wyQlBXKQor I2RlZmluZSBLUUJfRkZTKHdvcmQpCShmZnMod29yZCkgLSAxKQorCisjZGVmaW5lCUtRX05RUwkJ MjU2CisKKy8qCisgKiBUeXBlIG9mIHJ1biBxdWV1ZSBzdGF0dXMgd29yZC4KKyAqLwordHlwZWRl ZiB1X2ludDMyX3QJa3FiX3dvcmRfdDsKKworLyoKKyAqIEhlYWQgb2YgcnVuIHF1ZXVlcy4KKyAq LworVEFJTFFfSEVBRChrcnFoZWFkLCBrc2UpOworCisvKgorICogQml0IGFycmF5IHdoaWNoIG1h aW50YWlucyB0aGUgc3RhdHVzIG9mIGEgcnVuIHF1ZXVlLiAgV2hlbiBhIHF1ZXVlIGlzCisgKiBu b24tZW1wdHkgdGhlIGJpdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBxdWV1ZSBudW1iZXIgd2lsbCBi ZSBzZXQuCisgKi8KK3N0cnVjdCBrcnFiaXRzIHsKKwlrcWJfd29yZF90CXJxYl9iaXRzW0tRQl9M RU5dOworfTsKKworLyoKKyAqIFJ1biBxdWV1ZSBzdHJ1Y3R1cmUuIENvbnRhaW5zIGFuIGFycmF5 IG9mIHJ1biBxdWV1ZXMgb24gd2hpY2ggcHJvY2Vzc2VzCisgKiBhcmUgcGxhY2VkLCBhbmQgYSBz dHJ1Y3R1cmUgdG8gbWFpbnRhaW4gdGhlIHN0YXR1cyBvZiBlYWNoIHF1ZXVlLgorICovCitzdHJ1 Y3Qga3J1bnEgeworCXN0cnVjdCBrcnFiaXRzCXJxX3N0YXR1czsKKwlzdHJ1Y3Qga3JxaGVhZAly cV9xdWV1ZXNbS1FfTlFTXTsKK307CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGRhdGFzdHJ1Y3R1 cmVzIGFyZSBhbGxvY2F0ZWQgd2l0aGluIHRoZWlyIHBhcmVudCBzdHJ1Y3R1cmUKKyAqIGJ1dCBh cmUgc2NoZWR1bGVyIHNwZWNpZmljLgorICovCisvKgorICogVGhlIHNjaGVkdWxhYmxlIGVudGl0 eSB0aGF0IGNhbiBiZSBnaXZlbiBhIGNvbnRleHQgdG8gcnVuLiAgQSBwcm9jZXNzIG1heQorICog aGF2ZSBzZXZlcmFsIG9mIHRoZXNlLgorICovCitzdHJ1Y3Qga3NlIHsKKwlzdHJ1Y3QgdGhyZWFk CSprZV90aHJlYWQ7CS8qICgqKSBBY3RpdmUgYXNzb2NpYXRlZCB0aHJlYWQuICovCisJVEFJTFFf RU5UUlkoa3NlKSBrZV9wcm9jcTsJLyogKGoveikgUnVuIHF1ZXVlLiAqLworCWludAkJa2VfZmxh Z3M7CS8qIChqKSBLRUZfKiBmbGFncy4gKi8KKwlmaXhwdF90CQlrZV9wY3RjcHU7CS8qIChqKSAl Y3B1IGR1cmluZyBwX3N3dGltZS4gKi8KKwl1X2NoYXIJCWtlX3JxaW5kZXg7CS8qIChqKSBSdW4g cXVldWUgaW5kZXguICovCisJZW51bSB7CisJCUtFU19USFJFQUQgPSAweDAsCS8qIHNsYXZlZCB0 byB0aHJlYWQgc3RhdGUgKi8KKwkJS0VTX09OUlVOUQorCX0ga2Vfc3RhdGU7CQkJLyogKGopIHRo cmVhZCBzY2hlZCBzcGVjaWZpYyBzdGF0dXMuICovCisJaW50CQlrZV9zbGljZTsJLyogVGltZSBz bGljZSBpbiB0aWNrcyAqLworCXN0cnVjdCBrc2VxCSprZV9rc2VxOwkvKiBLc2VxIHRoZSB0aHJl YWQgYmVsb25ncyB0byAqLworCXN0cnVjdCBrcnVucQkqa2VfcnVucTsJLyogQXNzaW9jaWF0ZWQg cnVucXVldWUgKi8KKyNpZmRlZiBTTVAKKwlpbnQJCWtlX2NwdTsJCS8qIENQVSB0aGF0IHdlIGhh dmUgYWZmaW5pdHkgZm9yLiAqLworCWludAkJa2Vfd2FrZXVwX2NwdTsJLyogQ1BVIHRoYXQgaGFz IGFjdGl2YXRlZCB1cy4gKi8KKyNlbmRpZgorCWludAkJa2VfYWN0aXZhdGVkOwkvKiBIb3cgaXMg dGhlIHRocmVhZCBhY3RpdmF0ZWQuICovCisJdWludDY0X3QJa2VfdGltZXN0YW1wOwkvKiBMYXN0 IHRpbWVzdGFtcCBkZXBlbmRlbnQgb24gc3RhdGUuKi8KKwl1bnNpZ25lZAlrZV9sYXN0cmFuOwkv KiBMYXN0IHRpbWVzdGFtcCB0aGUgdGhyZWFkIHJhbi4gKi8KKworCS8qIFRoZSBmb2xsb3dpbmcg dmFyaWFibGVzIGFyZSBvbmx5IHVzZWQgZm9yIHBjdGNwdSBjYWxjdWxhdGlvbiAqLworCWludAkJ a2VfbHRpY2s7CS8qIExhc3QgdGljayB0aGF0IHdlIHdlcmUgcnVubmluZyBvbiAqLworCWludAkJ a2VfZnRpY2s7CS8qIEZpcnN0IHRpY2sgdGhhdCB3ZSB3ZXJlIHJ1bm5pbmcgb24gKi8KKwlpbnQJ CWtlX3RpY2tzOwkvKiBUaWNrIGNvdW50ICovCit9OworCisjZGVmaW5lCXRkX2tzZQkJCXRkX3Nj aGVkCisjZGVmaW5lIGtlX3Byb2MJCQlrZV90aHJlYWQtPnRkX3Byb2MKKyNkZWZpbmUga2Vfa3Nl Z3JwCQlrZV90aHJlYWQtPnRkX2tzZWdycAorCisvKiBmbGFncyBrZXB0IGluIGtlX2ZsYWdzICov CisjZGVmaW5lCUtFRl9CT1VORAkweDAwMDEJCS8qIFRocmVhZCBjYW4gbm90IG1pZ3JhdGUuICov CisjZGVmaW5lCUtFRl9QUkVFTVBURUQJMHgwMDAyCQkvKiBUaHJlYWQgd2FzIHByZWVtcHRlZC4g Ki8KKyNkZWZpbmUgS0VGX01JR1JBVElORwkweDAwMDQJCS8qIFRocmVhZCBpcyBtaWdyYXRpbmcu ICovCisjZGVmaW5lCUtFRl9TTEVFUAkweDAwMDgJCS8qIFRocmVhZCBkaWQgc2xlZXAuICovCisj ZGVmaW5lCUtFRl9ESURSVU4JMHgwMDEwCQkvKiBUaHJlYWQgYWN0dWFsbHkgcmFuLiAqLworI2Rl ZmluZQlLRUZfRVhJVAkweDAwMjAJCS8qIFRocmVhZCBpcyBiZWluZyBraWxsZWQuICovCisjZGVm aW5lIEtFRl9ORVhUUlEJMHgwNDAwCQkvKiBUaHJlYWQgc2hvdWxkIGJlIGluIG5leHQgcXVldWUu ICovCisjZGVmaW5lIEtFRl9GSVJTVF9TTElDRQkweDA4MDAJCS8qIFRocmVhZCBoYXMgZmlyc3Qg dGltZSBzbGljZSBsZWZ0LiAqLworCitzdHJ1Y3Qga2dfc2NoZWQgeworCXN0cnVjdCB0aHJlYWQJ KnNrZ19sYXN0X2Fzc2lnbmVkOyAvKiAoaikgTGFzdCB0aHJlYWQgYXNzaWduZWQgdG8gKi8KKwkJ CQkJICAgIC8qIHRoZSBzeXN0ZW0gc2NoZWR1bGVyICovCisJdV9sb25nCXNrZ19zbHB0aW1lOwkJ LyogKGopIE51bWJlciBvZiB0aWNrcyB3ZSB2b2wuIHNsZXB0ICovCisJdV9sb25nCXNrZ19ydW50 aW1lOwkJLyogKGopIFRlbXAgdG90YWwgcnVuIHRpbWUuICovCisJaW50CXNrZ19hdmFpbF9vcGVu bmluZ3M7CS8qIChqKSBOdW0gdW5maWxsZWQgc2xvdHMgaW4gZ3JvdXAuKi8KKwlpbnQJc2tnX2Nv bmN1cnJlbmN5OwkvKiAoaikgTnVtIHRocmVhZHMgcmVxdWVzdGVkIGluIGdyb3VwLiovCit9Owor I2RlZmluZSBrZ19sYXN0X2Fzc2lnbmVkCWtnX3NjaGVkLT5za2dfbGFzdF9hc3NpZ25lZAorI2Rl ZmluZSBrZ19hdmFpbF9vcGVubmluZ3MJa2dfc2NoZWQtPnNrZ19hdmFpbF9vcGVubmluZ3MKKyNk ZWZpbmUga2dfY29uY3VycmVuY3kJCWtnX3NjaGVkLT5za2dfY29uY3VycmVuY3kKKyNkZWZpbmUg a2dfc2xwdGltZQkJa2dfc2NoZWQtPnNrZ19zbHB0aW1lCisjZGVmaW5lIGtnX3J1bnRpbWUJCWtn X3NjaGVkLT5za2dfcnVudGltZQorCisjZGVmaW5lIFNMT1RfUkVMRUFTRShrZykJKGtnKS0+a2df YXZhaWxfb3Blbm5pbmdzKysKKyNkZWZpbmUJU0xPVF9VU0Uoa2cpCQkoa2cpLT5rZ19hdmFpbF9v cGVubmluZ3MtLQorCisvKgorICogQ3B1IHBlcmNlbnRhZ2UgY29tcHV0YXRpb24gbWFjcm9zIGFu ZCBkZWZpbmVzLgorICoKKyAqIFNDSEVEX0NQVV9USU1FOglOdW1iZXIgb2Ygc2Vjb25kcyB0byBh dmVyYWdlIHRoZSBjcHUgdXNhZ2UgYWNyb3NzLgorICogU0NIRURfQ1BVX1RJQ0tTOglOdW1iZXIg b2YgaHogdGlja3MgdG8gYXZlcmFnZSB0aGUgY3B1IHVzYWdlIGFjcm9zcy4KKyAqLworCisjZGVm aW5lCVNDSEVEX0NQVV9USU1FCQkxMAorI2RlZmluZQlTQ0hFRF9DUFVfVElDS1MJCShoeiAqIFND SEVEX0NQVV9USU1FKQorCisvKgorICoga3NlcSAtIHBlciBwcm9jZXNzb3IgcnVucXMgYW5kIHN0 YXRpc3RpY3MuCisgKi8KK3N0cnVjdCBrc2VxIHsKKwlzdHJ1Y3Qga3J1bnEJKmtzcV9jdXJyOwkJ LyogQ3VycmVudCBxdWV1ZS4gKi8KKwlzdHJ1Y3Qga3J1bnEJKmtzcV9uZXh0OwkJLyogTmV4dCB0 aW1lc2hhcmUgcXVldWUuICovCisJc3RydWN0IGtydW5xCWtzcV90aW1lc2hhcmVbMl07CS8qIFJ1 biBxdWV1ZXMgZm9yICFJRExFLiAqLworCXN0cnVjdCBrcnVucQlrc3FfaWRsZTsJCS8qIFF1ZXVl IG9mIElETEUgdGhyZWFkcy4gKi8KKwlpbnQJCWtzcV9sb2FkOworCXVpbnQ2NF90CWtzcV9sYXN0 X3RpbWVzdGFtcDsJLyogUGVyLWNwdSBsYXN0IGNsb2NrIHRpY2sgKi8KKwl1bnNpZ25lZAlrc3Ff ZXhwaXJlZF90aWNrOwkvKiBGaXJzdCBleHBpcmVkIHRpY2sgKi8KKwlzaWduZWQgY2hhcglrc3Ff ZXhwaXJlZF9uaWNlOwkvKiBMb3dlc3QgbmljZSBpbiBuZXh0cSAqLworfTsKKworc3RhdGljIHN0 cnVjdCBrc2Uga3NlMDsKK3N0YXRpYyBzdHJ1Y3Qga2dfc2NoZWQga2dfc2NoZWQwOworCitzdGF0 aWMgaW50IG1pbl90aW1lc2xpY2UgPSA1Oworc3RhdGljIGludCBkZWZfdGltZXNsaWNlID0gMTAw Oworc3RhdGljIGludCBncmFudWxhcml0eSA9IDEwOworc3RhdGljIGludCByZWFsc3RhdGh6Owor c3RhdGljIGludCBzY2hlZF90ZGNudDsKK3N0YXRpYyBzdHJ1Y3Qga3NlcSBrc2VxX2dsb2JhbDsK KworLyoKKyAqIE9uZSBrc2UgcXVldWUgcGVyIHByb2Nlc3Nvci4KKyAqLworI2lmZGVmIFNNUAor c3RhdGljIHN0cnVjdCBrc2VxCWtzZXFfY3B1W01BWENQVV07CisKKyNkZWZpbmUJS1NFUV9TRUxG KCkJKCZrc2VxX2NwdVtQQ1BVX0dFVChjcHVpZCldKQorI2RlZmluZQlLU0VRX0NQVSh4KQkoJmtz ZXFfY3B1Wyh4KV0pCisjZGVmaW5lCUtTRVFfSUQoeCkJKCh4KSAtIGtzZXFfY3B1KQorCitzdGF0 aWMgY3B1bWFza190CWNwdV9zaWJsaW5nW01BWENQVV07CisKKyNlbHNlCS8qICFTTVAgKi8KKwor I2RlZmluZQlLU0VRX1NFTEYoKQkoJmtzZXFfZ2xvYmFsKQorI2RlZmluZQlLU0VRX0NQVSh4KQko JmtzZXFfZ2xvYmFsKQorI2VuZGlmCisKKy8qIGRlY2F5IDk1JSBvZiBgcF9wY3RjcHUnIGluIDYw IHNlY29uZHM7IHNlZSBDQ1BVX1NISUZUIGJlZm9yZSBjaGFuZ2luZyAqLworc3RhdGljIGZpeHB0 X3QgIGNjcHUgPSAwLjk1MTIyOTQyNDUwMDcxNDAwOTA5ICogRlNDQUxFOyAvKiBleHAoLTEvMjAp ICovCitTWVNDVExfSU5UKF9rZXJuLCBPSURfQVVUTywgY2NwdSwgQ1RMRkxBR19SRCwgJmNjcHUs IDAsICIiKTsKKworc3RhdGljIHZvaWQgc2NoZWRfc2V0dXAodm9pZCAqZHVtbXkpOworU1lTSU5J VChzY2hlZF9zZXR1cCwgU0lfU1VCX1JVTl9RVUVVRSwgU0lfT1JERVJfRklSU1QsIHNjaGVkX3Nl dHVwLCBOVUxMKTsKKworc3RhdGljIHZvaWQgc2NoZWRfaW5pdHRpY2tzKHZvaWQgKmR1bW15KTsK K1NZU0lOSVQoc2NoZWRfaW5pdHRpY2tzLCBTSV9TVUJfQ0xPQ0tTLCBTSV9PUkRFUl9USElSRCwg c2NoZWRfaW5pdHRpY2tzLCBOVUxMKQorCitzdGF0aWMgU1lTQ1RMX05PREUoX2tlcm4sIE9JRF9B VVRPLCBzY2hlZCwgQ1RMRkxBR19SVywgMCwgIlNjaGVkdWxlciIpOworCitTWVNDVExfU1RSSU5H KF9rZXJuX3NjaGVkLCBPSURfQVVUTywgbmFtZSwgQ1RMRkxBR19SRCwgIkNPUkUiLCAwLAorICAg ICJTY2hlZHVsZXIgbmFtZSIpOworCisjaWZkZWYgU01QCisvKiBFbmFibGUgZm9yd2FyZGluZyBv ZiB3YWtldXBzIHRvIGFsbCBvdGhlciBjcHVzICovCitTWVNDVExfTk9ERShfa2Vybl9zY2hlZCwg T0lEX0FVVE8sIGlwaXdha2V1cCwgQ1RMRkxBR19SRCwgTlVMTCwgIktlcm5lbCBTTVAiKTsKKwor c3RhdGljIGludCBydW5xX2Z1enogPSAwOworU1lTQ1RMX0lOVChfa2Vybl9zY2hlZCwgT0lEX0FV VE8sIHJ1bnFfZnV6eiwgQ1RMRkxBR19SVywgJnJ1bnFfZnV6eiwgMCwgIiIpOworCitzdGF0aWMg aW50IGZvcndhcmRfd2FrZXVwX2VuYWJsZWQgPSAxOworU1lTQ1RMX0lOVChfa2Vybl9zY2hlZF9p cGl3YWtldXAsIE9JRF9BVVRPLCBlbmFibGVkLCBDVExGTEFHX1JXLAorCSAgICZmb3J3YXJkX3dh a2V1cF9lbmFibGVkLCAwLAorCSAgICJGb3J3YXJkaW5nIG9mIHdha2V1cCB0byBpZGxlIENQVXMi KTsKKworc3RhdGljIGludCBmb3J3YXJkX3dha2V1cHNfcmVxdWVzdGVkID0gMDsKK1NZU0NUTF9J TlQoX2tlcm5fc2NoZWRfaXBpd2FrZXVwLCBPSURfQVVUTywgcmVxdWVzdGVkLCBDVExGTEFHX1JE LAorCSAgICZmb3J3YXJkX3dha2V1cHNfcmVxdWVzdGVkLCAwLAorCSAgICJSZXF1ZXN0cyBmb3Ig Rm9yd2FyZGluZyBvZiB3YWtldXAgdG8gaWRsZSBDUFVzIik7CisKK3N0YXRpYyBpbnQgZm9yd2Fy ZF93YWtldXBzX2RlbGl2ZXJlZCA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1 cCwgT0lEX0FVVE8sIGRlbGl2ZXJlZCwgQ1RMRkxBR19SRCwKKwkgICAmZm9yd2FyZF93YWtldXBz X2RlbGl2ZXJlZCwgMCwKKwkgICAiQ29tcGxldGVkIEZvcndhcmRpbmcgb2Ygd2FrZXVwIHRvIGlk bGUgQ1BVcyIpOworCitzdGF0aWMgaW50IGZvcndhcmRfd2FrZXVwX3VzZV9tYXNrID0gMTsKK1NZ U0NUTF9JTlQoX2tlcm5fc2NoZWRfaXBpd2FrZXVwLCBPSURfQVVUTywgdXNlbWFzaywgQ1RMRkxB R19SVywKKwkgICAmZm9yd2FyZF93YWtldXBfdXNlX21hc2ssIDAsCisJICAgIlVzZSB0aGUgbWFz ayBvZiBpZGxlIGNwdXMiKTsKKworc3RhdGljIGludCBmb3J3YXJkX3dha2V1cF91c2VfbG9vcCA9 IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwgT0lEX0FVVE8sIHVzZWxvb3As IENUTEZMQUdfUlcsCisJICAgJmZvcndhcmRfd2FrZXVwX3VzZV9sb29wLCAwLAorCSAgICJVc2Ug YSBsb29wIHRvIGZpbmQgaWRsZSBjcHVzIik7CisKK3N0YXRpYyBpbnQgZm9yd2FyZF93YWtldXBf dXNlX3NpbmdsZSA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwgT0lEX0FV VE8sIG9uZWNwdSwgQ1RMRkxBR19SVywKKwkgICAmZm9yd2FyZF93YWtldXBfdXNlX3NpbmdsZSwg MCwKKwkgICAiT25seSBzaWduYWwgb25lIGlkbGUgY3B1Iik7CisKK3N0YXRpYyBpbnQgZm9yd2Fy ZF93YWtldXBfdXNlX2h0dCA9IDA7CitTWVNDVExfSU5UKF9rZXJuX3NjaGVkX2lwaXdha2V1cCwg T0lEX0FVVE8sIGh0dDIsIENUTEZMQUdfUlcsCisJICAgJmZvcndhcmRfd2FrZXVwX3VzZV9odHQs IDAsCisJICAgImFjY291bnQgZm9yIGh0dCIpOworI2VuZGlmCisKK3N0YXRpYyB2b2lkIHNsb3Rf ZmlsbChzdHJ1Y3Qga3NlZ3JwICopOworCitzdGF0aWMgdm9pZCBrcnVucV9hZGQoc3RydWN0IGty dW5xICosIHN0cnVjdCBrc2UgKik7CitzdGF0aWMgc3RydWN0IGtzZSAqa3J1bnFfY2hvb3NlKHN0 cnVjdCBrcnVucSAqKTsKK3N0YXRpYyB2b2lkIGtydW5xX2NscmJpdChzdHJ1Y3Qga3J1bnEgKnJx LCBpbnQgcHJpKTsKK3N0YXRpYyBpbnQga3J1bnFfZmluZGJpdChzdHJ1Y3Qga3J1bnEgKnJxKTsK K3N0YXRpYyB2b2lkIGtydW5xX2luaXQoc3RydWN0IGtydW5xICopOworc3RhdGljIHZvaWQga3J1 bnFfcmVtb3ZlKHN0cnVjdCBrcnVucSAqLCBzdHJ1Y3Qga3NlICopOworCitzdGF0aWMgc3RydWN0 IGtzZSAqIGtzZXFfY2hvb3NlKHN0cnVjdCBrc2VxICopOworc3RhdGljIHZvaWQga3NlcV9sb2Fk X2FkZChzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9sb2Fk X3JlbShzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9ydW5x X2FkZChzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9ydW5x X3JlbShzdHJ1Y3Qga3NlcSAqLCBzdHJ1Y3Qga3NlICopOworc3RhdGljIHZvaWQga3NlcV9zZXR1 cChzdHJ1Y3Qga3NlcSAqKTsKKworc3RhdGljIGludCBzY2hlZF9pc190aW1lc2hhcmUoc3RydWN0 IGtzZWdycCAqa2cpOworc3RhdGljIHN0cnVjdCBrc2UgKnNjaGVkX2Nob29zZSh2b2lkKTsKK3N0 YXRpYyBpbnQgc2NoZWRfY2FsY19wcmkoc3RydWN0IGtzZWdycCAqa2cpOworc3RhdGljIGludCBz Y2hlZF9zdGFydmluZyhzdHJ1Y3Qga3NlcSAqLCB1bnNpZ25lZCwgc3RydWN0IGtzZSAqKTsKK3N0 YXRpYyB2b2lkIHNjaGVkX3BjdGNwdV91cGRhdGUoc3RydWN0IGtzZSAqKTsKK3N0YXRpYyB2b2lk IHNjaGVkX3RocmVhZF9wcmlvcml0eShzdHJ1Y3QgdGhyZWFkICosIHVfY2hhcik7CitzdGF0aWMg dWludDY0X3QJc2NoZWRfdGltZXN0YW1wKHZvaWQpOworc3RhdGljIGludCBzY2hlZF9yZWNhbGNf cHJpKHN0cnVjdCBrc2UgKmtlLCB1aW50NjRfdCBub3cpOworc3RhdGljIGludCBzY2hlZF90aW1l c2xpY2Uoc3RydWN0IGtzZSAqa2UpOworc3RhdGljIHZvaWQgc2NoZWRfdXBkYXRlX3J1bnRpbWUo c3RydWN0IGtzZSAqa2UsIHVpbnQ2NF90IG5vdyk7CitzdGF0aWMgdm9pZCBzY2hlZF9jb21taXRf cnVudGltZShzdHJ1Y3Qga3NlICprZSk7CisKKy8qCisgKiBJbml0aWFsaXplIGEgcnVuIHN0cnVj dHVyZS4KKyAqLworc3RhdGljIHZvaWQKK2tydW5xX2luaXQoc3RydWN0IGtydW5xICpycSkKK3sK KwlpbnQgaTsKKworCWJ6ZXJvKHJxLCBzaXplb2YgKnJxKTsKKwlmb3IgKGkgPSAwOyBpIDwgS1Ff TlFTOyBpKyspCisJCVRBSUxRX0lOSVQoJnJxLT5ycV9xdWV1ZXNbaV0pOworfQorCisvKgorICog Q2xlYXIgdGhlIHN0YXR1cyBiaXQgb2YgdGhlIHF1ZXVlIGNvcnJlc3BvbmRpbmcgdG8gcHJpb3Jp dHkgbGV2ZWwgcHJpLAorICogaW5kaWNhdGluZyB0aGF0IGl0IGlzIGVtcHR5LgorICovCitzdGF0 aWMgaW5saW5lIHZvaWQKK2tydW5xX2NscmJpdChzdHJ1Y3Qga3J1bnEgKnJxLCBpbnQgcHJpKQor eworCXN0cnVjdCBrcnFiaXRzICpycWI7CisKKwlycWIgPSAmcnEtPnJxX3N0YXR1czsKKwlycWIt PnJxYl9iaXRzW0tRQl9XT1JEKHByaSldICY9IH5LUUJfQklUKHByaSk7Cit9CisKKy8qCisgKiBG aW5kIHRoZSBpbmRleCBvZiB0aGUgZmlyc3Qgbm9uLWVtcHR5IHJ1biBxdWV1ZS4gIFRoaXMgaXMg ZG9uZSBieQorICogc2Nhbm5pbmcgdGhlIHN0YXR1cyBiaXRzLCBhIHNldCBiaXQgaW5kaWNhdGVz IGEgbm9uLWVtcHR5IHF1ZXVlLgorICovCitzdGF0aWMgaW50CitrcnVucV9maW5kYml0KHN0cnVj dCBrcnVucSAqcnEpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKwlpbnQgcHJpOworCWludCBp OworCisJcnFiID0gJnJxLT5ycV9zdGF0dXM7CisJZm9yIChpID0gMDsgaSA8IEtRQl9MRU47IGkr KykgeworCQlpZiAocnFiLT5ycWJfYml0c1tpXSkgeworCQkJcHJpID0gS1FCX0ZGUyhycWItPnJx Yl9iaXRzW2ldKSArIChpIDw8IEtRQl9MMkJQVyk7CisJCQlyZXR1cm4gKHByaSk7CisJCX0KKwl9 CisJcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBpbnQKK2tydW5xX2NoZWNrKHN0cnVjdCBrcnVu cSAqcnEpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKwlpbnQgaTsKKworCXJxYiA9ICZycS0+ cnFfc3RhdHVzOworCWZvciAoaSA9IDA7IGkgPCBLUUJfTEVOOyBpKyspIHsKKwkJaWYgKHJxYi0+ cnFiX2JpdHNbaV0pCisJCQlyZXR1cm4gKDEpOworCX0KKwlyZXR1cm4gKDApOworfQorCisvKgor ICogU2V0IHRoZSBzdGF0dXMgYml0IG9mIHRoZSBxdWV1ZSBjb3JyZXNwb25kaW5nIHRvIHByaW9y aXR5IGxldmVsIHByaSwKKyAqIGluZGljYXRpbmcgdGhhdCBpdCBpcyBub24tZW1wdHkuCisgKi8K K3N0YXRpYyBpbmxpbmUgdm9pZAora3J1bnFfc2V0Yml0KHN0cnVjdCBrcnVucSAqcnEsIGludCBw cmkpCit7CisJc3RydWN0IGtycWJpdHMgKnJxYjsKKworCXJxYiA9ICZycS0+cnFfc3RhdHVzOwor CXJxYi0+cnFiX2JpdHNbS1FCX1dPUkQocHJpKV0gfD0gS1FCX0JJVChwcmkpOworfQorCisvKgor ICogQWRkIHRoZSBLU0UgdG8gdGhlIHF1ZXVlIHNwZWNpZmllZCBieSBpdHMgcHJpb3JpdHksIGFu ZCBzZXQgdGhlCisgKiBjb3JyZXNwb25kaW5nIHN0YXR1cyBiaXQuCisgKi8KK3N0YXRpYyB2b2lk CitrcnVucV9hZGQoc3RydWN0IGtydW5xICpycSwgc3RydWN0IGtzZSAqa2UpCit7CisJc3RydWN0 IGtycWhlYWQgKnJxaDsKKwlpbnQgcHJpOworCisJcHJpID0ga2UtPmtlX3RocmVhZC0+dGRfcHJp b3JpdHk7CisJa2UtPmtlX3JxaW5kZXggPSBwcmk7CisJa3J1bnFfc2V0Yml0KHJxLCBwcmkpOwor CXJxaCA9ICZycS0+cnFfcXVldWVzW3ByaV07CisJaWYgKGtlLT5rZV9mbGFncyAmIEtFRl9QUkVF TVBURUQpCisJCVRBSUxRX0lOU0VSVF9IRUFEKHJxaCwga2UsIGtlX3Byb2NxKTsKKwllbHNlCisJ CVRBSUxRX0lOU0VSVF9UQUlMKHJxaCwga2UsIGtlX3Byb2NxKTsKK30KKworLyoKKyAqIEZpbmQg dGhlIGhpZ2hlc3QgcHJpb3JpdHkgcHJvY2VzcyBvbiB0aGUgcnVuIHF1ZXVlLgorICovCitzdGF0 aWMgc3RydWN0IGtzZSAqCitrcnVucV9jaG9vc2Uoc3RydWN0IGtydW5xICpycSkKK3sKKwlzdHJ1 Y3Qga3JxaGVhZCAqcnFoOworCXN0cnVjdCBrc2UgKmtlOworCWludCBwcmk7CisKKwltdHhfYXNz ZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJaWYgKChwcmkgPSBrcnVucV9maW5kYml0KHJx KSkgIT0gLTEpIHsKKwkJcnFoID0gJnJxLT5ycV9xdWV1ZXNbcHJpXTsKKwkJa2UgPSBUQUlMUV9G SVJTVChycWgpOworCQlLQVNTRVJUKGtlICE9IE5VTEwsICgia3J1bnFfY2hvb3NlOiBubyB0aHJl YWQgb24gYnVzeSBxdWV1ZSIpKTsKKyNpZmRlZiBTTVAKKwkJaWYgKHByaSA8PSBQUklfTUFYX0lU SEQgfHwgcnVucV9mdXp6IDw9IDApCisJCQlyZXR1cm4gKGtlKTsKKworCQkvKgorCQkgKiBJbiB0 aGUgZmlyc3QgY291cGxlIG9mIGVudHJpZXMsIGNoZWNrIGlmCisJCSAqIHRoZXJlIGlzIG9uZSBm b3Igb3VyIENQVSBhcyBhIHByZWZlcmVuY2UuCisJCSAqLworCQlzdHJ1Y3Qga3NlICprZTIgPSBr ZTsKKwkJY29uc3QgaW50IG15Y3B1ID0gUENQVV9HRVQoY3B1aWQpOworCQljb25zdCBpbnQgbXlt YXNrID0gMSA8PCBteWNwdTsKKwkJaW50IGNvdW50ID0gcnVucV9mdXp6OworCisJCXdoaWxlIChj b3VudC0tICYmIGtlMikgeworCQkJY29uc3QgaW50IGNwdSA9IGtlMi0+a2Vfd2FrZXVwX2NwdTsK KwkJCWlmIChjcHVfc2libGluZ1tjcHVdICYgbXltYXNrKSB7CisJCQkJa2UgPSBrZTI7CisJCQkJ YnJlYWs7CisJCQl9CisJCQlrZTIgPSBUQUlMUV9ORVhUKGtlMiwga2VfcHJvY3EpOworCQl9Cisj ZW5kaWYKKwkJcmV0dXJuIChrZSk7CisJfQorCisJcmV0dXJuIChOVUxMKTsKK30KKworLyoKKyAq IFJlbW92ZSB0aGUgS1NFIGZyb20gdGhlIHF1ZXVlIHNwZWNpZmllZCBieSBpdHMgcHJpb3JpdHks IGFuZCBjbGVhciB0aGUKKyAqIGNvcnJlc3BvbmRpbmcgc3RhdHVzIGJpdCBpZiB0aGUgcXVldWUg YmVjb21lcyBlbXB0eS4KKyAqIENhbGxlciBtdXN0IHNldCBrZS0+a2Vfc3RhdGUgYWZ0ZXJ3YXJk cy4KKyAqLworc3RhdGljIHZvaWQKK2tydW5xX3JlbW92ZShzdHJ1Y3Qga3J1bnEgKnJxLCBzdHJ1 Y3Qga3NlICprZSkKK3sKKwlzdHJ1Y3Qga3JxaGVhZCAqcnFoOworCWludCBwcmk7CisKKwlLQVNT RVJUKGtlLT5rZV9wcm9jLT5wX3NmbGFnICYgUFNfSU5NRU0sCisJCSgicnVucV9yZW1vdmU6IHBy b2Nlc3Mgc3dhcHBlZCBvdXQiKSk7CisJcHJpID0ga2UtPmtlX3JxaW5kZXg7CisJcnFoID0gJnJx LT5ycV9xdWV1ZXNbcHJpXTsKKwlLQVNTRVJUKGtlICE9IE5VTEwsICgia3J1bnFfcmVtb3ZlOiBu byBwcm9jIG9uIGJ1c3kgcXVldWUiKSk7CisJVEFJTFFfUkVNT1ZFKHJxaCwga2UsIGtlX3Byb2Nx KTsKKwlpZiAoVEFJTFFfRU1QVFkocnFoKSkKKwkJa3J1bnFfY2xyYml0KHJxLCBwcmkpOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQKK2tzZXFfcnVucV9hZGQoc3RydWN0IGtzZXEgKmtzZXEsIHN0 cnVjdCBrc2UgKmtlKQoreworCWtydW5xX2FkZChrZS0+a2VfcnVucSwga2UpOworCWtlLT5rZV9r c2VxID0ga3NlcTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitrc2VxX3J1bnFfcmVtKHN0cnVj dCBrc2VxICprc2VxLCBzdHJ1Y3Qga3NlICprZSkKK3sKKwlrcnVucV9yZW1vdmUoa2UtPmtlX3J1 bnEsIGtlKTsKKwlrZS0+a2Vfa3NlcSA9IE5VTEw7CisJa2UtPmtlX3J1bnEgPSBOVUxMOworfQor CitzdGF0aWMgaW5saW5lIHZvaWQKK2tzZXFfbG9hZF9hZGQoc3RydWN0IGtzZXEgKmtzZXEsIHN0 cnVjdCBrc2UgKmtlKQoreworCWtzZXEtPmtzcV9sb2FkKys7CisJaWYgKChrZS0+a2VfcHJvYy0+ cF9mbGFnICYgUF9OT0xPQUQpID09IDApCisJCXNjaGVkX3RkY250Kys7Cit9CisKK3N0YXRpYyBp bmxpbmUgdm9pZAora3NlcV9sb2FkX3JlbShzdHJ1Y3Qga3NlcSAqa3NlcSwgc3RydWN0IGtzZSAq a2UpCit7CisJa3NlcS0+a3NxX2xvYWQtLTsKKwlpZiAoKGtlLT5rZV9wcm9jLT5wX2ZsYWcgJiBQ X05PTE9BRCkgPT0gMCkKKwkJc2NoZWRfdGRjbnQtLTsKK30KKworLyoKKyAqIFBpY2sgdGhlIGhp Z2hlc3QgcHJpb3JpdHkgdGFzayB3ZSBoYXZlIGFuZCByZXR1cm4gaXQuCisgKi8KK3N0YXRpYyBz dHJ1Y3Qga3NlICoKK2tzZXFfY2hvb3NlKHN0cnVjdCBrc2VxICprc2VxKQoreworCXN0cnVjdCBr cnVucSAqc3dhcDsKKwlzdHJ1Y3Qga3NlICprZTsKKworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ss IE1BX09XTkVEKTsKKwlrZSA9IGtydW5xX2Nob29zZShrc2VxLT5rc3FfY3Vycik7CisJaWYgKGtl ICE9IE5VTEwpCisJCXJldHVybiAoa2UpOworCisJa3NlcS0+a3NxX2V4cGlyZWRfbmljZSA9IFBS SU9fTUFYICsgMTsKKwlrc2VxLT5rc3FfZXhwaXJlZF90aWNrID0gMDsKKwlzd2FwID0ga3NlcS0+ a3NxX2N1cnI7CisJa3NlcS0+a3NxX2N1cnIgPSBrc2VxLT5rc3FfbmV4dDsKKwlrc2VxLT5rc3Ff bmV4dCA9IHN3YXA7CisJa2UgPSBrcnVucV9jaG9vc2Uoa3NlcS0+a3NxX2N1cnIpOworCWlmIChr ZSAhPSBOVUxMKQorCQlyZXR1cm4gKGtlKTsKKworCXJldHVybiBrcnVucV9jaG9vc2UoJmtzZXEt PmtzcV9pZGxlKTsKK30KKworc3RhdGljIGlubGluZSB1aW50NjRfdAorc2NoZWRfdGltZXN0YW1w KHZvaWQpCit7CisJdWludDY0X3Qgbm93ID0gY3B1dGljazJ1c2VjKGNwdV90aWNrcygpKSAqIDEw MDA7CisJcmV0dXJuIChub3cpOworfQorCitzdGF0aWMgaW5saW5lIGludAorc2NoZWRfdGltZXNs aWNlKHN0cnVjdCBrc2UgKmtlKQoreworCXN0cnVjdCBwcm9jICpwID0ga2UtPmtlX3Byb2M7CisK KwlpZiAoa2UtPmtlX3Byb2MtPnBfbmljZSA8IDApCisJCXJldHVybiBTQ0FMRV9VU0VSX1BSSShk ZWZfdGltZXNsaWNlKjQsIFBST0NfVVNFUl9QUkkocCkpOworICAgICAgICBlbHNlCisJCXJldHVy biBTQ0FMRV9VU0VSX1BSSShkZWZfdGltZXNsaWNlLCBQUk9DX1VTRVJfUFJJKHApKTsKK30KKwor c3RhdGljIGlubGluZSBpbnQKK3NjaGVkX2lzX3RpbWVzaGFyZShzdHJ1Y3Qga3NlZ3JwICprZykK K3sKKwlyZXR1cm4gKGtnLT5rZ19wcmlfY2xhc3MgPT0gUFJJX1RJTUVTSEFSRSk7Cit9CisKK3N0 YXRpYyBpbnQKK3NjaGVkX2NhbGNfcHJpKHN0cnVjdCBrc2VncnAgKmtnKQoreworCWludCBzY29y ZSwgcHJpOworCisJaWYgKHNjaGVkX2lzX3RpbWVzaGFyZShrZykpIHsKKwkJc2NvcmUgPSBDVVJS RU5UX1NDT1JFKGtnKSAtIE1BWF9TQ09SRSAvIDI7CisJCXByaSA9IFBST0NfUFJJKGtnLT5rZ19w cm9jKSAtIHNjb3JlOworCQlpZiAocHJpIDwgUFVTRVIpCisJCQlwcmkgPSBQVVNFUjsKKwkJZWxz ZSBpZiAocHJpID4gUFVTRVJfTUFYKQorCQkJcHJpID0gUFVTRVJfTUFYOworCQlyZXR1cm4gKHBy aSk7CisJfQorCXJldHVybiAoa2ctPmtnX3VzZXJfcHJpKTsKK30KKworc3RhdGljIGludAorc2No ZWRfcmVjYWxjX3ByaShzdHJ1Y3Qga3NlICprZSwgdWludDY0X3Qgbm93KQoreworCXVpbnQ2NF90 CWRlbHRhOworCXVuc2lnbmVkIGludAlzbGVlcF90aW1lOworCXN0cnVjdCBrc2VncnAJKmtnOwor CisJa2cgPSBrZS0+a2Vfa3NlZ3JwOworCWRlbHRhID0gbm93IC0ga2UtPmtlX3RpbWVzdGFtcDsK KwlpZiAoX19wcmVkaWN0X2ZhbHNlKCFzY2hlZF9pc190aW1lc2hhcmUoa2cpKSkKKwkJcmV0dXJu IChrZy0+a2dfdXNlcl9wcmkpOworCisJaWYgKGRlbHRhID4gTlNfTUFYX1NMRUVQX1RJTUUpCisJ CXNsZWVwX3RpbWUgPSBOU19NQVhfU0xFRVBfVElNRTsKKwllbHNlCisJCXNsZWVwX3RpbWUgPSAo dW5zaWduZWQgaW50KWRlbHRhOworCWlmIChfX3ByZWRpY3RfZmFsc2Uoc2xlZXBfdGltZSA9PSAw KSkKKwkJZ290byBvdXQ7CisKKwlpZiAoa2UtPmtlX2FjdGl2YXRlZCAhPSAtMSAmJgorCSAgICBz bGVlcF90aW1lID4gSU5URVJBQ1RJVkVfU0xFRVBfVElNRShrZSkpIHsKKwkJa2ctPmtnX3NscHRp bWUgPSBIWl9UT19OUyhNQVhfU0xFRVBfVElNRSAtIGRlZl90aW1lc2xpY2UpOworCX0gZWxzZSB7 CisJCXNsZWVwX3RpbWUgKj0gKE1BWF9TQ09SRSAtIENVUlJFTlRfU0NPUkUoa2cpKSA/IDogMTsK KworCQkvKgorCQkgKiBJZiB0aHJlYWQgaXMgd2FraW5nIGZyb20gdW5pbnRlcnJ1cHRpYmxlIHNs ZWVwLCBpdCBpcworCQkgKiB1bmxpa2VseSBhbiBpbnRlcmFjdGl2ZSBzbGVlcCwgbGltaXQgaXRz IHNsZWVwIHRpbWUgdG8KKwkJICogcHJldmVudCBpdCBmcm9tIGJlaW5nIGFuIGludGVyYWN0aXZl IHRocmVhZC4KKwkJICovCisJCWlmIChrZS0+a2VfYWN0aXZhdGVkID09IC0xKSB7CisJCQlpZiAo a2ctPmtnX3NscHRpbWUgPj0gSU5URVJBQ1RJVkVfU0xFRVBfVElNRShrZSkpCisJCQkJc2xlZXBf dGltZSA9IDA7CisJCQllbHNlIGlmIChrZy0+a2dfc2xwdGltZSArIHNsZWVwX3RpbWUgPj0KKwkJ CQlJTlRFUkFDVElWRV9TTEVFUF9USU1FKGtlKSkgeworCQkJCWtnLT5rZ19zbHB0aW1lID0gSU5U RVJBQ1RJVkVfU0xFRVBfVElNRShrZSk7CisJCQkJc2xlZXBfdGltZSA9IDA7CisJCQl9CisJCX0K KworCQkvKgorCQkgKiBUaHJlYWQgZ2V0cyBwcmlvcml0eSBib29zdCBoZXJlLgorICAgICAgICAg ICAgICAgICAqLworCQlrZy0+a2dfc2xwdGltZSArPSBzbGVlcF90aW1lOworCisJCS8qIFNsZWVw IHRpbWUgc2hvdWxkIG5ldmVyIGJlIGxhcmdlciB0aGFuIG1heGltdW0gKi8KKwkJaWYgKGtnLT5r Z19zbHB0aW1lID4gTlNfTUFYX1NMRUVQX1RJTUUpCisJCQlrZy0+a2dfc2xwdGltZSA9IE5TX01B WF9TTEVFUF9USU1FOworCX0KKworb3V0OgorCXJldHVybiAoc2NoZWRfY2FsY19wcmkoa2cpKTsK K30KKworc3RhdGljIHZvaWQKK3NjaGVkX3VwZGF0ZV9ydW50aW1lKHN0cnVjdCBrc2UgKmtlLCB1 aW50NjRfdCBub3cpCit7CisJdWludDY0X3QgcnVudGltZTsKKwlzdHJ1Y3Qga3NlZ3JwICprZyA9 IGtlLT5rZV9rc2VncnA7CisKKwlpZiAoc2NoZWRfaXNfdGltZXNoYXJlKGtnKSkgeworCQlpZiAo KGludDY0X3QpKG5vdyAtIGtlLT5rZV90aW1lc3RhbXApIDwgTlNfTUFYX1NMRUVQX1RJTUUpIHsK KwkJCXJ1bnRpbWUgPSBub3cgLSBrZS0+a2VfdGltZXN0YW1wOworCQkJaWYgKChpbnQ2NF90KShu b3cgLSBrZS0+a2VfdGltZXN0YW1wKSA8IDApCisJCQkJcnVudGltZSA9IDA7CisJCX0gZWxzZSB7 CisJCQlydW50aW1lID0gTlNfTUFYX1NMRUVQX1RJTUU7CisJCX0KKwkJcnVudGltZSAvPSAoQ1VS UkVOVF9TQ09SRShrZykgPyA6IDEpOworCQlrZy0+a2dfcnVudGltZSArPSBydW50aW1lOworCQlr ZS0+a2VfdGltZXN0YW1wID0gbm93OworCX0KK30KKworc3RhdGljIHZvaWQKK3NjaGVkX2NvbW1p dF9ydW50aW1lKHN0cnVjdCBrc2UgKmtlKQoreworCXN0cnVjdCBrc2VncnAgKmtnID0ga2UtPmtl X2tzZWdycDsKKworCWlmIChrZy0+a2dfcnVudGltZSA+IGtnLT5rZ19zbHB0aW1lKQorCQlrZy0+ a2dfc2xwdGltZSA9IDA7CisJZWxzZQorCQlrZy0+a2dfc2xwdGltZSAtPSBrZy0+a2dfcnVudGlt ZTsKKwlrZy0+a2dfcnVudGltZSA9IDA7Cit9CisKK3N0YXRpYyB2b2lkCitrc2VxX3NldHVwKHN0 cnVjdCBrc2VxICprc2VxKQoreworCWtydW5xX2luaXQoJmtzZXEtPmtzcV90aW1lc2hhcmVbMF0p OworCWtydW5xX2luaXQoJmtzZXEtPmtzcV90aW1lc2hhcmVbMV0pOworCWtydW5xX2luaXQoJmtz ZXEtPmtzcV9pZGxlKTsKKwlrc2VxLT5rc3FfY3VyciA9ICZrc2VxLT5rc3FfdGltZXNoYXJlWzBd OworCWtzZXEtPmtzcV9uZXh0ID0gJmtzZXEtPmtzcV90aW1lc2hhcmVbMV07CisJa3NlcS0+a3Nx X2V4cGlyZWRfbmljZSA9IFBSSU9fTUFYICsgMTsKKwlrc2VxLT5rc3FfZXhwaXJlZF90aWNrID0g MDsKK30KKworc3RhdGljIHZvaWQKK3NjaGVkX3NldHVwKHZvaWQgKmR1bW15KQoreworI2lmZGVm IFNNUAorCWludCBpOworI2VuZGlmCisKKwkvKgorCSAqIFRvIGF2b2lkIGRpdmlkZS1ieS16ZXJv LCB3ZSBzZXQgcmVhbHN0YXRoeiBhIGR1bW15IHZhbHVlCisJICogaW4gY2FzZSB3aGljaCBzY2hl ZF9jbG9jaygpIGNhbGxlZCBiZWZvcmUgc2NoZWRfaW5pdHRpY2tzKCkuCisJICovCisJcmVhbHN0 YXRoegk9IGh6OworCW1pbl90aW1lc2xpY2UJPSBNQVgoNSAqIGh6IC8gMTAwMCwgMSk7CisJZGVm X3RpbWVzbGljZQk9IE1BWCgxMDAgKiBoeiAvIDEwMDAsIDEpOworCWdyYW51bGFyaXR5CT0gTUFY KDEwICogaHogLyAxMDAwLCAxKTsKKworCWtzZXFfc2V0dXAoJmtzZXFfZ2xvYmFsKTsKKyNpZmRl ZiBTTVAKKwlydW5xX2Z1enogPSBNSU4obXBfbmNwdXMgKiAyLCA4KTsKKwkvKgorCSAqIEluaXRp YWxpemUgdGhlIGtzZXFzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBNQVhDUFU7IGkrKykgewor CQlzdHJ1Y3Qga3NlcSAqa3NxOworCisJCWtzcSA9ICZrc2VxX2NwdVtpXTsKKwkJa3NlcV9zZXR1 cCgma3NlcV9jcHVbaV0pOworCQljcHVfc2libGluZ1tpXSA9IDEgPDwgaTsKKwl9CisJaWYgKHNt cF90b3BvbG9neSAhPSBOVUxMKSB7CisJCWludCBpLCBqOworCQljcHVtYXNrX3QgdmlzaXRlZDsK KwkJc3RydWN0IGNwdV9ncm91cCAqY2c7CisKKwkJdmlzaXRlZCA9IDA7CisJCWZvciAoaSA9IDA7 IGkgPCBzbXBfdG9wb2xvZ3ktPmN0X2NvdW50OyBpKyspIHsKKwkJCWNnID0gJnNtcF90b3BvbG9n eS0+Y3RfZ3JvdXBbaV07CisJCQlpZiAoY2ctPmNnX21hc2sgJiB2aXNpdGVkKQorCQkJCXBhbmlj KCJkdXBsaWNhdGVkIGNwdW1hc2sgaW4gY3RfZ3JvdXAuIik7CisJCQlpZiAoY2ctPmNnX21hc2sg PT0gMCkKKwkJCQljb250aW51ZTsKKwkJCXZpc2l0ZWQgfD0gY2ctPmNnX21hc2s7CisJCQlmb3Ig KGogPSAwOyBqIDwgTUFYQ1BVOyBqKyspIHsKKwkJCQlpZiAoKGNnLT5jZ19tYXNrICYgKDEgPDwg aikpICE9IDApCisJCQkJCWNwdV9zaWJsaW5nW2pdIHw9IGNnLT5jZ19tYXNrOworCQkJfQorCQl9 CisJfQorI2VuZGlmCisKKwltdHhfbG9ja19zcGluKCZzY2hlZF9sb2NrKTsKKwlrc2VxX2xvYWRf YWRkKEtTRVFfU0VMRigpLCAma3NlMCk7CisJbXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsK K30KKworLyogQVJHU1VTRUQgKi8KK3N0YXRpYyB2b2lkCitzY2hlZF9pbml0dGlja3Modm9pZCAq ZHVtbXkpCit7CisJbXR4X2xvY2tfc3Bpbigmc2NoZWRfbG9jayk7CisJcmVhbHN0YXRoeiA9IHN0 YXRoeiA/IHN0YXRoeiA6IGh6OworCW10eF91bmxvY2tfc3Bpbigmc2NoZWRfbG9jayk7Cit9CisK Ky8qCisgKiBWZXJ5IGVhcmx5IGluIHRoZSBib290IHNvbWUgc2V0dXAgb2Ygc2NoZWR1bGVyLXNw ZWNpZmljCisgKiBwYXJ0cyBvZiBwcm9jMCBhbmQgb2Ygc29lbSBzY2hlZHVsZXIgcmVzb3VyY2Vz IG5lZWRzIHRvIGJlIGRvbmUuCisgKiBDYWxsZWQgZnJvbToKKyAqICBwcm9jMF9pbml0KCkKKyAq Lwordm9pZAorc2NoZWRpbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXQgdXAgdGhlIHNjaGVkdWxl ciBzcGVjaWZpYyBwYXJ0cyBvZiBwcm9jMC4KKwkgKi8KKwlwcm9jMC5wX3NjaGVkID0gTlVMTDsg LyogWFhYICovCisJa3NlZ3JwMC5rZ19zY2hlZCA9ICZrZ19zY2hlZDA7CisJdGhyZWFkMC50ZF9z Y2hlZCA9ICZrc2UwOworCWtzZTAua2VfdGhyZWFkID0gJnRocmVhZDA7CisJa3NlMC5rZV9zdGF0 ZSA9IEtFU19USFJFQUQ7CisJa3NlMC5rZV9zbGljZSA9IDEwMDsKKwlrZ19zY2hlZDAuc2tnX2Nv bmN1cnJlbmN5ID0gMTsKKwlrZ19zY2hlZDAuc2tnX2F2YWlsX29wZW5uaW5ncyA9IDA7IC8qIHdl IGFyZSBhbHJlYWR5IHJ1bm5pbmcgKi8KK30KKworLyoKKyAqIFRoaXMgaXMgb25seSBzb21ld2hh dCBhY2N1cmF0ZSBzaW5jZSBnaXZlbiBtYW55IHByb2Nlc3NlcyBvZiB0aGUgc2FtZQorICogcHJp b3JpdHkgdGhleSB3aWxsIHN3aXRjaCB3aGVuIHRoZWlyIHNsaWNlcyBydW4gb3V0LCB3aGljaCB3 aWxsIGJlCisgKiBhdCBtb3N0IFNDSEVEX1NMSUNFX01BWC4KKyAqLworaW50CitzY2hlZF9ycl9p bnRlcnZhbCh2b2lkKQoreworCXJldHVybiAoZGVmX3RpbWVzbGljZSk7Cit9CisKK3N0YXRpYyB2 b2lkCitzY2hlZF9wY3RjcHVfdXBkYXRlKHN0cnVjdCBrc2UgKmtlKQoreworCS8qCisJICogQWRq dXN0IGNvdW50ZXJzIGFuZCB3YXRlcm1hcmsgZm9yIHBjdGNwdSBjYWxjLgorCSAqLworCWlmIChr ZS0+a2VfbHRpY2sgPiB0aWNrcyAtIFNDSEVEX0NQVV9USUNLUykgeworCQkvKgorCQkgKiBTaGlm dCB0aGUgdGljayBjb3VudCBvdXQgc28gdGhhdCB0aGUgZGl2aWRlIGRvZXNuJ3QKKwkJICogcm91 bmQgYXdheSBvdXIgcmVzdWx0cy4KKwkJICovCisJCWtlLT5rZV90aWNrcyA8PD0gMTA7CisJCWtl LT5rZV90aWNrcyA9IChrZS0+a2VfdGlja3MgLyAodGlja3MgLSBrZS0+a2VfZnRpY2spKSAqCisJ CSAgICBTQ0hFRF9DUFVfVElDS1M7CisJCWtlLT5rZV90aWNrcyA+Pj0gMTA7CisJfSBlbHNlCisJ CWtlLT5rZV90aWNrcyA9IDA7CisJa2UtPmtlX2x0aWNrID0gdGlja3M7CisJa2UtPmtlX2Z0aWNr ID0ga2UtPmtlX2x0aWNrIC0gU0NIRURfQ1BVX1RJQ0tTOworfQorCitzdGF0aWMgdm9pZAorc2No ZWRfdGhyZWFkX3ByaW9yaXR5KHN0cnVjdCB0aHJlYWQgKnRkLCB1X2NoYXIgcHJpbykKK3sKKwlz dHJ1Y3Qga3NlICprZTsKKworCWtlID0gdGQtPnRkX2tzZTsKKwltdHhfYXNzZXJ0KCZzY2hlZF9s b2NrLCBNQV9PV05FRCk7CisJaWYgKF9fcHJlZGljdF9mYWxzZSh0ZC0+dGRfcHJpb3JpdHkgPT0g cHJpbykpCisJCXJldHVybjsKKworCWlmIChURF9PTl9SVU5RKHRkKSkgeworCQkvKgorCQkgKiBJ ZiB0aGUgcHJpb3JpdHkgaGFzIGJlZW4gZWxldmF0ZWQgZHVlIHRvIHByaW9yaXR5CisJCSAqIHBy b3BhZ2F0aW9uLCB3ZSBtYXkgaGF2ZSB0byBtb3ZlIG91cnNlbHZlcyB0byBhIG5ldworCQkgKiBx dWV1ZS4gIFdlIHN0aWxsIGNhbGwgYWRqdXN0cnVucXVldWUgYmVsb3cgaW4gY2FzZSBrc2UKKwkJ ICogbmVlZHMgdG8gZml4IHRoaW5ncyB1cC4KKwkJICovCisJCWlmIChwcmlvIDwgdGQtPnRkX3By aW9yaXR5ICYmIGtlLT5rZV9ydW5xICE9IE5VTEwgJiYKKwkJICAgIGtlLT5rZV9ydW5xICE9IGtl LT5rZV9rc2VxLT5rc3FfY3VycikgeworCQkJa3J1bnFfcmVtb3ZlKGtlLT5rZV9ydW5xLCBrZSk7 CisJCQlrZS0+a2VfcnVucSA9IGtlLT5rZV9rc2VxLT5rc3FfY3VycjsKKwkJCWtydW5xX2FkZChr ZS0+a2VfcnVucSwga2UpOworCQl9CisJCWFkanVzdHJ1bnF1ZXVlKHRkLCBwcmlvKTsKKwl9IGVs c2UKKwkJdGQtPnRkX3ByaW9yaXR5ID0gcHJpbzsKK30KKworLyoKKyAqIFVwZGF0ZSBhIHRocmVh ZCdzIHByaW9yaXR5IHdoZW4gaXQgaXMgbGVudCBhbm90aGVyIHRocmVhZCdzCisgKiBwcmlvcml0 eS4KKyAqLwordm9pZAorc2NoZWRfbGVuZF9wcmlvKHN0cnVjdCB0aHJlYWQgKnRkLCB1X2NoYXIg cHJpbykKK3sKKworCXRkLT50ZF9mbGFncyB8PSBUREZfQk9SUk9XSU5HOworCXNjaGVkX3RocmVh ZF9wcmlvcml0eSh0ZCwgcHJpbyk7Cit9CisKKy8qCisgKiBSZXN0b3JlIGEgdGhyZWFkJ3MgcHJp b3JpdHkgd2hlbiBwcmlvcml0eSBwcm9wYWdhdGlvbiBpcworICogb3Zlci4gIFRoZSBwcmlvIGFy Z3VtZW50IGlzIHRoZSBtaW5pbXVtIHByaW9yaXR5IHRoZSB0aHJlYWQKKyAqIG5lZWRzIHRvIGhh dmUgdG8gc2F0aXNmeSBvdGhlciBwb3NzaWJsZSBwcmlvcml0eSBsZW5kaW5nCisgKiByZXF1ZXN0 cy4gIElmIHRoZSB0aHJlYWQncyByZWd1bGFyIHByaW9yaXR5IGlzIGxlc3MKKyAqIGltcG9ydGFu dCB0aGFuIHByaW8sIHRoZSB0aHJlYWQgd2lsbCBrZWVwIGEgcHJpb3JpdHkgYm9vc3QKKyAqIG9m IHByaW8uCisgKi8KK3ZvaWQKK3NjaGVkX3VubGVuZF9wcmlvKHN0cnVjdCB0aHJlYWQgKnRkLCB1 X2NoYXIgcHJpbykKK3sKKwl1X2NoYXIgYmFzZV9wcmk7CisKKwlpZiAodGQtPnRkX2Jhc2VfcHJp ID49IFBSSV9NSU5fVElNRVNIQVJFICYmCisJICAgIHRkLT50ZF9iYXNlX3ByaSA8PSBQUklfTUFY X1RJTUVTSEFSRSkKKwkJYmFzZV9wcmkgPSB0ZC0+dGRfa3NlZ3JwLT5rZ191c2VyX3ByaTsKKwll bHNlCisJCWJhc2VfcHJpID0gdGQtPnRkX2Jhc2VfcHJpOworCWlmIChwcmlvID49IGJhc2VfcHJp KSB7CisJCXRkLT50ZF9mbGFncyAmPSB+VERGX0JPUlJPV0lORzsKKwkJc2NoZWRfdGhyZWFkX3By aW9yaXR5KHRkLCBiYXNlX3ByaSk7CisJfSBlbHNlCisJCXNjaGVkX2xlbmRfcHJpbyh0ZCwgcHJp byk7Cit9CisKK3ZvaWQKK3NjaGVkX3ByaW8oc3RydWN0IHRocmVhZCAqdGQsIHVfY2hhciBwcmlv KQoreworCXVfY2hhciBvbGRwcmlvOworCisJaWYgKHRkLT50ZF9rc2VncnAtPmtnX3ByaV9jbGFz cyA9PSBQUklfVElNRVNIQVJFKQorCQlwcmlvID0gTUlOKHByaW8sIFBVU0VSX01BWCk7CisKKwkv KiBGaXJzdCwgdXBkYXRlIHRoZSBiYXNlIHByaW9yaXR5LiAqLworCXRkLT50ZF9iYXNlX3ByaSA9 IHByaW87CisKKwkvKgorCSAqIElmIHRoZSB0aHJlYWQgaXMgYm9ycm93aW5nIGFub3RoZXIgdGhy ZWFkJ3MgcHJpb3JpdHksIGRvbid0CisJICogZXZlciBsb3dlciB0aGUgcHJpb3JpdHkuCisJICov CisJaWYgKHRkLT50ZF9mbGFncyAmIFRERl9CT1JST1dJTkcgJiYgdGQtPnRkX3ByaW9yaXR5IDwg cHJpbykKKwkJcmV0dXJuOworCisJLyogQ2hhbmdlIHRoZSByZWFsIHByaW9yaXR5LiAqLworCW9s ZHByaW8gPSB0ZC0+dGRfcHJpb3JpdHk7CisJc2NoZWRfdGhyZWFkX3ByaW9yaXR5KHRkLCBwcmlv KTsKKworCS8qCisJICogSWYgdGhlIHRocmVhZCBpcyBvbiBhIHR1cm5zdGlsZSwgdGhlbiBsZXQg dGhlIHR1cm5zdGlsZSB1cGRhdGUKKwkgKiBpdHMgc3RhdGUuCisJICovCisJaWYgKFREX09OX0xP Q0sodGQpICYmIG9sZHByaW8gIT0gcHJpbykKKwkJdHVybnN0aWxlX2FkanVzdCh0ZCwgb2xkcHJp byk7Cit9CisKK3ZvaWQKK3NjaGVkX3N3aXRjaChzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IHRo cmVhZCAqbmV3dGQsIGludCBmbGFncykKK3sKKwlzdHJ1Y3Qga3NlcSAqa3NxOworCXN0cnVjdCBr c2UgKmtlOworCXN0cnVjdCBrc2VncnAgKmtnOworCXVpbnQ2NF90IG5vdzsKKworCW10eF9hc3Nl cnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCW5vdyA9IHNjaGVkX3RpbWVzdGFtcCgpOwor CWtlID0gdGQtPnRkX2tzZTsKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJa3NxID0gS1NFUV9TRUxG KCk7CisKKwl0ZC0+dGRfbGFzdGNwdSA9IHRkLT50ZF9vbmNwdTsKKwl0ZC0+dGRfb25jcHUgPSBO T0NQVTsKKwl0ZC0+dGRfZmxhZ3MgJj0gflRERl9ORUVEUkVTQ0hFRDsKKwl0ZC0+dGRfb3dlcHJl ZW1wdCA9IDA7CisKKwlpZiAodGQgPT0gUENQVV9HRVQoaWRsZXRocmVhZCkpIHsKKwkJVERfU0VU X0NBTl9SVU4odGQpOworCX0gZWxzZSB7CisJCXNjaGVkX3VwZGF0ZV9ydW50aW1lKGtlLCBub3cp OworCQkvKiBXZSBhcmUgZW5kaW5nIG91ciBydW4gc28gbWFrZSBvdXIgc2xvdCBhdmFpbGFibGUg YWdhaW4gKi8KKwkJU0xPVF9SRUxFQVNFKHRkLT50ZF9rc2VncnApOworCQlrc2VxX2xvYWRfcmVt KGtzcSwga2UpOworCQlpZiAoVERfSVNfUlVOTklORyh0ZCkpIHsKKwkJCXNldHJ1bnF1ZXVlKHRk LCAoZmxhZ3MgJiBTV19QUkVFTVBUKSA/CisJCQkgICAgU1JRX09VUlNFTEZ8U1JRX1lJRUxESU5H fFNSUV9QUkVFTVBURUQgOgorCQkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVMRElORyk7CisJCX0g ZWxzZSB7CisJCQlpZiAoKHRkLT50ZF9wcm9jLT5wX2ZsYWcgJiBQX0hBRFRIUkVBRFMpICYmCisJ CQkgICAgKG5ld3RkID09IE5VTEwgfHwKKwkJCSAgICAgbmV3dGQtPnRkX2tzZWdycCAhPSB0ZC0+ dGRfa3NlZ3JwKSkgeworCQkJCS8qCisJCQkJICogV2Ugd2lsbCBub3QgYmUgb24gdGhlIHJ1biBx dWV1ZS4KKwkJCQkgKiBTbyB3ZSBtdXN0IGJlIHNsZWVwaW5nIG9yIHNpbWlsYXIuCisJCQkJICog RG9uJ3QgdXNlIHRoZSBzbG90IGlmIHdlIHdpbGwgbmVlZCBpdCAKKwkJCQkgKiBmb3IgbmV3dGQu CisJCQkJICovCisJCQkJc2xvdF9maWxsKHRkLT50ZF9rc2VncnApOworCQkJfQorCQkJa2UtPmtl X2ZsYWdzICY9IH5LRUZfTkVYVFJROworCQl9CisJfQorCisJaWYgKG5ld3RkICE9IE5VTEwpIHsK KwkJLyoKKwkJICogSWYgd2UgYnJpbmcgaW4gYSB0aHJlYWQgYWNjb3VudCBmb3IgaXQgYXMgaWYg aXQgaGFkIGJlZW4KKwkJICogYWRkZWQgdG8gdGhlIHJ1biBxdWV1ZSBhbmQgdGhlbiBjaG9zZW4u CisJCSAqLworCQlTTE9UX1VTRShuZXd0ZC0+dGRfa3NlZ3JwKTsKKwkJbmV3dGQtPnRkX2tzZS0+ a2VfZmxhZ3MgfD0gS0VGX0RJRFJVTjsKKwkJbmV3dGQtPnRkX2tzZS0+a2VfdGltZXN0YW1wID0g bm93OworCQlURF9TRVRfUlVOTklORyhuZXd0ZCk7CisJCWtzZXFfbG9hZF9hZGQoa3NxLCBuZXd0 ZC0+dGRfa3NlKTsKKwl9IGVsc2UgeworCQluZXd0ZCA9IGNob29zZXRocmVhZCgpOworCQkvKiBz Y2hlZF9jaG9vc2Ugc2V0cyBrZV90aW1lc3RhbXAsIGp1c3QgcmV1c2UgaXQgKi8KKwl9CisJaWYg KHRkICE9IG5ld3RkKSB7CisJCWtlLT5rZV9sYXN0cmFuID0gdGljazsKKworI2lmZGVmCUhXUE1D X0hPT0tTCisJCWlmIChQTUNfUFJPQ19JU19VU0lOR19QTUNTKHRkLT50ZF9wcm9jKSkKKwkJCVBN Q19TV0lUQ0hfQ09OVEVYVCh0ZCwgUE1DX0ZOX0NTV19PVVQpOworI2VuZGlmCisJCWNwdV9zd2l0 Y2godGQsIG5ld3RkKTsKKyNpZmRlZglIV1BNQ19IT09LUworCQlpZiAoUE1DX1BST0NfSVNfVVNJ TkdfUE1DUyh0ZC0+dGRfcHJvYykpCisJCQlQTUNfU1dJVENIX0NPTlRFWFQodGQsIFBNQ19GTl9D U1dfSU4pOworI2VuZGlmCisJfQorCisJc2NoZWRfbG9jay5tdHhfbG9jayA9ICh1aW50cHRyX3Qp dGQ7CisKKwl0ZC0+dGRfb25jcHUgPSBQQ1BVX0dFVChjcHVpZCk7Cit9CisKK3ZvaWQKK3NjaGVk X25pY2Uoc3RydWN0IHByb2MgKnAsIGludCBuaWNlKQoreworCXN0cnVjdCBrc2VncnAgKmtnOwor CXN0cnVjdCB0aHJlYWQgKnRkOworCisJUFJPQ19MT0NLX0FTU0VSVChwLCBNQV9PV05FRCk7CisJ bXR4X2Fzc2VydCgmc2NoZWRfbG9jaywgTUFfT1dORUQpOworCXAtPnBfbmljZSA9IG5pY2U7CisJ Rk9SRUFDSF9LU0VHUlBfSU5fUFJPQyhwLCBrZykgeworCQlpZiAoa2ctPmtnX3ByaV9jbGFzcyA9 PSBQUklfVElNRVNIQVJFKSB7CisJCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9jYWxjX3ByaShr Zyk7CisJCQlGT1JFQUNIX1RIUkVBRF9JTl9HUk9VUChrZywgdGQpCisJCQkJdGQtPnRkX2ZsYWdz IHw9IFRERl9ORUVEUkVTQ0hFRDsKKwkJfQorCX0KK30KKwordm9pZAorc2NoZWRfc2xlZXAoc3Ry dWN0IHRocmVhZCAqdGQpCit7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhfYXNzZXJ0KCZzY2hl ZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCWlmICh0ZC0+dGRfZmxhZ3Mg JiBUREZfU0lOVFIpCisJCWtlLT5rZV9hY3RpdmF0ZWQgPSAwOworCWVsc2UKKwkJa2UtPmtlX2Fj dGl2YXRlZCA9IC0xOworCWtlLT5rZV9mbGFncyB8PSBLRUZfU0xFRVA7Cit9CisKK3ZvaWQKK3Nj aGVkX3dha2V1cChzdHJ1Y3QgdGhyZWFkICp0ZCkKK3sKKwlzdHJ1Y3Qga3NlICprZTsKKwlzdHJ1 Y3Qga3NlZ3JwICprZzsKKwlzdHJ1Y3Qga3NlcSAqa3NlcSwgKm15a3NlcTsKKwl1aW50NjRfdCBu b3c7CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRf a3NlOworCWtnID0gdGQtPnRkX2tzZWdycDsKKwlteWtzZXEgPSBLU0VRX1NFTEYoKTsKKwlpZiAo a2UtPmtlX2ZsYWdzICYgS0VGX1NMRUVQKSB7CisJCWtlLT5rZV9mbGFncyAmPSB+S0VGX1NMRUVQ OworCQlpZiAoc2NoZWRfaXNfdGltZXNoYXJlKGtnKSkgeworCQkJc2NoZWRfY29tbWl0X3J1bnRp bWUoa2UpOworCQkJbm93ID0gc2NoZWRfdGltZXN0YW1wKCk7CisJCQlrc2VxID0gS1NFUV9DUFUo dGQtPnRkX2xhc3RjcHUpOworI2lmZGVmIFNNUAorCQkJaWYgKGtzZXEgIT0gbXlrc2VxKQorCQkJ CW5vdyA9IG5vdyAtIG15a3NlcS0+a3NxX2xhc3RfdGltZXN0YW1wICsKKwkJCQkgICAga3NlcS0+ a3NxX2xhc3RfdGltZXN0YW1wOworI2VuZGlmCisJCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9y ZWNhbGNfcHJpKGtlLCBub3cpOworCQl9CisJfQorCXNldHJ1bnF1ZXVlKHRkLCBTUlFfQk9SSU5H KTsKK30KKworLyoKKyAqIFBlbmFsaXplIHRoZSBwYXJlbnQgZm9yIGNyZWF0aW5nIGEgbmV3IGNo aWxkIGFuZCBpbml0aWFsaXplIHRoZSBjaGlsZCdzCisgKiBwcmlvcml0eS4KKyAqLwordm9pZAor c2NoZWRfZm9yayhzdHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IHRocmVhZCAqY2hpbGR0ZCkKK3sK KworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKwlzY2hlZF9mb3JrX2tzZWdy cCh0ZCwgY2hpbGR0ZC0+dGRfa3NlZ3JwKTsKKwlzY2hlZF9mb3JrX3RocmVhZCh0ZCwgY2hpbGR0 ZCk7Cit9CisKK3ZvaWQKK3NjaGVkX2Zvcmtfa3NlZ3JwKHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1 Y3Qga3NlZ3JwICpjaGlsZCkKK3sKKwlzdHJ1Y3Qga3NlZ3JwICprZyA9IHRkLT50ZF9rc2VncnA7 CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJY2hpbGQtPmtnX3NscHRp bWUgPSBrZy0+a2dfc2xwdGltZSAqIENISUxEX1dFSUdIVCAvIDEwMDsKKwlpZiAoY2hpbGQtPmtn X3ByaV9jbGFzcyA9PSBQUklfVElNRVNIQVJFKQorCQljaGlsZC0+a2dfdXNlcl9wcmkgPSBzY2hl ZF9jYWxjX3ByaShjaGlsZCk7CisJa2ctPmtnX3NscHRpbWUgPSBrZy0+a2dfc2xwdGltZSAqIFBB UkVOVF9XRUlHSFQgLyAxMDA7Cit9CisKK3ZvaWQKK3NjaGVkX2ZvcmtfdGhyZWFkKHN0cnVjdCB0 aHJlYWQgKnRkLCBzdHJ1Y3QgdGhyZWFkICpjaGlsZCkKK3sKKwlzdHJ1Y3Qga3NlICprZTsKKwlz dHJ1Y3Qga3NlICprZTI7CisKKwlzY2hlZF9uZXd0aHJlYWQoY2hpbGQpOworCisJa2UgPSB0ZC0+ dGRfa3NlOworCWtlMiA9IGNoaWxkLT50ZF9rc2U7CisJa2UyLT5rZV9zbGljZSA9IChrZS0+a2Vf c2xpY2UgKyAxKSA+PiAxOworCWtlMi0+a2VfZmxhZ3MgfD0gS0VGX0ZJUlNUX1NMSUNFIHwgKGtl LT5rZV9mbGFncyAmIEtFRl9ORVhUUlEpOworCWtlMi0+a2VfYWN0aXZhdGVkID0gMDsKKwlrZS0+ a2Vfc2xpY2UgPj49IDE7CisgICAgICAgIGlmIChrZS0+a2Vfc2xpY2UgPT0gMCkgeworCQlrZS0+ a2Vfc2xpY2UgPSAxOworCQlzY2hlZF90aWNrKCk7CisJfQorCisJLyogR3JhYiBvdXIgcGFyZW50 cyBjcHUgZXN0aW1hdGlvbiBpbmZvcm1hdGlvbi4gKi8KKwlrZTItPmtlX3RpY2tzID0ga2UtPmtl X3RpY2tzOworCWtlMi0+a2VfbHRpY2sgPSBrZS0+a2VfbHRpY2s7CisJa2UyLT5rZV9mdGljayA9 IGtlLT5rZV9mdGljazsKK30KKwordm9pZAorc2NoZWRfY2xhc3Moc3RydWN0IGtzZWdycCAqa2cs IGludCBjbGFzcykKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2ct PmtnX3ByaV9jbGFzcyA9IGNsYXNzOworfQorCisvKgorICogUmV0dXJuIHNvbWUgb2YgdGhlIGNo aWxkJ3MgcHJpb3JpdHkgYW5kIGludGVyYWN0aXZpdHkgdG8gdGhlIHBhcmVudC4KKyAqLwordm9p ZAorc2NoZWRfZXhpdChzdHJ1Y3QgcHJvYyAqcCwgc3RydWN0IHRocmVhZCAqY2hpbGR0ZCkKK3sK KwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJc2NoZWRfZXhpdF90aHJlYWQo RklSU1RfVEhSRUFEX0lOX1BST0MocCksIGNoaWxkdGQpOworCXNjaGVkX2V4aXRfa3NlZ3JwKEZJ UlNUX0tTRUdSUF9JTl9QUk9DKHApLCBjaGlsZHRkKTsKK30KKwordm9pZAorc2NoZWRfZXhpdF9r c2VncnAoc3RydWN0IGtzZWdycCAqcGFyZW50a2csIHN0cnVjdCB0aHJlYWQgKnRkKQoreworCWlm ICh0ZC0+dGRfa3NlZ3JwLT5rZ19zbHB0aW1lIDwgcGFyZW50a2ctPmtnX3NscHRpbWUpIHsKKwkJ cGFyZW50a2ctPmtnX3NscHRpbWUgPSBwYXJlbnRrZy0+a2dfc2xwdGltZSAvCisJCQkoRVhJVF9X RUlHSFQpICogKEVYSVRfV0VJR0hUIC0gMSkgKworCQkJdGQtPnRkX2tzZWdycC0+a2dfc2xwdGlt ZSAvIEVYSVRfV0VJR0hUOworCX0KK30KKwordm9pZAorc2NoZWRfZXhpdF90aHJlYWQoc3RydWN0 IHRocmVhZCAqdGQsIHN0cnVjdCB0aHJlYWQgKmNoaWxkdGQpCit7CisJc3RydWN0IGtzZSAqY2hp bGRrZSAgPSBjaGlsZHRkLT50ZF9rc2U7CisJc3RydWN0IGtzZSAqcGFyZW50a2UgPSB0ZC0+dGRf a3NlOworCisJa3NlcV9sb2FkX3JlbShLU0VRX1NFTEYoKSwgY2hpbGRrZSk7CisJc2NoZWRfdXBk YXRlX3J1bnRpbWUoY2hpbGRrZSwgc2NoZWRfdGltZXN0YW1wKCkpOworCXNjaGVkX2NvbW1pdF9y dW50aW1lKGNoaWxka2UpOworCWlmICgoY2hpbGRrZS0+a2VfZmxhZ3MgJiBLRUZfRklSU1RfU0xJ Q0UpICYmCisJICAgIHRkLT50ZF9wcm9jID09IGNoaWxkdGQtPnRkX3Byb2MtPnBfcHB0cikgewor CQlwYXJlbnRrZS0+a2Vfc2xpY2UgKz0gY2hpbGRrZS0+a2Vfc2xpY2U7CisJCWlmIChwYXJlbnRr ZS0+a2Vfc2xpY2UgPiBzY2hlZF90aW1lc2xpY2UocGFyZW50a2UpKQorCQkJcGFyZW50a2UtPmtl X3NsaWNlID0gc2NoZWRfdGltZXNsaWNlKHBhcmVudGtlKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQK K3NjaGVkX3N0YXJ2aW5nKHN0cnVjdCBrc2VxICprc3EsIHVuc2lnbmVkIG5vdywgc3RydWN0IGtz ZSAqa2UpCit7CisJdWludDY0X3QgZGVsdGE7CisKKwlpZiAoa2UtPmtlX3Byb2MtPnBfbmljZSA+ IGtzcS0+a3NxX2V4cGlyZWRfbmljZSkKKwkJcmV0dXJuICgxKTsKKwlpZiAoa3NxLT5rc3FfZXhw aXJlZF90aWNrID09IDApCisJCXJldHVybiAoMCk7CisJZGVsdGEgPSBIWl9UT19OUygodWludDY0 X3Qpbm93IC0ga3NxLT5rc3FfZXhwaXJlZF90aWNrKTsKKwlpZiAoZGVsdGEgPiBTVEFSVkFUSU9O X1RJTUUgKiBrc3EtPmtzcV9sb2FkKQorCQlyZXR1cm4gKDEpOworCXJldHVybiAoMCk7Cit9CisK Ky8qCisgKiBBbiBpbnRlcmFjdGl2ZSB0aHJlYWQgaGFzIHNtYWxsZXIgdGltZSBzbGljZSBncmFu dWxhcml0eSwKKyAqIGEgY3B1IGhvZyBjYW4gaGF2ZSBsYXJnZXIgZ3JhbnVsYXJpdHkuCisgKi8K K3N0YXRpYyBpbmxpbmUgaW50CitzY2hlZF90aW1lc2xpY2Vfc3BsaXQoc3RydWN0IGtzZSAqa2Up Cit7CisJaW50IHNjb3JlLCBnOworCisJc2NvcmUgPSAoaW50KShNQVhfU0NPUkUgLSBDVVJSRU5U X1NDT1JFKGtlLT5rZV9rc2VncnApKTsKKwlpZiAoc2NvcmUgPT0gMCkKKwkJc2NvcmUgPSAxOwor I2lmZGVmIFNNUAorCWcgPSBncmFudWxhcml0eSAqICgoMSA8PCBzY29yZSkgLSAxKSAqIHNtcF9j cHVzOworI2Vsc2UKKwlnID0gZ3JhbnVsYXJpdHkgKiAoKDEgPDwgc2NvcmUpIC0gMSk7CisjZW5k aWYKKwlyZXR1cm4gKGtlLT5rZV9zbGljZSA+PSBnICYmIGtlLT5rZV9zbGljZSAlIGcgPT0gMCk7 Cit9CisKK3ZvaWQKK3NjaGVkX3RpY2sodm9pZCkKK3sKKwlzdHJ1Y3QgdGhyZWFkCSp0ZDsKKwlz dHJ1Y3QgcHJvYwkqcDsKKwlzdHJ1Y3Qga3NlCSprZTsKKwlzdHJ1Y3Qga3NlZ3JwCSprZzsKKwlz dHJ1Y3Qga3NlcQkqa3NlcTsKKwl1aW50NjRfdAlub3c7CisJaW50CQljcHVpZDsKKwlpbnQJCWNs YXNzOworCQorCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCXRkID0gY3Vy dGhyZWFkOworCWtlID0gdGQtPnRkX2tzZTsKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJcCA9IHRk LT50ZF9wcm9jOworCWNsYXNzID0gUFJJX0JBU0Uoa2ctPmtnX3ByaV9jbGFzcyk7CisJbm93ID0g c2NoZWRfdGltZXN0YW1wKCk7CisJY3B1aWQgPSBQQ1BVX0dFVChjcHVpZCk7CisJa3NlcSA9IEtT RVFfQ1BVKGNwdWlkKTsKKwlrc2VxLT5rc3FfbGFzdF90aW1lc3RhbXAgPSBub3c7CisKKwlpZiAo Y2xhc3MgPT0gUFJJX0lETEUpIHsKKwkJLyoKKwkJICogUHJvY2Vzc2VzIG9mIGVxdWFsIGlkbGUg cHJpb3JpdHkgYXJlIHJ1biByb3VuZC1yb2Jpbi4KKwkJICovCisJCWlmICh0ZCAhPSBQQ1BVX0dF VChpZGxldGhyZWFkKSAmJiAtLWtlLT5rZV9zbGljZSA8PSAwKSB7CisJCQlrZS0+a2Vfc2xpY2Ug PSBkZWZfdGltZXNsaWNlOworCQkJdGQtPnRkX2ZsYWdzIHw9IFRERl9ORUVEUkVTQ0hFRDsKKwkJ fQorCQlyZXR1cm47CisJfQorCisJaWYgKGNsYXNzID09IFBSSV9SRUFMVElNRSkgeworCQkvKgor CQkgKiBSZWFsdGltZSBzY2hlZHVsaW5nLCBkbyByb3VuZCByb2JpbiBmb3IgUlIgY2xhc3MsIEZJ Rk8KKwkJICogaXMgbm90IGFmZmVjdGVkLgorCQkgKi8KKwkJaWYgKFBSSV9ORUVEX1JSKGtnLT5r Z19wcmlfY2xhc3MpICYmIC0ta2UtPmtlX3NsaWNlIDw9IDApIHsKKwkJCWtlLT5rZV9zbGljZSA9 IGRlZl90aW1lc2xpY2U7CisJCQl0ZC0+dGRfZmxhZ3MgfD0gVERGX05FRURSRVNDSEVEOworCQl9 CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFdlIHNraXAga2VybmVsIHRocmVhZCwgdGhvdWdo IGl0IG1heSBiZSBjbGFzc2lmaWVkIGFzIFRJTUVTSEFSRS4KKwkgKi8KKwlpZiAoY2xhc3MgIT0g UFJJX1RJTUVTSEFSRSB8fCAocC0+cF9mbGFnICYgUF9LVEhSRUFEKSAhPSAwKQorCQlyZXR1cm47 CisKKwlpZiAoLS1rZS0+a2Vfc2xpY2UgPD0gMCkgeworCQl0ZC0+dGRfZmxhZ3MgfD0gVERGX05F RURSRVNDSEVEOworCQlzY2hlZF91cGRhdGVfcnVudGltZShrZSwgbm93KTsKKwkJc2NoZWRfY29t bWl0X3J1bnRpbWUoa2UpOworCQlrZy0+a2dfdXNlcl9wcmkgPSBzY2hlZF9jYWxjX3ByaShrZyk7 CisJCWtlLT5rZV9zbGljZSA9IHNjaGVkX3RpbWVzbGljZShrZSk7CisJCWtlLT5rZV9mbGFncyAm PSB+S0VGX0ZJUlNUX1NMSUNFOworCQlpZiAoa2UtPmtlX2ZsYWdzICYgS0VGX0JPVU5EIHx8IHRk LT50ZF9waW5uZWQpIHsKKwkJCWlmIChrc2VxLT5rc3FfZXhwaXJlZF90aWNrID09IDApCisJCQkJ a3NlcS0+a3NxX2V4cGlyZWRfdGljayA9IHRpY2s7CisJCX0gZWxzZSB7CisJCQlpZiAoa3NlcV9n bG9iYWwua3NxX2V4cGlyZWRfdGljayA9PSAwKQorCQkJCWtzZXFfZ2xvYmFsLmtzcV9leHBpcmVk X3RpY2sgPSB0aWNrOworCQl9CisJCWlmICghVEhSRUFEX0lTX0lOVEVSQUNUSVZFKGtlKSB8fAor CQkgICAgc2NoZWRfc3RhcnZpbmcoa3NlcSwgdGljaywga2UpIHx8CisJCSAgICBzY2hlZF9zdGFy dmluZygma3NlcV9nbG9iYWwsIHRpY2ssIGtlKSkgeworCQkJLyogVGhlIHRoZWFkIGJlY29tZXMg Y3B1IGhvZywgc2NoZWR1bGUgaXQgb2ZmLiAqLworCQkJa2UtPmtlX2ZsYWdzIHw9IEtFRl9ORVhU UlE7CisJCQlpZiAoa2UtPmtlX2ZsYWdzICYgS0VGX0JPVU5EIHx8IHRkLT50ZF9waW5uZWQpIHsK KwkJCQlpZiAocC0+cF9uaWNlIDwga3NlcS0+a3NxX2V4cGlyZWRfbmljZSkKKwkJCQkJa3NlcS0+ a3NxX2V4cGlyZWRfbmljZSA9IHAtPnBfbmljZTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKHAtPnBf bmljZSA8IGtzZXFfZ2xvYmFsLmtzcV9leHBpcmVkX25pY2UpCisJCQkJCWtzZXFfZ2xvYmFsLmtz cV9leHBpcmVkX25pY2UgPQorCQkJCQkJcC0+cF9uaWNlOworCQkJfQorCQl9CisJfSBlbHNlIHsK KwkJLyoKKwkJICogRG9uJ3QgYWxsb3cgYW4gaW50ZXJhY3RpdmUgdGhyZWFkIHdoaWNoIGhhcyBs b25nIHRpbWVzbGljZQorCQkgKiB0byBtb25vcG9saXplIENQVSwgc3BsaXQgdGhlIGxvbmcgdGlt ZXNsaWNlIGludG8gc21hbGwKKwkJICogY2h1bmtzLiBUaGlzIGVzc2VudGlhbGx5IGRvZXMgcm91 bmQtcm9iaW4gYmV0d2VlbgorCQkgKiBpbnRlcmFjdGl2ZSB0aHJlYWRzLgorCQkgKi8KKwkJaWYg KFRIUkVBRF9JU19JTlRFUkFDVElWRShrZSkgJiYgc2NoZWRfdGltZXNsaWNlX3NwbGl0KGtlKSkK KwkJCXRkLT50ZF9mbGFncyB8PSBUREZfTkVFRFJFU0NIRUQ7CisJfQorfQorCit2b2lkCitzY2hl ZF9jbG9jayhzdHJ1Y3QgdGhyZWFkICp0ZCkKK3sKKwlzdHJ1Y3Qga3NlZ3JwICprZzsKKwlzdHJ1 Y3Qga3NlICprZTsKKworCW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKwlrZSA9 IHRkLT50ZF9rc2U7CisJa2cgPSBrZS0+a2Vfa3NlZ3JwOworCisJLyogQWRqdXN0IHRpY2tzIGZv ciBwY3RjcHUgKi8KKwlrZS0+a2VfdGlja3MrKzsKKwlrZS0+a2VfbHRpY2sgPSB0aWNrczsKKwor CS8qIEdvIHVwIHRvIG9uZSBzZWNvbmQgYmV5b25kIG91ciBtYXggYW5kIHRoZW4gdHJpbSBiYWNr IGRvd24gKi8KKwlpZiAoa2UtPmtlX2Z0aWNrICsgU0NIRURfQ1BVX1RJQ0tTICsgaHogPCBrZS0+ a2VfbHRpY2spCisJCXNjaGVkX3BjdGNwdV91cGRhdGUoa2UpOworfQorCitzdGF0aWMgaW50Citr c2VxX3J1bm5hYmxlKHN0cnVjdCBrc2VxICprc2VxKQoreworCXJldHVybiAoa3J1bnFfY2hlY2so a3NlcS0+a3NxX2N1cnIpIHx8CisJICAgICAgICBrcnVucV9jaGVjayhrc2VxLT5rc3FfbmV4dCkg fHwKKwkJa3J1bnFfY2hlY2soJmtzZXEtPmtzcV9pZGxlKSk7Cit9CisKK2ludAorc2NoZWRfcnVu bmFibGUodm9pZCkKK3sKKyNpZmRlZiBTTVAKKwlyZXR1cm4gKGtzZXFfcnVubmFibGUoJmtzZXFf Z2xvYmFsKSB8fCBrc2VxX3J1bm5hYmxlKEtTRVFfU0VMRigpKSk7CisjZWxzZQorCXJldHVybiAo a3NlcV9ydW5uYWJsZSgma3NlcV9nbG9iYWwpKTsKKyNlbmRpZgorfQorCit2b2lkCitzY2hlZF91 c2VycmV0KHN0cnVjdCB0aHJlYWQgKnRkKQoreworCXN0cnVjdCBrc2VncnAgKmtnOworCisJS0FT U0VSVCgodGQtPnRkX2ZsYWdzICYgVERGX0JPUlJPV0lORykgPT0gMCwKKwkgICAgKCJ0aHJlYWQg d2l0aCBib3Jyb3dlZCBwcmlvcml0eSByZXR1cm5pbmcgdG8gdXNlcmxhbmQiKSk7CisJa2cgPSB0 ZC0+dGRfa3NlZ3JwOworCWlmICh0ZC0+dGRfcHJpb3JpdHkgIT0ga2ctPmtnX3VzZXJfcHJpKSB7 CisJCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCQl0ZC0+dGRfcHJpb3JpdHkgPSBrZy0+ a2dfdXNlcl9wcmk7CisJCXRkLT50ZF9iYXNlX3ByaSA9IGtnLT5rZ191c2VyX3ByaTsKKwkJbXR4 X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKKwl9Cit9CisKK3N0cnVjdCBrc2UgKgorc2NoZWRf Y2hvb3NlKHZvaWQpCit7CisJc3RydWN0IGtzZSAgKmtlOworCXN0cnVjdCBrc2VxICprc2VxOwor CisjaWZkZWYgU01QCisJc3RydWN0IGtzZSAqa2VjcHU7CisKKwltdHhfYXNzZXJ0KCZzY2hlZF9s b2NrLCBNQV9PV05FRCk7CisJa3NlcSA9ICZrc2VxX2dsb2JhbDsKKwlrZSA9IGtzZXFfY2hvb3Nl KCZrc2VxX2dsb2JhbCk7CisJa2VjcHUgPSBrc2VxX2Nob29zZShLU0VRX1NFTEYoKSk7CisKKwlp ZiAoa2UgPT0gTlVMTCB8fCAKKwkgICAgKGtlY3B1ICE9IE5VTEwgJiYgCisJICAgICBrZWNwdS0+ a2VfdGhyZWFkLT50ZF9wcmlvcml0eSA8IGtlLT5rZV90aHJlYWQtPnRkX3ByaW9yaXR5KSkgewor CQlrZSA9IGtlY3B1OworCQlrc2VxID0gS1NFUV9TRUxGKCk7CisJfQorI2Vsc2UKKwlrc2VxID0g JmtzZXFfZ2xvYmFsOworCWtlID0ga3NlcV9jaG9vc2Uoa3NlcSk7CisjZW5kaWYKKworCWlmIChr ZSAhPSBOVUxMKSB7CisJCWtzZXFfcnVucV9yZW0oa3NlcSwga2UpOworCQlrZS0+a2Vfc3RhdGUg PSBLRVNfVEhSRUFEOworCQlrZS0+a2VfZmxhZ3MgJj0gfktFRl9QUkVFTVBURUQ7CisJCWtlLT5r ZV90aW1lc3RhbXAgPSBzY2hlZF90aW1lc3RhbXAoKTsKKwl9CisKKwlyZXR1cm4gKGtlKTsKK30K KworI2lmZGVmIFNNUAorc3RhdGljIGludAorZm9yd2FyZF93YWtldXAoaW50IGNwdW51bSwgY3B1 bWFza190IG1lKQoreworCWNwdW1hc2tfdCBtYXAsIGRvbnR1c2U7CisJY3B1bWFza190IG1hcDI7 CisJc3RydWN0IHBjcHUgKnBjOworCWNwdW1hc2tfdCBpZCwgbWFwMzsKKworCW10eF9hc3NlcnQo JnNjaGVkX2xvY2ssIE1BX09XTkVEKTsKKworCUNUUjAoS1RSX1JVTlEsICJmb3J3YXJkX3dha2V1 cCgpIik7CisKKwlpZiAoKCFmb3J3YXJkX3dha2V1cF9lbmFibGVkKSB8fAorCSAgICAgKGZvcndh cmRfd2FrZXVwX3VzZV9tYXNrID09IDAgJiYgZm9yd2FyZF93YWtldXBfdXNlX2xvb3AgPT0gMCkp CisJCXJldHVybiAoMCk7CisJaWYgKCFzbXBfc3RhcnRlZCB8fCBjb2xkIHx8IHBhbmljc3RyKQor CQlyZXR1cm4gKDApOworCisJZm9yd2FyZF93YWtldXBzX3JlcXVlc3RlZCsrOworCisJLyoKKwkg KiBjaGVjayB0aGUgaWRsZSBtYXNrIHdlIHJlY2VpdmVkIGFnYWluc3Qgd2hhdCB3ZSBjYWxjdWxh dGVkIGJlZm9yZQorCSAqIGluIHRoZSBvbGQgdmVyc2lvbi4KKwkgKi8KKwkvKiAKKwkgKiBkb24n dCBib3RoZXIgaWYgd2Ugc2hvdWxkIGJlIGRvaW5nIGl0IG91cnNlbGYuLgorCSAqLworCWlmICgo bWUgJiBpZGxlX2NwdXNfbWFzaykgJiYgKGNwdW51bSA9PSBOT0NQVSB8fCBtZSA9PSAoMSA8PCBj cHVudW0pKSkKKwkJcmV0dXJuICgwKTsKKworCWRvbnR1c2UgPSBtZSB8IHN0b3BwZWRfY3B1cyB8 IGhsdF9jcHVzX21hc2s7CisJbWFwMyA9IDA7CisJaWYgKGZvcndhcmRfd2FrZXVwX3VzZV9sb29w KSB7CisJCVNMSVNUX0ZPUkVBQ0gocGMsICZjcHVoZWFkLCBwY19hbGxjcHUpIHsKKwkJCWlkID0g cGMtPnBjX2NwdW1hc2s7CisJCQlpZiAoIChpZCAmIGRvbnR1c2UpID09IDAgJiYKKwkJCSAgICBw Yy0+cGNfY3VydGhyZWFkID09IHBjLT5wY19pZGxldGhyZWFkKSB7CisJCQkJbWFwMyB8PSBpZDsK KwkJCX0KKwkJfQorCX0KKworCWlmIChmb3J3YXJkX3dha2V1cF91c2VfbWFzaykgeworCQltYXAg PSAwOworCQltYXAgPSBpZGxlX2NwdXNfbWFzayAmIH5kb250dXNlOworCisJCS8qIElmIHRoZXkg YXJlIGJvdGggb24sIGNvbXBhcmUgYW5kIHVzZSBsb29wIGlmIGRpZmZlcmVudCAqLworCQlpZiAo Zm9yd2FyZF93YWtldXBfdXNlX2xvb3ApIHsKKwkJCWlmIChtYXAgIT0gbWFwMykgeworCQkJCXBy aW50ZigibWFwICglMDJYKSAhPSBtYXAzICglMDJYKVxuIiwKKwkJCQkJCW1hcCwgbWFwMyk7CisJ CQkJbWFwID0gbWFwMzsKKwkJCX0KKwkJfQorCX0gZWxzZSB7CisJCW1hcCA9IG1hcDM7CisJfQor CS8qIElmIHdlIG9ubHkgYWxsb3cgYSBzcGVjaWZpYyBDUFUsIHRoZW4gbWFzayBvZmYgYWxsIHRo ZSBvdGhlcnMgKi8KKwlpZiAoY3B1bnVtICE9IE5PQ1BVKSB7CisJCUtBU1NFUlQoKGNwdW51bSA8 PSBtcF9tYXhjcHVzKSwoImZvcndhcmRfd2FrZXVwOiBiYWQgY3B1bnVtLiIpKTsKKwkJbWFwICY9 ICgxIDw8IGNwdW51bSk7CisJfSBlbHNlIHsKKwkJLyogVHJ5IGNob29zZSBhbiBpZGxlIGRpZS4g Ki8KKwkJaWYgKGZvcndhcmRfd2FrZXVwX3VzZV9odHQpIHsKKwkJCW1hcDIgPSAgKG1hcCAmICht YXAgPj4gMSkpICYgMHg1NTU1OworCQkJaWYgKG1hcDIpIHsKKwkJCQltYXAgPSBtYXAyOworCQkJ fQorCQl9CisKKwkJLyogc2V0IG9ubHkgb25lIGJpdCAqLyAKKwkJaWYgKGZvcndhcmRfd2FrZXVw X3VzZV9zaW5nbGUpIHsKKwkJCW1hcCA9IG1hcCAmICgofm1hcCkgKyAxKTsKKwkJfQorCX0KKwlp ZiAobWFwKSB7CisJCWZvcndhcmRfd2FrZXVwc19kZWxpdmVyZWQrKzsKKwkJaXBpX3NlbGVjdGVk KG1hcCwgSVBJX0FTVCk7CisJCXJldHVybiAoMSk7CisJfQorCXJldHVybiAoMCk7Cit9CisjZW5k aWYKKwordm9pZAorc2NoZWRfYWRkKHN0cnVjdCB0aHJlYWQgKnRkLCBpbnQgZmxhZ3MpCit7CisJ c3RydWN0IGtzZXEgKmtzcTsKKwlzdHJ1Y3Qga3NlZ3JwICprZzsKKwlzdHJ1Y3Qga3NlICprZTsK KwlzdHJ1Y3QgdGhyZWFkICpteXRkOworCWludCBjbGFzczsKKwlpbnQgbmV4dHJxOworCWludCBu ZWVkX3Jlc2NoZWQgPSAwOworI2lmZGVmIFNNUAorCWludCBjcHU7CisJaW50IG15Y3B1OworCWlu dCBwaW5uZWQ7CisJc3RydWN0IGtzZXEgKm15a3NxOworI2VuZGlmCisKKwltdHhfYXNzZXJ0KCZz Y2hlZF9sb2NrLCBNQV9PV05FRCk7CisJbXl0ZCA9IGN1cnRocmVhZDsKKwlrZSA9IHRkLT50ZF9r c2U7CisJa2cgPSB0ZC0+dGRfa3NlZ3JwOworCUtBU1NFUlQoa2UtPmtlX3N0YXRlICE9IEtFU19P TlJVTlEsCisJICAgICgic2NoZWRfYWRkOiBrc2UgJXAgKCVzKSBhbHJlYWR5IGluIHJ1biBxdWV1 ZSIsIGtlLAorCSAgICBrZS0+a2VfcHJvYy0+cF9jb21tKSk7CisJS0FTU0VSVChrZS0+a2VfcHJv Yy0+cF9zZmxhZyAmIFBTX0lOTUVNLAorCSAgICAoInNjaGVkX2FkZDogcHJvY2VzcyBzd2FwcGVk IG91dCIpKTsKKwlLQVNTRVJUKGtlLT5rZV9ydW5xID09IE5VTEwsCisJICAgICgic2NoZWRfYWRk OiBLU0UgJXAgaXMgc3RpbGwgYXNzaWduZWQgdG8gYSBydW4gcXVldWUiLCBrZSkpOworCisJY2xh c3MgPSBQUklfQkFTRShrZy0+a2dfcHJpX2NsYXNzKTsKKyNpZmRlZiBTTVAKKwlteWNwdSA9IFBD UFVfR0VUKGNwdWlkKTsKKwlteWtzcSA9IEtTRVFfQ1BVKG15Y3B1KTsKKwlrZS0+a2Vfd2FrZXVw X2NwdSA9IG15Y3B1OworI2VuZGlmCisJbmV4dHJxID0gKGtlLT5rZV9mbGFncyAmIEtFRl9ORVhU UlEpOworCWtlLT5rZV9mbGFncyAmPSB+S0VGX05FWFRSUTsKKwlpZiAoZmxhZ3MgJiBTUlFfUFJF RU1QVEVEKQorCQlrZS0+a2VfZmxhZ3MgfD0gS0VGX1BSRUVNUFRFRDsKKwlrc3EgPSAma3NlcV9n bG9iYWw7CisjaWZkZWYgU01QCisJaWYgKHRkLT50ZF9waW5uZWQgIT0gMCkgeworCQljcHUgPSB0 ZC0+dGRfbGFzdGNwdTsKKwkJa3NxID0gS1NFUV9DUFUoY3B1KTsKKwkJcGlubmVkID0gMTsKKwl9 IGVsc2UgaWYgKChrZSktPmtlX2ZsYWdzICYgS0VGX0JPVU5EKSB7CisJCWNwdSA9IGtlLT5rZV9j cHU7CisJCWtzcSA9IEtTRVFfQ1BVKGNwdSk7CisJCXBpbm5lZCA9IDE7CisJfSBlbHNlIHsKKwkJ cGlubmVkID0gMDsKKwkJY3B1ID0gTk9DUFU7CisJfQorI2VuZGlmCisJc3dpdGNoIChjbGFzcykg eworCWNhc2UgUFJJX0lUSEQ6CisJY2FzZSBQUklfUkVBTFRJTUU6CisJCWtlLT5rZV9ydW5xID0g a3NxLT5rc3FfY3VycjsKKwkJYnJlYWs7CisJY2FzZSBQUklfVElNRVNIQVJFOgorCQlpZiAoKHRk LT50ZF9mbGFncyAmIFRERl9CT1JST1dJTkcpID09IDAgJiYgbmV4dHJxKQorCQkJa2UtPmtlX3J1 bnEgPSBrc3EtPmtzcV9uZXh0OworCQllbHNlCisJCQlrZS0+a2VfcnVucSA9IGtzcS0+a3NxX2N1 cnI7CisJCWJyZWFrOworCWNhc2UgUFJJX0lETEU6CisJCS8qCisJCSAqIFRoaXMgaXMgZm9yIHBy aW9yaXR5IHByb3AuCisJCSAqLworCQlpZiAodGQtPnRkX3ByaW9yaXR5IDwgUFJJX01JTl9JRExF KQorCQkJa2UtPmtlX3J1bnEgPSBrc3EtPmtzcV9jdXJyOworCQllbHNlCisJCQlrZS0+a2VfcnVu cSA9ICZrc3EtPmtzcV9pZGxlOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwYW5pYygiVW5rbm93 biBwcmkgY2xhc3MuIik7CisJCWJyZWFrOworCX0KKworI2lmZGVmIFNNUAorCWlmICgoa2UtPmtl X3J1bnEgPT0ga3NlcV9nbG9iYWwua3NxX2N1cnIgfHwKKwkgICAgIGtlLT5rZV9ydW5xID09IG15 a3NxLT5rc3FfY3VycikgJiYKKwkgICAgIHRkLT50ZF9wcmlvcml0eSA8IG15dGQtPnRkX3ByaW9y aXR5KSB7CisjZWxzZQorCWlmIChrZS0+a2VfcnVucSA9PSBrc2VxX2dsb2JhbC5rc3FfY3VyciAm JgorCSAgICB0ZC0+dGRfcHJpb3JpdHkgPCBteXRkLT50ZF9wcmlvcml0eSkgeworI2VuZGlmCisJ CXN0cnVjdCBrcnVucSAqcnE7CisKKwkJcnEgPSBrZS0+a2VfcnVucTsKKwkJa2UtPmtlX3J1bnEg PSBOVUxMOworCQlpZiAoKGZsYWdzICYgU1JRX1lJRUxESU5HKSA9PSAwICYmIG1heWJlX3ByZWVt cHQodGQpKQorCQkJcmV0dXJuOworCQlrZS0+a2VfcnVucSA9IHJxOworCQluZWVkX3Jlc2NoZWQg PSBUREZfTkVFRFJFU0NIRUQ7CisJfQorCisJU0xPVF9VU0Uoa2cpOworCWtlLT5rZV9zdGF0ZSA9 IEtFU19PTlJVTlE7CisJa3NlcV9ydW5xX2FkZChrc3EsIGtlKTsKKwlrc2VxX2xvYWRfYWRkKGtz cSwga2UpOworCisjaWZkZWYgU01QCisJaWYgKHBpbm5lZCkgeworCQlpZiAoY3B1ICE9IG15Y3B1 KSB7CisJCQlzdHJ1Y3QgdGhyZWFkICpydW5uaW5nID0gcGNwdV9maW5kKGNwdSktPnBjX2N1cnRo cmVhZDsKKwkJCWlmIChrc3EtPmtzcV9jdXJyID09IGtlLT5rZV9ydW5xICYmCisJCQkgICAgcnVu bmluZy0+dGRfcHJpb3JpdHkgPCB0ZC0+dGRfcHJpb3JpdHkpIHsKKwkJCQlpZiAodGQtPnRkX3By aW9yaXR5IDw9IFBSSV9NQVhfSVRIRCkKKwkJCQkJaXBpX3NlbGVjdGVkKDEgPDwgY3B1LCBJUElf UFJFRU1QVCk7CisJCQkJZWxzZSB7CisJCQkJCXJ1bm5pbmctPnRkX2ZsYWdzIHw9IFRERl9ORUVE UkVTQ0hFRDsKKwkJCQkJaXBpX3NlbGVjdGVkKDEgPDwgY3B1LCBJUElfQVNUKTsKKwkJCQl9CisJ CQl9CisJCX0gZWxzZQorCQkJY3VydGhyZWFkLT50ZF9mbGFncyB8PSBuZWVkX3Jlc2NoZWQ7CisJ fSBlbHNlIHsKKwkJY3B1bWFza190IG1lID0gMSA8PCBteWNwdTsKKwkJY3B1bWFza190IGlkbGUg PSBpZGxlX2NwdXNfbWFzayAmIG1lOworCQlpbnQgZm9yd2FyZGVkID0gMDsKKworCQlpZiAoIWlk bGUgJiYgKChmbGFncyAmIFNSUV9JTlRSKSA9PSAwKSAmJgorCQkgICAgKGlkbGVfY3B1c19tYXNr ICYgfihobHRfY3B1c19tYXNrIHwgbWUpKSkKKwkJCWZvcndhcmRlZCA9IGZvcndhcmRfd2FrZXVw KGNwdSwgbWUpOworCQlpZiAoZm9yd2FyZGVkID09IDApCisJCQljdXJ0aHJlYWQtPnRkX2ZsYWdz IHw9IG5lZWRfcmVzY2hlZDsKKwl9CisjZWxzZQorCW15dGQtPnRkX2ZsYWdzIHw9IG5lZWRfcmVz Y2hlZDsKKyNlbmRpZgorfQorCit2b2lkCitzY2hlZF9yZW0oc3RydWN0IHRocmVhZCAqdGQpCit7 CisJc3RydWN0IGtzZXEgKmtzZXE7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhfYXNzZXJ0KCZz Y2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCUtBU1NFUlQoKGtlLT5r ZV9zdGF0ZSA9PSBLRVNfT05SVU5RKSwKKwkgICAgKCJzY2hlZF9yZW06IEtTRSBub3Qgb24gcnVu IHF1ZXVlIikpOworCisJa3NlcSA9IGtlLT5rZV9rc2VxOworCVNMT1RfUkVMRUFTRSh0ZC0+dGRf a3NlZ3JwKTsKKwlrc2VxX3J1bnFfcmVtKGtzZXEsIGtlKTsKKwlrc2VxX2xvYWRfcmVtKGtzZXEs IGtlKTsKKwlrZS0+a2Vfc3RhdGUgPSBLRVNfVEhSRUFEOworfQorCitmaXhwdF90CitzY2hlZF9w Y3RjcHUoc3RydWN0IHRocmVhZCAqdGQpCit7CisJZml4cHRfdCBwY3RjcHU7CisJc3RydWN0IGtz ZSAqa2U7CisKKwlwY3RjcHUgPSAwOworCWtlID0gdGQtPnRkX2tzZTsKKwlpZiAoa2UgPT0gTlVM TCkKKwkJcmV0dXJuICgwKTsKKworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChr ZS0+a2VfdGlja3MpIHsKKwkJaW50IHJ0aWNrOworCisJCS8qCisJCSAqIERvbid0IHVwZGF0ZSBt b3JlIGZyZXF1ZW50bHkgdGhhbiB0d2ljZSBhIHNlY29uZC4gIEFsbG93aW5nCisJCSAqIHRoaXMg Y2F1c2VzIHRoZSBjcHUgdXNhZ2UgdG8gZGVjYXkgYXdheSB0b28gcXVpY2tseSBkdWUgdG8KKwkJ ICogcm91bmRpbmcgZXJyb3JzLgorCQkgKi8KKwkJaWYgKGtlLT5rZV9mdGljayArIFNDSEVEX0NQ VV9USUNLUyA8IGtlLT5rZV9sdGljayB8fAorCQkgICAga2UtPmtlX2x0aWNrIDwgKHRpY2tzIC0g KGh6IC8gMikpKQorCQkJc2NoZWRfcGN0Y3B1X3VwZGF0ZShrZSk7CisJCS8qIEhvdyBtYW55IHJ0 aWNrIHBlciBzZWNvbmQgPyAqLworCQlydGljayA9IE1JTihrZS0+a2VfdGlja3MgLyBTQ0hFRF9D UFVfVElNRSwgU0NIRURfQ1BVX1RJQ0tTKTsKKwkJcGN0Y3B1ID0gKEZTQ0FMRSAqICgoRlNDQUxF ICogcnRpY2spL3JlYWxzdGF0aHopKSA+PiBGU0hJRlQ7CisJfQorCisJa2UtPmtlX3Byb2MtPnBf c3d0aW1lID0ga2UtPmtlX2x0aWNrIC0ga2UtPmtlX2Z0aWNrOworCW10eF91bmxvY2tfc3Bpbigm c2NoZWRfbG9jayk7CisKKwlyZXR1cm4gKHBjdGNwdSk7Cit9CisKK3ZvaWQKK3NjaGVkX2JpbmQo c3RydWN0IHRocmVhZCAqdGQsIGludCBjcHUpCit7CisJc3RydWN0IGtzZSAqa2U7CisKKwltdHhf YXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJa2UgPSB0ZC0+dGRfa3NlOworCWtlLT5r ZV9mbGFncyB8PSBLRUZfQk9VTkQ7CisjaWZkZWYgU01QCisJa2UtPmtlX2NwdSA9IGNwdTsKKwlp ZiAoUENQVV9HRVQoY3B1aWQpID09IGNwdSkKKwkJcmV0dXJuOworCW1pX3N3aXRjaChTV19WT0ws IE5VTEwpOworI2VuZGlmCit9CisKK3ZvaWQKK3NjaGVkX3VuYmluZChzdHJ1Y3QgdGhyZWFkICp0 ZCkKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJdGQtPnRkX2tzZS0+ a2VfZmxhZ3MgJj0gfktFRl9CT1VORDsKK30KKworaW50CitzY2hlZF9pc19ib3VuZChzdHJ1Y3Qg dGhyZWFkICp0ZCkKK3sKKwltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7CisJcmV0 dXJuICh0ZC0+dGRfa3NlLT5rZV9mbGFncyAmIEtFRl9CT1VORCk7Cit9CisKK2ludAorc2NoZWRf bG9hZCh2b2lkKQoreworCXJldHVybiAoc2NoZWRfdGRjbnQpOworfQorCit2b2lkCitzY2hlZF9y ZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQoreworCXN0cnVjdCBrc2VncnAgKmtnOworCisJ a2cgPSB0ZC0+dGRfa3NlZ3JwOworCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCWlmIChz Y2hlZF9pc190aW1lc2hhcmUoa2cpKSB7CisJCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhfVElNRVNI QVJFKTsKKwkJdGQtPnRkX2tzZS0+a2VfZmxhZ3MgfD0gS0VGX05FWFRSUTsKKwl9CisJbWlfc3dp dGNoKFNXX1ZPTCwgTlVMTCk7CisJbXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKK30KKwor aW50CitzY2hlZF9zaXplb2Zfa3NlZ3JwKHZvaWQpCit7CisJcmV0dXJuIChzaXplb2Yoc3RydWN0 IGtzZWdycCkgKyBzaXplb2Yoc3RydWN0IGtnX3NjaGVkKSk7Cit9CisKK2ludAorc2NoZWRfc2l6 ZW9mX3Byb2Modm9pZCkKK3sKKwlyZXR1cm4gKHNpemVvZihzdHJ1Y3QgcHJvYykpOworfQorCitp bnQKK3NjaGVkX3NpemVvZl90aHJlYWQodm9pZCkKK3sKKwlyZXR1cm4gKHNpemVvZihzdHJ1Y3Qg dGhyZWFkKSArIHNpemVvZihzdHJ1Y3QgdGRfc2NoZWQpKTsKK30KKyNkZWZpbmUgS0VSTl9TV0lU Q0hfSU5DTFVERSAxCisjaW5jbHVkZSAia2Vybi9rZXJuX3N3aXRjaC5jIgpJbmRleDogLi9zeXMv a2Vybi9zY2hlZF80YnNkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lz L2tlcm4vc2NoZWRfNGJzZC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc3LjIuMQpkaWZmIC11 IC1yMS43Ny4yLjEgc2NoZWRfNGJzZC5jCi0tLSAuL3N5cy9rZXJuL3NjaGVkXzRic2QuYwkxNiBK dW4gMjAwNiAyMjoxMTo1NSAtMDAwMAkxLjc3LjIuMQorKysgLi9zeXMva2Vybi9zY2hlZF80YnNk LmMJMjQgT2N0IDIwMDYgMDk6NDU6NTEgLTAwMDAKQEAgLTEzNTQsNiArMTM1NCwxOSBAQAogCXJl dHVybiAodGQtPnRkX2tzZS0+a2VfZmxhZ3MgJiBLRUZfQk9VTkQpOwogfQogCit2b2lkCitzY2hl ZF9yZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQgKnRkKQoreyAKKwlzdHJ1Y3Qga3NlZ3JwICprZzsK KyAKKwlrZyA9IHRkLT50ZF9rc2VncnA7CisJbXR4X2xvY2tfc3Bpbigmc2NoZWRfbG9jayk7CisJ aWYgKGtnLT5rZ19wcmlfY2xhc3MgPT0gUFJJX1RJTUVTSEFSRSkKKwkJc2NoZWRfcHJpbyh0ZCwg UFJJX01BWF9USU1FU0hBUkUpOworCW1pX3N3aXRjaChTV19WT0wsIE5VTEwpOworCW10eF91bmxv Y2tfc3Bpbigmc2NoZWRfbG9jayk7Cit9CisKIGludAogc2NoZWRfbG9hZCh2b2lkKQogewpAQCAt MTM4Niw1ICsxMzk5LDEwIEBACiAKIAlyZXR1cm4gKDApOwogfQorCit2b2lkCitzY2hlZF90aWNr KHZvaWQpCit7Cit9CiAjZGVmaW5lIEtFUk5fU1dJVENIX0lOQ0xVREUgMQogI2luY2x1ZGUgImtl cm4va2Vybl9zd2l0Y2guYyIKSW5kZXg6IC4vc3lzL2tlcm4va2Vybl9zd2l0Y2guYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9rZXJuX3N3aXRjaC5jLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjExNi4yLjEKZGlmZiAtdSAtcjEuMTE2LjIuMSBrZXJuX3N3aXRj aC5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fc3dpdGNoLmMJNiBBdWcgMjAwNSAwMzowNjoyNSAtMDAw MAkxLjExNi4yLjEKKysrIC4vc3lzL2tlcm4va2Vybl9zd2l0Y2guYwkyNCBPY3QgMjAwNiAwOTo0 NTo1NCAtMDAwMApAQCAtMzAzLDcgKzMwMywxMiBAQAogCWlmICgodGQtPnRkX3Byb2MtPnBfZmxh ZyAmIFBfSEFEVEhSRUFEUykgPT0gMCkgewogCQkvKiBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGtz ZSBpbiB0aGUgcnVuIHF1ZXVlLiAqLwogCQl0ZC0+dGRfcHJpb3JpdHkgPSBuZXdwcmk7Ci0JCWlm IChrZS0+a2VfcnFpbmRleCAhPSAobmV3cHJpIC8gUlFfUFBRKSkgeworI2lmbmRlZiBTQ0hFRF9D T1JFCisJCWlmIChrZS0+a2VfcnFpbmRleCAhPSAobmV3cHJpIC8gUlFfUFBRKSkKKyNlbHNlCisJ CWlmIChrZS0+a2VfcnFpbmRleCAhPSBuZXdwcmkpCisjZW5kaWYKKwkJewogCQkJc2NoZWRfcmVt KHRkKTsKIAkJCXNjaGVkX2FkZCh0ZCwgU1JRX0JPUklORyk7CiAJCX0KSW5kZXg6IC4vc3lzL2tl cm4va2Vybl9jbG9jay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9r ZXJuL2tlcm5fY2xvY2suYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNzguMi4zCmRpZmYgLXUg LXIxLjE3OC4yLjMga2Vybl9jbG9jay5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fY2xvY2suYwkxMCBN YXIgMjAwNiAxOTozNzozMyAtMDAwMAkxLjE3OC4yLjMKKysrIC4vc3lzL2tlcm4va2Vybl9jbG9j ay5jCTI0IE9jdCAyMDA2IDA5OjQ1OjU5IC0wMDAwCkBAIC0yMDQsNiArMjA0LDcgQEAKIAkgKiBS dW4gY3VycmVudCBwcm9jZXNzJ3MgdmlydHVhbCBhbmQgcHJvZmlsZSB0aW1lLCBhcyBuZWVkZWQu CiAJICovCiAJbXR4X2xvY2tfc3Bpbl9mbGFncygmc2NoZWRfbG9jaywgTVRYX1FVSUVUKTsKKwlz Y2hlZF90aWNrKCk7CiAJaWYgKHAtPnBfZmxhZyAmIFBfU0EpIHsKIAkJLyogWFhYS1NFIFdoYXQg dG8gZG8/ICovCiAJfSBlbHNlIHsKSW5kZXg6IC4vc3lzL2tlcm4va2Vybl90Yy5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL2tlcm5fdGMuYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xNjQKZGlmZiAtdSAtcjEuMTY0IGtlcm5fdGMuYwotLS0gLi9zeXMva2Vy bi9rZXJuX3RjLmMJMjYgTWFyIDIwMDUgMjA6MDQ6MjggLTAwMDAJMS4xNjQKKysrIC4vc3lzL2tl cm4va2Vybl90Yy5jCTI0IE9jdCAyMDA2IDA5OjQ2OjAyIC0wMDAwCkBAIC04LDcgKzgsNyBAQAog ICovCiAKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogc3JjL3N5 cy9rZXJuL2tlcm5fdGMuYyx2IDEuMTY0IDIwMDUvMDMvMjYgMjA6MDQ6MjggcGhrIEV4cCAkIik7 CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IC9yZXBvbWFuL3IvbmN2cy9zcmMvc3lzL2tlcm4va2Vybl90 Yy5jLHYgMS4xNzcgMjAwNi8wOC8wNCAwNzo1NjozNSB5YXIgRXhwICQiKTsKIAogI2luY2x1ZGUg Im9wdF9udHAuaCIKIApAQCAtNjEsNyArNjEsNyBAQAogCXN0cnVjdCB0aW1laGFuZHMJKnRoX25l eHQ7CiB9OwogCi1leHRlcm4gc3RydWN0IHRpbWVoYW5kcyB0aDA7CitzdGF0aWMgc3RydWN0IHRp bWVoYW5kcyB0aDA7CiBzdGF0aWMgc3RydWN0IHRpbWVoYW5kcyB0aDkgPSB7IE5VTEwsIDAsIDAs IDAsIHswLCAwfSwgezAsIDB9LCB7MCwgMH0sIDAsICZ0aDB9Owogc3RhdGljIHN0cnVjdCB0aW1l aGFuZHMgdGg4ID0geyBOVUxMLCAwLCAwLCAwLCB7MCwgMH0sIHswLCAwfSwgezAsIDB9LCAwLCAm dGg5fTsKIHN0YXRpYyBzdHJ1Y3QgdGltZWhhbmRzIHRoNyA9IHsgTlVMTCwgMCwgMCwgMCwgezAs IDB9LCB7MCwgMH0sIHswLCAwfSwgMCwgJnRoOH07CkBAIC04OCw3ICs4OCw3IEBACiBzdGF0aWMg c3RydWN0IHRpbWVjb3VudGVyICp0aW1lY291bnRlcnMgPSAmZHVtbXlfdGltZWNvdW50ZXI7CiAK IHRpbWVfdCB0aW1lX3NlY29uZCA9IDE7Ci10aW1lX3QgdGltZV91cHRpbWUgPSAwOwordGltZV90 IHRpbWVfdXB0aW1lID0gMTsKIAogc3RhdGljIHN0cnVjdCBiaW50aW1lIGJvb3R0aW1lYmluOwog c3RydWN0IHRpbWV2YWwgYm9vdHRpbWU7CkBAIC05Nyw2ICs5Nyw3IEBACiAgICAgTlVMTCwgMCwg c3lzY3RsX2tlcm5fYm9vdHRpbWUsICJTLHRpbWV2YWwiLCAiU3lzdGVtIGJvb3R0aW1lIik7CiAK IFNZU0NUTF9OT0RFKF9rZXJuLCBPSURfQVVUTywgdGltZWNvdW50ZXIsIENUTEZMQUdfUlcsIDAs ICIiKTsKK1NZU0NUTF9OT0RFKF9rZXJuX3RpbWVjb3VudGVyLCBPSURfQVVUTywgdGMsIENUTEZM QUdfUlcsIDAsICIiKTsKIAogc3RhdGljIGludCB0aW1lc3RlcHdhcm5pbmdzOwogU1lTQ1RMX0lO VChfa2Vybl90aW1lY291bnRlciwgT0lEX0FVVE8sIHN0ZXB3YXJuaW5ncywgQ1RMRkxBR19SVywK QEAgLTExNiw2ICsxMTcsNyBAQAogI3VuZGVmIFRDX1NUQVRTCiAKIHN0YXRpYyB2b2lkIHRjX3dp bmR1cCh2b2lkKTsKK3N0YXRpYyB2b2lkIGNwdV90aWNrX2NhbGlicmF0ZShpbnQpOwogCiBzdGF0 aWMgaW50CiBzeXNjdGxfa2Vybl9ib290dGltZShTWVNDVExfSEFORExFUl9BUkdTKQpAQCAtMTMx LDYgKzEzMywyNyBAQAogI2VuZGlmCiAJCXJldHVybiBTWVNDVExfT1VUKHJlcSwgJmJvb3R0aW1l LCBzaXplb2YoYm9vdHRpbWUpKTsKIH0KKworc3RhdGljIGludAorc3lzY3RsX2tlcm5fdGltZWNv dW50ZXJfZ2V0KFNZU0NUTF9IQU5ETEVSX0FSR1MpCit7CisJdV9pbnQgbmNvdW50OworCXN0cnVj dCB0aW1lY291bnRlciAqdGMgPSBhcmcxOworCisJbmNvdW50ID0gdGMtPnRjX2dldF90aW1lY291 bnQodGMpOworCXJldHVybiBzeXNjdGxfaGFuZGxlX2ludChvaWRwLCAmbmNvdW50LCBzaXplb2Yo bmNvdW50KSwgcmVxKTsKK30KKworc3RhdGljIGludAorc3lzY3RsX2tlcm5fdGltZWNvdW50ZXJf ZnJlcShTWVNDVExfSEFORExFUl9BUkdTKQoreworCXVfaW50NjRfdCBmcmVxOworCXN0cnVjdCB0 aW1lY291bnRlciAqdGMgPSBhcmcxOworCisJZnJlcSA9IHRjLT50Y19mcmVxdWVuY3k7CisJcmV0 dXJuIHN5c2N0bF9oYW5kbGVfaW50KG9pZHAsICZmcmVxLCBzaXplb2YoZnJlcSksIHJlcSk7Cit9 CisKIC8qCiAgKiBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZWhhbmRzJyBj b3VudGVyIHZhbHVlIG5vdyBhbmQgd2hhdAogICogd2FzIHdoZW4gd2UgY29waWVkIGl0IHRvIHRo ZSB0aW1laGFuZHMnIG9mZnNldF9jb3VudC4KQEAgLTMwNyw2ICszMzAsNyBAQAogdGNfaW5pdChz dHJ1Y3QgdGltZWNvdW50ZXIgKnRjKQogewogCXVfaW50IHU7CisJc3RydWN0IHN5c2N0bF9vaWQg KnRjX3Jvb3Q7CiAKIAl1ID0gdGMtPnRjX2ZyZXF1ZW5jeSAvIHRjLT50Y19jb3VudGVyX21hc2s7 CiAJLyogWFhYOiBXZSBuZWVkIHNvbWUgbWFyZ2luIGhlcmUsIDEwJSBpcyBhIGd1ZXNzICovCkBA IC0zMjgsNiArMzUyLDI0IEBACiAJdGMtPnRjX25leHQgPSB0aW1lY291bnRlcnM7CiAJdGltZWNv dW50ZXJzID0gdGM7CiAJLyoKKwkgKiBTZXQgdXAgc3lzY3RsIHRyZWUgZm9yIHRoaXMgY291bnRl ci4KKwkgKi8KKwl0Y19yb290ID0gU1lTQ1RMX0FERF9OT0RFKE5VTEwsCisJICAgIFNZU0NUTF9T VEFUSUNfQ0hJTERSRU4oX2tlcm5fdGltZWNvdW50ZXJfdGMpLCBPSURfQVVUTywgdGMtPnRjX25h bWUsCisJICAgIENUTEZMQUdfUlcsIDAsICJ0aW1lY291bnRlciBkZXNjcmlwdGlvbiIpOworCVNZ U0NUTF9BRERfVUlOVChOVUxMLCBTWVNDVExfQ0hJTERSRU4odGNfcm9vdCksIE9JRF9BVVRPLAor CSAgICAibWFzayIsIENUTEZMQUdfUkQsICYodGMtPnRjX2NvdW50ZXJfbWFzayksIDAsCisJICAg ICJtYXNrIGZvciBpbXBsZW1lbnRlZCBiaXRzIik7CisJU1lTQ1RMX0FERF9QUk9DKE5VTEwsIFNZ U0NUTF9DSElMRFJFTih0Y19yb290KSwgT0lEX0FVVE8sCisJICAgICJjb3VudGVyIiwgQ1RMVFlQ RV9VSU5UIHwgQ1RMRkxBR19SRCwgdGMsIHNpemVvZigqdGMpLAorCSAgICBzeXNjdGxfa2Vybl90 aW1lY291bnRlcl9nZXQsICJJVSIsICJjdXJyZW50IHRpbWVjb3VudGVyIHZhbHVlIik7CisJU1lT Q1RMX0FERF9QUk9DKE5VTEwsIFNZU0NUTF9DSElMRFJFTih0Y19yb290KSwgT0lEX0FVVE8sCisJ ICAgICJmcmVxdWVuY3kiLCBDVExUWVBFX1FVQUQgfCBDVExGTEFHX1JELCB0Yywgc2l6ZW9mKCp0 YyksCisJICAgICBzeXNjdGxfa2Vybl90aW1lY291bnRlcl9mcmVxLCAiSVUiLCAidGltZWNvdW50 ZXIgZnJlcXVlbmN5Iik7CisJU1lTQ1RMX0FERF9JTlQoTlVMTCwgU1lTQ1RMX0NISUxEUkVOKHRj X3Jvb3QpLCBPSURfQVVUTywKKwkgICAgInF1YWxpdHkiLCBDVExGTEFHX1JELCAmKHRjLT50Y19x dWFsaXR5KSwgMCwKKwkgICAgImdvb2RuZXNzIG9mIHRpbWUgY291bnRlciIpOworCS8qCiAJICog TmV2ZXIgYXV0b21hdGljYWxseSB1c2UgYSB0aW1lY291bnRlciB3aXRoIG5lZ2F0aXZlIHF1YWxp dHkuCiAJICogRXZlbiB0aG91Z2ggd2UgcnVuIG9uIHRoZSBkdW1teSBjb3VudGVyLCBzd2l0Y2hp bmcgaGVyZSBtYXkgYmUKIAkgKiB3b3JzZSBzaW5jZSB0aGlzIHRpbWVjb3VudGVyIG1heSBub3Qg YmUgbW9ub3Rvbm91cy4KQEAgLTM2MCwxMiArNDAyLDE0IEBACiB2b2lkCiB0Y19zZXRjbG9jayhz dHJ1Y3QgdGltZXNwZWMgKnRzKQogewotCXN0cnVjdCB0aW1lc3BlYyB0czI7CisJc3RydWN0IHRp bWVzcGVjIHRiZWYsIHRhZnQ7CiAJc3RydWN0IGJpbnRpbWUgYnQsIGJ0MjsKIAorCWNwdV90aWNr X2NhbGlicmF0ZSgxKTsKIAluc2V0Y2xvY2srKzsKLQliaW51cHRpbWUoJmJ0Mik7CisJbmFub3Rp bWUoJnRiZWYpOwogCXRpbWVzcGVjMmJpbnRpbWUodHMsICZidCk7CisJYmludXB0aW1lKCZidDIp OwogCWJpbnRpbWVfc3ViKCZidCwgJmJ0Mik7CiAJYmludGltZV9hZGQoJmJ0MiwgJmJvb3R0aW1l YmluKTsKIAlib290dGltZWJpbiA9IGJ0OwpAQCAtMzczLDEyICs0MTcsMTUgQEAKIAogCS8qIFhY WCBmaWRkbGUgYWxsIHRoZSBsaXR0bGUgY3JpbmtseSBiaXRzIGFyb3VuZCB0aGUgZmlvcmRzLi4u ICovCiAJdGNfd2luZHVwKCk7CisJbmFub3RpbWUoJnRhZnQpOwogCWlmICh0aW1lc3RlcHdhcm5p bmdzKSB7Ci0JCWJpbnRpbWUydGltZXNwZWMoJmJ0MiwgJnRzMik7Ci0JCWxvZyhMT0dfSU5GTywg IlRpbWUgc3RlcHBlZCBmcm9tICVqZC4lMDlsZCB0byAlamQuJTA5bGRcbiIsCi0JCSAgICAoaW50 bWF4X3QpdHMyLnR2X3NlYywgdHMyLnR2X25zZWMsCisJCWxvZyhMT0dfSU5GTywKKwkJICAgICJU aW1lIHN0ZXBwZWQgZnJvbSAlamQuJTA5bGQgdG8gJWpkLiUwOWxkICglamQuJTA5bGQpXG4iLAor CQkgICAgKGludG1heF90KXRiZWYudHZfc2VjLCB0YmVmLnR2X25zZWMsCisJCSAgICAoaW50bWF4 X3QpdGFmdC50dl9zZWMsIHRhZnQudHZfbnNlYywKIAkJICAgIChpbnRtYXhfdCl0cy0+dHZfc2Vj LCB0cy0+dHZfbnNlYyk7CiAJfQorCWNwdV90aWNrX2NhbGlicmF0ZSgxKTsKIH0KIAogLyoKQEAg LTQ3NSw4ICs1MjIsOCBAQAogCSAqCSB4ID0gYSAqIDJeMzIgLyAxMF45ID0gYSAqIDQuMjk0OTY3 Mjk2CiAJICoKIAkgKiBUaGUgcmFuZ2Ugb2YgdGhfYWRqdXN0bWVudCBpcyArLy0gNTAwMFBQTSBz byBpbnNpZGUgYSA2NGJpdCBpbnQKLQkgKiB3ZSBjYW4gb25seSBtdWx0aXBseSBieSBhYm91dCA4 NTAgd2l0aG91dCBvdmVyZmxvd2luZywgYnV0IHRoYXQKLQkgKiBsZWF2ZXMgc3VpdGFibHkgcHJl Y2lzZSBmcmFjdGlvbnMgZm9yIG11bHRpcGx5IGJlZm9yZSBkaXZpZGUuCisJICogd2UgY2FuIG9u bHkgbXVsdGlwbHkgYnkgYWJvdXQgODUwIHdpdGhvdXQgb3ZlcmZsb3dpbmcsIHRoYXQKKwkgKiBs ZWF2ZXMgbm8gc3VpdGFibHkgcHJlY2lzZSBmcmFjdGlvbnMgZm9yIG11bHRpcGx5IGJlZm9yZSBk aXZpZGUuCiAJICoKIAkgKiBEaXZpZGUgYmVmb3JlIG11bHRpcGx5IHdpdGggYSBmcmFjdGlvbiBv ZiAyMTk5LzUxMiByZXN1bHRzIGluIGEKIAkgKiBzeXN0ZW1hdGljIHVuZGVyY29tcGVuc2F0aW9u IG9mIDEwUFBNIG9mIHRoX2FkanVzdG1lbnQuICBPbiBhCkBAIC03NDksMTEgKzc5NiwxNiBAQAog dGNfdGlja3RvY2sodm9pZCkKIHsKIAlzdGF0aWMgaW50IGNvdW50OworCXN0YXRpYyB0aW1lX3Qg bGFzdF9jYWxpYjsKIAogCWlmICgrK2NvdW50IDwgdGNfdGljaykKIAkJcmV0dXJuOwogCWNvdW50 ID0gMDsKIAl0Y193aW5kdXAoKTsKKwlpZiAodGltZV91cHRpbWUgIT0gbGFzdF9jYWxpYiAmJiAh KHRpbWVfdXB0aW1lICYgMHhmKSkgeworCQljcHVfdGlja19jYWxpYnJhdGUoMCk7CisJCWxhc3Rf Y2FsaWIgPSB0aW1lX3VwdGltZTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC03ODIsMyArODM0 LDE0NyBAQAogfQogCiBTWVNJTklUKHRpbWVjb3VudGVyLCBTSV9TVUJfQ0xPQ0tTLCBTSV9PUkRF Ul9TRUNPTkQsIGluaXR0aW1lY291bnRlciwgTlVMTCkKKworLyogQ3B1IHRpY2sgaGFuZGxpbmcg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0 YXRpYyBpbnQgY3B1X3RpY2tfdmFyaWFibGU7CitzdGF0aWMgdWludDY0X3QJY3B1X3RpY2tfZnJl cXVlbmN5OworCitzdGF0aWMgdWludDY0X3QKK3RjX2NwdV90aWNrcyh2b2lkKQoreworCXN0YXRp YyB1aW50NjRfdCBiYXNlOworCXN0YXRpYyB1bnNpZ25lZCBsYXN0OworCXVuc2lnbmVkIHU7CisJ c3RydWN0IHRpbWVjb3VudGVyICp0YzsKKworCXRjID0gdGltZWhhbmRzLT50aF9jb3VudGVyOwor CXUgPSB0Yy0+dGNfZ2V0X3RpbWVjb3VudCh0YykgJiB0Yy0+dGNfY291bnRlcl9tYXNrOworCWlm ICh1IDwgbGFzdCkKKwkJYmFzZSArPSAodWludDY0X3QpdGMtPnRjX2NvdW50ZXJfbWFzayArIDE7 CisJbGFzdCA9IHU7CisJcmV0dXJuICh1ICsgYmFzZSk7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0 aW9uIGdldHMgY2FsbGVkIGV2ZXIgMTYgc2Vjb25kcyBvbiBvbmx5IG9uZSBkZXNpZ25hdGVkCisg KiBDUFUgaW4gdGhlIHN5c3RlbSBmcm9tIGhhcmRjbG9jaygpIHZpYSB0Y190aWNrdG9jaygpLgor ICoKKyAqIFdoZW5ldmVyIHRoZSByZWFsIHRpbWUgY2xvY2sgaXMgc3RlcHBlZCB3ZSBnZXQgY2Fs bGVkIHdpdGggcmVzZXQ9MQorICogdG8gbWFrZSBzdXJlIHdlIGhhbmRsZSBzdXNwZW5kL3Jlc3Vt ZSBhbmQgc2ltaWxhciBldmVudHMgY29ycmVjdGx5LgorICovCisKK3N0YXRpYyB2b2lkCitjcHVf dGlja19jYWxpYnJhdGUoaW50IHJlc2V0KQoreworCXN0YXRpYyB1aW50NjRfdCBjX2xhc3Q7CisJ dWludDY0X3QgY190aGlzLCBjX2RlbHRhOworCXN0YXRpYyBzdHJ1Y3QgYmludGltZSAgdF9sYXN0 OworCXN0cnVjdCBiaW50aW1lIHRfdGhpcywgdF9kZWx0YTsKKwl1aW50MzJfdCBkaXZpOworCisJ aWYgKHJlc2V0KSB7CisJCS8qIFRoZSBjbG9jayB3YXMgc3RlcHBlZCwgYWJvcnQgJiByZXNldCAq LworCQl0X2xhc3Quc2VjID0gMDsKKwkJcmV0dXJuOworCX0KKworCS8qIHdlIGRvbid0IGNhbGli cmF0ZSBmaXhlZCByYXRlIGNwdXRpY2tzICovCisJaWYgKCFjcHVfdGlja192YXJpYWJsZSkKKwkJ cmV0dXJuOworCisJZ2V0YmludXB0aW1lKCZ0X3RoaXMpOworCWNfdGhpcyA9IGNwdV90aWNrcygp OworCWlmICh0X2xhc3Quc2VjICE9IDApIHsKKwkJY19kZWx0YSA9IGNfdGhpcyAtIGNfbGFzdDsK KwkJdF9kZWx0YSA9IHRfdGhpczsKKwkJYmludGltZV9zdWIoJnRfZGVsdGEsICZ0X2xhc3QpOwor CQkvKgorCQkgKiBWYWxpZGF0ZSB0aGF0IDE2ICsvLSAxLzI1NiBzZWNvbmRzIHBhc3NlZC4gCisJ CSAqIEFmdGVyIGRpdmlzaW9uIGJ5IDE2IHRoaXMgZ2l2ZXMgdXMgYSBwcmVjaXNpb24gb2YKKwkJ ICogcm91Z2hseSAyNTBQUE0gd2hpY2ggaXMgc3VmZmljaWVudAorCQkgKi8KKwkJaWYgKHRfZGVs dGEuc2VjID4gMTYgfHwgKAorCQkgICAgdF9kZWx0YS5zZWMgPT0gMTYgJiYgdF9kZWx0YS5mcmFj ID49ICgweDAxTEwgPDwgNTYpKSkgeworCQkJLyogdG9vIGxvbmcgKi8KKwkJCWlmIChib290dmVy Ym9zZSkKKwkJCQlwcmludGYoIiVqdS4lMDE2anggdG9vIGxvbmdcbiIsCisJCQkJICAgICh1aW50 bWF4X3QpdF9kZWx0YS5zZWMsCisJCQkJICAgICh1aW50bWF4X3QpdF9kZWx0YS5mcmFjKTsKKwkJ fSBlbHNlIGlmICh0X2RlbHRhLnNlYyA8IDE1IHx8CisJCSAgICAodF9kZWx0YS5zZWMgPT0gMTUg JiYgdF9kZWx0YS5mcmFjIDw9ICgweGZmTEwgPDwgNTYpKSkgeworCQkJLyogdG9vIHNob3J0ICov CisJCQlpZiAoYm9vdHZlcmJvc2UpCisJCQkJcHJpbnRmKCIlanUuJTAxNmp4IHRvbyBzaG9ydFxu IiwKKwkJCQkgICAgKHVpbnRtYXhfdCl0X2RlbHRhLnNlYywKKwkJCQkgICAgKHVpbnRtYXhfdCl0 X2RlbHRhLmZyYWMpOworCQl9IGVsc2UgeworCQkJLyoganVzdCByaWdodCAqLworCQkJLyoKKwkJ CSAqIEhlYWRyb29tOgorCQkJICogCTJeKDY0LTIwKSAvIDE2W3NdID0KKwkJCSAqIAkyXig0NCkg LyAxNltzXSA9CisJCQkgKiAJMTcuNTkyLjE4Ni4wNDQuNDE2IC8gMTYgPQorCQkJICogCTEuMDk5 LjUxMS42MjcuNzc2IFtIel0KKwkJCSAqLworCQkJZGl2aSA9IHRfZGVsdGEuc2VjIDw8IDIwOwor CQkJZGl2aSB8PSB0X2RlbHRhLmZyYWMgPj4gKDY0IC0gMjApOworCQkJY19kZWx0YSA8PD0gMjA7 CisJCQljX2RlbHRhIC89IGRpdmk7CisJCQlpZiAoY19kZWx0YSAgPiBjcHVfdGlja19mcmVxdWVu Y3kpIHsKKwkJCQlpZiAoMCAmJiBib290dmVyYm9zZSkKKwkJCQkJcHJpbnRmKCJjcHVfdGljayBp bmNyZWFzZWQgdG8gJWp1IEh6XG4iLAorCQkJCQkgICAgY19kZWx0YSk7CisJCQkJY3B1X3RpY2tf ZnJlcXVlbmN5ID0gY19kZWx0YTsKKwkJCX0KKwkJfQorCX0KKwljX2xhc3QgPSBjX3RoaXM7CisJ dF9sYXN0ID0gdF90aGlzOworfQorCit2b2lkCitzZXRfY3B1dGlja2VyKGNwdV90aWNrX2YgKmZ1 bmMsIHVpbnQ2NF90IGZyZXEsIHVuc2lnbmVkIHZhcikKK3sKKworCWlmIChmdW5jID09IE5VTEwp IHsKKwkJY3B1X3RpY2tzID0gdGNfY3B1X3RpY2tzOworCX0gZWxzZSB7CisJCWNwdV90aWNrX2Zy ZXF1ZW5jeSA9IGZyZXE7CisJCWNwdV90aWNrX3ZhcmlhYmxlID0gdmFyOworCQljcHVfdGlja3Mg PSBmdW5jOworCX0KK30KKwordWludDY0X3QKK2NwdV90aWNrcmF0ZSh2b2lkKQoreworCisJaWYg KGNwdV90aWNrcyA9PSB0Y19jcHVfdGlja3MpIAorCQlyZXR1cm4gKHRjX2dldGZyZXF1ZW5jeSgp KTsKKwlyZXR1cm4gKGNwdV90aWNrX2ZyZXF1ZW5jeSk7Cit9CisKKy8qCisgKiBXZSBuZWVkIHRv IGJlIHNsaWdodGx5IGNhcmVmdWwgY29udmVydGluZyBjcHV0aWNrcyB0byBtaWNyb3NlY29uZHMu CisgKiBUaGVyZSBpcyBwbGVudHkgb2YgbWFyZ2luIGluIDY0IGJpdHMgb2YgbWljcm9zZWNvbmRz IChoYWxmIGEgbWlsbGlvbgorICogeWVhcnMpIGFuZCBpbiA2NCBiaXRzIGF0IDQgR0h6ICgxNDYg eWVhcnMpLCBidXQgaWYgd2UgZG8gYSBtdWx0aXBseQorICogYmVmb3JlIGRpdmlkZSBjb252ZXJz aW9uICh0byByZXRhaW4gcHJlY2lzaW9uKSB3ZSBmaW5kIHRoYXQgdGhlCisgKiBtYXJnaW4gc2hy aW5rcyB0byAxLjUgaG91cnMgKG9uZSBtaWxsaW9udGggb2YgMTQ2eSkuCisgKiBXaXRoIGEgdGhy ZWUgcHJvbmcgYXBwcm9hY2ggd2UgbmV2ZXIgbG9zZSBzaWduaWZpY2FudCBiaXRzLCBubworICog bWF0dGVyIHdoYXQgdGhlIGNwdXRpY2sgcmF0ZSBhbmQgbGVuZ3RoIG9mIHRpbWVpbnRlcnZhbCBp cy4KKyAqLworCit1aW50NjRfdAorY3B1dGljazJ1c2VjKHVpbnQ2NF90IHRpY2spCit7CisKKwlp ZiAodGljayA+IDE4NDQ2NzQ0MDczNzA5NTUxTEwpCQkvKiBmbG9vcigyXjY0IC8gMTAwMCkgKi8K KwkJcmV0dXJuICh0aWNrIC8gKGNwdV90aWNrcmF0ZSgpIC8gMTAwMDAwMExMKSk7CisJZWxzZSBp ZiAodGljayA+IDE4NDQ2NzQ0MDczNzA5TEwpCS8qIGZsb29yKDJeNjQgLyAxMDAwMDAwKSAqLwor CQlyZXR1cm4gKCh0aWNrICogMTAwMExMKSAvIChjcHVfdGlja3JhdGUoKSAvIDEwMDBMTCkpOwor CWVsc2UKKwkJcmV0dXJuICgodGljayAqIDEwMDAwMDBMTCkgLyBjcHVfdGlja3JhdGUoKSk7Cit9 CisKK2NwdV90aWNrX2YJKmNwdV90aWNrcyA9IHRjX2NwdV90aWNrczsKSW5kZXg6IC4vc3lzL2tl cm4va2Vybl9zeW5jaC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9r ZXJuL2tlcm5fc3luY2guYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNzAuMi42CmRpZmYgLXUg LXIxLjI3MC4yLjYga2Vybl9zeW5jaC5jCi0tLSAuL3N5cy9rZXJuL2tlcm5fc3luY2guYwk2IEp1 bCAyMDA2IDA4OjMyOjUwIC0wMDAwCTEuMjcwLjIuNgorKysgLi9zeXMva2Vybi9rZXJuX3N5bmNo LmMJMjQgT2N0IDIwMDYgMDk6NDY6MDYgLTAwMDAKQEAgLTUzNywxNCArNTM3LDcgQEAKIGludAog eWllbGQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCB5aWVsZF9hcmdzICp1YXApCiB7Ci0Jc3Ry dWN0IGtzZWdycCAqa2c7Ci0KLQlrZyA9IHRkLT50ZF9rc2VncnA7CiAJbXR4X2Fzc2VydCgmR2lh bnQsIE1BX05PVE9XTkVEKTsKLQltdHhfbG9ja19zcGluKCZzY2hlZF9sb2NrKTsKLQlzY2hlZF9w cmlvKHRkLCBQUklfTUFYX1RJTUVTSEFSRSk7Ci0JbWlfc3dpdGNoKFNXX1ZPTCwgTlVMTCk7Ci0J bXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsKLQl0ZC0+dGRfcmV0dmFsWzBdID0gMDsKKwlz Y2hlZF9yZWxpbnF1aXNoKHRkKTsKIAlyZXR1cm4gKDApOwogfQpJbmRleDogLi9zeXMvY29uZi9v cHRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9jb25mL29wdGlv bnMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTEwLjIuMTkKZGlmZiAtdSAtcjEuNTEwLjIuMTkg b3B0aW9ucwotLS0gLi9zeXMvY29uZi9vcHRpb25zCTIgU2VwIDIwMDYgMTM6MTI6MDggLTAwMDAJ MS41MTAuMi4xOQorKysgLi9zeXMvY29uZi9vcHRpb25zCTI0IE9jdCAyMDA2IDA5OjQ2OjA5IC0w MDAwCkBAIC0xMjcsNiArMTI3LDcgQEAKIFBVQ19GQVNUSU5UUglvcHRfcHVjLmgKIFFVT1RBCiBT Q0hFRF80QlNECW9wdF9zY2hlZC5oCitTQ0hFRF9DT1JFCW9wdF9zY2hlZC5oCiBTQ0hFRF9VTEUJ b3B0X3NjaGVkLmgKIFNIT1dfQlVTWUJVRlMKIFNMRUVQUVVFVUVfUFJPRklMSU5HCkluZGV4OiAu L3N5cy9jb25mL2ZpbGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9j b25mL2ZpbGVzLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwMzEuMi40NQpkaWZmIC11IC1yMS4x MDMxLjIuNDUgZmlsZXMKLS0tIC4vc3lzL2NvbmYvZmlsZXMJMjEgT2N0IDIwMDYgMDU6Mjg6NTAg LTAwMDAJMS4xMDMxLjIuNDUKKysrIC4vc3lzL2NvbmYvZmlsZXMJMjQgT2N0IDIwMDYgMDk6NDY6 MTIgLTAwMDAKQEAgLTEzMDIsNiArMTMwMiw3IEBACiBrZXJuL21kNGMuYwkJCW9wdGlvbmFsIG5l dHNtYgoga2Vybi9tZDVjLmMJCQlzdGFuZGFyZAoga2Vybi9zY2hlZF80YnNkLmMJCW9wdGlvbmFs IHNjaGVkXzRic2QKK2tlcm4vc2NoZWRfY29yZS5jCQlvcHRpb25hbCBzY2hlZF9jb3JlCiBrZXJu L3NjaGVkX3VsZS5jCQlvcHRpb25hbCBzY2hlZF91bGUKIGtlcm4vc3Vicl9hdXRvY29uZi5jCQlz dGFuZGFyZAoga2Vybi9zdWJyX2JsaXN0LmMJCXN0YW5kYXJkCkluZGV4OiAuL3N5cy9wb3NpeDQv a3NjaGVkLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL3Bvc2l4NC9r c2NoZWQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNgpkaWZmIC11IC1yMS4yNiBrc2NoZWQu YwotLS0gLi9zeXMvcG9zaXg0L2tzY2hlZC5jCTcgSmFuIDIwMDUgMDI6Mjk6MTkgLTAwMDAJMS4y NgorKysgLi9zeXMvcG9zaXg0L2tzY2hlZC5jCTI0IE9jdCAyMDA2IDA5OjQ2OjE1IC0wMDAwCkBA IC0yNDYsOSArMjQ2LDcgQEAKICAqLwogaW50IGtzY2hlZF95aWVsZChyZWdpc3Rlcl90ICpyZXQs IHN0cnVjdCBrc2NoZWQgKmtzY2hlZCkKIHsKLQltdHhfbG9ja19zcGluKCZzY2hlZF9sb2NrKTsK LQljdXJ0aHJlYWQtPnRkX2ZsYWdzIHw9IFRERl9ORUVEUkVTQ0hFRDsKLQltdHhfdW5sb2NrX3Nw aW4oJnNjaGVkX2xvY2spOworCXNjaGVkX3JlbGlucXVpc2goY3VydGhyZWFkKTsKIAlyZXR1cm4g MDsKIH0KIAo= ------=_Part_4050_22482066.1161683446506-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 11:21:48 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from localhost.my.domain (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id CB83F16A403; Tue, 24 Oct 2006 11:21:47 +0000 (UTC) (envelope-from davidxu@freebsd.org) From: David Xu To: freebsd-hackers@freebsd.org Date: Tue, 24 Oct 2006 19:21:42 +0800 User-Agent: KMail/1.8.2 References: <9c6e52b10610240231h72fdb7a9xec1078e0937ed24b@mail.gmail.com> In-Reply-To: <9c6e52b10610240231h72fdb7a9xec1078e0937ed24b@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200610241921.42772.davidxu@freebsd.org> Cc: "Stepan A. Baranov" Subject: Re: scheduler CORE for RELENG_6 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 11:21:48 -0000 On Tuesday 24 October 2006 17:31, Stepan A. Baranov wrote: > Hello, > > I prepared patch to port scheduler from HEAD to RELENG_6. I applied > this patch for my workstation and scheduler CORE works fine. > > After applying patch you can say: > options SCHED_CORE # CORE scheduler > in your KERN CONF file and rebuild your kernel. > > Please, test it and fix it. > > Stepan Baranov. Thanks, but I feel the scheduler is still very experiment, there are lots of work to do, I would not like to see it in RELENG_6 and cause lots of questions which I am not ready to answer, I am finding spare time to work on it again. ;-) Regards, David Xu From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 11:38:15 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2F44A16A403; Tue, 24 Oct 2006 11:38:15 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from smtp5-g19.free.fr (smtp5-g19.free.fr [212.27.42.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4F74343D5E; Tue, 24 Oct 2006 11:38:14 +0000 (GMT) (envelope-from flz@FreeBSD.org) Received: from smtp.xbsd.org (unknown [82.233.2.192]) by smtp5-g19.free.fr (Postfix) with ESMTP id 3D4611930D; Tue, 24 Oct 2006 13:38:13 +0200 (CEST) Received: from localhost (localhost.xbsd.org [127.0.0.1]) by smtp.xbsd.org (Postfix) with ESMTP id 44D6411A52; Tue, 24 Oct 2006 13:38:12 +0200 (CEST) Received: from smtp.xbsd.org ([127.0.0.1]) by localhost (srv1.xbsd.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 64257-06; Tue, 24 Oct 2006 13:38:07 +0200 (CEST) Received: from [193.95.134.156] (mayday.esat.net [193.95.134.156]) by smtp.xbsd.org (Postfix) with ESMTP id 8A0D11142A; Tue, 24 Oct 2006 13:38:06 +0200 (CEST) From: Florent Thoumie To: Jeremie Le Hen In-Reply-To: <20061022153436.GW53114@obiwan.tataz.chchile.org> References: <20061020150848.GQ53114@obiwan.tataz.chchile.org> <20061020191332.GC59856@rambler-co.ru> <20061021162635.GS53114@obiwan.tataz.chchile.org> <20061021172533.GA69551@rambler-co.ru> <20061022153436.GW53114@obiwan.tataz.chchile.org> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-9wFMlG1ZSFBA1f41QO6H" Date: Tue, 24 Oct 2006 12:38:04 +0100 Message-Id: <1161689884.16172.9.camel@mayday.esat.net> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 FreeBSD GNOME Team Port X-Virus-Scanned: amavisd-new at xbsd.org Cc: freebsd-hackers@FreeBSD.org, Ruslan Ermilov Subject: Re: src.conf(5) seems to affect ports build X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 11:38:15 -0000 --=-9wFMlG1ZSFBA1f41QO6H Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Sun, 2006-10-22 at 17:34 +0200, Jeremie Le Hen wrote: > Ruslan, >=20 > On Sat, Oct 21, 2006 at 09:25:33PM +0400, Ruslan Ermilov wrote: > > > Also, your patch avoids performing the WITH(OUT)_* stuff for ports in > > > order to prevent from polluting the namespace. If there is to be > > > some WITH(OUT)_* knobs which leads to CFLAGS modification in the futu= re > > > (I'm thinking about ProPolice with the upcoming GCC 4.1), wouldn't it > > > be worth benefiting this framework for ports ? > > > > It avoids only /etc/src.conf stuff when running bsd.port.mk; if you put > > WITH(OUT)_* in /etc/make.conf it will still be picked up. >=20 > Yes indeed, but MK_FOO won't be set and this would require to either > duplicate the code that modifies CFLAGS, or at least test for MK_FOO > or WITH_FOO at the same time. >=20 > Let me show you an example. >=20 > I have an additional that is included from both bsd.sys.mk > and bsd.port.mk: >=20 > % .if ${MK_SSP} !=3D "no" > % SSP_CFLAGS ?=3D -fstack-protector > % CFLAGS +=3D ${SSP_CFLAGS} > % . if defined(WARNS) && ${WARNS} >=3D 7 && !empty(SSP_CFLAGS) > % CWARNFLAGS +=3D -Wstack-protector > % . endif > % .endif >=20 > Currently it is thus quite useful to use MK_SSP when this file is > included from bsd.ports.mk. With your whole patch I would have to > either duplicate these bits in bsd.ports.mk or turn the condition to > something like: >=20 > % .if (defined(MK_SSP) && ${MK_SSP} !=3D "no") || defined(WITH_SSP) >=20 > What do you advice me to do ? Duplicate it in make.conf at the moment. When prime time comes, send a patch against bsd.port.mk to set CFLAGS accordingly when WITH_SSP is set. I don't know if this will be accepted, but it certainly is better than having src.conf influence bsd.port.mk. --=20 Florent Thoumie flz@FreeBSD.org FreeBSD Committer --=-9wFMlG1ZSFBA1f41QO6H Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (FreeBSD) iD8DBQBFPfscMxEkbVFH3PQRAgxRAJ9h/TIfIMBwP7l0pUBPpIjYS71E6QCeNvHg KiDTOH8BEYyexmlrXkLywQM= =kxHG -----END PGP SIGNATURE----- --=-9wFMlG1ZSFBA1f41QO6H-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 13:03:32 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2657B16A412 for ; Tue, 24 Oct 2006 13:03:32 +0000 (UTC) (envelope-from garyj@jennejohn.org) Received: from mail08b.verio.de (mail08b.verio.de [213.198.55.74]) by mx1.FreeBSD.org (Postfix) with SMTP id 7A4CF43D46 for ; Tue, 24 Oct 2006 13:03:22 +0000 (GMT) (envelope-from garyj@jennejohn.org) Received: from mx51.stngva01.us.mxservers.net (204.202.242.110) by mail08b.verio.de (RS ver 1.0.95vs) with SMTP id 1-0394514966; Tue, 24 Oct 2006 15:03:20 +0200 (CEST) Received: from www.jennejohn.org [213.198.5.174] (EHLO peedub.jennejohn.org) by mx51.stngva01.us.mxservers.net (mxl_mta-1.3.8-10p4) with ESMTP id 9ce0e354.1550.003.mx51.stngva01.us.mxservers.net; Tue, 24 Oct 2006 09:02:01 -0400 (EDT) Received: from jennejohn.org (localhost [127.0.0.1]) by peedub.jennejohn.org (8.13.8/8.11.6) with ESMTP id k9OD2UsA001893; Tue, 24 Oct 2006 15:02:30 +0200 (CEST) (envelope-from garyj@jennejohn.org) Message-Id: <200610241302.k9OD2UsA001893@peedub.jennejohn.org> X-Mailer: exmh version 2.7.2 01/07/2005 with nmh-1.0.4 To: David Xu From: Gary Jenneohn In-Reply-To: Message from David Xu of "Tue, 24 Oct 2006 19:21:42 +0800." <200610241921.42772.davidxu@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 24 Oct 2006 15:02:30 +0200 Sender: garyj@jennejohn.org X-Spam: [F=0.0100000000; heur=0.500(-19800); stat=0.010; spamtraq-heur=0.500(2006102401)] X-MAIL-FROM: X-SOURCE-IP: [213.198.5.174] X-Loop-Detect: 1 X-DistLoop-Detect: 1 Cc: freebsd-hackers@freebsd.org, "Stepan A. Baranov" Subject: Re: scheduler CORE for RELENG_6 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 13:03:32 -0000 David Xu writes: > On Tuesday 24 October 2006 17:31, Stepan A. Baranov wrote: > > Hello, > > > > I prepared patch to port scheduler from HEAD to RELENG_6. I applied > > this patch for my workstation and scheduler CORE works fine. > > > > After applying patch you can say: > > options SCHED_CORE # CORE scheduler > > in your KERN CONF file and rebuild your kernel. > > > > Please, test it and fix it. > > > > Stepan Baranov. > > Thanks, but I feel the scheduler is still very experiment, there are lots of > work to do, I would not like to see it in RELENG_6 and cause lots of > questions which I am not ready to answer, I am finding spare time to > work on it again. ;-) > Really? I've been using it since it was introduced and find it to be quite good on my dual-core AMD64 machine running in i386 mode. --- Gary Jennejohn / garyjATjennejohnDOTorg gjATfreebsdDOTorg garyjATdenxDOTde From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 13:10:02 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2848016A416 for ; Tue, 24 Oct 2006 13:10:02 +0000 (UTC) (envelope-from freebsd-hackers@m.gmane.org) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 89A8843D58 for ; Tue, 24 Oct 2006 13:09:57 +0000 (GMT) (envelope-from freebsd-hackers@m.gmane.org) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1GcM2R-0004TY-R0 for freebsd-hackers@freebsd.org; Tue, 24 Oct 2006 15:09:52 +0200 Received: from lara.cc.fer.hr ([161.53.72.113]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 24 Oct 2006 15:09:51 +0200 Received: from ivoras by lara.cc.fer.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 24 Oct 2006 15:09:51 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-hackers@freebsd.org From: Ivan Voras Date: Tue, 24 Oct 2006 15:09:42 +0200 Lines: 6 Message-ID: References: <200610241302.k9OD2UsA001893@peedub.jennejohn.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: lara.cc.fer.hr User-Agent: Thunderbird 1.5.0.4 (X11/20060625) In-Reply-To: <200610241302.k9OD2UsA001893@peedub.jennejohn.org> Sender: news Subject: Re: scheduler CORE for RELENG_6 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 13:10:02 -0000 Gary Jenneohn wrote: > Really? I've been using it since it was introduced and find it to be quite > good on my dual-core AMD64 machine running in i386 mode. Any benchmarks, or description of what's improved? :) From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 13:52:23 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A10116A40F for ; Tue, 24 Oct 2006 13:52:23 +0000 (UTC) (envelope-from ru@rambler-co.ru) Received: from relay0.rambler.ru (relay0.rambler.ru [81.19.66.187]) by mx1.FreeBSD.org (Postfix) with ESMTP id F35BF43D8C for ; Tue, 24 Oct 2006 13:51:41 +0000 (GMT) (envelope-from ru@rambler-co.ru) Received: from relay0.rambler.ru (localhost [127.0.0.1]) by relay0.rambler.ru (Postfix) with ESMTP id B65936411; Tue, 24 Oct 2006 17:51:33 +0400 (MSD) Received: from edoofus.park.rambler.ru (unknown [81.19.65.108]) by relay0.rambler.ru (Postfix) with ESMTP id DE1DB6012; Tue, 24 Oct 2006 17:48:00 +0400 (MSD) Received: (from ru@localhost) by edoofus.park.rambler.ru (8.13.8/8.13.8) id k9ODm0r7021037; Tue, 24 Oct 2006 17:48:00 +0400 (MSD) (envelope-from ru) Date: Tue, 24 Oct 2006 17:48:00 +0400 From: Ruslan Ermilov To: Jeremie Le Hen Message-ID: <20061024134800.GB20819@rambler-co.ru> References: <20061020150848.GQ53114@obiwan.tataz.chchile.org> <20061020191332.GC59856@rambler-co.ru> <20061021162635.GS53114@obiwan.tataz.chchile.org> <20061021172533.GA69551@rambler-co.ru> <20061022153436.GW53114@obiwan.tataz.chchile.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="FkmkrVfFsRoUs1wW" Content-Disposition: inline In-Reply-To: <20061022153436.GW53114@obiwan.tataz.chchile.org> User-Agent: Mutt/1.5.13 (2006-08-11) X-Virus-Scanned: No virus found Cc: freebsd-hackers@FreeBSD.org Subject: Re: src.conf(5) seems to affect ports build X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 13:52:23 -0000 --FkmkrVfFsRoUs1wW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Oct 22, 2006 at 05:34:36PM +0200, Jeremie Le Hen wrote: > Ruslan, >=20 > On Sat, Oct 21, 2006 at 09:25:33PM +0400, Ruslan Ermilov wrote: > > > Also, your patch avoids performing the WITH(OUT)_* stuff for ports in > > > order to prevent from polluting the namespace. If there is to be > > > some WITH(OUT)_* knobs which leads to CFLAGS modification in the futu= re > > > (I'm thinking about ProPolice with the upcoming GCC 4.1), wouldn't it > > > be worth benefiting this framework for ports ? > > > > It avoids only /etc/src.conf stuff when running bsd.port.mk; if you put > > WITH(OUT)_* in /etc/make.conf it will still be picked up. >=20 > Yes indeed, but MK_FOO won't be set and this would require to either > duplicate the code that modifies CFLAGS, or at least test for MK_FOO > or WITH_FOO at the same time. >=20 > Let me show you an example. >=20 > I have an additional that is included from both bsd.sys.mk > and bsd.port.mk: >=20 > % .if ${MK_SSP} !=3D "no" > % SSP_CFLAGS ?=3D -fstack-protector > % CFLAGS +=3D ${SSP_CFLAGS} > % . if defined(WARNS) && ${WARNS} >=3D 7 && !empty(SSP_CFLAGS) > % CWARNFLAGS +=3D -Wstack-protector > % . endif > % .endif >=20 > Currently it is thus quite useful to use MK_SSP when this file is > included from bsd.ports.mk. With your whole patch I would have to > either duplicate these bits in bsd.ports.mk or turn the condition to > something like: >=20 > % .if (defined(MK_SSP) && ${MK_SSP} !=3D "no") || defined(WITH_SSP) >=20 > What do you advice me to do ? >=20 I still don't understand why my patch created a problem for you. This option is not in bsd.own.mk, so it's not covered by my patch. All my patch does is "don't process /etc/src.conf" which is entirely for src/. So, you can continue to use your bsd.ssp.mk as before, and my patch shouldn't influence it. If you want to really mimic the standard behavior, then bsd.ssp.mk should check the (WITH|WITHOUT)_SSP set by a user, and set MK_SSP to "yes/no", accordingly; setting MK_SSP by a user shouldn't be allowed or supported. You then set WITH_SSP=3D in /etc/make.conf (or in /etc/src.conf if you want it only for src/), or pass -DWITH_SSP on the make command line, and you're done. P.S. There has been a patch floating around that adds support for /etc/ports.conf. That would allow for clear separation: src.conf src/ only settings; ports.conf ports/ only settings; make.conf all-time settings, including when building src/ and ports/. Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --FkmkrVfFsRoUs1wW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFPhmQqRfpzJluFF4RAryIAJ9ZCa6ocrjaKQnOfbUBxs4CyL7LtACcDQl+ ieRRCJNJ2vUZQizv+gY3V5c= =91uV -----END PGP SIGNATURE----- --FkmkrVfFsRoUs1wW-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 14:41:28 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 996CE16A403 for ; Tue, 24 Oct 2006 14:41:28 +0000 (UTC) (envelope-from garyj@jennejohn.org) Received: from mail08b.verio.de (mail08b.verio.de [213.198.55.74]) by mx1.FreeBSD.org (Postfix) with SMTP id 8DB7D43DB2 for ; Tue, 24 Oct 2006 14:41:02 +0000 (GMT) (envelope-from garyj@jennejohn.org) Received: from mx81.stngva01.us.mxservers.net (204.202.242.152) by mail08b.verio.de (RS ver 1.0.95vs) with SMTP id 1-017401851; Tue, 24 Oct 2006 16:41:01 +0200 (CEST) Received: from www.jennejohn.org [213.198.5.174] (EHLO peedub.jennejohn.org) by mx81.stngva01.us.mxservers.net (mxl_mta-1.3.8-10p4) with ESMTP id 8a52e354.4228.184.mx81.stngva01.us.mxservers.net; Tue, 24 Oct 2006 10:39:36 -0400 (EDT) Received: from jennejohn.org (localhost [127.0.0.1]) by peedub.jennejohn.org (8.13.8/8.11.6) with ESMTP id k9OEeRv4002331; Tue, 24 Oct 2006 16:40:27 +0200 (CEST) (envelope-from garyj@jennejohn.org) Message-Id: <200610241440.k9OEeRv4002331@peedub.jennejohn.org> X-Mailer: exmh version 2.7.2 01/07/2005 with nmh-1.0.4 To: Ivan Voras In-reply-to: Your message of "Tue, 24 Oct 2006 15:09:42 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 24 Oct 2006 16:40:27 +0200 From: Gary Jennejohn X-Spam: [F=0.0263360148; heur=0.500(-9900); stat=0.026; spamtraq-heur=0.500(2006102404)] X-MAIL-FROM: X-SOURCE-IP: [213.198.5.174] X-Loop-Detect: 1 X-DistLoop-Detect: 1 Cc: freebsd-hackers@freebsd.org Subject: Re: scheduler CORE for RELENG_6 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gary Jennejohn List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 14:41:28 -0000 Ivan Voras writes: > Gary Jenneohn wrote: > > > Really? I've been using it since it was introduced and find it to be quite > > good on my dual-core AMD64 machine running in i386 mode. > > Any benchmarks, or description of what's improved? :) > No. I can only say that it doesn't "feel" any worse than SCHED_4BSD to me. Totally subjective, of course. --- Gary Jennejohn / garyjATjennejohnDOTorg gjATfreebsdDOTorg garyjATdenxDOTde From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 15:24:35 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6B99B16A4A7; Tue, 24 Oct 2006 15:24:35 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from smtp1-g19.free.fr (smtp1-g19.free.fr [212.27.42.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id 879E643DAE; Tue, 24 Oct 2006 15:23:57 +0000 (GMT) (envelope-from flz@FreeBSD.org) Received: from smtp.xbsd.org (unknown [82.233.2.192]) by smtp1-g19.free.fr (Postfix) with ESMTP id 59B8D3054; Tue, 24 Oct 2006 17:23:51 +0200 (CEST) Received: from localhost (localhost.xbsd.org [127.0.0.1]) by smtp.xbsd.org (Postfix) with ESMTP id A286711A81; Tue, 24 Oct 2006 17:23:50 +0200 (CEST) Received: from smtp.xbsd.org ([127.0.0.1]) by localhost (srv1.xbsd.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 65231-06; Tue, 24 Oct 2006 17:23:43 +0200 (CEST) Received: from [193.95.134.156] (mayday.esat.net [193.95.134.156]) by smtp.xbsd.org (Postfix) with ESMTP id A26F4119BF; Tue, 24 Oct 2006 17:23:42 +0200 (CEST) From: Florent Thoumie To: Ruslan Ermilov In-Reply-To: <20061024134800.GB20819@rambler-co.ru> References: <20061020150848.GQ53114@obiwan.tataz.chchile.org> <20061020191332.GC59856@rambler-co.ru> <20061021162635.GS53114@obiwan.tataz.chchile.org> <20061021172533.GA69551@rambler-co.ru> <20061022153436.GW53114@obiwan.tataz.chchile.org> <20061024134800.GB20819@rambler-co.ru> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-7CmOY925DK8Sg1yeLPjd" Date: Tue, 24 Oct 2006 16:23:40 +0100 Message-Id: <1161703420.16172.23.camel@mayday.esat.net> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 FreeBSD GNOME Team Port X-Virus-Scanned: amavisd-new at xbsd.org Cc: freebsd-hackers@FreeBSD.org, Jeremie Le Hen Subject: Re: src.conf(5) seems to affect ports build X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 15:24:35 -0000 --=-7CmOY925DK8Sg1yeLPjd Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2006-10-24 at 17:48 +0400, Ruslan Ermilov wrote: > On Sun, Oct 22, 2006 at 05:34:36PM +0200, Jeremie Le Hen wrote: > > Ruslan, > >=20 > > On Sat, Oct 21, 2006 at 09:25:33PM +0400, Ruslan Ermilov wrote: > > > > Also, your patch avoids performing the WITH(OUT)_* stuff for ports = in > > > > order to prevent from polluting the namespace. If there is to be > > > > some WITH(OUT)_* knobs which leads to CFLAGS modification in the fu= ture > > > > (I'm thinking about ProPolice with the upcoming GCC 4.1), wouldn't = it > > > > be worth benefiting this framework for ports ? > > > > > > It avoids only /etc/src.conf stuff when running bsd.port.mk; if you p= ut > > > WITH(OUT)_* in /etc/make.conf it will still be picked up. > >=20 > > Yes indeed, but MK_FOO won't be set and this would require to either > > duplicate the code that modifies CFLAGS, or at least test for MK_FOO > > or WITH_FOO at the same time. > >=20 > > Let me show you an example. > >=20 > > I have an additional that is included from both bsd.sys.mk > > and bsd.port.mk: > >=20 > > % .if ${MK_SSP} !=3D "no" > > % SSP_CFLAGS ?=3D -fstack-protector > > % CFLAGS +=3D ${SSP_CFLAGS} > > % . if defined(WARNS) && ${WARNS} >=3D 7 && !empty(SSP_CFLAGS) > > % CWARNFLAGS +=3D -Wstack-protector > > % . endif > > % .endif > >=20 > > Currently it is thus quite useful to use MK_SSP when this file is > > included from bsd.ports.mk. With your whole patch I would have to > > either duplicate these bits in bsd.ports.mk or turn the condition to > > something like: > >=20 > > % .if (defined(MK_SSP) && ${MK_SSP} !=3D "no") || defined(WITH_SSP) > >=20 > > What do you advice me to do ? > >=20 > I still don't understand why my patch created a problem for you. > This option is not in bsd.own.mk, so it's not covered by my patch. > All my patch does is "don't process /etc/src.conf" which is entirely > for src/. >=20 > So, you can continue to use your bsd.ssp.mk as before, and my patch > shouldn't influence it. >=20 > If you want to really mimic the standard behavior, then bsd.ssp.mk > should check the (WITH|WITHOUT)_SSP set by a user, and set MK_SSP > to "yes/no", accordingly; setting MK_SSP by a user shouldn't be > allowed or supported. You then set WITH_SSP=3D in /etc/make.conf > (or in /etc/src.conf if you want it only for src/), or pass > -DWITH_SSP on the make command line, and you're done. >=20 > P.S. There has been a patch floating around that adds support for > /etc/ports.conf. [...] that you sent :-) Could try to revive the thread with a new patch. --=20 Florent Thoumie flz@FreeBSD.org FreeBSD Committer --=-7CmOY925DK8Sg1yeLPjd Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (FreeBSD) iD8DBQBFPi/8MxEkbVFH3PQRAq/fAJwKofNUNJvxFDjc7qVL4lh2E4o3ogCcDaxu Lygtg3LRobEm1SLaJxsJTKk= =IKaO -----END PGP SIGNATURE----- --=-7CmOY925DK8Sg1yeLPjd-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 16:44:49 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E4C5B16A403; Tue, 24 Oct 2006 16:44:48 +0000 (UTC) (envelope-from ru@rambler-co.ru) Received: from relay0.rambler.ru (relay0.rambler.ru [81.19.66.187]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4652443D98; Tue, 24 Oct 2006 16:44:13 +0000 (GMT) (envelope-from ru@rambler-co.ru) Received: from relay0.rambler.ru (localhost [127.0.0.1]) by relay0.rambler.ru (Postfix) with ESMTP id 9CC865C53; Tue, 24 Oct 2006 20:44:10 +0400 (MSD) Received: from edoofus.park.rambler.ru (unknown [81.19.65.108]) by relay0.rambler.ru (Postfix) with ESMTP id 934085C4F; Tue, 24 Oct 2006 20:44:10 +0400 (MSD) Received: (from ru@localhost) by edoofus.park.rambler.ru (8.13.8/8.13.8) id k9OGiBCr040076; Tue, 24 Oct 2006 20:44:11 +0400 (MSD) (envelope-from ru) Date: Tue, 24 Oct 2006 20:44:11 +0400 From: Ruslan Ermilov To: Florent Thoumie Message-ID: <20061024164411.GE21304@rambler-co.ru> References: <20061020150848.GQ53114@obiwan.tataz.chchile.org> <20061020191332.GC59856@rambler-co.ru> <20061021162635.GS53114@obiwan.tataz.chchile.org> <20061021172533.GA69551@rambler-co.ru> <20061022153436.GW53114@obiwan.tataz.chchile.org> <20061024134800.GB20819@rambler-co.ru> <1161703420.16172.23.camel@mayday.esat.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="M/SuVGWktc5uNpra" Content-Disposition: inline In-Reply-To: <1161703420.16172.23.camel@mayday.esat.net> User-Agent: Mutt/1.5.13 (2006-08-11) X-Virus-Scanned: No virus found Cc: freebsd-hackers@FreeBSD.org, Jeremie Le Hen Subject: Re: src.conf(5) seems to affect ports build X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 16:44:49 -0000 --M/SuVGWktc5uNpra Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 24, 2006 at 04:23:40PM +0100, Florent Thoumie wrote: > On Tue, 2006-10-24 at 17:48 +0400, Ruslan Ermilov wrote: > > On Sun, Oct 22, 2006 at 05:34:36PM +0200, Jeremie Le Hen wrote: > > > Ruslan, > > >=20 > > > On Sat, Oct 21, 2006 at 09:25:33PM +0400, Ruslan Ermilov wrote: > > > > > Also, your patch avoids performing the WITH(OUT)_* stuff for port= s in > > > > > order to prevent from polluting the namespace. If there is to be > > > > > some WITH(OUT)_* knobs which leads to CFLAGS modification in the = future > > > > > (I'm thinking about ProPolice with the upcoming GCC 4.1), wouldn'= t it > > > > > be worth benefiting this framework for ports ? > > > > > > > > It avoids only /etc/src.conf stuff when running bsd.port.mk; if you= put > > > > WITH(OUT)_* in /etc/make.conf it will still be picked up. > > >=20 > > > Yes indeed, but MK_FOO won't be set and this would require to either > > > duplicate the code that modifies CFLAGS, or at least test for MK_FOO > > > or WITH_FOO at the same time. > > >=20 > > > Let me show you an example. > > >=20 > > > I have an additional that is included from both bsd.sys.= mk > > > and bsd.port.mk: > > >=20 > > > % .if ${MK_SSP} !=3D "no" > > > % SSP_CFLAGS ?=3D -fstack-protector > > > % CFLAGS +=3D ${SSP_CFLAGS} > > > % . if defined(WARNS) && ${WARNS} >=3D 7 && !empty(SSP_CFLAGS) > > > % CWARNFLAGS +=3D -Wstack-protector > > > % . endif > > > % .endif > > >=20 > > > Currently it is thus quite useful to use MK_SSP when this file is > > > included from bsd.ports.mk. With your whole patch I would have to > > > either duplicate these bits in bsd.ports.mk or turn the condition to > > > something like: > > >=20 > > > % .if (defined(MK_SSP) && ${MK_SSP} !=3D "no") || defined(WITH_SSP) > > >=20 > > > What do you advice me to do ? > > >=20 > > I still don't understand why my patch created a problem for you. > > This option is not in bsd.own.mk, so it's not covered by my patch. > > All my patch does is "don't process /etc/src.conf" which is entirely > > for src/. > >=20 > > So, you can continue to use your bsd.ssp.mk as before, and my patch > > shouldn't influence it. > >=20 > > If you want to really mimic the standard behavior, then bsd.ssp.mk > > should check the (WITH|WITHOUT)_SSP set by a user, and set MK_SSP > > to "yes/no", accordingly; setting MK_SSP by a user shouldn't be > > allowed or supported. You then set WITH_SSP=3D in /etc/make.conf > > (or in /etc/src.conf if you want it only for src/), or pass > > -DWITH_SSP on the make command line, and you're done. > >=20 > > P.S. There has been a patch floating around that adds support for > > /etc/ports.conf. >=20 > [...] that you sent :-) >=20 > Could try to revive the thread with a new patch. >=20 Better just commit something. :-) Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --M/SuVGWktc5uNpra Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFPkLbqRfpzJluFF4RAuE/AJsG4v/WZSUj6yjCPZ/P19nanj55cgCfQHi7 BeH78IjYK+icyjvsQBhy1/4= =J3mn -----END PGP SIGNATURE----- --M/SuVGWktc5uNpra-- From owner-freebsd-hackers@FreeBSD.ORG Tue Oct 24 23:10:28 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C267216A416 for ; Tue, 24 Oct 2006 23:10:28 +0000 (UTC) (envelope-from spork@fasttrackmonkey.com) Received: from angryfist.fasttrackmonkey.com (angryfist.fasttrackmonkey.com [216.220.107.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id 17A2243D5A for ; Tue, 24 Oct 2006 23:10:26 +0000 (GMT) (envelope-from spork@fasttrackmonkey.com) Received: (qmail 78826 invoked by uid 2003); 24 Oct 2006 23:11:16 -0000 Received: from spork@fasttrackmonkey.com by angryfist.fasttrackmonkey.com by uid 1001 with qmail-scanner-1.20 (clamscan: 0.65. Clear:RC:1(216.220.116.154):. Processed in 0.096044 secs); 24 Oct 2006 23:11:16 -0000 Received: from unknown (HELO white.nat.fasttrackmonkey.com) (216.220.116.154) by 0 with (DHE-RSA-AES256-SHA encrypted) SMTP; 24 Oct 2006 23:11:16 -0000 Date: Tue, 24 Oct 2006 19:10:18 -0400 (EDT) From: Charles Sprickman X-X-Sender: spork@white.nat.fasttrackmonkey.com To: freebsd-hackers@freebsd.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: Panic caused by bad memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Oct 2006 23:10:28 -0000 Hello all, Without a full dump are there any telltale signs from the panic message that can give me some sign of whether I'm dealing with a hardware or software issue? I have a box that has been running 4.11-p10 for quite some time with no problems. I upgraded a number of ports (apache/php/mysql) and since then I've had two panics. Of course userland apps shouldn't cause this, but that's the only change I see. I can't get a kernel dump since it fails like this each time: dumping to dev #da/0x20001, offset 2097152 dump 1024 1023 1022 1021 Aborting dump due to I/O error. status == 0xb, scsi status == 0x0 failed, reason: i/o error The meat of my question though, what are these lines telling me: (panic 1) instruction pointer = 0x8:0xc028b053 stack pointer = 0x10:0xe138eefc frame pointer = 0x10:0xe138ef2c (panic 2) instruction pointer = 0x8:0xc028b053 stack pointer = 0x10:0xe138eefc frame pointer = 0x10:0xe138ef2c Are those physical memory addresses where the code that caused the panic resides? If so, does that point to bad RAM? Thanks, Charles Here's more info if anyone is curious: [-- MARK -- Mon Oct 23 06:00:00 2006] Fatal trap 12: page fault while in kernel mode mp_lock = 00000002; cpuid = 0; lapic.id = 00000000 fault virtual address = 0xc327c614 fault code = supervisor read, page not present instruction pointer = 0x8:0xc028b053 stack pointer = 0x10:0xe138eefc frame pointer = 0x10:0xe138ef2c code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 8 (syncer) interrupt mask = none <- SMP: XXX trap number = 12 panic: page fault mp_lock = 00000002; cpuid = 0; lapic.id = 00000000 boot() called on cpu#0 syncing disks... panic: rslock: cpu: 0, addr: 0xc0391ccc, lock: 0x00000001 mp_lock = 00000002; cpuid = 0; lapic.id = 00000000 boot() called on cpu#0 Uptime: 441d9h31m5s dumping to dev #da/0x20001, offset 2097152 dump 1024 1023 1022 1021 Aborting dump due to I/O error. status == 0xb, scsi status == 0x0 failed, reason: i/o error Automatic reboot in 15 seconds - press a key on the console to abort Rebooting... cpu_reset called on cpu#0 cpu_reset: Stopping other CPUs [-- MARK -- Tue Oct 24 09:00:00 2006] Fatal trap 12: page fault while in kernel mode mp_lock = 01000002; cpuid = 1; lapic.id = 01000000 fault virtual address = 0xc29d2b94 fault code = supervisor read, page not present instruction pointer = 0x8:0xc028b053 stack pointer = 0x10:0xe138eefc frame pointer = 0x10:0xe138ef2c code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 8 (syncer) interrupt mask = none <- SMP: XXX trap number = 12 panic: page fault mp_lock = 01000002; cpuid = 1; lapic.id = 01000000 boot() called on cpu#1 syncing disks... panic: rslock: cpu: 1, addr: 0xc0391ccc, lock: 0x01000001 mp_lock = 01000002; cpuid = 1; lapic.id = 01000000 boot() called on cpu#1 Uptime: 1d2h55m38s dumping to dev #da/0x20001, offset 2097152 dump 1024 1023 1022 1021 Aborting dump due to I/O error. status == 0xb, scsi status == 0x0 failed, reason: i/o error Automatic reboot in 15 seconds - press a key on the console to abort Rebooting... cpu_reset called on cpu#1 cpu_reset: Stopping other CPUs cpu_reset: Restarting BSP cpu_reset_proxy: Grabbed mp locckp uf_re sBeStP: BSP did not grab mp lock From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 05:37:29 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3086216A407 for ; Wed, 25 Oct 2006 05:37:29 +0000 (UTC) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (agora.rdrop.com [199.26.172.34]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8466443D6B for ; Wed, 25 Oct 2006 05:37:26 +0000 (GMT) (envelope-from perryh@pluto.rain.com) Received: from agora.rdrop.com (66@localhost [127.0.0.1]) by agora.rdrop.com (8.13.1/8.12.7) with ESMTP id k9P5ZUtn002001 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 24 Oct 2006 22:35:31 -0700 (PDT) (envelope-from perryh@pluto.rain.com) Received: (from uucp@localhost) by agora.rdrop.com (8.13.1/8.12.9/Submit) with UUCP id k9P5ZUjZ002000; Tue, 24 Oct 2006 22:35:30 -0700 (PDT) Received: from fbsd61 ([192.168.200.61]) by pluto.rain.com (4.1/SMI-4.1-pluto-M2060407) id AA13268; Tue, 24 Oct 06 22:26:59 PDT Date: Tue, 24 Oct 2006 22:27:48 -0700 From: perryh@pluto.rain.com To: spork@fasttrackmonkey.com Message-Id: <453ef5d4.JWeFkgfXTFibI+uh%perryh@pluto.rain.com> References: In-Reply-To: User-Agent: nail 11.25 7/29/05 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Panic caused by bad memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 05:37:29 -0000 > I can't get a kernel dump since it fails like this each time: > > dumping to dev #da/0x20001, offset 2097152 > dump 1024 1023 1022 1021 Aborting dump due to I/O error. > status == 0xb, scsi status == 0x0 > failed, reason: i/o error Bad memory seems unlikely to cause an I/O error trying to write the dump to the swap partition. I'd guess a dicey drive -- and bad swap space could also account for the original crash. You might be able to get a backup by booting single user, provided nothing activates the (presumably bad) swap partition. From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 06:28:53 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7B11416A51B for ; Wed, 25 Oct 2006 06:28:53 +0000 (UTC) (envelope-from spork@fasttrackmonkey.com) Received: from angryfist.fasttrackmonkey.com (angryfist.fasttrackmonkey.com [216.220.107.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id A4F0143D46 for ; Wed, 25 Oct 2006 06:28:52 +0000 (GMT) (envelope-from spork@fasttrackmonkey.com) Received: (qmail 43966 invoked by uid 2003); 25 Oct 2006 06:29:50 -0000 Received: from spork@fasttrackmonkey.com by angryfist.fasttrackmonkey.com by uid 1001 with qmail-scanner-1.20 (clamscan: 0.65. Clear:RC:1(216.220.116.154):. Processed in 0.013172 secs); 25 Oct 2006 06:29:50 -0000 Received: from unknown (HELO white.nat.fasttrackmonkey.com) (216.220.116.154) by 0 with (DHE-RSA-AES256-SHA encrypted) SMTP; 25 Oct 2006 06:29:50 -0000 Date: Wed, 25 Oct 2006 02:28:51 -0400 (EDT) From: Charles Sprickman X-X-Sender: spork@white.nat.fasttrackmonkey.com To: perryh@pluto.rain.com In-Reply-To: <453ef5d4.JWeFkgfXTFibI+uh%perryh@pluto.rain.com> Message-ID: References: <453ef5d4.JWeFkgfXTFibI+uh%perryh@pluto.rain.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org Subject: Re: Panic caused by bad memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 06:28:53 -0000 On Tue, 24 Oct 2006 perryh@pluto.rain.com wrote: >> I can't get a kernel dump since it fails like this each time: >> >> dumping to dev #da/0x20001, offset 2097152 >> dump 1024 1023 1022 1021 Aborting dump due to I/O error. >> status == 0xb, scsi status == 0x0 >> failed, reason: i/o error > > Bad memory seems unlikely to cause an I/O error trying to write the > dump to the swap partition. I'd guess a dicey drive -- and bad > swap space could also account for the original crash. You might > be able to get a backup by booting single user, provided nothing > activates the (presumably bad) swap partition. Just for the record, this box is running an Adaptec raid controller (2005S - ZCR card) and swap is coming off a mirrored array. Coincidentally, I have a utility box where it had bad blocks on the swap partition (but no others) - what I saw there is that the box would just hang and spit out a bunch of "swap_pager timeout" messages to the console. Quick and dirty remote fix while waiting for a drive? Run file-backed swap on /usr. :) Let's pretend for a minute it's not the drive that's the root cause... Not saying it isn't - we're none too thrilled with these Adaptec RAID controllers... Do those memory addresses in the panic message point towards bad memory if they are always the same? Thanks, Charles From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 07:44:44 2006 Return-Path: X-Original-To: freebsd-hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EAF1716A416 for ; Wed, 25 Oct 2006 07:44:44 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [210.51.165.229]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0E8E443D60 for ; Wed, 25 Oct 2006 07:44:43 +0000 (GMT) (envelope-from delphij@delphij.net) Received: from localhost (tarsier.geekcn.org [210.51.165.229]) by tarsier.geekcn.org (Postfix) with ESMTP id 312C0EB1278 for ; Wed, 25 Oct 2006 15:44:42 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([210.51.165.229]) by localhost (mail.geekcn.org [210.51.165.229]) (amavisd-new, port 10024) with ESMTP id 36ABaNLQXaan for ; Wed, 25 Oct 2006 15:44:36 +0800 (CST) Received: from [10.217.12.47] (sina152-194.staff.sina.com.cn [61.135.152.194]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTP id 7B8A0EB0EF2 for ; Wed, 25 Oct 2006 15:44:35 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:organization:user-agent:mime-version:to: subject:x-enigmail-version:content-type; b=AgcDvsCSuoWRew/fmCz0e0y36bCnlw0dqnf7qr/vvvkbO7iaSDeWDceVuIyhZPLHN aY0UO/EEK/glFuaVFjamw== Message-ID: <453F15C0.70009@delphij.net> Date: Wed, 25 Oct 2006 15:44:00 +0800 From: LI Xin Organization: The FreeBSD Project User-Agent: Thunderbird 1.5.0.7 (Macintosh/20060909) MIME-Version: 1.0 To: freebsd-hackers@FreeBSD.org X-Enigmail-Version: 0.94.1.0 Content-Type: multipart/signed; micalg=pgp-ripemd160; protocol="application/pgp-signature"; boundary="------------enig6237A3AD0DBBEB869E8D2BAD" Cc: Subject: Best practice for displaying license? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 07:44:45 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig6237A3AD0DBBEB869E8D2BAD Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi, folks, I am thinking about whether we can use a better way to display license for a BSD licensed software. Currently I have copy and pasted the copyright as a static string constant, but that means that we have to duplicate the text, like this: static const char license[] =3D " * Copyright (c) [year] [your name]\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n [...] * SUCH DAMAGE.\n " Is there some better way not to include so much duplicated text? Cheers, --=20 Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! --------------enig6237A3AD0DBBEB869E8D2BAD Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFPxXAOfuToMruuMARA6uRAJ9VFlwkpiGCuxauzzjc+I2WGCKQqQCfexxt vT9brZigX9FwCLHvdSt9U5k= =FXtI -----END PGP SIGNATURE----- --------------enig6237A3AD0DBBEB869E8D2BAD-- From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 12:43:26 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1140016A407 for ; Wed, 25 Oct 2006 12:43:26 +0000 (UTC) (envelope-from usleepless@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.169]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8205643D4C for ; Wed, 25 Oct 2006 12:42:54 +0000 (GMT) (envelope-from usleepless@gmail.com) Received: by ug-out-1314.google.com with SMTP id m2so67482uge for ; Wed, 25 Oct 2006 05:42:54 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=qHtIPqU6w1CfaBN/A6gBKTC6n5VqMEo/kVssixrPEneVsxfNFD5ifSQ9wCuCHB3JGPuDPW34EkKRnYZp8Krgrtf9Y5jWOPAPQ4YLkfNFAkb5fdofhjMvdA8N7+VMMM8qqGIcRLzC8B6doaAQ4FXxlreP0n/YBVP4ZkFhKshflmk= Received: by 10.78.160.2 with SMTP id i2mr753452hue; Wed, 25 Oct 2006 05:42:53 -0700 (PDT) Received: by 10.78.124.8 with HTTP; Wed, 25 Oct 2006 05:42:53 -0700 (PDT) Message-ID: Date: Wed, 25 Oct 2006 14:42:53 +0200 From: usleepless@gmail.com To: freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: taskqueue_drain X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 12:43:26 -0000 Hello, i am working on improving the driver for hauppauge PVR cards (multimedia/pvrxxx). i just implemented a "fast" interrupt using a taskqueue ( like the new if_em driver ). i have a couple of questions: 1. if_em is using taskqueue_enqueue rather than taskqueue_enqueue_fast. this is contrary to what "man taskqueue" claims. how come? 2. when my capture-device is closed, i need to drain the taskqueue. however, taskqueue_drain needs a task as an argument. but i have queued 2 different tasks on the taskqueue. what to do? i guess they need to be processed "in order". 3. when and in which version will the "fast" versions of the taskqueue-functions be released? will it be backported? if i create a patch and send-pr it, is it likely to be accepted for 6.x? i am developing this on 6.1-p10, but i imported subr_taskqueue.c and taskqueue.h from cvs. thank you for your time, usleep From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 15:04:13 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 56E3416A4E7 for ; Wed, 25 Oct 2006 15:04:13 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (66-23-211-162.clients.speedfactory.net [66.23.211.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4B25A43D94 for ; Wed, 25 Oct 2006 15:03:56 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.13.6/8.13.6) with ESMTP id k9PF3hTt018720; Wed, 25 Oct 2006 11:03:50 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-hackers@freebsd.org Date: Wed, 25 Oct 2006 10:55:14 -0400 User-Agent: KMail/1.9.1 References: <453ef5d4.JWeFkgfXTFibI+uh%perryh@pluto.rain.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200610251055.15445.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Wed, 25 Oct 2006 11:03:51 -0400 (EDT) X-Virus-Scanned: ClamAV 0.88.3/2098/Wed Oct 25 09:14:20 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: Charles Sprickman , perryh@pluto.rain.com Subject: Re: Panic caused by bad memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 15:04:13 -0000 On Wednesday 25 October 2006 02:28, Charles Sprickman wrote: > On Tue, 24 Oct 2006 perryh@pluto.rain.com wrote: > > >> I can't get a kernel dump since it fails like this each time: > >> > >> dumping to dev #da/0x20001, offset 2097152 > >> dump 1024 1023 1022 1021 Aborting dump due to I/O error. > >> status == 0xb, scsi status == 0x0 > >> failed, reason: i/o error > > > > Bad memory seems unlikely to cause an I/O error trying to write the > > dump to the swap partition. I'd guess a dicey drive -- and bad > > swap space could also account for the original crash. You might > > be able to get a backup by booting single user, provided nothing > > activates the (presumably bad) swap partition. > > Just for the record, this box is running an Adaptec raid controller (2005S > - ZCR card) and swap is coming off a mirrored array. > > Coincidentally, I have a utility box where it had bad blocks on the swap > partition (but no others) - what I saw there is that the box would just > hang and spit out a bunch of "swap_pager timeout" messages to the console. > Quick and dirty remote fix while waiting for a drive? Run file-backed > swap on /usr. :) > > Let's pretend for a minute it's not the drive that's the root cause... > Not saying it isn't - we're none too thrilled with these Adaptec RAID > controllers... Do those memory addresses in the panic message point > towards bad memory if they are always the same? No, they are virtual addresses. Having the same EIP means you are crashing in the same place. Did you recently kldunload a module before it crashed? -- John Baldwin From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 15:53:25 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 29B5E16A407 for ; Wed, 25 Oct 2006 15:53:25 +0000 (UTC) (envelope-from micahjon@ywave.com) Received: from relay0.av-mx.com (relay0.av-mx.com [137.118.16.125]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8807043D49 for ; Wed, 25 Oct 2006 15:53:24 +0000 (GMT) (envelope-from micahjon@ywave.com) X-Virus-Scan-Time: 0 Received: from [137.118.16.54] (HELO mx4.av-mx.com) by relay0.av-mx.com (CommuniGate Pro SMTP 4.2.10) with SMTP id 443318183 for freebsd-hackers@freebsd.org; Wed, 25 Oct 2006 11:52:13 -0400 Received: (qmail 16462 invoked by uid 504); 25 Oct 2006 15:52:12 -0000 Received: from dsl28213.ywave.com (HELO ?192.168.1.65?) (micahjon@ywave.com@216.227.115.213) by 0 with SMTP; 25 Oct 2006 15:52:12 -0000 X-CLIENT-IP: 216.227.115.213 X-CLIENT-HOST: dsl28213.ywave.com Message-ID: <453F882B.2040009@ywave.com> Date: Wed, 25 Oct 2006 08:52:11 -0700 From: Micah User-Agent: Thunderbird 1.5.0.7 (X11/20061019) MIME-Version: 1.0 To: FreeBSD Hackers Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: System panic under load X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 15:53:25 -0000 Can anyone help me in deciphering what this crashdump is telling me? My i386 6.1p3 system is panicking under heavy IO load and I'm trying to isolate the cause. I've never debugged a crashdump before, so if there's more information I can milk from the core file, let me know. Thanks, Micah trisha# kgdb kernel.debug /home/crash/vmcore.0 [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd". Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x27 fault code = supervisor read, page not present instruction pointer = 0x20:0xc0593d34 stack pointer = 0x28:0xf02ca89c frame pointer = 0x28:0xf02ca8bc code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 24805 (perl5.8.8) trap number = 12 panic: page fault Uptime: 13h16m1s Dumping 1534 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1534MB (392672 pages) 1518 1502 1486 1470 1454 1438 1422 1406 1390 1374 1358 1342 1326 1310 1294 1278 1262 1246 1230 1214 1198 1182 1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62 46 30 14 #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc0535a3f in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:402 #2 0xc0535d66 in panic (fmt=0xc0711e06 "%s") at /usr/src/sys/kern/kern_shutdown.c:558 #3 0xc06ecf2c in trap_fatal (frame=0xf02ca85c, eva=0) at /usr/src/sys/i386/i386/trap.c:836 #4 0xc06ecc32 in trap_pfault (frame=0xf02ca85c, usermode=0, eva=39) at /usr/src/sys/i386/i386/trap.c:744 #5 0xc06ec7fd in trap (frame= {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 4, tf_esi = 4, tf_ebp = -265508676, tf_isp = -265508728, tf_ebx = -1, tf_edx = -980369408, tf_ecx = -979030016, tf_eax = 5347783, tf_trapno = 12, tf_err = 0, tf_eip = -1067893452, tf_cs = 32, tf_eflags = 66182, tf_esp = -979030016, tf_ss = 5347783}) at /usr/src/sys/i386/i386/trap.c:434 #6 0xc06d9e2a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0xc0593d34 in vfs_hash_get (mp=0xc5a53000, hash=5347783, flags=2, td=0xc5ef9d80, vpp=0xf02ca99c, fn=0, arg=0x0) at /usr/src/sys/kern/vfs_hash.c:73 #8 0xc067af59 in ffs_vget (mp=0xc5a53000, ino=5347783, flags=2, vpp=0xf02ca99c) at pcpu.h:162 #9 0xc0683353 in ufs_lookup (ap=0xf02caa40) at /usr/src/sys/ufs/ufs/ufs_lookup.c:572 #10 0xc0700f03 in VOP_CACHEDLOOKUP_APV (vop=0x5199c7, a=0xc590c000) at vnode_if.c:150 #11 0xc059006a in vfs_cache_lookup (ap=0x5199c7) at vnode_if.h:82 #12 0xc0700e78 in VOP_LOOKUP_APV (vop=0xc0764f20, a=0xf02caaec) at vnode_if.c:99 #13 0xc059547b in lookup (ndp=0xf02cabf4) at vnode_if.h:56 #14 0xc0594c08 in namei (ndp=0xf02cabf4) at /usr/src/sys/kern/vfs_lookup.c:203 #15 0xc05a672d in kern_stat (td=0xc5ef9d80, path=0xc590c000 "°\033\210Ê B\215É0£ÓÊ\020±ZÉ\020ñ\211Æ0\003\237ÊPU0Ê", pathseg=3314597888, sbp=0x5199c7) at /usr/src/sys/kern/vfs_syscalls.c:2076 #16 0xc05a66bf in stat (td=0x5199c7, uap=0xf02cad04) at /usr/src/sys/kern/vfs_syscalls.c:2061 #17 0xc06ed302 in syscall (frame= {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 1209537912, tf_esi = 140130588, tf_ebp = -1077941096, tf_isp = -265507484, tf_ebx = 1209530852, tf_edx = 68, tf_ecx = 0, tf_eax = 188, tf_trapno = 12, tf_err = 2, tf_eip = 1210540343, tf_cs = 51, tf_eflags = 582, tf_esp = -1077941140, tf_ss = 59}) at /usr/src/sys/i386/i386/trap.c:981 #18 0xc06d9e7f in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200 ---Type to continue, or q to quit--- #19 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 17:03:04 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CB1C516A416 for ; Wed, 25 Oct 2006 17:03:04 +0000 (UTC) (envelope-from micahjon@ywave.com) Received: from relay3.av-mx.com (relay3.av-mx.com [137.118.16.123]) by mx1.FreeBSD.org (Postfix) with ESMTP id BDA6343D5D for ; Wed, 25 Oct 2006 17:03:03 +0000 (GMT) (envelope-from micahjon@ywave.com) X-Virus-Scan-Time: 0 Received: from [137.118.16.54] (HELO mx4.av-mx.com) by relay3.av-mx.com (CommuniGate Pro SMTP 4.2.10) with SMTP id 453300462 for freebsd-hackers@freebsd.org; Wed, 25 Oct 2006 13:03:02 -0400 Received: (qmail 25183 invoked by uid 504); 25 Oct 2006 17:03:01 -0000 Received: from dsl28213.ywave.com (HELO ?192.168.1.65?) (micahjon@ywave.com@216.227.115.213) by 0 with SMTP; 25 Oct 2006 17:03:01 -0000 X-CLIENT-IP: 216.227.115.213 X-CLIENT-HOST: dsl28213.ywave.com Message-ID: <453F98C4.2060402@ywave.com> Date: Wed, 25 Oct 2006 10:03:00 -0700 From: Micah User-Agent: Thunderbird 1.5.0.7 (X11/20061019) MIME-Version: 1.0 CC: FreeBSD Hackers References: <453F882B.2040009@ywave.com> In-Reply-To: <453F882B.2040009@ywave.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 17:03:04 -0000 Okay, I was reading the developer's handbook and trying stuff. The following may be helpful: (kgdb) up 7 #7 0xc0593d34 in vfs_hash_get (mp=0xc5a53000, hash=5347783, flags=2, td=0xc5ef9d80, vpp=0xf02ca99c, fn=0, arg=0x0) at /usr/src/sys/kern/vfs_hash.c:73 73 if (vp->v_hash != hash) (kgdb) list *0xc0593d34 0xc0593d34 is in vfs_hash_get (/usr/src/sys/kern/vfs_hash.c:73). 64 int 65 vfs_hash_get(struct mount *mp, u_int hash, int flags, struct thread *td, struct vnode **vpp, vfs_hash_cmp_t *fn, void *arg) 66 { 67 struct vnode *vp; 68 int error; 69 70 while (1) { 71 mtx_lock(&vfs_hash_mtx); 72 LIST_FOREACH(vp, vfs_hash_index(mp, hash), v_hashlist) { 73 if (vp->v_hash != hash) 74 continue; 75 if (vp->v_mount != mp) 76 continue; 77 if (fn != NULL && fn(vp, arg)) (kgdb) print vp $1 = (struct vnode *) 0xffffffff I'm no expert but that doesn't look like a valid address.... I was able to get another crashdump, but kgdb locked up while trying to read it. Thanks, Micah Micah wrote: > Can anyone help me in deciphering what this crashdump is telling me? My > i386 6.1p3 system is panicking under heavy IO load and I'm trying to > isolate the cause. I've never debugged a crashdump before, so if there's > more information I can milk from the core file, let me know. > > Thanks, > Micah > > trisha# kgdb kernel.debug /home/crash/vmcore.0 > [GDB will not be able to debug user-mode threads: > /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] > GNU gdb 6.1.1 [FreeBSD] > Copyright 2004 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you > are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i386-marcel-freebsd". > > Unread portion of the kernel message buffer: > > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x27 > fault code = supervisor read, page not present > instruction pointer = 0x20:0xc0593d34 > stack pointer = 0x28:0xf02ca89c > frame pointer = 0x28:0xf02ca8bc > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 24805 (perl5.8.8) > trap number = 12 > panic: page fault > Uptime: 13h16m1s > Dumping 1534 MB (2 chunks) > chunk 0: 1MB (159 pages) ... ok > chunk 1: 1534MB (392672 pages) 1518 1502 1486 1470 1454 1438 1422 1406 > 1390 1374 1358 1342 1326 1310 1294 1278 1262 1246 1230 1214 1198 1182 > 1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942 > 926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654 > 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 > 350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62 > 46 30 14 > > #0 doadump () at pcpu.h:165 > 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); > (kgdb) bt > #0 doadump () at pcpu.h:165 > #1 0xc0535a3f in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:402 > #2 0xc0535d66 in panic (fmt=0xc0711e06 "%s") > at /usr/src/sys/kern/kern_shutdown.c:558 > #3 0xc06ecf2c in trap_fatal (frame=0xf02ca85c, eva=0) > at /usr/src/sys/i386/i386/trap.c:836 > #4 0xc06ecc32 in trap_pfault (frame=0xf02ca85c, usermode=0, eva=39) > at /usr/src/sys/i386/i386/trap.c:744 > #5 0xc06ec7fd in trap (frame= > {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 4, tf_esi = 4, tf_ebp > = -265508676, tf_isp = -265508728, tf_ebx = -1, tf_edx = -980369408, > tf_ecx = -979030016, tf_eax = 5347783, tf_trapno = 12, tf_err = 0, > tf_eip = -1067893452, tf_cs = 32, tf_eflags = 66182, tf_esp = > -979030016, tf_ss = 5347783}) > at /usr/src/sys/i386/i386/trap.c:434 > #6 0xc06d9e2a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 > #7 0xc0593d34 in vfs_hash_get (mp=0xc5a53000, hash=5347783, flags=2, > td=0xc5ef9d80, vpp=0xf02ca99c, fn=0, arg=0x0) > at /usr/src/sys/kern/vfs_hash.c:73 > #8 0xc067af59 in ffs_vget (mp=0xc5a53000, ino=5347783, flags=2, > vpp=0xf02ca99c) at pcpu.h:162 > #9 0xc0683353 in ufs_lookup (ap=0xf02caa40) > at /usr/src/sys/ufs/ufs/ufs_lookup.c:572 > #10 0xc0700f03 in VOP_CACHEDLOOKUP_APV (vop=0x5199c7, a=0xc590c000) > at vnode_if.c:150 > #11 0xc059006a in vfs_cache_lookup (ap=0x5199c7) at vnode_if.h:82 > #12 0xc0700e78 in VOP_LOOKUP_APV (vop=0xc0764f20, a=0xf02caaec) > at vnode_if.c:99 > #13 0xc059547b in lookup (ndp=0xf02cabf4) at vnode_if.h:56 > #14 0xc0594c08 in namei (ndp=0xf02cabf4) at > /usr/src/sys/kern/vfs_lookup.c:203 > #15 0xc05a672d in kern_stat (td=0xc5ef9d80, > path=0xc590c000 "°\033\210Ê B\215É0£ÓÊ\020±ZÉ\020ñ\211Æ0\003\237ÊPU0Ê", > pathseg=3314597888, sbp=0x5199c7) at > /usr/src/sys/kern/vfs_syscalls.c:2076 > #16 0xc05a66bf in stat (td=0x5199c7, uap=0xf02cad04) > at /usr/src/sys/kern/vfs_syscalls.c:2061 > #17 0xc06ed302 in syscall (frame= > {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 1209537912, tf_esi = > 140130588, tf_ebp = -1077941096, tf_isp = -265507484, tf_ebx = > 1209530852, tf_edx = 68, tf_ecx = 0, tf_eax = 188, tf_trapno = 12, > tf_err = 2, tf_eip = 1210540343, tf_cs = 51, tf_eflags = 582, tf_esp = > -1077941140, tf_ss = 59}) > at /usr/src/sys/i386/i386/trap.c:981 > #18 0xc06d9e7f in Xint0x80_syscall () at > /usr/src/sys/i386/i386/exception.s:200 > ---Type to continue, or q to quit--- > #19 0x00000033 in ?? () > Previous frame inner to this frame (corrupt stack?) > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 18:34:23 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E016F16A407 for ; Wed, 25 Oct 2006 18:34:23 +0000 (UTC) (envelope-from ghostks@inbox.lv) Received: from mail.baltinet.lv (ns.baltinet.lv [213.180.96.194]) by mx1.FreeBSD.org (Postfix) with ESMTP id CC6B843D8B for ; Wed, 25 Oct 2006 18:34:17 +0000 (GMT) (envelope-from ghostks@inbox.lv) Received: from BABYLON5 (unknown [213.180.116.50]) by mail.baltinet.lv (Postfix) with ESMTP id 52A0F775045 for ; Wed, 25 Oct 2006 21:34:15 +0300 (EEST) Date: Wed, 25 Oct 2006 21:34:15 +0300 From: Andris X-Mailer: The Bat! (v3.85.01) Professional X-Priority: 3 (Normal) Message-ID: <22259846.20061025213415@inbox.lv> To: freebsd-hackers@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: can't get to work SMBUS or simmilar method for getting thermal sensor data X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Andris List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 18:34:24 -0000 I'm having Asus A7V880 motherboard (AthlonXp, KT880, VT8237) and can't get to work any thermal viewing and control program. I've tried mbmon, healtd, consolehm etc. Some don't work at all (NO HW SENSOR AVAILABLE or simmilar message) or showing constant temperature 255C. I'v tried to load smb/smbus/*pm modules - no effect, tried to recompile kernel with: device smbus device viapm device smb device iic device ic device iicbus device iicbb device iicsmb no effect. Even NO /dev/smbX device present and 'dmesg | grep smb' or 'sysctl -a | grep thermal' shows nothing. Then I found, that this south bridge is using 'VIA VT1211 LPC Super I/O' chip for I/O operations accordingly to thermal sensors and there is no driver support in BSD, so the systems do not understand it. But I found that driver for this chip was introduced in OpenBSD 3.8: "Modified files: sys/arch/i386/conf: GENERIC sys/arch/amd64/conf: GENERIC sys/dev/isa : files.isa share/man/man4 : Makefile Added files: sys/dev/isa : viasio.c viasioreg.h share/man/man4 : viasio.4 Log message: Add viasio(4), a driver for VIA VT1211 LPC Super I/O found on some VIA CPU based boards. The driver provides temperature, voltage and fan tachometers values through the sysctl interface. " I've tried to port this driver to FreeBSD but no effect :( can't even compile kernel. Is it possible to create/port such a driver in FreeBSD? It would be very popular, because I found a lot of simmilar problems on the net... From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 19:38:58 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2A5D216A403 for ; Wed, 25 Oct 2006 19:38:58 +0000 (UTC) (envelope-from prvs=julian=446c382ea@elischer.org) Received: from a50.ironport.com (a50.ironport.com [63.251.108.112]) by mx1.FreeBSD.org (Postfix) with ESMTP id DED1043D6D for ; Wed, 25 Oct 2006 19:38:57 +0000 (GMT) (envelope-from prvs=julian=446c382ea@elischer.org) Received: from unknown (HELO [10.251.18.229]) ([10.251.18.229]) by a50.ironport.com with ESMTP; 25 Oct 2006 12:38:57 -0700 Message-ID: <453FBD52.40806@elischer.org> Date: Wed, 25 Oct 2006 12:38:58 -0700 From: Julian Elischer User-Agent: Thunderbird 1.5.0.7 (Macintosh/20060909) MIME-Version: 1.0 To: Andris References: <22259846.20061025213415@inbox.lv> In-Reply-To: <22259846.20061025213415@inbox.lv> Content-Type: multipart/mixed; boundary="------------020609020003050209040206" Cc: freebsd-hackers@freebsd.org Subject: Re: can't get to work SMBUS or simmilar method for getting thermal sensor data X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 19:38:58 -0000 This is a multi-part message in MIME format. --------------020609020003050209040206 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Andris wrote: > I'm having Asus A7V880 motherboard (AthlonXp, KT880, VT8237) and can't get to work any thermal viewing and control program. I've tried mbmon, healtd, consolehm etc. Some don't work at all (NO HW SENSOR AVAILABLE or simmilar message) or showing constant temperature 255C. > > I'v tried to load smb/smbus/*pm modules - no effect, tried to recompile kernel with: > device smbus > device viapm > device smb > device iic > device ic > device iicbus > device iicbb > device iicsmb > no effect. Even NO /dev/smbX device present and 'dmesg | grep smb' or 'sysctl -a | grep thermal' shows nothing. > Then I found, that this south bridge is using 'VIA VT1211 LPC Super I/O' chip for I/O operations accordingly to thermal sensors and there is no driver support in BSD, so the systems do not understand it. But I found that driver for this chip was introduced in OpenBSD 3.8: > "Modified files: > sys/arch/i386/conf: GENERIC > sys/arch/amd64/conf: GENERIC > sys/dev/isa : files.isa > share/man/man4 : Makefile > Added files: > sys/dev/isa : viasio.c viasioreg.h > share/man/man4 : viasio.4 > Log message: > Add viasio(4), a driver for VIA VT1211 LPC Super I/O found on > some VIA CPU based boards. The driver provides temperature, > voltage and fan tachometers values through the sysctl interface. " > > I've tried to port this driver to FreeBSD but no effect :( can't even compile kernel. > Is it possible to create/port such a driver in FreeBSD? It would be very popular, because I found a lot of simmilar problems on the net... > > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" ASUS turn of ftheur SMBUS (Grrr!) you can try the attached script to try turn it on again.... --------------020609020003050209040206 Content-Type: application/octet-stream; x-mac-type="42494E41"; x-mac-creator="68446D70"; name="enable_asus" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="enable_asus" IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0OwoKbXkgJGRvaXQgPSAxOwoKbXkgJGNo aXB0eXBlID0gYHBjaWNvbmYgLXIgcGNpMDozMTowIDBgOwoKaWYgKCRjaGlwdHlwZSA9fiAg bS9eMHgyNGMwODA4Ni8pIHsKCXByaW50ICJTZWVtcyB0byBiZSBJTlRFTCBJQ0g0IFBDSSBC cmlkZ2UgQ2hpcFxuIjsKCW15ICRiaXRzID0gIG9jdCAoKHNwbGl0IC9ccysvLCBgcGNpY29u ZiAtciBwY2kwOjMxOjAgMHhGMGApWzBdKTsKCW15ICRuYXVnaHR5Yml0cyA9ICRiaXRzICYg MHgwMDA5MDAwMDsKCglpZiAoJG5hdWdodHliaXRzKSB7CgkJIyBXZSB3YW50IHRvIGNsZWFy IHRoZSBiaXRzIHRvIGVuYWJsZSBTTUJ1cyBmb3IgbW9uaXRvcmluZyAKCQlteSAkbmV3Yml0 cyA9ICRiaXRzICYgMHhGRkY2ZmZmZjsKCgkJcHJpbnRmICJPbGQgYml0IGZsYWcgPSAweCUw OHgsICIsICRiaXRzOwoJCXByaW50ZiAiTmV3IGJpdCBmbGFnID0gMHglMDh4Li4uICIsICRu ZXdiaXRzOwoJCXByaW50ICJFbmFibGluZyBTTUJ1c1xuIjsKCQkjIHR1cm4gb2ZmIHRoZSBi aXRzCgkJbXkgJHJlc3VsdXRzID0gYHBjaWNvbmYgLXcgcGNpMDozMTowIDB4RjAgJG5ld2Jp dHNgIGlmICRkb2l0OwoJCXByaW50ICIkcmVzdWx1dHNcbiI7Cgl9CgllbHNlIHsKCQlwcmlu dCAiU01CdXMgYWxyZWFkeSBlbmFibGVkXG4iOwoJfQp9CgplbHNlIHsKCXByaW50ICJOb3Qg YSBJTlRFTCBJQ0g0IFBDSSBCcmlkZ2UgQ2hpcFxuIjsKIwlwcmludCBgIHBjaWNvbmYgLWx2 IHwgZ3JlcCAtQSAzIHBjaTA6MGA7CiMJcHJpbnQgYHBjaWNvbmYgLWxgOwp9CgoK --------------020609020003050209040206-- From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 19:58:32 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F340616A407 for ; Wed, 25 Oct 2006 19:58:31 +0000 (UTC) (envelope-from ghostks@inbox.lv) Received: from mail.baltinet.lv (ns.baltinet.lv [213.180.96.194]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5438A43D5D for ; Wed, 25 Oct 2006 19:58:31 +0000 (GMT) (envelope-from ghostks@inbox.lv) Received: from BABYLON5 (unknown [213.180.116.50]) by mail.baltinet.lv (Postfix) with ESMTP id E41DF775045 for ; Wed, 25 Oct 2006 22:58:29 +0300 (EEST) Date: Wed, 25 Oct 2006 22:58:33 +0300 From: Andris X-Mailer: The Bat! (v3.85.01) Professional X-Priority: 3 (Normal) Message-ID: <10710609613.20061025225833@inbox.lv> To: freebsd-hackers@freebsd.org In-Reply-To: <61214401.20061025224952@inbox.lv> References: <22259846.20061025213415@inbox.lv> <453FBD52.40806@elischer.org> <61214401.20061025224952@inbox.lv> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Fwd: Re[2]: can't get to work SMBUS or simmilar method for getting thermal sensor data X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Andris List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 19:58:32 -0000 > Andris wrote: >> I'm having Asus A7V880 motherboard (AthlonXp, KT880, VT8237) and can't get to work any thermal viewing and control program. I've tried mbmon, healtd, consolehm etc. Some don't work at all (NO HW SENSOR AVAILABLE or simmilar message) or showing constant temperature 255C. >> >> I'v tried to load smb/smbus/*pm modules - no effect, tried to recompile kernel with: >> device smbus >> device viapm >> device smb >> device iic >> device ic >> device iicbus >> device iicbb >> device iicsmb >> no effect. Even NO /dev/smbX device present and 'dmesg | grep smb' or 'sysctl -a | grep thermal' shows nothing. >> Then I found, that this south bridge is using 'VIA VT1211 LPC Super I/O' chip for I/O operations accordingly to thermal sensors and there is no driver support in BSD, so the systems do not understand it. But I found that driver for this chip was introduced in OpenBSD 3.8: >> "Modified files: >> sys/arch/i386/conf: GENERIC >> sys/arch/amd64/conf: GENERIC >> sys/dev/isa : files.isa >> share/man/man4 : Makefile >> Added files: >> sys/dev/isa : viasio.c viasioreg.h >> share/man/man4 : viasio.4 >> Log message: >> Add viasio(4), a driver for VIA VT1211 LPC Super I/O found on >> some VIA CPU based boards. The driver provides temperature, >> voltage and fan tachometers values through the sysctl interface. " >> >> I've tried to port this driver to FreeBSD but no effect :( can't even compile kernel. >> Is it possible to create/port such a driver in FreeBSD? It would be very popular, because I found a lot of simmilar problems on the net... >> >> >> _______________________________________________ >> freebsd-hackers@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > ASUS turn of ftheur SMBUS (Grrr!) > you can try the attached script to try turn it on again.... "Not a INTEL ICH4 PCI Bridge Chip" This script is for Intel chips only, but my is made by VIA. I found this tutorial how to enable SMBUS on Asus with ICH2/ICH4 chips. http://www.nt.phys.kyushu-u.ac.jp/shimizu/download/xmbmon/README-ASUS-P4motherboard.html Maybe some one knows real values for VIA chips? My system: # pciconf -l agp0@pci0:0:0: class=0x060000 card=0x81221043 chip=0x02691106 rev=0x80 hdr=0x00 hostb0@pci0:0:1: class=0x060000 card=0x81221043 chip=0x12691106 rev=0x00 hdr=0x00 hostb1@pci0:0:2: class=0x060000 card=0x81221043 chip=0x22691106 rev=0x00 hdr=0x00 hostb2@pci0:0:3: class=0x060000 card=0x81221043 chip=0x32691106 rev=0x00 hdr=0x00 hostb3@pci0:0:4: class=0x060000 card=0x81221043 chip=0x42691106 rev=0x00 hdr=0x00 hostb4@pci0:0:7: class=0x060000 card=0x81221043 chip=0x72691106 rev=0x00 hdr=0x00 pcib1@pci0:1:0: class=0x060400 card=0x00000070 chip=0xb1981106 rev=0x00 hdr=0x01 xl0@pci0:10:0: class=0x020000 card=0x905510b7 chip=0x905510b7 rev=0x24 hdr=0x00 none0@pci0:12:0: class=0x030000 card=0x2003102b chip=0x051b102b rev=0x00 hdr=0x00 atapci0@pci0:15:0: class=0x010400 card=0x80ed1043 chip=0x31491106 rev=0x80 hdr=0x00 atapci1@pci0:15:1: class=0x01018a card=0x80ed1043 chip=0x05711106 rev=0x06 hdr=0x00 none1@pci0:16:0: class=0x0c0300 card=0x30381106 chip=0x30381106 rev=0x81 hdr=0x00 none2@pci0:16:1: class=0x0c0300 card=0x30381106 chip=0x30381106 rev=0x81 hdr=0x00 none3@pci0:16:2: class=0x0c0300 card=0x30381106 chip=0x30381106 rev=0x81 hdr=0x00 none4@pci0:16:3: class=0x0c0300 card=0x30381106 chip=0x30381106 rev=0x81 hdr=0x00 none5@pci0:16:4: class=0x0c0320 card=0x31041106 chip=0x31041106 rev=0x86 hdr=0x00 isab0@pci0:17:0: class=0x060100 card=0x80ed1043 chip=0x32271106 rev=0x00 hdr=0x00 They from OpenBSD realised acces through ISA bus: http://archives.neohapsis.com/archives/openbsd/cvs/2005-07/0916.html From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 25 21:28:23 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3EA8216A407 for ; Wed, 25 Oct 2006 21:28:23 +0000 (UTC) (envelope-from xfb52@dial.pipex.com) Received: from smtp-out5.blueyonder.co.uk (smtp-out5.blueyonder.co.uk [195.188.213.8]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC27043D67 for ; Wed, 25 Oct 2006 21:28:22 +0000 (GMT) (envelope-from xfb52@dial.pipex.com) Received: from [172.23.170.138] (helo=anti-virus01-09) by smtp-out5.blueyonder.co.uk with smtp (Exim 4.52) id 1GcqIP-0008DV-FE; Wed, 25 Oct 2006 22:28:21 +0100 Received: from [62.31.10.95] (helo=[192.168.0.2]) by asmtp-out5.blueyonder.co.uk with esmtp (Exim 4.52) id 1GcqIO-0006nI-IO; Wed, 25 Oct 2006 22:28:20 +0100 Message-ID: <453FD6F4.3060901@dial.pipex.com> Date: Wed, 25 Oct 2006 22:28:20 +0100 From: Alex Zbyslaw User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-GB; rv:1.7.13) Gecko/20060515 X-Accept-Language: en MIME-Version: 1.0 To: Andris References: <22259846.20061025213415@inbox.lv> <453FBD52.40806@elischer.org> <61214401.20061025224952@inbox.lv> <10710609613.20061025225833@inbox.lv> In-Reply-To: <10710609613.20061025225833@inbox.lv> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org Subject: Re: Fwd: Re[2]: can't get to work SMBUS or simmilar method for getting thermal sensor data X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Oct 2006 21:28:23 -0000 Andris wrote: >>Andris wrote: >> >> >>>I'm having Asus A7V880 motherboard (AthlonXp, KT880, VT8237) and can't get to work any thermal viewing and control program. I've tried mbmon, healtd, consolehm etc. Some don't work at all (NO HW SENSOR AVAILABLE or simmilar message) or showing constant temperature 255C. >>> >>> Are you sure mbmon or healthd won't work? Forget smbus just try to access the status chip directly. e.g. mbmon -p winbond -c 1 or healthd -c 1. I have two (different from yours) ASUS motherboards with VIA chipsets and healthd works on both and mbmon only on the newer one, but neither needs smbus (and I never managed to get them to work that way when I tried briefly). --Alex From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 08:38:25 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E07A316A412 for ; Thu, 26 Oct 2006 08:38:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from fw.zoral.com.ua (fw.zoral.com.ua [213.186.206.134]) by mx1.FreeBSD.org (Postfix) with ESMTP id 354D343D4C for ; Thu, 26 Oct 2006 08:38:23 +0000 (GMT) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by fw.zoral.com.ua (8.13.4/8.13.4) with ESMTP id k9Q8JNmK019596 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 26 Oct 2006 11:19:23 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.13.8/8.13.8) with ESMTP id k9Q8cHef079304; Thu, 26 Oct 2006 11:38:17 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.13.8/8.13.8/Submit) id k9Q8cGrY079303; Thu, 26 Oct 2006 11:38:16 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 26 Oct 2006 11:38:16 +0300 From: Kostik Belousov To: Micah Message-ID: <20061026083816.GS45605@deviant.kiev.zoral.com.ua> References: <453F882B.2040009@ywave.com> <453F98C4.2060402@ywave.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Po3hG7FLjYU3tiSY" Content-Disposition: inline In-Reply-To: <453F98C4.2060402@ywave.com> User-Agent: Mutt/1.4.2.2i X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on fw.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=1.9 required=5.0 tests=DNS_FROM_RFC_ABUSE, SPF_NEUTRAL,UNPARSEABLE_RELAY autolearn=no version=3.1.4 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on fw.zoral.com.ua Cc: FreeBSD Hackers Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 08:38:25 -0000 --Po3hG7FLjYU3tiSY Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Oct 25, 2006 at 10:03:00AM -0700, Micah wrote: > Okay, I was reading the developer's handbook and trying stuff. The=20 > following may be helpful: >=20 > (kgdb) up 7 > #7 0xc0593d34 in vfs_hash_get (mp=3D0xc5a53000, hash=3D5347783, flags=3D= 2, > td=3D0xc5ef9d80, vpp=3D0xf02ca99c, fn=3D0, arg=3D0x0) > at /usr/src/sys/kern/vfs_hash.c:73 > 73 if (vp->v_hash !=3D hash) > (kgdb) list *0xc0593d34 > 0xc0593d34 is in vfs_hash_get (/usr/src/sys/kern/vfs_hash.c:73). > 64 int > 65 vfs_hash_get(struct mount *mp, u_int hash, int flags, struct=20 > thread *td, struct vnode **vpp, vfs_hash_cmp_t *fn, void *arg) > 66 { > 67 struct vnode *vp; > 68 int error; > 69 > 70 while (1) { > 71 mtx_lock(&vfs_hash_mtx); > 72 LIST_FOREACH(vp, vfs_hash_index(mp, hash),=20 > v_hashlist) { > 73 if (vp->v_hash !=3D hash) > 74 continue; > 75 if (vp->v_mount !=3D mp) > 76 continue; > 77 if (fn !=3D NULL && fn(vp, arg)) > (kgdb) print vp > $1 =3D (struct vnode *) 0xffffffff >=20 > I'm no expert but that doesn't look like a valid address.... I was able= =20 > to get another crashdump, but kgdb locked up while trying to read it. I saw several similar reports. Please, submit me the output of the "print *mp" in the same frame. Also, I'm interested in kernel config.=20 Is the problem reproducible ? >=20 > Micah wrote: > >Can anyone help me in deciphering what this crashdump is telling me? My= =20 > >i386 6.1p3 system is panicking under heavy IO load and I'm trying to=20 > >isolate the cause. I've never debugged a crashdump before, so if there's= =20 > >more information I can milk from the core file, let me know. > > > >Thanks, > >Micah > > > >trisha# kgdb kernel.debug /home/crash/vmcore.0 > >[GDB will not be able to debug user-mode threads:=20 > >/usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] > >GNU gdb 6.1.1 [FreeBSD] > >Copyright 2004 Free Software Foundation, Inc. > >GDB is free software, covered by the GNU General Public License, and you= =20 > >are > >welcome to change it and/or distribute copies of it under certain=20 > >conditions. > >Type "show copying" to see the conditions. > >There is absolutely no warranty for GDB. Type "show warranty" for detai= ls. > >This GDB was configured as "i386-marcel-freebsd". > > > >Unread portion of the kernel message buffer: > > > > > >Fatal trap 12: page fault while in kernel mode > >fault virtual address =3D 0x27 > >fault code =3D supervisor read, page not present > >instruction pointer =3D 0x20:0xc0593d34 > >stack pointer =3D 0x28:0xf02ca89c > >frame pointer =3D 0x28:0xf02ca8bc > >code segment =3D base 0x0, limit 0xfffff, type 0x1b > > =3D DPL 0, pres 1, def32 1, gran 1 > >processor eflags =3D interrupt enabled, resume, IOPL =3D 0 > >current process =3D 24805 (perl5.8.8) > >trap number =3D 12 > >panic: page fault > >Uptime: 13h16m1s > >Dumping 1534 MB (2 chunks) > > chunk 0: 1MB (159 pages) ... ok > > chunk 1: 1534MB (392672 pages) 1518 1502 1486 1470 1454 1438 1422 1406= =20 > >1390 1374 1358 1342 1326 1310 1294 1278 1262 1246 1230 1214 1198 1182=20 > >1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942= =20 > >926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654= =20 > >638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366= =20 > >350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62= =20 > >46 30 14 > > > >#0 doadump () at pcpu.h:165 > >165 __asm __volatile("movl %%fs:0,%0" : "=3Dr" (td)); > >(kgdb) bt > >#0 doadump () at pcpu.h:165 > >#1 0xc0535a3f in boot (howto=3D260) at /usr/src/sys/kern/kern_shutdown.= c:402 > >#2 0xc0535d66 in panic (fmt=3D0xc0711e06 "%s") > > at /usr/src/sys/kern/kern_shutdown.c:558 > >#3 0xc06ecf2c in trap_fatal (frame=3D0xf02ca85c, eva=3D0) > > at /usr/src/sys/i386/i386/trap.c:836 > >#4 0xc06ecc32 in trap_pfault (frame=3D0xf02ca85c, usermode=3D0, eva=3D3= 9) > > at /usr/src/sys/i386/i386/trap.c:744 > >#5 0xc06ec7fd in trap (frame=3D > > {tf_fs =3D 8, tf_es =3D 40, tf_ds =3D 40, tf_edi =3D 4, tf_esi =3D= 4, tf_ebp=20 > >=3D -265508676, tf_isp =3D -265508728, tf_ebx =3D -1, tf_edx =3D -980369= 408,=20 > >tf_ecx =3D -979030016, tf_eax =3D 5347783, tf_trapno =3D 12, tf_err =3D = 0,=20 > >tf_eip =3D -1067893452, tf_cs =3D 32, tf_eflags =3D 66182, tf_esp =3D=20 > >-979030016, tf_ss =3D 5347783}) > > at /usr/src/sys/i386/i386/trap.c:434 > >#6 0xc06d9e2a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 > >#7 0xc0593d34 in vfs_hash_get (mp=3D0xc5a53000, hash=3D5347783, flags= =3D2, > > td=3D0xc5ef9d80, vpp=3D0xf02ca99c, fn=3D0, arg=3D0x0) > > at /usr/src/sys/kern/vfs_hash.c:73 > >#8 0xc067af59 in ffs_vget (mp=3D0xc5a53000, ino=3D5347783, flags=3D2, > > vpp=3D0xf02ca99c) at pcpu.h:162 > >#9 0xc0683353 in ufs_lookup (ap=3D0xf02caa40) > > at /usr/src/sys/ufs/ufs/ufs_lookup.c:572 > >#10 0xc0700f03 in VOP_CACHEDLOOKUP_APV (vop=3D0x5199c7, a=3D0xc590c000) > > at vnode_if.c:150 > >#11 0xc059006a in vfs_cache_lookup (ap=3D0x5199c7) at vnode_if.h:82 > >#12 0xc0700e78 in VOP_LOOKUP_APV (vop=3D0xc0764f20, a=3D0xf02caaec) > > at vnode_if.c:99 > >#13 0xc059547b in lookup (ndp=3D0xf02cabf4) at vnode_if.h:56 > >#14 0xc0594c08 in namei (ndp=3D0xf02cabf4) at=20 > >/usr/src/sys/kern/vfs_lookup.c:203 > >#15 0xc05a672d in kern_stat (td=3D0xc5ef9d80, > > path=3D0xc590c000 "=9C\033\210? B\215?0???\020?Z?\020?\211?0\003\237= ?PU0?", > > pathseg=3D3314597888, sbp=3D0x5199c7) at=20 > >/usr/src/sys/kern/vfs_syscalls.c:2076 > >#16 0xc05a66bf in stat (td=3D0x5199c7, uap=3D0xf02cad04) > > at /usr/src/sys/kern/vfs_syscalls.c:2061 > >#17 0xc06ed302 in syscall (frame=3D > > {tf_fs =3D 59, tf_es =3D 59, tf_ds =3D 59, tf_edi =3D 1209537912, = tf_esi =3D=20 > >140130588, tf_ebp =3D -1077941096, tf_isp =3D -265507484, tf_ebx =3D=20 > >1209530852, tf_edx =3D 68, tf_ecx =3D 0, tf_eax =3D 188, tf_trapno =3D 1= 2,=20 > >tf_err =3D 2, tf_eip =3D 1210540343, tf_cs =3D 51, tf_eflags =3D 582, tf= _esp =3D=20 > >-1077941140, tf_ss =3D 59}) > > at /usr/src/sys/i386/i386/trap.c:981 > >#18 0xc06d9e7f in Xint0x80_syscall () at=20 > >/usr/src/sys/i386/i386/exception.s:200 > >---Type to continue, or q to quit--- > >#19 0x00000033 in ?? () > >Previous frame inner to this frame (corrupt stack?) > >_______________________________________________ > >freebsd-hackers@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > >To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.or= g" >=20 > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" --Po3hG7FLjYU3tiSY Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFQHP3C3+MBN1Mb4gRAo/cAJ4hKUa0spNekUDK2bfrg2eAA9mzOwCfYeWW 01UsJX7jBRFj/nFIm4+Y+KM= =J6LK -----END PGP SIGNATURE----- --Po3hG7FLjYU3tiSY-- From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 06:50:57 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9CEB816A407; Thu, 26 Oct 2006 06:50:57 +0000 (UTC) (envelope-from jan@melen.org) Received: from foxgw.melen.org (Savi-Mel.dna.fi [83.143.60.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id EBDD343D4C; Thu, 26 Oct 2006 06:50:56 +0000 (GMT) (envelope-from jan@melen.org) Received: from localhost ([IPv6:2001:14b8:400:f00::ffff]) (authenticated bits=0) by foxgw.melen.org (8.13.8/8.13.7) with ESMTP id k9Q6odKq079375 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 26 Oct 2006 09:50:54 +0300 (EEST) (envelope-from jan@melen.org) From: Jan Mikael Melen To: freebsd-hackers@freebsd.org, freebsd-net@freebsd.org Date: Thu, 26 Oct 2006 09:52:09 +0300 User-Agent: KMail/1.9.4 References: <200608092157.07573.jan@melen.org> In-Reply-To: <200608092157.07573.jan@melen.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200610260952.10413.jan@melen.org> X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on foxgw.melen.org X-Virus-Status: Clean X-Mailman-Approved-At: Thu, 26 Oct 2006 12:46:21 +0000 Cc: Subject: Re: Problem with routes when configuring IPv6 addresses X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 06:50:57 -0000 Hi, Just answering my own mail. Here is small patch that fixes this problem for us in 6.1. --- nd6_rtr.c.orig Mon Mar 20 18:23:08 2006 +++ nd6_rtr.c Thu Oct 26 09:48:59 2006 @@ -1409,12 +1409,20 @@ if (pr->ndpr_raf_onlink == 0) continue; - if ((pr->ndpr_stateflags & NDPRF_DETACHED) == 0 && + /* For some reason nd6 tries to find a active + * advertising router also for prefixes that are + * statically configured which shouldn't be the case + */ + if (pr->ndpr_vltime == ND6_INFINITE_LIFETIME) { + pr->ndpr_stateflags &= ~NDPRF_DETACHED; + } else { + if ((pr->ndpr_stateflags & NDPRF_DETACHED) == 0 && find_pfxlist_reachable_router(pr) == NULL) pr->ndpr_stateflags |= NDPRF_DETACHED; if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0 && find_pfxlist_reachable_router(pr) != 0) pr->ndpr_stateflags &= ~NDPRF_DETACHED; + } } } else { /* there is no prefix that has a reachable router */ On Wednesday 09 August 2006 21:57, Jan Mikael Melen wrote: > Hello, > > I previously already sent this to the freebsd-net list but didn't get any > response so let's try the hackers list instead. > > I have a problem with routes in 6.1 when configuring IPv6 address using > both autoconfigured addresses at the same time with statically configured > addresses from different prefixes. > > If the host is not accepting router advertisements everything seems to work > fine: > # sysctl -a | grep rtad > net.inet6.ip6.accept_rtadv: 0 > # ifconfig fxp0 inet6 3ffe:101::1 prefixlen 64 > > # netstat -rn -f inet6 | grep 3ffe:101 > 3ffe:101::/64 link#1 UC > fxp0 > 3ffe:101::1 00:12:3f:71:3e:ef UHL > lo0 > # > > As you can see I have two routes one for the loopback and one for the > prefix as it should GREAT! > > Now if I'll set the host to accept router advertisements then the route for > the 3ffe:101:: prefix will be deleted as the first router advertisement is > received. The router advertises prefix 3ffe:14b8:400:101::/64. > > # sysctl net.inet6.ip6.accept_rtadv=1 > net.inet6.ip6.accept_rtadv: 0 -> 1 > # rtsol -a > # netstat -rn -f inet6 | grep 3ffe:101 > 3ffe:101::1 00:12:3f:71:3e:ef UHL > lo0 > # > > It seems that the route is deleted because in function > pfxlist_onlink_check() there is a check that if the state has changed to > DETACHED the > nd6_prefix_offlink will be called which then removes the route: > if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0 && > (pr->ndpr_stateflags & NDPRF_ONLINK) != 0) { > if ((e = nd6_prefix_offlink(pr)) != 0) { > nd6log((LOG_ERR, > "pfxlist_onlink_check: failed to " > "make %s/%d offlink, errno=%d\n", > ip6_sprintf(&pr->ndpr_prefix.sin6_addr), > pr->ndpr_plen, e)); > } > } > > This far I digged in to the code but then ran out of steam :-( Obviously > the state should not be set to DETACHED for manually configured prefixes > but the question is rather where it should be done. > > Before somebody asks, if I first do the autoconfiguration part and then > after I have the autoconfigured address add the manually configured address > the result is that there wont be any route for the manually configured > prefix (3ffe:101::/64). > > Regards, > Jan > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 16:23:07 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 63FD716A40F for ; Thu, 26 Oct 2006 16:23:07 +0000 (UTC) (envelope-from micahjon@ywave.com) Received: from relay0.av-mx.com (relay0.av-mx.com [137.118.16.125]) by mx1.FreeBSD.org (Postfix) with ESMTP id B221543D66 for ; Thu, 26 Oct 2006 16:23:00 +0000 (GMT) (envelope-from micahjon@ywave.com) X-Virus-Scan-Time: 0 Received: from [137.118.16.55] (HELO mx3.av-mx.com) by relay0.av-mx.com (CommuniGate Pro SMTP 4.2.10) with SMTP id 444858722 for freebsd-hackers@freebsd.org; Thu, 26 Oct 2006 12:22:46 -0400 Received: (qmail 3698 invoked from network); 26 Oct 2006 16:22:45 -0000 Received: from dsl28213.ywave.com (HELO ?192.168.1.66?) (micahjon@ywave.com@216.227.115.213) by mx3.av-mx.com with SMTP; 26 Oct 2006 16:22:45 -0000 X-CLIENT-IP: 216.227.115.213 X-CLIENT-HOST: dsl28213.ywave.com Message-ID: <4540E0D3.3010800@ywave.com> Date: Thu, 26 Oct 2006 09:22:43 -0700 From: Micah User-Agent: Thunderbird 1.5.0.7 (X11/20061019) MIME-Version: 1.0 To: Kostik Belousov References: <453F882B.2040009@ywave.com> <453F98C4.2060402@ywave.com> <20061026083816.GS45605@deviant.kiev.zoral.com.ua> In-Reply-To: <20061026083816.GS45605@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: FreeBSD Hackers Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 16:23:07 -0000 Kostik Belousov wrote: > I saw several similar reports. > > Please, submit me the output of the "print *mp" in the same frame. > Also, I'm interested in kernel config. > > Is the problem reproducible ? It seems now that any time I compile openoffice the system will eventually panic. Other disk intensive jobs, like my nightly photo-album update, may or may not trigger it. I currently have two dumps for 6.1p10. I thought this might be failing hardware because the system has worked fine for nearly a year, but the fact that it panics on the same line of code every time makes me wonder. Here are the prints from the latest dump: (kgdb) print vp $1 = (struct vnode *) 0x5ccc0000 (kgdb) print *mp $2 = {mnt_list = {tqe_next = 0x0, tqe_prev = 0xc5a5b400}, mnt_op = 0xc07647e0, mnt_vfc = 0xc0764820, mnt_vnodecovered = 0xc5b53110, mnt_syncer = 0xc5b57330, mnt_nvnodelist = {tqh_first = 0xc7bf5660, tqh_last = 0xc8c86cd4}, mnt_lock = {lk_interlock = 0xc0777654, lk_flags = 0, lk_sharecount = 0, lk_waitcount = 0, lk_exclusivecount = 0, lk_prio = 80, lk_wmesg = 0xc072698f "vfslock", lk_timo = 0, lk_lockholder = 0xffffffff, lk_newlock = 0x0}, mnt_mtx = {mtx_object = { lo_class = 0xc07534e4, lo_name = 0xc072697e "struct mount mtx", lo_type = 0xc072697e "struct mount mtx", lo_flags = 196608, lo_list = { tqe_next = 0x0, tqe_prev = 0x0}, lo_witness = 0x0}, mtx_lock = 4, mtx_recurse = 0}, mnt_writeopcount = 0, mnt_flag = 2101248, mnt_opt = 0xc5a50b30, mnt_optnew = 0x0, mnt_kern_flag = 536870912, mnt_maxsymlinklen = 120, mnt_stat = {f_version = 537068824, f_type = 7, f_flags = 2101248, f_bsize = 2048, f_iosize = 16384, f_blocks = 47731967, f_bfree = 26320368, f_bavail = 22501811, f_files = 12341246, f_ffree = 11560039, f_syncwrites = 0, f_asyncwrites = 0, f_syncreads = 0, f_asyncreads = 0, f_spare = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, f_namemax = 255, f_owner = 0, f_fsid = {val = {1161696182, 824004859}}, f_charspare = '\0' , f_fstypename = "ufs", '\0' , f_mntfromname = "/dev/ad4s1h", '\0' , f_mntonname = "/home", '\0' }, mnt_cred = 0xc5b55280, mnt_data = 0xc5ac4900, mnt_time = 0, mnt_iosize_max = 131072, mnt_export = 0x0, mnt_mntlabel = 0x0, mnt_fslabel = 0x0, mnt_nvnodelistsize = 85186, mnt_hashseed = 2609235808, mnt_markercnt = 0, mnt_holdcnt = 0, mnt_holdcntwaiters = 0, mnt_secondary_writes = 0, mnt_secondary_accwrites = 2107220, mnt_ref = 85186} Kernel Conf (it's based on generic, but isn't): # # GENERIC -- Generic kernel configuration file for FreeBSD/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.3.2.1 2005/10/28 19:22:41 jhb Exp $ machine i386 #cpu I486_CPU #cpu I586_CPU cpu I686_CPU ident TRISHA # To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols #options SCHED_ULE # ULE scheduler options SCHED_4BSD # 4BSD scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists options UFS_DIRHASH # Improve performance on big directories options MD_ROOT # MD is a potential root device options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT options MSDOSFS # MSDOS Filesystem options CD9660 # ISO 9660 Filesystem options PROCFS # Process filesystem (requires PSEUDOFS) options PSEUDOFS # Pseudo-filesystem framework options GEOM_GPT # GUID Partition Tables. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] options COMPAT_FREEBSD4 # Compatible with FreeBSD4 options COMPAT_FREEBSD5 # Compatible with FreeBSD5 options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. options ADAPTIVE_GIANT # Giant mutex is adaptive. device apic # I/O APIC # Bus support. device eisa device pci # Floppy drives device fdc # ATA and ATAPI devices device ata device atadisk # ATA disk drives device ataraid # ATA RAID drives device atapicd # ATAPI CDROM drives device atapifd # ATAPI floppy drives device atapist # ATAPI tape drives options ATA_STATIC_ID # Static device numbering device atapicam # allow ATAPI ddevice access through scsi subsystem # SCSI Controllers #None # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) # RAID controllers interfaced to the SCSI subsystem #None # RAID controllers #None # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller device atkbd # AT keyboard device psm # PS/2 mouse device vga # VGA video card driver device splash # Splash screen and screen saver support # syscons is the default console driver, resembling an SCO console device sc device agp # support several AGP chipsets device drm # DRM core module required by DRM drivers #device radeondrm # ATI Radeon # Power management support (see NOTES for more options) #device apm # Add suspend/resume support for the i8254. device pmtimer # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support #None # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports # Parallel port device ppc device ppbus # Parallel port bus (required) device lpt # Printer device plip # TCP/IP over parallel device ppi # Parallel port interface device #device vpo # Requires scbus and da # If you've got a "dumb" serial or parallel PCI card that is # supported by the puc(4) glue driver, uncomment the following # line to enable it (connects to the sio and/or ppc drivers): #device puc # PCI Ethernet NICs. #None # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support device fxp # Intel EtherExpress PRO/100B (82557, 82558) # ISA Ethernet NICs. pccard NICs included. #None # ISA devices that use the old ISA shims #device le # Wireless NIC cards #None # Pseudo devices. device loop # Network loopback device random # Entropy device device ether # Ethernet support device sl # Kernel SLIP device ppp # Kernel PPP device tun # Packet tunnel. device pty # Pseudo-ttys (telnet etc) device md # Memory "disks" device gif # IPv6 and IPv4 tunneling device faith # IPv6-to-IPv4 relaying (translation) # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! # Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # "Human Interface Devices" device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse #device ural # Ralink Technology RT2500USB wireless NICs #device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires miibus #None # FireWire support #None From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 18:05:02 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E661C16A416 for ; Thu, 26 Oct 2006 18:05:02 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from fw.zoral.com.ua (fw.zoral.com.ua [213.186.206.134]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4AF1F43D6B for ; Thu, 26 Oct 2006 18:05:01 +0000 (GMT) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by fw.zoral.com.ua (8.13.4/8.13.4) with ESMTP id k9QHjjlC035428 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 26 Oct 2006 20:45:45 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.13.8/8.13.8) with ESMTP id k9QI4tit015635; Thu, 26 Oct 2006 21:04:55 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.13.8/8.13.8/Submit) id k9QI4tdP015634; Thu, 26 Oct 2006 21:04:55 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 26 Oct 2006 21:04:55 +0300 From: Kostik Belousov To: Micah Message-ID: <20061026180455.GG45605@deviant.kiev.zoral.com.ua> References: <453F882B.2040009@ywave.com> <453F98C4.2060402@ywave.com> <20061026083816.GS45605@deviant.kiev.zoral.com.ua> <4540E0D3.3010800@ywave.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="R9b51G30WkD62Ue3" Content-Disposition: inline In-Reply-To: <4540E0D3.3010800@ywave.com> User-Agent: Mutt/1.4.2.2i X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on fw.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=1.9 required=5.0 tests=DNS_FROM_RFC_ABUSE, SPF_NEUTRAL,UNPARSEABLE_RELAY autolearn=no version=3.1.4 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on fw.zoral.com.ua Cc: FreeBSD Hackers Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 18:05:03 -0000 --R9b51G30WkD62Ue3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Oct 26, 2006 at 09:22:43AM -0700, Micah wrote: > Kostik Belousov wrote: > >I saw several similar reports. > > > >Please, submit me the output of the "print *mp" in the same frame. > >Also, I'm interested in kernel config.=20 > > > >Is the problem reproducible ? >=20 > It seems now that any time I compile openoffice the system will=20 > eventually panic. Other disk intensive jobs, like my nightly photo-album= =20 > update, may or may not trigger it. I currently have two dumps for=20 > 6.1p10. I thought this might be failing hardware because the system has= =20 > worked fine for nearly a year, but the fact that it panics on the same=20 > line of code every time makes me wonder. I'm very suspicious to the claim of failing hw since trace is the same all times (is this true) ? This looks like memory corruption. First, I would recommend to update to RELENG_6 due to a number of VFS fixes. Second, could you set kern.maxvnodes in the /boot/loader.conf ? Check the value choosen by kernel by "sysctl kern.maxvnodes", and then set it to the 2/3 of the reported number and reboot. If I not gather any useful info from that action, I most likely provide you with debugging patch. -- Kostik Belousov. --R9b51G30WkD62Ue3 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFQPjGC3+MBN1Mb4gRAjFIAKCBpsvzqoXxS+H3K0gbr3sLkQhsnQCgkKwB X92CZJnknOM9Dorxr+XFBAc= =j0W1 -----END PGP SIGNATURE----- --R9b51G30WkD62Ue3-- From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 20:59:27 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8738516A407 for ; Thu, 26 Oct 2006 20:59:27 +0000 (UTC) (envelope-from micahjon@ywave.com) Received: from relay2.av-mx.com (relay2.av-mx.com [137.118.16.124]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9645443D53 for ; Thu, 26 Oct 2006 20:59:26 +0000 (GMT) (envelope-from micahjon@ywave.com) X-Virus-Scan-Time: 0 Received: from [137.118.16.62] (HELO mx1.av-mx.com) by relay2.av-mx.com (CommuniGate Pro SMTP 4.2.10) with SMTP id 449124146 for freebsd-hackers@freebsd.org; Thu, 26 Oct 2006 16:59:25 -0400 Received: (qmail 10010 invoked from network); 26 Oct 2006 20:59:23 -0000 Received: from dsl28213.ywave.com (HELO ?192.168.1.66?) (micahjon@ywave.com@216.227.115.213) by 0 with SMTP; 26 Oct 2006 20:59:23 -0000 X-CLIENT-IP: 216.227.115.213 X-CLIENT-HOST: dsl28213.ywave.com Message-ID: <454121AA.9020703@ywave.com> Date: Thu, 26 Oct 2006 13:59:22 -0700 From: Micah User-Agent: Thunderbird 1.5.0.7 (X11/20061019) MIME-Version: 1.0 To: Kostik Belousov References: <453F882B.2040009@ywave.com> <453F98C4.2060402@ywave.com> <20061026083816.GS45605@deviant.kiev.zoral.com.ua> <4540E0D3.3010800@ywave.com> <20061026180455.GG45605@deviant.kiev.zoral.com.ua> In-Reply-To: <20061026180455.GG45605@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Cc: FreeBSD Hackers Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 20:59:27 -0000 Kostik Belousov wrote: > On Thu, Oct 26, 2006 at 09:22:43AM -0700, Micah wrote: >> Kostik Belousov wrote: >>> I saw several similar reports. >>> >>> Please, submit me the output of the "print *mp" in the same frame. >>> Also, I'm interested in kernel config. >>> >>> Is the problem reproducible ? >> It seems now that any time I compile openoffice the system will >> eventually panic. Other disk intensive jobs, like my nightly photo-album >> update, may or may not trigger it. I currently have two dumps for >> 6.1p10. I thought this might be failing hardware because the system has >> worked fine for nearly a year, but the fact that it panics on the same >> line of code every time makes me wonder. > > I'm very suspicious to the claim of failing hw since trace is the same all > times (is this true) ? This looks like memory corruption. They're not identical, see below. I didn't compare the traces until now since the proximate cause was the same line of code. > First, I would recommend to update to RELENG_6 due to a number of VFS fixes. > Second, could you set kern.maxvnodes in the /boot/loader.conf ? Check the > value choosen by kernel by "sysctl kern.maxvnodes", and then set it > to the 2/3 of the reported number and reboot. I'll try the update first by itself to see. > If I not gather any useful info from that action, I most likely provide you > with debugging patch. > > -- > Kostik Belousov. Thanks for the help, trisha# kgdb -q kernel.debug /home/crash/vmcore.3 [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x5ccc0028 fault code = supervisor read, page not present instruction pointer = 0x20:0xc0593d34 stack pointer = 0x28:0xf042c7ac frame pointer = 0x28:0xf042c7cc code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 55305 (bash) trap number = 12 panic: page fault Uptime: 1h0m55s Dumping 1534 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1534MB (392672 pages) 1518 1502 1486 1470 1454 1438 1422 1406 1390 1374 1358 1342 1326 1310 1294 1278 1262 1246 1230 1214 1198 1182 1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62 46 30 14 #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc0535a3f in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:402 #2 0xc0535d66 in panic (fmt=0xc0711f66 "%s") at /usr/src/sys/kern/kern_shutdown.c:558 #3 0xc06ed08c in trap_fatal (frame=0xf042c76c, eva=0) at /usr/src/sys/i386/i386/trap.c:836 #4 0xc06ecd92 in trap_pfault (frame=0xf042c76c, usermode=0, eva=1556873256) at /usr/src/sys/i386/i386/trap.c:744 #5 0xc06ec95d in trap (frame= {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 4, tf_esi = 4, tf_ebp = -264058932, tf_isp = -264058984, tf_ebx = 1556873216, tf_edx = -980369408, tf_ecx = -979030016, tf_eax = 10436743, tf_trapno = 12, tf_err = 0, tf_eip = -1067893452, tf_cs = 32, tf_eflags = 66054, tf_esp = -979030016, tf_ss = 10436743}) at /usr/src/sys/i386/i386/trap.c:434 #6 0xc06d9f8a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0xc0593d34 in vfs_hash_get (mp=0xc5a53000, hash=10436743, flags=2, td=0xc8409180, vpp=0xf042c8b4, fn=0, arg=0x0) at /usr/src/sys/kern/vfs_hash.c:73 #8 0xc067b0b9 in ffs_vget (mp=0xc5a53000, ino=10436743, flags=2, vpp=0xf042c8b4) at pcpu.h:162 #9 0xc065a9ee in ffs_valloc (pvp=0xc67d0770, mode=33188, cred=0xc643f480, vpp=0xf042c8b4) at /usr/src/sys/ufs/ffs/ffs_alloc.c:936 #10 0xc0689b4e in ufs_makeinode (mode=33188, dvp=0xc67d0770, vpp=0xf042cbd4, cnp=0xf042cbe8) at /usr/src/sys/ufs/ufs/ufs_vnops.c:2181 #11 0xc0686756 in ufs_create (ap=0xc590c000) at /usr/src/sys/ufs/ufs/ufs_vnops.c:171 #12 0xc07010e3 in VOP_CREATE_APV (vop=0x9f4087, a=0xf042ca50) at vnode_if.c:204 #13 0xc05acca5 in vn_open_cred (ndp=0xf042cbc0, flagp=0xf042ccc0, cmode=420, cred=0xc643f480, fdidx=3) at vnode_if.h:111 #14 0xc05aca93 in vn_open (ndp=0xc5a53000, flagp=0x9f4087, cmode=10436743, fdidx=10436743) at /usr/src/sys/kern/vfs_vnops.c:91 #15 0xc05a3bd8 in kern_open (td=0xc8409180, path=0x9f4087
, pathseg=10436743, flags=1538, mode=438) at /usr/src/sys/kern/vfs_syscalls.c:1002 #16 0xc05a3ad6 in open (td=0x9f4087, uap=0xf042cd04) at /usr/src/sys/kern/vfs_syscalls.c:968 #17 0xc06ed462 in syscall (frame= {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 0, tf_esi = 135315904, tf_ebp = -1077955784, tf_isp = -264057500, tf_ebx = 1537, tf_edx = 135287968, tf_ecx = 13, tf_eax = 5, tf_trapno = 12, tf_err = 2, tf_eip = 1211056535, tf_cs = 51, tf_eflags = 582, tf_esp = -1077956084, tf_ss = 59}) ---Type to continue, or q to quit--- at /usr/src/sys/i386/i386/trap.c:981 #18 0xc06d9fdf in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200 #19 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) trisha# kgdb -q kernel.debug /home/crash/vmcore.4 [GDB will not be able to debug user-mode threads: /usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"] Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x5ccc0028 fault code = supervisor read, page not present instruction pointer = 0x20:0xc0593d34 stack pointer = 0x28:0xf039389c frame pointer = 0x28:0xf03938bc code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 38817 (find) trap number = 12 panic: page fault Uptime: 47m24s Dumping 1534 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1534MB (392672 pages) 1518 1502 1486 1470 1454 1438 1422 1406 1390 1374 1358 1342 1326 1310 1294 1278 1262 1246 1230 1214 1198 1182 1166 1150 1134 1118 1102 1086 1070 1054 1038 1022 1006 990 974 958 942 926 910 894 878 862 846 830 814 798 782 766 750 734 718 702 686 670 654 638 622 606 590 574 558 542 526 510 494 478 462 446 430 414 398 382 366 350 334 318 302 286 270 254 238 222 206 190 174 158 142 126 110 94 78 62 46 30 14 #0 doadump () at pcpu.h:165 165 __asm __volatile("movl %%fs:0,%0" : "=r" (td)); (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc0535a3f in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:402 #2 0xc0535d66 in panic (fmt=0xc0711f66 "%s") at /usr/src/sys/kern/kern_shutdown.c:558 #3 0xc06ed08c in trap_fatal (frame=0xf039385c, eva=0) at /usr/src/sys/i386/i386/trap.c:836 #4 0xc06ecd92 in trap_pfault (frame=0xf039385c, usermode=0, eva=1556873256) at /usr/src/sys/i386/i386/trap.c:744 #5 0xc06ec95d in trap (frame= {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 4, tf_esi = 4, tf_ebp = -264685380, tf_isp = -264685432, tf_ebx = 1556873216, tf_edx = -980381696, tf_ecx = -980383744, tf_eax = 9825235, tf_trapno = 12, tf_err = 0, tf_eip = -1067893452, tf_cs = 32, tf_eflags = 66054, tf_esp = -980383744, tf_ss = 9825235}) at /usr/src/sys/i386/i386/trap.c:434 #6 0xc06d9f8a in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0xc0593d34 in vfs_hash_get (mp=0xc5908800, hash=9825235, flags=2, td=0xc7915480, vpp=0xf039399c, fn=0, arg=0x0) at /usr/src/sys/kern/vfs_hash.c:73 #8 0xc067b0b9 in ffs_vget (mp=0xc5908800, ino=9825235, flags=2, vpp=0xf039399c) at pcpu.h:162 #9 0xc06834b3 in ufs_lookup (ap=0xf0393a40) at /usr/src/sys/ufs/ufs/ufs_lookup.c:572 #10 0xc0701063 in VOP_CACHEDLOOKUP_APV (vop=0x95ebd3, a=0xc5909000) at vnode_if.c:150 #11 0xc059006a in vfs_cache_lookup (ap=0x95ebd3) at vnode_if.h:82 #12 0xc0700fd8 in VOP_LOOKUP_APV (vop=0xc0765080, a=0xf0393aec) at vnode_if.c:99 #13 0xc059547b in lookup (ndp=0xf0393b94) at vnode_if.h:56 #14 0xc0594c08 in namei (ndp=0xf0393b94) at /usr/src/sys/kern/vfs_lookup.c:203 #15 0xc05a68bf in kern_lstat (td=0xc7915480, path=0xc5909000 "pW2È\220©|Æ\220Y\204ÆÐMúÆ :KÇÀÜeÆ\200\210ùÈ\220Ù\035Ç :\002ÇP¥ùÆ@t:ÈPu:È R³Æ \032ÀÆ\220y&Æ zæÆ0\2031ÈÐ\215èÆ0ÃæÆ\200H\036ÇpW3È`\206\221ÆÀ\234ýÇ", pathseg=3314585600, sbp=0x95ebd3) at /usr/src/sys/kern/vfs_syscalls.c:2125 #16 0xc05a683f in lstat (td=0x95ebd3, uap=0xf0393d04) at /usr/src/sys/kern/vfs_syscalls.c:2109 #17 0xc06ed462 in syscall (frame= {tf_fs = 59, tf_es = 59, tf_ds = 59, tf_edi = 134582344, tf_esi = 134582272, tf_ebp = -1077951640, tf_isp = -264684188, tf_ebx = 672453672, tf_edx = 134582272, tf_ecx = 134561792, tf_eax = 190, tf_trapno = 0, tf_err = 2, tf_eip = 672342295, tf_cs = 51, tf_eflags = 582, tf_esp = -1077951796, tf_ss = 59}) ---Type to continue, or q to quit--- at /usr/src/sys/i386/i386/trap.c:981 #18 0xc06d9fdf in Xint0x80_syscall () at /usr/src/sys/i386/i386/exception.s:200 #19 0x00000033 in ?? () Previous frame inner to this frame (corrupt stack?) From owner-freebsd-hackers@FreeBSD.ORG Thu Oct 26 22:24:35 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EDA7616A403 for ; Thu, 26 Oct 2006 22:24:35 +0000 (UTC) (envelope-from spork@fasttrackmonkey.com) Received: from angryfist.fasttrackmonkey.com (angryfist.fasttrackmonkey.com [216.220.107.230]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2CBDD43D45 for ; Thu, 26 Oct 2006 22:24:35 +0000 (GMT) (envelope-from spork@fasttrackmonkey.com) Received: (qmail 14159 invoked by uid 2003); 26 Oct 2006 22:25:40 -0000 Received: from spork@fasttrackmonkey.com by angryfist.fasttrackmonkey.com by uid 1001 with qmail-scanner-1.20 (clamscan: 0.65. Clear:RC:1(216.220.116.154):. Processed in 0.103728 secs); 26 Oct 2006 22:25:40 -0000 Received: from unknown (HELO white.nat.fasttrackmonkey.com) (216.220.116.154) by 0 with (DHE-RSA-AES256-SHA encrypted) SMTP; 26 Oct 2006 22:25:40 -0000 Date: Thu, 26 Oct 2006 18:24:33 -0400 (EDT) From: Charles Sprickman X-X-Sender: spork@white.nat.fasttrackmonkey.com To: John Baldwin In-Reply-To: <200610251055.15445.jhb@freebsd.org> Message-ID: References: <453ef5d4.JWeFkgfXTFibI+uh%perryh@pluto.rain.com> <200610251055.15445.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-hackers@freebsd.org, perryh@pluto.rain.com Subject: Re: Panic caused by bad memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Oct 2006 22:24:36 -0000 On Wed, 25 Oct 2006, John Baldwin wrote: > On Wednesday 25 October 2006 02:28, Charles Sprickman wrote: >> On Tue, 24 Oct 2006 perryh@pluto.rain.com wrote: >> >>>> I can't get a kernel dump since it fails like this each time: >>>> >>>> dumping to dev #da/0x20001, offset 2097152 >>>> dump 1024 1023 1022 1021 Aborting dump due to I/O error. >>>> status == 0xb, scsi status == 0x0 >>>> failed, reason: i/o error >>> >>> Bad memory seems unlikely to cause an I/O error trying to write the >>> dump to the swap partition. I'd guess a dicey drive -- and bad >>> swap space could also account for the original crash. You might >>> be able to get a backup by booting single user, provided nothing >>> activates the (presumably bad) swap partition. >> >> Just for the record, this box is running an Adaptec raid controller (2005S >> - ZCR card) and swap is coming off a mirrored array. >> >> Coincidentally, I have a utility box where it had bad blocks on the swap >> partition (but no others) - what I saw there is that the box would just >> hang and spit out a bunch of "swap_pager timeout" messages to the console. >> Quick and dirty remote fix while waiting for a drive? Run file-backed >> swap on /usr. :) >> >> Let's pretend for a minute it's not the drive that's the root cause... >> Not saying it isn't - we're none too thrilled with these Adaptec RAID >> controllers... Do those memory addresses in the panic message point >> towards bad memory if they are always the same? > > No, they are virtual addresses. Having the same EIP means you are crashing in > the same place. Did you recently kldunload a module before it crashed? Same place == same code? The only change on this box was a massive portupgrade which included apache, php, mysql, postgres and most of the additional gnu tools. There is one module that someone set to load on boot, and that's the linuxolator. I have disabled that in rc.conf for now and we'll see what happens after the next panic. We also have a few sticks of RAM on order now... Thanks, Charles > -- > John Baldwin > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > From owner-freebsd-hackers@FreeBSD.ORG Fri Oct 27 17:13:47 2006 Return-Path: X-Original-To: hackers@FreeBSD.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A62F16A40F; Fri, 27 Oct 2006 17:13:47 +0000 (UTC) (envelope-from flz@FreeBSD.org) Received: from smtp2-g19.free.fr (smtp2-g19.free.fr [212.27.42.28]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8C7C243D5D; Fri, 27 Oct 2006 17:13:46 +0000 (GMT) (envelope-from flz@FreeBSD.org) Received: from smtp.xbsd.org (unknown [82.233.2.192]) by smtp2-g19.free.fr (Postfix) with ESMTP id ACBB175E8A; Fri, 27 Oct 2006 19:13:45 +0200 (CEST) Received: from localhost (localhost.xbsd.org [127.0.0.1]) by smtp.xbsd.org (Postfix) with ESMTP id 0C05911AC3; Fri, 27 Oct 2006 19:13:44 +0200 (CEST) Received: from smtp.xbsd.org ([127.0.0.1]) by localhost (srv1.xbsd.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 99040-10; Fri, 27 Oct 2006 19:13:39 +0200 (CEST) Received: from [193.120.13.130] (cream.xbsd.org [193.120.13.130]) by smtp.xbsd.org (Postfix) with ESMTP id 259BB119E6; Fri, 27 Oct 2006 19:13:37 +0200 (CEST) From: Florent Thoumie To: ports@FreeBSD.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-L4KRFECFGKFZ7ie7XPOR" Date: Fri, 27 Oct 2006 18:13:36 +0100 Message-Id: <1161969216.70654.9.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.8.1 FreeBSD GNOME Team Port X-Virus-Scanned: amavisd-new at xbsd.org Cc: hackers@FreeBSD.org, current@FreeBSD.org Subject: Bugathon, yeah it's time again X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Oct 2006 17:13:47 -0000 --=-L4KRFECFGKFZ7ie7XPOR Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Ok, heads up folks. Ports have been frozen for some weeks now, and it's only a matter of time before ice starts melting. So we're planning to hold the next bugathon next week end (well, in one week). Same server, same channel (#freebsd-bugbusters @ EFNET), you have one week to grab a list of PR and start working on them. WWW: http://wikitest.freebsd.org/Bugathons/November2006 Note: Since I still don't receive much feedback from src-committers, I expect it to be mainly ports-related. Obviously I may be wrong and there will probably a few src-committers coming, this channel is still a good place to discuss bugs. --=20 Florent Thoumie flz@FreeBSD.org FreeBSD Committer --=-L4KRFECFGKFZ7ie7XPOR Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQBFQj5AMxEkbVFH3PQRArspAJ9FBhxxcJHscv8GeasSq/Iq+MCEbACfV5m/ ne8BgQZfBeS1fp8z8s2HVGQ= =2YfZ -----END PGP SIGNATURE----- --=-L4KRFECFGKFZ7ie7XPOR-- From owner-freebsd-hackers@FreeBSD.ORG Sat Oct 28 04:18:17 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3570C16A47C for ; Sat, 28 Oct 2006 04:18:17 +0000 (UTC) (envelope-from micahjon@ywave.com) Received: from relay0.av-mx.com (relay0.av-mx.com [137.118.16.125]) by mx1.FreeBSD.org (Postfix) with ESMTP id D4A2B43D67 for ; Sat, 28 Oct 2006 04:18:15 +0000 (GMT) (envelope-from micahjon@ywave.com) X-Virus-Scan-Time: 0 Received: from [137.118.16.60] (HELO mx2.av-mx.com) by relay0.av-mx.com (CommuniGate Pro SMTP 4.2.10) with SMTP id 447099685 for freebsd-hackers@freebsd.org; Sat, 28 Oct 2006 00:18:14 -0400 Received: (qmail 26806 invoked from network); 28 Oct 2006 04:18:13 -0000 Received: from dsl28213.ywave.com (HELO ?192.168.1.66?) (micahjon@ywave.com@216.227.115.213) by 0 with SMTP; 28 Oct 2006 04:18:13 -0000 X-CLIENT-IP: 216.227.115.213 X-CLIENT-HOST: dsl28213.ywave.com Message-ID: <4542DA04.4090907@ywave.com> Date: Fri, 27 Oct 2006 21:18:12 -0700 From: Micah User-Agent: Thunderbird 1.5.0.7 (X11/20061019) MIME-Version: 1.0 References: <453F882B.2040009@ywave.com> <453F98C4.2060402@ywave.com> <20061026083816.GS45605@deviant.kiev.zoral.com.ua> <4540E0D3.3010800@ywave.com> <20061026180455.GG45605@deviant.kiev.zoral.com.ua> <454121AA.9020703@ywave.com> In-Reply-To: <454121AA.9020703@ywave.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Kostik Belousov , FreeBSD Hackers Subject: Re: System panic under load (additional information) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Oct 2006 04:18:17 -0000 Micah wrote: > Kostik Belousov wrote: >> On Thu, Oct 26, 2006 at 09:22:43AM -0700, Micah wrote: >>> Kostik Belousov wrote: >>>> I saw several similar reports. >>>> >>>> Please, submit me the output of the "print *mp" in the same frame. >>>> Also, I'm interested in kernel config. >>>> Is the problem reproducible ? >>> It seems now that any time I compile openoffice the system will >>> eventually panic. Other disk intensive jobs, like my nightly >>> photo-album update, may or may not trigger it. I currently have two >>> dumps for 6.1p10. I thought this might be failing hardware because >>> the system has worked fine for nearly a year, but the fact that it >>> panics on the same line of code every time makes me wonder. >> >> I'm very suspicious to the claim of failing hw since trace is the same >> all >> times (is this true) ? This looks like memory corruption. > > They're not identical, see below. I didn't compare the traces until now > since the proximate cause was the same line of code. > >> First, I would recommend to update to RELENG_6 due to a number of VFS >> fixes. >> Second, could you set kern.maxvnodes in the /boot/loader.conf ? Check the >> value choosen by kernel by "sysctl kern.maxvnodes", and then set it >> to the 2/3 of the reported number and reboot. > > I'll try the update first by itself to see. > >> If I not gather any useful info from that action, I most likely >> provide you >> with debugging patch. >> >> -- >> Kostik Belousov. > > Thanks for the help, It's been a little over 24 hours since I upgraded to RELENG_6, and I haven't had a single panic since. I successfully built OO.org and my nightly scripts ran through completely. I'll throw some heavy loads at it tomorrow to stress it some more, but for now it looks like whatever was wrong has been fixed for 6.2. Thanks, Micah