From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3E2CC43387 for ; Wed, 9 Jan 2019 11:28:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5CA5921738 for ; Wed, 9 Jan 2019 11:28:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linaro.org header.i=@linaro.org header.b="UvEgHCGU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730676AbfAIL2M (ORCPT ); Wed, 9 Jan 2019 06:28:12 -0500 Received: from mail-it1-f195.google.com ([209.85.166.195]:36630 "EHLO mail-it1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730392AbfAIL2M (ORCPT ); Wed, 9 Jan 2019 06:28:12 -0500 Received: by mail-it1-f195.google.com with SMTP id c9so10502550itj.1 for ; Wed, 09 Jan 2019 03:28:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dUWGm/4sPfFN1UJt6UEtJ/PK1+2pHD5Y0JKS7yOTNDA=; b=UvEgHCGUwfarWCc7/zBI+UiEkSkzynG6Vpcd0ZY5TEpy090k6LeW/wX2I/sF7fS7VX deN1/pJCZWssjtAQIt98U/fQR7jPsorbb9pFYBvya2qFc0ZfIPBlpDkoo5EVOpGYM3g+ 8GxtP+75TzebzPX8BtdIzr/2F0pS0Ce1/MWfc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dUWGm/4sPfFN1UJt6UEtJ/PK1+2pHD5Y0JKS7yOTNDA=; b=jHV6A3VF9hOLrp+E8/VUn9jzUPDcGeelfSAiEcJKRKB0tV3oWlPthe+vuAurxYTWWC yCV8eYRdsGLV4qEdrcOowwc6olW8owlpktl5G1Ud8QfOMKYR1b6V1qGumBuf0AQyGIhK fFvzECH8BUlhKQTg33OBCCo9LVOoZS3Hi3YRv9aGpvZ2JOvHDQx10h48RXLTwB/wQVNG xu6/Tzet5bwraMH/ELwN+jWWjftaWjwdzfqFONwfX+C0fd7LkUc3IxTf/HrF7EUVyrpr NvVBhPO1uS4qTj5pljVOPJudHhqYvqY2KG34OM3i4yKk7LuoDbti+YVhkMw9vlnwT1vk vXRg== X-Gm-Message-State: AJcUukcyqa6j5J+utmCKxdrRYQ3+C/gKlAsMP1OgxTywZs0E53D5fAN+ spywi1JOjD6yMOhk1vgnu7/WjLIqQ5MBNa7MAS3ZZA== X-Google-Smtp-Source: ALg8bN4Mo4MydjW0+YfIov1HCQrQMsgj7BYwckBh9C5va6ptuExvBqnA2b2qakUy/Cl8vEUw6eNtfKjiHQgkTt5JJcY= X-Received: by 2002:a24:a20e:: with SMTP id j14mr3921367itf.14.1547033289883; Wed, 09 Jan 2019 03:28:09 -0800 (PST) MIME-Version: 1.0 References: <20190107233833.GI5544@atomide.com> <20190108155354.GL5544@atomide.com> <20190108213743.GN5544@atomide.com> <20190109014218.GA8363@linaro.org> <20190109111703.GA28605@lenoch> In-Reply-To: <20190109111703.GA28605@lenoch> From: Vincent Guittot Date: Wed, 9 Jan 2019 12:27:57 +0100 Message-ID: Subject: Re: Regression in v5.0-rc1 with autosuspend hrtimers To: Ladislav Michl Cc: Tony Lindgren , "Rafael J. Wysocki" , Ulf Hansson , "open list:THERMAL" , linux-kernel , LAK , linux-omap@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 9 Jan 2019 at 12:17, Ladislav Michl wrote: > > On Wed, Jan 09, 2019 at 02:42:18AM +0100, Vincent Guittot wrote: > > Le Tuesday 08 Jan 2019 =C3=A0 13:37:43 (-0800), Tony Lindgren a =C3=A9c= rit : > > > * Vincent Guittot [190108 16:42]: > > > > On Tue, 8 Jan 2019 at 16:53, Tony Lindgren wrote= : > > > > > Hmm so could it be that we now rely on timers that that may > > > > > not be capable of waking up the system from idle states with > > > > > hrtimer? > > > > > > > > With nohz and hrtimer enabled, timer relies on hrtimer to generate > > > > the tick so you should use the same interrupt. > > > > > > OK yeah looks like that part is working just fine. > > > > > > Adding some printks and debugging over ssh, looks like > > > omap8250_runtime_resume() gets called just fine based on a wakeirq, > > > but then omap8250_runtime_suspend() runs immediately instead of > > > waiting for the three second timeout. > > > > > > Lowering the autosuspend_delay_ms to 2100 ms makes things work again. > > > Anything higher than 2200 ms seems to somehow time out immediately > > > now :) > > > > This is quite close to the max ns of an int on arm 32bits > > > > Could you try the patch below ? > > > > --- > > drivers/base/power/runtime.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.= c > > index 7062469..44c5c76 100644 > > --- a/drivers/base/power/runtime.c > > +++ b/drivers/base/power/runtime.c > > @@ -141,7 +141,7 @@ u64 pm_runtime_autosuspend_expiration(struct device= *dev) > > > > last_busy =3D READ_ONCE(dev->power.last_busy); > > > > - expires =3D last_busy + autosuspend_delay * NSEC_PER_MSEC; > > + expires =3D last_busy + (u64)(autosuspend_delay) * NSEC_PER_MSEC; > > if (expires <=3D now) > > expires =3D 0; /* Already expired. */ > > Hmm, comment above function states it returns "the expiration time in jif= fies > (adjusted to be nonzero)", so there's probably more to fix... The comment is wrong and should be updated as commit 8234f6734c5d has moved on hrtimer and expires is now in raw ns unit > > You can also consider change like this (still does not return jiffies): > diff --git a/drivers/base/power/runtime.c b/drivers/base/power/runtime.c > index 70624695b6d5..c72eaf21a61c 100644 > --- a/drivers/base/power/runtime.c > +++ b/drivers/base/power/runtime.c > @@ -129,23 +129,20 @@ static void pm_runtime_cancel_pending(struct device= *dev) > u64 pm_runtime_autosuspend_expiration(struct device *dev) > { > int autosuspend_delay; > - u64 last_busy, expires =3D 0; > - u64 now =3D ktime_to_ns(ktime_get()); > + ktime_t expires; > > if (!dev->power.use_autosuspend) > - goto out; > + return 0; > > autosuspend_delay =3D READ_ONCE(dev->power.autosuspend_delay); > if (autosuspend_delay < 0) > - goto out; > - > - last_busy =3D READ_ONCE(dev->power.last_busy); > + return 0; > > - expires =3D last_busy + autosuspend_delay * NSEC_PER_MSEC; > - if (expires <=3D now) > - expires =3D 0; /* Already expired. */ > + expires =3D ktime_add_ns(ms_to_ktime(autosuspend_delay), > + READ_ONCE(dev->power.last_busy)); > + if (expires <=3D ktime_get()) > + return 0; /* Already expired. */ > > - out: > return expires; > } > EXPORT_SYMBOL_GPL(pm_runtime_autosuspend_expiration); > > Regards, > ladis From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD5FFC43387 for ; Wed, 9 Jan 2019 11:28:18 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AB80521738 for ; Wed, 9 Jan 2019 11:28:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="G0bxU3Oy"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=linaro.org header.i=@linaro.org header.b="UvEgHCGU" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AB80521738 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NE5oRdQghpovPV+vifm4fo0poIjsGwddTAkvjqCHdws=; b=G0bxU3Oy9nIb/2 j6SkJuXbg2LW0o0ZljzzniwEhGKXmMZijE7pR4a9y8UieIMjPqeWe1+WxiYckev9+BiYzHj4TnkJ1 hw+qCFt8B64ofA3ME/1lcAryeeeSBRxrBn0e6FZCapXMGkjjn99olyzz4abGUDRIantZYozMACW8m TVL/RQAQAraFkPBl57+IAEMZ7p5d5++wXrE05N3gzhLp4KhjUUZrxw56iq6m8eHuI2YYDoSDQo7Y+ bE0MpwXLhwv1FioxLWvoTqPBmYERyclEYcg94f7mSYjujdcY1sbnQY4mRzJPUU99afzPtd3SaXJqe g5goHMYkCi8NvisoHLig==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1ghC1v-0005eF-Ku; Wed, 09 Jan 2019 11:28:15 +0000 Received: from mail-it1-x142.google.com ([2607:f8b0:4864:20::142]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1ghC1s-0005dg-Ez for linux-arm-kernel@lists.infradead.org; Wed, 09 Jan 2019 11:28:14 +0000 Received: by mail-it1-x142.google.com with SMTP id i145so11174968ita.4 for ; Wed, 09 Jan 2019 03:28:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dUWGm/4sPfFN1UJt6UEtJ/PK1+2pHD5Y0JKS7yOTNDA=; b=UvEgHCGUwfarWCc7/zBI+UiEkSkzynG6Vpcd0ZY5TEpy090k6LeW/wX2I/sF7fS7VX deN1/pJCZWssjtAQIt98U/fQR7jPsorbb9pFYBvya2qFc0ZfIPBlpDkoo5EVOpGYM3g+ 8GxtP+75TzebzPX8BtdIzr/2F0pS0Ce1/MWfc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dUWGm/4sPfFN1UJt6UEtJ/PK1+2pHD5Y0JKS7yOTNDA=; b=ZI7/Cwe6vEPXhcGyMBn4mr1PtuTLI/lepPF2NPEY5rNr/mk0Aq3NBQh87mu7u9vqat r+8kkau6s33nYHyyVzdMNcMptY6+31xxg5gHMQZQPeko4V6X4S5hzirxzd7qBHSAoWEv 2MSacYomO5jLfBMs2GcNDyiUWqnIGHCuLrfKq/avXlinz6bZblQpMBRGLIBfReD2P9Y+ BLAEE8tiIXbE3voA/qRQw5o0yaxy5xAHpA3KUMmqe4dT13AoTM2ZEHQLmFk0/W1Qus6J ktQx4tbX0F9RDtUAGD+FOBjvlrpDb072o6b/OJMCul7A1DTI6Ul5bbqv0jWr6D3T2oak DQNQ== X-Gm-Message-State: AJcUukdJ7EPirjDp9NkG8hABaUUrqMgEs7SqBbDIkXCdiuDE+5wotM7y 4O7IZWN/X9G23y8IM9kmOj20Bsp+wz8yi7DeMN/Fuw== X-Google-Smtp-Source: ALg8bN4Mo4MydjW0+YfIov1HCQrQMsgj7BYwckBh9C5va6ptuExvBqnA2b2qakUy/Cl8vEUw6eNtfKjiHQgkTt5JJcY= X-Received: by 2002:a24:a20e:: with SMTP id j14mr3921367itf.14.1547033289883; Wed, 09 Jan 2019 03:28:09 -0800 (PST) MIME-Version: 1.0 References: <20190107233833.GI5544@atomide.com> <20190108155354.GL5544@atomide.com> <20190108213743.GN5544@atomide.com> <20190109014218.GA8363@linaro.org> <20190109111703.GA28605@lenoch> In-Reply-To: <20190109111703.GA28605@lenoch> From: Vincent Guittot Date: Wed, 9 Jan 2019 12:27:57 +0100 Message-ID: Subject: Re: Regression in v5.0-rc1 with autosuspend hrtimers To: Ladislav Michl X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190109_032812_505730_CA4BEE38 X-CRM114-Status: GOOD ( 25.09 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ulf Hansson , "open list:THERMAL" , Tony Lindgren , "Rafael J. Wysocki" , linux-kernel , linux-omap@vger.kernel.org, LAK Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCA5IEphbiAyMDE5IGF0IDEyOjE3LCBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgt bWlwcy5vcmc+IHdyb3RlOgo+Cj4gT24gV2VkLCBKYW4gMDksIDIwMTkgYXQgMDI6NDI6MThBTSAr MDEwMCwgVmluY2VudCBHdWl0dG90IHdyb3RlOgo+ID4gTGUgVHVlc2RheSAwOCBKYW4gMjAxOSDD oCAxMzozNzo0MyAoLTA4MDApLCBUb255IExpbmRncmVuIGEgw6ljcml0IDoKPiA+ID4gKiBWaW5j ZW50IEd1aXR0b3QgPHZpbmNlbnQuZ3VpdHRvdEBsaW5hcm8ub3JnPiBbMTkwMTA4IDE2OjQyXToK PiA+ID4gPiBPbiBUdWUsIDggSmFuIDIwMTkgYXQgMTY6NTMsIFRvbnkgTGluZGdyZW4gPHRvbnlA YXRvbWlkZS5jb20+IHdyb3RlOgo+ID4gPiA+ID4gSG1tIHNvIGNvdWxkIGl0IGJlIHRoYXQgd2Ug bm93IHJlbHkgb24gdGltZXJzIHRoYXQgdGhhdCBtYXkKPiA+ID4gPiA+IG5vdCBiZSBjYXBhYmxl IG9mIHdha2luZyB1cCB0aGUgc3lzdGVtIGZyb20gaWRsZSBzdGF0ZXMgd2l0aAo+ID4gPiA+ID4g aHJ0aW1lcj8KPiA+ID4gPgo+ID4gPiA+IFdpdGggbm9oeiBhbmQgaHJ0aW1lciBlbmFibGVkLCAg dGltZXIgcmVsaWVzIG9uIGhydGltZXIgdG8gZ2VuZXJhdGUKPiA+ID4gPiB0aGUgdGljayBzbyB5 b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBpbnRlcnJ1cHQuCj4gPiA+Cj4gPiA+IE9LIHllYWggbG9v a3MgbGlrZSB0aGF0IHBhcnQgaXMgd29ya2luZyBqdXN0IGZpbmUuCj4gPiA+Cj4gPiA+IEFkZGlu ZyBzb21lIHByaW50a3MgYW5kIGRlYnVnZ2luZyBvdmVyIHNzaCwgbG9va3MgbGlrZQo+ID4gPiBv bWFwODI1MF9ydW50aW1lX3Jlc3VtZSgpIGdldHMgY2FsbGVkIGp1c3QgZmluZSBiYXNlZCBvbiBh IHdha2VpcnEsCj4gPiA+IGJ1dCB0aGVuIG9tYXA4MjUwX3J1bnRpbWVfc3VzcGVuZCgpIHJ1bnMg aW1tZWRpYXRlbHkgaW5zdGVhZCBvZgo+ID4gPiB3YWl0aW5nIGZvciB0aGUgdGhyZWUgc2Vjb25k IHRpbWVvdXQuCj4gPiA+Cj4gPiA+IExvd2VyaW5nIHRoZSBhdXRvc3VzcGVuZF9kZWxheV9tcyB0 byAyMTAwIG1zIG1ha2VzIHRoaW5ncyB3b3JrIGFnYWluLgo+ID4gPiBBbnl0aGluZyBoaWdoZXIg dGhhbiAyMjAwIG1zIHNlZW1zIHRvIHNvbWVob3cgdGltZSBvdXQgaW1tZWRpYXRlbHkKPiA+ID4g bm93IDopCj4gPgo+ID4gVGhpcyBpcyBxdWl0ZSBjbG9zZSB0byB0aGUgbWF4IG5zIG9mIGFuIGlu dCBvbiBhcm0gMzJiaXRzCj4gPgo+ID4gQ291bGQgeW91IHRyeSB0aGUgcGF0Y2ggYmVsb3cgPwo+ ID4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvYmFzZS9wb3dlci9ydW50aW1lLmMgfCAyICstCj4gPiAg MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCj4gPgo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9wb3dlci9ydW50aW1lLmMgYi9kcml2ZXJzL2Jhc2UvcG93 ZXIvcnVudGltZS5jCj4gPiBpbmRleCA3MDYyNDY5Li40NGM1Yzc2IDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9iYXNlL3Bvd2VyL3J1bnRpbWUuYwo+ID4gKysrIGIvZHJpdmVycy9iYXNlL3Bvd2Vy L3J1bnRpbWUuYwo+ID4gQEAgLTE0MSw3ICsxNDEsNyBAQCB1NjQgcG1fcnVudGltZV9hdXRvc3Vz cGVuZF9leHBpcmF0aW9uKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+Cj4gPiAgICAgICBsYXN0X2J1 c3kgPSBSRUFEX09OQ0UoZGV2LT5wb3dlci5sYXN0X2J1c3kpOwo+ID4KPiA+IC0gICAgIGV4cGly ZXMgPSBsYXN0X2J1c3kgKyBhdXRvc3VzcGVuZF9kZWxheSAqIE5TRUNfUEVSX01TRUM7Cj4gPiAr ICAgICBleHBpcmVzID0gbGFzdF9idXN5ICsgKHU2NCkoYXV0b3N1c3BlbmRfZGVsYXkpICogTlNF Q19QRVJfTVNFQzsKPiA+ICAgICAgIGlmIChleHBpcmVzIDw9IG5vdykKPiA+ICAgICAgICAgICAg ICAgZXhwaXJlcyA9IDA7ICAgIC8qIEFscmVhZHkgZXhwaXJlZC4gKi8KPgo+IEhtbSwgY29tbWVu dCBhYm92ZSBmdW5jdGlvbiBzdGF0ZXMgaXQgcmV0dXJucyAidGhlIGV4cGlyYXRpb24gdGltZSBp biBqaWZmaWVzCj4gKGFkanVzdGVkIHRvIGJlIG5vbnplcm8pIiwgc28gdGhlcmUncyBwcm9iYWJs eSBtb3JlIHRvIGZpeC4uLgoKVGhlIGNvbW1lbnQgaXMgd3JvbmcgYW5kIHNob3VsZCBiZSB1cGRh dGVkIGFzIGNvbW1pdCA4MjM0ZjY3MzRjNWQgaGFzCm1vdmVkIG9uIGhydGltZXIgYW5kIGV4cGly ZXMgaXMgbm93IGluIHJhdyBucyB1bml0Cgo+Cj4gWW91IGNhbiBhbHNvIGNvbnNpZGVyIGNoYW5n ZSBsaWtlIHRoaXMgKHN0aWxsIGRvZXMgbm90IHJldHVybiBqaWZmaWVzKToKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9iYXNlL3Bvd2VyL3J1bnRpbWUuYyBiL2RyaXZlcnMvYmFzZS9wb3dlci9ydW50 aW1lLmMKPiBpbmRleCA3MDYyNDY5NWI2ZDUuLmM3MmVhZjIxYTYxYyAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2Jhc2UvcG93ZXIvcnVudGltZS5jCj4gKysrIGIvZHJpdmVycy9iYXNlL3Bvd2VyL3J1 bnRpbWUuYwo+IEBAIC0xMjksMjMgKzEyOSwyMCBAQCBzdGF0aWMgdm9pZCBwbV9ydW50aW1lX2Nh bmNlbF9wZW5kaW5nKHN0cnVjdCBkZXZpY2UgKmRldikKPiAgdTY0IHBtX3J1bnRpbWVfYXV0b3N1 c3BlbmRfZXhwaXJhdGlvbihzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiAgICAgICAgIGludCBh dXRvc3VzcGVuZF9kZWxheTsKPiAtICAgICAgIHU2NCBsYXN0X2J1c3ksIGV4cGlyZXMgPSAwOwo+ IC0gICAgICAgdTY0IG5vdyA9IGt0aW1lX3RvX25zKGt0aW1lX2dldCgpKTsKPiArICAgICAgIGt0 aW1lX3QgZXhwaXJlczsKPgo+ICAgICAgICAgaWYgKCFkZXYtPnBvd2VyLnVzZV9hdXRvc3VzcGVu ZCkKPiAtICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAw Owo+Cj4gICAgICAgICBhdXRvc3VzcGVuZF9kZWxheSA9IFJFQURfT05DRShkZXYtPnBvd2VyLmF1 dG9zdXNwZW5kX2RlbGF5KTsKPiAgICAgICAgIGlmIChhdXRvc3VzcGVuZF9kZWxheSA8IDApCj4g LSAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+IC0KPiAtICAgICAgIGxhc3RfYnVzeSA9IFJFQURf T05DRShkZXYtPnBvd2VyLmxhc3RfYnVzeSk7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOwo+ Cj4gLSAgICAgICBleHBpcmVzID0gbGFzdF9idXN5ICsgYXV0b3N1c3BlbmRfZGVsYXkgKiBOU0VD X1BFUl9NU0VDOwo+IC0gICAgICAgaWYgKGV4cGlyZXMgPD0gbm93KQo+IC0gICAgICAgICAgICAg ICBleHBpcmVzID0gMDsgICAgLyogQWxyZWFkeSBleHBpcmVkLiAqLwo+ICsgICAgICAgZXhwaXJl cyA9IGt0aW1lX2FkZF9ucyhtc190b19rdGltZShhdXRvc3VzcGVuZF9kZWxheSksCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJFQURfT05DRShkZXYtPnBvd2VyLmxhc3RfYnVzeSkp Owo+ICsgICAgICAgaWYgKGV4cGlyZXMgPD0ga3RpbWVfZ2V0KCkpCj4gKyAgICAgICAgICAgICAg IHJldHVybiAwOyAgICAgICAvKiBBbHJlYWR5IGV4cGlyZWQuICovCj4KPiAtIG91dDoKPiAgICAg ICAgIHJldHVybiBleHBpcmVzOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKHBtX3J1bnRpbWVf YXV0b3N1c3BlbmRfZXhwaXJhdGlvbik7Cj4KPiBSZWdhcmRzLAo+ICAgICAgICAgbGFkaXMKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK