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 0A683C54EE9 for ; Mon, 19 Sep 2022 15:57:00 +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=K/S7jR3R5IccOd2Aa48E8plYCUc4yVUfl1QUYu9yE58=; b=aiGuMxz4zY3eWS 9qhxZO7QsxYiZWAvXroEMHg7wFxQ6sx678PyJt9oByb8MITjMAlo14zdW+xp3XqR4RsnkQrSIrZOR WfDDv3RqgCpESK1sKvL42AmU8WYDO/FCdGtkWwf0LEtO9JMXppuhQAHtNejlTRauOiU+KVnNW7Qbh 7rHBQlx2laZNGIP0X1SMQ8qEOQpzLMEAsyM3HUayqzZ7bz99EeSvGIQ5yvByKitaG7dk5jAvLXbLE Ze0XANuoJPcldKNKlUV0CX2ZEmTYRmbBEmAT3P+UPN/kjFO/EA1uclG4/E+S2uPuzmiogh3baChkP MU1U46UhKfamJFx3WNEw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oaJ7A-00CgDQ-Le; Mon, 19 Sep 2022 15:55:24 +0000 Received: from mail-vi1eur05on2072.outbound.protection.outlook.com ([40.107.21.72] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oaIts-00Ca5C-QG for linux-arm-kernel@lists.infradead.org; Mon, 19 Sep 2022 15:41:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AQV8xU7mPAKg165oPpAUJmJQda+r+0P4FCc8X/jHmaqD9pr4Kvl8MqAMJ3ID2bqaCZ28aKn9TD71Wff0n3Pdgu83kkBpUAaviv9CR0atKzRJZs+un2TnZb780TqWF1QWIi76NgI7W8mNDNQ/uxlAVvJBqts5bYadRPhnZLeHK4zK03vPRTqE7lPJQHhew6dRJ6BRovFbHRC0P2m032RNCMIpS1BdmyQxM3ry5ZYwDp7ap9glTLGz/TYbKAFCy/l0YnV2urGBSESo6d8GKAJ8HUY2W3yhAqa4UtrX8RLNV/hcv8Pi+dvAaeAyB1DYPqX5RTMqAT55ix0SM7PVSjVEbA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=S+y6KFDFpJGY3mCQokZytDF6vDhQSn1oubXHZ9oJp70=; b=lKE/oZ0ddbeqyoFeJ//mynRp8CR78Ra2rmooAPv/pQ5ydb05f6bordqP3R66LUVUo3XvhLWJPn7n1K9aIpiSkfRRvhSarb/t/fwQOYg6WOKiNG9eZdGIPpigixgkGz9LSw9JqEJhWLjaCJVTNgnuJalUDpZRTh1BsFvo4XhyGUgXZrVROqMsRNCmw9aoXrlR6yi3QeP3fpZnNp4OunnEXzexnPG3cXqht2IxGFU80mf0CH31YsBshPeckiZeboMEu05H+L3jOoRH7iJe3jLJzxg33qpY2CfVWOGOoYEpN1vtFT2Ds982QgSY1HEAAdo5tURnI65Iosdz6aSjJkxCWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S+y6KFDFpJGY3mCQokZytDF6vDhQSn1oubXHZ9oJp70=; b=GSWRiPB0gQ7prdwU4bNaO069n8Z96FzB6TntBqZu9PkQnw+58rHt8Pr92E29MXZRsI3bevVD5qHx+IVtI8/fIMQ3zVQMzt15ozC+aM74/CdcLzHbQ3d60S8aJvo3v2TgK3lDezAAowg34N/uL9fHu8wHB7g8ADu8mn9rXI3eo3A= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8793.eurprd04.prod.outlook.com (2603:10a6:20b:408::22) by VI1PR04MB7165.eurprd04.prod.outlook.com (2603:10a6:800:125::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.19; Mon, 19 Sep 2022 15:41:34 +0000 Received: from AM9PR04MB8793.eurprd04.prod.outlook.com ([fe80::5a3:ff70:317d:a99e]) by AM9PR04MB8793.eurprd04.prod.outlook.com ([fe80::5a3:ff70:317d:a99e%7]) with mapi id 15.20.5632.021; Mon, 19 Sep 2022 15:41:34 +0000 From: Frank Li To: maz@kernel.org, tglx@linutronix.de, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kw@linux.com, bhelgaas@google.com Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, peng.fan@nxp.com, aisheng.dong@nxp.com, jdmason@kudzu.us, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, kishon@ti.com, lorenzo.pieralisi@arm.com, ntb@lists.linux.dev, lznuaa@gmail.com, imx@lists.linux.dev, manivannan.sadhasivam@linaro.org Subject: [PATCH v11 6/6] PCI: endpoint: Add vNTB MSI support Date: Mon, 19 Sep 2022 10:40:38 -0500 Message-Id: <20220919154038.187168-7-Frank.Li@nxp.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220919154038.187168-1-Frank.Li@nxp.com> References: <20220919154038.187168-1-Frank.Li@nxp.com> X-ClientProxiedBy: BY3PR05CA0059.namprd05.prod.outlook.com (2603:10b6:a03:39b::34) To AM9PR04MB8793.eurprd04.prod.outlook.com (2603:10a6:20b:408::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8793:EE_|VI1PR04MB7165:EE_ X-MS-Office365-Filtering-Correlation-Id: 5bf9d996-843c-4df6-f113-08da9a556e7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rg7vXEHW7QxHfx9n87hsV/AQffiC5lntVSRgzKN2Ahfy/6giB3wfjF++fXjRxtNYJa2hXPsecxTMfmzT7HOrE67fVRC3NtuBWWT96qk78oAkiACZySlI2q5SSxQikR5P5DQYvVO5Mk5Lcql6FgAop+Jy5XG7qhWUKL0ljh0PPBCbcwqQcVe7Ubh+X61KWO5ghJS6GiIPwQAhY4DBxSKQwNToy1q4jUVtisR24dGLpR9lm7aR4Al8XwSWmjzZ/aVqv6VLy6iD+q4fOIBfQ6i1HHma6AwTgGWi4I5mm4xHHdEf09OtV0jA0PUoln43DE/tarFAAAYzual5kju7D/JcJnsK6tAVoFw+ZROOMXskOIHxzvRe49MIFgRf+CS9YsCx1hMhF+KntFylLJT5VOTXIPHYzYEMUP/Xq3iqWvl07i67YGpogVjkBGnq/XGi/xJbRpgF0UkTbVMK8FV1SbV0B3ekZS+uq79ejjWOgz58yCHe1B34q1c0oAf7itgsL7s8rXHuzR+JK+o+RX09LpjkxHkp92TbV8uekL8baX5OSgX/i8pRXVv5AID+Mqmx0GA1efgcbKXxtDqmS97TnO5KzH+h+OuM/sGmmJkf9D39RLBh7skVQLFn3U/KWXhHqKtMm+QclU3CijgNKvwpkm0HTddirOwO4qRJwW0PBnJWivin77sVL4HfO0rqmfnWJ492E/OIdOO0TB6QCsJe7BJw0jt5qWjK7UTEvYFhEN04slGty8VTya9jogR6hTq7pSJLWuT/Fd4gvYG9H5Aw1bYmRg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR04MB8793.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(366004)(396003)(346002)(376002)(136003)(451199015)(4326008)(36756003)(1076003)(2906002)(2616005)(66946007)(38100700002)(38350700002)(83380400001)(8936002)(6486002)(186003)(66556008)(66476007)(478600001)(86362001)(8676002)(6512007)(26005)(316002)(41300700001)(5660300002)(52116002)(6506007)(7416002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eFZoeWoyZzMrbDRRMUIxN1dLek5NN0JlNFNqMm1ER0VRc3FFMEVhWW1RK2lC?= =?utf-8?B?QjdXQlY5TThaNGgxdlBxV1VkVFBadlhubWRzV3VoZTFlL2hVOXhRWkxHRHA1?= =?utf-8?B?U3ZqTW1YNS95VmVqY0NvdFBuWE5KbUlybmlqRTJUSXA5YzZ1OWg5ZCtUS2o1?= =?utf-8?B?ZWFlWSthTzdlUEw0aTN0dkpjSDgxUlkxbXc5dHA5YnZxaStDZmxDczF3WHZU?= =?utf-8?B?aVNZR0FaZm5vaVhYQUdzZkdEa1oyVitpclVwZFNVVy9ZWVl3cDhuZ2E4Sy9z?= =?utf-8?B?UEZ1YVpFY05waGl1L3hKdUw5aTM0MnZhc0pvM1p3RkNWY3Urd3VSRnM1MFJm?= =?utf-8?B?VndRK0duUHlyekF3d2xaait5a1g4R25pUFAvbW1ZU3o2QUdWanB5M09raUx2?= =?utf-8?B?NU1zdVhNQTkvYkhzUFVoWEpXZmNWa3JoT3l6dkFOMHAzVmc1N3RlYU1sak5O?= =?utf-8?B?bWtZdk82V240TzR0ajRpUC9hSnVMb0lDWDFKQmNzWnpaV05LNmZ5VUs2R0JC?= =?utf-8?B?U043RllnajN4S09CZmFEWWRHT2o4c3FNMUtrbXA4VTcvT2FBMFRBekFBeElO?= =?utf-8?B?WXMyRCtaa2JxVG9uS3NxaGJXZ3c3ZklmZ2xDbWMvR0MrVmxOM0lsMkZZei8y?= =?utf-8?B?cnk4TUVMajY3SEJLWEtqLzIyUUlHVUYvZ3NjaGFRcjdVelJPS3R6eWgzenhL?= =?utf-8?B?T1ZUR0tPbEIyOGJ6VDFmRzJLcEk5UWVhRHdpUmE0aktqYnRRL21TWkxGeWRj?= =?utf-8?B?empNZ0xqTURScmZMaEMzaSt5akErSDJpRkgrbG5NbnFVZDZwVEgxUnRHZXJI?= =?utf-8?B?UGxOaG41MTdGZVRRZ3B3Zlp5SFNKTUVmaCtaWlhZK3ZNNGJDYldyUmlGeGJy?= =?utf-8?B?YmJXYzNZQmVJMmpQQ0NQanN3bC9VWWYzZEdCeGpZOHAzb1BsU3pYcU9kTktG?= =?utf-8?B?TFdMcWRLeHhoZC8yd00rcVVBSVJXNVRvR1JWM09MaE5HZ1NERzJzeTIrWVhD?= =?utf-8?B?NkV1UW1hQmNtMXYyejV5VEdSNXFzNzJQUktvditNZHdiWkFRc0kwT1lFbW9j?= =?utf-8?B?K2lFV3ZLNXZaTzZjSkZNRzU5VmdtU3FWYW8wVXk4NmprR2owNHdzc2xYU255?= =?utf-8?B?UDR1S1Exc21ObkRmaWZHb0dSb2xzRDJST1NMWEJkN3ZMZXY2a2I4MXVYbzJm?= =?utf-8?B?ZGNtSW95U0JKWE00VTB5VGRVUG1reS9qU3N5VkFTQjRPMzlGZ3FjTmFoY1l2?= =?utf-8?B?R0puMFY5bjhDZWVQYUIxbnZhclk1QUxwNUVBV0tvNWVLS2REdUZYbVBSN3Uw?= =?utf-8?B?ZnkwVml2dU9XNlNlRFdoYitOQVo5QW1RRGIzNGxReDhsVlFiQjhySEU5TWdU?= =?utf-8?B?djBlQVorUzdNMmdseFZQdVNwRFAza1RRSlNiL0x6TjMzRFBRSmduZWZqeGMv?= =?utf-8?B?aldlekdiWTBFZFhvekxLbUZvYlpscXE5bWtoYXpOUmljOXZqeTkxUmFuSS9Q?= =?utf-8?B?dmY2TC9wY0o5ZUJHYlluM0RqWUc1bitFOWlBYWhSVTJwSXVWL0ZROTEzNmE5?= =?utf-8?B?L2lveDFTeUlEMmNRWHA4dVlxNHk1Y1BMTi9UUXdMaHdsVUNmdU9wSTVGNCsy?= =?utf-8?B?L0VWUjBhK1JzVEhpa2k3ZG5zcmRQbE5rby81V0tGeDFlVUJhd1VjbG05THYw?= =?utf-8?B?bnc3cE0zUkovSkRKWEtIenEyWFVLanNlNlBic2tncVNpSHRhVTNmWUIrczJz?= =?utf-8?B?MWt4aFNFZlNwRUM1L3IwWE5vaU55TFptTUtCV0xuYjhyUWkvcC9UNW0vb0VF?= =?utf-8?B?WHdqaEVBZlFEUFh1UmxBMDJHb0tpTWk1bjJqOGdlVFFheFdRNWJxUHhvVG1x?= =?utf-8?B?cCs0YWVuV3R2am9sek1WaUlrVTcrNzdEZTNlZFlha0lEYnYwcVRXQWpLcHNK?= =?utf-8?B?ZTRVbjRvSzF4TG9hbFRTdE9tV2F3Nmwxa0sxamljZG1uZTNxZFBMc1JpTm15?= =?utf-8?B?Y0FoZjVIdktaMTNpQ1RQaFlHZ2h6SjhmQ0xEYytadHBCNEdNdEdRYWVIRDEr?= =?utf-8?B?cTFrTjYybGpvWllVbHlob2J3VjJyODFneS9YdFk0b0ZVYTJyeXZ3eFlzTnph?= =?utf-8?Q?Hwc62LwkTLpcDygsnTd8bc084?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bf9d996-843c-4df6-f113-08da9a556e7c X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8793.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2022 15:41:34.7299 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qoUQVLjzwSH/cAwj5amgKUGYDSlDc3lSzAHa9xh9hi4H7bmq1k09Kaea+C9LIoTraUx5f9ikZDhHuxeA9eJghg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7165 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220919_084137_055700_CC6E0B68 X-CRM114-Status: GOOD ( 21.94 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org ICAgICAgICAgICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkCAgICAgICAg ICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilJAKICAgICAgICAg ICAgICAgICAgICAgIOKUgiAgICAgICDilIIgICAgICAgICAgICAgICAgICAg4pSCICAgICAgICAg IOKUggogICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQICAg 4pSCIFBDSSAgIOKUgiAgICAgICAgICAgICAgICAgICDilIIgUENJIEhvc3Qg4pSCCiAgICDilIIg TVNJICAgICAgICAg4pSC4peE4pSQIOKUgiBFUCAgICDilIIgICAgICAgICAgICAgICAgICAg4pSC ICAgICAgICAgIOKUggogICAg4pSCIENvbnRyb2xsZXIgIOKUgiDilIIg4pSCICAgICAgIOKUgiAz Lk1TSSBXcml0ZSAgICAgICDilIIgICAgICAgICAg4pSCCiAgICDilJTilIDilIDilIDilIDilIDi lIDilIDilIDilKzilIDilIDilIDilIDilJgg4pSU4pSA4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pS84pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSkICAgICAgICAgIOKUggogICAgICDilrIgICAgICDilIIgICAgICAgIOKUgiAgICAgICDi lIIgICAgICAgICAgICAgICAgICAg4pSc4pSAQkFSX24gICAg4pSCCiAgICAgIOKUgiAgICAgIOKU lOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUvOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKWuuKUgiAg ICAgICAgICDilIIKICAgICAg4pSCICAgICAgICAgICAgICAg4pSCICAgICAgIOKUgiAyLkNhbGwg QmFjayAgICAgICDilIIgICAgICAgICAg4pSCCiAgICAgIOKUgiAgICAgICAgICAgICAgIOKUgiAg ICAgICDilIIgICB3cml0ZV9tc2lfbXNnKCkg4pSCICAgICAgICAgIOKUggogICAgICDilIIgICAg ICAgICAgICAgICDilIIgICAgICAg4pSCICAgICAgICAgICAgICAgICAgIOKUgiAgICAgICAgICDi lIIKICAgICAg4pSCICAgICAgICAgICAgICAg4pSU4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSYICAg ICAgICAgICAgICAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAogICAg ICDilIIgICAgICAgICAgICAgICAgICAg4pSCCiAgICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmAogICAgICAxLnBsYXRmb3Jt X21zaV9kb21haW5fYWxsb2NfaXJxcygpCgpUaGVyZSBpcyBubyBkZWZpbmVkIHdheSBvZiByYWlz aW5nIElSUXMgYnkgUENJIGhvc3QgdG8gdGhlIFBDSSBlbmRwb2ludC4KT25seSBkZWZpbmUgTVNJ L01TSS1YIHRvIGxldCBFUCBub3RpZmllZCBSQyBzdGF0dXMgY2hhbmdlLgoKVGhlIG1lbW9yeSBh c3NpZ25lZCBmb3IgQkFSIHJlZ2lvbiBieSB0aGUgUENJIGhvc3QgaXMgbWFwcGVkIHRvIHRoZQpt ZXNzYWdlIGFkZHJlc3Mgb2YgcGxhdGZvcm0gbXNpIGludGVycnVwdCBjb250cm9sbGVyIGluIFBD SSBFbmRwb2ludC4KU3VjaCB0aGF0LCB3aGVuZXZlciB0aGUgUENJIGhvc3Qgd3JpdGVzIHRvIHRo ZSBCQVIgcmVnaW9uLCBpdCB3aWxsCnRyaWdnZXIgYW4gSVJRIGluIHRoZSBFbmRwb2ludC4KCkJh c2ljIHdvcmtpbmcgZm9sbG93IGFzCjEuIEVQIGZ1bmN0aW9uIGRyaXZlciBjYWxsIHBsYXRmb3Jt X21zaV9kb21haW5fYWxsb2NfaXJxcygpIGFsbG9jIGEKTVNJIGlycSBmcm9tIE1TSSBjb250cm9s bGVyIHdpdGggY2FsbCBiYWNrIGZ1bmN0aW9uIHdyaXRlX21zaV9tc2coKTsKMi4gd3JpdGVfbXNn X21zZyB3aWxsIGNvbmZpZyBCQVIgYW5kIG1hcCB0byBhZGRyZXNzIGRlZmluZWQgaW4gbXNpX21z ZzsKMy4gSG9zdCBzaWRlIHRyaWdnZXIgYW4gSVJRIGluIEVuZHBvaW50IGJ5IHdyaXRlIHRvIEJB UiByZWdpb24uCgpBZGQgTVNJIHN1cHBvcnQgZm9yIHBjaS1lcGYtdm50Yi4gUXVlcnkgaWYgc3lz dGVtIGhhcyBhbiBNU0kgY29udHJvbGxlci4KU2V0IHVwIGRvb3JiZWxsIGFkZHJlc3MgYWNjb3Jk aW5nIHRvIHN0cnVjdCBtc2lfbXNnLgoKU28gUENJIFJDIGNhbiB3cml0ZSB0aGlzIGRvb3JiZWxs IGFkZHJlc3MgdG8gdHJpZ2dlciBFUCBzaWRlJ3MgSVJRLgoKSWYgbm8gTVNJIGNvbnRyb2xsZXIg ZXhpc3RzLCBmYWxsIGJhY2sgdG8gc29mdHdhcmUgcG9sbGluZy4KClNpZ25lZC1vZmYtYnk6IEZy YW5rIExpIDxGcmFuay5MaUBueHAuY29tPgotLS0KIGRyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0 aW9ucy9wY2ktZXBmLXZudGIuYyB8IDE0OSArKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jIGIvZHJpdmVycy9wY2kv ZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdm50Yi5jCmluZGV4IDkwNTIyZGUwMGM2YTkuLjM0 ZTAxYzMwYWVhNDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2VuZHBvaW50L2Z1bmN0aW9ucy9w Y2ktZXBmLXZudGIuYworKysgYi9kcml2ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVw Zi12bnRiLmMKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wY2ktZXBjLmg+CiAj aW5jbHVkZSA8bGludXgvcGNpLWVwZi5oPgogI2luY2x1ZGUgPGxpbnV4L250Yi5oPgorI2luY2x1 ZGUgPGxpbnV4L21zaS5oPgogCiBzdGF0aWMgc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKmtwY2lu dGJfd29ya3F1ZXVlOwogCkBAIC0xMzcsMTEgKzEzOCwxNCBAQCBzdHJ1Y3QgZXBmX250YiB7CiAJ c3RydWN0IGVwZl9udGJfY3RybCAqcmVnOwogCiAJdTMyICplcGZfZGI7CisJcGh5c19hZGRyX3Qg ZXBmX2RiX3BoeXM7CiAKIAlwaHlzX2FkZHJfdCB2cGNpX213X3BoeVtNQVhfTVddOwogCXZvaWQg X19pb21lbSAqdnBjaV9td19hZGRyW01BWF9NV107CiAKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGNt ZF9oYW5kbGVyOworCisJaW50IG1zaV92aXJxYmFzZTsKIH07CiAKICNkZWZpbmUgdG9fZXBmX250 YihlcGZfZ3JvdXApIGNvbnRhaW5lcl9vZigoZXBmX2dyb3VwKSwgc3RydWN0IGVwZl9udGIsIGdy b3VwKQpAQCAtMjU2LDEwICsyNjAsMTMgQEAgc3RhdGljIHZvaWQgZXBmX250Yl9jbWRfaGFuZGxl cihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAludGIgPSBjb250YWluZXJfb2Yod29yaywg c3RydWN0IGVwZl9udGIsIGNtZF9oYW5kbGVyLndvcmspOwogCi0JZm9yIChpID0gMTsgaSA8IG50 Yi0+ZGJfY291bnQ7IGkrKykgewotCQlpZiAobnRiLT5lcGZfZGJbaV0pIHsKLQkJCW50Yl9kYl9l dmVudCgmbnRiLT5udGIsIGkpOwotCQkJbnRiLT5lcGZfZGJbaV0gPSAwOworCWlmICghbnRiLT5l cGZfZGJfcGh5cykgeworCQlmb3IgKGkgPSAxOyBpIDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7CisJ CQlpZiAobnRiLT5lcGZfZGJbaV0pIHsKKwkJCQludGItPmRiIHw9IDEgPDwgKGkgLSAxKTsKKwkJ CQludGJfZGJfZXZlbnQoJm50Yi0+bnRiLCBpKTsKKwkJCQludGItPmVwZl9kYltpXSA9IDA7CisJ CQl9CiAJCX0KIAl9CiAKQEAgLTQ2NCw3ICs0NzEsNyBAQCBzdGF0aWMgaW50IGVwZl9udGJfY29u ZmlnX3NwYWRfYmFyX2FsbG9jKHN0cnVjdCBlcGZfbnRiICpudGIpCiAKIAlmb3IgKGkgPSAwOyBp IDwgbnRiLT5kYl9jb3VudDsgaSsrKSB7CiAJCW50Yi0+cmVnLT5kYl9kYXRhW2ldID0gMSArIGk7 Ci0JCW50Yi0+cmVnLT5kYl9vZmZzZXRbaV0gPSAwOworCQludGItPnJlZy0+ZGJfb2Zmc2V0W2ld ID0gc2l6ZW9mKHUzMikgKiBpOwogCX0KIAogCXJldHVybiAwOwpAQCAtNTE3LDYgKzUyNCwyOCBA QCBzdGF0aWMgaW50IGVwZl9udGJfY29uZmlndXJlX2ludGVycnVwdChzdHJ1Y3QgZXBmX250YiAq bnRiKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGVwZl9udGJfZGJfc2l6ZShzdHJ1Y3Qg ZXBmX250YiAqbnRiKQoreworCWNvbnN0IHN0cnVjdCBwY2lfZXBjX2ZlYXR1cmVzICplcGNfZmVh dHVyZXM7CisJc2l6ZV90IHNpemUgPSBzaXplb2YodTMyKSAqIG50Yi0+ZGJfY291bnQ7CisJdTMy IGFsaWduOworCisJZXBjX2ZlYXR1cmVzID0gcGNpX2VwY19nZXRfZmVhdHVyZXMobnRiLT5lcGYt PmVwYywKKwkJCQkJICAgIG50Yi0+ZXBmLT5mdW5jX25vLAorCQkJCQkgICAgbnRiLT5lcGYtPnZm dW5jX25vKTsKKwlhbGlnbiA9IGVwY19mZWF0dXJlcy0+YWxpZ247CisKKwlpZiAoc2l6ZSA8IDEy OCkKKwkJc2l6ZSA9IDEyODsKKworCWlmIChhbGlnbikKKwkJc2l6ZSA9IEFMSUdOKHNpemUsIGFs aWduKTsKKwllbHNlCisJCXNpemUgPSByb3VuZHVwX3Bvd19vZl90d28oc2l6ZSk7CisKKwlyZXR1 cm4gc2l6ZTsKK30KKwogLyoqCiAgKiBlcGZfbnRiX2RiX2Jhcl9pbml0KCkgLSBDb25maWd1cmUg RG9vcmJlbGwgd2luZG93IEJBUnMKICAqIEBudGI6IE5UQiBkZXZpY2UgdGhhdCBmYWNpbGl0YXRl cyBjb21tdW5pY2F0aW9uIGJldHdlZW4gSE9TVCBhbmQgVkhPU1QKQEAgLTU0MCwyNyArNTY5LDI2 IEBAIHN0YXRpYyBpbnQgZXBmX250Yl9kYl9iYXJfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQog CQkJCQkgICAgbnRiLT5lcGYtPmZ1bmNfbm8sCiAJCQkJCSAgICBudGItPmVwZi0+dmZ1bmNfbm8p OwogCWFsaWduID0gZXBjX2ZlYXR1cmVzLT5hbGlnbjsKLQotCWlmIChzaXplIDwgMTI4KQotCQlz aXplID0gMTI4OwotCi0JaWYgKGFsaWduKQotCQlzaXplID0gQUxJR04oc2l6ZSwgYWxpZ24pOwot CWVsc2UKLQkJc2l6ZSA9IHJvdW5kdXBfcG93X29mX3R3byhzaXplKTsKKwlzaXplID0gZXBmX250 Yl9kYl9zaXplKG50Yik7CiAKIAliYXJubyA9IG50Yi0+ZXBmX250Yl9iYXJbQkFSX0RCXTsKKwll cGZfYmFyID0gJm50Yi0+ZXBmLT5iYXJbYmFybm9dOwogCi0JbXdfYWRkciA9IHBjaV9lcGZfYWxs b2Nfc3BhY2UobnRiLT5lcGYsIHNpemUsIGJhcm5vLCBhbGlnbiwgMCk7Ci0JaWYgKCFtd19hZGRy KSB7Ci0JCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIE9CIGFkZHJlc3NcbiIpOwot CQlyZXR1cm4gLUVOT01FTTsKKwlpZiAobnRiLT5lcGZfZGJfcGh5cykgeworCQltd19hZGRyID0g TlVMTDsKKwkJZXBmX2Jhci0+cGh5c19hZGRyID0gbnRiLT5lcGZfZGJfcGh5czsKKwkJZXBmX2Jh ci0+YmFybm8gPSBiYXJubzsKKwkJZXBmX2Jhci0+c2l6ZSA9IHNpemU7CisJfSBlbHNlIHsKKwkJ bXdfYWRkciA9IHBjaV9lcGZfYWxsb2Nfc3BhY2UobnRiLT5lcGYsIHNpemUsIGJhcm5vLCBhbGln biwgMCk7CisJCWlmICghbXdfYWRkcikgeworCQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWxs b2NhdGUgZG9vcmJlbGwgYWRkcmVzc1xuIik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQogCX0K IAogCW50Yi0+ZXBmX2RiID0gbXdfYWRkcjsKIAotCWVwZl9iYXIgPSAmbnRiLT5lcGYtPmJhclti YXJub107Ci0KIAlyZXQgPSBwY2lfZXBjX3NldF9iYXIobnRiLT5lcGYtPmVwYywgbnRiLT5lcGYt PmZ1bmNfbm8sIG50Yi0+ZXBmLT52ZnVuY19ubywgZXBmX2Jhcik7CiAJaWYgKHJldCkgewogCQlk ZXZfZXJyKGRldiwgIkRvb3JiZWxsIEJBUiBzZXQgZmFpbGVkXG4iKTsKQEAgLTcxOSw2ICs3NDcs ODQgQEAgc3RhdGljIGludCBlcGZfbnRiX2luaXRfZXBjX2JhcihzdHJ1Y3QgZXBmX250YiAqbnRi KQogCXJldHVybiAwOwogfQogCisjaWZkZWYgQ09ORklHX0dFTkVSSUNfTVNJX0lSUV9ET01BSU4K K3N0YXRpYyB2b2lkIGVwZl9udGJfd3JpdGVfbXNpX21zZyhzdHJ1Y3QgbXNpX2Rlc2MgKmRlc2Ms IHN0cnVjdCBtc2lfbXNnICptc2cpCit7CisJc3RydWN0IGVwZl9udGIgKm50YiA9IGRldl9nZXRf ZHJ2ZGF0YShkZXNjLT5kZXYpOworCXN0cnVjdCBlcGZfbnRiX2N0cmwgKnJlZyA9IG50Yi0+cmVn OworCWludCBzaXplID0gZXBmX250Yl9kYl9zaXplKG50Yik7CisJdTY0IGFkZHI7CisKKwlhZGRy ID0gbXNnLT5hZGRyZXNzX2hpOworCWFkZHIgPDw9IDMyOworCWFkZHIgfD0gbXNnLT5hZGRyZXNz X2xvOworCisJcmVnLT5kYl9kYXRhW2Rlc2MtPm1zaV9pbmRleF0gPSBtc2ctPmRhdGE7CisKKwlp ZiAoIWRlc2MtPm1zaV9pbmRleCkKKwkJbnRiLT5lcGZfZGJfcGh5cyA9IHJvdW5kX2Rvd24oYWRk ciwgc2l6ZSk7CisKKwlyZWctPmRiX29mZnNldFtkZXNjLT5tc2lfaW5kZXhdID0gYWRkciAtIG50 Yi0+ZXBmX2RiX3BoeXM7Cit9CisjZW5kaWYKKworc3RhdGljIGlycXJldHVybl90IGVwZl9udGJf aW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZXBmX250 YiAqbnRiID0gZGF0YTsKKwlpbnQgaW5kZXg7CisKKwlpbmRleCA9IGlycSAtIG50Yi0+bXNpX3Zp cnFiYXNlOworCW50Yi0+ZGIgfD0gMSA8PCAoaW5kZXggLSAxKTsKKwludGJfZGJfZXZlbnQoJm50 Yi0+bnRiLCBpbmRleCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKKyNpZmRlZiBDT05G SUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTgorc3RhdGljIHZvaWQgZXBmX250Yl9lcGNfbXNpX2lu aXQoc3RydWN0IGVwZl9udGIgKm50YikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmbnRiLT5l cGYtPmRldjsKKwlzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluOworCWludCB2aXJxOworCWludCBy ZXQ7CisJaW50IGk7CisKKwlkb21haW4gPSBkZXZfZ2V0X21zaV9kb21haW4obnRiLT5lcGYtPmVw Yy0+ZGV2LnBhcmVudCk7CisJaWYgKCFkb21haW4pCisJCXJldHVybjsKKworCWRldl9zZXRfbXNp X2RvbWFpbihkZXYsIGRvbWFpbik7CisKKwlpZiAocGxhdGZvcm1fbXNpX2RvbWFpbl9hbGxvY19p cnFzKCZudGItPmVwZi0+ZGV2LAorCQludGItPmRiX2NvdW50LAorCQllcGZfbnRiX3dyaXRlX21z aV9tc2cpKSB7CisJCWRldl9lcnIoZGV2LCAiQ2FuJ3QgYWxsb2NhdGUgTVNJLCBmYWxsaW5nIGJh Y2sgdG8gcG9sbGluZyBtb2RlXG4iKTsKKwkJcmV0dXJuOworCX0KKwlkZXZfaW5mbyhkZXYsICJV c2luZyBNU0kgYXMgZG9vcmJlbGxcbiIpOworCisJZm9yIChpID0gMDsgaSA8IG50Yi0+ZGJfY291 bnQ7IGkrKykgeworCQl2aXJxID0gbXNpX2dldF92aXJxKGRldiwgaSk7CisJCXJldCA9IGRldm1f cmVxdWVzdF9pcnEoZGV2LCB2aXJxLAorCQkJICAgICAgIGVwZl9udGJfaW50ZXJydXB0X2hhbmRs ZXIsIDAsCisJCQkgICAgICAgInBjaV9lcGZfdm50YiIsIG50Yik7CisKKwkJaWYgKHJldCkgewor CQkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gcmVxdWVzdCBkb29yYmVsbCBJUlEhIEZhbGxpbmcg YmFjayB0byBwb2xsaW5nIG1vZGUiKTsKKwkJCW50Yi0+ZXBmX2RiX3BoeXMgPSAwOworCQkJYnJl YWs7CisJCX0KKworCQlpZiAoIWkpCisJCQludGItPm1zaV92aXJxYmFzZSA9IHZpcnE7IC8qIG1z aSBzdGFydCB2aXJxIG51bWJlciAqLworCX0KK30KKyNlbHNlCitzdGF0aWMgdm9pZCBlcGZfbnRi X2VwY19tc2lfaW5pdChzdHJ1Y3QgZXBmX250YiAqbnRiKQoreworCXJldHVybjsKK30KKyNlbmRp ZiAvKiBDT05GSUdfR0VORVJJQ19NU0lfSVJRX0RPTUFJTiAqLwogLyoqCiAgKiBlcGZfbnRiX2Vw Y19pbml0KCkgLSBJbml0aWFsaXplIE5UQiBpbnRlcmZhY2UKICAqIEBudGI6IE5UQiBkZXZpY2Ug dGhhdCBmYWNpbGl0YXRlcyBjb21tdW5pY2F0aW9uIGJldHdlZW4gSE9TVCBhbmQgVkhPU1QKQEAg LTEzMjAsMTQgKzE0MjYsMTUgQEAgc3RhdGljIGludCBlcGZfbnRiX2JpbmQoc3RydWN0IHBjaV9l cGYgKmVwZikKIAkJZ290byBlcnJfYmFyX2FsbG9jOwogCX0KIAorCWVwZl9zZXRfZHJ2ZGF0YShl cGYsIG50Yik7CisJZXBmX250Yl9lcGNfbXNpX2luaXQobnRiKTsKKwogCXJldCA9IGVwZl9udGJf ZXBjX2luaXQobnRiKTsKIAlpZiAocmV0KSB7CiAJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGlu aXRpYWxpemUgRVBDXG4iKTsKIAkJZ290byBlcnJfYmFyX2FsbG9jOwogCX0KIAotCWVwZl9zZXRf ZHJ2ZGF0YShlcGYsIG50Yik7Ci0KIAlwY2lfc3BhY2VbMF0gPSAobnRiLT52bnRiX3BpZCA8PCAx NikgfCBudGItPnZudGJfdmlkOwogCXBjaV92bnRiX3RhYmxlWzBdLnZlbmRvciA9IG50Yi0+dm50 Yl92aWQ7CiAJcGNpX3ZudGJfdGFibGVbMF0uZGV2aWNlID0gbnRiLT52bnRiX3BpZDsKLS0gCjIu MzUuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK