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=-12.8 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 B1B47C433DF for ; Fri, 31 Jul 2020 13:15:38 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (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 7EC5E20663 for ; Fri, 31 Jul 2020 13:15:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DqDTVf6n" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7EC5E20663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 469A186AA5; Fri, 31 Jul 2020 13:15:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oSL6XXmX9KXe; Fri, 31 Jul 2020 13:15:35 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 44E6F868AF; Fri, 31 Jul 2020 13:15:35 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id DF7E21BF27C for ; Fri, 31 Jul 2020 13:15:33 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id DB58A8862C for ; Fri, 31 Jul 2020 13:15:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VT3o5hhixCbo for ; Fri, 31 Jul 2020 13:15:32 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-qv1-f68.google.com (mail-qv1-f68.google.com [209.85.219.68]) by hemlock.osuosl.org (Postfix) with ESMTPS id 43D4C88622 for ; Fri, 31 Jul 2020 13:15:32 +0000 (UTC) Received: by mail-qv1-f68.google.com with SMTP id a19so8066666qvy.3 for ; Fri, 31 Jul 2020 06:15:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references:mime-version:content-transfer-encoding; bh=7Vxq5yJTVs6prbt+NGh6wi58nPfSqxhT1wpgc3lPeKo=; b=DqDTVf6nUbpJBh/Ym58+e1u2Qh5BxQOYidW5/B0/pqd5le59N/C464wCjqx20YtGs1 Kb+B9uVydVB/piJNmslBMSxwf8vA8c2oM2mHBlDLs+1iyqDQ+QvIyuLTsA8JkSKUIQlA Mop9AOpCkvdf7B1nGH40lnhmMCYmJyi5zhlAmTHjOjVYJIgRD71WH8oSY1CJMmpCpmPl SxewkpELf0b7BQvxz9+SB0m99/IQan0FTQ7xjOIw0jGO+cZirN5dunQf7tRi89LlhPXE HJjMQRwcZ0PbtrQyMGUkmItdstKUM3g1QYGel8RAwmCXCaUdZfgoBCAbstd56hVR0raL 9NfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references:mime-version :content-transfer-encoding; bh=7Vxq5yJTVs6prbt+NGh6wi58nPfSqxhT1wpgc3lPeKo=; b=R9X/kRu+7BrzUJg8dWetLP3/nZXFX6bFyf9o553ZjlVYF1DUqJlgf1fVJkVk2YCUMV rq2RE3fduEcbjG8mBlHc82HZU9L3h+Lsl8Yzr0+LvIqDsh/DFpjnTBWSMwhXzVF5zEre sKYWe7I8qnKrTYwyjX6+hjJ4QEOIdClRcr1Sp95uGBmx0/1MYiBmNaYlQsTkMDkXkPE9 ezlPGeAkxxYknUrPEA1OSTD6hJ4S5Recj2EetXEbGgXSkLi2vPTuiTrBq0IbbuuCJDIU XqxBS23GU6Cgr0E+TCdFbvoc9A6gPeo3Bnsz1YpuCw7nElWFZwGNoDDnqv6ZReBhyl/4 0Tng== X-Gm-Message-State: AOAM533ERvM9Y3TSgbAlcwZY1LEPVup0hsp4dK9ZinljGT4IJGTvlKOG 7dMGanoEi+VPbuTTdqtWKuqmu7yol2B5NA== X-Google-Smtp-Source: ABdhPJxp+xJFzsko85uGpGigoZiNLmSTNmJ+1xOR5fNegK9LX7crcegTXYzXoceKAGjavNhkJRGYew== X-Received: by 2002:aa7:9591:: with SMTP id z17mr3591525pfj.230.1596199740333; Fri, 31 Jul 2020 05:49:00 -0700 (PDT) Received: from yangdongdo-OptiPlex-9010.mioffice.cn ([209.9.72.214]) by smtp.gmail.com with ESMTPSA id m20sm10378742pgn.62.2020.07.31.05.48.55 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 Jul 2020 05:48:59 -0700 (PDT) From: Dongdong Yang To: gregkh@linuxfoundation.org, rjw@rjwysocki.net, viresh.kumar@linaro.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de Subject: [PATCH v2] sched: Provide USF for the portable equipment. Date: Fri, 31 Jul 2020 20:46:30 +0800 Message-Id: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, gulinghua@xiaomi.com, tanggeliang@xiaomi.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, yangdongdong@xiaomi.com, duhui@xiaomi.com, zhangguoquan@xiaomi.com, fengwei@xiaomi.com, taojun@xiaomi.com, rocking@linux.alibaba.com, huangqiwu@xiaomi.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" RnJvbTogRG9uZ2RvbmcgWWFuZyA8eWFuZ2Rvbmdkb25nQHhpYW9taS5jb20+CgpUaGUgcG93ZXIg Y29uc3VtcHRpb24gYW5kIFVJIHJlc3BvbnNlIGFyZSBtb3JlIGNhcmVkIGZvciBieSB0aGUgcG9y dGFibGUKZXF1aXBtZW50wqB1c2Vycy4gVVNGKFVzZXIgU2Vuc2l0aXZlIEZlZWRiYWNrIGZhY3Rv cikgYXV4aWxpYXJ5IGNwdWZyZXEKZ292ZXJub3IgaXMgcHJvdmlkaW5nIG1vcmUgdXRpbHMgYWRq dXN0bWVudCBzZXR0aW5ncyB0byB0aGUgaGlnaCBsZXZlbApieSBzY2VuYXJpbyBpZGVudGlmaWNh dGlvbi4KCkZyb20gdGhlIHZpZXcgb2YgcG9ydGFibGUgZXF1aXBtZW50LCBzY3JlZW4gb2ZmIHN0 YXR1cyB1c3VhbGx5IHN0YW5kcwpmb3Igbm8gcmVxdWVzdCBmcm9tIHRoZSB1c2VyLCBob3dldmVy LCB0aGUga2VybmVsIGlzIHN0aWxsIGV4cGVjdGVkIHRvCm5vdGlmeSB0aGUgdXNlciBpbiB0aW1l IG9uIG1vZGVtLCBuZXR3b3JrIG9yIHBvd2Vya2V5IGV2ZW50cyBvY2N1ci4gSW4Kc29tZSBzY2Vu YXJpb3MsIHN1Y2ggYXMgbGlzdGVuaW5nIHRvIG11c2ljLCBsb3cgcG93ZXIgcHJvY2Vzc29ycywg c3VjaAphcyBEU1AsIHRha2UgbW9yZSBhY3Rpb25zIGFuZCBDUFUgbG9hZCByZXF1aXJlbWVudHMg Y3V0IGRvd24uwqAgSXQgd291bGQKYnJpbmcgbW9yZSBwb3dlciBjb25zdW1wdGlvbiBiZW5lZml0 IGlmIGhpZ2ggbGV2ZWwgaGF2ZSBpbnRlcmZhY2VzIHRvCmFkanVzdCB1dGlscyBhY2NvcmRpbmcg dG8gdGhlIGN1cnJlbnQgc2NlbmFyaW8gYW5kIGxvYWQuCgpJbiBhZGRpdGlvbiwgdGhlIHBvcnRh YmxlIGVxdWlwbWVudCB1c2VyIHVzdWFsbHkgaGVhdmlseSBpbnRlcmFjdCB3aXRoCmRldmljZXMg YnkgdG91Y2gsIGFuZCBvdGhlciBwZXJpcGhlcmFscy4gVGhlIGJvb3N0IHByZWVtcHRpdmUgY291 bnRzCmFyZSBtYXJraW5nIHRoZSBsb2FkIHJlcXVpcmVtZW50IHVyZ2VudCwgdmljZSB2ZXJzYS4g SWYgc3VjaCBmZWVkYmFjawpmYWN0b3IgY291bGQgYmUgc2V0IHRvIGhpZ2ggbGV2ZWwgYWNjb3Jk aW5nIHRvIHRoZSBzY2VuYXJpbywgaXQgd291bGQKY29udHJpYnV0ZSB0byB0aGUgcG93ZXIgY29u c3VtcHRpb24gYW5kIFVJIHJlc3BvbnNlLgoKSWYgbm8gVVNGIHN5c2ZzIGlub2RlIGlzIHNldCwg YW5kIG5vIHNjcmVlbiBvbiBvciBvZmYgZXZlbnQsCmFkanVzdF90YXNrX3ByZWRfZGVtYW5kIHNo YWxsIG5vdCBiZSBpbnZva2VkLiBPbmNlIHNjaGVkX3VzZl91cF9sMF9yCnNjaGVkX3VzZl9kb3du X3Igb3Igc2NoZWRfdXNmX25vbl91eF9yIGJlIHNldCwgYWRqdXN0X3Rhc2tfcHJlZF9kZW1hbmQK c2hhbGwgYmUgY2FsbGVkIGJhY2sgdG8gdXBkYXRlIHNldHRpbmdzIGFjY29yZGluZyB0byBoaWdo IGxldmVsCnNjZW5hcmlvIGlkZW50aWZpY2F0aW9uLgoKV2UgY2FuIGdldCBhYm91dCAxNyUgbWVh biBwb3dlciBjb25zdW1wdGlvbiBzYXZlIGF0IGxpc3RlbmluZyB0byBtdXNpYwp3aXRoIHNwZWFr ZXIgb24gInNjcmVlbiBvZmYiIHNjZW5hcmlvLCBhcyBiZWxvdyBzdGF0aXN0aWNhbCBkYXRhIGZy b20KNzc2NiBYaWFvTWkgZGV2aWNlcyBmb3IgdHdvIHdlZWtzIHdpdGggc2NoZWRfdXNmX25vbl91 eF9yIGJlIHNldDoKCiAgICAgICAgZGF5MSAgICAgICAgIGRheTIgICAgICAgICBkYXkzICAgICAg ICAgZGF5NApjb3VudCAgIDc3NjYuMDAwMDAwICA3NzY2LjAwMDAwMCAgNzc2Ni4wMDAwMDAgIDc3 NjYuMDAwMDAwCm1lYW4gICAgODguMDM1NTI1ICAgIDg1LjUwMDI4MiAgICA4My44MjkzMDUgICAg ODYuMDU0OTk3CnN0ZCAgICAgMTExLjA0OTk4MCAgIDEwOC4yNTg4MzQgICAxMDcuNTYyNTgzICAg MTA4LjU1ODI0MAptaW4gICAgIDAuMDk5MDAwICAgICAwLjAzNzAwMCAgICAgMC4wNjcwMDAgICAg IDAuMDQ1MDAwCjI1JSAgICAgMzQuNzY1NTAwICAgIDM0LjAyMTc1MCAgICAzNC4xMDE1MDAgICAg MzQuNDIzMDAwCjUwJSAgICAgNTQuOTUwMDAwICAgIDU1LjI4NjUwMCAgICA1NC4xODk1MDAgICAg NTQuMjQ4NTAwCjc1JSAgICAgOTUuOTU0MDAwICAgIDkzLjk0MjAwMCAgICA5MS43MzgwMDAgICAg OTQuMDU5MjUwMAo4MCUgICAgIDExNC42NzUwMDAgICAxMDcuNDMwMDAwICAgMTA2LjM3ODAwMCAg IDEwOC42NzMwMDAKODUlICAgICAxMzcuODUxMDAwICAgMTI5LjUxMTAwMCAgIDEyNy4xNTY1MDAg ICAxMzEuNzUwNzUwCjkwJSAgICAgMTc5LjY2OTAwMCAgIDE3MC4yMDg1MDAgICAxNjQuMDI3MDAw ICAgMTcyLjM0ODAwMAo5NSUgICAgIDI3Mi4zOTUwMDAgICAyNTcuODQ1NTAwICAgMjQ3Ljc1MDUw MCAgIDI2My4yNzU3NTAKOTglICAgICAzOTkuMDM0NTAwICAgNDEyLjE3MDQwMCAgIDM5MS40ODQw MDAgICA0MDIuODM1NjAwCgogICAgICAgIGRheTUgICAgICAgICBkYXk2ICAgICAgICBkYXk3ICAg ICAgICAgZGF5OApjb3VudCAgIDc3NjYuMDAwMDAwICA3NzY2LjAwMDAwICA3NzY2LjAwMDAwMCAg Nzc2Ni4wMDAwMDAKbWVhbiAgICA4Mi41MzI2NzcgICAgNzkuMjE5MjMgICAgNzcuNjExMzgwICAg IDgxLjA3NTA4MQpzdGQgICAgIDEwNC44NzAwNzkgICAxMDEuMzQ4MTkgICAxMDMuMTQwMDM3ICAg OTcuNTA2MjIxCm1pbiAgICAgMC4wNTEwMDAgICAgIDAuMDI5MDAgICAgIDAuMDA3MDAwICAgICAw LjA2ODAwMAoyNSUgICAgIDMyLjg3MzAwMCAgICAzMy40NDQwMCAgICAzMS45NjU1MDAgICAgMzMu ODYzNTAwCjUwJSAgICAgNTIuMTgwNTAwICAgIDUxLjU2NTUwICAgIDUwLjgwNjUwMCAgICA1My4w ODAwMDAKNzUlICAgICA5MC45MDU3NTAgICAgODYuODI2MjUgICAgODMuODU5MjUwICAgIDg5Ljk3 MzAwMAo4MCUgICAgIDEwNS40NTUwMDAgICA5OS42NDcwMCAgICA5Ny4yNzEwMDAgICAgMTA0LjIy NTAwMAo4NSUgICAgIDEyOC4zMDAwMDAgICAxMTguNDc4MjUgICAxMTYuNTcwMjUwICAgMTI2LjY0 ODI1MAo5MCUgICAgIDE2Ni42NDc1MDAgICAxNDkuMTgwMDAgICAxNTAuNjQ5NTAwICAgMTYxLjA4 NzAwMAo5NSUgICAgIDI0Ny4yMDg1MDAgICAyMjQuMzYwNTAgICAyMjYuMzgwMDAwICAgMjQ1LjI5 MTI1MAo5OCUgICAgIDM5My4wMDIwMDAgICAzNDcuOTIwNjAgICAzNjkuNzkxODAwICAgMzc4Ljc3 ODYwMAoKICAgICAgICBkYXk5ICAgICAgICAgZGF5MTAgICAgICAgIGRheTExICAgICAgICBkYXkx Mgpjb3VudCAgIDc3NjYuMDAwMDAwICA3NzY2LjAwMDAwMCAgNzc2Ni4wMDAwMDAgIDc3NjYuMDAw MDAwCm1lYW4gICAgNzkuOTg5MTcwICAgIDgzLjg1OTQxNyAgICA3OC4wMzI5MzAgICAgNzcuMDYw NTQyCnN0ZCAgICAgMTA0LjIyNjEyMiAgIDEwOC44OTMwNDMgICAxMDIuNTYxNzE1ICAgOTkuODQ0 Mjc2Cm1pbiAgICAgMC4xMTgwMDAgICAgIDAuMDE3MDAwICAgICAwLjAyODAwMCAgICAgMC4wMzkw MDAKMjUlICAgICAzMi4wNTYyNTAgICAgMzMuNDU0NTAwICAgIDMxLjE3NjI1MCAgICAzMC44OTc3 NTAKNTAlICAgICA1MS41MDYwMDAgICAgNTQuMDU2MDAwICAgIDQ4Ljk2OTUwMCAgICA0OS4wNjkw MDAKNzUlICAgICA4OC41MTM1MDAgICAgOTIuOTUzNTAwICAgIDgzLjUwNjc1MCAgICA4NC4wOTYw MDAKODAlICAgICAxMDIuODc2MDAwICAgMTA3Ljg0NTAwMCAgIDk3LjcxNzAwMCAgICA5OC4wNzMw MDAKODUlICAgICAxMjQuMzYzMDAwICAgMTI4LjI4ODAwMCAgIDExOC4zNjY1MDAgICAxMTYuODY5 MjUwCjkwJSAgICAgMTYwLjU1NzAwMCAgIDE2Ny4wODQwMDAgICAxNTQuMzQyNTAwICAgMTQ4LjE4 NzUwMAo5NSUgICAgIDIzMS4xNDkwMDAgICAyNDIuOTI1NzUwICAgMjM2Ljc1OTAwMCAgIDIyOC4x MzEyNTAKOTglICAgICAzNjcuMjA2NjAwICAgMzg4LjYxOTEwMCAgIDM4NS4yNjkxMDAgICAzNzYu NTQxNjAwCgogICAgICAgIGRheTEzICAgICAgICBkYXkxNApjb3VudCAgIDc3NjYuMDAwMDAwICA3 NzY2LjAwMDAwMAptZWFuICAgIDc1LjUyODAzNiAgICA3My43MDI4NzgKc3RkICAgICA5MC43NTA1 OTQgICAgODYuNzk2MDE2Cm1pbiAgICAgMC4wNjYwMDAgICAgIDAuMDU0MDAwCjI1JSAgICAgMzEu MTcwNTAwICAgIDMxLjYwODUwMAo1MCUgICAgIDQ4Ljc1ODUwMCAgICA0OS4yMTUwMDAKNzUlICAg ICA4NC41MjI3NTAgICAgODMuMDUzMDAwCjgwJSAgICAgOTcuODc5MDAwICAgIDk0Ljg3NTAwMAo4 NSUgICAgIDExNi42ODAyNTAgICAxMTMuNTczNzUwCjkwJSAgICAgMTQ5LjA4MzUwMCAgIDE0NC4w ODk1MDAKOTUlICAgICAyMjYuMTc3NzUwICAgMjExLjQ4ODc1MAo5OCUgICAgIDM0Ny4wMTExMDAg ICAzMzEuMzE3MTAwCgpTaWduZWQtb2ZmLWJ5OiBEb25nZG9uZyBZYW5nIDx5YW5nZG9uZ2RvbmdA eGlhb21pLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBKdW4gVGFvIDx0YW9qdW5AeGlhb21pLmNvbT4K Q28tZGV2ZWxvcGVkLWJ5OiBRaXd1IEh1YW5nIDxodWFuZ3Fpd3VAeGlhb21pLmNvbT4KQ28tZGV2 ZWxvcGVkLWJ5OiBHZWxpYW5nIFRhbmcgPHRhbmdnZWxpYW5nQHhpYW9taS5jb20+CkNvLWRldmVs b3BlZC1ieTogUGVuZyBXYW5nIDxyb2NraW5nQGxpbnV4LmFsaWJhYmEuY29tPgotLS0KIGRyaXZl cnMvc3RhZ2luZy9LY29uZmlnICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvc3RhZ2luZy9NYWtl ZmlsZSAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvc3RhZ2luZy9mYnNjaGVkL0tjb25maWcgIHwg IDEwICsrCiBkcml2ZXJzL3N0YWdpbmcvZmJzY2hlZC9NYWtlZmlsZSB8ICAgMiArCiBkcml2ZXJz L3N0YWdpbmcvZmJzY2hlZC91c2YuYyAgICB8IDM0NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIGtlcm5lbC9zY2hlZC9jcHVmcmVxX3NjaGVkdXRpbC5jIHwgICAzICsK IGtlcm5lbC9zY2hlZC9zY2hlZC5oICAgICAgICAgICAgIHwgIDEwICsrCiA3IGZpbGVzIGNoYW5n ZWQsIDM3NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zdGFnaW5n L2Zic2NoZWQvS2NvbmZpZwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9mYnNj aGVkL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zdGFnaW5nL2Zic2NoZWQv dXNmLmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvS2NvbmZpZyBiL2RyaXZlcnMvc3Rh Z2luZy9LY29uZmlnCmluZGV4IDRlYzU1MjguLjA1YjIzMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c3RhZ2luZy9LY29uZmlnCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9LY29uZmlnCkBAIC0xMjAsNCAr MTIwLDYgQEAgc291cmNlICJkcml2ZXJzL3N0YWdpbmcvcWxnZS9LY29uZmlnIgogCiBzb3VyY2Ug ImRyaXZlcnMvc3RhZ2luZy93ZngvS2NvbmZpZyIKIAorc291cmNlICJkcml2ZXJzL3N0YWdpbmcv ZmJzY2hlZC9LY29uZmlnIgorCiBlbmRpZiAjIFNUQUdJTkcKZGlmZiAtLWdpdCBhL2RyaXZlcnMv c3RhZ2luZy9NYWtlZmlsZSBiL2RyaXZlcnMvc3RhZ2luZy9NYWtlZmlsZQppbmRleCA0ZDM0MTk4 Li5lMDE2ZWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvTWFrZWZpbGUKKysrIGIvZHJp dmVycy9zdGFnaW5nL01ha2VmaWxlCkBAIC01MCwzICs1MCw0IEBAIG9iai0kKENPTkZJR19GSUVM REJVU19ERVYpICAgICArPSBmaWVsZGJ1cy8KIG9iai0kKENPTkZJR19LUEMyMDAwKQkJKz0ga3Bj MjAwMC8KIG9iai0kKENPTkZJR19RTEdFKQkJKz0gcWxnZS8KIG9iai0kKENPTkZJR19XRlgpCQkr PSB3ZngvCitvYmotJChDT05GSUdfU0NIRURfVVNGKQkJKz0gZmJzY2hlZC8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9mYnNjaGVkL0tjb25maWcgYi9kcml2ZXJzL3N0YWdpbmcvZmJzY2hl ZC9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NGI2YWYKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3N0YWdpbmcvZmJzY2hlZC9LY29uZmlnCkBAIC0wLDAg KzEsMTAgQEAKK2NvbmZpZyBTQ0hFRF9VU0YKKwlib29sICJVc2VyIFNlbnNpdGl2ZSBGYWN0b3Jz IGZvciBTY2hlZHVsZXIiCisJZGVwZW5kcyBvbiBDUFVfRlJFUV9HT1ZfU0NIRURVVElMICYmIEZC CisJaGVscAorCSAgU2VsZWN0IHRoaXMgb3B0aW9uIHRvIGVuYWJsZSB0aGUgYWRqdXN0bWVudCBv biB0aGUgY3B1ZnJlcSB3aXRoCisJICB0aGUgdXNlciBzZW5zaXRpdmUgZmFjdG9ycyBvbiBzY2hl ZHVsZS4gSXQgaXMgc3BlY2lhbCBmb3IgcG9ydGFibGUKKwkgIGVxdWlwbWVudCB3aGljaCBtb3Jl IHBvd2VyIGNhcmUgYW5kIHF1aWNrIHJlc3BvbnNlIHJlcXVpcmVtZW50IG9uCisJICBzY3JlZW4g b24uCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv ZmJzY2hlZC9NYWtlZmlsZSBiL2RyaXZlcnMvc3RhZ2luZy9mYnNjaGVkL01ha2VmaWxlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1NmFhNmMKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL3N0YWdpbmcvZmJzY2hlZC9NYWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK0xJTlVY SU5DTFVERSArPSAtaW5jbHVkZSAkKHNyY3RyZWUpL2tlcm5lbC9zY2hlZC9zY2hlZC5oCitvYmot JChDT05GSUdfU0NIRURfVVNGKSArPSB1c2YubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L2Zic2NoZWQvdXNmLmMgYi9kcml2ZXJzL3N0YWdpbmcvZmJzY2hlZC91c2YuYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDc4MjVlCi0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9zdGFnaW5nL2Zic2NoZWQvdXNmLmMKQEAgLTAsMCArMSwzNDYgQEAKKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIFhpYW9N aSBJbmMuCisgKiBBdXRob3I6IFlhbmcgRG9uZ2RvbmcgPHlhbmdkb25nZG9uZ0B4aWFvbWkuY29t PgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCisgKiBTZWUgaHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0yLjAuaHRtbCBmb3IgbW9yZSBkZXRhaWxzLgor ICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgva3Ro cmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+ CisjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4K KyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNp bmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNs dWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZmIuaD4KKyNpbmNsdWRlIDxs aW51eC9ub3RpZmllci5oPgorCisjZGVmaW5lIEJPT1NUX01JTl9WIC0xMDAKKyNkZWZpbmUgQk9P U1RfTUFYX1YgMTAwCisjZGVmaW5lIExFVkVMX1RPUCAzCisKKyNkZWZpbmUgVVNGX1RBRwkiW3Vz Zl9zY2hlZF0iCisKK0RFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmdbUElEX01BWF9MSU1JVF0s IHRhc2tfaGlzdF9uaXZjc3cpOworCitzdGF0aWMgc3RydWN0IHsKKwlib29sIGlzX3NjaGVkX3Vz Zl9lbmFibGVkOworCWludCBlbmFibGVfZGVidWc7CisJaW50IGlzX3NjcmVlbl9vbjsKKwlzdHJ1 Y3Qga29iamVjdCAqa29iajsKKwlzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX2VudHJ5OworCWludCBz eXNjdGxfc2NoZWRfdXNmX3VwX2wwOworCWludCBzeXNjdGxfc2NoZWRfdXNmX2Rvd247CisJaW50 IHN5c2N0bF9zY2hlZF91c2Zfbm9uX3V4OworCWludCB1c2ZfdXBfbDA7CisJaW50IHVzZl9kb3du OworCWludCB1c2Zfbm9uX3V4OworfSB1c2ZfdmRldjsKKwordm9pZCBhZGp1c3RfdGFza19wcmVk X2RlbWFuZChpbnQgY3B1aWQsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgKnV0aWwsCisJCQkgICAg IHN0cnVjdCBycSAqcnEpCit7CisJLyogc3lzY3RsX3NjaGVkX2xhdGVuY3kvc3lzY3RsX3NjaGVk X21pbl9ncmFudWxhcml0eSAqLworCXUzMiBibF9zd19udW0gPSAzOworCisJaWYgKCF1c2ZfdmRl di5pc19zY2hlZF91c2ZfZW5hYmxlZCB8fCAhcnEgfHwgIXJxLT5jdXJyKQorCQlyZXR1cm47CisK KwlpZiAodXNmX3ZkZXYuaXNfc2NyZWVuX29uKSB7CisJCWlmIChycS0+Y3Vyci0+bml2Y3N3ID4K KwkJICAgIChwZXJfY3B1KHRhc2tfaGlzdF9uaXZjc3csIGNwdWlkKVtycS0+Y3Vyci0+cGlkXQor CQkgICAgICsgYmxfc3dfbnVtICsgMSkpIHsKKwkJCSgqdXRpbCkgKz0gKCp1dGlsKSA+PiB1c2Zf dmRldi51c2ZfdXBfbDA7CisJCX0gZWxzZSBpZiAocnEtPmN1cnItPm5pdmNzdyA8CisJCQkgICAo cGVyX2NwdSh0YXNrX2hpc3Rfbml2Y3N3LCBjcHVpZClbcnEtPmN1cnItPnBpZF0KKwkJCSAgICAr IGJsX3N3X251bSAtIDEpICYmIChycS0+bnJfcnVubmluZyA8IGJsX3N3X251bSkpIHsKKwkJCSgq dXRpbCkgPj49IHVzZl92ZGV2LnVzZl9kb3duOworCQl9CisJCXBlcl9jcHUodGFza19oaXN0X25p dmNzdywgY3B1aWQpW3JxLT5jdXJyLT5waWRdID0KKwkJICAgIHJxLT5jdXJyLT5uaXZjc3c7CisJ fSBlbHNlIGlmIChycS0+Y3Vyci0+bW0pIHsKKwkJKCp1dGlsKSA+Pj0gdXNmX3ZkZXYudXNmX25v bl91eDsKKwl9CisKKwlpZiAodW5saWtlbHkodXNmX3ZkZXYuZW5hYmxlX2RlYnVnKSkKKwkJdHJh Y2VfcHJpbnRrCisJCSAgICAoIiVzOiBjcHVfaWQ9JWQgbm9uX3V4PSVkIHVzZl91cD0lZCB1c2Zf ZG93bj0lZCB1dGlsPSVsdVxuIiwKKwkJICAgICBVU0ZfVEFHLCBjcHVpZCwgdXNmX3ZkZXYudXNm X25vbl91eCwKKwkJICAgICB1c2ZfdmRldi51c2ZfdXBfbDAsIHVzZl92ZGV2LnVzZl9kb3duLCAq dXRpbCk7Cit9CisKK3N0YXRpYyBpbnQgdXNmX2xjZF9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKm5iLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICpkYXRhKQoreworCXN0 cnVjdCBmYl9ldmVudCAqZXZkYXRhID0gZGF0YTsKKwl1bnNpZ25lZCBpbnQgYmxhbms7CisKKwlp ZiAoIWV2ZGF0YSkKKwkJcmV0dXJuIDA7CisKKwlpZiAodmFsICE9IEZCX0VWRU5UX0JMQU5LKQor CQlyZXR1cm4gMDsKKworCWlmIChldmRhdGEtPmRhdGEgJiYgdmFsID09IEZCX0VWRU5UX0JMQU5L KSB7CisJCWJsYW5rID0gKihpbnQgKikoZXZkYXRhLT5kYXRhKTsKKworCQlzd2l0Y2ggKGJsYW5r KSB7CisJCWNhc2UgRkJfQkxBTktfUE9XRVJET1dOOgorCQkJdXNmX3ZkZXYuaXNfc2NyZWVuX29u ID0gMDsKKwkJCWlmICh1c2ZfdmRldi5zeXNjdGxfc2NoZWRfdXNmX25vbl91eCAhPSAwKQorCQkJ CXN0YXRpY19icmFuY2hfZW5hYmxlKCZhZGp1c3RfdGFza19wcmVkX3NldCk7CisJCQllbHNlCisJ CQkJc3RhdGljX2JyYW5jaF9kaXNhYmxlKCZhZGp1c3RfdGFza19wcmVkX3NldCk7CisKKwkJCWJy ZWFrOworCisJCWNhc2UgRkJfQkxBTktfVU5CTEFOSzoKKwkJCXVzZl92ZGV2LmlzX3NjcmVlbl9v biA9IDE7CisJCQlpZiAodXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl91cF9sMCAhPSAwIHx8CisJ CQkgICAgdXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl9kb3duICE9IDApCisJCQkJc3RhdGljX2Jy YW5jaF9lbmFibGUoJmFkanVzdF90YXNrX3ByZWRfc2V0KTsKKwkJCWVsc2UKKwkJCQlzdGF0aWNf YnJhbmNoX2Rpc2FibGUoJmFkanVzdF90YXNrX3ByZWRfc2V0KTsKKwkJCWJyZWFrOworCQlkZWZh dWx0OgorCQkJYnJlYWs7CisJCX0KKworCQl1c2ZfdmRldi5pc19zY2hlZF91c2ZfZW5hYmxlZCA9 IDE7CisJCWlmICh1c2ZfdmRldi5lbmFibGVfZGVidWcpCisJCQl0cmFjZV9wcmludGsoIiVzIDog dXNmX3ZkZXYuaXNfc2NyZWVuX29uOiVkXG4iLAorCQkJCSAgICAgX19mdW5jX18sIHVzZl92ZGV2 LmlzX3NjcmVlbl9vbik7CisJfQorCXJldHVybiBOT1RJRllfT0s7Cit9CisKK3N0YXRpYyBzdHJ1 Y3Qgbm90aWZpZXJfYmxvY2sgdXNmX2xjZF9uYiA9IHsKKwkubm90aWZpZXJfY2FsbCA9IHVzZl9s Y2Rfbm90aWZpZXIsCisJLnByaW9yaXR5ID0gSU5UX01BWCwKK307CisKK3N0YXRpYyBzc2l6ZV90 IHN0b3JlX3NjaGVkX3VzZl91cF9sMF9yKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICAg ICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgIGNvbnN0IGNoYXIgKmJ1 Ziwgc2l6ZV90IGNvdW50KQoreworCWludCB2YWwgPSAwOworCWludCByZXQ7CisKKwlyZXQgPSBr c3RydG9pbnQoYnVmLCAwLCAmdmFsKTsKKwlpZiAocmV0KSB7CisJCXByX2VycihVU0ZfVEFHICJz ZXQgc3RhdGUgZmFpbCByZXQ9JWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYg KCh2YWwgPj0gMCkgJiYgKHZhbCA8PSBCT09TVF9NQVhfVikpIHsKKwkJdXNmX3ZkZXYuc3lzY3Rs X3NjaGVkX3VzZl91cF9sMCA9IHZhbDsKKwkJdXNmX3ZkZXYudXNmX3VwX2wwID0gTEVWRUxfVE9Q IC0KKwkJCQlESVZfUk9VTkRfVVAodmFsLCBCT09TVF9NQVhfViAvIDIpOworCX0gZWxzZSB7CisJ CXByX2VycihVU0ZfVEFHICIlZCBzaG91bGQgZmFsbCBpbnRvIFslZCAlZF0iLAorCQkgICAgICAg dmFsLCAwLCBCT09TVF9NQVhfVik7CisJfQorCWlmICgodXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3Vz Zl91cF9sMCA9PSAwKSAmJgorCSAgICAodXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl9kb3duID09 IDApKQorCQlzdGF0aWNfYnJhbmNoX2Rpc2FibGUoJmFkanVzdF90YXNrX3ByZWRfc2V0KTsKKwll bHNlCisJCXN0YXRpY19icmFuY2hfZW5hYmxlKCZhZGp1c3RfdGFza19wcmVkX3NldCk7CisKKwly ZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0b3JlX3NjaGVkX3VzZl9kb3duX3Io c3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICph dHRyLAorCQkJCSAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCWludCB2 YWwgPSAwOworCWludCByZXQ7CisKKwlyZXQgPSBrc3RydG9pbnQoYnVmLCAwLCAmdmFsKTsKKwlp ZiAocmV0KSB7CisJCXByX2VycihVU0ZfVEFHICJzZXQgc3RhdGUgZmFpbCByZXQ9JWRcbiIsIHJl dCk7CisJCXJldHVybiByZXQ7CisJfQorCisJaWYgKCh2YWwgPj0gQk9PU1RfTUlOX1YpICYmICh2 YWwgPD0gMCkpIHsKKwkJdXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl9kb3duID0gdmFsOworCQl1 c2ZfdmRldi51c2ZfZG93biA9IERJVl9ST1VORF9VUCgtdmFsLCAtQk9PU1RfTUlOX1YgLyAyKTsK Kwl9IGVsc2UgeworCQlwcl9lcnIoVVNGX1RBRyAiJWQgc2hvdWxkIGZhbGwgaW50byBbJWQgJWRd IiwKKwkJICAgICAgIHZhbCwgQk9PU1RfTUlOX1YsIDApOworCX0KKwlpZiAoKHVzZl92ZGV2LnN5 c2N0bF9zY2hlZF91c2ZfdXBfbDAgPT0gMCkgJiYKKwkgICAgKHVzZl92ZGV2LnN5c2N0bF9zY2hl ZF91c2ZfZG93biA9PSAwKSkKKwkJc3RhdGljX2JyYW5jaF9kaXNhYmxlKCZhZGp1c3RfdGFza19w cmVkX3NldCk7CisJZWxzZQorCQlzdGF0aWNfYnJhbmNoX2VuYWJsZSgmYWRqdXN0X3Rhc2tfcHJl ZF9zZXQpOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgc3NpemVfdCBzdG9yZV9zY2hl ZF91c2Zfbm9uX3V4X3Ioc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJCXN0cnVjdCBrb2JqX2F0 dHJpYnV0ZSAqYXR0ciwKKwkJCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJ aW50IHZhbCA9IDA7CisJaW50IHJldDsKKworCXJldCA9IGtzdHJ0b2ludChidWYsIDAsICZ2YWwp OworCWlmIChyZXQpIHsKKwkJcHJfZXJyKFVTRl9UQUcgInNldCBzdGF0ZSBmYWlsIHJldD0lZFxu IiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoKHZhbCA+PSBCT09TVF9NSU5fVikg JiYgKHZhbCA8PSAwKSkgeworCQl1c2ZfdmRldi5zeXNjdGxfc2NoZWRfdXNmX25vbl91eCA9IHZh bDsKKwkJdXNmX3ZkZXYudXNmX25vbl91eCA9IERJVl9ST1VORF9VUCgtdmFsLCAtQk9PU1RfTUlO X1YgLyAyKTsKKwl9IGVsc2UgeworCQlwcl9lcnIoVVNGX1RBRyAiJWQgc2hvdWxkIGZhbGwgaW50 byBbJWQgJWRdIiwKKwkJICAgICAgIHZhbCwgQk9PU1RfTUlOX1YsIDApOworCX0KKwlpZiAodXNm X3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl9ub25fdXggPT0gMCkKKwkJc3RhdGljX2JyYW5jaF9kaXNh YmxlKCZhZGp1c3RfdGFza19wcmVkX3NldCk7CisJZWxzZQorCQlzdGF0aWNfYnJhbmNoX2VuYWJs ZSgmYWRqdXN0X3Rhc2tfcHJlZF9zZXQpOworCisJcmV0dXJuIGNvdW50OworfQorCisjZGVmaW5l IHVzZl9hdHRyX3J3KF9uYW1lKQkJCQkJCVwKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUg X25hbWUgPQkJCQkJXAorX19BVFRSKF9uYW1lLCAwNjY0LCBzaG93XyMjX25hbWUsIHN0b3JlXyMj X25hbWUpCisKKyNkZWZpbmUgdXNmX3Nob3dfbm9kZShfbmFtZSwgX3ZhbHVlKQkJCQkJXAorc3Rh dGljIHNzaXplX3Qgc2hvd18jI19uYW1lCQkJCQkJXAorKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBz dHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsICBjaGFyICpidWYpCQlcCit7CQkJCQkJCQkJXAor CXVuc2lnbmVkIGludCBsZW4gPSAwOwkJCQkJCVwKKwl1bnNpZ25lZCBpbnQgbWF4X2xlbiA9IDg7 CQkJCQlcCisJbGVuICs9CQkJCQkJCQlcCisJICAgIHNucHJpbnRmKGJ1ZiArIGxlbiwgbWF4X2xl biAtIGxlbiwgIiVkIiwJCQlcCisJCSAgICAgdXNmX3ZkZXYuc3lzY3RsXyMjX3ZhbHVlKTsJCQkJ XAorCXJldHVybiBsZW47CQkJCQkJCVwKK30KKwordXNmX3Nob3dfbm9kZShzY2hlZF91c2ZfdXBf bDBfciwgc2NoZWRfdXNmX3VwX2wwKTsKK3VzZl9zaG93X25vZGUoc2NoZWRfdXNmX2Rvd25fciwg c2NoZWRfdXNmX2Rvd24pOwordXNmX3Nob3dfbm9kZShzY2hlZF91c2Zfbm9uX3V4X3IsIHNjaGVk X3VzZl9ub25fdXgpOworCit1c2ZfYXR0cl9ydyhzY2hlZF91c2ZfdXBfbDBfcik7Cit1c2ZfYXR0 cl9ydyhzY2hlZF91c2ZfZG93bl9yKTsKK3VzZl9hdHRyX3J3KHNjaGVkX3VzZl9ub25fdXhfcik7 CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpzY2hlZF9hdHRyc1tdID0geworCSZzY2hlZF91 c2ZfdXBfbDBfci5hdHRyLAorCSZzY2hlZF91c2ZfZG93bl9yLmF0dHIsCisJJnNjaGVkX3VzZl9u b25fdXhfci5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91 cCBzY2hlZF9hdHRyX2dyb3VwID0geworCS5hdHRycyA9IHNjaGVkX2F0dHJzLAorfTsKKworc3Rh dGljIGludCB1c2ZfZGJnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbCkKK3sKKwkqdmFsID0gKHU2 NCl1c2ZfdmRldi5lbmFibGVfZGVidWc7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1 c2ZfZGJnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQoreworCXVzZl92ZGV2LmVuYWJsZV9kZWJ1 ZyA9ICEhdmFsOworCXJldHVybiAwOworfQorCitERUZJTkVfU0lNUExFX0FUVFJJQlVURSh1c2Zf ZGJnX2ZvcHMsIHVzZl9kYmdfZ2V0LAorCQkJdXNmX2RiZ19zZXQsICIlbGx1XG4iKTsKKworc3Rh dGljIGludCBfX2luaXQgaW50ZXJhX21vbml0b3JfaW5pdCh2b2lkKQoreworCWludCByZXMgPSAt MTsKKwlzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICphdHRyX2dyb3VwOworCisJcmVzID0gZmJfcmVn aXN0ZXJfY2xpZW50KCZ1c2ZfbGNkX25iKTsKKwlpZiAocmVzIDwgMCkgeworCQlwcl9lcnIoIkZh aWxlZCB0byByZWdpc3RlciB1c2ZfbGNkX25iIVxuIik7CisJCXJldHVybiByZXM7CisJfQorCisJ LyoKKwkgKiBjcmVhdGUgYSBzY2hlZF91c2YgaW4gY3B1X3N1YnN5czoKKwkgKiAvc3lzL2Rldmlj ZXMvc3lzdGVtL2NwdS9zY2hlZF91c2YvLi4uCisJICovCisJYXR0cl9ncm91cCA9ICZzY2hlZF9h dHRyX2dyb3VwOworCXVzZl92ZGV2LmtvYmogPSBrb2JqZWN0X2NyZWF0ZV9hbmRfYWRkKCJzY2hl ZF91c2YiLAorCQkJCQkgICAgICAgJmNwdV9zdWJzeXMuZGV2X3Jvb3QtPmtvYmopOworCisJaWYg KCF1c2ZfdmRldi5rb2JqKSB7CisJCXByX2VycigiRmFpbGVkIHRvIGNyZWF0ZSBzY2hlZF91c2Yh XG4iKTsKKwkJcmVzID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfSBlbHNlIHsKKwkJcmVzID0g c3lzZnNfY3JlYXRlX2dyb3VwKHVzZl92ZGV2LmtvYmosIGF0dHJfZ3JvdXApOworCQlpZiAocmVz KSB7CisJCQlrb2JqZWN0X3B1dCh1c2ZfdmRldi5rb2JqKTsKKwkJCWdvdG8gb3V0OworCQl9IGVs c2UgeworCQkJa29iamVjdF91ZXZlbnQodXNmX3ZkZXYua29iaiwgS09CSl9BREQpOworCQl9CisJ fQorCisJdXNmX3ZkZXYuZW5hYmxlX2RlYnVnID0gMDsKKwl1c2ZfdmRldi5kZWJ1Z2ZzX2VudHJ5 ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidXNmX2RiZyIsCisJCQkJCQkgICAgIDA2NjAsIE5VTEws IE5VTEwsCisJCQkJCQkgICAgICZ1c2ZfZGJnX2ZvcHMpOworCWlmICghdXNmX3ZkZXYuZGVidWdm c19lbnRyeSkKKwkJcHJfZXJyKCJGYWlsZWQgdG8gY3JlYXRlIHVzZl9kYmchXG4iKTsKKworCXVz Zl92ZGV2LmlzX3NjaGVkX3VzZl9lbmFibGVkID0gMDsKKwl1c2ZfdmRldi5zeXNjdGxfc2NoZWRf dXNmX3VwX2wwID0gMDsKKwl1c2ZfdmRldi5zeXNjdGxfc2NoZWRfdXNmX2Rvd24gPSAwOworCXVz Zl92ZGV2LnN5c2N0bF9zY2hlZF91c2Zfbm9uX3V4ID0gMDsKKwlzdGF0aWNfYnJhbmNoX2Rpc2Fi bGUoJmFkanVzdF90YXNrX3ByZWRfc2V0KTsKKworCXJldHVybiAwOworb3V0OgorCWZiX3VucmVn aXN0ZXJfY2xpZW50KCZ1c2ZfbGNkX25iKTsKKwlyZXR1cm4gcmVzOworfQorCittb2R1bGVfaW5p dChpbnRlcmFfbW9uaXRvcl9pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IGludGVyYV9tb25p dG9yX2V4aXQodm9pZCkKK3sKKwlpZiAodXNmX3ZkZXYua29iaikKKwkJa29iamVjdF9wdXQodXNm X3ZkZXYua29iaik7CisJaWYgKHVzZl92ZGV2LmRlYnVnZnNfZW50cnkpCisJCWRlYnVnZnNfcmVt b3ZlKHVzZl92ZGV2LmRlYnVnZnNfZW50cnkpOworCWZiX3VucmVnaXN0ZXJfY2xpZW50KCZ1c2Zf bGNkX25iKTsKKwl1c2ZfdmRldi5pc19zY2hlZF91c2ZfZW5hYmxlZCA9IDA7CisJdXNmX3ZkZXYu c3lzY3RsX3NjaGVkX3VzZl91cF9sMCA9IDA7CisJdXNmX3ZkZXYuc3lzY3RsX3NjaGVkX3VzZl9k b3duID0gMDsKKwl1c2ZfdmRldi5zeXNjdGxfc2NoZWRfdXNmX25vbl91eCA9IDA7CisJc3RhdGlj X2JyYW5jaF9kaXNhYmxlKCZhZGp1c3RfdGFza19wcmVkX3NldCk7Cit9CisKK21vZHVsZV9leGl0 KGludGVyYV9tb25pdG9yX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVf REVTQ1JJUFRJT04oIlhpYW9NaSBVU0YgU0NIRUQiKTsKK01PRFVMRV9BVVRIT1IoIllhbmcgRG9u Z2RvbmcgPHlhbmdkb25nZG9uZ0B4aWFvbWkuY29tPiIpOwpkaWZmIC0tZ2l0IGEva2VybmVsL3Nj aGVkL2NwdWZyZXFfc2NoZWR1dGlsLmMgYi9rZXJuZWwvc2NoZWQvY3B1ZnJlcV9zY2hlZHV0aWwu YwppbmRleCA3ZmJhZWUyLi43OWEwMDQwIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQvY3B1ZnJl cV9zY2hlZHV0aWwuYworKysgYi9rZXJuZWwvc2NoZWQvY3B1ZnJlcV9zY2hlZHV0aWwuYwpAQCAt Mjg5LDEyICsyODksMTUgQEAgdW5zaWduZWQgbG9uZyBzY2hlZHV0aWxfY3B1X3V0aWwoaW50IGNw dSwgdW5zaWduZWQgbG9uZyB1dGlsX2NmcywKIAlyZXR1cm4gbWluKG1heCwgdXRpbCk7CiB9CiAK K0RFRklORV9TVEFUSUNfS0VZX0ZBTFNFKGFkanVzdF90YXNrX3ByZWRfc2V0KTsKIHN0YXRpYyB1 bnNpZ25lZCBsb25nIHN1Z292X2dldF91dGlsKHN0cnVjdCBzdWdvdl9jcHUgKnNnX2NwdSkKIHsK IAlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKHNnX2NwdS0+Y3B1KTsKIAl1bnNpZ25lZCBsb25nIHV0 aWwgPSBjcHVfdXRpbF9jZnMocnEpOwogCXVuc2lnbmVkIGxvbmcgbWF4ID0gYXJjaF9zY2FsZV9j cHVfY2FwYWNpdHkoc2dfY3B1LT5jcHUpOwogCisJaWYgKHN0YXRpY19icmFuY2hfdW5saWtlbHko JmFkanVzdF90YXNrX3ByZWRfc2V0KSkKKwkJYWRqdXN0X3Rhc2tfcHJlZF9kZW1hbmQoc2dfY3B1 LT5jcHUsICZ1dGlsLCBycSk7CiAJc2dfY3B1LT5tYXggPSBtYXg7CiAJc2dfY3B1LT5id19kbCA9 IGNwdV9id19kbChycSk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC9zY2hlZC5oIGIva2Vy bmVsL3NjaGVkL3NjaGVkLmgKaW5kZXggODc3ZmIwOC4uNDk2MTMwYiAxMDA2NDQKLS0tIGEva2Vy bmVsL3NjaGVkL3NjaGVkLmgKKysrIGIva2VybmVsL3NjaGVkL3NjaGVkLmgKQEAgLTI1NDAsNSAr MjU0MCwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfcGVyX2NwdV9rdGhyZWFkKHN0cnVjdCB0 YXNrX3N0cnVjdCAqcCkKIH0KICNlbmRpZgogCitERUNMQVJFX1NUQVRJQ19LRVlfRkFMU0UoYWRq dXN0X3Rhc2tfcHJlZF9zZXQpOworI2lmZGVmIENPTkZJR19TQ0hFRF9VU0YKK3ZvaWQgYWRqdXN0 X3Rhc2tfcHJlZF9kZW1hbmQoaW50IGNwdWlkLCB1bnNpZ25lZCBsb25nICp1dGlsLAorCQlzdHJ1 Y3QgcnEgKnJxKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgYWRqdXN0X3Rhc2tfcHJlZF9k ZW1hbmQoaW50IGNwdWlkLAorCQl1bnNpZ25lZCBsb25nICp1dGlsLCBzdHJ1Y3QgcnEgKnJxKQor eyB9CisjZW5kaWYKKwogdm9pZCBzd2FrZV91cF9hbGxfbG9ja2VkKHN0cnVjdCBzd2FpdF9xdWV1 ZV9oZWFkICpxKTsKIHZvaWQgX19wcmVwYXJlX3RvX3N3YWl0KHN0cnVjdCBzd2FpdF9xdWV1ZV9o ZWFkICpxLCBzdHJ1Y3Qgc3dhaXRfcXVldWUgKndhaXQpOwotLSAKMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApk ZXZlbEBsaW51eGRyaXZlcnByb2plY3Qub3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJw cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaXZlcmRldi1kZXZlbAo=