From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5339C2D0E7 for ; Wed, 1 Apr 2020 11:05:13 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 88D6620857 for ; Wed, 1 Apr 2020 11:05:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="iUvtOZKL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 88D6620857 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 4E18888C30; Wed, 1 Apr 2020 11:05:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FwHMubc4n9N9; Wed, 1 Apr 2020 11:05:12 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 5128B88C33; Wed, 1 Apr 2020 11:05:12 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 9CA721BF484 for ; Wed, 1 Apr 2020 11:05:10 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 9868225521 for ; Wed, 1 Apr 2020 11:05:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MmOBGKdSFixR for ; Wed, 1 Apr 2020 11:05:07 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2080.outbound.protection.outlook.com [40.107.92.80]) by silver.osuosl.org (Postfix) with ESMTPS id 7680B25877 for ; Wed, 1 Apr 2020 11:05:06 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IU1KLuT+XjnOvOM7FyShH9zSPM4yozWCwzMuiR/WKHVY8kv2kkYyb5/8c9qcCRqs4DTDyOsPq+fCZbXiZm3yB3p2vAGNyLMmLLBUxryFoX9uc/4R3C0YpEJPnd0FTnuquBC45/NovEHpvtGGw8jNkRPnCH179+dI4cYsDwHy+QtDjJx4xlVQpZ2Zz7vpq41twiptL8pscjZLkwv9JwV5IFciQ12aG38xoADcQO2+tCGjwOKgt88kR4pvnCXW0fLrJiYdw5D8Pho00kO3ZlvfMPqxX27eqxBPuM97tRNevtb7aD6Oq56RsJ79aOqR2TLEwQcsnxkDdBL+KkM39IcXbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5afC7/e2E2WYAJ4SwTxjg+t8JqdclpcyhV0d8Fdr3ss=; b=MbBlO4QQ+Lp3VKZjm+tZe9iuhNeH5ztVb4s2tALit5mwlVOwEWOpZ3qBZ8W4ck5S2cNZb/tS1y7roHNhF8Hbx7/DPFW7qTUJz/GheY+S36hZpzeYI07StdWzgtogIr5EAnv3E1XAXA/k8xP0Nm1rWAIUZsmxnMjkT9deFbQBUY8yYRLUayLFobL1lAfYjyvXA9PZ2ZDWZxM/VqBGyTPNbveD8uJQb053iUsMO3DyxVPH+vLoSv7ff7bOhXFatxoma+km+r0dg8JMh/obL9TceLm0PNHA+o6zDitJY3oYYIKlt0pCPY02bmq6mI6ncwd4A57zi01A6PZDiHcDZZptUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5afC7/e2E2WYAJ4SwTxjg+t8JqdclpcyhV0d8Fdr3ss=; b=iUvtOZKLHqCg2lJIEO+Ddt2eHqzKD5MjGcCS74810FKuziDMi4cVd6dKbxsZxSEKALcdfn+Br20kX+wYUvCPlC+W/yY/FWY/RDZQief3LbhwLyzEyir+iMLafTKV23nYJ6VSlqCfQ0j1J7vZ+fCESl1OylicnG0xoFSbFpFCQ8A= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerome.Pouiller@silabs.com; Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4285.namprd11.prod.outlook.com (2603:10b6:208:191::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.20; Wed, 1 Apr 2020 11:05:05 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::ade4:5702:1c8b:a2b3]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::ade4:5702:1c8b:a2b3%7]) with mapi id 15.20.2856.019; Wed, 1 Apr 2020 11:05:05 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Subject: [PATCH 22/32] staging: wfx: change the way to choose frame to send Date: Wed, 1 Apr 2020 13:03:55 +0200 Message-Id: <20200401110405.80282-23-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200401110405.80282-1-Jerome.Pouiller@silabs.com> References: <20200401110405.80282-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: SN4PR0501CA0156.namprd05.prod.outlook.com (2603:10b6:803:2c::34) To MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:1265:30ff:fefd:6e7f) by SN4PR0501CA0156.namprd05.prod.outlook.com (2603:10b6:803:2c::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.9 via Frontend Transport; Wed, 1 Apr 2020 11:05:03 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [2a01:e35:2435:66a0:1265:30ff:fefd:6e7f] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9aed5a88-ca27-4147-6eb8-08d7d62c8809 X-MS-TrafficTypeDiagnostic: MN2PR11MB4285: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 03607C04F0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(136003)(366004)(346002)(376002)(39850400004)(396003)(7696005)(8676002)(1076003)(16526019)(186003)(6666004)(5660300002)(86362001)(4326008)(66574012)(30864003)(52116002)(478600001)(66946007)(66476007)(54906003)(36756003)(8936002)(316002)(81156014)(6486002)(2906002)(66556008)(107886003)(81166006)(2616005)(43043002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: silabs.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2B4e0fQ3E/Bgqk+G5UOl+1NAT62eEHLa9X9ownQ+sinbVsuUqdm0xKdtfvCmOFSYiSiaSybzvPdpnLG4xdqbNOLLG/d5ksQ2lIgvl4zdDfJ1nmckEYLQyY6qaWe+A/IdxpxSbVZ5tvgV/VUycqWe7u3B/GdMPoq3O1q5oZDPWp1sEYg6BFJEf8x7yFE8bgXoBUUHdWoRCt4uINgJQblDY5XfY7YQcq7hQ3DLjz1aP9Qv81XUs/j1e/uYx7lyv5uzWTuPPCZPfbbZk+An6Y1BvwZKqYK1ir+j78S3vpIRZWNXll1fT94QCefkUlFmzV7boYkF7r5N/+NA1HLVaHbwI8QDYGg/pvDSPfSeWzTvGdv6nVk/5ASDtxPkqb1J9R7UXfB0qJ4HBkaU6HpsH9M7LeOTNwB0sjE7eEVHFV+loux1tyo8JAT1Xy4a4wEt1EBDcpHQ/AVMsoo+gZNAhEavE+Y4I90eHnAEv39ZbkDq21UJmlxsnToLszS5GZq1MW89 X-MS-Exchange-AntiSpam-MessageData: QfFAk8RoP033863JpAgQRfXTLWqN8sH5qOtcQyopEtxC8yXgOLp0KUp0oqYIaLsA3IrkgwZDSSz6Sut1lImjPyEko2gzn15XUhCixWdhwHfyDKlSBYjsSSaveyFhjleDStHR+VYjSC/wWtamSIopK5ovLBwhrwqIPwLNrP5+6mxROgkmVrxRhJi1PpHyAhII8dKf03ibm1JZDiNDLjuflw== X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9aed5a88-ca27-4147-6eb8-08d7d62c8809 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2020 11:05:04.8687 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cZJM4w1Th/IBphaOc7TKg5fqYkw2IShH1u/cSTYvguPpHLzbMMY92BJICvKlS/eqj1ef5zXAjt8zT9+VIvot7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4285 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Driver Project Developer List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , "David S . Miller" , Kalle Valo Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKVGhl IGN1cnJlbnQgY29kZSBjb21wdXRlcyBpdHNlbGYgdGhlIFFvUyBwb2xpY3kgdG8gY2hvb3NlIHdo aWNoIGZyYW1lCnNob3VsZCBiZSBzZW50LiBIb3dldmVyLCBmaXJtd2FyZSBhbHJlYWR5IGRvIHRo YXQgam9iLiBGaXJtd2FyZSB3b3VsZApwcmVmZXIgdG8gaGF2ZSBwYWNrZXRzIGluIGV2ZXJ5IHF1 ZXVlcyBhbmQgYmUgYWJsZSB0byBjaG9vc2UgaXRzZWxmCndoaWNoIHF1ZXVlIHRvIHVzZS4KClNv LCB0aGlzIHBhdGNoIHNvcnQgdGhlIHF1ZXVlcyBmcm9tIHRoZSBlbXB0aWVzdCB0byB0aGUgZnVs bGllc3QgKHRoYW5rcwp0byB0aGUgcGVuZGluZyBmcmFtZXMgY291bnRlciBpbnRyb2R1Y2VkIGEg ZmV3IGNvbW1pdHMgZWFybGllcikuIEl0IHNlbmQKZnJhbWUgdG8gdGhlIGxlYXN0IGZ1bGwgcXVl dWUuCgpIb3dldmVyLCB3ZSBjb250aW51ZSB0byBiZSBjYXJlZnVsIHdpdGggZnJhbWVzIHRoYXQg aGF2ZSB0byBiZSBzZW50CmFmdGVyIGEgZHRpbSAoImNhYiI6IENvbnRlbnQgQWZ0ZXIgKERUSU0p IEJlYWNvbikuCgpTbywgdGhpcyBwYXRjaCBzcGxpdHMgQUMgcXVldWVzIGluIHR3byBza2JfcXVl dWVzOiBvbmUgZm9yIG5vcm1hbCBmcmFtZXMKYW5kIGFub3RoZXIgZm9yIGNhYiBmcmFtZXMuIEl0 IGNhcmVzIHRvIHNlbmQgZnJhbWVzIGZyb20gQ0FCIHNrYl9xdWV1ZQppZiBhcHByb3ByaWF0ZS4K ClNpZ25lZC1vZmYtYnk6IErDqXLDtG1lIFBvdWlsbGVyIDxqZXJvbWUucG91aWxsZXJAc2lsYWJz LmNvbT4KLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMgfCAyMzggKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmggfCAg IDQgKy0KIDIgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMTQ4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuYyBiL2RyaXZlcnMvc3Rh Z2luZy93ZngvcXVldWUuYwppbmRleCAyMWEyYzhhYWJiYjkuLmI0NWZiODM3ZjFjZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvcXVldWUuYwpAQCAtODMsMTMgKzgzLDIwIEBAIHZvaWQgd2Z4X3R4X3F1ZXVlc193YWl0X2Vt cHR5X3ZpZihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAkJd2Z4X3R4X2xvY2tfZmx1c2god2Rldik7 CiAJCWZvciAoaSA9IDA7IGkgPCBJRUVFODAyMTFfTlVNX0FDUyAmJiBkb25lOyArK2kpIHsKIAkJ CXF1ZXVlID0gJndkZXYtPnR4X3F1ZXVlW2ldOwotCQkJc3Bpbl9sb2NrX2JoKCZxdWV1ZS0+cXVl dWUubG9jayk7Ci0JCQlza2JfcXVldWVfd2FsaygmcXVldWUtPnF1ZXVlLCBpdGVtKSB7Ci0JCQkJ aGlmID0gKHN0cnVjdCBoaWZfbXNnICopIGl0ZW0tPmRhdGE7CisJCQlzcGluX2xvY2tfYmgoJnF1 ZXVlLT5ub3JtYWwubG9jayk7CisJCQlza2JfcXVldWVfd2FsaygmcXVldWUtPm5vcm1hbCwgaXRl bSkgeworCQkJCWhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKWl0ZW0tPmRhdGE7CiAJCQkJaWYgKGhp Zi0+aW50ZXJmYWNlID09IHd2aWYtPmlkKQogCQkJCQlkb25lID0gZmFsc2U7CiAJCQl9Ci0JCQlz cGluX3VubG9ja19iaCgmcXVldWUtPnF1ZXVlLmxvY2spOworCQkJc3Bpbl91bmxvY2tfYmgoJnF1 ZXVlLT5ub3JtYWwubG9jayk7CisJCQlzcGluX2xvY2tfYmgoJnF1ZXVlLT5jYWIubG9jayk7CisJ CQlza2JfcXVldWVfd2FsaygmcXVldWUtPmNhYiwgaXRlbSkgeworCQkJCWhpZiA9IChzdHJ1Y3Qg aGlmX21zZyAqKWl0ZW0tPmRhdGE7CisJCQkJaWYgKGhpZi0+aW50ZXJmYWNlID09IHd2aWYtPmlk KQorCQkJCQlkb25lID0gZmFsc2U7CisJCQl9CisJCQlzcGluX3VubG9ja19iaCgmcXVldWUtPmNh Yi5sb2NrKTsKIAkJfQogCQlpZiAoIWRvbmUpIHsKIAkJCXdmeF90eF91bmxvY2sod2Rldik7CkBA IC0xMDMsNyArMTEwLDkgQEAgc3RhdGljIHZvaWQgd2Z4X3R4X3F1ZXVlX2NsZWFyKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSwKIHsKIAlzdHJ1Y3Qgc2tfYnVm ZiAqaXRlbTsKIAotCXdoaWxlICgoaXRlbSA9IHNrYl9kZXF1ZXVlKCZxdWV1ZS0+cXVldWUpKSAh PSBOVUxMKQorCXdoaWxlICgoaXRlbSA9IHNrYl9kZXF1ZXVlKCZxdWV1ZS0+bm9ybWFsKSkgIT0g TlVMTCkKKwkJc2tiX3F1ZXVlX2hlYWQoZ2NfbGlzdCwgaXRlbSk7CisJd2hpbGUgKChpdGVtID0g c2tiX2RlcXVldWUoJnF1ZXVlLT5jYWIpKSAhPSBOVUxMKQogCQlza2JfcXVldWVfaGVhZChnY19s aXN0LCBpdGVtKTsKIH0KIApAQCAtMTMxLDggKzE0MCwxMCBAQCB2b2lkIHdmeF90eF9xdWV1ZXNf aW5pdChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAlza2JfcXVldWVfaGVhZF9pbml0KCZ3ZGV2LT50 eF9xdWV1ZV9zdGF0cy5wZW5kaW5nKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZ3ZGV2LT50eF9x dWV1ZV9zdGF0cy53YWl0X2xpbmtfaWRfZW1wdHkpOwogCi0JZm9yIChpID0gMDsgaSA8IElFRUU4 MDIxMV9OVU1fQUNTOyArK2kpCi0JCXNrYl9xdWV1ZV9oZWFkX2luaXQoJndkZXYtPnR4X3F1ZXVl W2ldLnF1ZXVlKTsKKwlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9BQ1M7ICsraSkgewor CQlza2JfcXVldWVfaGVhZF9pbml0KCZ3ZGV2LT50eF9xdWV1ZVtpXS5ub3JtYWwpOworCQlza2Jf cXVldWVfaGVhZF9pbml0KCZ3ZGV2LT50eF9xdWV1ZVtpXS5jYWIpOworCX0KIH0KIAogdm9pZCB3 ZnhfdHhfcXVldWVzX2RlaW5pdChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKQEAgLTE0MSw1NyArMTUy LDE1IEBAIHZvaWQgd2Z4X3R4X3F1ZXVlc19kZWluaXQoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJ d2Z4X3R4X3F1ZXVlc19jbGVhcih3ZGV2KTsKIH0KIAotaW50IHdmeF90eF9xdWV1ZV9nZXRfbnVt X3F1ZXVlZChzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSkKLXsKLQlzdHJ1Y3QgaWVlZTgwMjExX3R4 X2luZm8gKnR4X2luZm87Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKLQlpbnQgcmV0ID0gMDsKLQot CXNwaW5fbG9ja19iaCgmcXVldWUtPnF1ZXVlLmxvY2spOwotCXNrYl9xdWV1ZV93YWxrKCZxdWV1 ZS0+cXVldWUsIHNrYikgewotCQl0eF9pbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2IpOwotCQlp ZiAoISh0eF9pbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKSkK LQkJCXJldCsrOwotCX0KLQlzcGluX3VubG9ja19iaCgmcXVldWUtPnF1ZXVlLmxvY2spOwotCXJl dHVybiByZXQ7Ci19Ci0KIHZvaWQgd2Z4X3R4X3F1ZXVlX3B1dChzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwgc3RydWN0IHdmeF9xdWV1ZSAqcXVldWUsCiAJCSAgICAgIHN0cnVjdCBza19idWZmICpza2Ip CiB7Ci0Jc2tiX3F1ZXVlX3RhaWwoJnF1ZXVlLT5xdWV1ZSwgc2tiKTsKLX0KKwlzdHJ1Y3QgaWVl ZTgwMjExX3R4X2luZm8gKnR4X2luZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7CiAKLXN0YXRp YyBzdHJ1Y3Qgc2tfYnVmZiAqd2Z4X3R4X3F1ZXVlX2dldChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwK LQkJCQkJc3RydWN0IHdmeF9xdWV1ZSAqcXVldWUsCi0JCQkJCWJvb2wgbWNhc3QpCi17Ci0Jc3Ry dWN0IHdmeF9xdWV1ZV9zdGF0cyAqc3RhdHMgPSAmd2Rldi0+dHhfcXVldWVfc3RhdHM7Ci0Jc3Ry dWN0IGllZWU4MDIxMV90eF9pbmZvICp0eF9pbmZvOwotCXN0cnVjdCBza19idWZmICppdGVtLCAq c2tiID0gTlVMTDsKLQlzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKnR4X3ByaXY7Ci0KLQlzcGluX2xvY2tf YmgoJnF1ZXVlLT5xdWV1ZS5sb2NrKTsKLQlza2JfcXVldWVfd2FsaygmcXVldWUtPnF1ZXVlLCBp dGVtKSB7Ci0JCXR4X2luZm8gPSBJRUVFODAyMTFfU0tCX0NCKGl0ZW0pOwotCQlpZiAobWNhc3Qg PT0gISEodHhfaW5mby0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRfQUZURVJfRFRJTSkp IHsKLQkJCXNrYiA9IGl0ZW07Ci0JCQlicmVhazsKLQkJfQotCX0KLQlzcGluX3VubG9ja19iaCgm cXVldWUtPnF1ZXVlLmxvY2spOwotCWlmIChza2IpIHsKLQkJc2tiX3VubGluayhza2IsICZxdWV1 ZS0+cXVldWUpOwotCQlhdG9taWNfaW5jKCZxdWV1ZS0+cGVuZGluZ19mcmFtZXMpOwotCQl0eF9w cml2ID0gd2Z4X3NrYl90eF9wcml2KHNrYik7Ci0JCXR4X3ByaXYtPnhtaXRfdGltZXN0YW1wID0g a3RpbWVfZ2V0KCk7Ci0JCXNrYl9xdWV1ZV90YWlsKCZzdGF0cy0+cGVuZGluZywgc2tiKTsKLQkJ aWYgKHNrYl9xdWV1ZV9lbXB0eSgmcXVldWUtPnF1ZXVlKSkKLQkJCXdha2VfdXAoJnN0YXRzLT53 YWl0X2xpbmtfaWRfZW1wdHkpOwotCQlyZXR1cm4gc2tiOwotCX0KLQlyZXR1cm4gc2tiOworCWlm ICh0eF9pbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKQorCQlz a2JfcXVldWVfdGFpbCgmcXVldWUtPmNhYiwgc2tiKTsKKwllbHNlCisJCXNrYl9xdWV1ZV90YWls KCZxdWV1ZS0+bm9ybWFsLCBza2IpOwogfQogCiBpbnQgd2Z4X3BlbmRpbmdfcmVxdWV1ZShzdHJ1 Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKQEAgLTIwNCw3ICsxNzMsNyBA QCBpbnQgd2Z4X3BlbmRpbmdfcmVxdWV1ZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHNr X2J1ZmYgKnNrYikKIAogCWF0b21pY19kZWMoJnF1ZXVlLT5wZW5kaW5nX2ZyYW1lcyk7CiAJc2ti X3VubGluayhza2IsICZzdGF0cy0+cGVuZGluZyk7Ci0Jc2tiX3F1ZXVlX3RhaWwoJnF1ZXVlLT5x dWV1ZSwgc2tiKTsKKwl3ZnhfdHhfcXVldWVfcHV0KHdkZXYsIHF1ZXVlLCBza2IpOwogCXJldHVy biAwOwogfQogCkBAIC0yODIsMjAgKzI1MSwxNSBAQCB1bnNpZ25lZCBpbnQgd2Z4X3BlbmRpbmdf Z2V0X3BrdF91c19kZWxheShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIGJvb2wgd2Z4X3R4X3F1ZXVl c19oYXNfY2FiKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogewogCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2 ID0gd3ZpZi0+d2RldjsKLQlzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKnR4X2luZm87Ci0Jc3Ry dWN0IGhpZl9tc2cgKmhpZjsKLQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCWludCBpOwogCi0JZm9y IChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyArK2kpIHsKLQkJc2tiX3F1ZXVlX3dhbGso JndkZXYtPnR4X3F1ZXVlW2ldLnF1ZXVlLCBza2IpIHsKLQkJCXR4X2luZm8gPSBJRUVFODAyMTFf U0tCX0NCKHNrYik7Ci0JCQloaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7Ci0JCQlp ZiAoKHR4X2luZm8tPmZsYWdzICYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pICYm Ci0JCQkgICAgKGhpZi0+aW50ZXJmYWNlID09IHd2aWYtPmlkKSkKLQkJCQlyZXR1cm4gdHJ1ZTsK LQkJfQotCX0KKwlpZiAod3ZpZi0+dmlmLT50eXBlICE9IE5MODAyMTFfSUZUWVBFX0FQKQorCQly ZXR1cm4gZmFsc2U7CisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyArK2kpCisJ CS8vIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2FuIGhhdmUgbWNhc3QgZnJhbWVzIGluIHF1ZXVlIGFu ZCBvbmx5CisJCS8vIG9uZSB2aWYgY2FuIGJlIEFQLCBhbGwgcXVldWVkIGZyYW1lcyBoYXMgc2Ft ZSBpbnRlcmZhY2UgaWQKKwkJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJndkZXYtPnR4 X3F1ZXVlW2ldLmNhYikpCisJCQlyZXR1cm4gdHJ1ZTsKIAlyZXR1cm4gZmFsc2U7CiB9CiAKQEAg LTMwNCw3ICsyNjgsOCBAQCBib29sIHdmeF90eF9xdWV1ZXNfZW1wdHkoc3RydWN0IHdmeF9kZXYg KndkZXYpCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9BQ1M7IGkr KykKLQkJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJndkZXYtPnR4X3F1ZXVlW2ldLnF1 ZXVlKSkKKwkJaWYgKCFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJndkZXYtPnR4X3F1ZXVlW2ld Lm5vcm1hbCkgfHwKKwkJICAgICFza2JfcXVldWVfZW1wdHlfbG9ja2xlc3MoJndkZXYtPnR4X3F1 ZXVlW2ldLmNhYikpCiAJCQlyZXR1cm4gZmFsc2U7CiAJcmV0dXJuIHRydWU7CiB9CkBAIC0zNTAs OTUgKzMxNSw3NiBAQCBzdGF0aWMgYm9vbCB3ZnhfaGFuZGxlX3R4X2RhdGEoc3RydWN0IHdmeF9k ZXYgKndkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJfQogfQogCi1zdGF0aWMgc3RydWN0IHdm eF9xdWV1ZSAqd2Z4X3R4X3F1ZXVlX21hc2tfZ2V0KHN0cnVjdCB3ZnhfdmlmICp3dmlmKQorc3Rh dGljIHN0cnVjdCBza19idWZmICp3ZnhfdHhfcXVldWVzX2dldF9za2Ioc3RydWN0IHdmeF9kZXYg KndkZXYpCiB7Ci0JY29uc3Qgc3RydWN0IGllZWU4MDIxMV90eF9xdWV1ZV9wYXJhbXMgKmVkY2E7 Ci0JdW5zaWduZWQgaW50IHNjb3JlLCBiZXN0ID0gLTE7Ci0JaW50IHdpbm5lciA9IC0xOwotCWlu dCBpOwotCi0JLyogc2VhcmNoIGZvciBhIHdpbm5lciB1c2luZyBlZGNhIHBhcmFtcyAqLwotCWZv ciAoaSA9IDA7IGkgPCBJRUVFODAyMTFfTlVNX0FDUzsgKytpKSB7Ci0JCWludCBxdWV1ZWQ7Ci0K LQkJZWRjYSA9ICZ3dmlmLT5lZGNhX3BhcmFtc1tpXTsKLQkJcXVldWVkID0gd2Z4X3R4X3F1ZXVl X2dldF9udW1fcXVldWVkKCZ3dmlmLT53ZGV2LT50eF9xdWV1ZVtpXSk7Ci0JCWlmICghcXVldWVk KQotCQkJY29udGludWU7Ci0JCXNjb3JlID0gKChlZGNhLT5haWZzICsgZWRjYS0+Y3dfbWluKSA8 PCAxNikgKwotCQkJKChlZGNhLT5jd19tYXggLSBlZGNhLT5jd19taW4pICoKLQkJCSAoZ2V0X3Jh bmRvbV9pbnQoKSAmIDB4RkZGRikpOwotCQlpZiAoc2NvcmUgPCBiZXN0ICYmICh3aW5uZXIgPCAw IHx8IGkgIT0gMykpIHsKLQkJCWJlc3QgPSBzY29yZTsKLQkJCXdpbm5lciA9IGk7Ci0JCX0KLQl9 Ci0KLQlpZiAod2lubmVyIDwgMCkKLQkJcmV0dXJuIE5VTEw7Ci0JcmV0dXJuICZ3dmlmLT53ZGV2 LT50eF9xdWV1ZVt3aW5uZXJdOwotfQotCi1zdHJ1Y3QgaGlmX21zZyAqd2Z4X3R4X3F1ZXVlc19n ZXQoc3RydWN0IHdmeF9kZXYgKndkZXYpCi17Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKLQlzdHJ1 Y3QgaGlmX21zZyAqaGlmID0gTlVMTDsKLQlzdHJ1Y3Qgd2Z4X3F1ZXVlICpxdWV1ZSA9IE5VTEw7 Ci0Jc3RydWN0IHdmeF9xdWV1ZSAqdmlmX3F1ZXVlID0gTlVMTDsKKwlzdHJ1Y3Qgd2Z4X3F1ZXVl ICpzb3J0ZWRfcXVldWVzW0lFRUU4MDIxMV9OVU1fQUNTXTsKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp ZjsKLQlpbnQgaTsKLQotCWlmIChhdG9taWNfcmVhZCgmd2Rldi0+dHhfbG9jaykpCi0JCXJldHVy biBOVUxMOworCXN0cnVjdCBoaWZfbXNnICpoaWY7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKwlp bnQgaSwgajsKIAorCS8vIGJ1YmJsZSBzb3J0CisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9O VU1fQUNTOyBpKyspIHsKKwkJc29ydGVkX3F1ZXVlc1tpXSA9ICZ3ZGV2LT50eF9xdWV1ZVtpXTsK KwkJZm9yIChqID0gaTsgaiA+IDA7IGotLSkKKwkJCWlmIChhdG9taWNfcmVhZCgmc29ydGVkX3F1 ZXVlc1tqXS0+cGVuZGluZ19mcmFtZXMpID4KKwkJCSAgICBhdG9taWNfcmVhZCgmc29ydGVkX3F1 ZXVlc1tqIC0gMV0tPnBlbmRpbmdfZnJhbWVzKSkKKwkJCQlzd2FwKHNvcnRlZF9xdWV1ZXNbaiAt IDFdLCBzb3J0ZWRfcXVldWVzW2pdKTsKKwl9CiAJd3ZpZiA9IE5VTEw7CiAJd2hpbGUgKCh3dmlm ID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7Ci0JCWlmICh3dmlmLT5hZnRl cl9kdGltX3R4X2FsbG93ZWQpIHsKLQkJCWZvciAoaSA9IDA7IGkgPCBJRUVFODAyMTFfTlVNX0FD UzsgKytpKSB7Ci0JCQkJc2tiID0gd2Z4X3R4X3F1ZXVlX2dldCh3dmlmLT53ZGV2LAotCQkJCQkJ ICAgICAgICZ3ZGV2LT50eF9xdWV1ZVtpXSwKLQkJCQkJCSAgICAgICB0cnVlKTsKLQkJCQlpZiAo c2tiKSB7Ci0JCQkJCWhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKLQkJCQkJLy8g Q2Fubm90IGhhcHBlbiBzaW5jZSBvbmx5IG9uZSB2aWYgY2FuCi0JCQkJCS8vIGJlIEFQIGF0IHRp bWUKLQkJCQkJV0FSTl9PTih3dmlmLT5pZCAhPSBoaWYtPmludGVyZmFjZSk7Ci0JCQkJCXJldHVy biBoaWY7Ci0JCQkJfQotCQkJfQotCQkJLy8gTm8gbW9yZSBtdWx0aWNhc3QgdG8gc2VudAotCQkJ d3ZpZi0+YWZ0ZXJfZHRpbV90eF9hbGxvd2VkID0gZmFsc2U7Ci0JCQlzY2hlZHVsZV93b3JrKCZ3 dmlmLT51cGRhdGVfdGltX3dvcmspOworCQlpZiAoIXd2aWYtPmFmdGVyX2R0aW1fdHhfYWxsb3dl ZCkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9BQ1M7IGkr KykgeworCQkJc2tiID0gc2tiX2RlcXVldWUoJnNvcnRlZF9xdWV1ZXNbaV0tPmNhYik7CisJCQlp ZiAoIXNrYikKKwkJCQljb250aW51ZTsKKwkJCS8vIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2FuIGhh dmUgbWNhc3QgZnJhbWVzIGluIHF1ZXVlCisJCQkvLyBhbmQgb25seSBvbmUgdmlmIGNhbiBiZSBB UCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzCisJCQkvLyBzYW1lIGludGVyZmFjZSBpZAorCQkJaGlm ID0gKHN0cnVjdCBoaWZfbXNnICopc2tiLT5kYXRhOworCQkJV0FSTl9PTihoaWYtPmludGVyZmFj ZSAhPSB3dmlmLT5pZCk7CisJCQlXQVJOX09OKHNvcnRlZF9xdWV1ZXNbaV0gIT0KKwkJCQkmd2Rl di0+dHhfcXVldWVbc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYildKTsKKwkJCWF0b21pY19pbmMo JnNvcnRlZF9xdWV1ZXNbaV0tPnBlbmRpbmdfZnJhbWVzKTsKKwkJCXJldHVybiBza2I7CiAJCX0K KwkJLy8gTm8gbW9yZSBtdWx0aWNhc3QgdG8gc2VudAorCQl3dmlmLT5hZnRlcl9kdGltX3R4X2Fs bG93ZWQgPSBmYWxzZTsKKwkJc2NoZWR1bGVfd29yaygmd3ZpZi0+dXBkYXRlX3RpbV93b3JrKTsK IAl9CisJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNTOyBpKyspIHsKKwkJc2tiID0g c2tiX2RlcXVldWUoJnNvcnRlZF9xdWV1ZXNbaV0tPm5vcm1hbCk7CisJCWlmIChza2IpIHsKKwkJ CVdBUk5fT04oc29ydGVkX3F1ZXVlc1tpXSAhPQorCQkJCSZ3ZGV2LT50eF9xdWV1ZVtza2JfZ2V0 X3F1ZXVlX21hcHBpbmcoc2tiKV0pOworCQkJYXRvbWljX2luYygmc29ydGVkX3F1ZXVlc1tpXS0+ cGVuZGluZ19mcmFtZXMpOworCQkJcmV0dXJuIHNrYjsKKwkJfQorCX0KKwlyZXR1cm4gTlVMTDsK K30KKworc3RydWN0IGhpZl9tc2cgKndmeF90eF9xdWV1ZXNfZ2V0KHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2KQoreworCXN0cnVjdCB3ZnhfdHhfcHJpdiAqdHhfcHJpdjsKKwlzdHJ1Y3Qgc2tfYnVmZiAq c2tiOworCisJaWYgKGF0b21pY19yZWFkKCZ3ZGV2LT50eF9sb2NrKSkKKwkJcmV0dXJuIE5VTEw7 CiAKIAlmb3IgKDs7KSB7Ci0JCWludCByZXQgPSAtRU5PRU5UOwotCQlpbnQgcXVldWVfbnVtOwot Ci0JCXd2aWYgPSBOVUxMOwotCQl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rldiwgd3Zp ZikpICE9IE5VTEwpIHsKLQkJCXZpZl9xdWV1ZSA9IHdmeF90eF9xdWV1ZV9tYXNrX2dldCh3dmlm KTsKLQkJCWlmICh2aWZfcXVldWUpIHsKLQkJCQlpZiAocXVldWUgJiYgcXVldWUgIT0gdmlmX3F1 ZXVlKQotCQkJCQlkZXZfaW5mbyh3ZGV2LT5kZXYsICJ2aWZzIGRpc2FncmVlIGFib3V0IHF1ZXVl IHByaW9yaXR5XG4iKTsKLQkJCQlxdWV1ZSA9IHZpZl9xdWV1ZTsKLQkJCQlyZXQgPSAwOwotCQkJ fQotCQl9Ci0KLQkJaWYgKHJldCkKLQkJCXJldHVybiBOVUxMOwotCi0JCXF1ZXVlX251bSA9IHF1 ZXVlIC0gd2Rldi0+dHhfcXVldWU7Ci0KLQkJc2tiID0gd2Z4X3R4X3F1ZXVlX2dldCh3ZGV2LCBx dWV1ZSwgZmFsc2UpOworCQlza2IgPSB3ZnhfdHhfcXVldWVzX2dldF9za2Iod2Rldik7CiAJCWlm ICghc2tiKQotCQkJY29udGludWU7Ci0KKwkJCXJldHVybiBOVUxMOworCQlza2JfcXVldWVfdGFp bCgmd2Rldi0+dHhfcXVldWVfc3RhdHMucGVuZGluZywgc2tiKTsKKwkJaWYgKHdmeF90eF9xdWV1 ZXNfZW1wdHkod2RldikpCisJCQl3YWtlX3VwKCZ3ZGV2LT50eF9xdWV1ZV9zdGF0cy53YWl0X2xp bmtfaWRfZW1wdHkpOworCQkvLyBGSVhNRTogaXMgaXQgdXNlZnVsPwogCQlpZiAod2Z4X2hhbmRs ZV90eF9kYXRhKHdkZXYsIHNrYikpCi0JCQljb250aW51ZTsgIC8qIEhhbmRsZWQgYnkgV1NNICov Ci0KKwkJCWNvbnRpbnVlOworCQl0eF9wcml2ID0gd2Z4X3NrYl90eF9wcml2KHNrYik7CisJCXR4 X3ByaXYtPnhtaXRfdGltZXN0YW1wID0ga3RpbWVfZ2V0KCk7CiAJCXJldHVybiAoc3RydWN0IGhp Zl9tc2cgKilza2ItPmRhdGE7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dm eC9xdWV1ZS5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5oCmluZGV4IGMyNGI4Y2Q0MWE3 OC4uOGU5OWJiMjc5MmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmgK KysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5oCkBAIC0yMCw3ICsyMCw4IEBAIHN0cnVj dCB3ZnhfZGV2Owogc3RydWN0IHdmeF92aWY7CiAKIHN0cnVjdCB3ZnhfcXVldWUgewotCXN0cnVj dCBza19idWZmX2hlYWQJcXVldWU7CisJc3RydWN0IHNrX2J1ZmZfaGVhZAlub3JtYWw7CisJc3Ry dWN0IHNrX2J1ZmZfaGVhZAljYWI7IC8vIENvbnRlbnQgQWZ0ZXIgKERUSU0pIEJlYWNvbgogCWF0 b21pY190CQlwZW5kaW5nX2ZyYW1lczsKIH07CiAKQEAgLTQ0LDcgKzQ1LDYgQEAgc3RydWN0IGhp Zl9tc2cgKndmeF90eF9xdWV1ZXNfZ2V0KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsKIAogdm9pZCB3 ZnhfdHhfcXVldWVfcHV0KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3Qgd2Z4X3F1ZXVlICpx dWV1ZSwKIAkJICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7Ci1pbnQgd2Z4X3R4X3F1ZXVlX2dl dF9udW1fcXVldWVkKHN0cnVjdCB3ZnhfcXVldWUgKnF1ZXVlKTsKIAogc3RydWN0IHNrX2J1ZmYg KndmeF9wZW5kaW5nX2dldChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIHBhY2tldF9pZCk7CiBp bnQgd2Z4X3BlbmRpbmdfcmVtb3ZlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKTsKLS0gCjIuMjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZGV2ZWwgbWFpbGluZyBsaXN0CmRldmVsQGxpbnV4ZHJpdmVycHJvamVjdC5v cmcKaHR0cDovL2RyaXZlcmRldi5saW51eGRyaXZlcnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpdmVyZGV2LWRldmVsCg==