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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id BA2C8CF3189 for ; Wed, 2 Oct 2024 18:23:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+15/xwuNMyH9Tsl2sM048KNHrXF7WeQKhN/3ld/LgVs=; b=jMAScQaIBpcXz9 B2uW9JWy1dpg7HQ/Bn8O60dkyepZsvzYNQoyKwDH4GfvYc6Coynl86At2fl+JTTGARm7DC9WJvMDJ 8nWBf2CezH/BLlFsLCK4H+C5AFRybmvuYJQ5T2dabGGNTGyAAC7rYsioWeXMZAo2MytgvUrhlY31Q 6QP/lenuPSxWP9NUjJ0qJgQsr624QJmdkZyi7ap1smzcf6LtLbmEaZen4wz1Yegfm9EUYcdQtlkxg bWQYqH9XwhH4qFDyB/3bDM6YCrmQWr3DNBUkcFMf1fMcO8DhcUv+uHPU9kQ0ZYf1nDgFpMgZebZhD oaS99u2O7xG67zoQhOVg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1sw402-000000079WR-1nl6; Wed, 02 Oct 2024 18:22:58 +0000 Received: from mgamail.intel.com ([192.198.163.17]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1sw3zW-000000079Qs-2EjC; Wed, 02 Oct 2024 18:22:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1727893347; x=1759429347; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=c0QXKhwci/Izzy1OlI144ahqJ09nmvEd0qo81iaK+oA=; b=fPuIL//nKFuS/qNsNe9/tmjyIuUVuuzg2Ttwbue9CNScXkXToEOvZymx k++mFI6r1DK/uHnTJk1z6QJz5AvjPC930q7Tmhxct540G/ulL5+yLDO0k YNI50ECveWjwytMwHlXtxc7kXrmb/4LRFtwjv5wUMZua+yHCmZ9UGAL0g yemiDhHttWDNFYKLjTlNw2HiYvbZumo576PV+PMX6gUurKtb0uEUjgFw9 5QMAOjFnwfecjYaDFfhE8smR2DRUh/YH6nSTJItU/InL1x9ncX7l4LheL vfjzDhGx9BmnBktD4ZdzUrGLymOWN11KeWX2Ls6CatiwRvEhDFBTgWqjp A==; X-CSE-ConnectionGUID: mSC2fGTLTZqr/dAoRoPOKw== X-CSE-MsgGUID: aIbdE6tzTSCepRl9hyJlKw== X-IronPort-AV: E=McAfee;i="6700,10204,11213"; a="26957610" X-IronPort-AV: E=Sophos;i="6.11,172,1725346800"; d="scan'208";a="26957610" Received: from fmviesa008.fm.intel.com ([10.60.135.148]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2024 11:22:25 -0700 X-CSE-ConnectionGUID: KgWmmX8iTF2bpIYtU4YHSg== X-CSE-MsgGUID: 44OP74LUT6ClRqxjDpf5uA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,172,1725346800"; d="scan'208";a="74202342" Received: from stinkpipe.fi.intel.com (HELO stinkbox) ([10.237.72.74]) by fmviesa008.fm.intel.com with SMTP; 02 Oct 2024 11:22:18 -0700 Received: by stinkbox (sSMTP sendmail emulation); Wed, 02 Oct 2024 21:22:17 +0300 From: Ville Syrjala To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Liviu Dudau , Russell King , Inki Dae , Patrik Jakobsson , Alain Volmat , Sandy Huang , Jyri Sarha , Alexey Brodkin , Hans de Goede , =?UTF-8?q?Ma=C3=ADra=20Canal?= , Zack Rusin , amd-gfx@lists.freedesktop.org, linux-mediatek@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-arm-msm@vger.kernel.orga, freedreno@lists.freedesktop.org, nouveau@lists.freedesktop.orga, virtualization@lists.linux.dev, spice-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH 2/2] drm: Move crtc->{x,y,mode,enabled} to legacy sub-structure Date: Wed, 2 Oct 2024 21:22:00 +0300 Message-ID: <20241002182200.15363-3-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241002182200.15363-1-ville.syrjala@linux.intel.com> References: <20241002182200.15363-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkF0 b21pYyBkcml2ZXJzIHNob3VsZG4ndCBiZSB1c2luZyB0aGUgbGVnYWN5IHN0YXRlIHN0b3JlZApk aXJlY3RseSB1bmRlciBkcm1fY3J0Yy4gTW92ZSB0aGF0IGp1bmsgaW50byBhICdsZWdhY3knIHN1 YgpzdHJ1Y3R1cmUgdG8gaGlnaGxpZ2h0IHRoZSBvZmZlbmRlcnMsIG9mIHdoaWNoIHRoZXJlIGFy ZQpxdWl0ZSBhIGZldyB1bmZvcnR1bmF0ZWx5LgoKSSdtIGhvcGluZyB3ZSBjb3VsZCBnZXQgYWxs IHRoZXNlIGZpeGVkIGFuZCB0aGVuIGRlY2xhcmUKdGhlIGxlZ2FjeSBzdGF0ZSBvZmYgbGltaXRz IGZvciBhdG9taWMgZHJpdmVycyAod2hpY2ggaXMKd2hhdCBkaWQgbG9uZyBhZ28gZm9yIHBsYW5l LT5mYi9ldGMpLiBBbmQgbWF5YmUgZXZlbnR1YWxseQp0dXJuIGNydGMtPmxlZ2FjeSBpbnRvIGEg cG9pbnRlciBhbmQgb25seSBhbGxvY2F0ZSBpdCBvbgpsZWdhY3kgZHJpdmVycy4KClRPRE86IGh3 bW9kZSBzaG91bGQgcHJvYmFibHkgZ28gdGhlcmUgdG9vIGJ1dCBpdCBwcm9iYWJseQogICAgICBu ZWVkcyBhIGNsb3NlciBsb29rLCBtYXliZSBvdGhlciBzdHVmZiB0b28uLi4KCkNjOiBMaXZpdSBE dWRhdSA8bGl2aXUuZHVkYXVAYXJtLmNvbT4KQ2M6IFJ1c3NlbGwgS2luZyA8bGludXhAYXJtbGlu dXgub3JnLnVrPgpDYzogSW5raSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPgpDYzogUGF0cmlr IEpha29ic3NvbiA8cGF0cmlrLnIuamFrb2Jzc29uQGdtYWlsLmNvbT4KQ2M6IEFsYWluIFZvbG1h dCA8YWxhaW4udm9sbWF0QGZvc3Muc3QuY29tPgpDYzogU2FuZHkgSHVhbmcgPGhqY0Byb2NrLWNo aXBzLmNvbT4KQ2M6IEp5cmkgU2FyaGEgPGp5cmkuc2FyaGFAaWtpLmZpPgpDYzogQWxleGV5IEJy b2RraW4gPGFicm9ka2luQHN5bm9wc3lzLmNvbT4KQ2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRl QHJlZGhhdC5jb20+CkNjOiAiTWHDrXJhIENhbmFsIiA8bWFpcmFjYW5hbEByaXNldXAubmV0PgpD YzogWmFjayBSdXNpbiA8emFjay5ydXNpbkBicm9hZGNvbS5jb20+CkNjOiBhbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpDYzogbGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpD YzogbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1hcm0tbXNtQHZn ZXIua2VybmVsLm9yZ2EKQ2M6IGZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IG5v dXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnYQpDYzogdmlydHVhbGl6YXRpb25AbGlzdHMubGlu dXguZGV2CkNjOiBzcGljZS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IGxpbnV4LXJl bmVzYXMtc29jQHZnZXIua2VybmVsLm9yZwpDYzogeGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogLi4uL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5j ICAgIHwgIDcgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMg ICB8IDE0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbGwuYyAgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmttcy5jICAgICAg fCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgICAgICAgIHwg MjMgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyAgICAgICAg fCAyMyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgICAgICAg ICB8IDI1ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgICAg ICAgICB8IDIzICsrKy0tLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdw dV9kbS5jIHwgMTQgKystLQogLi4uL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3J0 Yy5jICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG0vYW1kZ3B1X2RwbV9pbnRlcm5h bC5jICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2Rydi5jICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYyAgICAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX2NydGMuYyAgICAgICAgICB8 IDEyICsrLQogZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHAuYyAgICAgICAgICAgICAgICAgIHwg IDggKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAgICAgICAgICB8ICA4 ICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgICAgICAgICAgfCAxMCAr LS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jICAgICAgICAgICAgICAgICAgICB8ICA5ICsr LQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jICAgICAgICAgICAgIHwgNjIgKysr KysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgICAgICAgICAg ICAgfCAxMCArKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICAgICAgICAgICAg ICB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jICAgICAgICAgICAg fCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYyB8ICA0 ICstCiBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9kcC5jICAgICAgICAgfCAgNCAr LQogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfaGRtaS5jICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2x2ZHMuYyAgICAgICB8ICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmMgICAgICAgICAgfCAgOCArLQogZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbHZkcy5jICAgICAgIHwgIDQgKy0KIGRyaXZl cnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYyAgICAgICB8ICA4ICstCiBkcml2ZXJz L2dwdS9kcm0vaTJjL2NoNzAwNl9kcnYuYyAgICAgICAgICAgICAgfCAgNSArLQogZHJpdmVycy9n cHUvZHJtL2kyYy9zaWwxNjRfZHJ2LmMgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX21vZGVzZXRfc2V0dXAuYyAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaW14L2xjZGMvaW14LWxjZGMuYyAgICAgICAgICAgfCAzMSArKysrKy0tLQogZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19jcnRjLmMgICAgICAgICAgIHwgIDYgKy0KIGRyaXZlcnMvZ3B1 L2RybS9tZXNvbi9tZXNvbl9vdmVybGF5LmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vbWVzb24vbWVzb25fcGxhbmUuYyAgICAgICAgICAgfCAgOCArLQogZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jIHwgMTggKysrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jICAgICB8IDE2ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9tZHA1L21kcDVfY3J0Yy5jICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnYwNC9jcnRjLmMgICAgICAgfCAgOSArKy0KIGRyaXZlcnMvZ3B1L2RybS9u b3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5jICAgICB8ICAyICstCiAuLi4vZ3B1L2RybS9ub3V2ZWF1 L2Rpc3BudjA0L3R2bW9kZXNudjE3LmMgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvZGlzcG52MDQvdHZudjE3LmMgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfY29ubmVjdG9yLmMgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9k aXNwbGF5LmMgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9t Ymlvc19jcnRjLmMgICAgICAgIHwgMTIgKy0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5j ICAgICAgICAgICAgICAgICAgfCAxMiArLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdy ZWVuLmMgICAgICAgICAgICB8IDE0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5j ICAgICAgICAgICAgICAgICB8IDEwICstLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2Nz LmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kcG0u YyAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25u ZWN0b3JzLmMgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29y LmMgICAgICAgIHwgMjkgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlz cGxheS5jICAgICAgIHwgMjIgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k cnYuYyAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVn YWN5X2NydGMuYyAgIHwgIDIgKy0KIC4uLi9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2Vu Y29kZXJzLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jICAgICAgICAg ICAgICAgIHwgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2OTAuYyAgICAgICAgICAg ICAgICB8IDIyICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczc4MF9kcG0uYyAgICAg ICAgICAgIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUuYyAgICAgICAgICAg ICAgICB8IDMwICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAgICAg ICAgICAgICAgfCAxNCArKy0tCiAuLi4vZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvcmNhcl9kdV9j cnRjLmMgICAgfCAgMiArLQogLi4uL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9zaG1vYl9kcm1f Y3J0Yy5jIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9w LmMgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMgICAgICAgICAgICAg ICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMgICAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jICAgICAgICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jICAgICAgICAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfdHZvdXQuYyAgICAgICAgICAgICAgIHwgIDYg Ky0KIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX3ZpZC5jICAgICAgICAgICAgICAgICB8ICAyICst CiBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19jcnRjLmMgICAgICAgICAgfCAxMCArLS0K IGRyaXZlcnMvZ3B1L2RybS90aW55L2FyY3BndS5jICAgICAgICAgICAgICAgICB8ICAyICstCiBk cml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zib3hfbW9kZS5jICAgICAgICAgfCAgMiArLQogZHJp dmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJz L2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZGlzcGxheS5jICAgICAgfCAgNCArLQogZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jb21wb3Nlci5jICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfY3J0Yy5jICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX3dyaXRlYmFjay5jICAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfa21zLmMgICAgICAgICAgIHwgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2xkdS5jICAgICAgICAgICB8IDE4ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9zY3JuLmMgICAgICAgICAgfCAgOSArKy0KIGRyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3N0ZHUuYyAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF92a21zLmMgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3hlbi94 ZW5fZHJtX2Zyb250X2ttcy5jICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvZHJtL2RybV9jcnRjLmgg ICAgICAgICAgICAgICAgICAgICAgICB8IDc1ICsrKysrKysrKystLS0tLS0tLS0KIDg5IGZpbGVz IGNoYW5nZWQsIDQzMSBpbnNlcnRpb25zKCspLCAzODMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jb25uZWN0b3JzLmMKaW5kZXggOTA5NzM0NzBi NmRhLi41YTMxNTJlZTE0NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jb25uZWN0b3JzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Nvbm5lY3RvcnMuYwpAQCAtOTIsOSArOTIsMTAgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2Nv bm5lY3Rvcl9wcm9wZXJ0eV9jaGFuZ2VfbW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp CiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsKIAotCWlmIChjcnRj ICYmIGNydGMtPmVuYWJsZWQpIHsKLQkJZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKGNydGMsICZj cnRjLT5tb2RlLAotCQkJCQkgY3J0Yy0+eCwgY3J0Yy0+eSwgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5 LmZiKTsKKwlpZiAoY3J0YyAmJiBjcnRjLT5sZWdhY3kuZW5hYmxlZCkgeworCQlkcm1fY3J0Y19o ZWxwZXJfc2V0X21vZGUoY3J0YywgJmNydGMtPmxlZ2FjeS5tb2RlLAorCQkJCQkgY3J0Yy0+bGVn YWN5LngsIGNydGMtPmxlZ2FjeS55LAorCQkJCQkgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5LmZiKTsK IAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCmlu ZGV4IDFiMTQ0OGE1ODU0My4uOGM1NGZmZjk0NWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMKQEAgLTMyOCw3ICszMjgsNyBAQCBpbnQgYW1kZ3B1X2Rp c3BsYXlfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKIAlyZXQgPSBk cm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzZXQsIGN0eCk7CiAKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkKLQkJaWYgKGNydGMt PmVuYWJsZWQpCisJCWlmIChjcnRjLT5sZWdhY3kuZW5hYmxlZCkKIAkJCWFjdGl2ZSA9IHRydWU7 CiAKIAlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGRldi0+ZGV2KTsKQEAgLTE0NjYsOSArMTQ2 Niw5IEBAIGJvb2wgYW1kZ3B1X2Rpc3BsYXlfY3J0Y19zY2FsaW5nX21vZGVfZml4dXAoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQltZW1jcHkoJmFtZGdwdV9jcnRjLT5uYXRpdmVfbW9kZSwKIAkJ ICAgICAgICZhbWRncHVfZW5jb2Rlci0+bmF0aXZlX21vZGUsCiAJCSAgICAgICBzaXplb2Yoc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUpKTsKLQkJc3JjX3YgPSBjcnRjLT5tb2RlLnZkaXNwbGF5Owor CQlzcmNfdiA9IGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5OwogCQlkc3RfdiA9IGFtZGdwdV9j cnRjLT5uYXRpdmVfbW9kZS52ZGlzcGxheTsKLQkJc3JjX2ggPSBjcnRjLT5tb2RlLmhkaXNwbGF5 OworCQlzcmNfaCA9IGNydGMtPmxlZ2FjeS5tb2RlLmhkaXNwbGF5OwogCQlkc3RfaCA9IGFtZGdw dV9jcnRjLT5uYXRpdmVfbW9kZS5oZGlzcGxheTsKIAogCQkvKiBmaXggdXAgZm9yIG92ZXJzY2Fu IG9uIGhkbWkgKi8KQEAgLTE0ODYsMTAgKzE0ODYsMTAgQEAgYm9vbCBhbWRncHVfZGlzcGxheV9j cnRjX3NjYWxpbmdfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQllbHNlCiAJ CQkJYW1kZ3B1X2NydGMtPnZfYm9yZGVyID0gKG1vZGUtPnZkaXNwbGF5ID4+IDUpICsgMTY7CiAJ CQlhbWRncHVfY3J0Yy0+cm14X3R5cGUgPSBSTVhfRlVMTDsKLQkJCXNyY192ID0gY3J0Yy0+bW9k ZS52ZGlzcGxheTsKLQkJCWRzdF92ID0gY3J0Yy0+bW9kZS52ZGlzcGxheSAtIChhbWRncHVfY3J0 Yy0+dl9ib3JkZXIgKiAyKTsKLQkJCXNyY19oID0gY3J0Yy0+bW9kZS5oZGlzcGxheTsKLQkJCWRz dF9oID0gY3J0Yy0+bW9kZS5oZGlzcGxheSAtIChhbWRncHVfY3J0Yy0+aF9ib3JkZXIgKiAyKTsK KwkJCXNyY192ID0gY3J0Yy0+bGVnYWN5Lm1vZGUudmRpc3BsYXk7CisJCQlkc3RfdiA9IGNydGMt PmxlZ2FjeS5tb2RlLnZkaXNwbGF5IC0gKGFtZGdwdV9jcnRjLT52X2JvcmRlciAqIDIpOworCQkJ c3JjX2ggPSBjcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheTsKKwkJCWRzdF9oID0gY3J0Yy0+bGVn YWN5Lm1vZGUuaGRpc3BsYXkgLSAoYW1kZ3B1X2NydGMtPmhfYm9yZGVyICogMik7CiAJCX0KIAl9 CiAJaWYgKGFtZGdwdV9jcnRjLT5ybXhfdHlwZSAhPSBSTVhfT0ZGKSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcGxsLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfcGxsLmMKaW5kZXggNjc1YWExMzhlYTExLi4yMTJkODMyOGU3NDEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wbGwuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcGxsLmMKQEAgLTM0OCw3ICszNDgs NyBAQCBpbnQgYW1kZ3B1X3BsbF9nZXRfc2hhcmVkX25vbmRwX3BwbGwoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCQkJfQogCQkJLyogZm9yIG5vbi1EUCBjaGVjayB0aGUgY2xvY2sgKi8KIAkJCXRl c3RfYWRqdXN0ZWRfY2xvY2sgPSB0ZXN0X2FtZGdwdV9jcnRjLT5hZGp1c3RlZF9jbG9jazsKLQkJ CWlmICgoY3J0Yy0+bW9kZS5jbG9jayA9PSB0ZXN0X2NydGMtPm1vZGUuY2xvY2spICYmCisJCQlp ZiAoKGNydGMtPmxlZ2FjeS5tb2RlLmNsb2NrID09IHRlc3RfY3J0Yy0+bGVnYWN5Lm1vZGUuY2xv Y2spICYmCiAJCQkgICAgKGFkanVzdGVkX2Nsb2NrID09IHRlc3RfYWRqdXN0ZWRfY2xvY2spICYm CiAJCQkgICAgKGFtZGdwdV9jcnRjLT5zc19lbmFibGVkID09IHRlc3RfYW1kZ3B1X2NydGMtPnNz X2VuYWJsZWQpICYmCiAJCQkgICAgKHRlc3RfYW1kZ3B1X2NydGMtPnBsbF9pZCAhPSBBVE9NX1BQ TExfSU5WQUxJRCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmttcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZrbXMuYwppbmRl eCBkNGMyYWZhZmJiNzMuLjljNzQ1Yjc2NDBjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZrbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmttcy5jCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZrbXNf ZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGFtZGdwdV92a21z X291dHB1dCAqb3V0ID0gZHJtX2NydGNfdG9fYW1kZ3B1X3ZrbXNfb3V0cHV0KGNydGMpOwogCXN0 cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGMgPSB0b19hbWRncHVfY3J0YyhjcnRjKTsKIAot CWRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoY3J0YywgJmNydGMtPm1vZGUpOworCWRy bV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoY3J0YywgJmNydGMtPmxlZ2FjeS5tb2RlKTsK IAogCW91dC0+cGVyaW9kX25zID0ga3RpbWVfc2V0KDAsIHZibGFuay0+ZnJhbWVkdXJfbnMpOwog CWhydGltZXJfc3RhcnQoJmFtZGdwdV9jcnRjLT52YmxhbmtfdGltZXIsIG91dC0+cGVyaW9kX25z LCBIUlRJTUVSX01PREVfUkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMK aW5kZXggZGIxOTg1NGYwNGYyLi5lM2JmNzFiNjc0ZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTBfMC5jCkBAIC02MDUsNyArNjA1LDcgQEAgc3RhdGljIHUzMiBkY2VfdjEwXzBf bGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCSAqIHRoYW4g NDA5NiwgeW91IG5lZWQgdXNlIHRvIHVzZSAyIGRpc3BsYXkgY29udHJvbGxlcnMgYW5kIGNvbWJp bmUKIAkgKiB0aGVtIHVzaW5nIHRoZSBzdGVyZW8gYmxlbmRlci4KIAkgKi8KLQlpZiAoYW1kZ3B1 X2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7CisJaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmxl Z2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJaWYgKG1vZGUtPmNydGNfaGRpc3BsYXkgPCAxOTIw KSB7CiAJCQltZW1fY2ZnID0gMTsKIAkJCWJ1ZmZlcl9hbGxvYyA9IDI7CkBAIC02NDAsNyArNjQw LDcgQEAgc3RhdGljIHUzMiBkY2VfdjEwXzBfbGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQl1ZGVsYXkoMSk7CiAJfQogCi0JaWYgKGFtZGdwdV9jcnRjLT5i YXNlLmVuYWJsZWQgJiYgbW9kZSkgeworCWlmIChhbWRncHVfY3J0Yy0+YmFzZS5sZWdhY3kuZW5h YmxlZCAmJiBtb2RlKSB7CiAJCXN3aXRjaCAobWVtX2NmZykgewogCQljYXNlIDA6CiAJCWRlZmF1 bHQ6CkBAIC0xMDI3LDE0ICsxMDI3LDE0IEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9wcm9ncmFt X3dhdGVybWFya3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCXN0cnVjdCBhbWRn cHVfY3J0YyAqYW1kZ3B1X2NydGMsCiAJCQkJCXUzMiBsYl9zaXplLCB1MzIgbnVtX2hlYWRzKQog ewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmFtZGdwdV9jcnRjLT5iYXNlLm1v ZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmYW1kZ3B1X2NydGMtPmJhc2Uu bGVnYWN5Lm1vZGU7CiAJc3RydWN0IGRjZTEwX3dtX3BhcmFtcyB3bV9sb3csIHdtX2hpZ2g7CiAJ dTMyIGFjdGl2ZV90aW1lOwogCXUzMiBsaW5lX3RpbWUgPSAwOwogCXUzMiBsYXRlbmN5X3dhdGVy bWFya19hID0gMCwgbGF0ZW5jeV93YXRlcm1hcmtfYiA9IDA7CiAJdTMyIHRtcCwgd21fbWFzaywg bGJfdmJsYW5rX2xlYWRfbGluZXMgPSAwOwogCi0JaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmVuYWJs ZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUpIHsKKwlpZiAoYW1kZ3B1X2NydGMtPmJhc2UubGVnYWN5 LmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUpIHsKIAkJYWN0aXZlX3RpbWUgPSAodTMyKSBk aXZfdTY0KCh1NjQpbW9kZS0+Y3J0Y19oZGlzcGxheSAqIDEwMDAwMDAsCiAJCQkJCSAgICAodTMy KW1vZGUtPmNsb2NrKTsKIAkJbGluZV90aW1lID0gKHUzMikgZGl2X3U2NCgodTY0KW1vZGUtPmNy dGNfaHRvdGFsICogMTAwMDAwMCwKQEAgLTExNjQsMTEgKzExNjQsMTEgQEAgc3RhdGljIHZvaWQg ZGNlX3YxMF8wX2JhbmR3aWR0aF91cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ YW1kZ3B1X2Rpc3BsYXlfdXBkYXRlX3ByaW9yaXR5KGFkZXYpOwogCiAJZm9yIChpID0gMDsgaSA8 IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsrKSB7Ci0JCWlmIChhZGV2LT5tb2RlX2luZm8u Y3J0Y3NbaV0tPmJhc2UuZW5hYmxlZCkKKwkJaWYgKGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+ YmFzZS5sZWdhY3kuZW5hYmxlZCkKIAkJCW51bV9oZWFkcysrOwogCX0KIAlmb3IgKGkgPSAwOyBp IDwgYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjOyBpKyspIHsKLQkJbW9kZSA9ICZhZGV2LT5tb2Rl X2luZm8uY3J0Y3NbaV0tPmJhc2UubW9kZTsKKwkJbW9kZSA9ICZhZGV2LT5tb2RlX2luZm8uY3J0 Y3NbaV0tPmJhc2UubGVnYWN5Lm1vZGU7CiAJCWxiX3NpemUgPSBkY2VfdjEwXzBfbGluZV9idWZm ZXJfYWRqdXN0KGFkZXYsIGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXSwgbW9kZSk7CiAJCWRjZV92 MTBfMF9wcm9ncmFtX3dhdGVybWFya3MoYWRldiwgYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLAog CQkJCQkgICAgbGJfc2l6ZSwgbnVtX2hlYWRzKTsKQEAgLTIwNjYsOCArMjA2Niw4IEBAIHN0YXRp YyBpbnQgZGNlX3YxMF8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CXkgJj0gfjE7CiAJV1JFRzMyKG1tVklFV1BPUlRfU1RBUlQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsCiAJICAgICAgICh4IDw8IDE2KSB8IHkpOwotCXZpZXdwb3J0X3cgPSBjcnRjLT5tb2Rl LmhkaXNwbGF5OwotCXZpZXdwb3J0X2ggPSAoY3J0Yy0+bW9kZS52ZGlzcGxheSArIDEpICYgfjE7 CisJdmlld3BvcnRfdyA9IGNydGMtPmxlZ2FjeS5tb2RlLmhkaXNwbGF5OworCXZpZXdwb3J0X2gg PSAoY3J0Yy0+bGVnYWN5Lm1vZGUudmRpc3BsYXkgKyAxKSAmIH4xOwogCVdSRUczMihtbVZJRVdQ T1JUX1NJWkUgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgICh2aWV3cG9ydF93 IDw8IDE2KSB8IHZpZXdwb3J0X2gpOwogCkBAIC0yMzMwLDkgKzIzMzAsMTAgQEAgc3RhdGljIGlu dCBkY2VfdjEwXzBfY3Vyc29yX21vdmVfbG9ja2VkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlh bWRncHVfY3J0Yy0+Y3Vyc29yX3kgPSB5OwogCiAJLyogYXZpdm8gY3Vyc29yIGFyZSBvZmZzZXQg aW50byB0aGUgdG90YWwgc3VyZmFjZSAqLwotCXggKz0gY3J0Yy0+eDsKLQl5ICs9IGNydGMtPnk7 Ci0JRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAlZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT54 LCBjcnRjLT55KTsKKwl4ICs9IGNydGMtPmxlZ2FjeS54OworCXkgKz0gY3J0Yy0+bGVnYWN5Lnk7 CisJRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAlZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT5s ZWdhY3kueCwKKwkJICBjcnRjLT5sZWdhY3kueSk7CiAKIAlpZiAoeCA8IDApIHsKIAkJeG9yaWdp biA9IG1pbigteCwgYW1kZ3B1X2NydGMtPm1heF9jdXJzb3Jfd2lkdGggLSAxKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZGNlX3YxMV8wLmMKaW5kZXggYWY4ODlkMGI2ODI2Li5hMmE4Nzc1ZmNm YzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCkBAIC02MzcsNyArNjM3 LDcgQEAgc3RhdGljIHUzMiBkY2VfdjExXzBfbGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCSAqIHRoYW4gNDA5NiwgeW91IG5lZWQgdXNlIHRvIHVzZSAyIGRp c3BsYXkgY29udHJvbGxlcnMgYW5kIGNvbWJpbmUKIAkgKiB0aGVtIHVzaW5nIHRoZSBzdGVyZW8g YmxlbmRlci4KIAkgKi8KLQlpZiAoYW1kZ3B1X2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7 CisJaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmxlZ2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJaWYg KG1vZGUtPmNydGNfaGRpc3BsYXkgPCAxOTIwKSB7CiAJCQltZW1fY2ZnID0gMTsKIAkJCWJ1ZmZl cl9hbGxvYyA9IDI7CkBAIC02NzIsNyArNjcyLDcgQEAgc3RhdGljIHUzMiBkY2VfdjExXzBfbGlu ZV9idWZmZXJfYWRqdXN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQl1ZGVsYXkoMSk7 CiAJfQogCi0JaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmVuYWJsZWQgJiYgbW9kZSkgeworCWlmIChh bWRncHVfY3J0Yy0+YmFzZS5sZWdhY3kuZW5hYmxlZCAmJiBtb2RlKSB7CiAJCXN3aXRjaCAobWVt X2NmZykgewogCQljYXNlIDA6CiAJCWRlZmF1bHQ6CkBAIC0xMDU5LDE0ICsxMDU5LDE0IEBAIHN0 YXRpYyB2b2lkIGRjZV92MTFfMF9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCiAJCQkJCXN0cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGMsCiAJCQkJCXUz MiBsYl9zaXplLCB1MzIgbnVtX2hlYWRzKQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlID0gJmFtZGdwdV9jcnRjLT5iYXNlLm1vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUgPSAmYW1kZ3B1X2NydGMtPmJhc2UubGVnYWN5Lm1vZGU7CiAJc3RydWN0IGRjZTEwX3dt X3BhcmFtcyB3bV9sb3csIHdtX2hpZ2g7CiAJdTMyIGFjdGl2ZV90aW1lOwogCXUzMiBsaW5lX3Rp bWUgPSAwOwogCXUzMiBsYXRlbmN5X3dhdGVybWFya19hID0gMCwgbGF0ZW5jeV93YXRlcm1hcmtf YiA9IDA7CiAJdTMyIHRtcCwgd21fbWFzaywgbGJfdmJsYW5rX2xlYWRfbGluZXMgPSAwOwogCi0J aWYgKGFtZGdwdV9jcnRjLT5iYXNlLmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUpIHsKKwlp ZiAoYW1kZ3B1X2NydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUp IHsKIAkJYWN0aXZlX3RpbWUgPSAodTMyKSBkaXZfdTY0KCh1NjQpbW9kZS0+Y3J0Y19oZGlzcGxh eSAqIDEwMDAwMDAsCiAJCQkJCSAgICAodTMyKW1vZGUtPmNsb2NrKTsKIAkJbGluZV90aW1lID0g KHUzMikgZGl2X3U2NCgodTY0KW1vZGUtPmNydGNfaHRvdGFsICogMTAwMDAwMCwKQEAgLTExOTYs MTEgKzExOTYsMTEgQEAgc3RhdGljIHZvaWQgZGNlX3YxMV8wX2JhbmR3aWR0aF91cGRhdGUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJYW1kZ3B1X2Rpc3BsYXlfdXBkYXRlX3ByaW9yaXR5 KGFkZXYpOwogCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsr KSB7Ci0JCWlmIChhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UuZW5hYmxlZCkKKwkJaWYg KGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5sZWdhY3kuZW5hYmxlZCkKIAkJCW51bV9o ZWFkcysrOwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjOyBp KyspIHsKLQkJbW9kZSA9ICZhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UubW9kZTsKKwkJ bW9kZSA9ICZhZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UubGVnYWN5Lm1vZGU7CiAJCWxi X3NpemUgPSBkY2VfdjExXzBfbGluZV9idWZmZXJfYWRqdXN0KGFkZXYsIGFkZXYtPm1vZGVfaW5m by5jcnRjc1tpXSwgbW9kZSk7CiAJCWRjZV92MTFfMF9wcm9ncmFtX3dhdGVybWFya3MoYWRldiwg YWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLAogCQkJCQkgICAgbGJfc2l6ZSwgbnVtX2hlYWRzKTsK QEAgLTIxMTYsOCArMjExNiw4IEBAIHN0YXRpYyBpbnQgZGNlX3YxMV8wX2NydGNfZG9fc2V0X2Jh c2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXkgJj0gfjE7CiAJV1JFRzMyKG1tVklFV1BPUlRf U1RBUlQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgICh4IDw8IDE2KSB8IHkp OwotCXZpZXdwb3J0X3cgPSBjcnRjLT5tb2RlLmhkaXNwbGF5OwotCXZpZXdwb3J0X2ggPSAoY3J0 Yy0+bW9kZS52ZGlzcGxheSArIDEpICYgfjE7CisJdmlld3BvcnRfdyA9IGNydGMtPmxlZ2FjeS5t b2RlLmhkaXNwbGF5OworCXZpZXdwb3J0X2ggPSAoY3J0Yy0+bGVnYWN5Lm1vZGUudmRpc3BsYXkg KyAxKSAmIH4xOwogCVdSRUczMihtbVZJRVdQT1JUX1NJWkUgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsCiAJICAgICAgICh2aWV3cG9ydF93IDw8IDE2KSB8IHZpZXdwb3J0X2gpOwogCkBAIC0y NDE0LDkgKzI0MTQsMTAgQEAgc3RhdGljIGludCBkY2VfdjExXzBfY3Vyc29yX21vdmVfbG9ja2Vk KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlhbWRncHVfY3J0Yy0+Y3Vyc29yX3kgPSB5OwogCiAJ LyogYXZpdm8gY3Vyc29yIGFyZSBvZmZzZXQgaW50byB0aGUgdG90YWwgc3VyZmFjZSAqLwotCXgg Kz0gY3J0Yy0+eDsKLQl5ICs9IGNydGMtPnk7Ci0JRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAl ZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT54LCBjcnRjLT55KTsKKwl4ICs9IGNydGMtPmxlZ2Fj eS54OworCXkgKz0gY3J0Yy0+bGVnYWN5Lnk7CisJRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAl ZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT5sZWdhY3kueCwKKwkJICBjcnRjLT5sZWdhY3kueSk7 CiAKIAlpZiAoeCA8IDApIHsKIAkJeG9yaWdpbiA9IG1pbigteCwgYW1kZ3B1X2NydGMtPm1heF9j dXJzb3Jfd2lkdGggLSAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCmluZGV4 IGQ1NWJlMTg5NTdiMy4uMGRjOTcwYjY2MTIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92Nl8wLmMKQEAgLTg0NSw3ICs4NDUsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9wcm9ncmFt X3dhdGVybWFya3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCXN0cnVjdCBhbWRn cHVfY3J0YyAqYW1kZ3B1X2NydGMsCiAJCQkJCXUzMiBsYl9zaXplLCB1MzIgbnVtX2hlYWRzKQog ewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmFtZGdwdV9jcnRjLT5iYXNlLm1v ZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmYW1kZ3B1X2NydGMtPmJhc2Uu bGVnYWN5Lm1vZGU7CiAJc3RydWN0IGRjZTZfd21fcGFyYW1zIHdtX2xvdywgd21faGlnaDsKIAl1 MzIgZHJhbV9jaGFubmVsczsKIAl1MzIgYWN0aXZlX3RpbWU7CkBAIC04NTcsNyArODU3LDcgQEAg c3RhdGljIHZvaWQgZGNlX3Y2XzBfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAogCXUzMiB0bXAsIGFyYl9jb250cm9sMywgbGJfdmJsYW5rX2xlYWRfbGluZXMg PSAwOwogCWZpeGVkMjBfMTIgYSwgYiwgYzsKIAotCWlmIChhbWRncHVfY3J0Yy0+YmFzZS5lbmFi bGVkICYmIG51bV9oZWFkcyAmJiBtb2RlKSB7CisJaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmxlZ2Fj eS5lbmFibGVkICYmIG51bV9oZWFkcyAmJiBtb2RlKSB7CiAJCWFjdGl2ZV90aW1lID0gKHUzMikg ZGl2X3U2NCgodTY0KW1vZGUtPmNydGNfaGRpc3BsYXkgKiAxMDAwMDAwLAogCQkJCQkgICAgKHUz Miltb2RlLT5jbG9jayk7CiAJCWxpbmVfdGltZSA9ICh1MzIpIGRpdl91NjQoKHU2NCltb2RlLT5j cnRjX2h0b3RhbCAqIDEwMDAwMDAsCkBAIC0xMDI2LDcgKzEwMjYsNyBAQCBzdGF0aWMgdTMyIGRj ZV92Nl8wX2xpbmVfYnVmZmVyX2FkanVzdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkg KiBvZiBjcnRjcy4gIElkZWFsbHkgZm9yIG11bHRpcGxlIGxhcmdlIGRpc3BsYXlzIHdlJ2QgYXNz aWduIHRoZW0gdG8KIAkgKiBub24tbGlua2VkIGNydGNzIGZvciBtYXhpbXVtIGxpbmUgYnVmZmVy IGFsbG9jYXRpb24uCiAJICovCi0JaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmVuYWJsZWQgJiYgbW9k ZSkgeworCWlmIChhbWRncHVfY3J0Yy0+YmFzZS5sZWdhY3kuZW5hYmxlZCAmJiBtb2RlKSB7CiAJ CWlmIChvdGhlcl9tb2RlKSB7CiAJCQl0bXAgPSAwOyAvKiAxLzIgKi8KIAkJCWJ1ZmZlcl9hbGxv YyA9IDE7CkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBzdGF0aWMgdTMyIGRjZV92Nl8wX2xpbmVfYnVm ZmVyX2FkanVzdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJdWRlbGF5KDEpOwogCX0K IAotCWlmIChhbWRncHVfY3J0Yy0+YmFzZS5lbmFibGVkICYmIG1vZGUpIHsKKwlpZiAoYW1kZ3B1 X2NydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQgJiYgbW9kZSkgewogCQlzd2l0Y2ggKHRtcCkgewog CQljYXNlIDA6CiAJCWRlZmF1bHQ6CkBAIC0xMDg3LDEyICsxMDg3LDEyIEBAIHN0YXRpYyB2b2lk IGRjZV92Nl8wX2JhbmR3aWR0aF91cGRhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJ YW1kZ3B1X2Rpc3BsYXlfdXBkYXRlX3ByaW9yaXR5KGFkZXYpOwogCiAJZm9yIChpID0gMDsgaSA8 IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsrKSB7Ci0JCWlmIChhZGV2LT5tb2RlX2luZm8u Y3J0Y3NbaV0tPmJhc2UuZW5hYmxlZCkKKwkJaWYgKGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+ YmFzZS5sZWdhY3kuZW5hYmxlZCkKIAkJCW51bV9oZWFkcysrOwogCX0KIAlmb3IgKGkgPSAwOyBp IDwgYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjOyBpICs9IDIpIHsKLQkJbW9kZTAgPSAmYWRldi0+ bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNlLm1vZGU7Ci0JCW1vZGUxID0gJmFkZXYtPm1vZGVfaW5m by5jcnRjc1tpKzFdLT5iYXNlLm1vZGU7CisJCW1vZGUwID0gJmFkZXYtPm1vZGVfaW5mby5jcnRj c1tpXS0+YmFzZS5sZWdhY3kubW9kZTsKKwkJbW9kZTEgPSAmYWRldi0+bW9kZV9pbmZvLmNydGNz W2krMV0tPmJhc2UubGVnYWN5Lm1vZGU7CiAJCWxiX3NpemUgPSBkY2VfdjZfMF9saW5lX2J1ZmZl cl9hZGp1c3QoYWRldiwgYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLCBtb2RlMCwgbW9kZTEpOwog CQlkY2VfdjZfMF9wcm9ncmFtX3dhdGVybWFya3MoYWRldiwgYWRldi0+bW9kZV9pbmZvLmNydGNz W2ldLCBsYl9zaXplLCBudW1faGVhZHMpOwogCQlsYl9zaXplID0gZGNlX3Y2XzBfbGluZV9idWZm ZXJfYWRqdXN0KGFkZXYsIGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpKzFdLCBtb2RlMSwgbW9kZTAp OwpAQCAtMjAyMyw4ICsyMDIzLDggQEAgc3RhdGljIGludCBkY2VfdjZfMF9jcnRjX2RvX3NldF9i YXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl5ICY9IH4xOwogCVdSRUczMihtbVZJRVdQT1JU X1NUQVJUICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICAoeCA8PCAxNikgfCB5 KTsKLQl2aWV3cG9ydF93ID0gY3J0Yy0+bW9kZS5oZGlzcGxheTsKLQl2aWV3cG9ydF9oID0gKGNy dGMtPm1vZGUudmRpc3BsYXkgKyAxKSAmIH4xOworCXZpZXdwb3J0X3cgPSBjcnRjLT5sZWdhY3ku bW9kZS5oZGlzcGxheTsKKwl2aWV3cG9ydF9oID0gKGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5 ICsgMSkgJiB+MTsKIAogCVdSRUczMihtbVZJRVdQT1JUX1NJWkUgKyBhbWRncHVfY3J0Yy0+Y3J0 Y19vZmZzZXQsCiAJICAgICAgICh2aWV3cG9ydF93IDw8IDE2KSB8IHZpZXdwb3J0X2gpOwpAQCAt MjI1MCw5ICsyMjUwLDEwIEBAIHN0YXRpYyBpbnQgZGNlX3Y2XzBfY3Vyc29yX21vdmVfbG9ja2Vk KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlhbWRncHVfY3J0Yy0+Y3Vyc29yX3kgPSB5OwogCiAJ LyogYXZpdm8gY3Vyc29yIGFyZSBvZmZzZXQgaW50byB0aGUgdG90YWwgc3VyZmFjZSAqLwotCXgg Kz0gY3J0Yy0+eDsKLQl5ICs9IGNydGMtPnk7Ci0JRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAl ZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT54LCBjcnRjLT55KTsKKwl4ICs9IGNydGMtPmxlZ2Fj eS54OworCXkgKz0gY3J0Yy0+bGVnYWN5Lnk7CisJRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+eCAl ZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT5sZWdhY3kueCwKKwkJICBjcnRjLT5sZWdhY3kueSk7 CiAKIAlpZiAoeCA8IDApIHsKIAkJeG9yaWdpbiA9IG1pbigteCwgYW1kZ3B1X2NydGMtPm1heF9j dXJzb3Jfd2lkdGggLSAxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2RjZV92OF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCmluZGV4 IDdhMjRkNTgzNTEwNy4uNjQyNGExYTQwOTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92OF8wLmMKQEAgLTU2MCw3ICs1NjAsNyBAQCBzdGF0aWMgdTMyIGRjZV92OF8wX2xpbmVfYnVm ZmVyX2FkanVzdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkgKiB0aGFuIDQwOTYsIHlv dSBuZWVkIHVzZSB0byB1c2UgMiBkaXNwbGF5IGNvbnRyb2xsZXJzIGFuZCBjb21iaW5lCiAJICog dGhlbSB1c2luZyB0aGUgc3RlcmVvIGJsZW5kZXIuCiAJICovCi0JaWYgKGFtZGdwdV9jcnRjLT5i YXNlLmVuYWJsZWQgJiYgbW9kZSkgeworCWlmIChhbWRncHVfY3J0Yy0+YmFzZS5sZWdhY3kuZW5h YmxlZCAmJiBtb2RlKSB7CiAJCWlmIChtb2RlLT5jcnRjX2hkaXNwbGF5IDwgMTkyMCkgewogCQkJ dG1wID0gMTsKIAkJCWJ1ZmZlcl9hbGxvYyA9IDI7CkBAIC01OTMsNyArNTkzLDcgQEAgc3RhdGlj IHUzMiBkY2VfdjhfMF9saW5lX2J1ZmZlcl9hZGp1c3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAJCXVkZWxheSgxKTsKIAl9CiAKLQlpZiAoYW1kZ3B1X2NydGMtPmJhc2UuZW5hYmxlZCAm JiBtb2RlKSB7CisJaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmxlZ2FjeS5lbmFibGVkICYmIG1vZGUp IHsKIAkJc3dpdGNoICh0bXApIHsKIAkJY2FzZSAwOgogCQlkZWZhdWx0OgpAQCAtOTgwLDE0ICs5 ODAsMTQgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LAogCQkJCQlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRj LAogCQkJCQl1MzIgbGJfc2l6ZSwgdTMyIG51bV9oZWFkcykKIHsKLQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSA9ICZhbWRncHVfY3J0Yy0+YmFzZS5tb2RlOworCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlID0gJmFtZGdwdV9jcnRjLT5iYXNlLmxlZ2FjeS5tb2RlOwogCXN0cnVj dCBkY2U4X3dtX3BhcmFtcyB3bV9sb3csIHdtX2hpZ2g7CiAJdTMyIGFjdGl2ZV90aW1lOwogCXUz MiBsaW5lX3RpbWUgPSAwOwogCXUzMiBsYXRlbmN5X3dhdGVybWFya19hID0gMCwgbGF0ZW5jeV93 YXRlcm1hcmtfYiA9IDA7CiAJdTMyIHRtcCwgd21fbWFzaywgbGJfdmJsYW5rX2xlYWRfbGluZXMg PSAwOwogCi0JaWYgKGFtZGdwdV9jcnRjLT5iYXNlLmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1v ZGUpIHsKKwlpZiAoYW1kZ3B1X2NydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQgJiYgbnVtX2hlYWRz ICYmIG1vZGUpIHsKIAkJYWN0aXZlX3RpbWUgPSAodTMyKSBkaXZfdTY0KCh1NjQpbW9kZS0+Y3J0 Y19oZGlzcGxheSAqIDEwMDAwMDAsCiAJCQkJCSAgICAodTMyKW1vZGUtPmNsb2NrKTsKIAkJbGlu ZV90aW1lID0gKHUzMikgZGl2X3U2NCgodTY0KW1vZGUtPmNydGNfaHRvdGFsICogMTAwMDAwMCwK QEAgLTExMTksMTEgKzExMTksMTEgQEAgc3RhdGljIHZvaWQgZGNlX3Y4XzBfYmFuZHdpZHRoX3Vw ZGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhbWRncHVfZGlzcGxheV91cGRhdGVf cHJpb3JpdHkoYWRldik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bW9kZV9pbmZvLm51bV9j cnRjOyBpKyspIHsKLQkJaWYgKGFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5lbmFibGVk KQorCQlpZiAoYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNlLmxlZ2FjeS5lbmFibGVkKQog CQkJbnVtX2hlYWRzKys7CiAJfQogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5tb2RlX2luZm8ubnVt X2NydGM7IGkrKykgewotCQltb2RlID0gJmFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5t b2RlOworCQltb2RlID0gJmFkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5sZWdhY3kubW9k ZTsKIAkJbGJfc2l6ZSA9IGRjZV92OF8wX2xpbmVfYnVmZmVyX2FkanVzdChhZGV2LCBhZGV2LT5t b2RlX2luZm8uY3J0Y3NbaV0sIG1vZGUpOwogCQlkY2VfdjhfMF9wcm9ncmFtX3dhdGVybWFya3Mo YWRldiwgYWRldi0+bW9kZV9pbmZvLmNydGNzW2ldLAogCQkJCQkgICAgbGJfc2l6ZSwgbnVtX2hl YWRzKTsKQEAgLTE5OTMsOCArMTk5Myw4IEBAIHN0YXRpYyBpbnQgZGNlX3Y4XzBfY3J0Y19kb19z ZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJeSAmPSB+MTsKIAlXUkVHMzIobW1WSUVX UE9SVF9TVEFSVCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKIAkgICAgICAgKHggPDwgMTYp IHwgeSk7Ci0Jdmlld3BvcnRfdyA9IGNydGMtPm1vZGUuaGRpc3BsYXk7Ci0Jdmlld3BvcnRfaCA9 IChjcnRjLT5tb2RlLnZkaXNwbGF5ICsgMSkgJiB+MTsKKwl2aWV3cG9ydF93ID0gY3J0Yy0+bGVn YWN5Lm1vZGUuaGRpc3BsYXk7CisJdmlld3BvcnRfaCA9IChjcnRjLT5sZWdhY3kubW9kZS52ZGlz cGxheSArIDEpICYgfjE7CiAJV1JFRzMyKG1tVklFV1BPUlRfU0laRSArIGFtZGdwdV9jcnRjLT5j cnRjX29mZnNldCwKIAkgICAgICAgKHZpZXdwb3J0X3cgPDwgMTYpIHwgdmlld3BvcnRfaCk7CiAK QEAgLTIyNDksOSArMjI0OSwxMCBAQCBzdGF0aWMgaW50IGRjZV92OF8wX2N1cnNvcl9tb3ZlX2xv Y2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJYW1kZ3B1X2NydGMtPmN1cnNvcl95ID0geTsK IAogCS8qIGF2aXZvIGN1cnNvciBhcmUgb2Zmc2V0IGludG8gdGhlIHRvdGFsIHN1cmZhY2UgKi8K LQl4ICs9IGNydGMtPng7Ci0JeSArPSBjcnRjLT55OwotCURSTV9ERUJVRygieCAlZCB5ICVkIGMt PnggJWQgYy0+eSAlZFxuIiwgeCwgeSwgY3J0Yy0+eCwgY3J0Yy0+eSk7CisJeCArPSBjcnRjLT5s ZWdhY3kueDsKKwl5ICs9IGNydGMtPmxlZ2FjeS55OworCURSTV9ERUJVRygieCAlZCB5ICVkIGMt PnggJWQgYy0+eSAlZFxuIiwgeCwgeSwgY3J0Yy0+bGVnYWN5LngsCisJCSAgY3J0Yy0+bGVnYWN5 LnkpOwogCiAJaWYgKHggPCAwKSB7CiAJCXhvcmlnaW4gPSBtaW4oLXgsIGFtZGdwdV9jcnRjLT5t YXhfY3Vyc29yX3dpZHRoIC0gMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCA2ZTc5MDI4YzVkNzguLjYwZjIwZmQyODdiMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf ZG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9k bS5jCkBAIC04NDk4LDggKzg0OTgsOCBAQCBzdGF0aWMgYm9vbCBpc19jb250ZW50X3Byb3RlY3Rp b25fZGlmZmVyZW50KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdAogCSAqCiAJ ICogSGFuZGxlczoJREVTSVJFRCAtPiBERVNJUkVEIChTcGVjaWFsIGNhc2UpCiAJICovCi0JaWYg KCEob2xkX2Nvbm5fc3RhdGUtPmNydGMgJiYgb2xkX2Nvbm5fc3RhdGUtPmNydGMtPmVuYWJsZWQp ICYmCi0JCW5ld19jb25uX3N0YXRlLT5jcnRjICYmIG5ld19jb25uX3N0YXRlLT5jcnRjLT5lbmFi bGVkICYmCisJaWYgKCEob2xkX2Nvbm5fc3RhdGUtPmNydGMgJiYgb2xkX2Nvbm5fc3RhdGUtPmNy dGMtPmxlZ2FjeS5lbmFibGVkKSAmJgorCQluZXdfY29ubl9zdGF0ZS0+Y3J0YyAmJiBuZXdfY29u bl9zdGF0ZS0+Y3J0Yy0+bGVnYWN5LmVuYWJsZWQgJiYKIAkJY29ubmVjdG9yLT5zdGF0ZS0+Y29u dGVudF9wcm90ZWN0aW9uID09IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEKSB7 CiAJCWRtX2Nvbl9zdGF0ZS0+dXBkYXRlX2hkY3AgPSBmYWxzZTsKIAkJcHJfZGVidWcoIltIRENQ X0RNXSBERVNJUkVELT5ERVNJUkVEIChTdHJlYW0gcmVtb3ZlZCBhbmQgcmUtZW5hYmxlZCkgJXMg OnRydWVcbiIsCkBAIC05NjM1LDEwICs5NjM1LDEwIEBAIHN0YXRpYyB2b2lkIGRtX3NldF93cml0 ZWJhY2soc3RydWN0IGFtZGdwdV9kaXNwbGF5X21hbmFnZXIgKmRtLAogCXdiX2luZm8tPmR3Yl9w YXJhbXMuY252X3BhcmFtcy5jbnZfb3V0X2JwYyA9IERXQl9DTlZfT1VUX0JQQ18xMEJQQzsKIAog CS8qIHdpZHRoICYgaGVpZ2h0IGZyb20gY3J0YyAqLwotCXdiX2luZm8tPmR3Yl9wYXJhbXMuY252 X3BhcmFtcy5zcmNfd2lkdGggPSBhY3J0Yy0+YmFzZS5tb2RlLmNydGNfaGRpc3BsYXk7Ci0Jd2Jf aW5mby0+ZHdiX3BhcmFtcy5jbnZfcGFyYW1zLnNyY19oZWlnaHQgPSBhY3J0Yy0+YmFzZS5tb2Rl LmNydGNfdmRpc3BsYXk7Ci0Jd2JfaW5mby0+ZHdiX3BhcmFtcy5kZXN0X3dpZHRoID0gYWNydGMt PmJhc2UubW9kZS5jcnRjX2hkaXNwbGF5OwotCXdiX2luZm8tPmR3Yl9wYXJhbXMuZGVzdF9oZWln aHQgPSBhY3J0Yy0+YmFzZS5tb2RlLmNydGNfdmRpc3BsYXk7CisJd2JfaW5mby0+ZHdiX3BhcmFt cy5jbnZfcGFyYW1zLnNyY193aWR0aCA9IGFjcnRjLT5iYXNlLmxlZ2FjeS5tb2RlLmNydGNfaGRp c3BsYXk7CisJd2JfaW5mby0+ZHdiX3BhcmFtcy5jbnZfcGFyYW1zLnNyY19oZWlnaHQgPSBhY3J0 Yy0+YmFzZS5sZWdhY3kubW9kZS5jcnRjX3ZkaXNwbGF5OworCXdiX2luZm8tPmR3Yl9wYXJhbXMu ZGVzdF93aWR0aCA9IGFjcnRjLT5iYXNlLmxlZ2FjeS5tb2RlLmNydGNfaGRpc3BsYXk7CisJd2Jf aW5mby0+ZHdiX3BhcmFtcy5kZXN0X2hlaWdodCA9IGFjcnRjLT5iYXNlLmxlZ2FjeS5tb2RlLmNy dGNfdmRpc3BsYXk7CiAKIAl3Yl9pbmZvLT5kd2JfcGFyYW1zLmNudl9wYXJhbXMuY3JvcF9lbiA9 IGZhbHNlOwogCXdiX2luZm8tPmR3Yl9wYXJhbXMuc3RlcmVvX3BhcmFtcy5zdGVyZW9fZW5hYmxl ZCA9IGZhbHNlOwpAQCAtOTg4MCw3ICs5ODgwLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2F0 b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJc3Ry ZWFtX3VwZGF0ZS5zdHJlYW0gPSBkbV9uZXdfY3J0Y19zdGF0ZS0+c3RyZWFtOwogCQlpZiAoc2Nh bGluZ19jaGFuZ2VkKSB7Ci0JCQl1cGRhdGVfc3RyZWFtX3NjYWxpbmdfc2V0dGluZ3MoJmRtX25l d19jb25fc3RhdGUtPmJhc2UuY3J0Yy0+bW9kZSwKKwkJCXVwZGF0ZV9zdHJlYW1fc2NhbGluZ19z ZXR0aW5ncygmZG1fbmV3X2Nvbl9zdGF0ZS0+YmFzZS5jcnRjLT5sZWdhY3kubW9kZSwKIAkJCQkJ ZG1fbmV3X2Nvbl9zdGF0ZSwgZG1fbmV3X2NydGNfc3RhdGUtPnN0cmVhbSk7CiAKIAkJCXN0cmVh bV91cGRhdGUuc3JjID0gZG1fbmV3X2NydGNfc3RhdGUtPnN0cmVhbS0+c3JjOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3J0Yy5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3J0Yy5j CmluZGV4IGEyY2YyYzA2NmE3Ni4uYjU0M2Q3MGMxODgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9jcnRjLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fY3J0Yy5jCkBAIC03MjEs NyArNzIxLDcgQEAgaW50IGFtZGdwdV9kbV9jcnRjX2luaXQoc3RydWN0IGFtZGdwdV9kaXNwbGF5 X21hbmFnZXIgKmRtLAogCWFjcnRjLT5tYXhfY3Vyc29yX2hlaWdodCA9IGRtLT5hZGV2LT5kbS5k Yy0+Y2Fwcy5tYXhfY3Vyc29yX3NpemU7CiAKIAlhY3J0Yy0+Y3J0Y19pZCA9IGNydGNfaW5kZXg7 Ci0JYWNydGMtPmJhc2UuZW5hYmxlZCA9IGZhbHNlOworCWFjcnRjLT5iYXNlLmxlZ2FjeS5lbmFi bGVkID0gZmFsc2U7CiAJYWNydGMtPm90Z19pbnN0ID0gLTE7CiAKIAlkbS0+YWRldi0+bW9kZV9p bmZvLmNydGNzW2NydGNfaW5kZXhdID0gYWNydGM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL3BtL2FtZGdwdV9kcG1faW50ZXJuYWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0v YW1kZ3B1X2RwbV9pbnRlcm5hbC5jCmluZGV4IDQyZWZlODM4ZmE4NS4uMTVmZjBmZDIxNTdiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL2FtZGdwdV9kcG1faW50ZXJuYWwuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL2FtZGdwdV9kcG1faW50ZXJuYWwuYwpAQCAtNTgs NyArNTgsNyBAQCB1MzIgYW1kZ3B1X2RwbV9nZXRfdmJsYW5rX3RpbWUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJaWYgKGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YyAmJiBhZGV2LT5tb2Rl X2luZm8ubW9kZV9jb25maWdfaW5pdGlhbGl6ZWQpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShj cnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKIAkJCWFtZGdwdV9jcnRj ID0gdG9fYW1kZ3B1X2NydGMoY3J0Yyk7Ci0JCQlpZiAoY3J0Yy0+ZW5hYmxlZCAmJiBhbWRncHVf Y3J0Yy0+ZW5hYmxlZCAmJiBhbWRncHVfY3J0Yy0+aHdfbW9kZS5jbG9jaykgeworCQkJaWYgKGNy dGMtPmxlZ2FjeS5lbmFibGVkICYmIGFtZGdwdV9jcnRjLT5lbmFibGVkICYmIGFtZGdwdV9jcnRj LT5od19tb2RlLmNsb2NrKSB7CiAJCQkJdmJsYW5rX2luX3BpeGVscyA9CiAJCQkJCWFtZGdwdV9j cnRjLT5od19tb2RlLmNydGNfaHRvdGFsICoKIAkJCQkJKGFtZGdwdV9jcnRjLT5od19tb2RlLmNy dGNfdmJsYW5rX2VuZCAtCkBAIC04NCw3ICs4NCw3IEBAIHUzMiBhbWRncHVfZHBtX2dldF92cmVm cmVzaChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoYWRldi0+bW9kZV9pbmZvLm51 bV9jcnRjICYmIGFkZXYtPm1vZGVfaW5mby5tb2RlX2NvbmZpZ19pbml0aWFsaXplZCkgewogCQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVh ZCkgewogCQkJYW1kZ3B1X2NydGMgPSB0b19hbWRncHVfY3J0YyhjcnRjKTsKLQkJCWlmIChjcnRj LT5lbmFibGVkICYmIGFtZGdwdV9jcnRjLT5lbmFibGVkICYmIGFtZGdwdV9jcnRjLT5od19tb2Rl LmNsb2NrKSB7CisJCQlpZiAoY3J0Yy0+bGVnYWN5LmVuYWJsZWQgJiYgYW1kZ3B1X2NydGMtPmVu YWJsZWQgJiYgYW1kZ3B1X2NydGMtPmh3X21vZGUuY2xvY2spIHsKIAkJCQl2cmVmcmVzaCA9IGRy bV9tb2RlX3ZyZWZyZXNoKCZhbWRncHVfY3J0Yy0+aHdfbW9kZSk7CiAJCQkJYnJlYWs7CiAJCQl9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2hkbGNkX2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2FybS9oZGxjZF9kcnYuYwppbmRleCBmNWQzNThmMzg5M2IuLmJhMWYxOTY3NDViZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9oZGxjZF9kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYXJtL2hkbGNkX2Rydi5jCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGludCBo ZGxjZF9zaG93X3B4bGNsb2NrKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqYXJnKQogCXN0cnVj dCBkcm1fZGV2aWNlICpkcm0gPSBlbnRyeS0+ZGV2OwogCXN0cnVjdCBoZGxjZF9kcm1fcHJpdmF0 ZSAqaGRsY2QgPSBkcm1fdG9faGRsY2RfcHJpdihkcm0pOwogCXVuc2lnbmVkIGxvbmcgY2xrcmF0 ZSA9IGNsa19nZXRfcmF0ZShoZGxjZC0+Y2xrKTsKLQl1bnNpZ25lZCBsb25nIG1vZGVfY2xvY2sg PSBoZGxjZC0+Y3J0Yy5tb2RlLmNydGNfY2xvY2sgKiAxMDAwOworCXVuc2lnbmVkIGxvbmcgbW9k ZV9jbG9jayA9IGhkbGNkLT5jcnRjLmxlZ2FjeS5tb2RlLmNydGNfY2xvY2sgKiAxMDAwOwogCiAJ c2VxX3ByaW50ZihtLCAiaHcgIDogJWx1XG4iLCBjbGtyYXRlKTsKIAlzZXFfcHJpbnRmKG0sICJt b2RlOiAlbHVcbiIsIG1vZGVfY2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9tYWxpZHBfaHcuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2h3LmMKaW5kZXggOWI4 NDVkM2YzNGUxLi44NGVlZDljZGM2YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v bWFsaWRwX2h3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfaHcuYwpAQCAtMTIw OSw3ICsxMjA5LDcgQEAgc3RhdGljIGlycXJldHVybl90IG1hbGlkcF9kZV9pcnEoaW50IGlycSwg dm9pZCAqYXJnKQogCW1hc2sgPSBtYWxpZHBfaHdfcmVhZChod2RldiwgTUFMSURQX1JFR19NQVNL SVJRKTsKIAkvKiBrZWVwIHRoZSBzdGF0dXMgb2YgdGhlIGVuYWJsZWQgaW50ZXJydXB0cywgcGx1 cyB0aGUgZXJyb3IgYml0cyAqLwogCXN0YXR1cyAmPSAobWFzayB8IGRlLT5lcnJfbWFzayk7Ci0J aWYgKChzdGF0dXMgJiBkZS0+dnN5bmNfaXJxKSAmJiBtYWxpZHAtPmNydGMuZW5hYmxlZCkKKwlp ZiAoKHN0YXR1cyAmIGRlLT52c3luY19pcnEpICYmIG1hbGlkcC0+Y3J0Yy5sZWdhY3kuZW5hYmxl ZCkKIAkJZHJtX2NydGNfaGFuZGxlX3ZibGFuaygmbWFsaWRwLT5jcnRjKTsKIAogI2lmZGVmIENP TkZJR19ERUJVR19GUwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFf Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5jCmluZGV4IGM3ODY4 N2M3NTVhOC4uN2QxY2U1ZTE1MTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRh L2FybWFkYV9jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfY3J0Yy5j CkBAIC02MTMsMTAgKzYxMywxMiBAQCBzdGF0aWMgaW50IGFybWFkYV9kcm1fY3J0Y19jdXJzb3Jf dXBkYXRlKHN0cnVjdCBhcm1hZGFfY3J0YyAqZGNydGMsIGJvb2wgcmVsb2FkKQogCQl4b2ZmID0g LWRjcnRjLT5jdXJzb3JfeDsKIAkJeHNjciA9IDA7CiAJCXcgLT0gbWluKHhvZmYsIHcpOwotCX0g ZWxzZSBpZiAoZGNydGMtPmN1cnNvcl94ICsgdyA+IGRjcnRjLT5jcnRjLm1vZGUuaGRpc3BsYXkp IHsKKwl9IGVsc2UgaWYgKGRjcnRjLT5jdXJzb3JfeCArIHcgPiBkY3J0Yy0+Y3J0Yy5sZWdhY3ku bW9kZS5oZGlzcGxheSkgewogCQl4b2ZmID0gMDsKIAkJeHNjciA9IGRjcnRjLT5jdXJzb3JfeDsK LQkJdyA9IG1heF90KGludCwgZGNydGMtPmNydGMubW9kZS5oZGlzcGxheSAtIGRjcnRjLT5jdXJz b3JfeCwgMCk7CisJCXcgPSBtYXhfdChpbnQsCisJCQkgIGRjcnRjLT5jcnRjLmxlZ2FjeS5tb2Rl LmhkaXNwbGF5IC0gZGNydGMtPmN1cnNvcl94LAorCQkJICAwKTsKIAl9IGVsc2UgewogCQl4b2Zm ID0gMDsKIAkJeHNjciA9IGRjcnRjLT5jdXJzb3JfeDsKQEAgLTYyNiwxMCArNjI4LDEyIEBAIHN0 YXRpYyBpbnQgYXJtYWRhX2RybV9jcnRjX2N1cnNvcl91cGRhdGUoc3RydWN0IGFybWFkYV9jcnRj ICpkY3J0YywgYm9vbCByZWxvYWQpCiAJCXlvZmYgPSAtZGNydGMtPmN1cnNvcl95OwogCQl5c2Ny ID0gMDsKIAkJaCAtPSBtaW4oeW9mZiwgaCk7Ci0JfSBlbHNlIGlmIChkY3J0Yy0+Y3Vyc29yX3kg KyBoID4gZGNydGMtPmNydGMubW9kZS52ZGlzcGxheSkgeworCX0gZWxzZSBpZiAoZGNydGMtPmN1 cnNvcl95ICsgaCA+IGRjcnRjLT5jcnRjLmxlZ2FjeS5tb2RlLnZkaXNwbGF5KSB7CiAJCXlvZmYg PSAwOwogCQl5c2NyID0gZGNydGMtPmN1cnNvcl95OwotCQloID0gbWF4X3QoaW50LCBkY3J0Yy0+ Y3J0Yy5tb2RlLnZkaXNwbGF5IC0gZGNydGMtPmN1cnNvcl95LCAwKTsKKwkJaCA9IG1heF90KGlu dCwKKwkJCSAgZGNydGMtPmNydGMubGVnYWN5Lm1vZGUudmRpc3BsYXkgLSBkY3J0Yy0+Y3Vyc29y X3ksCisJCQkgIDApOwogCX0gZWxzZSB7CiAJCXlvZmYgPSAwOwogCQl5c2NyID0gZGNydGMtPmN1 cnNvcl95OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X2RwLmMKaW5kZXggMGUyODJiN2IxNjdjLi5lZWQzZTQ0YmIwYTIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2RwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FzdC9hc3RfZHAuYwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyB2b2lkIGFzdF9k cF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBhc3RfdmJpb3NfbW9kZV9p bmZvICp2CiAKIAl1bFJlZnJlc2hSYXRlSW5kZXggPSB2Ymlvc19tb2RlLT5lbmhfdGFibGUtPnJl ZnJlc2hfcmF0ZV9pbmRleCAtIDE7CiAKLQlzd2l0Y2ggKGNydGMtPm1vZGUuY3J0Y19oZGlzcGxh eSkgeworCXN3aXRjaCAoY3J0Yy0+bGVnYWN5Lm1vZGUuY3J0Y19oZGlzcGxheSkgewogCWNhc2Ug MzIwOgogCQlNb2RlSWR4ID0gQVNURFBfMzIweDI0MF82MDsKIAkJYnJlYWs7CkBAIC0yNTMsNyAr MjUzLDcgQEAgc3RhdGljIHZvaWQgYXN0X2RwX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 Yywgc3RydWN0IGFzdF92Ymlvc19tb2RlX2luZm8gKnYKIAkJTW9kZUlkeCA9IEFTVERQXzExNTJ4 ODY0Xzc1OwogCQlicmVhazsKIAljYXNlIDEyODA6Ci0JCWlmIChjcnRjLT5tb2RlLmNydGNfdmRp c3BsYXkgPT0gODAwKQorCQlpZiAoY3J0Yy0+bGVnYWN5Lm1vZGUuY3J0Y192ZGlzcGxheSA9PSA4 MDApCiAJCQlNb2RlSWR4ID0gKEFTVERQXzEyODB4ODAwXzYwX1JCIC0gKHU4KSB1bFJlZnJlc2hS YXRlSW5kZXgpOwogCQllbHNlCQkvLyAxMDI0CiAJCQlNb2RlSWR4ID0gKEFTVERQXzEyODB4MTAy NF82MCArICh1OCkgdWxSZWZyZXNoUmF0ZUluZGV4KTsKQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0 aWMgdm9pZCBhc3RfZHBfc2V0X21vZGUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgYXN0 X3ZiaW9zX21vZGVfaW5mbyAqdgogCQlNb2RlSWR4ID0gKEFTVERQXzE0NDB4OTAwXzYwX1JCIC0g KHU4KSB1bFJlZnJlc2hSYXRlSW5kZXgpOwogCQlicmVhazsKIAljYXNlIDE2MDA6Ci0JCWlmIChj cnRjLT5tb2RlLmNydGNfdmRpc3BsYXkgPT0gOTAwKQorCQlpZiAoY3J0Yy0+bGVnYWN5Lm1vZGUu Y3J0Y192ZGlzcGxheSA9PSA5MDApCiAJCQlNb2RlSWR4ID0gKEFTVERQXzE2MDB4OTAwXzYwX1JC IC0gKHU4KSB1bFJlZnJlc2hSYXRlSW5kZXgpOwogCQllbHNlCQkvLzEyMDAKIAkJCU1vZGVJZHgg PSBBU1REUF8xNjAweDEyMDBfNjA7CkBAIC0yNzUsNyArMjc1LDcgQEAgc3RhdGljIHZvaWQgYXN0 X2RwX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGFzdF92Ymlvc19tb2Rl X2luZm8gKnYKIAkJTW9kZUlkeCA9IChBU1REUF8xNjgweDEwNTBfNjBfUkIgLSAodTgpIHVsUmVm cmVzaFJhdGVJbmRleCk7CiAJCWJyZWFrOwogCWNhc2UgMTkyMDoKLQkJaWYgKGNydGMtPm1vZGUu Y3J0Y192ZGlzcGxheSA9PSAxMDgwKQorCQlpZiAoY3J0Yy0+bGVnYWN5Lm1vZGUuY3J0Y192ZGlz cGxheSA9PSAxMDgwKQogCQkJTW9kZUlkeCA9IEFTVERQXzE5MjB4MTA4MF82MDsKIAkJZWxzZQkJ Ly8xMjAwCiAJCQlNb2RlSWR4ID0gQVNURFBfMTkyMHgxMjAwXzYwOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYwppbmRleCA1MTg2ZDIxMTRhNTAuLjc5YjNmMmI0Y2RiNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTEzMDEsMTUgKzEzMDEsMTUgQEAgZHJtX2F0b21p Y19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5wcmltYXJ5OwogCQlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGU7CiAKLQkJY3J0Yy0+bW9kZSA9IG5l d19jcnRjX3N0YXRlLT5tb2RlOwotCQljcnRjLT5lbmFibGVkID0gbmV3X2NydGNfc3RhdGUtPmVu YWJsZTsKKwkJY3J0Yy0+bGVnYWN5Lm1vZGUgPSBuZXdfY3J0Y19zdGF0ZS0+bW9kZTsKKwkJY3J0 Yy0+bGVnYWN5LmVuYWJsZWQgPSBuZXdfY3J0Y19zdGF0ZS0+ZW5hYmxlOwogCiAJCW5ld19wbGFu ZV9zdGF0ZSA9CiAJCQlkcm1fYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUob2xkX3N0YXRlLCBw cmltYXJ5KTsKIAogCQlpZiAobmV3X3BsYW5lX3N0YXRlICYmIG5ld19wbGFuZV9zdGF0ZS0+Y3J0 YyA9PSBjcnRjKSB7Ci0JCQljcnRjLT54ID0gbmV3X3BsYW5lX3N0YXRlLT5zcmNfeCA+PiAxNjsK LQkJCWNydGMtPnkgPSBuZXdfcGxhbmVfc3RhdGUtPnNyY195ID4+IDE2OworCQkJY3J0Yy0+bGVn YWN5LnggPSBuZXdfcGxhbmVfc3RhdGUtPnNyY194ID4+IDE2OworCQkJY3J0Yy0+bGVnYWN5Lnkg PSBuZXdfcGxhbmVfc3RhdGUtPnNyY195ID4+IDE2OwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jbGllbnRfbW9kZXNldC5jCmluZGV4IGNlZTVlYWZiZmI4MS4uNjlhZjcxZTJiMTMxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCkBAIC03MDMsMTcgKzcwMywxNyBAQCBzdGF0 aWMgYm9vbCBkcm1fY2xpZW50X2Zpcm13YXJlX2NvbmZpZyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYg KmNsaWVudCwKIAkJCS8qCiAJCQkgKiBJTVBPUlRBTlQ6IFdlIHdhbnQgdG8gdXNlIHRoZSBhZGp1 c3RlZCBtb2RlIChpLmUuCiAJCQkgKiBhZnRlciB0aGUgcGFuZWwgZml0dGVyIHVwc2NhbGluZykg YXMgdGhlIGluaXRpYWwKLQkJCSAqIGNvbmZpZywgbm90IHRoZSBpbnB1dCBtb2RlLCB3aGljaCBp cyB3aGF0IGNydGMtPm1vZGUKKwkJCSAqIGNvbmZpZywgbm90IHRoZSBpbnB1dCBtb2RlLCB3aGlj aCBpcyB3aGF0IGNydGMtPmxlZ2FjeS5tb2RlCiAJCQkgKiB1c3VhbGx5IGNvbnRhaW5zLiBCdXQg c2luY2Ugb3VyIGN1cnJlbnQKIAkJCSAqIGNvZGUgcHV0cyBhIG1vZGUgZGVyaXZlZCBmcm9tIHRo ZSBwb3N0LXBmaXQgdGltaW5ncwotCQkJICogaW50byBjcnRjLT5tb2RlIHRoaXMgd29ya3Mgb3V0 IGNvcnJlY3RseS4KKwkJCSAqIGludG8gY3J0Yy0+bGVnYWN5Lm1vZGUgdGhpcyB3b3JrcyBvdXQg Y29ycmVjdGx5LgogCQkJICoKLQkJCSAqIFRoaXMgaXMgY3J0Yy0+bW9kZSBhbmQgbm90IGNydGMt PnN0YXRlLT5tb2RlIGZvciB0aGUKKwkJCSAqIFRoaXMgaXMgY3J0Yy0+bGVnYWN5Lm1vZGUgYW5k IG5vdCBjcnRjLT5zdGF0ZS0+bW9kZSBmb3IgdGhlCiAJCQkgKiBmYXN0Ym9vdCBjaGVjayB0byB3 b3JrIGNvcnJlY3RseS4KIAkJCSAqLwogCQkJZHJtX2RiZ19rbXMoZGV2LCAiW0NPTk5FQ1RPUjol ZDolc10gbG9va2luZyBmb3IgY3VycmVudCBtb2RlXG4iLAogCQkJCSAgICBjb25uZWN0b3ItPmJh c2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Ci0JCQltb2Rlc1tpXSA9ICZjb25uZWN0b3ItPnN0YXRl LT5jcnRjLT5tb2RlOworCQkJbW9kZXNbaV0gPSAmY29ubmVjdG9yLT5zdGF0ZS0+Y3J0Yy0+bGVn YWN5Lm1vZGU7CiAJCX0KIAkJLyoKIAkJICogSW4gY2FzZSBvZiB0aWxlZCBtb2RlcywgaWYgYWxs IHRpbGVzIGFyZSBub3QgcHJlc2VudApAQCAtMTIxMyw3ICsxMjEzLDcgQEAgc3RhdGljIHZvaWQg ZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXNfbGVnYWN5KHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xp ZW50LCBpbnQgZHAKIAogCURSTV9NT0RFU0VUX0xPQ0tfQUxMX0JFR0lOKGRldiwgY3R4LCAwLCBy ZXQpOwogCWRybV9jbGllbnRfZm9yX2VhY2hfbW9kZXNldChtb2Rlc2V0LCBjbGllbnQpIHsKLQkJ aWYgKCFtb2Rlc2V0LT5jcnRjLT5lbmFibGVkKQorCQlpZiAoIW1vZGVzZXQtPmNydGMtPmxlZ2Fj eS5lbmFibGVkKQogCQkJY29udGludWU7CiAKIAkJZm9yIChqID0gMDsgaiA8IG1vZGVzZXQtPm51 bV9jb25uZWN0b3JzOyBqKyspIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKaW5kZXggZGI5ZTYyNTM5NDlmLi42YzMx N2Q2YWZjNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCkBAIC01NjQsMTEgKzU2NCwxMiBAQCBpbnQgZHJtX21v ZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJY3J0Y19yZXNwLT5tb2RlX3Zh bGlkID0gMDsKIAkJfQogCX0gZWxzZSB7Ci0JCWNydGNfcmVzcC0+eCA9IGNydGMtPng7Ci0JCWNy dGNfcmVzcC0+eSA9IGNydGMtPnk7CisJCWNydGNfcmVzcC0+eCA9IGNydGMtPmxlZ2FjeS54Owor CQljcnRjX3Jlc3AtPnkgPSBjcnRjLT5sZWdhY3kueTsKIAotCQlpZiAoY3J0Yy0+ZW5hYmxlZCkg ewotCQkJZHJtX21vZGVfY29udmVydF90b191bW9kZSgmY3J0Y19yZXNwLT5tb2RlLCAmY3J0Yy0+ bW9kZSk7CisJCWlmIChjcnRjLT5sZWdhY3kuZW5hYmxlZCkgeworCQkJZHJtX21vZGVfY29udmVy dF90b191bW9kZSgmY3J0Y19yZXNwLT5tb2RlLAorCQkJCQkJICAmY3J0Yy0+bGVnYWN5Lm1vZGUp OwogCQkJY3J0Y19yZXNwLT5tb2RlX3ZhbGlkID0gMTsKIAogCQl9IGVsc2UgewpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjX2hlbHBlci5jCmluZGV4IDFkZjRhMDVmN2EwMS4uZjYxNjEzNzdkNTc2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjX2hlbHBlci5jCkBAIC0xOTgsOCArMTk4LDggQEAgc3RhdGljIHZvaWQgX19k cm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0aW9ucyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGRldikgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Ny dGNfaGVscGVyX2Z1bmNzICpjcnRjX2Z1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7CiAKLQkJ Y3J0Yy0+ZW5hYmxlZCA9IGRybV9oZWxwZXJfY3J0Y19pbl91c2UoY3J0Yyk7Ci0JCWlmICghY3J0 Yy0+ZW5hYmxlZCkgeworCQljcnRjLT5sZWdhY3kuZW5hYmxlZCA9IGRybV9oZWxwZXJfY3J0Y19p bl91c2UoY3J0Yyk7CisJCWlmICghY3J0Yy0+bGVnYWN5LmVuYWJsZWQpIHsKIAkJCWlmIChjcnRj X2Z1bmNzLT5kaXNhYmxlKQogCQkJCSgqY3J0Y19mdW5jcy0+ZGlzYWJsZSkoY3J0Yyk7CiAJCQll bHNlCkBAIC0yOTgsMjggKzI5OCwyOCBAQCBib29sIGRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlkcm1fd2Fybl9vbl9tb2Rlc2V0X25vdF9hbGxfbG9j a2VkKGRldik7CiAKLQlzYXZlZF9lbmFibGVkID0gY3J0Yy0+ZW5hYmxlZDsKLQljcnRjLT5lbmFi bGVkID0gZHJtX2hlbHBlcl9jcnRjX2luX3VzZShjcnRjKTsKLQlpZiAoIWNydGMtPmVuYWJsZWQp CisJc2F2ZWRfZW5hYmxlZCA9IGNydGMtPmxlZ2FjeS5lbmFibGVkOworCWNydGMtPmxlZ2FjeS5l bmFibGVkID0gZHJtX2hlbHBlcl9jcnRjX2luX3VzZShjcnRjKTsKKwlpZiAoIWNydGMtPmxlZ2Fj eS5lbmFibGVkKQogCQlyZXR1cm4gdHJ1ZTsKIAogCWFkanVzdGVkX21vZGUgPSBkcm1fbW9kZV9k dXBsaWNhdGUoZGV2LCBtb2RlKTsKIAlpZiAoIWFkanVzdGVkX21vZGUpIHsKLQkJY3J0Yy0+ZW5h YmxlZCA9IHNhdmVkX2VuYWJsZWQ7CisJCWNydGMtPmxlZ2FjeS5lbmFibGVkID0gc2F2ZWRfZW5h YmxlZDsKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAotCWRybV9tb2RlX2luaXQoJnNhdmVkX21vZGUs ICZjcnRjLT5tb2RlKTsKKwlkcm1fbW9kZV9pbml0KCZzYXZlZF9tb2RlLCAmY3J0Yy0+bGVnYWN5 Lm1vZGUpOwogCWRybV9tb2RlX2luaXQoJnNhdmVkX2h3bW9kZSwgJmNydGMtPmh3bW9kZSk7Ci0J c2F2ZWRfeCA9IGNydGMtPng7Ci0Jc2F2ZWRfeSA9IGNydGMtPnk7CisJc2F2ZWRfeCA9IGNydGMt PmxlZ2FjeS54OworCXNhdmVkX3kgPSBjcnRjLT5sZWdhY3kueTsKIAogCS8qIFVwZGF0ZSBjcnRj IHZhbHVlcyB1cCBmcm9udCBzbyB0aGUgZHJpdmVyIGNhbiByZWx5IG9uIHRoZW0gZm9yIG1vZGUK IAkgKiBzZXR0aW5nLgogCSAqLwotCWRybV9tb2RlX2NvcHkoJmNydGMtPm1vZGUsIG1vZGUpOwot CWNydGMtPnggPSB4OwotCWNydGMtPnkgPSB5OworCWRybV9tb2RlX2NvcHkoJmNydGMtPmxlZ2Fj eS5tb2RlLCBtb2RlKTsKKwljcnRjLT5sZWdhY3kueCA9IHg7CisJY3J0Yy0+bGVnYWN5LnkgPSB5 OwogCiAJLyogUGFzcyBvdXIgbW9kZSB0byB0aGUgY29ubmVjdG9ycyBhbmQgdGhlIENSVEMgdG8g Z2l2ZSB0aGVtIGEgY2hhbmNlIHRvCiAJICogYWRqdXN0IGl0IGFjY29yZGluZyB0byBsaW1pdGF0 aW9ucyBvciBjb25uZWN0b3IgcHJvcGVydGllcywgYW5kIGFsc28KQEAgLTQyNCwxMSArNDI0LDEx IEBAIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IGRvbmU6CiAJZHJtX21vZGVfZGVzdHJveShkZXYsIGFkanVzdGVkX21vZGUpOwogCWlmICghcmV0 KSB7Ci0JCWNydGMtPmVuYWJsZWQgPSBzYXZlZF9lbmFibGVkOwotCQlkcm1fbW9kZV9jb3B5KCZj cnRjLT5tb2RlLCAmc2F2ZWRfbW9kZSk7CisJCWNydGMtPmxlZ2FjeS5lbmFibGVkID0gc2F2ZWRf ZW5hYmxlZDsKKwkJZHJtX21vZGVfY29weSgmY3J0Yy0+bGVnYWN5Lm1vZGUsICZzYXZlZF9tb2Rl KTsKIAkJZHJtX21vZGVfY29weSgmY3J0Yy0+aHdtb2RlLCAmc2F2ZWRfaHdtb2RlKTsKLQkJY3J0 Yy0+eCA9IHNhdmVkX3g7Ci0JCWNydGMtPnkgPSBzYXZlZF95OworCQljcnRjLT5sZWdhY3kueCA9 IHNhdmVkX3g7CisJCWNydGMtPmxlZ2FjeS55ID0gc2F2ZWRfeTsKIAl9CiAKIAlyZXR1cm4gcmV0 OwpAQCAtNjMyLDkgKzYzMiw5IEBAIGludCBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1 Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25u X2l0ZXIpOwogCiAJc2F2ZV9zZXQuY3J0YyA9IHNldC0+Y3J0YzsKLQlzYXZlX3NldC5tb2RlID0g JnNldC0+Y3J0Yy0+bW9kZTsKLQlzYXZlX3NldC54ID0gc2V0LT5jcnRjLT54OwotCXNhdmVfc2V0 LnkgPSBzZXQtPmNydGMtPnk7CisJc2F2ZV9zZXQubW9kZSA9ICZzZXQtPmNydGMtPmxlZ2FjeS5t b2RlOworCXNhdmVfc2V0LnggPSBzZXQtPmNydGMtPmxlZ2FjeS54OworCXNhdmVfc2V0LnkgPSBz ZXQtPmNydGMtPmxlZ2FjeS55OwogCXNhdmVfc2V0LmZiID0gc2V0LT5jcnRjLT5wcmltYXJ5LT5s ZWdhY3kuZmI7CiAKIAkvKiBXZSBzaG91bGQgYmUgYWJsZSB0byBjaGVjayBoZXJlIGlmIHRoZSBm YiBoYXMgdGhlIHNhbWUgcHJvcGVydGllcwpAQCAtNjUxLDEzICs2NTEsMTQgQEAgaW50IGRybV9j cnRjX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKIAkJCWZiX2No YW5nZWQgPSB0cnVlOwogCX0KIAotCWlmIChzZXQtPnggIT0gc2V0LT5jcnRjLT54IHx8IHNldC0+ eSAhPSBzZXQtPmNydGMtPnkpCisJaWYgKHNldC0+eCAhPSBzZXQtPmNydGMtPmxlZ2FjeS54IHx8 IHNldC0+eSAhPSBzZXQtPmNydGMtPmxlZ2FjeS55KQogCQlmYl9jaGFuZ2VkID0gdHJ1ZTsKIAot CWlmICghZHJtX21vZGVfZXF1YWwoc2V0LT5tb2RlLCAmc2V0LT5jcnRjLT5tb2RlKSkgeworCWlm ICghZHJtX21vZGVfZXF1YWwoc2V0LT5tb2RlLCAmc2V0LT5jcnRjLT5sZWdhY3kubW9kZSkpIHsK IAkJZHJtX2RiZ19rbXMoZGV2LCAiW0NSVEM6JWQ6JXNdIG1vZGVzIGFyZSBkaWZmZXJlbnQsIGZ1 bGwgbW9kZSBzZXQ6XG4iLAogCQkJICAgIHNldC0+Y3J0Yy0+YmFzZS5pZCwgc2V0LT5jcnRjLT5u YW1lKTsKLQkJZHJtX2RiZ19rbXMoZGV2LCBEUk1fTU9ERV9GTVQgIlxuIiwgRFJNX01PREVfQVJH KCZzZXQtPmNydGMtPm1vZGUpKTsKKwkJZHJtX2RiZ19rbXMoZGV2LCBEUk1fTU9ERV9GTVQgIlxu IiwKKwkJCSAgICBEUk1fTU9ERV9BUkcoJnNldC0+Y3J0Yy0+bGVnYWN5Lm1vZGUpKTsKIAkJZHJt X2RiZ19rbXMoZGV2LCBEUk1fTU9ERV9GTVQgIlxuIiwgRFJNX01PREVfQVJHKHNldC0+bW9kZSkp OwogCQltb2RlX2NoYW5nZWQgPSB0cnVlOwogCX0KQEAgLTc4OCwxNCArNzg5LDE0IEBAIGludCBk cm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJCX0K IAkJX19kcm1faGVscGVyX2Rpc2FibGVfdW51c2VkX2Z1bmN0aW9ucyhkZXYpOwogCX0gZWxzZSBp ZiAoZmJfY2hhbmdlZCkgewotCQlzZXQtPmNydGMtPnggPSBzZXQtPng7Ci0JCXNldC0+Y3J0Yy0+ eSA9IHNldC0+eTsKKwkJc2V0LT5jcnRjLT5sZWdhY3kueCA9IHNldC0+eDsKKwkJc2V0LT5jcnRj LT5sZWdhY3kueSA9IHNldC0+eTsKIAkJc2V0LT5jcnRjLT5wcmltYXJ5LT5sZWdhY3kuZmIgPSBz ZXQtPmZiOwogCQlyZXQgPSBjcnRjX2Z1bmNzLT5tb2RlX3NldF9iYXNlKHNldC0+Y3J0YywKIAkJ CQkJCXNldC0+eCwgc2V0LT55LCBzYXZlX3NldC5mYik7CiAJCWlmIChyZXQgIT0gMCkgewotCQkJ c2V0LT5jcnRjLT54ID0gc2F2ZV9zZXQueDsKLQkJCXNldC0+Y3J0Yy0+eSA9IHNhdmVfc2V0Lnk7 CisJCQlzZXQtPmNydGMtPmxlZ2FjeS54ID0gc2F2ZV9zZXQueDsKKwkJCXNldC0+Y3J0Yy0+bGVn YWN5LnkgPSBzYXZlX3NldC55OwogCQkJc2V0LT5jcnRjLT5wcmltYXJ5LT5sZWdhY3kuZmIgPSBz YXZlX3NldC5mYjsKIAkJCWdvdG8gZmFpbDsKIAkJfQpAQCAtOTkzLDExICs5OTQsMTIgQEAgdm9p ZCBkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ ZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKIAlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYp IHsKIAotCQlpZiAoIWNydGMtPmVuYWJsZWQpCisJCWlmICghY3J0Yy0+bGVnYWN5LmVuYWJsZWQp CiAJCQljb250aW51ZTsKIAotCQlyZXQgPSBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoY3J0Yywg JmNydGMtPm1vZGUsCi0JCQkJCSAgICAgICBjcnRjLT54LCBjcnRjLT55LCBjcnRjLT5wcmltYXJ5 LT5sZWdhY3kuZmIpOworCQlyZXQgPSBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoY3J0YywgJmNy dGMtPmxlZ2FjeS5tb2RlLAorCQkJCQkgICAgICAgY3J0Yy0+bGVnYWN5LngsIGNydGMtPmxlZ2Fj eS55LAorCQkJCQkgICAgICAgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5LmZiKTsKIAogCQkvKiBSZXN0 b3JpbmcgdGhlIG9sZCBjb25maWcgc2hvdWxkIG5ldmVyIGZhaWwhICovCiAJCWlmIChyZXQgPT0g ZmFsc2UpCkBAIC0xMDQ5LDcgKzEwNTEsNyBAQCBpbnQgZHJtX2hlbHBlcl9mb3JjZV9kaXNhYmxl X2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2 KTsKIAlkcm1fZm9yX2VhY2hfY3J0YyhjcnRjLCBkZXYpCi0JCWlmIChjcnRjLT5lbmFibGVkKSB7 CisJCWlmIChjcnRjLT5sZWdhY3kuZW5hYmxlZCkgewogCQkJc3RydWN0IGRybV9tb2RlX3NldCBz ZXQgPSB7CiAJCQkJLmNydGMgPSBjcnRjLAogCQkJfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCmlu ZGV4IGZkOWQ4MDRlMzY3Mi4uNTljYzA1ZWQ1MTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZiX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMK QEAgLTE0NSw3ICsxNDUsNyBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9kZWJ1Z19lbnRlcihzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGhlbHBlciwgJmtlcm5lbF9mYl9o ZWxwZXJfbGlzdCwga2VybmVsX2ZiX2xpc3QpIHsKIAkJbXV0ZXhfbG9jaygmaGVscGVyLT5jbGll bnQubW9kZXNldF9tdXRleCk7CiAJCWRybV9jbGllbnRfZm9yX2VhY2hfbW9kZXNldChtb2RlX3Nl dCwgJmhlbHBlci0+Y2xpZW50KSB7Ci0JCQlpZiAoIW1vZGVfc2V0LT5jcnRjLT5lbmFibGVkKQor CQkJaWYgKCFtb2RlX3NldC0+Y3J0Yy0+bGVnYWN5LmVuYWJsZWQpCiAJCQkJY29udGludWU7CiAK IAkJCWZ1bmNzID0JbW9kZV9zZXQtPmNydGMtPmhlbHBlcl9wcml2YXRlOwpAQCAtMTkxLDcgKzE5 MSw3IEBAIGludCBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlKHN0cnVjdCBmYl9pbmZvICppbmZv KQogCQlmdW5jcyA9IGNydGMtPmhlbHBlcl9wcml2YXRlOwogCQlmYiA9IGNydGMtPnByaW1hcnkt PmxlZ2FjeS5mYjsKIAotCQlpZiAoIWNydGMtPmVuYWJsZWQpCisJCWlmICghY3J0Yy0+bGVnYWN5 LmVuYWJsZWQpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIWZiKSB7CkBAIC0yMDMsOCArMjAzLDEw IEBAIGludCBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlKHN0cnVjdCBmYl9pbmZvICppbmZvKQog CQkJY29udGludWU7CiAKIAkJZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2x1dF9hdG9taWMobW9kZV9z ZXQtPmNydGMpOwotCQlmdW5jcy0+bW9kZV9zZXRfYmFzZV9hdG9taWMobW9kZV9zZXQtPmNydGMs IGZiLCBjcnRjLT54LAotCQkJCQkgICAgY3J0Yy0+eSwgTEVBVkVfQVRPTUlDX01PREVfU0VUKTsK KwkJZnVuY3MtPm1vZGVfc2V0X2Jhc2VfYXRvbWljKG1vZGVfc2V0LT5jcnRjLCBmYiwKKwkJCQkJ ICAgIGNydGMtPmxlZ2FjeS54LAorCQkJCQkgICAgY3J0Yy0+bGVnYWN5LnksCisJCQkJCSAgICBM RUFWRV9BVE9NSUNfTU9ERV9TRVQpOwogCX0KIAltdXRleF91bmxvY2soJmNsaWVudC0+bW9kZXNl dF9tdXRleCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwppbmRleCA0YjA3NzExMDIzOGEuLmU0NmYxNzMyZjU1 YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmUuYwpAQCAtMTQ2Nyw4ICsxNDY3LDkgQEAgaW50IGRybV9tb2RlX3Bh Z2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkJICAgICAgIHN0YXRl LT5zcmNfaCwKIAkJCQkJCSAgICAgICBmYik7CiAJfSBlbHNlIHsKLQkJcmV0ID0gZHJtX2NydGNf Y2hlY2tfdmlld3BvcnQoY3J0YywgY3J0Yy0+eCwgY3J0Yy0+eSwKLQkJCQkJICAgICAgJmNydGMt Pm1vZGUsIGZiKTsKKwkJcmV0ID0gZHJtX2NydGNfY2hlY2tfdmlld3BvcnQoY3J0YywgY3J0Yy0+ bGVnYWN5LngsCisJCQkJCSAgICAgIGNydGMtPmxlZ2FjeS55LAorCQkJCQkgICAgICAmY3J0Yy0+ bGVnYWN5Lm1vZGUsIGZiKTsKIAl9CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9wbGFuZV9oZWxwZXIuYwppbmRleCA3OTgyYmU0YjAzMDYuLjZmZTY5MGU1MTA3YiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCkBAIC0xMTksOCArMTE5LDggQEAgc3RhdGljIGludCBk cm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9 OwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBjcnRjX3N0YXRlID0gewogCQkuY3J0YyA9IGNydGMs Ci0JCS5lbmFibGUgPSBjcnRjLT5lbmFibGVkLAotCQkubW9kZSA9IGNydGMtPm1vZGUsCisJCS5l bmFibGUgPSBjcnRjLT5sZWdhY3kuZW5hYmxlZCwKKwkJLm1vZGUgPSBjcnRjLT5sZWdhY3kubW9k ZSwKIAl9OwogCWludCByZXQ7CiAKQEAgLTE3Miw3ICsxNzIsNyBAQCBpbnQgZHJtX3BsYW5lX2hl bHBlcl91cGRhdGVfcHJpbWFyeShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9j cnRjICpjcgogCXN0cnVjdCBkcm1fbW9kZV9zZXQgc2V0ID0gewogCQkuY3J0YyA9IGNydGMsCiAJ CS5mYiA9IGZiLAotCQkubW9kZSA9ICZjcnRjLT5tb2RlLAorCQkubW9kZSA9ICZjcnRjLT5sZWdh Y3kubW9kZSwKIAkJLnggPSBzcmNfeCA+PiAxNiwKIAkJLnkgPSBzcmNfeSA+PiAxNiwKIAl9Owpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fdmJsYW5rLmMKaW5kZXggOTRlNDVlZDY4NjlkLi40NDA0MTFhZTA1YzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV92YmxhbmsuYwpAQCAtMjA0Miw3ICsyMDQyLDcgQEAgaW50IGRybV9jcnRjX2dldF9zZXF1ZW5j ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChjcnRjLT5z dGF0ZSkKIAkJZ2V0X3NlcS0+YWN0aXZlID0gY3J0Yy0+c3RhdGUtPmVuYWJsZTsKIAllbHNlCi0J CWdldF9zZXEtPmFjdGl2ZSA9IGNydGMtPmVuYWJsZWQ7CisJCWdldF9zZXEtPmFjdGl2ZSA9IGNy dGMtPmxlZ2FjeS5lbmFibGVkOwogCWRybV9tb2Rlc2V0X3VubG9jaygmY3J0Yy0+bXV0ZXgpOwog CWdldF9zZXEtPnNlcXVlbmNlID0gZHJtX3ZibGFua19jb3VudF9hbmRfdGltZShkZXYsIHBpcGUs ICZub3cpOwogCWdldF9zZXEtPnNlcXVlbmNlX25zID0ga3RpbWVfdG9fbnMobm93KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwppbmRleCAwZWY3YmM4 ODQ4YjAuLmZjY2M3MzFkODNmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3M1NDMzX2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z NTQzM19kcm1fZGVjb24uYwpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX3Nl dHVwX3RyaWdnZXIoc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCkKIHN0YXRpYyB2b2lkIGRlY29u X2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkZWNvbl9j b250ZXh0ICpjdHggPSBjcnRjLT5jdHg7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSAm Y3J0Yy0+YmFzZS5tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJmNydGMtPmJh c2UubGVnYWN5Lm1vZGU7CiAJYm9vbCBpbnRlcmxhY2VkID0gZmFsc2U7CiAJdTMyIHZhbDsKIApA QCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX3VwZGF0ZV9wbGFuZShzdHJ1Y3Qg ZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCWRtYV9hZGRyX3QgZG1hX2FkZHIgPSBleHlub3NfZHJt X2ZiX2RtYV9hZGRyKGZiLCAwKTsKIAl1MzIgdmFsOwogCi0JaWYgKGNydGMtPmJhc2UubW9kZS5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7CisJaWYgKGNydGMtPmJhc2UubGVnYWN5 Lm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgewogCQl2YWwgPSBDT09SRElO QVRFX1goc3RhdGUtPmNydGMueCkgfAogCQkJQ09PUkRJTkFURV9ZKHN0YXRlLT5jcnRjLnkgLyAy KTsKIAkJd3JpdGVsKHZhbCwgY3R4LT5hZGRyICsgREVDT05fVklET1NEeEEod2luKSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9kcC5jIGIvZHJpdmVycy9n cHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfZHAuYwppbmRleCA0OTg1MTg4MWU0MWUuLmU0M2ExMjQ3 YmQ5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfZHAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9kcC5jCkBAIC0xODQ3LDggKzE4 NDcsOCBAQCBjZHZfaW50ZWxfZHBfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCiBkb25lOgogCWlmIChlbmNvZGVyLT5iYXNlLmNydGMpIHsKIAkJc3RydWN0IGRy bV9jcnRjICpjcnRjID0gZW5jb2Rlci0+YmFzZS5jcnRjOwotCQlkcm1fY3J0Y19oZWxwZXJfc2V0 X21vZGUoY3J0YywgJmNydGMtPm1vZGUsCi0JCQkJCSBjcnRjLT54LCBjcnRjLT55LAorCQlkcm1f Y3J0Y19oZWxwZXJfc2V0X21vZGUoY3J0YywgJmNydGMtPmxlZ2FjeS5tb2RlLAorCQkJCQkgY3J0 Yy0+bGVnYWN5LngsIGNydGMtPmxlZ2FjeS55LAogCQkJCQkgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5 LmZiKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVs X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2hkbWkuYwppbmRleCAx Njk2OGM5NGJmZDMuLjVkNjgxNGYxNjA5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9jZHZfaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2lu dGVsX2hkbWkuYwpAQCAtMTkxLDcgKzE5MSw3IEBAIHN0YXRpYyBpbnQgY2R2X2hkbWlfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICBjcnRjLT5zYXZl ZF9tb2RlLnZkaXNwbGF5ICE9IDApIHsKIAkJCWlmIChjZW50cmUpIHsKIAkJCQlpZiAoIWRybV9j cnRjX2hlbHBlcl9zZXRfbW9kZShlbmNvZGVyLT5jcnRjLCAmY3J0Yy0+c2F2ZWRfbW9kZSwKLQkJ CQkJCQkgICAgICBlbmNvZGVyLT5jcnRjLT54LCBlbmNvZGVyLT5jcnRjLT55LAorCQkJCQkJCSAg ICAgIGVuY29kZXItPmNydGMtPmxlZ2FjeS54LCBlbmNvZGVyLT5jcnRjLT5sZWdhY3kueSwKIAkJ CQkJCQkgICAgICBlbmNvZGVyLT5jcnRjLT5wcmltYXJ5LT5sZWdhY3kuZmIpKQogCQkJCQlyZXR1 cm4gLTE7CiAJCQl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9j ZHZfaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9jZHZfaW50ZWxfbHZkcy5j CmluZGV4IGI2MDczNTViODVkZC4uZDFlMjlkNGY1YmE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUw MC9jZHZfaW50ZWxfbHZkcy5jCkBAIC0zNzMsOCArMzczLDggQEAgc3RhdGljIGludCBjZHZfaW50 ZWxfbHZkc19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJ ICAgIGNydGMtPnNhdmVkX21vZGUudmRpc3BsYXkgIT0gMCkgewogCQkJaWYgKCFkcm1fY3J0Y19o ZWxwZXJfc2V0X21vZGUoZW5jb2Rlci0+Y3J0YywKIAkJCQkJCSAgICAgICZjcnRjLT5zYXZlZF9t b2RlLAotCQkJCQkJICAgICAgZW5jb2Rlci0+Y3J0Yy0+eCwKLQkJCQkJCSAgICAgIGVuY29kZXIt PmNydGMtPnksCisJCQkJCQkgICAgICBlbmNvZGVyLT5jcnRjLT5sZWdhY3kueCwKKwkJCQkJCSAg ICAgIGVuY29kZXItPmNydGMtPmxlZ2FjeS55LAogCQkJCQkJICAgICAgZW5jb2Rlci0+Y3J0Yy0+ cHJpbWFyeS0+bGVnYWN5LmZiKSkKIAkJCQlyZXR1cm4gLTE7CiAJCX0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9nbWE1MDAvZ21hX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1 MDAvZ21hX2Rpc3BsYXkuYwppbmRleCBmMmY4YTk1YzhkMzkuLjY0MTBiYTFhMzc2NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9nbWFfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvZ21hX2Rpc3BsYXkuYwpAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgZ21h X2NydGNfbG9hZF9sdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWludCBpOwogCiAJLyogVGhl IGNsb2NrcyBoYXZlIHRvIGJlIG9uIHRvIGxvYWQgdGhlIHBhbGV0dGUuICovCi0JaWYgKCFjcnRj LT5lbmFibGVkKQorCWlmICghY3J0Yy0+bGVnYWN5LmVuYWJsZWQpCiAJCXJldHVybjsKIAogCXIg PSBjcnRjLT5nYW1tYV9zdG9yZTsKQEAgLTUzNyw3ICs1MzcsOCBAQCBpbnQgZ21hX2NydGNfcGFn ZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CiAKIAkJLyogQ2FsbCB0aGlzIGxvY2tlZCBpZiB3ZSB3 YW50IGFuIGV2ZW50IGF0IHZibGFuayBpbnRlcnJ1cHQuICovCi0JCXJldCA9IGNydGNfZnVuY3Mt Pm1vZGVfc2V0X2Jhc2UoY3J0YywgY3J0Yy0+eCwgY3J0Yy0+eSwgb2xkX2ZiKTsKKwkJcmV0ID0g Y3J0Y19mdW5jcy0+bW9kZV9zZXRfYmFzZShjcnRjLCBjcnRjLT5sZWdhY3kueCwKKwkJCQkJCWNy dGMtPmxlZ2FjeS55LCBvbGRfZmIpOwogCQlpZiAocmV0KSB7CiAJCQlzcGluX2xvY2tfaXJxc2F2 ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CiAJCQlpZiAoZ21hX2NydGMtPnBhZ2VfZmxpcF9l dmVudCkgewpAQCAtNTQ3LDcgKzU0OCw4IEBAIGludCBnbWFfY3J0Y19wYWdlX2ZsaXAoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9s b2NrLCBmbGFncyk7CiAJCX0KIAl9IGVsc2UgewotCQlyZXQgPSBjcnRjX2Z1bmNzLT5tb2RlX3Nl dF9iYXNlKGNydGMsIGNydGMtPngsIGNydGMtPnksIG9sZF9mYik7CisJCXJldCA9IGNydGNfZnVu Y3MtPm1vZGVfc2V0X2Jhc2UoY3J0YywgY3J0Yy0+bGVnYWN5LngsCisJCQkJCQljcnRjLT5sZWdh Y3kueSwgb2xkX2ZiKTsKIAl9CiAKIAkvKiBSZXN0b3JlIHByZXZpb3VzIGZiIGluIGNhc2Ugb2Yg ZmFpbHVyZS4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVs X2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX2x2ZHMuYwppbmRleCAx ZTgwYmM4NjU4NDMuLjhkZWU5ZDIxMTUzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9wc2JfaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2lu dGVsX2x2ZHMuYwpAQCAtNTY4LDggKzU2OCw4IEBAIGludCBwc2JfaW50ZWxfbHZkc19zZXRfcHJv cGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJICAgIGNydGMtPnNhdmVk X21vZGUudmRpc3BsYXkgIT0gMCkgewogCQkJaWYgKCFkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUo ZW5jb2Rlci0+Y3J0YywKIAkJCQkJCSAgICAgICZjcnRjLT5zYXZlZF9tb2RlLAotCQkJCQkJICAg ICAgZW5jb2Rlci0+Y3J0Yy0+eCwKLQkJCQkJCSAgICAgIGVuY29kZXItPmNydGMtPnksCisJCQkJ CQkgICAgICBlbmNvZGVyLT5jcnRjLT5sZWdhY3kueCwKKwkJCQkJCSAgICAgIGVuY29kZXItPmNy dGMtPmxlZ2FjeS55LAogCQkJCQkJICAgICAgZW5jb2Rlci0+Y3J0Yy0+cHJpbWFyeS0+bGVnYWN5 LmZiKSkKIAkJCQlnb3RvIHNldF9wcm9wX2Vycm9yOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAw L3BzYl9pbnRlbF9zZHZvLmMKaW5kZXggOWZhYjg3ZjE3ZGM5Li4yYTZjYjJhZTJmNTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9zZHZvLmMKQEAgLTE3MjYsOCArMTcyNiwxMCBA QCBwc2JfaW50ZWxfc2R2b19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKIGRvbmU6CiAJaWYgKHBzYl9pbnRlbF9zZHZvLT5iYXNlLmJhc2UuY3J0YykgewogCQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwc2JfaW50ZWxfc2R2by0+YmFzZS5iYXNlLmNydGM7Ci0J CWRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShjcnRjLCAmY3J0Yy0+bW9kZSwgY3J0Yy0+eCwKLQkJ CQkJIGNydGMtPnksIGNydGMtPnByaW1hcnktPmxlZ2FjeS5mYik7CisJCWRybV9jcnRjX2hlbHBl cl9zZXRfbW9kZShjcnRjLCAmY3J0Yy0+bGVnYWN5Lm1vZGUsCisJCQkJCSBjcnRjLT5sZWdhY3ku eCwKKwkJCQkJIGNydGMtPmxlZ2FjeS55LAorCQkJCQkgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5LmZi KTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTE3NTUsNyArMTc1Nyw3IEBAIHN0YXRpYyB2b2lkIHBz Yl9pbnRlbF9zZHZvX3Jlc3RvcmUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkv KiBGb3JjZSBhIGZ1bGwgbW9kZSBzZXQgb24gdGhlIGNydGMuIFdlJ3JlIHN1cHBvc2VkIHRvIGhh dmUgdGhlCiAJICAgbW9kZV9jb25maWcgbG9jayBhbHJlYWR5LiAqLwogCWlmIChjb25uZWN0b3It PnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKLQkJZHJtX2NydGNfaGVscGVy X3NldF9tb2RlKGNydGMsICZjcnRjLT5tb2RlLCBjcnRjLT54LCBjcnRjLT55LAorCQlkcm1fY3J0 Y19oZWxwZXJfc2V0X21vZGUoY3J0YywgJmNydGMtPmxlZ2FjeS5tb2RlLCBjcnRjLT5sZWdhY3ku eCwgY3J0Yy0+bGVnYWN5LnksCiAJCQkJCSBOVUxMKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2kyYy9jaDcwMDZfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL2NoNzAwNl9k cnYuYwppbmRleCAwNThjYjM4OWI4ZWMuLjQ4YTdiNTBiODNmNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2kyYy9jaDcwMDZfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2kyYy9jaDcw MDZfZHJ2LmMKQEAgLTM2Miw4ICszNjIsOSBAQCBzdGF0aWMgaW50IGNoNzAwNl9lbmNvZGVyX3Nl dF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCWRybV9oZWxwZXJfcHJv YmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlcyhjb25uZWN0b3IsIDAsIDApOwogCiAJCWlmIChjcnRj KQotCQkJZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKGNydGMsICZjcnRjLT5tb2RlLAotCQkJCQkJ IGNydGMtPngsIGNydGMtPnksCisJCQlkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoY3J0YywgJmNy dGMtPmxlZ2FjeS5tb2RlLAorCQkJCQkJIGNydGMtPmxlZ2FjeS54LAorCQkJCQkJIGNydGMtPmxl Z2FjeS55LAogCQkJCQkJIGNydGMtPnByaW1hcnktPmxlZ2FjeS5mYik7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p MmMvc2lsMTY0X2Rydi5jCmluZGV4IGZmMjM0MjI3MjdmYy4uODYwZTFjYjZkNzUzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3NpbDE2NF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTJjL3NpbDE2NF9kcnYuYwpAQCAtMjE5LDcgKzIxOSw3IEBAIHNpbDE2NF9lbmNvZGVyX2Rw bXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKIHsKIAlzdHJ1Y3Qgc2ls MTY0X3ByaXYgKnByaXYgPSB0b19zaWwxNjRfcHJpdihlbmNvZGVyKTsKIAlib29sIG9uID0gKG1v ZGUgPT0gRFJNX01PREVfRFBNU19PTik7Ci0JYm9vbCBkdWFsbGluayA9IChvbiAmJiBlbmNvZGVy LT5jcnRjLT5tb2RlLmNsb2NrID4gMTY1MDAwKTsKKwlib29sIGR1YWxsaW5rID0gKG9uICYmIGVu Y29kZXItPmNydGMtPmxlZ2FjeS5tb2RlLmNsb2NrID4gMTY1MDAwKTsKIAogCXNpbDE2NF9zZXRf cG93ZXJfc3RhdGUoZHJtX2kyY19lbmNvZGVyX2dldF9jbGllbnQoZW5jb2RlciksIG9uKTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9tb2Rlc2V0X3Nl dHVwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX21vZGVzZXRfc2V0dXAu YwppbmRleCBiY2M1Y2YxMzdhODguLmJmZDlkYTcxZThlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9tb2Rlc2V0X3NldHVwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9tb2Rlc2V0X3NldHVwLmMKQEAgLTg4LDcgKzg4LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWljX2JlZ2luKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAogCQkgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNlLm5h bWUpOwogCiAJY3J0Yy0+YWN0aXZlID0gZmFsc2U7Ci0JY3J0Yy0+YmFzZS5lbmFibGVkID0gZmFs c2U7CisJY3J0Yy0+YmFzZS5sZWdhY3kuZW5hYmxlZCA9IGZhbHNlOwogCiAJaWYgKGNydGNfc3Rh dGUtPnNoYXJlZF9kcGxsKQogCQlpbnRlbF91bnJlZmVyZW5jZV9zaGFyZWRfZHBsbF9jcnRjKGNy dGMsCkBAIC03MjUsNyArNzI1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJCWNydGNfc3RhdGUt Pmh3LmVuYWJsZSA9IGNydGNfc3RhdGUtPmh3LmFjdGl2ZTsKIAotCQljcnRjLT5iYXNlLmVuYWJs ZWQgPSBjcnRjX3N0YXRlLT5ody5lbmFibGU7CisJCWNydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQg PSBjcnRjX3N0YXRlLT5ody5lbmFibGU7CiAJCWNydGMtPmFjdGl2ZSA9IGNydGNfc3RhdGUtPmh3 LmFjdGl2ZTsKIAogCQlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2lteC9sY2RjL2lteC1sY2RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2xj ZGMvaW14LWxjZGMuYwppbmRleCAzMjE1YzRhY2Q2NzUuLjdlNWVkODg2NGQ2YSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2lteC9sY2RjL2lteC1sY2RjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2lteC9sY2RjL2lteC1sY2RjLmMKQEAgLTE1NCwyNCArMTU0LDMxIEBAIHN0YXRpYyB2b2lk IGlteF9sY2RjX3VwZGF0ZV9od19yZWdpc3RlcnMoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9w aXBlICpwaXBlLAogCQlyZXR1cm47CiAKIAkvKiBEaXNhYmxlIFBFUiBjbG9jayB0byBtYWtlIHJl Z2lzdGVyIHdyaXRlIHBvc3NpYmxlICovCi0JaWYgKG9sZF9zdGF0ZSAmJiBvbGRfc3RhdGUtPmNy dGMgJiYgb2xkX3N0YXRlLT5jcnRjLT5lbmFibGVkKQorCWlmIChvbGRfc3RhdGUgJiYgb2xkX3N0 YXRlLT5jcnRjICYmIG9sZF9zdGF0ZS0+Y3J0Yy0+bGVnYWN5LmVuYWJsZWQpCiAJCWNsa19kaXNh YmxlX3VucHJlcGFyZShsY2RjLT5jbGtfcGVyKTsKIAogCS8qIEZyYW1lc2l6ZSAqLwotCWZyYW1l c2l6ZSA9IEZJRUxEX1BSRVAoSU1YMjFMQ0RDX0xTUl9YTUFYLCBjcnRjLT5tb2RlLmhkaXNwbGF5 ID4+IDQpIHwKLQkJRklFTERfUFJFUChJTVgyMUxDRENfTFNSX1lNQVgsIGNydGMtPm1vZGUudmRp c3BsYXkpOworCWZyYW1lc2l6ZSA9IEZJRUxEX1BSRVAoSU1YMjFMQ0RDX0xTUl9YTUFYLAorCQkg ICAgICAgICAgICAgICBjcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheSA+PiA0KSB8CisJCUZJRUxE X1BSRVAoSU1YMjFMQ0RDX0xTUl9ZTUFYLCBjcnRjLT5sZWdhY3kubW9kZS52ZGlzcGxheSk7CiAJ d3JpdGVsKGZyYW1lc2l6ZSwgbGNkYy0+YmFzZSArIElNWDIxTENEQ19MU1IpOwogCiAJLyogSFNZ TkMgKi8KLQlsaGNyID0gRklFTERfUFJFUChJTVgyMUxDRENfTEhDUl9IRlBPUkNILCBjcnRjLT5t b2RlLmhzeW5jX3N0YXJ0IC0gY3J0Yy0+bW9kZS5oZGlzcGxheSAtIDEpIHwKLQkJRklFTERfUFJF UChJTVgyMUxDRENfTEhDUl9IV0lEVEgsIGNydGMtPm1vZGUuaHN5bmNfZW5kIC0gY3J0Yy0+bW9k ZS5oc3luY19zdGFydCAtIDEpIHwKLQkJRklFTERfUFJFUChJTVgyMUxDRENfTEhDUl9IQlBPUkNI LCBjcnRjLT5tb2RlLmh0b3RhbCAtIGNydGMtPm1vZGUuaHN5bmNfZW5kIC0gMyk7CisJbGhjciA9 IEZJRUxEX1BSRVAoSU1YMjFMQ0RDX0xIQ1JfSEZQT1JDSCwKKwkJICAgICAgICAgIGNydGMtPmxl Z2FjeS5tb2RlLmhzeW5jX3N0YXJ0IC0gY3J0Yy0+bGVnYWN5Lm1vZGUuaGRpc3BsYXkgLSAxKSB8 CisJCUZJRUxEX1BSRVAoSU1YMjFMQ0RDX0xIQ1JfSFdJRFRILAorCQkgICAgICAgICAgIGNydGMt PmxlZ2FjeS5tb2RlLmhzeW5jX2VuZCAtIGNydGMtPmxlZ2FjeS5tb2RlLmhzeW5jX3N0YXJ0IC0g MSkgfAorCQlGSUVMRF9QUkVQKElNWDIxTENEQ19MSENSX0hCUE9SQ0gsCisJCSAgICAgICAgICAg Y3J0Yy0+bGVnYWN5Lm1vZGUuaHRvdGFsIC0gY3J0Yy0+bGVnYWN5Lm1vZGUuaHN5bmNfZW5kIC0g Myk7CiAJd3JpdGVsKGxoY3IsIGxjZGMtPmJhc2UgKyBJTVgyMUxDRENfTEhDUik7CiAKIAkvKiBW U1lOQyAqLwotCWx2Y3IgPSBGSUVMRF9QUkVQKElNWDIxTENEQ19MVkNSX1ZGUE9SQ0gsIGNydGMt Pm1vZGUudnN5bmNfc3RhcnQgLSBjcnRjLT5tb2RlLnZkaXNwbGF5KSB8Ci0JCUZJRUxEX1BSRVAo SU1YMjFMQ0RDX0xWQ1JfVldJRFRILCBjcnRjLT5tb2RlLnZzeW5jX2VuZCAtIGNydGMtPm1vZGUu dnN5bmNfc3RhcnQpIHwKLQkJRklFTERfUFJFUChJTVgyMUxDRENfTFZDUl9WQlBPUkNILCBjcnRj LT5tb2RlLnZ0b3RhbCAtIGNydGMtPm1vZGUudnN5bmNfZW5kKTsKKwlsdmNyID0gRklFTERfUFJF UChJTVgyMUxDRENfTFZDUl9WRlBPUkNILAorCQkgICAgICAgICAgY3J0Yy0+bGVnYWN5Lm1vZGUu dnN5bmNfc3RhcnQgLSBjcnRjLT5sZWdhY3kubW9kZS52ZGlzcGxheSkgfAorCQlGSUVMRF9QUkVQ KElNWDIxTENEQ19MVkNSX1ZXSURUSCwKKwkJICAgICAgICAgICBjcnRjLT5sZWdhY3kubW9kZS52 c3luY19lbmQgLSBjcnRjLT5sZWdhY3kubW9kZS52c3luY19zdGFydCkgfAorCQlGSUVMRF9QUkVQ KElNWDIxTENEQ19MVkNSX1ZCUE9SQ0gsCisJCSAgICAgICAgICAgY3J0Yy0+bGVnYWN5Lm1vZGUu dnRvdGFsIC0gY3J0Yy0+bGVnYWN5Lm1vZGUudnN5bmNfZW5kKTsKIAl3cml0ZWwobHZjciwgbGNk Yy0+YmFzZSArIElNWDIxTENEQ19MVkNSKTsKIAogCWxwY3IgPSByZWFkbChsY2RjLT5iYXNlICsg SU1YMjFMQ0RDX0xQQ1IpOwpAQCAtMTgzLDcgKzE5MCw3IEBAIHN0YXRpYyB2b2lkIGlteF9sY2Rj X3VwZGF0ZV9od19yZWdpc3RlcnMoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBl LAogCXdyaXRlbChuZXdfc3RhdGUtPmZiLT5waXRjaGVzWzBdIC8gNCwgbGNkYy0+YmFzZSArIElN WDIxTENEQ19MVlBXUik7CiAKIAkvKiBFbmFibGUgUEVSIGNsb2NrICovCi0JaWYgKG5ld19zdGF0 ZS0+Y3J0Yy0+ZW5hYmxlZCkKKwlpZiAobmV3X3N0YXRlLT5jcnRjLT5sZWdhY3kuZW5hYmxlZCkK IAkJY2xrX3ByZXBhcmVfZW5hYmxlKGxjZGMtPmNsa19wZXIpOwogfQogCkBAIC0xOTUsNyArMjAy LDcgQEAgc3RhdGljIHZvaWQgaW14X2xjZGNfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlICpwaXBlLAogCWludCBjbGtfZGl2OwogCWludCBicHA7CiAJc3RydWN0IGlt eF9sY2RjICpsY2RjID0gaW14X2xjZGNfZnJvbV9kcm1kZXYocGlwZS0+Y3J0Yy5kZXYpOwotCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnBpcGUtPmNydGMubW9kZTsKKwlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZwaXBlLT5jcnRjLmxlZ2FjeS5tb2RlOwogCXN0cnVj dCBkcm1fZGlzcGxheV9pbmZvICpkaXNwX2luZm8gPSAmbGNkYy0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm87CiAJY29uc3QgaW50IGhzeW5jX3BvbCA9IChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZM QUdfUEhTWU5DKSA/IDAgOiAxOwogCWNvbnN0IGludCB2c3luY19wb2wgPSAobW9kZS0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX1BWU1lOQykgPyAwIDogMTsKQEAgLTI1Nyw3ICsyNjQsNyBAQCBzdGF0 aWMgdm9pZCBpbXhfbGNkY19waXBlX2Rpc2FibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9w aXBlICpwaXBlKQogCWNsa19kaXNhYmxlX3VucHJlcGFyZShsY2RjLT5jbGtfYWhiKTsKIAljbGtf ZGlzYWJsZV91bnByZXBhcmUobGNkYy0+Y2xrX2lwZyk7CiAKLQlpZiAocGlwZS0+Y3J0Yy5lbmFi bGVkKQorCWlmIChwaXBlLT5jcnRjLmxlZ2FjeS5lbmFibGVkKQogCQljbGtfZGlzYWJsZV91bnBy ZXBhcmUobGNkYy0+Y2xrX3Blcik7CiAKIAlzcGluX2xvY2tfaXJxKCZsY2RjLT5kcm0uZXZlbnRf bG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfY3J0Yy5jCmluZGV4IDE3NWIwMGU1YTI1My4u NTQ5NmVhOTgxMzcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Ny dGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2NydGMuYwpAQCAtMjExLDkg KzIxMSw5IEBAIHN0YXRpYyB2b2lkIG10a19jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9j cnRjICpjcnRjKQogewogCXN0cnVjdCBtdGtfY3J0Y19zdGF0ZSAqc3RhdGUgPSB0b19tdGtfY3J0 Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKLQlzdGF0ZS0+cGVuZGluZ193aWR0aCA9IGNydGMtPm1v ZGUuaGRpc3BsYXk7Ci0Jc3RhdGUtPnBlbmRpbmdfaGVpZ2h0ID0gY3J0Yy0+bW9kZS52ZGlzcGxh eTsKLQlzdGF0ZS0+cGVuZGluZ192cmVmcmVzaCA9IGRybV9tb2RlX3ZyZWZyZXNoKCZjcnRjLT5t b2RlKTsKKwlzdGF0ZS0+cGVuZGluZ193aWR0aCA9IGNydGMtPmxlZ2FjeS5tb2RlLmhkaXNwbGF5 OworCXN0YXRlLT5wZW5kaW5nX2hlaWdodCA9IGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5Owor CXN0YXRlLT5wZW5kaW5nX3ZyZWZyZXNoID0gZHJtX21vZGVfdnJlZnJlc2goJmNydGMtPmxlZ2Fj eS5tb2RlKTsKIAl3bWIoKTsJLyogTWFrZSBzdXJlIHRoZSBhYm92ZSBwYXJhbWV0ZXJzIGFyZSBz ZXQgYmVmb3JlIHVwZGF0ZSAqLwogCXN0YXRlLT5wZW5kaW5nX2NvbmZpZyA9IHRydWU7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fb3ZlcmxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lc29uL21lc29uX292ZXJsYXkuYwppbmRleCA3Zjk4ZGUzODg0MmIuLjFkNjEx OWM4ZDU2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX292ZXJsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fb3ZlcmxheS5jCkBAIC00ODIsNyAr NDgyLDcgQEAgc3RhdGljIHZvaWQgbWVzb25fb3ZlcmxheV9hdG9taWNfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCiAJRFJNX0RFQlVHX0RSSVZFUigiXG4iKTsKIAotCWludGVybGFj ZV9tb2RlID0gbmV3X3N0YXRlLT5jcnRjLT5tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRF UkxBQ0U7CisJaW50ZXJsYWNlX21vZGUgPSBuZXdfc3RhdGUtPmNydGMtPmxlZ2FjeS5tb2RlLmZs YWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0U7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcHJp di0+ZHJtLT5ldmVudF9sb2NrLCBmbGFncyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tZXNvbi9tZXNvbl9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3BsYW5l LmMKaW5kZXggYjQzYWM2MTIwMWYzLi4zNWVhOTk0MDU3YjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tZXNvbi9tZXNvbl9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9t ZXNvbl9wbGFuZS5jCkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIHZvaWQgbWVzb25fcGxhbmVf YXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAloZl9iYW5rX2xlbiA9IDQ7 CiAJdmZfYmFua19sZW4gPSA0OwogCi0JaWYgKG5ld19zdGF0ZS0+Y3J0Yy0+bW9kZS5mbGFncyAm IERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7CisJaWYgKG5ld19zdGF0ZS0+Y3J0Yy0+bGVnYWN5 Lm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgewogCQl2c2NfYm90X3Jjdl9u dW0gPSA2OwogCQl2c2NfYm90X3JwdF9wMF9udW0gPSAyOwogCX0KQEAgLTI3Myw3ICsyNzMsNyBA QCBzdGF0aWMgdm9pZCBtZXNvbl9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCSAqIEJ1dCB0aGUgdmVydGljYWwgc2NhbGVyIGNhbiBwcm92aWRlIHN1Y2ggZnVu dGlvbm5hbGl0eSBpZgogCSAqIGlzIGNvbmZpZ3VyZWQgZm9yIDI6MSBzY2FsaW5nIHdpdGggaW50 ZXJsYWNlIG9wdGlvbnMgZW5hYmxlZC4KIAkgKi8KLQlpZiAobmV3X3N0YXRlLT5jcnRjLT5tb2Rl LmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKKwlpZiAobmV3X3N0YXRlLT5jcnRj LT5sZWdhY3kubW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7CiAJCWRlc3Qu eTEgLz0gMjsKIAkJZGVzdC55MiAvPSAyOwogCQlkc3RfaCAvPSAyOwpAQCAtMjgyLDcgKzI4Miw3 IEBAIHN0YXRpYyB2b2lkIG1lc29uX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCiAJaGZfcGhhc2Vfc3RlcCA9ICgoc3JjX3cgPDwgMTgpIC8gZHN0X3cpIDw8IDY7 CiAJdmZfcGhhc2Vfc3RlcCA9IChzcmNfaCA8PCAyMCkgLyBkc3RfaDsKIAotCWlmIChuZXdfc3Rh dGUtPmNydGMtPm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwlpZiAobmV3 X3N0YXRlLT5jcnRjLT5sZWdhY3kubW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNF KQogCQlib3RfaW5pX3BoYXNlID0gKCh2Zl9waGFzZV9zdGVwIC8gMikgPj4gNCk7CiAJZWxzZQog CQlib3RfaW5pX3BoYXNlID0gMDsKQEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0aWMgdm9pZCBtZXNv bl9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCQlWU0Nf VE9QX1JQVF9MMF9OVU0odnNjX2luaV9ycHRfcDBfbnVtKSB8CiAJCQkJCVZTQ19WRVJUSUNBTF9T Q0FMRVJfRU47CiAKLQkJaWYgKG5ld19zdGF0ZS0+Y3J0Yy0+bW9kZS5mbGFncyAmIERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFKQorCQlpZiAobmV3X3N0YXRlLT5jcnRjLT5sZWdhY3kubW9kZS5mbGFn cyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQogCQkJcHJpdi0+dml1Lm9zZF9zY192X2N0cmww IHw9CiAJCQkJCVZTQ19CT1RfSU5JX1JDVl9OVU0odnNjX2JvdF9yY3ZfbnVtKSB8CiAJCQkJCVZT Q19CT1RfUlBUX0wwX05VTSh2c2NfYm90X3JwdF9wMF9udW0pIHwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYwppbmRleCA2OGZhZTA0OGE5YTguLmE0MTVm MjAwMWRiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv cmVfcGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3Bl cmYuYwpAQCAtMTcwLDcgKzE3MCw3IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xp ZW50X3R5cGUoY3J0Yyk7CiAKIAlkcm1fZm9yX2VhY2hfY3J0Yyh0bXBfY3J0YywgY3J0Yy0+ZGV2 KSB7Ci0JCWlmICh0bXBfY3J0Yy0+ZW5hYmxlZCAmJgorCQlpZiAodG1wX2NydGMtPmxlZ2FjeS5l bmFibGVkICYmCiAJCSAgICBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpID09IGN1 cnJfY2xpZW50X3R5cGUgJiYKIAkJICAgIHRtcF9jcnRjICE9IGNydGMpIHsKIAkJCXN0cnVjdCBk cHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGljIGlu dCBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoc3RydWN0IGRwdV9rbXMgKmttcywKIAkJ cmV0dXJuIDA7CiAKIAlkcm1fZm9yX2VhY2hfY3J0Yyh0bXBfY3J0YywgY3J0Yy0+ZGV2KSB7Ci0J CWlmICh0bXBfY3J0Yy0+ZW5hYmxlZCAmJgorCQlpZiAodG1wX2NydGMtPmxlZ2FjeS5lbmFibGVk ICYmCiAJCQljdXJyX2NsaWVudF90eXBlID09CiAJCQkJZHB1X2NydGNfZ2V0X2NsaWVudF90eXBl KHRtcF9jcnRjKSkgewogCQkJZHB1X2NzdGF0ZSA9IHRvX2RwdV9jcnRjX3N0YXRlKHRtcF9jcnRj LT5zdGF0ZSk7CkBAIC0yOTEsNyArMjkxLDcgQEAgc3RhdGljIHU2NCBfZHB1X2NvcmVfcGVyZl9n ZXRfY29yZV9jbGtfcmF0ZShzdHJ1Y3QgZHB1X2ttcyAqa21zKQogCiAJY2xrX3JhdGUgPSAwOwog CWRybV9mb3JfZWFjaF9jcnRjKGNydGMsIGttcy0+ZGV2KSB7Ci0JCWlmIChjcnRjLT5lbmFibGVk KSB7CisJCWlmIChjcnRjLT5sZWdhY3kuZW5hYmxlZCkgewogCQkJZHB1X2NzdGF0ZSA9IHRvX2Rw dV9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAkJCWNsa19yYXRlID0gbWF4KGRwdV9jc3RhdGUt Pm5ld19wZXJmLmNvcmVfY2xrX3JhdGUsCiAJCQkJCQkJY2xrX3JhdGUpOwpAQCAtMzIzLDEyICsz MjMsMTMgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAKIAlE Uk1fREVCVUdfQVRPTUlDKCJjcnRjOiVkIGVuYWJsZWQ6JWQgY29yZV9jbGs6JWxsdVxuIiwKLQkJ CWNydGMtPmJhc2UuaWQsIGNydGMtPmVuYWJsZWQsIGttcy0+cGVyZi5jb3JlX2Nsa19yYXRlKTsK KwkJCWNydGMtPmJhc2UuaWQsIGNydGMtPmxlZ2FjeS5lbmFibGVkLAorCQkJa21zLT5wZXJmLmNv cmVfY2xrX3JhdGUpOwogCiAJb2xkID0gJmRwdV9jcnRjLT5jdXJfcGVyZjsKIAluZXcgPSAmZHB1 X2NzdGF0ZS0+bmV3X3BlcmY7CiAKLQlpZiAoY3J0Yy0+ZW5hYmxlZCkgeworCWlmIChjcnRjLT5s ZWdhY3kuZW5hYmxlZCkgewogCQkvKgogCQkgKiBjYXNlcyBmb3IgYnVzIGJhbmR3aWR0aCB1cGRh dGUuCiAJCSAqIDEuIG5ldyBiYW5kd2lkdGggdm90ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBoaWdo ZXIKQEAgLTM2MSw3ICszNjIsOCBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJfQogCiAJdHJhY2VfZHB1X3BlcmZfY3J0Y191cGRhdGUoY3J0 Yy0+YmFzZS5pZCwgbmV3LT5id19jdGwsCi0JCW5ldy0+Y29yZV9jbGtfcmF0ZSwgIWNydGMtPmVu YWJsZWQsIHVwZGF0ZV9idXMsIHVwZGF0ZV9jbGspOworCQluZXctPmNvcmVfY2xrX3JhdGUsICFj cnRjLT5sZWdhY3kuZW5hYmxlZCwgdXBkYXRlX2J1cywKKwkJdXBkYXRlX2Nsayk7CiAKIAlpZiAo dXBkYXRlX2J1cykgewogCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21z LCBjcnRjKTsKQEAgLTM4MSw3ICszODMsOSBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAkJRFJNX0RFQlVHX0FUT01JQygiY2xrOiVsbHVc biIsIGNsa19yYXRlKTsKIAotCQl0cmFjZV9kcHVfY29yZV9wZXJmX3VwZGF0ZV9jbGsoa21zLT5k ZXYsICFjcnRjLT5lbmFibGVkLCBjbGtfcmF0ZSk7CisJCXRyYWNlX2RwdV9jb3JlX3BlcmZfdXBk YXRlX2NsayhrbXMtPmRldiwKKwkJCQkJICAgICAgICFjcnRjLT5sZWdhY3kuZW5hYmxlZCwKKwkJ CQkJICAgICAgIGNsa19yYXRlKTsKIAogCQljbGtfcmF0ZSA9IG1pbihjbGtfcmF0ZSwga21zLT5w ZXJmLm1heF9jb3JlX2Nsa19yYXRlKTsKIAkJcmV0ID0gZGV2X3BtX29wcF9zZXRfcmF0ZSgma21z LT5wZGV2LT5kZXYsIGNsa19yYXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3BsYW5lLmMKaW5kZXggMjkyOThlMDY2MTYzLi5mMjQ5Mjg4YWIwNDIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCkBAIC0xMTM5LDEyICsxMTM5LDEyIEBAIHN0 YXRpYyB2b2lkIGRwdV9wbGFuZV9zc3BwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUpCiAJCQkmZm10LT5waXhlbF9mb3JtYXQsIE1TTV9GT1JNQVRfSVNfVUJXQyhmbXQpKTsK IAogCWRwdV9wbGFuZV9zc3BwX3VwZGF0ZV9waXBlKHBsYW5lLCBwaXBlLCBwaXBlX2NmZywgZm10 LAotCQkJCSAgIGRybV9tb2RlX3ZyZWZyZXNoKCZjcnRjLT5tb2RlKSwKKwkJCQkgICBkcm1fbW9k ZV92cmVmcmVzaCgmY3J0Yy0+bGVnYWN5Lm1vZGUpLAogCQkJCSAgIGxheW91dF92YWxpZCA/ICZs YXlvdXQgOiBOVUxMKTsKIAogCWlmIChyX3BpcGUtPnNzcHApIHsKIAkJZHB1X3BsYW5lX3NzcHBf dXBkYXRlX3BpcGUocGxhbmUsIHJfcGlwZSwgcl9waXBlX2NmZywgZm10LAotCQkJCQkgICBkcm1f bW9kZV92cmVmcmVzaCgmY3J0Yy0+bW9kZSksCisJCQkJCSAgIGRybV9tb2RlX3ZyZWZyZXNoKCZj cnRjLT5sZWdhY3kubW9kZSksCiAJCQkJCSAgIGxheW91dF92YWxpZCA/ICZsYXlvdXQgOiBOVUxM KTsKIAl9CiAKQEAgLTExNTIsMTQgKzExNTIsMTggQEAgc3RhdGljIHZvaWQgZHB1X3BsYW5lX3Nz cHBfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAkJcHN0YXRlLT5uZWVk c19xb3NfcmVtYXAgPSBmYWxzZTsKIAogCXBzdGF0ZS0+cGxhbmVfZmV0Y2hfYncgPSBfZHB1X3Bs YW5lX2NhbGNfYncocGRwdS0+Y2F0YWxvZywgZm10LAotCQkJCQkJICAgICZjcnRjLT5tb2RlLCBw aXBlX2NmZyk7CisJCQkJCQkgICAgJmNydGMtPmxlZ2FjeS5tb2RlLAorCQkJCQkJICAgIHBpcGVf Y2ZnKTsKIAotCXBzdGF0ZS0+cGxhbmVfY2xrID0gX2RwdV9wbGFuZV9jYWxjX2NsaygmY3J0Yy0+ bW9kZSwgcGlwZV9jZmcpOworCXBzdGF0ZS0+cGxhbmVfY2xrID0gX2RwdV9wbGFuZV9jYWxjX2Ns aygmY3J0Yy0+bGVnYWN5Lm1vZGUsIHBpcGVfY2ZnKTsKIAogCWlmIChyX3BpcGUtPnNzcHApIHsK LQkJcHN0YXRlLT5wbGFuZV9mZXRjaF9idyArPSBfZHB1X3BsYW5lX2NhbGNfYncocGRwdS0+Y2F0 YWxvZywgZm10LCAmY3J0Yy0+bW9kZSwgcl9waXBlX2NmZyk7CisJCXBzdGF0ZS0+cGxhbmVfZmV0 Y2hfYncgKz0gX2RwdV9wbGFuZV9jYWxjX2J3KHBkcHUtPmNhdGFsb2csIGZtdCwKKwkJCQkJCQkg ICAgICZjcnRjLT5sZWdhY3kubW9kZSwKKwkJCQkJCQkgICAgIHJfcGlwZV9jZmcpOwogCi0JCXBz dGF0ZS0+cGxhbmVfY2xrID0gbWF4KHBzdGF0ZS0+cGxhbmVfY2xrLCBfZHB1X3BsYW5lX2NhbGNf Y2xrKCZjcnRjLT5tb2RlLCByX3BpcGVfY2ZnKSk7CisJCXBzdGF0ZS0+cGxhbmVfY2xrID0gbWF4 KHBzdGF0ZS0+cGxhbmVfY2xrLAorCQkJCQlfZHB1X3BsYW5lX2NhbGNfY2xrKCZjcnRjLT5sZWdh Y3kubW9kZSwgcl9waXBlX2NmZykpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av bWRwNS9tZHA1X2NydGMuYwppbmRleCAwZjY1M2U2MmI0YTAuLjM4MjkzOWFiMjNhYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL21kcDUvbWRwNV9jcnRjLmMKQEAgLTg0Miw4ICs4NDIsOCBA QCBzdGF0aWMgdm9pZCBtZHA1X2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIHN0YXRpYyB2b2lkIGdldF9yb2koc3RydWN0IGRybV9jcnRjICpjcnRjLCB1aW50MzJfdCAq cm9pX3csIHVpbnQzMl90ICpyb2lfaCkKIHsKIAlzdHJ1Y3QgbWRwNV9jcnRjICptZHA1X2NydGMg PSB0b19tZHA1X2NydGMoY3J0Yyk7Ci0JdWludDMyX3QgeHJlcyA9IGNydGMtPm1vZGUuaGRpc3Bs YXk7Ci0JdWludDMyX3QgeXJlcyA9IGNydGMtPm1vZGUudmRpc3BsYXk7CisJdWludDMyX3QgeHJl cyA9IGNydGMtPmxlZ2FjeS5tb2RlLmhkaXNwbGF5OworCXVpbnQzMl90IHlyZXMgPSBjcnRjLT5s ZWdhY3kubW9kZS52ZGlzcGxheTsKIAogCS8qCiAJICogQ3Vyc29yIFJlZ2lvbiBPZiBJbnRlcmVz dCAoUk9JKSBpcyBhIHBsYW5lIHJlYWQgZnJvbSBjdXJzb3IKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L2Rpc3BudjA0L2NydGMuYwppbmRleCA0Y2JjMzk3NmIxODAuLjM1ZTY2NTU5YjFmNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3J0Yy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2NydGMuYwpAQCAtNzM1LDcgKzczNSw3IEBAIHN0 YXRpYyB2b2lkIG52X2NydGNfY29tbWl0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3Qg bm91dmVhdV9jcnRjICpudl9jcnRjID0gbm91dmVhdV9jcnRjKGNydGMpOwogCiAJbm91dmVhdV9o d19sb2FkX3N0YXRlKGRldiwgbnZfY3J0Yy0+aW5kZXgsICZudjA0X2Rpc3BsYXkoZGV2KS0+bW9k ZV9yZWcpOwotCW52MDRfY3J0Y19tb2RlX3NldF9iYXNlKGNydGMsIGNydGMtPngsIGNydGMtPnks IE5VTEwpOworCW52MDRfY3J0Y19tb2RlX3NldF9iYXNlKGNydGMsIGNydGMtPmxlZ2FjeS54LCBj cnRjLT5sZWdhY3kueSwgTlVMTCk7CiAKICNpZmRlZiBfX0JJR19FTkRJQU4KIAkvKiB0dXJuIG9u IExGQiBzd2FwcGluZyAqLwpAQCAtODk5LDcgKzg5OSw4IEBAIG52MDRfY3J0Y19kb19tb2RlX3Nl dF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAludl9zZXRfY3J0Y19iYXNlKGRldiwgbnZf Y3J0Yy0+aW5kZXgsIHJlZ3AtPmZiX3N0YXJ0KTsKIAogCS8qIFVwZGF0ZSB0aGUgYXJiaXRyYXRp b24gcGFyYW1ldGVycy4gKi8KLQlub3V2ZWF1X2NhbGNfYXJiKGRldiwgY3J0Yy0+bW9kZS5jbG9j aywgZHJtX2ZiLT5mb3JtYXQtPmNwcFswXSAqIDgsCisJbm91dmVhdV9jYWxjX2FyYihkZXYsIGNy dGMtPmxlZ2FjeS5tb2RlLmNsb2NrLAorCQkJIGRybV9mYi0+Zm9ybWF0LT5jcHBbMF0gKiA4LAog CQkJICZhcmJfYnVyc3QsICZhcmJfbHdtKTsKIAogCXJlZ3AtPkNSVENbTlZfQ0lPX0NSRV9GRl9J TkRFWF0gPSBhcmJfYnVyc3Q7CkBAIC0xMDk3LDggKzEwOTgsOCBAQCBudjA0X2ZsaXBfY29tcGxl dGUoc3RydWN0IG52aWZfZXZlbnQgKmV2ZW50LCB2b2lkICphcmd2LCB1MzIgYXJnYykKIAogCWlm ICghbnYwNF9maW5pc2hfcGFnZV9mbGlwKGNoYW4sICZzdGF0ZSkpIHsKIAkJbnZfc2V0X2NydGNf YmFzZShkcm0tPmRldiwgZHJtX2NydGNfaW5kZXgoc3RhdGUuY3J0YyksCi0JCQkJIHN0YXRlLm9m ZnNldCArIHN0YXRlLmNydGMtPnkgKgotCQkJCSBzdGF0ZS5waXRjaCArIHN0YXRlLmNydGMtPngg KgorCQkJCSBzdGF0ZS5vZmZzZXQgKyBzdGF0ZS5jcnRjLT5sZWdhY3kueSAqCisJCQkJIHN0YXRl LnBpdGNoICsgc3RhdGUuY3J0Yy0+bGVnYWN5LnggKgogCQkJCSBzdGF0ZS5icHAgLyA4KTsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L2N1cnNvci5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvY3Vyc29yLmMKaW5kZXggNGM2NDQw ZDI5YzNmLi4yYTg3YjMyNTZjMjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L2Rpc3BudjA0L2N1cnNvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0 L2N1cnNvci5jCkBAIC00Nyw3ICs0Nyw3IEBAIG52MDRfY3Vyc29yX3NldF9vZmZzZXQoc3RydWN0 IG5vdXZlYXVfY3J0YyAqbnZfY3J0YywgdWludDMyX3Qgb2Zmc2V0KQogCQlYTEFURShvZmZzZXQs IDE3LCBOVl9DSU9fQ1JFX0hDVVJfQUREUjBfQURSKTsKIAlyZWdwLT5DUlRDW05WX0NJT19DUkVf SENVUl9BRERSMV9JTkRFWF0gPQogCQlYTEFURShvZmZzZXQsIDExLCBOVl9DSU9fQ1JFX0hDVVJf QUREUjFfQURSKTsKLQlpZiAoY3J0Yy0+bW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NB TikKKwlpZiAoY3J0Yy0+bGVnYWN5Lm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4p CiAJCXJlZ3AtPkNSVENbTlZfQ0lPX0NSRV9IQ1VSX0FERFIxX0lOREVYXSB8PQogCQkJTUFTSyhO Vl9DSU9fQ1JFX0hDVVJfQUREUjFfQ1VSX0RCTCk7CiAJcmVncC0+Q1JUQ1tOVl9DSU9fQ1JFX0hD VVJfQUREUjJfSU5ERVhdID0gb2Zmc2V0ID4+IDI0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvZGlzcG52MDQvdHZtb2Rlc252MTcuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L2Rpc3BudjA0L3R2bW9kZXNudjE3LmMKaW5kZXggYTNmZWRkMjI2ODU0Li4xNjYzZTE3MzI2 NGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bW9kZXNu djE3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52MDQvdHZtb2Rlc252MTcu YwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIHR2X3NldHVwX2ZpbHRlcihzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IG52MTdfdHZfZW5jb2RlciAqdHZfZW5j ID0gdG9fdHZfZW5jKGVuY29kZXIpOwogCXN0cnVjdCBudjE3X3R2X25vcm1fcGFyYW1zICp0dl9u b3JtID0gZ2V0X3R2X25vcm0oZW5jb2Rlcik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUgPSAmZW5jb2Rlci0+Y3J0Yy0+bW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSA9ICZlbmNvZGVyLT5jcnRjLT5sZWdhY3kubW9kZTsKIAl1aW50MzJfdCAoKmZpbHRlcnNbXSlb NF1bN10gPSB7JnR2X2VuYy0+c3RhdGUuaGZpbHRlciwKIAkJCQkgICAgICAgJnR2X2VuYy0+c3Rh dGUudmZpbHRlcn07CiAJaW50IGksIGosIGs7CkBAIC01NDQsNyArNTQ0LDcgQEAgdm9pZCBudjE3 X2N0dl91cGRhdGVfcmVzY2FsZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVj dCBudjE3X3R2X2VuY29kZXIgKnR2X2VuYyA9IHRvX3R2X2VuYyhlbmNvZGVyKTsKIAlpbnQgaGVh ZCA9IG5vdXZlYXVfY3J0YyhlbmNvZGVyLT5jcnRjKS0+aW5kZXg7CiAJc3RydWN0IG52MDRfY3J0 Y19yZWcgKnJlZ3MgPSAmbnYwNF9kaXNwbGF5KGRldiktPm1vZGVfcmVnLmNydGNfcmVnW2hlYWRd OwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpjcnRjX21vZGUgPSAmZW5jb2Rlci0+Y3J0Yy0+ bW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqY3J0Y19tb2RlID0gJmVuY29kZXItPmNy dGMtPmxlZ2FjeS5tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpvdXRwdXRfbW9kZSA9 CiAJCSZnZXRfdHZfbm9ybShlbmNvZGVyKS0+Y3R2X2VuY19tb2RlLm1vZGU7CiAJaW50IG92ZXJz Y2FuLCBobWFyZ2luLCB2bWFyZ2luLCBocmF0aW8sIHZyYXRpbzsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jIGIvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvZGlzcG52MDQvdHZudjE3LmMKaW5kZXggNGJjODAzOWU2ZWUwLi5kNzAzOWFlZTlkNzIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L3R2bnYxNy5jCkBAIC03NTQsOCAr NzU0LDkgQEAgc3RhdGljIGludCBudjE3X3R2X3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCiAJCS8qIERpc2FibGUgdGhlIGNydGMgdG8gZW5zdXJlIGEgZnVsbCBtb2Rl c2V0IGlzCiAJCSAqIHBlcmZvcm1lZCB3aGVuZXZlciBpdCdzIHR1cm5lZCBvbiBhZ2Fpbi4gKi8K IAkJaWYgKGNydGMpCi0JCQlkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUoY3J0YywgJmNydGMtPm1v ZGUsCi0JCQkJCQkgY3J0Yy0+eCwgY3J0Yy0+eSwKKwkJCWRybV9jcnRjX2hlbHBlcl9zZXRfbW9k ZShjcnRjLCAmY3J0Yy0+bGVnYWN5Lm1vZGUsCisJCQkJCQkgY3J0Yy0+bGVnYWN5LngsCisJCQkJ CQkgY3J0Yy0+bGVnYWN5LnksCiAJCQkJCQkgY3J0Yy0+cHJpbWFyeS0+bGVnYWN5LmZiKTsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9y LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jCmluZGV4IDhk NWM5Yzc0Y2JiOS4uNzBhOWQ5OGI4ODJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfY29ubmVjdG9yLmMKQEAgLTgwNyw5ICs4MDcsOSBAQCBub3V2ZWF1X2Nvbm5lY3Rvcl9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAogCWlmIChjb25u ZWN0b3ItPmVuY29kZXIgJiYgY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjKSB7CiAJCXJldCA9IGRy bV9jcnRjX2hlbHBlcl9zZXRfbW9kZShjb25uZWN0b3ItPmVuY29kZXItPmNydGMsCi0JCQkJCSAg ICAgICZjb25uZWN0b3ItPmVuY29kZXItPmNydGMtPm1vZGUsCi0JCQkJCSAgICAgICBjb25uZWN0 b3ItPmVuY29kZXItPmNydGMtPngsCi0JCQkJCSAgICAgICBjb25uZWN0b3ItPmVuY29kZXItPmNy dGMtPnksCisJCQkJCSAgICAgICZjb25uZWN0b3ItPmVuY29kZXItPmNydGMtPmxlZ2FjeS5tb2Rl LAorCQkJCQkgICAgICAgY29ubmVjdG9yLT5lbmNvZGVyLT5jcnRjLT5sZWdhY3kueCwKKwkJCQkJ ICAgICAgIGNvbm5lY3Rvci0+ZW5jb2Rlci0+Y3J0Yy0+bGVnYWN5LnksCiAJCQkJCSAgICAgICBO VUxMKTsKIAkJaWYgKCFyZXQpCiAJCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rp c3BsYXkuYwppbmRleCBiYzI0YWYwOGRmY2QuLmMyZWExZDY0ZDU4MSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwv cXhsX2Rpc3BsYXkuYwpAQCAtMzM3LDEyICszMzcsMTIgQEAgc3RhdGljIHZvaWQgcXhsX2NydGNf dXBkYXRlX21vbml0b3JzX2NvbmZpZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaGVhZC5zdXJm YWNlX2lkID0gMDsKIAlvbGRjb3VudCA9IHFkZXYtPm1vbml0b3JzX2NvbmZpZy0+Y291bnQ7CiAJ aWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUgPSAmY3J0Yy0+bW9kZTsKKwkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0 Yy0+bGVnYWN5Lm1vZGU7CiAKIAkJaGVhZC53aWR0aCA9IG1vZGUtPmhkaXNwbGF5OwogCQloZWFk LmhlaWdodCA9IG1vZGUtPnZkaXNwbGF5OwotCQloZWFkLnggPSBjcnRjLT54OwotCQloZWFkLnkg PSBjcnRjLT55OworCQloZWFkLnggPSBjcnRjLT5sZWdhY3kueDsKKwkJaGVhZC55ID0gY3J0Yy0+ bGVnYWN5Lnk7CiAJCWlmIChxZGV2LT5tb25pdG9yc19jb25maWctPmNvdW50IDwgaSArIDEpCiAJ CQlxZGV2LT5tb25pdG9yc19jb25maWctPmNvdW50ID0gaSArIDE7CiAJCWlmIChxZGV2LT5wcmlt YXJ5X2JvID09IHFkZXYtPmR1bWJfc2hhZG93X2JvKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21i aW9zX2NydGMuYwppbmRleCAzNmU0NjYzMTg2YzguLjQxOGJhMzc4MzgzNSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKQEAgLTE0MjYsMTAgKzE0MjYsMTAgQEAgc3RhdGlj IGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXkgJj0g fjE7CiAJV1JFRzMyKEVWRVJHUkVFTl9WSUVXUE9SVF9TVEFSVCArIHJhZGVvbl9jcnRjLT5jcnRj X29mZnNldCwKIAkgICAgICAgKHggPDwgMTYpIHwgeSk7Ci0Jdmlld3BvcnRfdyA9IGNydGMtPm1v ZGUuaGRpc3BsYXk7Ci0Jdmlld3BvcnRfaCA9IChjcnRjLT5tb2RlLnZkaXNwbGF5ICsgMSkgJiB+ MTsKKwl2aWV3cG9ydF93ID0gY3J0Yy0+bGVnYWN5Lm1vZGUuaGRpc3BsYXk7CisJdmlld3BvcnRf aCA9IChjcnRjLT5sZWdhY3kubW9kZS52ZGlzcGxheSArIDEpICYgfjE7CiAJaWYgKChyZGV2LT5m YW1pbHkgPj0gQ0hJUF9CT05BSVJFKSAmJgotCSAgICAoY3J0Yy0+bW9kZS5mbGFncyAmIERSTV9N T0RFX0ZMQUdfSU5URVJMQUNFKSkKKwkgICAgKGNydGMtPmxlZ2FjeS5tb2RlLmZsYWdzICYgRFJN X01PREVfRkxBR19JTlRFUkxBQ0UpKQogCQl2aWV3cG9ydF9oICo9IDI7CiAJV1JFRzMyKEVWRVJH UkVFTl9WSUVXUE9SVF9TSVpFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICAo dmlld3BvcnRfdyA8PCAxNikgfCB2aWV3cG9ydF9oKTsKQEAgLTE2MzcsOCArMTYzNyw4IEBAIHN0 YXRpYyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ eSAmPSB+MTsKIAlXUkVHMzIoQVZJVk9fRDFNT0RFX1ZJRVdQT1JUX1NUQVJUICsgcmFkZW9uX2Ny dGMtPmNydGNfb2Zmc2V0LAogCSAgICAgICAoeCA8PCAxNikgfCB5KTsKLQl2aWV3cG9ydF93ID0g Y3J0Yy0+bW9kZS5oZGlzcGxheTsKLQl2aWV3cG9ydF9oID0gKGNydGMtPm1vZGUudmRpc3BsYXkg KyAxKSAmIH4xOworCXZpZXdwb3J0X3cgPSBjcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheTsKKwl2 aWV3cG9ydF9oID0gKGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5ICsgMSkgJiB+MTsKIAlXUkVH MzIoQVZJVk9fRDFNT0RFX1ZJRVdQT1JUX1NJWkUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQs CiAJICAgICAgICh2aWV3cG9ydF93IDw8IDE2KSB8IHZpZXdwb3J0X2gpOwogCkBAIC0xODEyLDcg KzE4MTIsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9nZXRfc2hhcmVkX25vbmRwX3BwbGwoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogCQkJfQogCQkJLyogZm9yIG5vbi1EUCBjaGVjayB0aGUgY2xvY2sg Ki8KIAkJCXRlc3RfYWRqdXN0ZWRfY2xvY2sgPSB0ZXN0X3JhZGVvbl9jcnRjLT5hZGp1c3RlZF9j bG9jazsKLQkJCWlmICgoY3J0Yy0+bW9kZS5jbG9jayA9PSB0ZXN0X2NydGMtPm1vZGUuY2xvY2sp ICYmCisJCQlpZiAoKGNydGMtPmxlZ2FjeS5tb2RlLmNsb2NrID09IHRlc3RfY3J0Yy0+bGVnYWN5 Lm1vZGUuY2xvY2spICYmCiAJCQkgICAgKGFkanVzdGVkX2Nsb2NrID09IHRlc3RfYWRqdXN0ZWRf Y2xvY2spICYmCiAJCQkgICAgKHJhZGVvbl9jcnRjLT5zc19lbmFibGVkID09IHRlc3RfcmFkZW9u X2NydGMtPnNzX2VuYWJsZWQpICYmCiAJCQkgICAgKHRlc3RfcmFkZW9uX2NydGMtPnBsbF9pZCAh PSBBVE9NX1BQTExfSU5WQUxJRCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2Npay5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwppbmRleCAxMWE0OTJmMjExNTcu LjU1MTM2N2RmMDA1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCkBAIC04ODExLDcgKzg4MTEsNyBAQCBz dGF0aWMgdTMyIGRjZThfbGluZV9idWZmZXJfYWRqdXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LAogCSAqIHRoYW4gNDA5NiwgeW91IG5lZWQgdXNlIHRvIHVzZSAyIGRpc3BsYXkgY29udHJv bGxlcnMgYW5kIGNvbWJpbmUKIAkgKiB0aGVtIHVzaW5nIHRoZSBzdGVyZW8gYmxlbmRlci4KIAkg Ki8KLQlpZiAocmFkZW9uX2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7CisJaWYgKHJhZGVv bl9jcnRjLT5iYXNlLmxlZ2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJaWYgKG1vZGUtPmNydGNf aGRpc3BsYXkgPCAxOTIwKSB7CiAJCQl0bXAgPSAxOwogCQkJYnVmZmVyX2FsbG9jID0gMjsKQEAg LTg4NDMsNyArODg0Myw3IEBAIHN0YXRpYyB1MzIgZGNlOF9saW5lX2J1ZmZlcl9hZGp1c3Qoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCXVkZWxheSgxKTsKIAl9CiAKLQlpZiAocmFkZW9u X2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7CisJaWYgKHJhZGVvbl9jcnRjLT5iYXNlLmxl Z2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJc3dpdGNoICh0bXApIHsKIAkJY2FzZSAwOgogCQlk ZWZhdWx0OgpAQCAtOTIzMCwxNCArOTIzMCwxNCBAQCBzdGF0aWMgdm9pZCBkY2U4X3Byb2dyYW1f d2F0ZXJtYXJrcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJCQkgICAgc3RydWN0IHJh ZGVvbl9jcnRjICpyYWRlb25fY3J0YywKIAkJCQkgICAgdTMyIGxiX3NpemUsIHUzMiBudW1faGVh ZHMpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmcmFkZW9uX2NydGMtPmJh c2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZyYWRlb25fY3J0Yy0+ YmFzZS5sZWdhY3kubW9kZTsKIAlzdHJ1Y3QgZGNlOF93bV9wYXJhbXMgd21fbG93LCB3bV9oaWdo OwogCXUzMiBhY3RpdmVfdGltZTsKIAl1MzIgbGluZV90aW1lID0gMDsKIAl1MzIgbGF0ZW5jeV93 YXRlcm1hcmtfYSA9IDAsIGxhdGVuY3lfd2F0ZXJtYXJrX2IgPSAwOwogCXUzMiB0bXAsIHdtX21h c2s7CiAKLQlpZiAocmFkZW9uX2NydGMtPmJhc2UuZW5hYmxlZCAmJiBudW1faGVhZHMgJiYgbW9k ZSkgeworCWlmIChyYWRlb25fY3J0Yy0+YmFzZS5sZWdhY3kuZW5hYmxlZCAmJiBudW1faGVhZHMg JiYgbW9kZSkgewogCQlhY3RpdmVfdGltZSA9ICh1MzIpIGRpdl91NjQoKHU2NCltb2RlLT5jcnRj X2hkaXNwbGF5ICogMTAwMDAwMCwKIAkJCQkJICAgICh1MzIpbW9kZS0+Y2xvY2spOwogCQlsaW5l X3RpbWUgPSAodTMyKSBkaXZfdTY0KCh1NjQpbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwMDAwLApA QCAtOTM3NCwxMSArOTM3NCwxMSBAQCB2b2lkIGRjZThfYmFuZHdpZHRoX3VwZGF0ZShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKIAlyYWRlb25fdXBkYXRlX2Rpc3BsYXlfcHJpb3JpdHkocmRl dik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcmRldi0+bnVtX2NydGM7IGkrKykgewotCQlpZiAocmRl di0+bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNlLmVuYWJsZWQpCisJCWlmIChyZGV2LT5tb2RlX2lu Zm8uY3J0Y3NbaV0tPmJhc2UubGVnYWN5LmVuYWJsZWQpCiAJCQludW1faGVhZHMrKzsKIAl9CiAJ Zm9yIChpID0gMDsgaSA8IHJkZXYtPm51bV9jcnRjOyBpKyspIHsKLQkJbW9kZSA9ICZyZGV2LT5t b2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UubW9kZTsKKwkJbW9kZSA9ICZyZGV2LT5tb2RlX2luZm8u Y3J0Y3NbaV0tPmJhc2UubGVnYWN5Lm1vZGU7CiAJCWxiX3NpemUgPSBkY2U4X2xpbmVfYnVmZmVy X2FkanVzdChyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0sIG1vZGUpOwogCQlkY2U4X3By b2dyYW1fd2F0ZXJtYXJrcyhyZGV2LCByZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0sIGxiX3NpemUs IG51bV9oZWFkcyk7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVy Z3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKaW5kZXggMmNiY2Y3 Y2ZkYzNjLi5lOTE1ZjYxMjg2ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v ZXZlcmdyZWVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYwpAQCAt MTg1MSw3ICsxODUxLDcgQEAgc3RhdGljIHUzMiBldmVyZ3JlZW5fbGluZV9idWZmZXJfYWRqdXN0 KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCSAqIG9mIGNydGNzLiAgSWRlYWxseSBmb3Ig bXVsdGlwbGUgbGFyZ2UgZGlzcGxheXMgd2UnZCBhc3NpZ24gdGhlbSB0bwogCSAqIG5vbi1saW5r ZWQgY3J0Y3MgZm9yIG1heGltdW0gbGluZSBidWZmZXIgYWxsb2NhdGlvbi4KIAkgKi8KLQlpZiAo cmFkZW9uX2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7CisJaWYgKHJhZGVvbl9jcnRjLT5i YXNlLmxlZ2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJaWYgKG90aGVyX21vZGUpIHsKIAkJCXRt cCA9IDA7IC8qIDEvMiAqLwogCQkJYnVmZmVyX2FsbG9jID0gMTsKQEAgLTE4ODAsNyArMTg4MCw3 IEBAIHN0YXRpYyB1MzIgZXZlcmdyZWVuX2xpbmVfYnVmZmVyX2FkanVzdChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKIAkJfQogCX0KIAotCWlmIChyYWRlb25fY3J0Yy0+YmFzZS5lbmFibGVk ICYmIG1vZGUpIHsKKwlpZiAocmFkZW9uX2NydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQgJiYgbW9k ZSkgewogCQlzd2l0Y2ggKHRtcCkgewogCQljYXNlIDA6CiAJCWNhc2UgNDoKQEAgLTIxNTYsNyAr MjE1Niw3IEBAIHN0YXRpYyB2b2lkIGV2ZXJncmVlbl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCSBzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9j cnRjLAogCQkJCQkgdTMyIGxiX3NpemUsIHUzMiBudW1faGVhZHMpCiB7Ci0Jc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSAmcmFkZW9uX2NydGMtPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZyYWRlb25fY3J0Yy0+YmFzZS5sZWdhY3kubW9kZTsKIAlz dHJ1Y3QgZXZlcmdyZWVuX3dtX3BhcmFtcyB3bV9sb3csIHdtX2hpZ2g7CiAJdTMyIGRyYW1fY2hh bm5lbHM7CiAJdTMyIGFjdGl2ZV90aW1lOwpAQCAtMjE2OSw3ICsyMTY5LDcgQEAgc3RhdGljIHZv aWQgZXZlcmdyZWVuX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwKIAl1MzIgdG1wLCBhcmJfY29udHJvbDM7CiAJZml4ZWQyMF8xMiBhLCBiLCBjOwogCi0JaWYg KHJhZGVvbl9jcnRjLT5iYXNlLmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUpIHsKKwlpZiAo cmFkZW9uX2NydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQgJiYgbnVtX2hlYWRzICYmIG1vZGUpIHsK IAkJYWN0aXZlX3RpbWUgPSAodTMyKSBkaXZfdTY0KCh1NjQpbW9kZS0+Y3J0Y19oZGlzcGxheSAq IDEwMDAwMDAsCiAJCQkJCSAgICAodTMyKW1vZGUtPmNsb2NrKTsKIAkJbGluZV90aW1lID0gKHUz MikgZGl2X3U2NCgodTY0KW1vZGUtPmNydGNfaHRvdGFsICogMTAwMDAwMCwKQEAgLTIzMzQsMTIg KzIzMzQsMTIgQEAgdm9pZCBldmVyZ3JlZW5fYmFuZHdpZHRoX3VwZGF0ZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikKIAlyYWRlb25fdXBkYXRlX2Rpc3BsYXlfcHJpb3JpdHkocmRldik7CiAK IAlmb3IgKGkgPSAwOyBpIDwgcmRldi0+bnVtX2NydGM7IGkrKykgewotCQlpZiAocmRldi0+bW9k ZV9pbmZvLmNydGNzW2ldLT5iYXNlLmVuYWJsZWQpCisJCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0 Y3NbaV0tPmJhc2UubGVnYWN5LmVuYWJsZWQpCiAJCQludW1faGVhZHMrKzsKIAl9CiAJZm9yIChp ID0gMDsgaSA8IHJkZXYtPm51bV9jcnRjOyBpICs9IDIpIHsKLQkJbW9kZTAgPSAmcmRldi0+bW9k ZV9pbmZvLmNydGNzW2ldLT5iYXNlLm1vZGU7Ci0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5j cnRjc1tpKzFdLT5iYXNlLm1vZGU7CisJCW1vZGUwID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1tp XS0+YmFzZS5sZWdhY3kubW9kZTsKKwkJbW9kZTEgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzW2kg KyAxXS0+YmFzZS5sZWdhY3kubW9kZTsKIAkJbGJfc2l6ZSA9IGV2ZXJncmVlbl9saW5lX2J1ZmZl cl9hZGp1c3QocmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLCBtb2RlMCwgbW9kZTEpOwog CQlldmVyZ3JlZW5fcHJvZ3JhbV93YXRlcm1hcmtzKHJkZXYsIHJkZXYtPm1vZGVfaW5mby5jcnRj c1tpXSwgbGJfc2l6ZSwgbnVtX2hlYWRzKTsKIAkJbGJfc2l6ZSA9IGV2ZXJncmVlbl9saW5lX2J1 ZmZlcl9hZGp1c3QocmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzW2krMV0sIG1vZGUxLCBtb2Rl MCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcjEwMC5jCmluZGV4IDFhYTMxMjZhYjZkOS4uNmYwNjY2NTZjNjUxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3IxMDAuYwpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgaW50IHIxMDBfY3NfcGFj a2V0X3BhcnNlX3ZsaW5lKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwKQogCXJhZGVvbl9jcnRj ID0gdG9fcmFkZW9uX2NydGMoY3J0Yyk7CiAJY3J0Y19pZCA9IHJhZGVvbl9jcnRjLT5jcnRjX2lk OwogCi0JaWYgKCFjcnRjLT5lbmFibGVkKSB7CisJaWYgKCFjcnRjLT5sZWdhY3kuZW5hYmxlZCkg ewogCQkvKiBpZiB0aGUgQ1JUQyBpc24ndCBlbmFibGVkIC0gd2UgbmVlZCB0byBub3Agb3V0IHRo ZSB3YWl0IHVudGlsICovCiAJCWliW2hfaWR4ICsgMl0gPSBQQUNLRVQyKDApOwogCQlpYltoX2lk eCArIDNdID0gUEFDS0VUMigwKTsKQEAgLTMyNDIsMTkgKzMyNDIsMTkgQEAgdm9pZCByMTAwX2Jh bmR3aWR0aF91cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAKIAlyYWRlb25fdXBk YXRlX2Rpc3BsYXlfcHJpb3JpdHkocmRldik7CiAKLQlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNz WzBdLT5iYXNlLmVuYWJsZWQpIHsKKwlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNl LmxlZ2FjeS5lbmFibGVkKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0K IAkJCXJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5wcmltYXJ5LT5sZWdhY3kuZmI7CiAK LQkJbW9kZTEgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLm1vZGU7CisJCW1vZGUx ID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5sZWdhY3kubW9kZTsKIAkJcGl4ZWxf Ynl0ZXMxID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCX0KIAlpZiAoIShyZGV2LT5mbGFncyAmIFJB REVPTl9TSU5HTEVfQ1JUQykpIHsKLQkJaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFz ZS5lbmFibGVkKSB7CisJCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UubGVnYWN5 LmVuYWJsZWQpIHsKIAkJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCQly ZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UucHJpbWFyeS0+bGVnYWN5LmZiOwogCi0JCQlt b2RlMiA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UubW9kZTsKKwkJCW1vZGUyID0g JnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5sZWdhY3kubW9kZTsKIAkJCXBpeGVsX2J5 dGVzMiA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcjYwMF9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2Nz LmMKaW5kZXggMWIyZDMxYzRkNzdjLi4yN2Y2YTI4NWM2MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcjYwMF9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYw MF9jcy5jCkBAIC04OTIsNyArODkyLDcgQEAgaW50IHI2MDBfY3NfY29tbW9uX3ZsaW5lX3BhcnNl KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAogCXJhZGVvbl9jcnRjID0gdG9fcmFkZW9uX2Ny dGMoY3J0Yyk7CiAJY3J0Y19pZCA9IHJhZGVvbl9jcnRjLT5jcnRjX2lkOwogCi0JaWYgKCFjcnRj LT5lbmFibGVkKSB7CisJaWYgKCFjcnRjLT5sZWdhY3kuZW5hYmxlZCkgewogCQkvKiBDUlRDIGlz bid0IGVuYWJsZWQgLSB3ZSBuZWVkIHRvIG5vcCBvdXQgdGhlIFdBSVRfUkVHX01FTSAqLwogCQlp YltoX2lkeCArIDJdID0gUEFDS0VUMigwKTsKIAkJaWJbaF9pZHggKyAzXSA9IFBBQ0tFVDIoMCk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMKaW5kZXggODFkNThlZjY2N2RkLi4xOWIwMmJjMzVj MDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kcG0uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMKQEAgLTE2Miw3ICsxNjIsNyBAQCB1MzIg cjYwMF9kcG1fZ2V0X3ZibGFua190aW1lKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCWlm IChyZGV2LT5udW1fY3J0YyAmJiByZGV2LT5tb2RlX2luZm8ubW9kZV9jb25maWdfaW5pdGlhbGl6 ZWQpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRj X2xpc3QsIGhlYWQpIHsKIAkJCXJhZGVvbl9jcnRjID0gdG9fcmFkZW9uX2NydGMoY3J0Yyk7Ci0J CQlpZiAoY3J0Yy0+ZW5hYmxlZCAmJiByYWRlb25fY3J0Yy0+ZW5hYmxlZCAmJiByYWRlb25fY3J0 Yy0+aHdfbW9kZS5jbG9jaykgeworCQkJaWYgKGNydGMtPmxlZ2FjeS5lbmFibGVkICYmIHJhZGVv bl9jcnRjLT5lbmFibGVkICYmIHJhZGVvbl9jcnRjLT5od19tb2RlLmNsb2NrKSB7CiAJCQkJdmJs YW5rX2luX3BpeGVscyA9CiAJCQkJCXJhZGVvbl9jcnRjLT5od19tb2RlLmNydGNfaHRvdGFsICoK IAkJCQkJKHJhZGVvbl9jcnRjLT5od19tb2RlLmNydGNfdmJsYW5rX2VuZCAtCkBAIC0xODgsNyAr MTg4LDcgQEAgdTMyIHI2MDBfZHBtX2dldF92cmVmcmVzaChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKIAlpZiAocmRldi0+bnVtX2NydGMgJiYgcmRldi0+bW9kZV9pbmZvLm1vZGVfY29uZmln X2luaXRpYWxpemVkKSB7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0YywgJmRldi0+bW9kZV9j b25maWcuY3J0Y19saXN0LCBoZWFkKSB7CiAJCQlyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9jcnRj KGNydGMpOwotCQkJaWYgKGNydGMtPmVuYWJsZWQgJiYgcmFkZW9uX2NydGMtPmVuYWJsZWQgJiYg cmFkZW9uX2NydGMtPmh3X21vZGUuY2xvY2spIHsKKwkJCWlmIChjcnRjLT5sZWdhY3kuZW5hYmxl ZCAmJiByYWRlb25fY3J0Yy0+ZW5hYmxlZCAmJiByYWRlb25fY3J0Yy0+aHdfbW9kZS5jbG9jaykg ewogCQkJCXZyZWZyZXNoID0gZHJtX21vZGVfdnJlZnJlc2goJnJhZGVvbl9jcnRjLT5od19tb2Rl KTsKIAkJCQlicmVhazsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2Nvbm5lY3RvcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5l Y3RvcnMuYwppbmRleCBkYmUwZjc1Y2ZlYTcuLmYzYTFmNGFhNDMyNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYwpAQCAtOTAsOSArOTAsOSBAQCBzdGF0aWMg dm9pZCByYWRlb25fcHJvcGVydHlfY2hhbmdlX21vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7CiAKLQlpZiAo Y3J0YyAmJiBjcnRjLT5lbmFibGVkKSB7Ci0JCWRybV9jcnRjX2hlbHBlcl9zZXRfbW9kZShjcnRj LCAmY3J0Yy0+bW9kZSwKLQkJCQkJIGNydGMtPngsIGNydGMtPnksCisJaWYgKGNydGMgJiYgY3J0 Yy0+bGVnYWN5LmVuYWJsZWQpIHsKKwkJZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKGNydGMsICZj cnRjLT5sZWdhY3kubW9kZSwKKwkJCQkJIGNydGMtPmxlZ2FjeS54LCBjcnRjLT5sZWdhY3kueSwK IAkJCQkJIGNydGMtPnByaW1hcnktPmxlZ2FjeS5mYik7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29yLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9jdXJzb3IuYwppbmRleCAzNTA3ODA1YjM0YmMuLjU5YmY2NTQyZjE4MCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29yLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY3Vyc29yLmMKQEAgLTE1Myw4ICsxNTMsOCBAQCBz dGF0aWMgaW50IHJhZGVvbl9jdXJzb3JfbW92ZV9sb2NrZWQoc3RydWN0IGRybV9jcnRjICpjcnRj LCBpbnQgeCwgaW50IHkpCiAKIAlpZiAoQVNJQ19JU19BVklWTyhyZGV2KSkgewogCQkvKiBhdml2 byBjdXJzb3IgYXJlIG9mZnNldCBpbnRvIHRoZSB0b3RhbCBzdXJmYWNlICovCi0JCXggKz0gY3J0 Yy0+eDsKLQkJeSArPSBjcnRjLT55OworCQl4ICs9IGNydGMtPmxlZ2FjeS54OworCQl5ICs9IGNy dGMtPmxlZ2FjeS55OwogCX0KIAogCWlmICh4IDwgMCkKQEAgLTE2MywxMCArMTYzLDExIEBAIHN0 YXRpYyBpbnQgcmFkZW9uX2N1cnNvcl9tb3ZlX2xvY2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCB4LCBpbnQgeSkKIAkJeW9yaWdpbiA9IG1pbigteSwgcmFkZW9uX2NydGMtPm1heF9jdXJz b3JfaGVpZ2h0IC0gMSk7CiAKIAlpZiAoIUFTSUNfSVNfQVZJVk8ocmRldikpIHsKLQkJeCArPSBj cnRjLT54OwotCQl5ICs9IGNydGMtPnk7CisJCXggKz0gY3J0Yy0+bGVnYWN5Lng7CisJCXkgKz0g Y3J0Yy0+bGVnYWN5Lnk7CiAJfQotCURSTV9ERUJVRygieCAlZCB5ICVkIGMtPnggJWQgYy0+eSAl ZFxuIiwgeCwgeSwgY3J0Yy0+eCwgY3J0Yy0+eSk7CisJRFJNX0RFQlVHKCJ4ICVkIHkgJWQgYy0+ eCAlZCBjLT55ICVkXG4iLCB4LCB5LCBjcnRjLT5sZWdhY3kueCwKKwkJICBjcnRjLT5sZWdhY3ku eSk7CiAKIAkvKiBmaXhlZCBvbiBEQ0U2IGFuZCBuZXdlciAqLwogCWlmIChBU0lDX0lTX0FWSVZP KHJkZXYpICYmICFBU0lDX0lTX0RDRTYocmRldikpIHsKQEAgLTE3NywyMCArMTc4LDIwIEBAIHN0 YXRpYyBpbnQgcmFkZW9uX2N1cnNvcl9tb3ZlX2xvY2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCB4LCBpbnQgeSkKIAkJICogYXZpdm8gY3Vyc29yIGltYWdlIGNhbid0IGVuZCBvbiAxMjgg cGl4ZWwgYm91bmRhcnkgb3IKIAkJICogZ28gcGFzdCB0aGUgZW5kIG9mIHRoZSBmcmFtZSBpZiBi b3RoIGNydGNzIGFyZSBlbmFibGVkCiAJCSAqCi0JCSAqIE5PVEU6IEl0IGlzIHNhZmUgdG8gYWNj ZXNzIGNydGMtPmVuYWJsZWQgb2Ygb3RoZXIgY3J0Y3MKKwkJICogTk9URTogSXQgaXMgc2FmZSB0 byBhY2Nlc3MgY3J0Yy0+bGVnYWN5LmVuYWJsZWQgb2Ygb3RoZXIgY3J0Y3MKIAkJICogd2l0aG91 dCBob2xkaW5nIGVpdGhlciB0aGUgbW9kZV9jb25maWcgbG9jayBvciB0aGUgb3RoZXIKIAkJICog Y3J0YydzIGxvY2sgYXMgbG9uZyBhcyB3cml0ZSBhY2Nlc3MgdG8gdGhpcyBmbGFnIF9hbHdheXNf CiAJCSAqIGdyYWJzIGFsbCBsb2Nrcy4KIAkJICovCiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0 Y19wLCAmY3J0Yy0+ZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKLQkJCWlmIChj cnRjX3AtPmVuYWJsZWQpCisJCQlpZiAoY3J0Y19wLT5sZWdhY3kuZW5hYmxlZCkKIAkJCQlpKys7 CiAJCX0KIAkJaWYgKGkgPiAxKSB7CiAJCQlpbnQgY3Vyc29yX2VuZCwgZnJhbWVfZW5kOwogCiAJ CQljdXJzb3JfZW5kID0geCArIHc7Ci0JCQlmcmFtZV9lbmQgPSBjcnRjLT54ICsgY3J0Yy0+bW9k ZS5jcnRjX2hkaXNwbGF5OworCQkJZnJhbWVfZW5kID0gY3J0Yy0+bGVnYWN5LnggKyBjcnRjLT5s ZWdhY3kubW9kZS5jcnRjX2hkaXNwbGF5OwogCQkJaWYgKGN1cnNvcl9lbmQgPj0gZnJhbWVfZW5k KSB7CiAJCQkJdyA9IHcgLSAoY3Vyc29yX2VuZCAtIGZyYW1lX2VuZCk7CiAJCQkJaWYgKCEoZnJh bWVfZW5kICYgMHg3ZikpCkBAIC0yMDYsOSArMjA3LDkgQEAgc3RhdGljIGludCByYWRlb25fY3Vy c29yX21vdmVfbG9ja2VkKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IHgsIGludCB5KQogCQl9 CiAJfQogCi0JaWYgKHggPD0gKGNydGMtPnggLSB3KSB8fCB5IDw9IChjcnRjLT55IC0gcmFkZW9u X2NydGMtPmN1cnNvcl9oZWlnaHQpIHx8Ci0JICAgIHggPj0gKGNydGMtPnggKyBjcnRjLT5tb2Rl LmhkaXNwbGF5KSB8fAotCSAgICB5ID49IChjcnRjLT55ICsgY3J0Yy0+bW9kZS52ZGlzcGxheSkp CisJaWYgKHggPD0gKGNydGMtPmxlZ2FjeS54IC0gdykgfHwgeSA8PSAoY3J0Yy0+bGVnYWN5Lnkg LSByYWRlb25fY3J0Yy0+Y3Vyc29yX2hlaWdodCkgfHwKKwkgICAgeCA+PSAoY3J0Yy0+bGVnYWN5 LnggKyBjcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheSkgfHwKKwkgICAgeSA+PSAoY3J0Yy0+bGVn YWN5LnkgKyBjcnRjLT5sZWdhY3kubW9kZS52ZGlzcGxheSkpCiAJCWdvdG8gb3V0X29mX2JvdW5k czsKIAogCXggKz0geG9yaWdpbjsKQEAgLTIyNSwxMCArMjI2LDEwIEBAIHN0YXRpYyBpbnQgcmFk ZW9uX2N1cnNvcl9tb3ZlX2xvY2tlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQg eSkKIAkJV1JFRzMyKEFWSVZPX0QxQ1VSX1NJWkUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQs CiAJCSAgICAgICAoKHcgLSAxKSA8PCAxNikgfCAocmFkZW9uX2NydGMtPmN1cnNvcl9oZWlnaHQg LSAxKSk7CiAJfSBlbHNlIHsKLQkJeCAtPSBjcnRjLT54OwotCQl5IC09IGNydGMtPnk7CisJCXgg LT0gY3J0Yy0+bGVnYWN5Lng7CisJCXkgLT0gY3J0Yy0+bGVnYWN5Lnk7CiAKLQkJaWYgKGNydGMt Pm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCisJCWlmIChjcnRjLT5sZWdhY3ku bW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKIAkJCXkgKj0gMjsKIAogCQlXUkVH MzIoUkFERU9OX0NVUl9IT1JaX1ZFUlRfT0ZGICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCmluZGV4IDU1ZjgwNDI0ZjUxNC4u YWFjM2ExY2YzNjczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCkBA IC0yMjMsNyArMjIzLDcgQEAgdm9pZCByYWRlb25fY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKLQlpZiAoIWNydGMtPmVu YWJsZWQpCisJaWYgKCFjcnRjLT5sZWdhY3kuZW5hYmxlZCkKIAkJcmV0dXJuOwogCiAJaWYgKEFT SUNfSVNfRENFNShyZGV2KSkKQEAgLTU1MywxMSArNTUzLDExIEBAIHN0YXRpYyBpbnQgcmFkZW9u X2NydGNfcGFnZV9mbGlwX3RhcmdldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJYmFzZSAm PSB+MHg3ZmY7CiAJCQl9IGVsc2UgewogCQkJCWludCBieXRlc2hpZnQgPSBmYi0+Zm9ybWF0LT5j cHBbMF0gKiA4ID4+IDQ7Ci0JCQkJaW50IHRpbGVfYWRkciA9ICgoKGNydGMtPnkgPj4gMykgKiBw aXRjaF9waXhlbHMgKyAgY3J0Yy0+eCkgPj4gKDggLSBieXRlc2hpZnQpKSA8PCAxMTsKLQkJCQli YXNlICs9IHRpbGVfYWRkciArICgoY3J0Yy0+eCA8PCBieXRlc2hpZnQpICUgMjU2KSArICgoY3J0 Yy0+eSAlIDgpIDw8IDgpOworCQkJCWludCB0aWxlX2FkZHIgPSAoKChjcnRjLT5sZWdhY3kueSA+ PiAzKSAqIHBpdGNoX3BpeGVscyArICBjcnRjLT5sZWdhY3kueCkgPj4gKDggLSBieXRlc2hpZnQp KSA8PCAxMTsKKwkJCQliYXNlICs9IHRpbGVfYWRkciArICgoY3J0Yy0+bGVnYWN5LnggPDwgYnl0 ZXNoaWZ0KSAlIDI1NikgKyAoKGNydGMtPmxlZ2FjeS55ICUgOCkgPDwgOCk7CiAJCQl9CiAJCX0g ZWxzZSB7Ci0JCQlpbnQgb2Zmc2V0ID0gY3J0Yy0+eSAqIHBpdGNoX3BpeGVscyArIGNydGMtPng7 CisJCQlpbnQgb2Zmc2V0ID0gY3J0Yy0+bGVnYWN5LnkgKiBwaXRjaF9waXhlbHMgKyBjcnRjLT5s ZWdhY3kueDsKIAkJCXN3aXRjaCAoZmItPmZvcm1hdC0+Y3BwWzBdICogOCkgewogCQkJY2FzZSA4 OgogCQkJZGVmYXVsdDoKQEAgLTY0MSw3ICs2NDEsNyBAQCByYWRlb25fY3J0Y19zZXRfY29uZmln KHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKIAlyZXQgPSBkcm1fY3J0Y19oZWxwZXJfc2V0X2Nv bmZpZyhzZXQsIGN0eCk7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICZkZXYtPm1vZGVf Y29uZmlnLmNydGNfbGlzdCwgaGVhZCkKLQkJaWYgKGNydGMtPmVuYWJsZWQpCisJCWlmIChjcnRj LT5sZWdhY3kuZW5hYmxlZCkKIAkJCWFjdGl2ZSA9IHRydWU7CiAKIAlwbV9ydW50aW1lX21hcmtf bGFzdF9idXN5KGRldi0+ZGV2KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGJvb2wgcmFkZW9uX2Ny dGNfc2NhbGluZ19tb2RlX2ZpeHVwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCW1lbWNweSgm cmFkZW9uX2NydGMtPm5hdGl2ZV9tb2RlLAogCQkJICAgICAgICZyYWRlb25fZW5jb2Rlci0+bmF0 aXZlX21vZGUsCiAJCQkJc2l6ZW9mKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlKSk7Ci0JCQlzcmNf diA9IGNydGMtPm1vZGUudmRpc3BsYXk7CisJCQlzcmNfdiA9IGNydGMtPmxlZ2FjeS5tb2RlLnZk aXNwbGF5OwogCQkJZHN0X3YgPSByYWRlb25fY3J0Yy0+bmF0aXZlX21vZGUudmRpc3BsYXk7Ci0J CQlzcmNfaCA9IGNydGMtPm1vZGUuaGRpc3BsYXk7CisJCQlzcmNfaCA9IGNydGMtPmxlZ2FjeS5t b2RlLmhkaXNwbGF5OwogCQkJZHN0X2ggPSByYWRlb25fY3J0Yy0+bmF0aXZlX21vZGUuaGRpc3Bs YXk7CiAKIAkJCS8qIGZpeCB1cCBmb3Igb3ZlcnNjYW4gb24gaGRtaSAqLwpAQCAtMTczMywxMCAr MTczMywxMCBAQCBib29sIHJhZGVvbl9jcnRjX3NjYWxpbmdfbW9kZV9maXh1cChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJCQkJZWxzZQogCQkJCQlyYWRlb25fY3J0Yy0+dl9ib3JkZXIgPSAobW9k ZS0+dmRpc3BsYXkgPj4gNSkgKyAxNjsKIAkJCQlyYWRlb25fY3J0Yy0+cm14X3R5cGUgPSBSTVhf RlVMTDsKLQkJCQlzcmNfdiA9IGNydGMtPm1vZGUudmRpc3BsYXk7Ci0JCQkJZHN0X3YgPSBjcnRj LT5tb2RlLnZkaXNwbGF5IC0gKHJhZGVvbl9jcnRjLT52X2JvcmRlciAqIDIpOwotCQkJCXNyY19o ID0gY3J0Yy0+bW9kZS5oZGlzcGxheTsKLQkJCQlkc3RfaCA9IGNydGMtPm1vZGUuaGRpc3BsYXkg LSAocmFkZW9uX2NydGMtPmhfYm9yZGVyICogMik7CisJCQkJc3JjX3YgPSBjcnRjLT5sZWdhY3ku bW9kZS52ZGlzcGxheTsKKwkJCQlkc3RfdiA9IGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5IC0g KHJhZGVvbl9jcnRjLT52X2JvcmRlciAqIDIpOworCQkJCXNyY19oID0gY3J0Yy0+bGVnYWN5Lm1v ZGUuaGRpc3BsYXk7CisJCQkJZHN0X2ggPSBjcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheSAtIChy YWRlb25fY3J0Yy0+aF9ib3JkZXIgKiAyKTsKIAkJCX0KIAkJCWZpcnN0ID0gZmFsc2U7CiAJCX0g ZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCmluZGV4IDkwMGIwNWQ4YWE1Yy4u ZmIxMjQ3MTc5ZTc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k cnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwpAQCAtNDcyLDcg KzQ3Miw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX3Btb3BzX3J1bnRpbWVfaWRsZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCiAJfQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZHJtX2Rldi0+bW9k ZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7Ci0JCWlmIChjcnRjLT5lbmFibGVkKSB7CisJCWlm IChjcnRjLT5sZWdhY3kuZW5hYmxlZCkgewogCQkJRFJNX0RFQlVHX0RSSVZFUigiZmFpbGluZyB0 byBwb3dlciBvZmYgLSBjcnRjIGFjdGl2ZVxuIik7CiAJCQlyZXR1cm4gLUVCVVNZOwogCQl9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9sZWdhY3lfY3J0Yy5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2NydGMuYwppbmRleCA2YjM3YjMw MWVhMWYuLjIwZjA3NzVmNjNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fbGVnYWN5X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9s ZWdhY3lfY3J0Yy5jCkBAIC0xMDgwLDcgKzEwODAsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fY3J0 Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCSogUmVlbmFibGUgdGhlIENSVENzIHRo YXQgc2hvdWxkIGJlIHJ1bm5pbmcuCiAJKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGNpLCAm ZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKLQkJaWYgKGNydGNpLT5lbmFibGVk KQorCQlpZiAoY3J0Y2ktPmxlZ2FjeS5lbmFibGVkKQogCQkJcmFkZW9uX2NydGNfZHBtcyhjcnRj aSwgRFJNX01PREVfRFBNU19PTik7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29kZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9sZWdhY3lfZW5jb2RlcnMuYwppbmRleCBkNmFhMWEzMDEyYTguLjBiNGY2Yzc2NmUz OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29k ZXJzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29kZXJz LmMKQEAgLTE1MzgsNyArMTUzOCw3IEBAIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVz IHJhZGVvbl9sZWdhY3lfdHZfZGFjX2RldGVjdChzdHJ1Y3QgZHJtX2VuY29kZXIKIAkvKiBmaW5k IG91dCBpZiBjcnRjMiBpcyBpbiB1c2Ugb3IgaWYgdGhpcyBlbmNvZGVyIGlzIHVzaW5nIGl0ICov CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3Qs IGhlYWQpIHsKIAkJc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9j cnRjKGNydGMpOwotCQlpZiAoKHJhZGVvbl9jcnRjLT5jcnRjX2lkID09IDEpICYmIGNydGMtPmVu YWJsZWQpIHsKKwkJaWYgKChyYWRlb25fY3J0Yy0+Y3J0Y19pZCA9PSAxKSAmJiBjcnRjLT5sZWdh Y3kuZW5hYmxlZCkgewogCQkJaWYgKGVuY29kZXItPmNydGMgIT0gY3J0YykgewogCQkJCXJldHVy biBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9wbS5jCmluZGV4IGI0ZmI3ZTcwMzIwYi4uZjJmNDgxMDc0YjUwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3BtLmMKQEAgLTE3ODMsNyArMTc4Myw3IEBAIHN0YXRpYyB2b2lkIHJhZGVv bl9wbV9jb21wdXRlX2Nsb2Nrc19kcG0oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCWxp c3RfZm9yX2VhY2hfZW50cnkoY3J0YywKIAkJCQkgICAgJmRkZXYtPm1vZGVfY29uZmlnLmNydGNf bGlzdCwgaGVhZCkgewogCQkJcmFkZW9uX2NydGMgPSB0b19yYWRlb25fY3J0YyhjcnRjKTsKLQkJ CWlmIChjcnRjLT5lbmFibGVkKSB7CisJCQlpZiAoY3J0Yy0+bGVnYWN5LmVuYWJsZWQpIHsKIAkJ CQlyZGV2LT5wbS5kcG0ubmV3X2FjdGl2ZV9jcnRjcyB8PSAoMSA8PCByYWRlb25fY3J0Yy0+Y3J0 Y19pZCk7CiAJCQkJcmRldi0+cG0uZHBtLm5ld19hY3RpdmVfY3J0Y19jb3VudCsrOwogCQkJCWlm ICghcmFkZW9uX2NydGMtPmNvbm5lY3RvcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcnM2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYwppbmRleCAzMzVk ZjgyMmIzMzAuLmI4ZjFlMzMxYWU0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yczYwMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYwpAQCAtOTA4LDEw ICs5MDgsMTAgQEAgdm9pZCByczYwMF9iYW5kd2lkdGhfdXBkYXRlKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KQogCiAJcmFkZW9uX3VwZGF0ZV9kaXNwbGF5X3ByaW9yaXR5KHJkZXYpOwogCi0J aWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5lbmFibGVkKQotCQltb2RlMCA9ICZy ZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UubW9kZTsKLQlpZiAocmRldi0+bW9kZV9pbmZv LmNydGNzWzFdLT5iYXNlLmVuYWJsZWQpCi0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRj c1sxXS0+YmFzZS5tb2RlOworCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UubGVn YWN5LmVuYWJsZWQpCisJCW1vZGUwID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5s ZWdhY3kubW9kZTsKKwlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNlLmxlZ2FjeS5l bmFibGVkKQorCQltb2RlMSA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UubGVnYWN5 Lm1vZGU7CiAKIAlyczY5MF9saW5lX2J1ZmZlcl9hZGp1c3QocmRldiwgbW9kZTAsIG1vZGUxKTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczY5MC5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yczY5MC5jCmluZGV4IDAxNmViNDk5MjgwMy4uMWQ5ZDgxNjNjMjA2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjkwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yczY5MC5jCkBAIC0yNzQsMTQgKzI3NCwxNCBAQCBzdGF0aWMgdm9pZCBy czY5MF9jcnRjX2JhbmR3aWR0aF9jb21wdXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAog CQkJCQkgc3RydWN0IHJzNjkwX3dhdGVybWFyayAqd20sCiAJCQkJCSBib29sIGxvdykKIHsKLQlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjLT5iYXNlLm1vZGU7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+YmFzZS5sZWdhY3kubW9kZTsKIAlmaXhl ZDIwXzEyIGEsIGIsIGM7CiAJZml4ZWQyMF8xMiBwY2xrLCByZXF1ZXN0X2ZpZm9fZGVwdGgsIHRv bGVyYWJsZV9sYXRlbmN5LCBlc3RpbWF0ZWRfd2lkdGg7CiAJZml4ZWQyMF8xMiBjb25zdW1wdGlv bl90aW1lLCBsaW5lX3RpbWUsIGNodW5rX3RpbWUsIHJlYWRfZGVsYXlfbGF0ZW5jeTsKIAlmaXhl ZDIwXzEyIHNjbGssIGNvcmVfYmFuZHdpZHRoLCBtYXhfYmFuZHdpZHRoOwogCXUzMiBzZWxlY3Rl ZF9zY2xrOwogCi0JaWYgKCFjcnRjLT5iYXNlLmVuYWJsZWQpIHsKKwlpZiAoIWNydGMtPmJhc2Uu bGVnYWN5LmVuYWJsZWQpIHsKIAkJLyogRklYTUU6IHdvdWxkbid0IGl0IGJldHRlciB0byBzZXQg cHJpb3JpdHkgbWFyayB0byBtYXhpbXVtICovCiAJCXdtLT5sYl9yZXF1ZXN0X2ZpZm9fZGVwdGgg PSA0OwogCQlyZXR1cm47CkBAIC0zNDgsNyArMzQ4LDcgQEAgc3RhdGljIHZvaWQgcnM2OTBfY3J0 Y19iYW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkgKiAgTGlu ZVRpbWUgPSB0b3RhbCBudW1iZXIgb2YgaG9yaXpvbnRhbCBwaXhlbHMKIAkgKiAgcGNsayA9IHBp eGVsIGNsb2NrIHBlcmlvZChucykKIAkgKi8KLQlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+ YmFzZS5tb2RlLmNydGNfaHRvdGFsKTsKKwlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFz ZS5sZWdhY3kubW9kZS5jcnRjX2h0b3RhbCk7CiAJbGluZV90aW1lLmZ1bGwgPSBkZml4ZWRfbXVs KGEsIHBjbGspOwogCiAJLyogRGV0ZXJtaW5lIGFjdGl2ZSB0aW1lCkBAIC0zNTYsOCArMzU2LDgg QEAgc3RhdGljIHZvaWQgcnM2OTBfY3J0Y19iYW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKIAkgKiAgaGFjdGl2ZSA9IHRvdGFsIG51bWJlciBvZiBob3Jpem9udGFs IGFjdGl2ZSBwaXhlbHMKIAkgKiAgaHRvdGFsID0gdG90YWwgbnVtYmVyIG9mIGhvcml6b250YWwg cGl4ZWxzCiAJICovCi0JYS5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS5jcnRj X2h0b3RhbCk7Ci0JYi5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubW9kZS5jcnRjX2hk aXNwbGF5KTsKKwlhLmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5sZWdhY3kubW9kZS5j cnRjX2h0b3RhbCk7CisJYi5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubGVnYWN5Lm1v ZGUuY3J0Y19oZGlzcGxheSk7CiAJd20tPmFjdGl2ZV90aW1lLmZ1bGwgPSBkZml4ZWRfbXVsKGxp bmVfdGltZSwgYik7CiAJd20tPmFjdGl2ZV90aW1lLmZ1bGwgPSBkZml4ZWRfZGl2KHdtLT5hY3Rp dmVfdGltZSwgYSk7CiAKQEAgLTQ0MCwxNCArNDQwLDE0IEBAIHN0YXRpYyB2b2lkIHJzNjkwX2Ny dGNfYmFuZHdpZHRoX2NvbXB1dGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJICogIHdp ZHRoID0gdmlld3BvcnQgd2lkdGggaW4gcGl4ZWxzCiAJICovCiAJYS5mdWxsID0gZGZpeGVkX2Nv bnN0KDE2KTsKLQl3bS0+cHJpb3JpdHlfbWFya19tYXguZnVsbCA9IGRmaXhlZF9jb25zdChjcnRj LT5iYXNlLm1vZGUuY3J0Y19oZGlzcGxheSk7CisJd20tPnByaW9yaXR5X21hcmtfbWF4LmZ1bGwg PSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5sZWdhY3kubW9kZS5jcnRjX2hkaXNwbGF5KTsKIAl3 bS0+cHJpb3JpdHlfbWFya19tYXguZnVsbCA9IGRmaXhlZF9kaXYod20tPnByaW9yaXR5X21hcmtf bWF4LCBhKTsKIAl3bS0+cHJpb3JpdHlfbWFya19tYXguZnVsbCA9IGRmaXhlZF9jZWlsKHdtLT5w cmlvcml0eV9tYXJrX21heCk7CiAKIAkvKiBEZXRlcm1pbmUgZXN0aW1hdGVkIHdpZHRoICovCiAJ ZXN0aW1hdGVkX3dpZHRoLmZ1bGwgPSB0b2xlcmFibGVfbGF0ZW5jeS5mdWxsIC0gd20tPndvcnN0 X2Nhc2VfbGF0ZW5jeS5mdWxsOwogCWVzdGltYXRlZF93aWR0aC5mdWxsID0gZGZpeGVkX2Rpdihl c3RpbWF0ZWRfd2lkdGgsIGNvbnN1bXB0aW9uX3RpbWUpOwotCWlmIChkZml4ZWRfdHJ1bmMoZXN0 aW1hdGVkX3dpZHRoKSA+IGNydGMtPmJhc2UubW9kZS5jcnRjX2hkaXNwbGF5KSB7CisJaWYgKGRm aXhlZF90cnVuYyhlc3RpbWF0ZWRfd2lkdGgpID4gY3J0Yy0+YmFzZS5sZWdhY3kubW9kZS5jcnRj X2hkaXNwbGF5KSB7CiAJCXdtLT5wcmlvcml0eV9tYXJrLmZ1bGwgPSBkZml4ZWRfY29uc3QoMTAp OwogCX0gZWxzZSB7CiAJCWEuZnVsbCA9IGRmaXhlZF9jb25zdCgxNik7CkBAIC01OTYsMTAgKzU5 NiwxMCBAQCB2b2lkIHJzNjkwX2JhbmR3aWR0aF91cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCiAKIAlyYWRlb25fdXBkYXRlX2Rpc3BsYXlfcHJpb3JpdHkocmRldik7CiAKLQlpZiAo cmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLmVuYWJsZWQpCi0JCW1vZGUwID0gJnJkZXYt Pm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5tb2RlOwotCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0 Y3NbMV0tPmJhc2UuZW5hYmxlZCkKLQkJbW9kZTEgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzFd LT5iYXNlLm1vZGU7CisJaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5sZWdhY3ku ZW5hYmxlZCkKKwkJbW9kZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLmxlZ2Fj eS5tb2RlOworCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UubGVnYWN5LmVuYWJs ZWQpCisJCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5sZWdhY3kubW9k ZTsKIAkvKgogCSAqIFNldCBkaXNwbGF5MC8xIHByaW9yaXR5IHVwIGluIHRoZSBtZW1vcnkgY29u dHJvbGxlciBmb3IKIAkgKiBtb2RlcyBpZiB0aGUgdXNlciBzcGVjaWZpZXMgSElHSCBmb3IgZGlz cGxheXByaW9yaXR5CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNzgwX2Rw bS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczc4MF9kcG0uYwppbmRleCAyNGFkMTI0MDkx MjAuLmZkOGIwMDE2NDEwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczc4 MF9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNzgwX2RwbS5jCkBAIC02MCwx MSArNjAsMTEgQEAgc3RhdGljIHZvaWQgcnM3ODBfZ2V0X3BtX21vZGVfcGFyYW1ldGVycyhzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAogCWZvciAoaSA9IDA7IGkgPCByZGV2LT5udW1fY3J0 YzsgaSsrKSB7CiAJCWNydGMgPSAoc3RydWN0IGRybV9jcnRjICopbWluZm8tPmNydGNzW2ldOwot CQlpZiAoY3J0YyAmJiBjcnRjLT5lbmFibGVkKSB7CisJCWlmIChjcnRjICYmIGNydGMtPmxlZ2Fj eS5lbmFibGVkKSB7CiAJCQlyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9jcnRjKGNydGMpOwogCQkJ cGktPmNydGNfaWQgPSByYWRlb25fY3J0Yy0+Y3J0Y19pZDsKLQkJCWlmIChjcnRjLT5tb2RlLmh0 b3RhbCAmJiBjcnRjLT5tb2RlLnZ0b3RhbCkKLQkJCQlwaS0+cmVmcmVzaF9yYXRlID0gZHJtX21v ZGVfdnJlZnJlc2goJmNydGMtPm1vZGUpOworCQkJaWYgKGNydGMtPmxlZ2FjeS5tb2RlLmh0b3Rh bCAmJiBjcnRjLT5sZWdhY3kubW9kZS52dG90YWwpCisJCQkJcGktPnJlZnJlc2hfcmF0ZSA9IGRy bV9tb2RlX3ZyZWZyZXNoKCZjcnRjLT5sZWdhY3kubW9kZSk7CiAJCQlicmVhazsKIAkJfQogCX0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcnY1MTUuYwppbmRleCAxYjRkZmI2NDU1ODUuLjQ4NTM2NTA4MmYwYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjUxNS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcnY1MTUuYwpAQCAtOTI1LDE0ICs5MjUsMTQgQEAgc3RhdGljIHZvaWQgcnY1 MTVfY3J0Y19iYW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkJ CQkJIHN0cnVjdCBydjUxNV93YXRlcm1hcmsgKndtLAogCQkJCQkgYm9vbCBsb3cpCiB7Ci0Jc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+YmFzZS5tb2RlOworCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMtPmJhc2UubGVnYWN5Lm1vZGU7CiAJZml4ZWQy MF8xMiBhLCBiLCBjOwogCWZpeGVkMjBfMTIgcGNsaywgcmVxdWVzdF9maWZvX2RlcHRoLCB0b2xl cmFibGVfbGF0ZW5jeSwgZXN0aW1hdGVkX3dpZHRoOwogCWZpeGVkMjBfMTIgY29uc3VtcHRpb25f dGltZSwgbGluZV90aW1lLCBjaHVua190aW1lLCByZWFkX2RlbGF5X2xhdGVuY3k7CiAJZml4ZWQy MF8xMiBzY2xrOwogCXUzMiBzZWxlY3RlZF9zY2xrOwogCi0JaWYgKCFjcnRjLT5iYXNlLmVuYWJs ZWQpIHsKKwlpZiAoIWNydGMtPmJhc2UubGVnYWN5LmVuYWJsZWQpIHsKIAkJLyogRklYTUU6IHdv dWxkbid0IGl0IGJldHRlciB0byBzZXQgcHJpb3JpdHkgbWFyayB0byBtYXhpbXVtICovCiAJCXdt LT5sYl9yZXF1ZXN0X2ZpZm9fZGVwdGggPSA0OwogCQlyZXR1cm47CkBAIC05OTYsNyArOTk2LDcg QEAgc3RhdGljIHZvaWQgcnY1MTVfY3J0Y19iYW5kd2lkdGhfY29tcHV0ZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKIAkgKiAgTGluZVRpbWUgPSB0b3RhbCBudW1iZXIgb2YgaG9yaXpvbnRh bCBwaXhlbHMKIAkgKiAgcGNsayA9IHBpeGVsIGNsb2NrIHBlcmlvZChucykKIAkgKi8KLQlhLmZ1 bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5tb2RlLmNydGNfaHRvdGFsKTsKKwlhLmZ1bGwg PSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5sZWdhY3kubW9kZS5jcnRjX2h0b3RhbCk7CiAJbGlu ZV90aW1lLmZ1bGwgPSBkZml4ZWRfbXVsKGEsIHBjbGspOwogCiAJLyogRGV0ZXJtaW5lIGFjdGl2 ZSB0aW1lCkBAIC0xMDA0LDggKzEwMDQsOCBAQCBzdGF0aWMgdm9pZCBydjUxNV9jcnRjX2JhbmR3 aWR0aF9jb21wdXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCSAqICBoYWN0aXZlID0g dG90YWwgbnVtYmVyIG9mIGhvcml6b250YWwgYWN0aXZlIHBpeGVscwogCSAqICBodG90YWwgPSB0 b3RhbCBudW1iZXIgb2YgaG9yaXpvbnRhbCBwaXhlbHMKIAkgKi8KLQlhLmZ1bGwgPSBkZml4ZWRf Y29uc3QoY3J0Yy0+YmFzZS5tb2RlLmNydGNfaHRvdGFsKTsKLQliLmZ1bGwgPSBkZml4ZWRfY29u c3QoY3J0Yy0+YmFzZS5tb2RlLmNydGNfaGRpc3BsYXkpOworCWEuZnVsbCA9IGRmaXhlZF9jb25z dChjcnRjLT5iYXNlLmxlZ2FjeS5tb2RlLmNydGNfaHRvdGFsKTsKKwliLmZ1bGwgPSBkZml4ZWRf Y29uc3QoY3J0Yy0+YmFzZS5sZWdhY3kubW9kZS5jcnRjX2hkaXNwbGF5KTsKIAl3bS0+YWN0aXZl X3RpbWUuZnVsbCA9IGRmaXhlZF9tdWwobGluZV90aW1lLCBiKTsKIAl3bS0+YWN0aXZlX3RpbWUu ZnVsbCA9IGRmaXhlZF9kaXYod20tPmFjdGl2ZV90aW1lLCBhKTsKIApAQCAtMTA1OSwxNCArMTA1 OSwxNCBAQCBzdGF0aWMgdm9pZCBydjUxNV9jcnRjX2JhbmR3aWR0aF9jb21wdXRlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAogCSAqICB3aWR0aCA9IHZpZXdwb3J0IHdpZHRoIGluIHBpeGVs cwogCSAqLwogCWEuZnVsbCA9IGRmaXhlZF9jb25zdCgxNik7Ci0Jd20tPnByaW9yaXR5X21hcmtf bWF4LmZ1bGwgPSBkZml4ZWRfY29uc3QoY3J0Yy0+YmFzZS5tb2RlLmNydGNfaGRpc3BsYXkpOwor CXdtLT5wcmlvcml0eV9tYXJrX21heC5mdWxsID0gZGZpeGVkX2NvbnN0KGNydGMtPmJhc2UubGVn YWN5Lm1vZGUuY3J0Y19oZGlzcGxheSk7CiAJd20tPnByaW9yaXR5X21hcmtfbWF4LmZ1bGwgPSBk Zml4ZWRfZGl2KHdtLT5wcmlvcml0eV9tYXJrX21heCwgYSk7CiAJd20tPnByaW9yaXR5X21hcmtf bWF4LmZ1bGwgPSBkZml4ZWRfY2VpbCh3bS0+cHJpb3JpdHlfbWFya19tYXgpOwogCiAJLyogRGV0 ZXJtaW5lIGVzdGltYXRlZCB3aWR0aCAqLwogCWVzdGltYXRlZF93aWR0aC5mdWxsID0gdG9sZXJh YmxlX2xhdGVuY3kuZnVsbCAtIHdtLT53b3JzdF9jYXNlX2xhdGVuY3kuZnVsbDsKIAllc3RpbWF0 ZWRfd2lkdGguZnVsbCA9IGRmaXhlZF9kaXYoZXN0aW1hdGVkX3dpZHRoLCBjb25zdW1wdGlvbl90 aW1lKTsKLQlpZiAoZGZpeGVkX3RydW5jKGVzdGltYXRlZF93aWR0aCkgPiBjcnRjLT5iYXNlLm1v ZGUuY3J0Y19oZGlzcGxheSkgeworCWlmIChkZml4ZWRfdHJ1bmMoZXN0aW1hdGVkX3dpZHRoKSA+ IGNydGMtPmJhc2UubGVnYWN5Lm1vZGUuY3J0Y19oZGlzcGxheSkgewogCQl3bS0+cHJpb3JpdHlf bWFyay5mdWxsID0gd20tPnByaW9yaXR5X21hcmtfbWF4LmZ1bGw7CiAJfSBlbHNlIHsKIAkJYS5m dWxsID0gZGZpeGVkX2NvbnN0KDE2KTsKQEAgLTEyMTAsMTAgKzEyMTAsMTAgQEAgdm9pZCBydjUx NV9iYW5kd2lkdGhfYXZpdm9fdXBkYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXUz MiBkMW1vZGVfcHJpb3JpdHlfYV9jbnQsIGQxbW9kZV9wcmlvcml0eV9iX2NudDsKIAl1MzIgZDJt b2RlX3ByaW9yaXR5X2FfY250LCBkMm1vZGVfcHJpb3JpdHlfYl9jbnQ7CiAKLQlpZiAocmRldi0+ bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLmVuYWJsZWQpCi0JCW1vZGUwID0gJnJkZXYtPm1vZGVf aW5mby5jcnRjc1swXS0+YmFzZS5tb2RlOwotCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0t PmJhc2UuZW5hYmxlZCkKLQkJbW9kZTEgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNl Lm1vZGU7CisJaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5sZWdhY3kuZW5hYmxl ZCkKKwkJbW9kZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLT5iYXNlLmxlZ2FjeS5tb2Rl OworCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMV0tPmJhc2UubGVnYWN5LmVuYWJsZWQpCisJ CW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5sZWdhY3kubW9kZTsKIAly czY5MF9saW5lX2J1ZmZlcl9hZGp1c3QocmRldiwgbW9kZTAsIG1vZGUxKTsKIAogCXJ2NTE1X2Ny dGNfYmFuZHdpZHRoX2NvbXB1dGUocmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzWzBdLCAmd20w X2hpZ2gsIGZhbHNlKTsKQEAgLTEyNTIsMTAgKzEyNTIsMTAgQEAgdm9pZCBydjUxNV9iYW5kd2lk dGhfdXBkYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCiAJcmFkZW9uX3VwZGF0ZV9k aXNwbGF5X3ByaW9yaXR5KHJkZXYpOwogCi0JaWYgKHJkZXYtPm1vZGVfaW5mby5jcnRjc1swXS0+ YmFzZS5lbmFibGVkKQotCQltb2RlMCA9ICZyZGV2LT5tb2RlX2luZm8uY3J0Y3NbMF0tPmJhc2Uu bW9kZTsKLQlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzWzFdLT5iYXNlLmVuYWJsZWQpCi0JCW1v ZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1sxXS0+YmFzZS5tb2RlOworCWlmIChyZGV2LT5t b2RlX2luZm8uY3J0Y3NbMF0tPmJhc2UubGVnYWN5LmVuYWJsZWQpCisJCW1vZGUwID0gJnJkZXYt Pm1vZGVfaW5mby5jcnRjc1swXS0+YmFzZS5sZWdhY3kubW9kZTsKKwlpZiAocmRldi0+bW9kZV9p bmZvLmNydGNzWzFdLT5iYXNlLmxlZ2FjeS5lbmFibGVkKQorCQltb2RlMSA9ICZyZGV2LT5tb2Rl X2luZm8uY3J0Y3NbMV0tPmJhc2UubGVnYWN5Lm1vZGU7CiAJLyoKIAkgKiBTZXQgZGlzcGxheTAv MSBwcmlvcml0eSB1cCBpbiB0aGUgbWVtb3J5IGNvbnRyb2xsZXIgZm9yCiAJICogbW9kZXMgaWYg dGhlIHVzZXIgc3BlY2lmaWVzIEhJR0ggZm9yIGRpc3BsYXlwcmlvcml0eQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5j CmluZGV4IDZjOTU1NzVjZTEwOS4uMmY1MjllODgxNTE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3NpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCkBAIC0x OTY0LDcgKzE5NjQsNyBAQCBzdGF0aWMgdTMyIGRjZTZfbGluZV9idWZmZXJfYWRqdXN0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCSAqIG9mIGNydGNzLiAgSWRlYWxseSBmb3IgbXVsdGlw bGUgbGFyZ2UgZGlzcGxheXMgd2UnZCBhc3NpZ24gdGhlbSB0bwogCSAqIG5vbi1saW5rZWQgY3J0 Y3MgZm9yIG1heGltdW0gbGluZSBidWZmZXIgYWxsb2NhdGlvbi4KIAkgKi8KLQlpZiAocmFkZW9u X2NydGMtPmJhc2UuZW5hYmxlZCAmJiBtb2RlKSB7CisJaWYgKHJhZGVvbl9jcnRjLT5iYXNlLmxl Z2FjeS5lbmFibGVkICYmIG1vZGUpIHsKIAkJaWYgKG90aGVyX21vZGUpIHsKIAkJCXRtcCA9IDA7 IC8qIDEvMiAqLwogCQkJYnVmZmVyX2FsbG9jID0gMTsKQEAgLTE5ODksNyArMTk4OSw3IEBAIHN0 YXRpYyB1MzIgZGNlNl9saW5lX2J1ZmZlcl9hZGp1c3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJCXVkZWxheSgxKTsKIAl9CiAKLQlpZiAocmFkZW9uX2NydGMtPmJhc2UuZW5hYmxlZCAm JiBtb2RlKSB7CisJaWYgKHJhZGVvbl9jcnRjLT5iYXNlLmxlZ2FjeS5lbmFibGVkICYmIG1vZGUp IHsKIAkJc3dpdGNoICh0bXApIHsKIAkJY2FzZSAwOgogCQlkZWZhdWx0OgpAQCAtMjI3NSw3ICsy Mjc1LDcgQEAgc3RhdGljIHZvaWQgZGNlNl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsCiAJCQkJCSBzdHJ1Y3QgcmFkZW9uX2NydGMgKnJhZGVvbl9jcnRjLAog CQkJCQkgdTMyIGxiX3NpemUsIHUzMiBudW1faGVhZHMpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUgPSAmcmFkZW9uX2NydGMtPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSA9ICZyYWRlb25fY3J0Yy0+YmFzZS5sZWdhY3kubW9kZTsKIAlzdHJ1Y3Qg ZGNlNl93bV9wYXJhbXMgd21fbG93LCB3bV9oaWdoOwogCXUzMiBkcmFtX2NoYW5uZWxzOwogCXUz MiBhY3RpdmVfdGltZTsKQEAgLTIyODcsNyArMjI4Nyw3IEBAIHN0YXRpYyB2b2lkIGRjZTZfcHJv Z3JhbV93YXRlcm1hcmtzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCXUzMiB0bXAsIGFy Yl9jb250cm9sMzsKIAlmaXhlZDIwXzEyIGEsIGIsIGM7CiAKLQlpZiAocmFkZW9uX2NydGMtPmJh c2UuZW5hYmxlZCAmJiBudW1faGVhZHMgJiYgbW9kZSkgeworCWlmIChyYWRlb25fY3J0Yy0+YmFz ZS5sZWdhY3kuZW5hYmxlZCAmJiBudW1faGVhZHMgJiYgbW9kZSkgewogCQlhY3RpdmVfdGltZSA9 ICh1MzIpIGRpdl91NjQoKHU2NCltb2RlLT5jcnRjX2hkaXNwbGF5ICogMTAwMDAwMCwKIAkJCQkJ ICAgICh1MzIpbW9kZS0+Y2xvY2spOwogCQlsaW5lX3RpbWUgPSAodTMyKSBkaXZfdTY0KCh1NjQp bW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwMDAwLApAQCAtMjQ1MCwxMiArMjQ1MCwxMiBAQCB2b2lk IGRjZTZfYmFuZHdpZHRoX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAlyYWRl b25fdXBkYXRlX2Rpc3BsYXlfcHJpb3JpdHkocmRldik7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcmRl di0+bnVtX2NydGM7IGkrKykgewotCQlpZiAocmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNl LmVuYWJsZWQpCisJCWlmIChyZGV2LT5tb2RlX2luZm8uY3J0Y3NbaV0tPmJhc2UubGVnYWN5LmVu YWJsZWQpCiAJCQludW1faGVhZHMrKzsKIAl9CiAJZm9yIChpID0gMDsgaSA8IHJkZXYtPm51bV9j cnRjOyBpICs9IDIpIHsKLQkJbW9kZTAgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLT5iYXNl Lm1vZGU7Ci0JCW1vZGUxID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1tpKzFdLT5iYXNlLm1vZGU7 CisJCW1vZGUwID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1tpXS0+YmFzZS5sZWdhY3kubW9kZTsK KwkJbW9kZTEgPSAmcmRldi0+bW9kZV9pbmZvLmNydGNzW2kgKyAxXS0+YmFzZS5sZWdhY3kubW9k ZTsKIAkJbGJfc2l6ZSA9IGRjZTZfbGluZV9idWZmZXJfYWRqdXN0KHJkZXYsIHJkZXYtPm1vZGVf aW5mby5jcnRjc1tpXSwgbW9kZTAsIG1vZGUxKTsKIAkJZGNlNl9wcm9ncmFtX3dhdGVybWFya3Mo cmRldiwgcmRldi0+bW9kZV9pbmZvLmNydGNzW2ldLCBsYl9zaXplLCBudW1faGVhZHMpOwogCQls Yl9zaXplID0gZGNlNl9saW5lX2J1ZmZlcl9hZGp1c3QocmRldiwgcmRldi0+bW9kZV9pbmZvLmNy dGNzW2krMV0sIG1vZGUxLCBtb2RlMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmVu ZXNhcy9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcmNh ci1kdS9yY2FyX2R1X2NydGMuYwppbmRleCA3ZTE3NWRiZmQ4OTIuLjNiYjJkOTBjMTAwZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcmNhci1kdS9yY2FyX2R1X2NydGMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L3JjYXJfZHVfY3J0Yy5jCkBAIC02 MDAsNyArNjAwLDcgQEAgc3RhdGljIHZvaWQgcmNhcl9kdV9jcnRjX3N0YXJ0KHN0cnVjdCByY2Fy X2R1X2NydGMgKnJjcnRjKQogCSAqIHN5bmMgbW9kZSAod2l0aCB0aGUgSFNZTkMgYW5kIFZTWU5D IHNpZ25hbHMgY29uZmlndXJlZCBhcyBvdXRwdXRzIGFuZAogCSAqIGFjdGl2ZWx5IGRyaXZlbiku CiAJICovCi0JaW50ZXJsYWNlZCA9IHJjcnRjLT5jcnRjLm1vZGUuZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRTsKKwlpbnRlcmxhY2VkID0gcmNydGMtPmNydGMubGVnYWN5Lm1vZGUuZmxh Z3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRTsKIAlyY2FyX2R1X2NydGNfZHN5c3JfY2xyX3Nl dChyY3J0YywgRFNZU1JfVFZNX01BU0sgfCBEU1lTUl9TQ01fTUFTSywKIAkJCQkgICAoaW50ZXJs YWNlZCA/IERTWVNSX1NDTV9JTlRfVklERU8gOiAwKSB8CiAJCQkJICAgRFNZU1JfVFZNX01BU1RF Uik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9zaG1vYl9k cm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvc2htb2JfZHJtX2Ny dGMuYwppbmRleCAyZTJmMzdiOWQwYTQuLmRmNDQxMWEzZTZkNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0Yy5jCkBAIC0xMTIsNyArMTEy LDcgQEAgc3RhdGljIHZvaWQgc2htb2JfZHJtX2NydGNfc2V0dXBfZ2VvbWV0cnkoc3RydWN0IHNo bW9iX2RybV9jcnRjICpzY3J0YykKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAmc2NydGMtPmJh c2U7CiAJc3RydWN0IHNobW9iX2RybV9kZXZpY2UgKnNkZXYgPSB0b19zaG1vYl9kZXZpY2UoY3J0 Yy0+ZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZzZGV2LT5j b25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSA9ICZjcnRjLT5tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl ID0gJmNydGMtPmxlZ2FjeS5tb2RlOwogCXVuc2lnbmVkIGludCBpOwogCXUzMiB2YWx1ZTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKaW5kZXggMTRmY2U1 YzMzZTAzLi5hOWFhMjgwODM2NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9kcm1fdm9wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV92b3AuYwpAQCAtOTU4LDggKzk1OCw4IEBAIHN0YXRpYyB2b2lkIHZvcF9wbGFuZV9h dG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWRzcF9pbmZvID0gKGRybV9y ZWN0X2hlaWdodChkZXN0KSAtIDEpIDw8IDE2OwogCWRzcF9pbmZvIHw9IChkcm1fcmVjdF93aWR0 aChkZXN0KSAtIDEpICYgMHhmZmZmOwogCi0JZHNwX3N0eCA9IGRlc3QtPngxICsgY3J0Yy0+bW9k ZS5odG90YWwgLSBjcnRjLT5tb2RlLmhzeW5jX3N0YXJ0OwotCWRzcF9zdHkgPSBkZXN0LT55MSAr IGNydGMtPm1vZGUudnRvdGFsIC0gY3J0Yy0+bW9kZS52c3luY19zdGFydDsKKwlkc3Bfc3R4ID0g ZGVzdC0+eDEgKyBjcnRjLT5sZWdhY3kubW9kZS5odG90YWwgLSBjcnRjLT5sZWdhY3kubW9kZS5o c3luY19zdGFydDsKKwlkc3Bfc3R5ID0gZGVzdC0+eTEgKyBjcnRjLT5sZWdhY3kubW9kZS52dG90 YWwgLSBjcnRjLT5sZWdhY3kubW9kZS52c3luY19zdGFydDsKIAlkc3Bfc3QgPSBkc3Bfc3R5IDw8 IDE2IHwgKGRzcF9zdHggJiAweGZmZmYpOwogCiAJaWYgKGZiLT5mb3JtYXQtPmNoYXJfcGVyX2Js b2NrWzBdKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jIGIvZHJp dmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jCmluZGV4IDNjNzE1NGYyZDVmMy4uMzQwNTJjNDNi ZGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9jcnRjLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3N0aS9zdGlfY3J0Yy5jCkBAIC04Myw5ICs4Myw5IEBAIHN0aV9jcnRjX21v ZGVfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUpCiAJCWdvdG8gcGl4X2Vycm9yOwogCX0KIAotCXN0aV92dGdfc2V0X2NvbmZpZyhjb21wby0+ dnRnW21peGVyLT5pZF0sICZjcnRjLT5tb2RlKTsKKwlzdGlfdnRnX3NldF9jb25maWcoY29tcG8t PnZ0Z1ttaXhlci0+aWRdLCAmY3J0Yy0+bGVnYWN5Lm1vZGUpOwogCi0JaWYgKHN0aV9taXhlcl9h Y3RpdmVfdmlkZW9fYXJlYShtaXhlciwgJmNydGMtPm1vZGUpKSB7CisJaWYgKHN0aV9taXhlcl9h Y3RpdmVfdmlkZW9fYXJlYShtaXhlciwgJmNydGMtPmxlZ2FjeS5tb2RlKSkgewogCQlEUk1fRVJS T1IoIkNhbid0IHNldCBhY3RpdmUgdmlkZW8gYXJlYVxuIik7CiAJCWdvdG8gbWl4ZXJfZXJyb3I7 CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vc3RpL3N0aV9jdXJzb3IuYwppbmRleCBjNTlmY2I0ZGNhMzIuLjk4MTIxOGQw ZGIyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfY3Vyc29yLmMKQEAgLTI3Nyw3ICsyNzcsNyBAQCBzdGF0 aWMgdm9pZCBzdGlfY3Vyc29yX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3Bs YW5lLAogCWlmICghY3J0YyB8fCAhZmIpCiAJCXJldHVybjsKIAotCW1vZGUgPSAmY3J0Yy0+bW9k ZTsKKwltb2RlID0gJmNydGMtPmxlZ2FjeS5tb2RlOwogCWRzdF94ID0gbmV3c3RhdGUtPmNydGNf eDsKIAlkc3RfeSA9IG5ld3N0YXRlLT5jcnRjX3k7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zdGkvc3RpX2dkcC5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMKaW5kZXgg ZjA0NmY1ZjdhZDI1Li5lNDMxYzc2MDU1OGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9z dGkvc3RpX2dkcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2dkcC5jCkBAIC03NTUs NyArNzU1LDcgQEAgc3RhdGljIHZvaWQgc3RpX2dkcF9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKmRybV9wbGFuZSwKIAkJY2xrX3ByZXBhcmVfZW5hYmxlKGdkcC0+Y2xrX3BpeCk7CiAJ fQogCi0JbW9kZSA9ICZjcnRjLT5tb2RlOworCW1vZGUgPSAmY3J0Yy0+bGVnYWN5Lm1vZGU7CiAJ ZHN0X3ggPSBuZXdzdGF0ZS0+Y3J0Y194OwogCWRzdF95ID0gbmV3c3RhdGUtPmNydGNfeTsKIAlk c3RfdyA9IGNsYW1wX3ZhbChuZXdzdGF0ZS0+Y3J0Y193LCAwLCBtb2RlLT5oZGlzcGxheSAtIGRz dF94KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jCmluZGV4IDU3OTNjZjJjYjg5Ny4uZjI0ZDgzMTM2 NjkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9ocXZkcC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMKQEAgLTExNTAsNyArMTE1MCw3IEBAIHN0YXRp YyB2b2lkIHN0aV9ocXZkcF9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFu ZSwKIAkJcmV0dXJuOwogCX0KIAotCW1vZGUgPSAmY3J0Yy0+bW9kZTsKKwltb2RlID0gJmNydGMt PmxlZ2FjeS5tb2RlOwogCWRzdF94ID0gbmV3c3RhdGUtPmNydGNfeDsKIAlkc3RfeSA9IG5ld3N0 YXRlLT5jcnRjX3k7CiAJZHN0X3cgPSBjbGFtcF92YWwobmV3c3RhdGUtPmNydGNfdywgMCwgbW9k ZS0+aGRpc3BsYXkgLSBkc3RfeCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0 aV90dm91dC5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfdHZvdXQuYwppbmRleCBlNzE0YzIz MjAyNmMuLmY4ZmYwNTlmNjFmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlf dHZvdXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV90dm91dC5jCkBAIC02MzMsNyAr NjMzLDcgQEAgc3RhdGljIHZvaWQgc3RpX2R2b19lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IHN0aV90dm91dCAqdHZvdXQgPSB0b19zdGlfdHZv dXQoZW5jb2Rlcik7CiAKLQl0dm91dF9wcmVmb3JtYXR0ZXJfc2V0X21hdHJpeCh0dm91dCwgJmVu Y29kZXItPmNydGMtPm1vZGUpOworCXR2b3V0X3ByZWZvcm1hdHRlcl9zZXRfbWF0cml4KHR2b3V0 LCAmZW5jb2Rlci0+Y3J0Yy0+bGVnYWN5Lm1vZGUpOwogCiAJdHZvdXRfZHZvX3N0YXJ0KHR2b3V0 LCBzdGlfY3J0Y19pc19tYWluKGVuY29kZXItPmNydGMpKTsKIH0KQEAgLTY4Myw3ICs2ODMsNyBA QCBzdGF0aWMgdm9pZCBzdGlfaGRhX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKIHsKIAlzdHJ1Y3Qgc3RpX3R2b3V0ICp0dm91dCA9IHRvX3N0aV90dm91dChlbmNv ZGVyKTsKIAotCXR2b3V0X3ByZWZvcm1hdHRlcl9zZXRfbWF0cml4KHR2b3V0LCAmZW5jb2Rlci0+ Y3J0Yy0+bW9kZSk7CisJdHZvdXRfcHJlZm9ybWF0dGVyX3NldF9tYXRyaXgodHZvdXQsICZlbmNv ZGVyLT5jcnRjLT5sZWdhY3kubW9kZSk7CiAKIAl0dm91dF9oZGFfc3RhcnQodHZvdXQsIHN0aV9j cnRjX2lzX21haW4oZW5jb2Rlci0+Y3J0YykpOwogfQpAQCAtNzM0LDcgKzczNCw3IEBAIHN0YXRp YyB2b2lkIHN0aV9oZG1pX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIHsKIAlzdHJ1Y3Qgc3RpX3R2b3V0ICp0dm91dCA9IHRvX3N0aV90dm91dChlbmNvZGVyKTsK IAotCXR2b3V0X3ByZWZvcm1hdHRlcl9zZXRfbWF0cml4KHR2b3V0LCAmZW5jb2Rlci0+Y3J0Yy0+ bW9kZSk7CisJdHZvdXRfcHJlZm9ybWF0dGVyX3NldF9tYXRyaXgodHZvdXQsICZlbmNvZGVyLT5j cnRjLT5sZWdhY3kubW9kZSk7CiAKIAl0dm91dF9oZG1pX3N0YXJ0KHR2b3V0LCBzdGlfY3J0Y19p c19tYWluKGVuY29kZXItPmNydGMpKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9z dGkvc3RpX3ZpZC5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfdmlkLmMKaW5kZXggMmQ4MTgz OTc5MThkLi41ZDNiYjQ5ZjkzZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X3ZpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX3ZpZC5jCkBAIC0xNDAsNyArMTQw LDcgQEAgdm9pZCBzdGlfdmlkX2NvbW1pdChzdHJ1Y3Qgc3RpX3ZpZCAqdmlkLAogCQkgICAgc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0g c3RhdGUtPmNydGM7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Yy0+bW9k ZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjLT5sZWdhY3kubW9kZTsK IAlpbnQgZHN0X3ggPSBzdGF0ZS0+Y3J0Y194OwogCWludCBkc3RfeSA9IHN0YXRlLT5jcnRjX3k7 CiAJaW50IGRzdF93ID0gY2xhbXBfdmFsKHN0YXRlLT5jcnRjX3csIDAsIG1vZGUtPmhkaXNwbGF5 IC0gZHN0X3gpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0 Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCmluZGV4IGI1ZjYwYjJi MmQwZS4uM2I3ZTdlZWMzMjM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3Rp bGNkY19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCkBA IC03MSwxMCArNzEsMTAgQEAgc3RhdGljIHZvaWQgc2V0X3NjYW5vdXQoc3RydWN0IGRybV9jcnRj ICpjcnRjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKIAlnZW0gPSBkcm1fZmJfZG1hX2dl dF9nZW1fb2JqKGZiLCAwKTsKIAogCXN0YXJ0ID0gZ2VtLT5kbWFfYWRkciArIGZiLT5vZmZzZXRz WzBdICsKLQkJY3J0Yy0+eSAqIGZiLT5waXRjaGVzWzBdICsKLQkJY3J0Yy0+eCAqIGZiLT5mb3Jt YXQtPmNwcFswXTsKKwkJY3J0Yy0+bGVnYWN5LnkgKiBmYi0+cGl0Y2hlc1swXSArCisJCWNydGMt PmxlZ2FjeS54ICogZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JZW5kID0gc3RhcnQgKyAoY3J0Yy0+ bW9kZS52ZGlzcGxheSAqIGZiLT5waXRjaGVzWzBdKTsKKwllbmQgPSBzdGFydCArIChjcnRjLT5s ZWdhY3kubW9kZS52ZGlzcGxheSAqIGZiLT5waXRjaGVzWzBdKTsKIAogCS8qIFdyaXRlIExDRENf RE1BX0ZCX0JBU0VfQUREUl8wX1JFRyBhbmQgTENEQ19ETUFfRkJfQ0VJTElOR19BRERSXzBfUkVH CiAJICogd2l0aCBhIHNpbmdsZSBpbnNydWN0aW9uLCBpZiBhdmFpbGFibGUuIFRoaXMgc2hvdWxk IG1ha2UgaXQgbW9yZQpAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyB2b2lkIHRpbGNkY19jcnRj X3NldF9jbGsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWNsa2RpdiA9IDI7IC8qIGZpcnN0IHRy eSB1c2luZyBhIHN0YW5kYXJkIGRpdmlkZXIgb2YgMiAqLwogCiAJLyogbW9kZS5jbG9jayBpcyBp biBLSHosIHNldF9yYXRlIHdhbnRzIHBhcmFtZXRlciBpbiBIeiAqLwotCXBjbGtfcmF0ZSA9IGNy dGMtPm1vZGUuY2xvY2sgKiAxMDAwOworCXBjbGtfcmF0ZSA9IGNydGMtPmxlZ2FjeS5tb2RlLmNs b2NrICogMTAwMDsKIAogCXJldCA9IGNsa19zZXRfcmF0ZShwcml2LT5jbGssIHBjbGtfcmF0ZSAq IGNsa2Rpdik7CiAJY2xrX3JhdGUgPSBjbGtfZ2V0X3JhdGUocHJpdi0+Y2xrKTsKQEAgLTI1Miw3 ICsyNTIsNyBAQCBzdGF0aWMgdm9pZCB0aWxjZGNfY3J0Y19zZXRfY2xrKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YykKIAl0aWxjZGNfY3J0Yy0+bGNkX2Zja19yYXRlID0gY2xrX3JhdGU7CiAKIAlEQkco ImxjZF9jbGs9JXUsIG1vZGUgY2xvY2s9JWQsIGRpdj0ldSIsCi0JICAgIHRpbGNkY19jcnRjLT5s Y2RfZmNrX3JhdGUsIGNydGMtPm1vZGUuY2xvY2ssIGNsa2Rpdik7CisJICAgIHRpbGNkY19jcnRj LT5sY2RfZmNrX3JhdGUsIGNydGMtPmxlZ2FjeS5tb2RlLmNsb2NrLCBjbGtkaXYpOwogCiAJLyog Q29uZmlndXJlIHRoZSBMQ0QgY2xvY2sgZGl2aXNvci4gKi8KIAl0aWxjZGNfd3JpdGUoZGV2LCBM Q0RDX0NUUkxfUkVHLCBMQ0RDX0NMS19ESVZJU09SKGNsa2RpdikgfApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3RpbnkvYXJjcGd1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9hcmNwZ3Uu YwppbmRleCA4MWFiZWRlYzQzNWQuLmQ5YmVmZDgxZGU0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3RpbnkvYXJjcGd1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvYXJjcGd1LmMK QEAgLTM0Myw3ICszNDMsNyBAQCBzdGF0aWMgaW50IGFyY3BndV9zaG93X3B4bGNsb2NrKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqYXJnKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBub2Rl LT5taW5vci0+ZGV2OwogCXN0cnVjdCBhcmNwZ3VfZHJtX3ByaXZhdGUgKmFyY3BndSA9IGRldl90 b19hcmNwZ3UoZHJtKTsKIAl1bnNpZ25lZCBsb25nIGNsa3JhdGUgPSBjbGtfZ2V0X3JhdGUoYXJj cGd1LT5jbGspOwotCXVuc2lnbmVkIGxvbmcgbW9kZV9jbG9jayA9IGFyY3BndS0+cGlwZS5jcnRj Lm1vZGUuY3J0Y19jbG9jayAqIDEwMDA7CisJdW5zaWduZWQgbG9uZyBtb2RlX2Nsb2NrID0gYXJj cGd1LT5waXBlLmNydGMubGVnYWN5Lm1vZGUuY3J0Y19jbG9jayAqIDEwMDA7CiAKIAlzZXFfcHJp bnRmKG0sICJodyAgOiAlbHVcbiIsIGNsa3JhdGUpOwogCXNlcV9wcmludGYobSwgIm1vZGU6ICVs dVxuIiwgbW9kZV9jbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVv L3Zib3hfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby92Ym94X21vZGUuYwppbmRl eCA5ZmYzYmFkZTk3OTUuLjljZTJhOGZmY2ZmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Zib3h2aWRlby92Ym94X21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL3Zi b3hfbW9kZS5jCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyB2b2lkIHZib3hfZG9fbW9kZXNldChz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJICogc2NyZWVuIGlzIHByb2dyYW1tZWQgdGhpcyB3YXks IHNvIHRyeSB0byBmYWtlIGl0LgogCSAqLwogCWlmICh2Ym94X2NydGMtPmNydGNfaWQgPT0gMCAm JiBmYiAmJgotCSAgICB2Ym94X2NydGMtPmZiX29mZnNldCAvIHBpdGNoIDwgMHhmZmZmIC0gY3J0 Yy0+eSAmJgorCSAgICB2Ym94X2NydGMtPmZiX29mZnNldCAvIHBpdGNoIDwgMHhmZmZmIC0gY3J0 Yy0+bGVnYWN5LnkgJiYKIAkgICAgdmJveF9jcnRjLT5mYl9vZmZzZXQgJSAoYnBwIC8gOCkgPT0g MCkgewogCQl2Ym94X3dyaXRlX2lvcG9ydChWQkVfRElTUElfSU5ERVhfWFJFUywgd2lkdGgpOwog CQl2Ym94X3dyaXRlX2lvcG9ydChWQkVfRElTUElfSU5ERVhfWVJFUywgaGVpZ2h0KTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfZHBpLmMKaW5kZXggYTM4MmRjNDY1NGJkLi4wMTAzZjE3ZTIyY2MgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2RwaS5jCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIHZvaWQgdmM0X2RwaV9lbmNvZGVy X2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGljIHZvaWQgdmM0X2Rw aV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSA9ICZlbmNvZGVyLT5jcnRjLT5tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlID0gJmVuY29kZXItPmNydGMtPmxlZ2FjeS5tb2RlOwogCXN0cnVjdCB2YzRfZHBpICpk cGkgPSB0b192YzRfZHBpKGVuY29kZXIpOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRl ciBjb25uX2l0ZXI7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IE5VTEwsICpj b25uZWN0b3Jfc2NhbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5l LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCmluZGV4IGJhNmU4NmQ2MmE3Ny4u OTA3ZGVhM2U3MWRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKQEAgLTEzNDIsOCArMTM0Miw4 IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAogCiAJLyogY3J0Y18qIGFyZSBhbHJlYWR5IGNsaXBwZWQgY29vcmRpbmF0ZXMuICovCiAJY292 ZXJzX3NjcmVlbiA9IHZjNF9zdGF0ZS0+Y3J0Y194ID09IDAgJiYgdmM0X3N0YXRlLT5jcnRjX3kg PT0gMCAmJgotCQkJdmM0X3N0YXRlLT5jcnRjX3cgPT0gc3RhdGUtPmNydGMtPm1vZGUuaGRpc3Bs YXkgJiYKLQkJCXZjNF9zdGF0ZS0+Y3J0Y19oID09IHN0YXRlLT5jcnRjLT5tb2RlLnZkaXNwbGF5 OworCQkJdmM0X3N0YXRlLT5jcnRjX3cgPT0gc3RhdGUtPmNydGMtPmxlZ2FjeS5tb2RlLmhkaXNw bGF5ICYmCisJCQl2YzRfc3RhdGUtPmNydGNfaCA9PSBzdGF0ZS0+Y3J0Yy0+bGVnYWN5Lm1vZGUu dmRpc3BsYXk7CiAJLyogQmFja2dyb3VuZCBmaWxsIG1pZ2h0IGJlIG5lY2Vzc2FyeSB3aGVuIHRo ZSBwbGFuZSBoYXMgcGVyLXBpeGVsCiAJICogYWxwaGEgY29udGVudCBvciBhIG5vbi1vcGFxdWUg cGxhbmUgYWxwaGEgYW5kIGNvdWxkIGJsZW5kIGZyb20gdGhlCiAJICogYmFja2dyb3VuZCBvciBk b2VzIG5vdCBjb3ZlciB0aGUgZW50aXJlIHNjcmVlbi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92aXJ0aW8vdmlydGdwdV9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3Zp cnRncHVfZGlzcGxheS5jCmluZGV4IDY0YmFmMmYyMmQ5Zi4uOWNmMDk5YTYwMGY3IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdmlydGlvL3ZpcnRncHVfZGlzcGxheS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kaXNwbGF5LmMKQEAgLTkwLDggKzkwLDggQEAgc3Rh dGljIHZvaWQgdmlydGlvX2dwdV9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpj cnRjKQogCXN0cnVjdCB2aXJ0aW9fZ3B1X291dHB1dCAqb3V0cHV0ID0gZHJtX2NydGNfdG9fdmly dGlvX2dwdV9vdXRwdXQoY3J0Yyk7CiAKIAl2aXJ0aW9fZ3B1X2NtZF9zZXRfc2Nhbm91dCh2Z2Rl diwgb3V0cHV0LT5pbmRleCwgMCwKLQkJCQkgICBjcnRjLT5tb2RlLmhkaXNwbGF5LAotCQkJCSAg IGNydGMtPm1vZGUudmRpc3BsYXksIDAsIDApOworCQkJCSAgIGNydGMtPmxlZ2FjeS5tb2RlLmhk aXNwbGF5LAorCQkJCSAgIGNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5LCAwLCAwKTsKIAl2aXJ0 aW9fZ3B1X25vdGlmeSh2Z2Rldik7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY29tcG9zZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY29tcG9zZXIu YwppbmRleCA1N2E1NzY5ZmM5OTQuLmE3ZjhiMWRhNmU4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19jb21wb3Nlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfY29tcG9zZXIuYwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIGJsZW5kKHN0cnVj dCB2a21zX3dyaXRlYmFja19qb2IgKndiLAogCiAJY29uc3Qgc3RydWN0IHBpeGVsX2FyZ2JfdTE2 IGJhY2tncm91bmRfY29sb3IgPSB7IC5hID0gMHhmZmZmIH07CiAKLQlzaXplX3QgY3J0Y195X2xp bWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5tb2RlLnZkaXNwbGF5OworCXNpemVfdCBjcnRj X3lfbGltaXQgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmxlZ2FjeS5tb2RlLnZkaXNwbGF5Owog CiAJLyoKIAkgKiBUaGUgcGxhbmVzIGFyZSBjb21wb3NlZCBsaW5lLWJ5LWxpbmUgdG8gYXZvaWQg aGVhdnkgbWVtb3J5IHVzYWdlLiBJdCBpcyBhIG5lY2Vzc2FyeQpAQCAtMjcwLDcgKzI3MCw3IEBA IHN0YXRpYyBpbnQgY29tcG9zZV9hY3RpdmVfcGxhbmVzKHN0cnVjdCB2a21zX3dyaXRlYmFja19q b2IgKmFjdGl2ZV93YiwKIAlpZiAoV0FSTl9PTihjaGVja19mb3JtYXRfZnVuY3MoY3J0Y19zdGF0 ZSwgYWN0aXZlX3diKSkpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JbGluZV93aWR0aCA9IGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+bW9kZS5oZGlzcGxheTsKKwlsaW5lX3dpZHRoID0gY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5sZWdhY3kubW9kZS5oZGlzcGxheTsKIAlzdGFnZV9idWZmZXIubl9waXhl bHMgPSBsaW5lX3dpZHRoOwogCW91dHB1dF9idWZmZXIubl9waXhlbHMgPSBsaW5lX3dpZHRoOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCmluZGV4IGE0MDI5NWMxOGI0OC4uNzgwNjgxZWE3N2U0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwpAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgaW50 IHZrbXNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGRybV92 YmxhbmtfY3J0YyAqdmJsYW5rID0gZHJtX2NydGNfdmJsYW5rX2NydGMoY3J0Yyk7CiAJc3RydWN0 IHZrbXNfb3V0cHV0ICpvdXQgPSBkcm1fY3J0Y190b192a21zX291dHB1dChjcnRjKTsKIAotCWRy bV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoY3J0YywgJmNydGMtPm1vZGUpOworCWRybV9j YWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoY3J0YywgJmNydGMtPmxlZ2FjeS5tb2RlKTsKIAog CWhydGltZXJfaW5pdCgmb3V0LT52YmxhbmtfaHJ0aW1lciwgQ0xPQ0tfTU9OT1RPTklDLCBIUlRJ TUVSX01PREVfUkVMKTsKIAlvdXQtPnZibGFua19ocnRpbWVyLmZ1bmN0aW9uID0gJnZrbXNfdmJs YW5rX3NpbXVsYXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc193cml0 ZWJhY2suYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfd3JpdGViYWNrLmMKaW5kZXggYmM3 MjRjYmQ1ZTNhLi4yNzE2NGNkZGI5NGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21z L3ZrbXNfd3JpdGViYWNrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc193cml0ZWJh Y2suYwpAQCAtMTMxLDggKzEzMSw4IEBAIHN0YXRpYyB2b2lkIHZrbXNfd2JfYXRvbWljX2NvbW1p dChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSA9IHdiX2Nvbm4tPmJhc2Uuc3RhdGU7CiAJc3RydWN0IHZrbXNfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSA9IG91dHB1dC0+Y29tcG9zZXJfc3RhdGU7CiAJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBjb25uZWN0b3Jfc3RhdGUtPndyaXRlYmFja19qb2ItPmZiOwotCXUx NiBjcnRjX2hlaWdodCA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+bW9kZS52ZGlzcGxheTsKLQl1 MTYgY3J0Y193aWR0aCA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+bW9kZS5oZGlzcGxheTsKKwl1 MTYgY3J0Y19oZWlnaHQgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmxlZ2FjeS5tb2RlLnZkaXNw bGF5OworCXUxNiBjcnRjX3dpZHRoID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5sZWdhY3kubW9k ZS5oZGlzcGxheTsKIAlzdHJ1Y3Qgdmttc193cml0ZWJhY2tfam9iICphY3RpdmVfd2I7CiAJc3Ry dWN0IHZrbXNfZnJhbWVfaW5mbyAqd2JfZnJhbWVfaW5mbzsKIAl1MzIgd2JfZm9ybWF0ID0gZmIt PmZvcm1hdC0+Zm9ybWF0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwppbmRleCAyODhl ZDBiYjc1Y2IuLmNmN2FmNjg1YjEyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMK QEAgLTIzNTIsMTAgKzIzNTIsMTAgQEAgaW50IHZtd19rbXNfaGVscGVyX2RpcnR5KHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlmb3IgKGsgPSAwOyBrIDwgbnVtX3VuaXRzOyBrKysp IHsKIAkJc3RydWN0IHZtd19kaXNwbGF5X3VuaXQgKnVuaXQgPSB1bml0c1trXTsKLQkJczMyIGNy dGNfeCA9IHVuaXQtPmNydGMueDsKLQkJczMyIGNydGNfeSA9IHVuaXQtPmNydGMueTsKLQkJczMy IGNydGNfd2lkdGggPSB1bml0LT5jcnRjLm1vZGUuaGRpc3BsYXk7Ci0JCXMzMiBjcnRjX2hlaWdo dCA9IHVuaXQtPmNydGMubW9kZS52ZGlzcGxheTsKKwkJczMyIGNydGNfeCA9IHVuaXQtPmNydGMu bGVnYWN5Lng7CisJCXMzMiBjcnRjX3kgPSB1bml0LT5jcnRjLmxlZ2FjeS55OworCQlzMzIgY3J0 Y193aWR0aCA9IHVuaXQtPmNydGMubGVnYWN5Lm1vZGUuaGRpc3BsYXk7CisJCXMzMiBjcnRjX2hl aWdodCA9IHVuaXQtPmNydGMubGVnYWN5Lm1vZGUudmRpc3BsYXk7CiAJCWNvbnN0IHN0cnVjdCBk cm1fY2xpcF9yZWN0ICpjbGlwc19wdHIgPSBjbGlwczsKIAkJY29uc3Qgc3RydWN0IGRybV92bXdf cmVjdCAqdmNsaXBzX3B0ciA9IHZjbGlwczsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfbGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9sZHUu YwppbmRleCAzOTk0OWUwYTQ5M2YuLjkxYTYzNWQ5NmEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfbGR1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfbGR1LmMKQEAgLTkyLDggKzkyLDEwIEBAIHN0YXRpYyBpbnQgdm13X2xkdV9jb21taXRf bGlzdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQogCQlpbnQgdyA9IDAsIGggPSAwOwog CQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbGRzLT5hY3RpdmUsIGFjdGl2ZSkgewogCQkJ Y3J0YyA9ICZlbnRyeS0+YmFzZS5jcnRjOwotCQkJdyA9IG1heCh3LCBjcnRjLT54ICsgY3J0Yy0+ bW9kZS5oZGlzcGxheSk7Ci0JCQloID0gbWF4KGgsIGNydGMtPnkgKyBjcnRjLT5tb2RlLnZkaXNw bGF5KTsKKwkJCXcgPSBtYXgodywKKwkJCQljcnRjLT5sZWdhY3kueCArIGNydGMtPmxlZ2FjeS5t b2RlLmhkaXNwbGF5KTsKKwkJCWggPSBtYXgoaCwKKwkJCQljcnRjLT5sZWdhY3kueSArIGNydGMt PmxlZ2FjeS5tb2RlLnZkaXNwbGF5KTsKIAkJfQogCiAJCWlmIChjcnRjID09IE5VTEwpCkBAIC0x MjMsMTAgKzEyNSwxNCBAQCBzdGF0aWMgaW50IHZtd19sZHVfY29tbWl0X2xpc3Qoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdikKIAogCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJ U1BMQVlfSUQsIGkpOwogCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfSVNf UFJJTUFSWSwgIWkpOwotCQl2bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfUE9T SVRJT05fWCwgY3J0Yy0+eCk7Ci0JCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRElTUExB WV9QT1NJVElPTl9ZLCBjcnRjLT55KTsKLQkJdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19E SVNQTEFZX1dJRFRILCBjcnRjLT5tb2RlLmhkaXNwbGF5KTsKLQkJdm13X3dyaXRlKGRldl9wcml2 LCBTVkdBX1JFR19ESVNQTEFZX0hFSUdIVCwgY3J0Yy0+bW9kZS52ZGlzcGxheSk7CisJCXZtd193 cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRElTUExBWV9QT1NJVElPTl9YLAorCQkJICBjcnRjLT5s ZWdhY3kueCk7CisJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9SRUdfRElTUExBWV9QT1NJVElP Tl9ZLAorCQkJICBjcnRjLT5sZWdhY3kueSk7CisJCXZtd193cml0ZShkZXZfcHJpdiwgU1ZHQV9S RUdfRElTUExBWV9XSURUSCwKKwkJCSAgY3J0Yy0+bGVnYWN5Lm1vZGUuaGRpc3BsYXkpOworCQl2 bXdfd3JpdGUoZGV2X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfSEVJR0hULAorCQkJICBjcnRjLT5s ZWdhY3kubW9kZS52ZGlzcGxheSk7CiAKIAkJaSsrOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3Njcm4uYwppbmRleCAwZjRiZmQ5ODQ4MGEuLjVmMzgwZTI4ODEzNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2Nybi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3Njcm4uYwpAQCAtMjQ5LDEwICsyNDksMTEgQEAgc3RhdGljIHZvaWQg dm13X3NvdV9jcnRjX21vZGVfc2V0X25vZmIoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQl4ID0g dm13X2Nvbm5fc3RhdGUtPmd1aV94OwogCQl5ID0gdm13X2Nvbm5fc3RhdGUtPmd1aV95OwogCi0J CXJldCA9IHZtd19zb3VfZmlmb19jcmVhdGUoZGV2X3ByaXYsIHNvdSwgeCwgeSwgJmNydGMtPm1v ZGUpOworCQlyZXQgPSB2bXdfc291X2ZpZm9fY3JlYXRlKGRldl9wcml2LCBzb3UsIHgsIHksCisJ CQkJCSAgJmNydGMtPmxlZ2FjeS5tb2RlKTsKIAkJaWYgKHJldCkKIAkJCURSTV9FUlJPUigiRmFp bGVkIHRvIGRlZmluZSBTY3JlZW4gT2JqZWN0ICVkeCVkXG4iLAotCQkJCSAgY3J0Yy0+eCwgY3J0 Yy0+eSk7CisJCQkJICBjcnRjLT5sZWdhY3kueCwgY3J0Yy0+bGVnYWN5LnkpOwogCiAJfSBlbHNl IHsKIAkJc291LT5idWZmZXIgPSBOVUxMOwpAQCAtOTkzLDggKzk5NCw4IEBAIHN0YXRpYyB2b2lk IHZtd19zb3Vfc3VyZmFjZV9maWZvX2NvbW1pdChzdHJ1Y3Qgdm13X2ttc19kaXJ0eSAqZGlydHkp CiAJc3RydWN0IHZtd19rbXNfc291X3N1cmZhY2VfZGlydHkgKnNkaXJ0eSA9CiAJCWNvbnRhaW5l cl9vZihkaXJ0eSwgdHlwZW9mKCpzZGlydHkpLCBiYXNlKTsKIAlzdHJ1Y3Qgdm13X2ttc19zb3Vf ZGlydHlfY21kICpjbWQgPSBkaXJ0eS0+Y21kOwotCXMzMiB0cmFuc194ID0gZGlydHktPnVuaXQt PmNydGMueCAtIHNkaXJ0eS0+ZHN0X3g7Ci0JczMyIHRyYW5zX3kgPSBkaXJ0eS0+dW5pdC0+Y3J0 Yy55IC0gc2RpcnR5LT5kc3RfeTsKKwlzMzIgdHJhbnNfeCA9IGRpcnR5LT51bml0LT5jcnRjLmxl Z2FjeS54IC0gc2RpcnR5LT5kc3RfeDsKKwlzMzIgdHJhbnNfeSA9IGRpcnR5LT51bml0LT5jcnRj LmxlZ2FjeS55IC0gc2RpcnR5LT5kc3RfeTsKIAlzaXplX3QgcmVnaW9uX3NpemUgPSBkaXJ0eS0+ bnVtX2hpdHMgKiBzaXplb2YoU1ZHQVNpZ25lZFJlY3QpOwogCVNWR0FTaWduZWRSZWN0ICpibGl0 ID0gKFNWR0FTaWduZWRSZWN0ICopICZjbWRbMV07CiAJaW50IGk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9zdGR1LmMKaW5kZXggZmFiMTU1YTY4MDU0Li42YTQyOTRmY2Y4NTIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMKQEAgLTQwNiwxMSArNDA2LDExIEBAIHN0YXRpYyB2 b2lkIHZtd19zdGR1X2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJ eSA9IHZtd19jb25uX3N0YXRlLT5ndWlfeTsKIAogCXZtd19zdmdhX2VuYWJsZShkZXZfcHJpdik7 Ci0JcmV0ID0gdm13X3N0ZHVfZGVmaW5lX3N0KGRldl9wcml2LCBzdGR1LCAmY3J0Yy0+bW9kZSwg eCwgeSk7CisJcmV0ID0gdm13X3N0ZHVfZGVmaW5lX3N0KGRldl9wcml2LCBzdGR1LCAmY3J0Yy0+ bGVnYWN5Lm1vZGUsIHgsIHkpOwogCiAJaWYgKHJldCkKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g ZGVmaW5lIFNjcmVlbiBUYXJnZXQgb2Ygc2l6ZSAlZHglZFxuIiwKLQkJCSAgY3J0Yy0+eCwgY3J0 Yy0+eSk7CisJCQkgIGNydGMtPmxlZ2FjeS54LCBjcnRjLT5sZWdhY3kueSk7CiB9CiAKIHN0YXRp YyB2b2lkIHZtd19zdGR1X2NydGNfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRj LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmttcy5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmttcy5jCmluZGV4IDg2NTFiNzg4ZTk4Yi4uOTY0 NDc0ZWY1ZGNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92a21z LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmttcy5jCkBAIC0yODgsNyAr Mjg4LDcgQEAgdm13X3ZrbXNfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJ aWYgKCF2bXctPnZrbXNfZW5hYmxlZCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlkcm1fY2FsY190 aW1lc3RhbXBpbmdfY29uc3RhbnRzKGNydGMsICZjcnRjLT5tb2RlKTsKKwlkcm1fY2FsY190aW1l c3RhbXBpbmdfY29uc3RhbnRzKGNydGMsICZjcnRjLT5sZWdhY3kubW9kZSk7CiAKIAlocnRpbWVy X2luaXQoJmR1LT52a21zLnRpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9SRUwp OwogCWR1LT52a21zLnRpbWVyLmZ1bmN0aW9uID0gJnZtd192a21zX3ZibGFua19zaW11bGF0ZTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuYyBiL2Ry aXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuYwppbmRleCBkZmE3OGE0OWE2ZDku LmJlM2U2YTUyZGUwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zy b250X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9rbXMuYwpA QCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyB2b2lkIGRpc3BsYXlfZW5hYmxlKHN0cnVjdCBkcm1f c2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKIAlpZiAoIWRybV9kZXZfZW50ZXIocGlwZS0+Y3J0 Yy5kZXYsICZpZHgpKQogCQlyZXR1cm47CiAKLQlyZXQgPSB4ZW5fZHJtX2Zyb250X21vZGVfc2V0 KHBpcGVsaW5lLCBjcnRjLT54LCBjcnRjLT55LAorCXJldCA9IHhlbl9kcm1fZnJvbnRfbW9kZV9z ZXQocGlwZWxpbmUsIGNydGMtPmxlZ2FjeS54LCBjcnRjLT5sZWdhY3kueSwKIAkJCQkgICAgIGZi LT53aWR0aCwgZmItPmhlaWdodCwKIAkJCQkgICAgIGZiLT5mb3JtYXQtPmNwcFswXSAqIDgsCiAJ CQkJICAgICB4ZW5fZHJtX2Zyb250X2ZiX3RvX2Nvb2tpZShmYikpOwpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggOGI0OGEx OTc0ZGEzLi5kODJkMjAzNTEyNGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtMTAwMiwyNSArMTAwMiw0NSBAQCBzdHJ1 Y3QgZHJtX2NydGMgewogCSAqLwogCWludCBjdXJzb3JfeTsKIAotCS8qKgotCSAqIEBlbmFibGVk OgotCSAqCi0JICogSXMgdGhpcyBDUlRDIGVuYWJsZWQ/IFNob3VsZCBvbmx5IGJlIHVzZWQgYnkg bGVnYWN5IGRyaXZlcnMsIGF0b21pYwotCSAqIGRyaXZlcnMgc2hvdWxkIGluc3RlYWQgY29uc3Vs dCAmZHJtX2NydGNfc3RhdGUuZW5hYmxlIGFuZAotCSAqICZkcm1fY3J0Y19zdGF0ZS5hY3RpdmUu IEF0b21pYyBkcml2ZXJzIGNhbiB1cGRhdGUgdGhpcyBieSBjYWxsaW5nCi0JICogZHJtX2F0b21p Y19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKCkuCi0JICovCi0JYm9vbCBlbmFi bGVkOwotCi0JLyoqCi0JICogQG1vZGU6Ci0JICoKLQkgKiBDdXJyZW50IG1vZGUgdGltaW5ncy4g U2hvdWxkIG9ubHkgYmUgdXNlZCBieSBsZWdhY3kgZHJpdmVycywgYXRvbWljCi0JICogZHJpdmVy cyBzaG91bGQgaW5zdGVhZCBjb25zdWx0ICZkcm1fY3J0Y19zdGF0ZS5tb2RlLiBBdG9taWMgZHJp dmVycwotCSAqIGNhbiB1cGRhdGUgdGhpcyBieSBjYWxsaW5nCi0JICogZHJtX2F0b21pY19oZWxw ZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKCkuCi0JICovCi0Jc3RydWN0IGRybV9kaXNw bGF5X21vZGUgbW9kZTsKKwlzdHJ1Y3QgeworCQkvKioKKwkJICogQGVuYWJsZWQ6CisJCSAqCisJ CSAqIElzIHRoaXMgQ1JUQyBlbmFibGVkPyBTaG91bGQgb25seSBiZSB1c2VkIGJ5IGxlZ2FjeSBk cml2ZXJzLCBhdG9taWMKKwkJICogZHJpdmVycyBzaG91bGQgaW5zdGVhZCBjb25zdWx0ICZkcm1f Y3J0Y19zdGF0ZS5lbmFibGUgYW5kCisJCSAqICZkcm1fY3J0Y19zdGF0ZS5hY3RpdmUuIEF0b21p YyBkcml2ZXJzIGNhbiB1cGRhdGUgdGhpcyBieSBjYWxsaW5nCisJCSAqIGRybV9hdG9taWNfaGVs cGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZSgpLgorCQkgKi8KKwkJYm9vbCBlbmFibGVk OworCisJCS8qKgorCQkgKiBAbW9kZToKKwkJICoKKwkJICogQ3VycmVudCBtb2RlIHRpbWluZ3Mu IFNob3VsZCBvbmx5IGJlIHVzZWQgYnkgbGVnYWN5IGRyaXZlcnMsIGF0b21pYworCQkgKiBkcml2 ZXJzIHNob3VsZCBpbnN0ZWFkIGNvbnN1bHQgJmRybV9jcnRjX3N0YXRlLm1vZGUuIEF0b21pYyBk cml2ZXJzCisJCSAqIGNhbiB1cGRhdGUgdGhpcyBieSBjYWxsaW5nCisJCSAqIGRybV9hdG9taWNf aGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZSgpLgorCQkgKi8KKwkJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgbW9kZTsKKworCQkvKioKKwkJICogQHg6CisJCSAqIHggcG9zaXRpb24g b24gc2NyZWVuLiBTaG91bGQgb25seSBiZSB1c2VkIGJ5IGxlZ2FjeSBkcml2ZXJzLCBhdG9taWMK KwkJICogZHJpdmVycyBzaG91bGQgbG9vayBhdCAmZHJtX3BsYW5lX3N0YXRlLmNydGNfeCBvZiB0 aGUgcHJpbWFyeSBwbGFuZQorCQkgKiBpbnN0ZWFkLiBVcGRhdGVkIGJ5IGNhbGxpbmcKKwkJICog ZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKCkuCisJCSAqLwor CQlpbnQgeDsKKworCQkvKioKKwkJICogQHk6CisJCSAqIHkgcG9zaXRpb24gb24gc2NyZWVuLiBT aG91bGQgb25seSBiZSB1c2VkIGJ5IGxlZ2FjeSBkcml2ZXJzLCBhdG9taWMKKwkJICogZHJpdmVy cyBzaG91bGQgbG9vayBhdCAmZHJtX3BsYW5lX3N0YXRlLmNydGNfeSBvZiB0aGUgcHJpbWFyeSBw bGFuZQorCQkgKiBpbnN0ZWFkLiBVcGRhdGVkIGJ5IGNhbGxpbmcKKwkJICogZHJtX2F0b21pY19o ZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKCkuCisJCSAqLworCQlpbnQgeTsKKwl9 IGxlZ2FjeTsKIAogCS8qKgogCSAqIEBod21vZGU6CkBAIC0xMDM4LDIzICsxMDU4LDYgQEAgc3Ry dWN0IGRybV9jcnRjIHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBod21vZGU7CiAK LQkvKioKLQkgKiBAeDoKLQkgKiB4IHBvc2l0aW9uIG9uIHNjcmVlbi4gU2hvdWxkIG9ubHkgYmUg dXNlZCBieSBsZWdhY3kgZHJpdmVycywgYXRvbWljCi0JICogZHJpdmVycyBzaG91bGQgbG9vayBh dCAmZHJtX3BsYW5lX3N0YXRlLmNydGNfeCBvZiB0aGUgcHJpbWFyeSBwbGFuZQotCSAqIGluc3Rl YWQuIFVwZGF0ZWQgYnkgY2FsbGluZwotCSAqIGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdh Y3lfbW9kZXNldF9zdGF0ZSgpLgotCSAqLwotCWludCB4OwotCS8qKgotCSAqIEB5OgotCSAqIHkg cG9zaXRpb24gb24gc2NyZWVuLiBTaG91bGQgb25seSBiZSB1c2VkIGJ5IGxlZ2FjeSBkcml2ZXJz LCBhdG9taWMKLQkgKiBkcml2ZXJzIHNob3VsZCBsb29rIGF0ICZkcm1fcGxhbmVfc3RhdGUuY3J0 Y195IG9mIHRoZSBwcmltYXJ5IHBsYW5lCi0JICogaW5zdGVhZC4gVXBkYXRlZCBieSBjYWxsaW5n Ci0JICogZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKCkuCi0J ICovCi0JaW50IHk7Ci0KIAkvKiogQGZ1bmNzOiBDUlRDIGNvbnRyb2wgZnVuY3Rpb25zICovCiAJ Y29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzICpmdW5jczsKIAotLSAKMi40NS4yCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBt YWlsaW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo=