Received: by 2002:a05:7412:b101:b0:e2:908c:2ebd with SMTP id az1csp2408657rdb; Tue, 14 Nov 2023 22:51:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IFuKKb+J/i7EZXu4eGDDuJzxm9q0i4XHgpz6CIGQb9MIZT5Rm6MWiiKYK6gYSAeOBgy/y7y X-Received: by 2002:a05:6a20:2628:b0:187:1ea7:9509 with SMTP id i40-20020a056a20262800b001871ea79509mr2813597pze.32.1700031094190; Tue, 14 Nov 2023 22:51:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700031094; cv=pass; d=google.com; s=arc-20160816; b=xtQXkksk55y9l00XQ3Ug1Gme1MR1o3n447uVk1c6lxXONmL6dDFL9yiRKGq6RVLvN5 G69Yf/dhX2WRopf5pDhA4/rzGeh1EEj8fYkXufUIWFR2OuDHoJyJPtlp2OZOSKkFEGl1 pWxoV4QDwMS2zQe4Cga88oBlpPhnOt3pUzeSY/h4kCUp40xCEd4EYyaZSnai9UCIEUNH IN8CRDr7XVY5U14LbBN+HAnTZZKLDDQ+G0WRiqXNXFyy2vX94IITVbIeqeJIl10ZPzna 9zqjekMk4yu85ORTs1nk7puQ0qptLC3gzoZzoov8Aa1BasRKrN3EjxNpu5RAQxjBnGxZ RJow== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=JAUrMJiudzETSCOX1kxkOyu77Zcp3WIq7Xwb+FFHEko=; fh=bQsEq7s5N+kh8EPE86gm6S78ibtPGjx6PsO+35eiUvY=; b=nQCRPY+vWlBZG3Q8mtw/Lz+xJIvRzBtrL1w47Azwg12JHt3YakgZfZ5qE86oUQl89D DSa5KB+0p7Geq4pJZnWjGWCLge+feLKzTVnbKk+Dn0s/OfX7iY7nqsTSOqrE8bH/U+Tu FnwECh7zuDBxENslU8/Ysh3muP6rK753ZEylXWnQhCCMaWuTBn8QezitsxW5aHAJGhOU 1l4s4j7MLczBQEzf5okqBA93vGWUfN6tqXQjW4U4xNqLefYIlhtFUELZuC8M3TT2zbGB 6iMNgGq3hVjsK0ZqTYuG3+qq/u5Toc5X15kG3Io2tykl488e8IPNwCJMGxn0rrvzJvQI uW0Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=krLcjHc8; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id g8-20020a17090a7d0800b00280c9b49738si9537044pjl.84.2023.11.14.22.51.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Nov 2023 22:51:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=krLcjHc8; arc=pass (i=1 spf=pass spfdomain=amd.com dkim=pass dkdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id C2D17806240F; Tue, 14 Nov 2023 22:51:16 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234595AbjKOGuv (ORCPT + 99 others); Wed, 15 Nov 2023 01:50:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230364AbjKOGut (ORCPT ); Wed, 15 Nov 2023 01:50:49 -0500 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2075.outbound.protection.outlook.com [40.107.102.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F50BB3; Tue, 14 Nov 2023 22:50:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OL2PifDiZpj4oOC9RqXYqN+J3hi1lu4GGQ3Wdz35Qrxvi5UyEKg66aVyiTYdCneRsTaH1YHMlTY6NOoD+MHfMzguxC9rRh8eqPHxnZ/dl3AS5QM5wBBPnfFDoWMf/NmHvxTJN5zNfc/o+zveJIH5gaAe4nei+Uxp0fbyWPNGkoB4Qd3fWMZsEf9s+7I2xlYfrjgtYK4VG0+0CMEOnLqnxYeLbytO5dWSlENPL+Zc5rBJ2bc86KvC660WzyFEHivrKBBKJweSfMe+4mvB3xeMJWxSfbC5twT10HGO2v0j3pvgraXGKOyjvMOiVTdsMz+doSYHykRavg6eVDmoeSGJEg== 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=JAUrMJiudzETSCOX1kxkOyu77Zcp3WIq7Xwb+FFHEko=; b=KB9xJAlAynAWK6z2aZDULNBYhVNdE/cbbqFIrICCs9O8ntq60n+37BkniDxr6DLiu0q0EViusfvTF3HNAN1mU20V5hx/ARC8s9QDG8WCz0m0l4QR/R3xEjf9kCoIgt/PtdpXdjggyA8q//aMeuODRQZhB1YVak1cuP246Iqk6eGLwfe07oUpB1f8xKmV5+eG6CTzjzkvhv165HbPU0YZf46HAjOAw3cJabs5qPyohh47PJqHRSZic8eBsP0aMJJPbVUPKREFCyFYuDJrwds3Kj3UmmOtoFGT6hHuWl3A0CeqgFXbiDiAqFpE2plqBWwSjZ7VUC7XpV3VSlEsqPX2dw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JAUrMJiudzETSCOX1kxkOyu77Zcp3WIq7Xwb+FFHEko=; b=krLcjHc8f7FkH6IcLyQRpMTQo7lyl6h8fSMhWvn2jeTLwAk8y+uTJnOHwx64luP+wuaPDDEyMgO7Nz5zcGXO9JOp7zZFlknb+u3bOOa2NvyzVXLDEKzboK4xP/Czt7kIeXBeQVQsX78CmnFAQJ7mzBQLVgDXI0L0vaJpOTHGHrA= Received: from DM4PR12MB6109.namprd12.prod.outlook.com (2603:10b6:8:ae::11) by IA0PR12MB8278.namprd12.prod.outlook.com (2603:10b6:208:3dc::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.31; Wed, 15 Nov 2023 06:50:42 +0000 Received: from DM4PR12MB6109.namprd12.prod.outlook.com ([fe80::46d8:a18a:12a:5e1b]) by DM4PR12MB6109.namprd12.prod.outlook.com ([fe80::46d8:a18a:12a:5e1b%3]) with mapi id 15.20.6977.029; Wed, 15 Nov 2023 06:50:42 +0000 From: "Guntupalli, Manikanta" To: Lino Sanfilippo , "git (AMD-Xilinx)" , "Simek, Michal" , "gregkh@linuxfoundation.org" , "robh+dt@kernel.org" , "krzysztof.kozlowski+dt@linaro.org" , "conor+dt@kernel.org" , "linux-serial@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "jirislaby@kernel.org" , "linux-arm-kernel@lists.infradead.org" CC: "Pandey, Radhey Shyam" , "Goud, Srinivas" , "Datta, Shubhrajyoti" , "manion05gk@gmail.com" Subject: RE: [PATCH V3 2/2] tty: serial: uartps: Add rs485 support to uartps driver Thread-Topic: [PATCH V3 2/2] tty: serial: uartps: Add rs485 support to uartps driver Thread-Index: AQHaBolGgHCwhiVjV0W/LEi57CIRGLB3MmcAgAPPaZA= Date: Wed, 15 Nov 2023 06:50:42 +0000 Message-ID: References: <20231024144847.2316941-1-manikanta.guntupalli@amd.com> <20231024144847.2316941-3-manikanta.guntupalli@amd.com> <97bfc5ee-6c07-4e4b-8192-f46c701a0604@gmx.de> In-Reply-To: <97bfc5ee-6c07-4e4b-8192-f46c701a0604@gmx.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR12MB6109:EE_|IA0PR12MB8278:EE_ x-ms-office365-filtering-correlation-id: 890acdc6-4d65-4d6d-9ac0-08dbe5a72f95 x-ld-processed: 3dd8961f-e488-4e60-8e11-a82d994e183d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Sjs1WxblpP3+DxhmTxQzEwR0mC/N4vY6zcxr7qCnjGkHHd1vCRY/xndVU4umQRUlYWbjV1pu48zDq2nHIgqsk3JxQ7sg10b5tKIxr0vApC6NjdXC4tKIK5MTOTOX+OqsXdymZSgo+kab9P4P+iuZHcsY93m2Bu1bl+rYd4xce2sitk1W/zzlOtvwDYKWg5jmFivsNvDYe33O6hi1Hp4GSDTdP3+bTn0+2VLqYad+fybhgCRxtCp7FjKWZZkObQq15qFCZhY1uimAmp2ujOhAFk2D/YXkpNpbYn3+02qOGHouiGdKSJ8ILYiLheen4WdVY+sQahOs8FlLfBDpw8U5TrNwEwmoghHuZ/gnEWw3ekFMDsdhO/qX4gGQACdIIgJOsggWmCuSbgG5mU8Xns1wadL6fmA39GShokmyyOMit3jrY9eKtpvKJxNeHxLoJPhlYX7kWFJhl7j1wf7Nxh4p96Wz93vp0cAEA/QspJ5d196U6Qg/RIrNe5xQEBJLn/N7UnALr6Mc+GqHCEOgrVP17J3oelry8XRkuk97h8VkYTZtUv4tCt0jTZRYwoYyLOEMJj+ZUlYY5/iWyn0fR6Qdu6JJ/dTZ427OOagt3K+wn8MPbpVNT1xoLVPZBjV+Ohyv1mslJCf0aJM0MZSSx3A1iw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6109.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(346002)(39860400002)(376002)(396003)(230922051799003)(186009)(64100799003)(1800799009)(451199024)(38100700002)(122000001)(4326008)(8936002)(8676002)(7696005)(6506007)(9686003)(53546011)(26005)(55016003)(83380400001)(38070700009)(71200400001)(478600001)(110136005)(76116006)(66476007)(66446008)(54906003)(64756008)(66556008)(316002)(66946007)(33656002)(921008)(41300700001)(52536014)(2906002)(7416002)(86362001)(5660300002)(30864003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RHJhRExzYmRaeE9Qako4QU11QzNHY1R3a2E5azR2T21uSmRpRS9KdklncFMx?= =?utf-8?B?NEplaG1nZTRzK0IvNEVmSjR2OUpJSUEzcWRQZHJKMDNwb3NMdkk1eE5GdXk5?= =?utf-8?B?SXJpRUhSaEgzRHN6VnZtZ0NhMnpPNVVDY2Jwd2R4VURtOG1kU0hUdnBwK0Fj?= =?utf-8?B?dXVrK2RYdVNHM1RDYndxNjB2Z1NDdjBsM1ZxSHRCT0NoUWhEUmJ3b3I5VFM5?= =?utf-8?B?MkVTY1dvSTJ4TmtwY3ZzclMwcUxpSVlkYlkyVldXVTVaTzVaTXVhRUJPWlBa?= =?utf-8?B?UktPMFg3U1BreEZjM3dIdkoxMkxkb2pkSURDSk56c0JpdVZMRExhNHZtTjBx?= =?utf-8?B?bjNrY0hyaVJSQ2s0eGk2bFV4UUZIKzFTRXVBN2xmUENJQUx0ckJFM1A0WXkz?= =?utf-8?B?MnNYOWpaSmRuN0FiaVo4eXFtS0ZtcXNxbitLajA3R0RoQXowWHJER2FBQnlr?= =?utf-8?B?Uk1tNUdzUU5LRkYxa3k4M0ZONUNaSVJCNTFPUDcwUFBZM0t4Vlc1dUllWHha?= =?utf-8?B?R3JPREkrZGpvL1dJQVJhNmVhdVhOQVFiS0VaY3M0bVFJb2lTaFY3Y2VCT2Ux?= =?utf-8?B?Mk1qMm1wZXdnQU1iNk5aVkZ1WGZTUDNQd0x6VncrZmV3TjVhVGV4UEIvR1N3?= =?utf-8?B?MnN1R0hKODdNNUdGWDVQTEFHRUZlMGFlOUx3M3pLenhaTU9rNGhTOGF1NGw1?= =?utf-8?B?ZUhCaXJDS2h5VmxldGhVWjRXaU1qbEFHRkZDc1lTdFR3VWJtZXBmZDBRV1hy?= =?utf-8?B?SXY5SFJXM2hPbHJzN2JtV3BxTEtMak1VTXRWUXBuVGFwQnFPM3lwQ01XNEtS?= =?utf-8?B?K3ZvS21RL0pPZnAvaTZEeE5lTTZkQnpRaGFZYVFOdzZUYzc3Y0xsZmp2U0U2?= =?utf-8?B?VjN5bW1TcjBHWEo0TWtCVG9VTEhtSVREalprSkFXRVBhY3liSXEyTkNZN3lo?= =?utf-8?B?TXB3Zk55a29wQmdOVWtBdWRxcHdyVFppc1huUXVxdnE0eXBWbHd0aWsrN1Ny?= =?utf-8?B?TW81dkRhS040VURYdDh5dHFINGQySFdabi9yN0IxaTFrVjk4c0VoTXQwa0h1?= =?utf-8?B?aGxBektEa254OTlRaEVobVFRV0NBMmNSaHk1VWZKV3FkOHc2M3dOaEF3TnRk?= =?utf-8?B?UFRCY1cxY2IzWVI0Ym1BdDNlSnkvVDRuN0g0ZnFPMnRSUXlObkJ1aFJRVlAy?= =?utf-8?B?SHAyd3V5VmNDK01pdlB3UWFUUGozcDRUN1puZGwwSFBRaUxOSkR4TW9Odk5i?= =?utf-8?B?N2poQmZCaWZIYW9qWlVBQUdENmt1ZElTWFlhL00ra0g2WWhVWWRYSG82Yndj?= =?utf-8?B?cEFDY1VlbjY1NTZIUnBMTmJzeHFrSlUxWkFacGRWNWg3Tk5nZVUvNlhRdVU2?= =?utf-8?B?aGlwMkdBS3NaVWVMWGZJUHFWRTkweGd0TXZmOHJTaysxVFpJTFBaSEJVT1lM?= =?utf-8?B?MU9JRHhkYWpJSWFRb1BFakhUVlVxZDBiRFlmSHF4dm9yVXU1QTJueUtkQVBX?= =?utf-8?B?WEhwMnY5NkJXNmpEd0dvbVE3Y2tDVzZqOE03SXN5UWpKRkVPUmJjZTFhRjFC?= =?utf-8?B?UHVWZTVLQmorT3FRc2lhMGNMLytBcmJUdDFnZWpCU09yT0hKYThOaHN2a0xN?= =?utf-8?B?RTczek1ySkRTa1dPZDhZTzRNMTNDZ3ZIRHVJSDVuUmFKekR5RnpkZlIzMG81?= =?utf-8?B?ZjNPbTNKOVhEUlBpTzVZcmdXeFRjYkdwZ1l1MnlkN284S0tNd3ZlUHZUQTVY?= =?utf-8?B?Zjdoa0JWMnZjVzRaODlWTlhKbjhhMEE2b1UxZmNkbHJScjR1eHF5UHFRQjlC?= =?utf-8?B?U3VPN01OS29SVXR2dWo4aVVITU1BK1FpSHJ4MHF1MC9BR2FEQi95OFdITkdx?= =?utf-8?B?OTc5cDhEQ0NrZnVUVmYvaWZxdmxDM1VUQWxGaXdWR2VBK2F1NytwUUFYMzZk?= =?utf-8?B?Z3hkS092VFJvQnBlOFlDR2o4SEc4TEcvZklROXk3eFBkRlB6T2ljU3N0ZlAz?= =?utf-8?B?VlZqYjdCZUJxTFpONDVrVU0xTEw2bmVmYVVZSG9keXlwV0JMb3A4eGxmRGUy?= =?utf-8?B?TkVuSEJnUDF3U253dVJLMmJqK0RCcWZxZnV2NUhwUCt0UGlhL01QK01wS1p3?= =?utf-8?Q?SUOg=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB6109.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 890acdc6-4d65-4d6d-9ac0-08dbe5a72f95 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2023 06:50:42.3488 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: BuwTvL0wPRaqBiK7YmAd0AaOgThjhpdBqWZTiaSxI6wB/8WobsIhAFKbD4B2sO3Hm89ygGkJT5OHwm4sKiSQjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8278 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 14 Nov 2023 22:51:17 -0800 (PST) SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGlubyBTYW5maWxp cHBvIDxMaW5vU2FuZmlsaXBwb0BnbXguZGU+DQo+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIgMTMs IDIwMjMgMTowOCBBTQ0KPiBUbzogR3VudHVwYWxsaSwgTWFuaWthbnRhIDxtYW5pa2FudGEuZ3Vu dHVwYWxsaUBhbWQuY29tPjsgZ2l0IChBTUQtDQo+IFhpbGlueCkgPGdpdEBhbWQuY29tPjsgU2lt ZWssIE1pY2hhbCA8bWljaGFsLnNpbWVrQGFtZC5jb20+Ow0KPiBncmVna2hAbGludXhmb3VuZGF0 aW9uLm9yZzsgcm9iaCtkdEBrZXJuZWwub3JnOw0KPiBrcnp5c3p0b2Yua296bG93c2tpK2R0QGxp bmFyby5vcmc7IGNvbm9yK2R0QGtlcm5lbC5vcmc7IGxpbnV4LQ0KPiBzZXJpYWxAdmdlci5rZXJu ZWwub3JnOyBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+IGtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7IGppcmlzbGFieUBrZXJuZWwub3JnOyBsaW51eC1hcm0tDQo+IGtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnDQo+IENjOiBQYW5kZXksIFJhZGhleSBTaHlhbSA8cmFkaGV5LnNo eWFtLnBhbmRleUBhbWQuY29tPjsgR291ZCwNCj4gU3Jpbml2YXMgPHNyaW5pdmFzLmdvdWRAYW1k LmNvbT47IERhdHRhLCBTaHViaHJhanlvdGkNCj4gPHNodWJocmFqeW90aS5kYXR0YUBhbWQuY29t PjsgbWFuaW9uMDVna0BnbWFpbC5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCBWMyAyLzJdIHR0 eTogc2VyaWFsOiB1YXJ0cHM6IEFkZCByczQ4NSBzdXBwb3J0IHRvIHVhcnRwcw0KPiBkcml2ZXIN Cj4gDQo+IEhpLA0KPiANCj4gT24gMjQuMTAuMjMgMTY6NDgsIE1hbmlrYW50YSBHdW50dXBhbGxp IHdyb3RlOg0KPiA+IEFkZCByczQ4NSBzdXBwb3J0IHRvIHVhcnRwcyBkcml2ZXIuIFVzZSBlaXRo ZXIgcnRzLWdwaW9zIG9yIFJUUyB0bw0KPiA+IGNvbnRyb2wgUlM0ODUgcGh5IGFzIGRyaXZlciBv ciBhIHJlY2VpdmVyLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTWFuaWthbnRhIEd1bnR1cGFs bGkgPG1hbmlrYW50YS5ndW50dXBhbGxpQGFtZC5jb20+DQo+ID4gLS0tDQo+ID4gQ2hhbmdlcyBm b3IgVjI6DQo+ID4gTW9kaWZ5IG9wdGlvbmFsIGdwaW8gbmFtZSB0byB4bG54LHBoeS1jdHJsLWdw aW9zLg0KPiA+IFVwZGF0ZSBjb21taXQgZGVzY3JpcHRpb24uDQo+ID4gQWRkIHN1cHBvcnQgZm9y IFJUUywgZGVsYXlfcnRzX2JlZm9yZV9zZW5kIGFuZCBkZWxheV9ydHNfYWZ0ZXJfc2VuZCBpbg0K PiBSUzQ4NSBtb2RlLg0KPiA+IENoYW5nZXMgZm9yIFYzOg0KPiA+IE1vZGlmeSBvcHRpb25hbCBn cGlvIG5hbWUgdG8gcnRzLWdwaW9zLg0KPiA+IFVwZGF0ZSBjb21taXQgZGVzY3JpcHRpb24uDQo+ ID4gTW92ZSBjZG5zX3VhcnRfdHhfZW1wdHkgZnVuY3Rpb24gdG8gYXZvaWQgcHJvdG90eXBlIHN0 YXRlbWVudC4NCj4gPiBSZW1vdmUgYXNzaWdubWVudCBvZiBzdHJ1Y3Qgc2VyaWFsX3JzNDg1IHRv IHBvcnQtPnJzNDg1IGFzIHNlcmlhbCBjb3JlDQo+ID4gcGVyZm9ybXMgdGhhdC4NCj4gPiBTd2l0 Y2ggdG8gbmF0aXZlIFJUUyBpbiBub24gR1BJTyBjYXNlLg0KPiA+IEhhbmRsZSByczQ4NSBkdXJp bmcgc3RvcCB0eC4NCj4gPiBSZW1vdmUgZXhwbGljaXQgY2FsbHMgdG8gY29uZmlndXJlIGdwaW8g ZGlyZWN0aW9uIGFuZCB2YWx1ZSwgYXMNCj4gPiBkZXZtX2dwaW9kX2dldF9vcHRpb25hbCBwZXJm b3JtcyB0aGF0IGJ5IHVzaW5nIEdQSU9EX09VVF9MT1cNCj4gYXJndW1lbnQuDQo+ID4gVXBkYXRl IGltcGxlbWVudGF0aW9uIHRvIHN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiBHUElPL1JUUyB2YWx1 ZSBiYXNlZA0KPiA+IG9uIHVzZXIgY29uZmlndXJhdGlvbiBvZiBTRVJfUlM0ODVfUlRTX09OX1NF TkQgYW5kDQo+ID4gU0VSX1JTNDg1X1JUU19BRlRFUl9TRU5ELiBNb3ZlIGltcGxlbWVudGF0aW9u IHRvIHN0YXJ0X3R4IGZyb20NCj4gaGFuZGxlX3R4Lg0KPiA+IC0tLQ0KPiA+ICBkcml2ZXJzL3R0 eS9zZXJpYWwveGlsaW54X3VhcnRwcy5jIHwgMTgwDQo+ID4gKysrKysrKysrKysrKysrKysrKysr KysrKystLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDE2NSBpbnNlcnRpb25zKCspLCAxNSBkZWxl dGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9zZXJpYWwveGlsaW54 X3VhcnRwcy5jDQo+ID4gYi9kcml2ZXJzL3R0eS9zZXJpYWwveGlsaW54X3VhcnRwcy5jDQo+ID4g aW5kZXggOWMxM2RhYzFkNGQxLi4zMjIyOWNmNWM1MDggMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy90dHkvc2VyaWFsL3hpbGlueF91YXJ0cHMuYw0KPiA+ICsrKyBiL2RyaXZlcnMvdHR5L3Nlcmlh bC94aWxpbnhfdWFydHBzLmMNCj4gPiBAQCAtMjMsNiArMjMsOSBAQA0KPiA+ICAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+DQo+ID4g ICNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4N Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4NCj4gPiArI2luY2x1ZGUgPGxp bnV4L2RlbGF5Lmg+DQo+ID4NCj4gPiAgI2RlZmluZSBDRE5TX1VBUlRfVFRZX05BTUUJInR0eVBT Ig0KPiA+ICAjZGVmaW5lIENETlNfVUFSVF9OQU1FCQkieHVhcnRwcyINCj4gPiBAQCAtMTkzLDYg KzE5Niw3IEBAIE1PRFVMRV9QQVJNX0RFU0MocnhfdGltZW91dCwgIlJ4IHRpbWVvdXQsIDEtDQo+ IDI1NSIpOw0KPiA+ICAgKiBAY2xrX3JhdGVfY2hhbmdlX25iOglOb3RpZmllciBibG9jayBmb3Ig Y2xvY2sgY2hhbmdlcw0KPiA+ICAgKiBAcXVpcmtzOgkJRmxhZ3MgZm9yIFJYQlMgc3VwcG9ydC4N Cj4gPiAgICogQGN0c19vdmVycmlkZToJTW9kZW0gY29udHJvbCBzdGF0ZSBvdmVycmlkZQ0KPiA+ ICsgKiBAZ3Bpb2Q6CQlQb2ludGVyIHRvIHRoZSBncGlvIGRlc2NyaXB0b3INCj4gPiAgICovDQo+ ID4gIHN0cnVjdCBjZG5zX3VhcnQgew0KPiA+ICAJc3RydWN0IHVhcnRfcG9ydAkqcG9ydDsNCj4g PiBAQCAtMjAzLDEwICsyMDcsMTkgQEAgc3RydWN0IGNkbnNfdWFydCB7DQo+ID4gIAlzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sJY2xrX3JhdGVfY2hhbmdlX25iOw0KPiA+ICAJdTMyCQkJcXVpcmtzOw0K PiA+ICAJYm9vbCBjdHNfb3ZlcnJpZGU7DQo+ID4gKwlzdHJ1Y3QgZ3Bpb19kZXNjCSpncGlvZDsN Cj4gPiAgfTsNCj4gPiAgc3RydWN0IGNkbnNfcGxhdGZvcm1fZGF0YSB7DQo+ID4gIAl1MzIgcXVp cmtzOw0KPiA+ICB9Ow0KPiA+ICsNCj4gPiArc3RydWN0IHNlcmlhbF9yczQ4NSBjZG5zX3JzNDg1 X3N1cHBvcnRlZCA9IHsNCj4gPiArCS5mbGFncyA9IFNFUl9SUzQ4NV9FTkFCTEVEIHwgU0VSX1JT NDg1X1JUU19PTl9TRU5EIHwNCj4gPiArCQkgU0VSX1JTNDg1X1JUU19BRlRFUl9TRU5ELA0KPiA+ ICsJLmRlbGF5X3J0c19iZWZvcmVfc2VuZCA9IDEsDQo+ID4gKwkuZGVsYXlfcnRzX2FmdGVyX3Nl bmQgPSAxLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2RlZmluZSB0b19jZG5zX3VhcnQoX25iKSBj b250YWluZXJfb2YoX25iLCBzdHJ1Y3QgY2Ruc191YXJ0LCBcDQo+ID4gIAkJY2xrX3JhdGVfY2hh bmdlX25iKQ0KPiA+DQo+ID4gQEAgLTMwNSw2ICszMTgsNzkgQEAgc3RhdGljIHZvaWQgY2Ruc191 YXJ0X2hhbmRsZV9yeCh2b2lkICpkZXZfaWQsDQo+IHVuc2lnbmVkIGludCBpc3JzdGF0dXMpDQo+ ID4gIAl0dHlfZmxpcF9idWZmZXJfcHVzaCgmcG9ydC0+c3RhdGUtPnBvcnQpOw0KPiA+ICB9DQo+ ID4NCj4gPiArLyoqDQo+ID4gKyAqIGNkbnNfcnM0ODVfY29uZmlnX2dwaW9fcnRzX2hpZ2ggLSBD b25maWd1cmUgR1BJTy9SVFMgdG8gaGlnaA0KPiA+ICsgKiBAY2Ruc191YXJ0OiBIYW5kbGUgdG8g dGhlIGNkbnNfdWFydCAgKi8gc3RhdGljIHZvaWQNCj4gPiArY2Ruc19yczQ4NV9jb25maWdfZ3Bp b19ydHNfaGlnaChzdHJ1Y3QgY2Ruc191YXJ0ICpjZG5zX3VhcnQpIHsNCj4gPiArCXUzMiB2YWw7 DQo+ID4gKw0KPiA+ICsJaWYgKGNkbnNfdWFydC0+Z3Bpb2QpIHsNCj4gPiArCQlncGlvZF9zZXRf dmFsdWUoY2Ruc191YXJ0LT5ncGlvZCwgMSk7DQo+ID4gKwl9IGVsc2Ugew0KPiA+ICsJCXZhbCA9 IHJlYWRsKGNkbnNfdWFydC0+cG9ydC0+bWVtYmFzZSArDQo+IENETlNfVUFSVF9NT0RFTUNSKTsN Cj4gPiArCQl2YWwgJj0gfkNETlNfVUFSVF9NT0RFTUNSX1JUUzsNCj4gPiArCQl3cml0ZWwodmFs LCBjZG5zX3VhcnQtPnBvcnQtPm1lbWJhc2UgKw0KPiBDRE5TX1VBUlRfTU9ERU1DUik7DQo+ID4g Kwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBjZG5zX3JzNDg1X2NvbmZpZ19n cGlvX3J0c19sb3cgLSBDb25maWd1cmUgR1BJTy9SVFMgdG8gbG93DQo+ID4gKyAqIEBjZG5zX3Vh cnQ6IEhhbmRsZSB0byB0aGUgY2Ruc191YXJ0ICAqLyBzdGF0aWMgdm9pZA0KPiA+ICtjZG5zX3Jz NDg1X2NvbmZpZ19ncGlvX3J0c19sb3coc3RydWN0IGNkbnNfdWFydCAqY2Ruc191YXJ0KSB7DQo+ ID4gKwl1MzIgdmFsOw0KPiA+ICsNCj4gPiArCWlmIChjZG5zX3VhcnQtPmdwaW9kKSB7DQo+ID4g KwkJZ3Bpb2Rfc2V0X3ZhbHVlKGNkbnNfdWFydC0+Z3Bpb2QsIDApOw0KPiA+ICsJfSBlbHNlIHsN Cj4gPiArCQl2YWwgPSByZWFkbChjZG5zX3VhcnQtPnBvcnQtPm1lbWJhc2UgKw0KPiBDRE5TX1VB UlRfTU9ERU1DUik7DQo+ID4gKwkJdmFsIHw9IENETlNfVUFSVF9NT0RFTUNSX1JUUzsNCj4gPiAr CQl3cml0ZWwodmFsLCBjZG5zX3VhcnQtPnBvcnQtPm1lbWJhc2UgKw0KPiBDRE5TX1VBUlRfTU9E RU1DUik7DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBjZG5zX3Jz NDg1X3R4X3NldHVwIC0gVHggc2V0dXAgc3BlY2lmaWMgdG8gcnM0ODUNCj4gPiArICogQGNkbnNf dWFydDogSGFuZGxlIHRvIHRoZSBjZG5zX3VhcnQgICovIHN0YXRpYyB2b2lkDQo+ID4gK2NkbnNf cnM0ODVfdHhfc2V0dXAoc3RydWN0IGNkbnNfdWFydCAqY2Ruc191YXJ0KSB7DQo+ID4gKwlpZiAo Y2Ruc191YXJ0LT5wb3J0LT5yczQ4NS5mbGFncyAmIFNFUl9SUzQ4NV9SVFNfT05fU0VORCkNCj4g PiArCQljZG5zX3JzNDg1X2NvbmZpZ19ncGlvX3J0c19oaWdoKGNkbnNfdWFydCk7DQo+ID4gKwll bHNlDQo+ID4gKwkJY2Ruc19yczQ4NV9jb25maWdfZ3Bpb19ydHNfbG93KGNkbnNfdWFydCk7DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBjZG5zX3JzNDg1X3J4X3NldHVwIC0gUngg c2V0dXAgc3BlY2lmaWMgdG8gcnM0ODUNCj4gPiArICogQGNkbnNfdWFydDogSGFuZGxlIHRvIHRo ZSBjZG5zX3VhcnQgICovIHN0YXRpYyB2b2lkDQo+ID4gK2NkbnNfcnM0ODVfcnhfc2V0dXAoc3Ry dWN0IGNkbnNfdWFydCAqY2Ruc191YXJ0KSB7DQo+ID4gKwlpZiAoY2Ruc191YXJ0LT5wb3J0LT5y czQ4NS5mbGFncyAmIFNFUl9SUzQ4NV9SVFNfQUZURVJfU0VORCkNCj4gPiArCQljZG5zX3JzNDg1 X2NvbmZpZ19ncGlvX3J0c19oaWdoKGNkbnNfdWFydCk7DQo+ID4gKwllbHNlDQo+ID4gKwkJY2Ru c19yczQ4NV9jb25maWdfZ3Bpb19ydHNfbG93KGNkbnNfdWFydCk7DQo+ID4gK30NCj4gPiArDQo+ ID4gKy8qKg0KPiA+ICsgKiBjZG5zX3VhcnRfdHhfZW1wdHkgLSAgQ2hlY2sgd2hldGhlciBUWCBp cyBlbXB0eQ0KPiA+ICsgKiBAcG9ydDogSGFuZGxlIHRvIHRoZSB1YXJ0IHBvcnQgc3RydWN0dXJl DQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybjogVElPQ1NFUl9URU1UIG9uIHN1Y2Nlc3MsIDAgb3Ro ZXJ3aXNlICAqLyBzdGF0aWMgdW5zaWduZWQNCj4gPiAraW50IGNkbnNfdWFydF90eF9lbXB0eShz dHJ1Y3QgdWFydF9wb3J0ICpwb3J0KSB7DQo+ID4gKwl1bnNpZ25lZCBpbnQgc3RhdHVzOw0KPiA+ ICsNCj4gPiArCXN0YXR1cyA9IHJlYWRsKHBvcnQtPm1lbWJhc2UgKyBDRE5TX1VBUlRfU1IpICYN Cj4gPiArCQkgICAgICAgKENETlNfVUFSVF9TUl9UWEVNUFRZIHwgQ0ROU19VQVJUX1NSX1RBQ1RJ VkUpOw0KPiA+ICsJcmV0dXJuIChzdGF0dXMgPT0gQ0ROU19VQVJUX1NSX1RYRU1QVFkpID8gVElP Q1NFUl9URU1UIDogMDsgfQ0KPiA+ICsNCj4gPiAgLyoqDQo+ID4gICAqIGNkbnNfdWFydF9oYW5k bGVfdHggLSBIYW5kbGUgdGhlIGJ5dGVzIHRvIGJlIFR4ZWQuDQo+ID4gICAqIEBkZXZfaWQ6IElk IG9mIHRoZSBVQVJUIHBvcnQNCj4gPiBAQCAtNTcxLDYgKzY1Nyw4IEBAIHN0YXRpYyBpbnQgY2Ru c191YXJ0X2Nsa19ub3RpZmllcl9jYihzdHJ1Y3QNCj4gPiBub3RpZmllcl9ibG9jayAqbmIsICBz dGF0aWMgdm9pZCBjZG5zX3VhcnRfc3RhcnRfdHgoc3RydWN0IHVhcnRfcG9ydA0KPiA+ICpwb3J0 KSAgew0KPiA+ICAJdW5zaWduZWQgaW50IHN0YXR1czsNCj4gPiArCXVuc2lnbmVkIGxvbmcgdGlt ZV9vdXQ7DQo+ID4gKwlzdHJ1Y3QgY2Ruc191YXJ0ICpjZG5zX3VhcnQgPSBwb3J0LT5wcml2YXRl X2RhdGE7DQo+ID4NCj4gPiAgCWlmICh1YXJ0X3R4X3N0b3BwZWQocG9ydCkpDQo+ID4gIAkJcmV0 dXJuOw0KPiA+IEBAIC01ODksOCArNjc3LDMxIEBAIHN0YXRpYyB2b2lkIGNkbnNfdWFydF9zdGFy dF90eChzdHJ1Y3QgdWFydF9wb3J0DQo+ID4gKnBvcnQpDQo+ID4NCj4gPiAgCXdyaXRlbChDRE5T X1VBUlRfSVhSX1RYRU1QVFksIHBvcnQtPm1lbWJhc2UgKw0KPiBDRE5TX1VBUlRfSVNSKTsNCj4g Pg0KPiA+ICsJaWYgKGNkbnNfdWFydC0+cG9ydC0+cnM0ODUuZmxhZ3MgJiBTRVJfUlM0ODVfRU5B QkxFRCkgew0KPiA+ICsJCWNkbnNfcnM0ODVfdHhfc2V0dXAoY2Ruc191YXJ0KTsNCj4gPiArCQlp ZiAoY2Ruc191YXJ0LT5wb3J0LT5yczQ4NS5kZWxheV9ydHNfYmVmb3JlX3NlbmQpDQo+ID4gKwkJ CW1kZWxheShjZG5zX3VhcnQtPnBvcnQtDQo+ID5yczQ4NS5kZWxheV9ydHNfYmVmb3JlX3NlbmQp Ow0KPiANCj4gU28sIHRoaXMgd2lsbCBiZSBleGVjdXRlZCBlYWNoIHRpbWUgKGluY2x1ZGluZyB0 aGUgcnRzX2JlZm9yZV9zZW5kIGRlbGF5KSB0aGUNCj4gY29yZSB3YW50cyB0byBzZW5kIGRhdGE/ IFRoaXMgaXMgbm90IGhvdyBpdCBpcyBzdXBwb3NlZCB0byB3b3JrOiBUaGUgdHggc2V0dXANCj4g KGFuZCB0aGUgZGVsYXkgYmVmb3JlIHNlbmQpIGhhcyB0byBiZSBkb25lIG9uY2Ugd2hlbiB0cmFu c21pc3Npb24gc3RhcnRzLg0KPiBOb3RlIHRoYXQgd2hlbiBzZW5kaW5nIGEgYnVsayBvZiBkYXRh IHRoZSBjb3JlIG1heSBjYWxsIGNkbnNfdWFydF9zdGFydF90eCgpDQo+IHNldmVyYWwgdGltZXMg YmVmb3JlIGl0IGV2ZW50dWFsbHkgY2FsbHMgY2Ruc191YXJ0X3N0b3BfdHgoKSB0byBzdG9wIHRo ZQ0KPiB0cmFuc21pc3Npb24uDQpXZSBoYXZlIHRlc3RlZCBidWxrIHRyYW5zZmVyICg1MDAwIGJ5 dGVzKSBhbmQgb2JzZXJ2ZWQgdGhhdCBjZG5zX3VhcnRfc3RhcnRfdHgoKSBpcyBnZXR0aW5nIGNh bGxlZCBvbmx5IG9uY2UuIENhbiB5b3UgcGxlYXNlIHN1Z2dlc3QgaG93IHRvIHJlcHJvZHVjZSB0 aGUgY2FzZSB3aGVyZSB0aGUgY29yZSBtYXkgY2FsbCBjZG5zX3VhcnRfc3RhcnRfdHgoKSBzZXZl cmFsIHRpbWVzIGJlZm9yZSBpdCBldmVudHVhbGx5IGNhbGxzIGNkbnNfdWFydF9zdG9wX3R4KCku DQo+IA0KPiANCj4gPiArCX0NCj4gPiArDQo+ID4gIAljZG5zX3VhcnRfaGFuZGxlX3R4KHBvcnQp Ow0KPiA+DQo+ID4gKwlpZiAoY2Ruc191YXJ0LT5wb3J0LT5yczQ4NS5mbGFncyAmIFNFUl9SUzQ4 NV9FTkFCTEVEKSB7DQo+ID4gKwkJdGltZV9vdXQgPSBqaWZmaWVzICsgdXNlY3NfdG9famlmZmll cyhUWF9USU1FT1VUKTsNCj4gPiArCQkvKiBXYWl0IGZvciB0eCBjb21wbGV0aW9uICovDQo+ID4g KwkJd2hpbGUgKChjZG5zX3VhcnRfdHhfZW1wdHkoY2Ruc191YXJ0LT5wb3J0KSAhPQ0KPiBUSU9D U0VSX1RFTVQpICYmDQo+ID4gKwkJICAgICAgIHRpbWVfYmVmb3JlKGppZmZpZXMsIHRpbWVfb3V0 KSkNCj4gPiArCQkJY3B1X3JlbGF4KCk7DQo+ID4gKw0KPiA+ICsJCWlmIChjZG5zX3VhcnQtPnBv cnQtPnJzNDg1LmRlbGF5X3J0c19hZnRlcl9zZW5kKQ0KPiA+ICsJCQltZGVsYXkoY2Ruc191YXJ0 LT5wb3J0LQ0KPiA+cnM0ODUuZGVsYXlfcnRzX2FmdGVyX3NlbmQpOw0KPiA+ICsNCj4gPiArCQkv Kg0KPiA+ICsJCSAqIERlZmF1bHQgUnggc2hvdWxkIGJlIHNldHVwLCBiZWNhdXNlIFJYIHNpZ25h bGluZyBwYXRoDQo+ID4gKwkJICogbmVlZCB0byBlbmFibGUgdG8gcmVjZWl2ZSBkYXRhLg0KPiA+ ICsJCSAqLw0KPiA+ICsJCWNkbnNfcnM0ODVfcnhfc2V0dXAoY2Ruc191YXJ0KTsNCj4gPiArCX0N Cj4gPiArDQo+ID4gIAkvKiBFbmFibGUgdGhlIFRYIEVtcHR5IGludGVycnVwdCAqLw0KPiA+ICAJ d3JpdGVsKENETlNfVUFSVF9JWFJfVFhFTVBUWSwgcG9ydC0+bWVtYmFzZSArDQo+IENETlNfVUFS VF9JRVIpOyAgfSBAQA0KPiA+IC02MDIsNiArNzEzLDE0IEBAIHN0YXRpYyB2b2lkIGNkbnNfdWFy dF9zdGFydF90eChzdHJ1Y3QgdWFydF9wb3J0DQo+ID4gKnBvcnQpICBzdGF0aWMgdm9pZCBjZG5z X3VhcnRfc3RvcF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KSAgew0KPiA+ICAJdW5zaWduZWQg aW50IHJlZ3ZhbDsNCj4gPiArCXN0cnVjdCBjZG5zX3VhcnQgKmNkbnNfdWFydCA9IHBvcnQtPnBy aXZhdGVfZGF0YTsNCj4gPiArDQo+ID4gKwlpZiAoY2Ruc191YXJ0LT5wb3J0LT5yczQ4NS5mbGFn cyAmIFNFUl9SUzQ4NV9FTkFCTEVEKSB7DQo+ID4gKwkJaWYgKGNkbnNfdWFydC0+cG9ydC0+cnM0 ODUuZGVsYXlfcnRzX2FmdGVyX3NlbmQpDQo+ID4gKwkJCW1kZWxheShjZG5zX3VhcnQtPnBvcnQt DQo+ID5yczQ4NS5kZWxheV9ydHNfYWZ0ZXJfc2VuZCk7DQo+ID4gKw0KPiA+ICsJCWNkbnNfcnM0 ODVfcnhfc2V0dXAoY2Ruc191YXJ0KTsNCj4gPiArCX0NCj4gPg0KPiA+ICAJcmVndmFsID0gcmVh ZGwocG9ydC0+bWVtYmFzZSArIENETlNfVUFSVF9DUik7DQo+ID4gIAlyZWd2YWwgfD0gQ0ROU19V QVJUX0NSX1RYX0RJUzsNCj4gPiBAQCAtNjI2LDIxICs3NDUsNiBAQCBzdGF0aWMgdm9pZCBjZG5z X3VhcnRfc3RvcF9yeChzdHJ1Y3QgdWFydF9wb3J0DQo+ICpwb3J0KQ0KPiA+ICAJd3JpdGVsKHJl Z3ZhbCwgcG9ydC0+bWVtYmFzZSArIENETlNfVUFSVF9DUik7ICB9DQo+ID4NCj4gPiAtLyoqDQo+ ID4gLSAqIGNkbnNfdWFydF90eF9lbXB0eSAtICBDaGVjayB3aGV0aGVyIFRYIGlzIGVtcHR5DQo+ ID4gLSAqIEBwb3J0OiBIYW5kbGUgdG8gdGhlIHVhcnQgcG9ydCBzdHJ1Y3R1cmUNCj4gPiAtICoN Cj4gPiAtICogUmV0dXJuOiBUSU9DU0VSX1RFTVQgb24gc3VjY2VzcywgMCBvdGhlcndpc2UNCj4g PiAtICovDQo+ID4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgY2Ruc191YXJ0X3R4X2VtcHR5KHN0cnVj dCB1YXJ0X3BvcnQgKnBvcnQpIC17DQo+ID4gLQl1bnNpZ25lZCBpbnQgc3RhdHVzOw0KPiA+IC0N Cj4gPiAtCXN0YXR1cyA9IHJlYWRsKHBvcnQtPm1lbWJhc2UgKyBDRE5TX1VBUlRfU1IpICYNCj4g PiAtCQkgICAgICAgKENETlNfVUFSVF9TUl9UWEVNUFRZIHwgQ0ROU19VQVJUX1NSX1RBQ1RJVkUp Ow0KPiA+IC0JcmV0dXJuIChzdGF0dXMgPT0gQ0ROU19VQVJUX1NSX1RYRU1QVFkpID8gVElPQ1NF Ul9URU1UIDogMDsNCj4gPiAtfQ0KPiA+IC0NCj4gPiAgLyoqDQo+ID4gICAqIGNkbnNfdWFydF9i cmVha19jdGwgLSBCYXNlZCBvbiB0aGUgaW5wdXQgY3RsIHdlIGhhdmUgdG8gc3RhcnQgb3Igc3Rv cA0KPiA+ICAgKgkJCXRyYW5zbWl0dGluZyBjaGFyIGJyZWFrcw0KPiA+IEBAIC04MjksNiArOTMz LDkgQEAgc3RhdGljIGludCBjZG5zX3VhcnRfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0 KQ0KPiA+ICAJCShDRE5TX1VBUlRfQ1JfVFhSU1QgfCBDRE5TX1VBUlRfQ1JfUlhSU1QpKQ0KPiA+ ICAJCWNwdV9yZWxheCgpOw0KPiA+DQo+ID4gKwlpZiAoY2Ruc191YXJ0LT5wb3J0LT5yczQ4NS5m bGFncyAmIFNFUl9SUzQ4NV9FTkFCTEVEKQ0KPiA+ICsJCWNkbnNfcnM0ODVfcnhfc2V0dXAoY2Ru c191YXJ0KTsNCj4gPiArDQo+ID4gIAkvKg0KPiA+ICAJICogQ2xlYXIgdGhlIFJYIGRpc2FibGUg Yml0IGFuZCB0aGVuIHNldCB0aGUgUlggZW5hYmxlIGJpdCB0byBlbmFibGUNCj4gPiAgCSAqIHRo ZSByZWNlaXZlci4NCj4gPiBAQCAtMTQ1NSw2ICsxNTYyLDIzIEBAIE1PRFVMRV9ERVZJQ0VfVEFC TEUob2YsDQo+IGNkbnNfdWFydF9vZl9tYXRjaCk7DQo+ID4gIC8qIFRlbXBvcmFyeSB2YXJpYWJs ZSBmb3Igc3RvcmluZyBudW1iZXIgb2YgaW5zdGFuY2VzICovICBzdGF0aWMgaW50DQo+ID4gaW5z dGFuY2VzOw0KPiA+DQo+ID4gKy8qKg0KPiA+ICsgKiBjZG5zX3JzNDg1X2NvbmZpZyAtIENhbGxl ZCB3aGVuIGFuIGFwcGxpY2F0aW9uIGNhbGxzIFRJT0NTUlM0ODUgaW9jdGwuDQo+ID4gKyAqIEBw b3J0OiBQb2ludGVyIHRvIHRoZSB1YXJ0X3BvcnQgc3RydWN0dXJlDQo+ID4gKyAqIEB0ZXJtaW9z OiBQb2ludGVyIHRvIHRoZSBrdGVybWlvcyBzdHJ1Y3R1cmUNCj4gPiArICogQHJzNDg1OiBQb2lu dGVyIHRvIHRoZSBzZXJpYWxfcnM0ODUgc3RydWN0dXJlDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVy bjogMA0KPiA+ICsgKi8NCj4gPiArc3RhdGljIGludCBjZG5zX3JzNDg1X2NvbmZpZyhzdHJ1Y3Qg dWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3Qga3Rlcm1pb3MNCj4gKnRlcm1pb3MsDQo+ID4gKwkJCSAg ICAgc3RydWN0IHNlcmlhbF9yczQ4NSAqcnM0ODUpDQo+ID4gK3sNCj4gPiArCWlmIChyczQ4NS0+ ZmxhZ3MgJiBTRVJfUlM0ODVfRU5BQkxFRCkNCj4gPiArCQlkZXZfZGJnKHBvcnQtPmRldiwgIlNl dHRpbmcgVUFSVCB0byBSUzQ4NVxuIik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30N Cj4gDQo+IFNvIHdoYXQgaWYgdXNlcnNwYWNlIGNoYW5nZXMgdGhlIFJTNDg1IGNvbmZpZ3VyYXRp b24/IFdoZW4gZG9lcyBpdCB0YWtlDQo+IGVmZmVjdD8NCldlIHdpbGwgZGlzYWJsZSBhdXRvIFJU UyBjb250cm9sIGFuZCBjYWxsIGNkbnNfdWFydF9zdG9wX3R4KCkgd2hpY2ggd2lsbCBwZXJmb3Jt IGJvdGggc3RvcCB0eCBhbmQgY2Ruc19yczQ4NV9yeF9zZXR1cCgpDQo+IA0KPiA+ICsNCj4gPiAg LyoqDQo+ID4gICAqIGNkbnNfdWFydF9wcm9iZSAtIFBsYXRmb3JtIGRyaXZlciBwcm9iZQ0KPiA+ ICAgKiBAcGRldjogUG9pbnRlciB0byB0aGUgcGxhdGZvcm0gZGV2aWNlIHN0cnVjdHVyZSBAQCAt MTQ2Myw2ICsxNTg3LDcNCj4gPiBAQCBzdGF0aWMgaW50IGluc3RhbmNlczsNCj4gPiAgICovDQo+ ID4gIHN0YXRpYyBpbnQgY2Ruc191YXJ0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpICB7DQo+ID4gKwl1MzIgdmFsOw0KPiA+ICAJaW50IHJjLCBpZCwgaXJxOw0KPiA+ICAJc3Ry dWN0IHVhcnRfcG9ydCAqcG9ydDsNCj4gPiAgCXN0cnVjdCByZXNvdXJjZSAqcmVzOw0KPiA+IEBA IC0xNTk3LDkgKzE3MjIsMjMgQEAgc3RhdGljIGludCBjZG5zX3VhcnRfcHJvYmUoc3RydWN0DQo+ IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgCXBvcnQtPnByaXZhdGVfZGF0YSA9IGNkbnNf dWFydF9kYXRhOw0KPiA+ICAJcG9ydC0+cmVhZF9zdGF0dXNfbWFzayA9IENETlNfVUFSVF9JWFJf VFhFTVBUWSB8DQo+IENETlNfVUFSVF9JWFJfUlhUUklHIHwNCj4gPiAgCQkJQ0ROU19VQVJUX0lY Ul9PVkVSUlVOIHwgQ0ROU19VQVJUX0lYUl9UT1VUOw0KPiA+ICsJcG9ydC0+cnM0ODVfY29uZmln ID0gY2Ruc19yczQ4NV9jb25maWc7DQo+ID4gKwlwb3J0LT5yczQ4NV9zdXBwb3J0ZWQgPSBjZG5z X3JzNDg1X3N1cHBvcnRlZDsNCj4gPiAgCWNkbnNfdWFydF9kYXRhLT5wb3J0ID0gcG9ydDsNCj4g PiAgCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHBvcnQpOw0KPiA+DQo+ID4gKwlyYyA9IHVh cnRfZ2V0X3JzNDg1X21vZGUocG9ydCk7DQo+ID4gKwlpZiAocmMpDQo+ID4gKwkJZ290byBlcnJf b3V0X2Nsa19ub3RpZmllcjsNCj4gPiArDQo+ID4gKwljZG5zX3VhcnRfZGF0YS0+Z3Bpb2QgPSBk ZXZtX2dwaW9kX2dldF9vcHRpb25hbCgmcGRldi0+ZGV2LA0KPiAicnRzIiwNCj4gPiArCQkJCQkJ CUdQSU9EX09VVF9MT1cpOw0KPiA+ICsJaWYgKElTX0VSUihjZG5zX3VhcnRfZGF0YS0+Z3Bpb2Qp KSB7DQo+ID4gKwkJcmMgPSBQVFJfRVJSKGNkbnNfdWFydF9kYXRhLT5ncGlvZCk7DQo+ID4gKwkJ ZGV2X2Vycihwb3J0LT5kZXYsICJ4dWFydHBzOiBkZXZtX2dwaW9kX2dldF9vcHRpb25hbA0KPiBm YWlsZWRcbiIpOw0KPiANCj4gV2h5IGJhaWwgb3V0IHdpdGggYW4gZXJyb3IgaWYgaGF2aW5nIGNk bnNfdWFydF9kYXRhLT5ncGlvZCBpcyBvbmx5IG9wdGlvbmFsPw0KV2UgYXJlIHVzaW5nIGRldm1f Z3Bpb2RfZ2V0X29wdGlvbmFsKCksIGl0IHdpbGwgcmV0dXJuIE5VTEwgd2hlbiBncGlvIG5vdCBw YXNzZWQsIHNvIElTX0VSUigpIGNoZWNrIHdpbGwgYmUgZmFsc2UgYW5kIHdpbGwgbm90ICBiYWls IG91dC4NCj4gDQo+ID4gKwkJZ290byBlcnJfb3V0X2Nsa19ub3RpZmllcjsNCj4gPiArCX0NCj4g PiArDQo+ID4gIAlwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZCgmcGRldi0+ZGV2KTsNCj4gPiAg CXBtX3J1bnRpbWVfc2V0X2F1dG9zdXNwZW5kX2RlbGF5KCZwZGV2LT5kZXYsDQo+IFVBUlRfQVVU T1NVU1BFTkRfVElNRU9VVCk7DQo+ID4gIAlwbV9ydW50aW1lX3NldF9hY3RpdmUoJnBkZXYtPmRl dik7DQo+ID4gQEAgLTE2MzgsNiArMTc3NywxNiBAQCBzdGF0aWMgaW50IGNkbnNfdWFydF9wcm9i ZShzdHJ1Y3QNCj4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAJY2Ruc191YXJ0X2RhdGEt PmN0c19vdmVycmlkZSA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChwZGV2LQ0KPiA+ZGV2Lm9mX25v ZGUsDQo+ID4gIAkJCQkJCQkgICAgICJjdHMtb3ZlcnJpZGUiKTsNCj4gPg0KPiA+ICsJaWYgKGNk bnNfdWFydF9kYXRhLT5wb3J0LT5yczQ4NS5mbGFncyAmIFNFUl9SUzQ4NV9FTkFCTEVEKSB7DQo+ ID4gKwkJaWYgKCFjZG5zX3VhcnRfZGF0YS0+Z3Bpb2QpIHsNCj4gPiArCQkJdmFsID0gcmVhZGwo Y2Ruc191YXJ0X2RhdGEtPnBvcnQtPm1lbWJhc2UNCj4gPiArCQkJCSAgICArIENETlNfVUFSVF9N T0RFTUNSKTsNCj4gPiArCQkJdmFsIHw9IENETlNfVUFSVF9NT0RFTUNSX1JUUzsNCj4gPiArCQkJ d3JpdGVsKHZhbCwgY2Ruc191YXJ0X2RhdGEtPnBvcnQtPm1lbWJhc2UNCj4gPiArCQkJICAgICAg ICsgQ0ROU19VQVJUX01PREVNQ1IpOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gDQo+IFRoaXMgY292 ZXJzIHRoZSBSVFNfQUZURVJfU0VORCBtb2RlLiBXaGF0IGlmIFNFUl9SUzQ4NV9SVFNfT05fU0VO RCBpcw0KPiBjb25maWd1cmVkIGluc3RlYWQgKGFzIGl0IGlzIHRoZSBkZWZhdWx0IHNldCBieSB1 YXJ0X2dldF9yczQ4NV9tb2RlKCkpPyBXaGF0IGlmDQo+IGNkbnNfdWFydF9kYXRhLT5ncGlvZCBl eGlzdHM/DQo+IFdoeSBub3Qgc2ltcGx5IGNhbGwgY2Ruc19yczQ4NV9yeF9zZXR1cCgpIHdoaWNo IGNvdmVycyBhbGwgdGhlc2UgY2FzZXM/DQo+IE5vdGUgdGhhdCB1YXJ0X2FkZF9vbmVfcG9ydCgp IHdpbGwgY2FsbCBpbnRvIHRoZSBzZXJpYWwgY29yZSBhbmQgZXZlbnR1YWxseQ0KPiByZXN1bHQg aW4gYW4gaW5pdGlhbCBjYWxsIHRvIHRoZSBwb3J0cyByczQ4NV9jb25maWcgZnVuY3Rpb24gKHNl ZQ0KPiB1YXJ0X3JzNDg1X2NvbmZpZygpKS4gU28gbWF5YmUgcHV0IHRoZSBpbml0aWFsIGNvbmZp Z3VyYXRpb24gaW50byB0aGF0IGZ1bmN0aW9uDQo+IGFuZCByZW1vdmUgdGhlIGFib3ZlIGNvZGUu IEhvd2V2ZXIgaW4gdGhpcyBjYXNlDQo+IA0KPiBjZG5zX3VhcnRfZGF0YS0+Y3RzX292ZXJyaWRl ID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKHBkZXYtPmRldi5vZl9ub2RlLA0KPiAJCQkJCQkJICAg ICAiY3RzLW92ZXJyaWRlIik7DQo+IHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHVhcnRfYWRkX29u ZV9wb3J0KCkuDQpXZSB3aWxsIGZpeC4NCg0KVGhhbmtzLA0KTWFuaWthbnRhLg0K