From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F30A5A0C43; Tue, 16 Nov 2021 09:13:54 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DB8F9407FF; Tue, 16 Nov 2021 09:13:54 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2072.outbound.protection.outlook.com [40.107.212.72]) by mails.dpdk.org (Postfix) with ESMTP id 49FF940040 for ; Tue, 16 Nov 2021 09:13:54 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aIJRtjCdeCcoOylOzGkkYHx1jzejgrWxZ1/xbSCyjmi15HAWPLKXFSUJ1pinrG6bgNhBxC2lXZLyCtXCXLZbRP5nUuBZQ/2J04Hf40iT+JMsvx38ZHguQAMMIapWsK1IgGrkGvwtklpmtc/x6hhBDpkVOHUg0Nk9hf7dTrQW1PHtTudx22ZRHJbfN/7qyaGg3DpktsuFb7DPRoV8vG+bUGP0JheCJKs6TAlDm2ceH1nFgRPqnVD4z8IICDTaA0OpiEKetoj8kINSkzqMbF6v1+SggwbCweauEvtN/dElSAywM5X9DoE2K1xOmLGB9WBMnv/9QgLZwGuuNhQno8nYLw== 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=scTMuLAhFD5bkKUeBwPuQqkSTLPJGhJPLyyluLEIMnE=; b=K/UBemtPQ1a+GzFZa8W2sqMfUmMfyzmb0K3gQoaEfjLjmk+gk1TDSQNNL011mnAaovP62ejbZiKH67jQYW/cHZCWzxCTr0Gz99ExhulNmiy0eog3b943/TnZMqDXQB7HbDleb/JU1DTmNznlujNGqbyRiF0mKKeO9ISadKDvyVpuvXFEB9VwpTClbmDBxu8UKMiW69UqnviuemgzGJQYFtCZf99vOZI3RoIbKcfyAZv6xuwaOuX2XGEHGdtUmnh6KkNcRVojXrETSxVPngtNHBz9uiZXN2rBZH48Mpe9bTKyel9XjgPxPiwAJMUU+O/hhGZLVm5cbEsK39hzOziX5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=scTMuLAhFD5bkKUeBwPuQqkSTLPJGhJPLyyluLEIMnE=; b=QxiOtakHmxWBFSg7ySPQGgYdIBVpiiAMcEUsvGI8ZfJxUgoFefSI4BcQlp/YrxbnaAV9PsC8g3VGewzVx+uyrzNH9oS+8KnlFqSFcxULjpM3lMyB93oqLkCDYt+UaqTVlpf5pzqjCJXZh37b3FfZxhWqUz+oxvhQT1lnqC+fZmIaAQ0uli5PJOP1THk1wDiXUTalOnOZvGInGIGxtzRwLgTYRr9sOjPTFLNGci5z2uYCTBt6LjhNi3Ky5axAnZyIHImSPDJYSfEi5LuLiA2xQZ3leeyrdNqFVE9H/mHu49lb2zN5ISiTMLAy1p9ldm4XgYHrUmsqRxzWWpnzEiCEQg== Received: from DM4PR12MB5184.namprd12.prod.outlook.com (2603:10b6:5:397::18) by DM8PR12MB5478.namprd12.prod.outlook.com (2603:10b6:8:29::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Tue, 16 Nov 2021 08:13:52 +0000 Received: from DM4PR12MB5184.namprd12.prod.outlook.com ([fe80::116b:486a:a864:fa2f]) by DM4PR12MB5184.namprd12.prod.outlook.com ([fe80::116b:486a:a864:fa2f%9]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021 08:13:52 +0000 From: Bing Zhao To: "Xia, Chenbo" , Slava Ovsiienko , Matan Azrad , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , Raslan Darawsheh Subject: RE: [PATCH] vdpa/mlx5: fix return value check of mkey create Thread-Topic: [PATCH] vdpa/mlx5: fix return value check of mkey create Thread-Index: AQHX19OekzcBWqeIO0C8ccypA+PwQKwFzpWAgAABo7CAAAFjgIAAAkow Date: Tue, 16 Nov 2021 08:13:52 +0000 Message-ID: References: <20211112144245.9389-1-bingz@nvidia.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f38fc2cd-5427-4090-c9ab-08d9a8d906b4 x-ms-traffictypediagnostic: DM8PR12MB5478: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2089; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wDT4/uqHVd7ybxGzegiGbPZ/h5XOHq/Of4ZW6RBf2xfHIXqSjUPaY2vF1JAbmxw8wsnQMQrETwJXejSCkZNOeNK7OsOf8yjebHyaqjqOd3CpghKfg2+PyM8MtAFEV5XbgBjpTXJNBYy/bpl8zPSTPROgO6c+FE8JHBH/4P1JEhZkQhPpOWAZDMNGtJ1HC8l4luiANrJQXhHIaD2fC4VbXDVCYdzMe2SeIgbtA7YMOTSszc2CSVTWHG2GCQUgX8nW/1ErS11YkDPaX+EGk0bncaHMGjFd9eL1u5P7HJKCLOie7ibQKE3TMKIxofNrXrL72NsX/H1vBKIyI4HDknYRC1IRUtt0XyzSiuQohyqu7j9V/Xv6Tdpuc2N2c8lQCzdSxxnNyHzq9pdCX1FQgUeLoU4n+mSFrcyJ+EShFle4HFFlolDsUFUwZ6/Skm5kCuG0Dpa95Sv2nrUjpD/3hIBvnHQwCmozp4bfqelwO5k1eSKbjR5n8lpf0u+A+EHnkPLhnXpGf7xTjKi6JXLupZ8xDlF0KEvxYyIHqjuynC7ACP+uDiemnQkc9PUS/fNBCkWlOoMlOGkGqBjTathwR1vppc9E7Xqd8Bw1zMq7IoQlVcvWoQH5RYN+ZJlS00vpoLX+JCYs/OuGpzbzlxXYmdiMkAgRkIkIJ/vRYUkFg9qPwV7LBJSAD3G49A9luwJAioAazp56Sw/7j8mR72cMV0dJSQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5184.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(122000001)(7696005)(6506007)(316002)(26005)(8936002)(71200400001)(2906002)(64756008)(66556008)(8676002)(66946007)(66476007)(54906003)(52536014)(5660300002)(38100700002)(66446008)(76116006)(186003)(508600001)(4326008)(83380400001)(33656002)(55016002)(9686003)(86362001)(107886003)(53546011)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MXRreFdyRU1xMnJ6Q2NXQjNmRVp6VDhQYWFMb1I3L1VYRXRUK3lDMEV3aXpK?= =?utf-8?B?bVhYdDhadVR2dXN6VlhMbDQ0OGozYlFzcmhrejlrK3JFL1ZMUUJXTnNmcWNy?= =?utf-8?B?cUhmeXY5OXVheFViWUtkcWZ0QTl4d0RzYWgyb0NjcHNxUGgvV3RZaUp6c0ph?= =?utf-8?B?UWh6bDhEdmJ3UWlDZmVZb29nQzlTcTlYSUNiM2pyS2ZSaXRFMTc1NGg3b1Jp?= =?utf-8?B?TnVaak1tYmZkUDNzUVFKOTNoaW54V2tJaUwxeHNrK3dYRlpQS09VNnRrWmI5?= =?utf-8?B?Y3ltSC9vUGgrWlR5Wk5zdkVoN2lIOXNPa3hsWTRqWmxOTlRhRVpwYi81QU16?= =?utf-8?B?bElGdk1aM2pvOElmVmdjV2RhRHEraUxZdUtWWUJuWnFIM1lhYzlnWTVNMUtK?= =?utf-8?B?VFlOaFJXV3Nwc0cvVW5LT05EZ0VSU0dWRUg0Snh2WVJaZXJPdk1jZDAxQkRa?= =?utf-8?B?S3IvMWIxbDNzcmMvQjcrd2NJeUdUejJMNkp0ay8ybXJwRm05TzFzc3RkOXNJ?= =?utf-8?B?eFd3dm9lK2doZm1KbjZsbnRnZjJja1B0ekhMQVBXOC9acThCMWp0M3lRbFBC?= =?utf-8?B?dVpKUW10NTBTVkE0NzdMVVZqT2dyNUdJZEFvSVJIekdFSCs5Nys2NTY2VzRI?= =?utf-8?B?bXdiTjV6Si96a1FPTHdDb3Vrcm1GcUZKd3N3eURzVm1RQnJteXVNVTgzYUdu?= =?utf-8?B?N1F4OVQ5NjF0WlR4ajl1N29SbHZHMmp6T25LSGJDQlN4eElPQklIS2pYUmNj?= =?utf-8?B?cGxHMFVZbmxDWWJJOEVDT2NVWkgrWFB0ekxmcVdxYmpEdUQvWXluNWwvSS9p?= =?utf-8?B?WlhTTUE4UjlXMFhwdUJwT0FqTTRCeU16L1lHLzFJTFVWaTVXeTFna3lFMkVa?= =?utf-8?B?Nk5sN2ZMcWZGVFg0OTJ5RUhTZ1Vpb2FCTlQxOHExMFVob0xBeWhNTkZpTnd2?= =?utf-8?B?eGJLWGpWRjZpaGZCRW1mUm5lSGlNYzZqZmJCU29VeVkvZmhxVVZPMzVPRlBM?= =?utf-8?B?YlZYTGV0NU44N3Q2bCtqT1o0ckJGeEI1WjNtbzVCSlRJL25jYlNnemVISUsy?= =?utf-8?B?a0xkbUpZT0ZNWHRESEtYbGtzdWhyY2h0L0dBc2UyV2lzb2xIckV3UEV0ZmUw?= =?utf-8?B?amIrYXl2Mks5K3l2QzdWcG5JNmNKZVhnQWtjVWZVZ0ZqckdXdktGK21KR2M0?= =?utf-8?B?Q1Q3dVgzRGFUZG4xTjF4QWZYMnlCMDJyaHVwWDFYTzJLK2lmQ015bm1CY3dQ?= =?utf-8?B?RFlQQ2ovQ2JpRUVYTSs3TldObWZaSlgxV3QyWlhwbjJjMk84eUd3U2Z0WlZw?= =?utf-8?B?NXcyeXpJU2NRRVpDNUVHcDlxRmJkUXRWNkFRdjd3eDJlREQ3NkZ2VEYzL01t?= =?utf-8?B?U1VxZHhpK0FmVDdCV1FJK3hZcmFRNVJMRTdSZ1Zqa1hXSThWMVRLM0FzOFNk?= =?utf-8?B?YTQxdUVLcmJlZmVYeEZJVW40N3I1Zmpvak40dWQzZWdQbHZ6ZVBjTTZZRUlT?= =?utf-8?B?aDk2OW9hQUxwZ095K3VEL3RpOWcwWnlzME8velRaaFhsRjlrdVlJZEpRYkxL?= =?utf-8?B?VHhQNWJlNHQ1T0xoSlQvdTRGTzhpaFZ1TkJFc01Ebm9IR0M5NkZlL0g0TFh1?= =?utf-8?B?eitnY0RtelBrNXlMd1hJbmNzbHNOVEQ2TlgxbWdpV1RvYUxMelZqdEVFb25n?= =?utf-8?B?bHBjbGhPTiszWWdtUEpHV2VncGpUSGZXMmt4ZHVHalZQd3gvdDRTekFBK1px?= =?utf-8?B?MFYrRDByVHd1TkdPT2I0eXNOaU1paU1IcTExK2phTnUzRzZXM1pXSXgwL0xZ?= =?utf-8?B?SnlRY0M3NHM5OURlVnlzM2p5M0JkTjhnSDRvZ0RCejlBd05RK2Rzbm9nS2xr?= =?utf-8?B?UnFmVm9NaVY4eUU4c0gwRWVsTHM2MzdqRFpsZnY5d0V3VHVPbkJadndBSkxL?= =?utf-8?B?ZUNFTmJyTDJKeUtKZW1SS3FVdXJKQmNQYUpJcWhCd1I5aXU5YjI4WTRNOHd2?= =?utf-8?B?Z2dKWUdHcExNbUpFUWs1cThWR0VlSFFGUCs5TGw5U3FPa0trdWNTbXpZL3k0?= =?utf-8?B?a1RGOWd2RGJuY3pLc2FpeU1nNkIybmU4dlhNNVhtM01zalQ4TW8yazhGREFs?= =?utf-8?B?NWNiaklOcktYNU13U3Z6TFljTFlFdkg2WkZHQWx6SVU1dS9WYmplMFRuajVS?= =?utf-8?Q?YxAtbrYLPkXdO7qKqW4MPGM=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5184.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f38fc2cd-5427-4090-c9ab-08d9a8d906b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 08:13:52.2521 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cj0dYg7LsrzNn+7YrtBbbfRf1cQyMTO/j22IxVkt/5DmKbWNK2wZY7V0EBIE2Uw7D/Dk6FgEdhGSRHdMVk5DSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5478 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWGlhLCBDaGVuYm8g PGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxNiwgMjAy MSA0OjA1IFBNDQo+IFRvOiBCaW5nIFpoYW8gPGJpbmd6QG52aWRpYS5jb20+OyBTbGF2YSBPdnNp aWVua28NCj4gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBNYXRhbiBBenJhZCA8bWF0YW5AbnZp ZGlhLmNvbT47DQo+IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tDQo+IENjOiBkZXZAZHBkay5v cmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbnZpZGlhLmNvbT4NCj4gU3ViamVjdDogUkU6 IFtQQVRDSF0gdmRwYS9tbHg1OiBmaXggcmV0dXJuIHZhbHVlIGNoZWNrIG9mIG1rZXkNCj4gY3Jl YXRlDQo+IA0KPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBh dHRhY2htZW50cw0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBCaW5nIFpoYW8gPGJpbmd6QG52aWRpYS5jb20+DQo+ID4gU2VudDogVHVlc2RheSwgTm92 ZW1iZXIgMTYsIDIwMjEgNDowMSBQTQ0KPiA+IFRvOiBYaWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBp bnRlbC5jb20+OyBTbGF2YSBPdnNpaWVua28NCj4gPiA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47 IE1hdGFuIEF6cmFkIDxtYXRhbkBudmlkaWEuY29tPjsNCj4gPiBtYXhpbWUuY29xdWVsaW5AcmVk aGF0LmNvbQ0KPiA+IENjOiBkZXZAZHBkay5vcmc7IFJhc2xhbiBEYXJhd3NoZWggPHJhc2xhbmRA bnZpZGlhLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSB2ZHBhL21seDU6IGZpeCByZXR1 cm4gdmFsdWUgY2hlY2sgb2YgbWtleQ0KPiBjcmVhdGUNCj4gPg0KPiA+IEhpIENoZW5ibywNCj4g Pg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogWGlh LCBDaGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiA+ID4gU2VudDogVHVlc2RheSwgTm92 ZW1iZXIgMTYsIDIwMjEgMzo1NCBQTQ0KPiA+ID4gVG86IEJpbmcgWmhhbyA8YmluZ3pAbnZpZGlh LmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA+ID4gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBN YXRhbiBBenJhZCA8bWF0YW5AbnZpZGlhLmNvbT4NCj4gPiA+IENjOiBkZXZAZHBkay5vcmc7IFJh c2xhbiBEYXJhd3NoZWggPHJhc2xhbmRAbnZpZGlhLmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBb UEFUQ0hdIHZkcGEvbWx4NTogZml4IHJldHVybiB2YWx1ZSBjaGVjayBvZiBta2V5DQo+ID4gPiBj cmVhdGUNCj4gPiA+DQo+ID4gPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBs aW5rcyBvciBhdHRhY2htZW50cw0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IEJpbmcgWmhhbyA8YmluZ3pAbnZpZGlhLmNvbT4N Cj4gPiA+ID4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciAxMiwgMjAyMSAxMDo0MyBQTQ0KPiA+ID4g PiBUbzogdmlhY2hlc2xhdm9AbnZpZGlhLmNvbTsgbWF0YW5AbnZpZGlhLmNvbQ0KPiA+ID4gPiBD YzogZGV2QGRwZGsub3JnOyByYXNsYW5kQG52aWRpYS5jb20NCj4gPiA+ID4gU3ViamVjdDogW1BB VENIXSB2ZHBhL21seDU6IGZpeCByZXR1cm4gdmFsdWUgY2hlY2sgb2YgbWtleQ0KPiBjcmVhdGUN Cj4gPiA+ID4NCj4gPiA+ID4gVGhlIHJldHVybiB2YWx1ZSBvZiAibWx4NV9vc193cmFwcGVkX21r ZXlfY3JlYXRlIiBpcyBjaGVja2VkDQo+IGluDQo+ID4gPiB0aGUNCj4gPiA+ID4gY2FsbGVyLiBB IHplcm8gbWVhbnMgc3VjY2VzcyB3aXRob3V0IGFueSBlcnJvci4NCj4gPiA+ID4NCj4gPiA+ID4g VGhlIHR5cG8gaW4gdGhlIGlmLWNvbmRpdGlvbiBzaG91bGQgYmUgZml4ZWQgaW4gY2FzZSB0aGVy ZSBpcw0KPiBhDQo+ID4gPiA+IG1pc2p1ZGdtZW50Lg0KPiA+ID4gPg0KPiA+ID4gPiBGaXhlczog ZjI2ZTA2ZDk3ZDU3ICgidmRwYS9tbHg1OiB3b3JrYXJvdW5kIGRpcnR5IGJpdG1hcCBNUg0KPiA+ ID4gY3JlYXRpb24iKQ0KPiA+ID4NCj4gPiA+IFdyb25nIGNvbW1pdCBpZCwgc2hvdWxkIGJlIHRo ZSBvbmUgaW4gbWFpbiB0cmVlOg0KPiA+ID4NCj4gPiA+IEZpeGVzOiAzOThlYTg0NTBjNTMgKCJ2 ZHBhL21seDU6IHdvcmthcm91bmQgZGlydHkgYml0bWFwIE1SDQo+ID4gPiBjcmVhdGlvbiIpDQo+ ID4gPg0KPiA+ID4gV2l0aCB0aGlzIGZpeGVkOg0KPiA+ID4NCj4gPiA+IFJldmlld2VkLWJ5OiBD aGVuYm8gWGlhIDxjaGVuYm8ueGlhQGludGVsLmNvbT4NCj4gPg0KPiA+IFRoYW5rcyBmb3IgdGhl IGNvbW1lbnRzLg0KPiA+IElzIHRoZXJlIGFueSBuZWVkIHRvIHNlbmQgYSB2MiBvciBNYXhpbWUg d2lsbCBoZWxwIG9uIHRoaXM/DQo+IA0KPiBJIHRoaW5rIGl0IGNhbiBiZSBmaXhlZCB3aGVuIGFw cGx5aW5nLg0KDQpUaGVuIHRoYXQncyBnb29kLiBUaGFuayB5b3UuDQpQbGVhc2UgbGV0IG1lIGtu b3cgd2hlbmV2ZXIgYSB2MiBpcyBuZWVkZWQuDQoNCj4gDQo+IFRoYW5rcywNCj4gQ2hlbmJvDQoN CkJSLiBCaW5nDQo=