Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp744332ybz; Fri, 1 May 2020 07:48:08 -0700 (PDT) X-Google-Smtp-Source: APiQypLG2kJ7sMtkrQrmtzilnAffaSisgdyOPahZsqQt05dweiNA2UmrDAGyGcd6ztf/nJ8oQTmE X-Received: by 2002:a17:906:5e50:: with SMTP id b16mr3660363eju.331.1588344488736; Fri, 01 May 2020 07:48:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588344488; cv=none; d=google.com; s=arc-20160816; b=qWHdBE6AsnPnXTAjOD9j4pkr/ABIUeReGD1Pjbslb24CKtI646xiqNktG6BoUbHhc5 Wy8/Mk22XLitlib+IQTcJ30fdzSkqisvk/KGria2obG3wpaRT5haNXUv8SnFbA46XxN0 T6smjugI4emlFRQw0JnDzX0d8SvRsofWbNU/LWcKgalqzwwFBpbrxvvWcWjsBGicJF3q ZnwylK952TmBGqiX3Q4sBy8IsJaLM16eTdfSlc3iLeuu8l9yFrywJJIkD66DjpMNDgb8 YkzNRcR6gSsHKOpBmeLdIM+FtNOAVXqv5vh7zZ6CmoaHXKDuwJM3MQaCH+grOXyCPRVQ PNmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2KS2W15q1KcA0fIK+eZdns1IHQFBuB1Q4qOfGRiUs9w=; b=EDs8yByGbC3BAnBxUvhsEddUv/f1FIjR7aP0siSSLh4OJUNc82nZHH6VS7xj31uzt6 6HifiarlcbuXlLPVfEdfzDRBu0OdcbbNAkBuCWX4ug0XIdiQ4+0MJvLOc+Gb6m8Vl+gx XUYT0YMLp3wCPH7GfvZlS8NyQH22ClIF394fshhX68Ol5P4THsdMBSnAByoAXWoP+TYG QPPXVAH1nu8DtGjPzqHh7rd2I7gfYUtCCTaD6IB46mjtjWvYSGsNBqjF2QDK5z3ubGTP 3Jt1CggV3j/OAvWoAgR9G0Bzj4H8/kp6uEP/Yh92Hzr5wDLkUTVnj8LuRH2NEIk4xQOT ZzxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=QaDf2fZF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a25si2006080ejt.348.2020.05.01.07.47.45; Fri, 01 May 2020 07:48:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=QaDf2fZF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729182AbgEAOoU (ORCPT + 99 others); Fri, 1 May 2020 10:44:20 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:14967 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728860AbgEAOoT (ORCPT ); Fri, 1 May 2020 10:44:19 -0400 X-UUID: 4840faf482c74564ae0bc00744eb066c-20200501 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=2KS2W15q1KcA0fIK+eZdns1IHQFBuB1Q4qOfGRiUs9w=; b=QaDf2fZFxIC3EVyv9KDzYm2W9/8jAh6QZjitx8AClEsK1cXttemq3CUK6xaue4s2YtMLzyfumFq4KoJpOasBgqlbU+MTv3+gOgDWhmCn5U9UPVdbRymgPK0Flcoe3G8yvHA1s91xTQ+rGvqri9Hn9Hcs6371zrZGKbwLZJybxh4=; X-UUID: 4840faf482c74564ae0bc00744eb066c-20200501 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 826978968; Fri, 01 May 2020 22:38:39 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 1 May 2020 22:38:34 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 1 May 2020 22:38:34 +0800 From: Stanley Chu To: , , , , , CC: , , , , , , , , , , , Stanley Chu Subject: [PATCH v3 3/5] scsi: ufs: add LU Dedicated buffer mode support for WriteBooster Date: Fri, 1 May 2020 22:38:33 +0800 Message-ID: <20200501143835.26032-4-stanley.chu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200501143835.26032-1-stanley.chu@mediatek.com> References: <20200501143835.26032-1-stanley.chu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 67AE781BAFCEA561CC9DA36B4EBC95F298FCDB424E3AB883F57A46E06B6424BF2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWNjb3JkaW5nIHRvIFVGUyBzcGVjaWZpY2F0aW9uLCB0aGVyZSBhcmUgdHdvIFdyaXRlQm9vc3Rl ciBtb2RlIG9mDQpvcGVyYXRpb25zOiAiTFUgZGVkaWNhdGVkIGJ1ZmZlciIgbW9kZSBhbmQgInNo YXJlZCBidWZmZXIiIG1vZGUuDQpJbiB0aGUgIkxVIGRlZGljYXRlZCBidWZmZXIiIG1vZGUsIHRo ZSBXcml0ZUJvb3N0ZXIgQnVmZmVyIGlzDQpkZWRpY2F0ZWQgdG8gYSBsb2dpY2FsIHVuaXQuDQoN CklmIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdGhlICJMVSBkZWRpY2F0ZWQgYnVmZmVyIiBtb2RlLCB0 aGlzIG1vZGUgaXMNCmNvbmZpZ3VyZWQgYnkgc2V0dGluZyBiV3JpdGVCb29zdGVyQnVmZmVyVHlw ZSB0byAwMGguIFRoZSBsb2dpY2FsDQp1bml0IFdyaXRlQm9vc3RlciBCdWZmZXIgc2l6ZSBpcyBj b25maWd1cmVkIGJ5IHNldHRpbmcgdGhlDQpkTFVOdW1Xcml0ZUJvb3N0ZXJCdWZmZXJBbGxvY1Vu aXRzIGZpZWxkIG9mIHRoZSByZWxhdGVkIFVuaXQNCkRlc2NyaXB0b3IuIE9ubHkgYSB2YWx1ZSBn cmVhdGVyIHRoYW4gemVybyBlbmFibGVzIHRoZSBXcml0ZUJvb3N0ZXINCmZlYXR1cmUgaW4gdGhl IGxvZ2ljYWwgdW5pdC4NCg0KTW9kaWZ5IHVmc2hjZF93Yl9wcm9iZSgpIGFzIGFib3ZlIGRlc2Ny aXB0aW9uIHRvIHN1cHBvcnQgTFUgRGVkaWNhdGVkDQpidWZmZXIgbW9kZS4NCg0KTm90ZSB0aGF0 IGFjY29yZGluZyB0byBVRlMgMy4xIHNwZWNpZmljYXRpb24sIHRoZSB2YWxpZCB2YWx1ZSBvZg0K YkRldmljZU1heFdyaXRlQm9vc3RlckxVcyBwYXJhbWV0ZXIgaW4gR2VvbWV0cnkgRGVzY3JpcHRv ciBpcyAxLA0Kd2hpY2ggbWVhbnMgYXQgbW9zdCBvbmUgTFVOIGNhbiBoYXZlIFdyaXRlQm9vc3Rl ciBidWZmZXIgaW4gIkxVDQpkZWRpY2F0ZWQgYnVmZmVyIG1vZGUiLiBUaGVyZWZvcmUgdGhpcyBw YXRjaCBzdXBwb3J0cyBvbmx5IG9uZQ0KTFVOIHdpdGggV3JpdGVCb29zdGVyIGVuYWJsZWQuIEFs bCBXcml0ZUJvb3N0ZXIgcmVsYXRlZCBzeXNmcyBub2Rlcw0KYXJlIHNwZWNpZmljYWxseSBtYXBw ZWQgdG8gdGhlIExVTiB3aXRoIFdyaXRlQm9vc3RlciBlbmFibGVkIGluDQpMVSBEZWRpY2F0ZWQg YnVmZmVyIG1vZGUuDQoNClNpZ25lZC1vZmYtYnk6IFN0YW5sZXkgQ2h1IDxzdGFubGV5LmNodUBt ZWRpYXRlay5jb20+DQotLS0NCiBkcml2ZXJzL3Njc2kvdWZzL3Vmcy1zeXNmcy5jIHwgMTQgKysr KysrKystDQogZHJpdmVycy9zY3NpL3Vmcy91ZnMuaCAgICAgICB8ICA3ICsrKysrDQogZHJpdmVy cy9zY3NpL3Vmcy91ZnNoY2QuYyAgICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLQ0KIGRyaXZlcnMvc2NzaS91ZnMvdWZzaGNkLmggICAgfCAgMSArDQogNCBmaWxlcyBj aGFuZ2VkLCA3MCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc2NzaS91ZnMvdWZzLXN5c2ZzLmMgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy1zeXNm cy5jDQppbmRleCBiODZiNmE0MGQ3ZTYuLmExNjJmNjMwOThlNSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvc2NzaS91ZnMvdWZzLXN5c2ZzLmMNCisrKyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzLXN5c2Zz LmMNCkBAIC02MjIsMTYgKzYyMiwyOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9n cm91cCB1ZnNfc3lzZnNfc3RyaW5nX2Rlc2NyaXB0b3JzX2dyb3VwID0gew0KIAkuYXR0cnMgPSB1 ZnNfc3lzZnNfc3RyaW5nX2Rlc2NyaXB0b3JzLA0KIH07DQogDQorc3RhdGljIGJvb2wgdWZzaGNk X2lzX3diX2ZsYWdzKGVudW0gZmxhZ19pZG4gaWRuKQ0KK3sNCisJaWYgKGlkbiA+PSBRVUVSWV9G TEFHX0lETl9XQl9FTiAmJg0KKwkgICAgaWRuIDw9IFFVRVJZX0ZMQUdfSUROX1dCX0JVRkZfRkxV U0hfRFVSSU5HX0hJQkVSTjgpDQorCQlyZXR1cm4gdHJ1ZTsNCisJZWxzZQ0KKwkJcmV0dXJuIGZh bHNlOw0KK30NCisNCiAjZGVmaW5lIFVGU19GTEFHKF9uYW1lLCBfdW5hbWUpCQkJCQkJXA0KIHN0 YXRpYyBzc2l6ZV90IF9uYW1lIyNfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCQkJCVwNCiAJc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikJCQlcDQogewkJCQkJCQkJCVwN CiAJYm9vbCBmbGFnOwkJCQkJCQlcDQorCXU4IGluZGV4ID0gMDsJCQkJCQkJXA0KIAlpbnQgcmV0 OwkJCQkJCQlcDQogCXN0cnVjdCB1ZnNfaGJhICpoYmEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsJ CQlcDQorCWlmICh1ZnNoY2RfaXNfd2JfZmxhZ3MoUVVFUllfRkxBR19JRE4jI191bmFtZSkpCQkJ XA0KKwkJaW5kZXggPSB1ZnNoY2Rfd2JfZ2V0X2ZsYWdfaW5kZXgoaGJhKTsJCQlcDQogCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoaGJhLT5kZXYpOwkJCQkJXA0KIAlyZXQgPSB1ZnNoY2RfcXVlcnlfZmxh ZyhoYmEsIFVQSVVfUVVFUllfT1BDT0RFX1JFQURfRkxBRywJXA0KLQkJUVVFUllfRkxBR19JRE4j I191bmFtZSwgMCwgJmZsYWcpOwkJCVwNCisJCVFVRVJZX0ZMQUdfSUROIyNfdW5hbWUsIGluZGV4 LCAmZmxhZyk7CQkJXA0KIAlwbV9ydW50aW1lX3B1dF9zeW5jKGhiYS0+ZGV2KTsJCQkJCVwNCiAJ aWYgKHJldCkJCQkJCQkJXA0KIAkJcmV0dXJuIC1FSU5WQUw7CQkJCQkJXA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvc2NzaS91ZnMvdWZzLmggYi9kcml2ZXJzL3Njc2kvdWZzL3Vmcy5oDQppbmRleCBk YWFjNTA1M2I4NTAuLmViM2QzY2ViYzg3ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS91ZnMv dWZzLmgNCisrKyBiL2RyaXZlcnMvc2NzaS91ZnMvdWZzLmgNCkBAIC0zMzAsNiArMzMwLDEyIEBA IGVudW0gaGVhbHRoX2Rlc2NfcGFyYW0gew0KIAlIRUFMVEhfREVTQ19QQVJBTV9MSUZFX1RJTUVf RVNUX0IJPSAweDQsDQogfTsNCiANCisvKiBXcml0ZUJvb3N0ZXIgYnVmZmVyIG1vZGUgKi8NCitl bnVtIHsNCisJV0JfQlVGX01PREVfTFVfREVESUNBVEVECT0gMHgwLA0KKwlXQl9CVUZfTU9ERV9T SEFSRUQJCT0gMHgxLA0KK307DQorDQogLyoNCiAgKiBMb2dpY2FsIFVuaXQgV3JpdGUgUHJvdGVj dA0KICAqIDAwaDogTFUgbm90IHdyaXRlIHByb3RlY3RlZA0KQEAgLTU1OSw2ICs1NjUsNyBAQCBz dHJ1Y3QgdWZzX2Rldl9pbmZvIHsNCiAJYm9vbCBpc19sdV9wb3dlcl9vbl93cDsNCiAJLyogTWF4 aW11bSBudW1iZXIgb2YgZ2VuZXJhbCBMVSBzdXBwb3J0ZWQgYnkgdGhlIFVGUyBkZXZpY2UgKi8N CiAJdTggbWF4X2x1X3N1cHBvcnRlZDsNCisJdTggd2JfZGVkaWNhdGVkX2x1Ow0KIAl1MTYgd21h bnVmYWN0dXJlcmlkOw0KIAkvKlVGUyBkZXZpY2UgUHJvZHVjdCBOYW1lICovDQogCXU4ICptb2Rl bDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5jIGIvZHJpdmVycy9zY3Np L3Vmcy91ZnNoY2QuYw0KaW5kZXggZjIzNzA1Mzc5YjdkLi44YzI1NmY2ZjRhNjUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5jDQorKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vm c2hjZC5jDQpAQCAtNTIwNCw5ICs1MjA0LDE4IEBAIHN0YXRpYyBib29sIHVmc2hjZF93Yl9zdXAo c3RydWN0IHVmc19oYmEgKmhiYSkNCiAJcmV0dXJuIHVmc2hjZF9pc193Yl9hbGxvd2VkKGhiYSk7 DQogfQ0KIA0KK2ludCB1ZnNoY2Rfd2JfZ2V0X2ZsYWdfaW5kZXgoc3RydWN0IHVmc19oYmEgKmhi YSkNCit7DQorCWlmIChoYmEtPmRldl9pbmZvLmJfd2JfYnVmZmVyX3R5cGUgPT0gV0JfQlVGX01P REVfTFVfREVESUNBVEVEKQ0KKwkJcmV0dXJuIGhiYS0+ZGV2X2luZm8ud2JfZGVkaWNhdGVkX2x1 Ow0KKwllbHNlDQorCQlyZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGludCB1ZnNoY2Rfd2JfY3Ry bChzdHJ1Y3QgdWZzX2hiYSAqaGJhLCBib29sIGVuYWJsZSkNCiB7DQogCWludCByZXQ7DQorCXU4 IGluZGV4Ow0KIAllbnVtIHF1ZXJ5X29wY29kZSBvcGNvZGU7DQogDQogCWlmICghdWZzaGNkX3di X3N1cChoYmEpKQ0KQEAgLTUyMTksOCArNTIyOCw5IEBAIHN0YXRpYyBpbnQgdWZzaGNkX3diX2N0 cmwoc3RydWN0IHVmc19oYmEgKmhiYSwgYm9vbCBlbmFibGUpDQogCWVsc2UNCiAJCW9wY29kZSA9 IFVQSVVfUVVFUllfT1BDT0RFX0NMRUFSX0ZMQUc7DQogDQorCWluZGV4ID0gdWZzaGNkX3diX2dl dF9mbGFnX2luZGV4KGhiYSk7DQogCXJldCA9IHVmc2hjZF9xdWVyeV9mbGFnX3JldHJ5KGhiYSwg b3Bjb2RlLA0KLQkJCQkgICAgICBRVUVSWV9GTEFHX0lETl9XQl9FTiwgMCwgTlVMTCk7DQorCQkJ CSAgICAgIFFVRVJZX0ZMQUdfSUROX1dCX0VOLCBpbmRleCwgTlVMTCk7DQogCWlmIChyZXQpIHsN CiAJCWRldl9lcnIoaGJhLT5kZXYsICIlcyB3cml0ZSBib29zdGVyICVzIGZhaWxlZCAlZFxuIiwN CiAJCQlfX2Z1bmNfXywgZW5hYmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIsIHJldCk7DQpAQCAt NTIzNywxNSArNTI0NywxNyBAQCBzdGF0aWMgaW50IHVmc2hjZF93Yl9jdHJsKHN0cnVjdCB1ZnNf aGJhICpoYmEsIGJvb2wgZW5hYmxlKQ0KIHN0YXRpYyBpbnQgdWZzaGNkX3diX3RvZ2dsZV9mbHVz aF9kdXJpbmdfaDgoc3RydWN0IHVmc19oYmEgKmhiYSwgYm9vbCBzZXQpDQogew0KIAlpbnQgdmFs Ow0KKwl1OCBpbmRleDsNCiANCiAJaWYgKHNldCkNCiAJCXZhbCA9ICBVUElVX1FVRVJZX09QQ09E RV9TRVRfRkxBRzsNCiAJZWxzZQ0KIAkJdmFsID0gVVBJVV9RVUVSWV9PUENPREVfQ0xFQVJfRkxB RzsNCiANCisJaW5kZXggPSB1ZnNoY2Rfd2JfZ2V0X2ZsYWdfaW5kZXgoaGJhKTsNCiAJcmV0dXJu IHVmc2hjZF9xdWVyeV9mbGFnX3JldHJ5KGhiYSwgdmFsLA0KLQkJCSAgICAgICBRVUVSWV9GTEFH X0lETl9XQl9CVUZGX0ZMVVNIX0RVUklOR19ISUJFUk44LCAwLA0KLQkJCQkgICAgICAgTlVMTCk7 DQorCQkJCVFVRVJZX0ZMQUdfSUROX1dCX0JVRkZfRkxVU0hfRFVSSU5HX0hJQkVSTjgsDQorCQkJ CWluZGV4LCBOVUxMKTsNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lkIHVmc2hjZF93Yl90b2dn bGVfZmx1c2goc3RydWN0IHVmc19oYmEgKmhiYSwgYm9vbCBlbmFibGUpDQpAQCAtNTI2MCwxMyAr NTI3MiwxNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdWZzaGNkX3diX3RvZ2dsZV9mbHVzaChzdHJ1 Y3QgdWZzX2hiYSAqaGJhLCBib29sIGVuYWJsZSkNCiBzdGF0aWMgaW50IHVmc2hjZF93Yl9idWZf Zmx1c2hfZW5hYmxlKHN0cnVjdCB1ZnNfaGJhICpoYmEpDQogew0KIAlpbnQgcmV0Ow0KKwl1OCBp bmRleDsNCiANCiAJaWYgKCF1ZnNoY2Rfd2Jfc3VwKGhiYSkgfHwgaGJhLT53Yl9idWZfZmx1c2hf ZW5hYmxlZCkNCiAJCXJldHVybiAwOw0KIA0KKwlpbmRleCA9IHVmc2hjZF93Yl9nZXRfZmxhZ19p bmRleChoYmEpOw0KIAlyZXQgPSB1ZnNoY2RfcXVlcnlfZmxhZ19yZXRyeShoYmEsIFVQSVVfUVVF UllfT1BDT0RFX1NFVF9GTEFHLA0KIAkJCQkgICAgICBRVUVSWV9GTEFHX0lETl9XQl9CVUZGX0ZM VVNIX0VOLA0KLQkJCQkgICAgICAwLCBOVUxMKTsNCisJCQkJICAgICAgaW5kZXgsIE5VTEwpOw0K IAlpZiAocmV0KQ0KIAkJZGV2X2VycihoYmEtPmRldiwgIiVzIFdCIC0gYnVmIGZsdXNoIGVuYWJs ZSBmYWlsZWQgJWRcbiIsDQogCQkJX19mdW5jX18sIHJldCk7DQpAQCAtNTI4MCwxMiArNTI5NCwx NSBAQCBzdGF0aWMgaW50IHVmc2hjZF93Yl9idWZfZmx1c2hfZW5hYmxlKHN0cnVjdCB1ZnNfaGJh ICpoYmEpDQogc3RhdGljIGludCB1ZnNoY2Rfd2JfYnVmX2ZsdXNoX2Rpc2FibGUoc3RydWN0IHVm c19oYmEgKmhiYSkNCiB7DQogCWludCByZXQ7DQorCXU4IGluZGV4Ow0KIA0KIAlpZiAoIXVmc2hj ZF93Yl9zdXAoaGJhKSB8fCAhaGJhLT53Yl9idWZfZmx1c2hfZW5hYmxlZCkNCiAJCXJldHVybiAw Ow0KIA0KKwlpbmRleCA9IHVmc2hjZF93Yl9nZXRfZmxhZ19pbmRleChoYmEpOw0KIAlyZXQgPSB1 ZnNoY2RfcXVlcnlfZmxhZ19yZXRyeShoYmEsIFVQSVVfUVVFUllfT1BDT0RFX0NMRUFSX0ZMQUcs DQotCQkJCSAgICAgIFFVRVJZX0ZMQUdfSUROX1dCX0JVRkZfRkxVU0hfRU4sIDAsIE5VTEwpOw0K KwkJCQkgICAgICBRVUVSWV9GTEFHX0lETl9XQl9CVUZGX0ZMVVNIX0VOLA0KKwkJCQkgICAgICBp bmRleCwgTlVMTCk7DQogCWlmIChyZXQpIHsNCiAJCWRldl93YXJuKGhiYS0+ZGV2LCAiJXM6IFdC IC0gYnVmIGZsdXNoIGRpc2FibGUgZmFpbGVkICVkXG4iLA0KIAkJCSBfX2Z1bmNfXywgcmV0KTsN CkBAIC02ODA0LDYgKzY4MjEsMTAgQEAgc3RhdGljIGludCB1ZnNoY2Rfc2NzaV9hZGRfd2x1cyhz dHJ1Y3QgdWZzX2hiYSAqaGJhKQ0KIA0KIHN0YXRpYyB2b2lkIHVmc2hjZF93Yl9wcm9iZShzdHJ1 Y3QgdWZzX2hiYSAqaGJhLCB1OCAqZGVzY19idWYpDQogew0KKwlpbnQgcmV0Ow0KKwl1OCBsdW47 DQorCXUzMiBkX2x1X3diX2J1Zl9hbGxvYyA9IDA7DQorDQogCWlmICghdWZzaGNkX2lzX3diX2Fs bG93ZWQoaGJhKSkNCiAJCXJldHVybjsNCiANCkBAIC02ODI2LDE2ICs2ODQ3LDMzIEBAIHN0YXRp YyB2b2lkIHVmc2hjZF93Yl9wcm9iZShzdHJ1Y3QgdWZzX2hiYSAqaGJhLCB1OCAqZGVzY19idWYp DQogCWhiYS0+ZGV2X2luZm8uYl93Yl9idWZmZXJfdHlwZSA9DQogCQlkZXNjX2J1ZltERVZJQ0Vf REVTQ19QQVJBTV9XQl9UWVBFXTsNCiANCi0JaGJhLT5kZXZfaW5mby5kX3diX2FsbG9jX3VuaXRz ID0NCi0JCWdldF91bmFsaWduZWRfYmUzMihkZXNjX2J1ZiArDQotCQkJCSAgIERFVklDRV9ERVND X1BBUkFNX1dCX1NIQVJFRF9BTExPQ19VTklUUyk7DQogCWhiYS0+ZGV2X2luZm8uYl9wcmVzcnZf dXNwY19lbiA9DQogCQlkZXNjX2J1ZltERVZJQ0VfREVTQ19QQVJBTV9XQl9QUkVTUlZfVVNSU1BD X0VOXTsNCiANCi0JaWYgKCEoaGJhLT5kZXZfaW5mby5iX3diX2J1ZmZlcl90eXBlICYmDQotCSAg ICAgIGhiYS0+ZGV2X2luZm8uZF93Yl9hbGxvY191bml0cykpDQotCQlnb3RvIHdiX2Rpc2FibGVk Ow0KKwlpZiAoaGJhLT5kZXZfaW5mby5iX3diX2J1ZmZlcl90eXBlID09IFdCX0JVRl9NT0RFX1NI QVJFRCkgew0KKwkJaGJhLT5kZXZfaW5mby5kX3diX2FsbG9jX3VuaXRzID0NCisJCWdldF91bmFs aWduZWRfYmUzMihkZXNjX2J1ZiArDQorCQkJCSAgIERFVklDRV9ERVNDX1BBUkFNX1dCX1NIQVJF RF9BTExPQ19VTklUUyk7DQorCQlpZiAoIWhiYS0+ZGV2X2luZm8uZF93Yl9hbGxvY191bml0cykN CisJCQlnb3RvIHdiX2Rpc2FibGVkOw0KKwl9IGVsc2Ugew0KKwkJZm9yIChsdW4gPSAwOyBsdW4g PCBoYmEtPmRldl9pbmZvLm1heF9sdV9zdXBwb3J0ZWQ7IGx1bisrKSB7DQorCQkJcmV0ID0gdWZz aGNkX3JlYWRfdW5pdF9kZXNjX3BhcmFtKGhiYSwNCisJCQkJCWx1biwNCisJCQkJCVVOSVRfREVT Q19QQVJBTV9XQl9CVUZfQUxMT0NfVU5JVFMsDQorCQkJCQkodTggKikmZF9sdV93Yl9idWZfYWxs b2MsDQorCQkJCQlzaXplb2YoZF9sdV93Yl9idWZfYWxsb2MpKTsNCisJCQlpZiAocmV0KQ0KKwkJ CQlnb3RvIHdiX2Rpc2FibGVkOw0KKwkJCWlmIChkX2x1X3diX2J1Zl9hbGxvYykgew0KKwkJCQlo YmEtPmRldl9pbmZvLndiX2RlZGljYXRlZF9sdSA9IGx1bjsNCisJCQkJYnJlYWs7DQorCQkJfQ0K KwkJfQ0KIA0KKwkJaWYgKCFkX2x1X3diX2J1Zl9hbGxvYykNCisJCQlnb3RvIHdiX2Rpc2FibGVk Ow0KKwl9DQogCXJldHVybjsNCiANCiB3Yl9kaXNhYmxlZDoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L3Njc2kvdWZzL3Vmc2hjZC5oIGIvZHJpdmVycy9zY3NpL3Vmcy91ZnNoY2QuaA0KaW5kZXggZTU1 NWQ3OTRkNDQxLi41NzA5NjFhZGE1N2MgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvdWZzL3Vm c2hjZC5oDQorKysgYi9kcml2ZXJzL3Njc2kvdWZzL3Vmc2hjZC5oDQpAQCAtODIzLDYgKzgyMyw3 IEBAIHZvaWQgdWZzaGNkX2RlbGF5X3VzKHVuc2lnbmVkIGxvbmcgdXMsIHVuc2lnbmVkIGxvbmcg dG9sZXJhbmNlKTsNCiBpbnQgdWZzaGNkX3dhaXRfZm9yX3JlZ2lzdGVyKHN0cnVjdCB1ZnNfaGJh ICpoYmEsIHUzMiByZWcsIHUzMiBtYXNrLA0KIAkJCQl1MzIgdmFsLCB1bnNpZ25lZCBsb25nIGlu dGVydmFsX3VzLA0KIAkJCQl1bnNpZ25lZCBsb25nIHRpbWVvdXRfbXMsIGJvb2wgY2FuX3NsZWVw KTsNCitpbnQgdWZzaGNkX3diX2dldF9mbGFnX2luZGV4KHN0cnVjdCB1ZnNfaGJhICpoYmEpOw0K IHZvaWQgdWZzaGNkX3BhcnNlX2Rldl9yZWZfY2xrX2ZyZXEoc3RydWN0IHVmc19oYmEgKmhiYSwg c3RydWN0IGNsayAqcmVmY2xrKTsNCiB2b2lkIHVmc2hjZF91cGRhdGVfcmVnX2hpc3Qoc3RydWN0 IHVmc19lcnJfcmVnX2hpc3QgKnJlZ19oaXN0LA0KIAkJCSAgICB1MzIgcmVnKTsNCi0tIA0KMi4x OC4wDQo=