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 A8354A0C47; Fri, 8 Oct 2021 22:23:24 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2AFF040DDA; Fri, 8 Oct 2021 22:23:24 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 52AB2407FF for ; Fri, 8 Oct 2021 22:23:22 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10131"; a="226482273" X-IronPort-AV: E=Sophos;i="5.85,358,1624345200"; d="scan'208";a="226482273" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2021 13:23:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,358,1624345200"; d="scan'208";a="459285960" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga002.jf.intel.com with ESMTP; 08 Oct 2021 13:23:21 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Fri, 8 Oct 2021 13:23:20 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Fri, 8 Oct 2021 13:23:20 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Fri, 8 Oct 2021 13:23:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KoHOT8OtjqIWxbUNfSz/YEYP1rTckOTD3gmFyCsAcr/mQxVw9NhKpiUfUWEPYhSjbDc6B7t3en7KAjkovmmpWb+2zUzTDPITq5tFdupK6OKJRPqjWtkoOnjfAlW2EP61Orm6rzNdTpC9HpVW5ToUPInAY3dPUPSJu5mHIFnJoOZdphChzkPo1yqVLJjNcmxRw11spWUt6TxccfZJ2kITJ4ipfMCelJUTj8Pr5Ia7A0Col/uJytvpytRh4HfVcNelItCTvBL2QjRYd9yOG9Pa7niCjZF6oAsfL63oLWwoGCqHqaY9oyH7XFekD0zSj7rMyFLDbmFHPHvWgY7ZrHTL/g== 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=Q9swk4CqsXeZXJxYmYEmIn63wD3ltE/+ZTzxxwpDGCE=; b=hEJeTTqTrAEAh7kCSAJdU7qoRlmgfLqtZc9Xhm0sXRcSOgN+lDvRQLb/9j4BtuSymZC2XlSqJC3516jgfn1X3nRZEuXSJZpMz2YJRNW3tl51MON74mWHUmo30NhYy+xWmFvJa7yNFR6UXlrrdz+nwTedBmRpJdOr+3E8Iow4CIS/c5yzQlM7gKTpsY/PM0t4nuvtUNy+Nm/uwE6B9vThElZCgIpBkvxaEEjbjmGWDl5YxhDKVCb+1Ux9qful/zX4gXfAPJcADqncXDeKVsEjQK0wlLzXxu0U9UgXa+C7DF9eB7jdkSbRc9/Je/ZwCoFt7mdFLB4ybIoFsZ0W8G8GSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q9swk4CqsXeZXJxYmYEmIn63wD3ltE/+ZTzxxwpDGCE=; b=uxEg28mm+J40sLpVHuUx+iq0V1cEQqV0fWxSTIZgOrKY1IWpVfFJ9JejaUuChcLmutSEVhvmM7niQmDxAwSBd6Tk12BQ5YHnYrpJTistZBJLgKFiBmauUwx/LZqpMNQZzc88FD39bcdHA9AyiI1cDTjNKGBY0+tH3HK4IxY3zjY= Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=intel.com; Received: from PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) by PH0PR11MB5125.namprd11.prod.outlook.com (2603:10b6:510:3e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.19; Fri, 8 Oct 2021 20:23:17 +0000 Received: from PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::bd7d:29be:3342:632c]) by PH0PR11MB5000.namprd11.prod.outlook.com ([fe80::bd7d:29be:3342:632c%5]) with mapi id 15.20.4587.022; Fri, 8 Oct 2021 20:23:17 +0000 Message-ID: Date: Fri, 8 Oct 2021 21:23:11 +0100 Content-Language: en-US To: Elad Nachman , Eric Christian CC: dev , Igor Ryzhov References: <20210924105409.21711-1-eladv6@gmail.com> <3ae193df-292c-4907-df4a-88ce3d6735fc@intel.com> <1a17d552-8b81-04f9-7594-61e84ea7990f@intel.com> <8525082f-eb28-92db-11d3-ef4d24144be4@intel.com> From: Ferruh Yigit X-User: ferruhy In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: DU2P251CA0028.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::32) To PH0PR11MB5000.namprd11.prod.outlook.com (2603:10b6:510:41::19) MIME-Version: 1.0 Received: from [192.168.0.206] (37.228.236.146) by DU2P251CA0028.EURP251.PROD.OUTLOOK.COM (2603:10a6:10:230::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Fri, 8 Oct 2021 20:23:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b8bad2b4-a2ce-4ca1-f080-08d98a99765f X-MS-TrafficTypeDiagnostic: PH0PR11MB5125: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k7J+IgAfd1PQhOuZ7MXZnyDkHhSF3DbXwPrNekYWqpwE6hNduKgkIi1zuvCyJeyvokKWr140V0Xw91+7Z8QdIcQ1upZ1Rso4IeT8qFriOWE8NsUjJh4+TMvoj29U3eKfsfaKuK79dRVHWQAqggaVDaNuvIiysU4009K2A2By1c5scBi1Vv3C7jZ9r5OzTuryV5VmgxBuyuREtnporNitx0r+5b2Es9xVcYgdseDLQSC9N0Tm8Ur9YrnUyZs0oOR+QfPA4IaYnJ/U66ckfF+GR2Dhz7Z7C/H/Dtl29L0Alz0Nb1W2eWGM70y57nwy7Dxrjjjtl3HpPj/3s5FbtTWPfSA/RQIUs/CQwdOY8iS5XcGk2GztJ/sBunYKKrgK4Bm09gbH8GPQiZX32EdezJuB+0dHMLLuQ1yFHZW2luuOBI/CgTICyondDG+9g9eVcfVfx/gvqWrbuagP5JQ1aF2PxniTCELhF4BgjrYuklZb9v2D/OSR780UNhJqkVfpv72P/9jGJYQM2a2UTtwZkWLPqJtV4ZgwKD9BV2pzVH97AVpBIjoWcdMoDw9P8+zo5D+8gWlUT4cYwsK+v1ZXQR7lopbudHkwEjv4vKfRNuxvGfDShAb/SF5qBfXMw5uzHBnMc9YNs77KYaF/jDR2kfXCSF/R71+IuRg+PihZe8dyMxRafWjcMbZeDO/2iDcbnKVcS31QOIDNcSnbjZWdbcDnt8aN8lUWbKieR+JhIX1IeSheAZ6Tn4x/RrKkP1WRkISbu9Bw/27MAIO/I9sI2IKCqpkp+5//Vixzu0ppTshohJU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5000.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38100700002)(86362001)(8936002)(66476007)(26005)(2616005)(6666004)(956004)(4326008)(5660300002)(31686004)(6486002)(966005)(8676002)(66556008)(31696002)(316002)(66946007)(110136005)(53546011)(2906002)(54906003)(44832011)(16576012)(508600001)(36756003)(186003)(83380400001)(45980500001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a1puZ25mVmF2NEhGMzdXV0FZSFFlWGRlWHB3b2c4YzFZa1hoK2dUSk51MnpZ?= =?utf-8?B?b0c5dDBDTTB0bkZQUi9JSm1vM0c0TWppTjdzcFBFV3diYnBVNjRHc3RXNkZz?= =?utf-8?B?cjNoSHR2Zit3U2wyUGxUalp4ZE9sdi9sN0tmMDF5VGlBYm1rdmx1QmROOG1m?= =?utf-8?B?WjBIazNHTFIyMFRwWjI5bm9xL3o3L0pCWEdUbXlTZW1xK1F5NVEzcEFjMFhQ?= =?utf-8?B?REkrRzduRHhtMWxlSm1YM014eUVlNHozT29ubVl4S1FLN2tYNHpjS2FQZGVk?= =?utf-8?B?and3M1pUQkZHT01SUm1xRHJiUzBOK1dKMW1QTHFtQVJqWHduVFpOalNMOTZL?= =?utf-8?B?UFhsRUY0d2pzNzJOQVNwYVdaNE1DWWdxd3NGVHhGc09YR0NCQ25tUUJQRXhO?= =?utf-8?B?K0Z5dDc2bjBxYkFWMjZHYnZaWXpjQ1J5Vy9JTDRaRTVoZVFLSzRyZjdYOEdI?= =?utf-8?B?bzVidmhrYnFxUkxuWWRMVTlrVnY2TFVMZzlQOHR6LzJTRVpRdzRLTUFoU0pP?= =?utf-8?B?YXhaZHRPcUJ4NHVFN0hLU1R1L3RBVmtVRTFNdldBSCs1OWRPR3lTb2hublJC?= =?utf-8?B?Y1VVOUlpVzFFV2o4Qi80VlQzQUsrTXRXbjhGZUNUTXN6R0xZSVo1Qm1PZm9l?= =?utf-8?B?RnQ4RGl2a21qVTVhM3BDbUl3SktEWm5LdjlZWnJHb3NjVU9kdEsyc05jYUxk?= =?utf-8?B?c1lkWDQyY1NjZ3RmS1B6NGFSSWtRS3J4ZEdDZUVTNCtJbDZjd0Yyc1NDa2F6?= =?utf-8?B?MEJzejB3U2RlRDN4N3Nxc0YzdHV2YjU0T1FzSHQxTnY3U1FHRUUzS0NRWno3?= =?utf-8?B?S20rU0poZU4xSHBKOTZpajhoeEFMSUwramZCWk01YlNNZHVnblFrV2UvaXY4?= =?utf-8?B?RFQxMGR0RVQ1RXJ1Sm9EVmtQckU3MzN3bklpMldvejUzdHlPcitIQTFNZmhR?= =?utf-8?B?NHdXR1IyRlk2VllZMURrelVrY2dibkVTeUI4Y3VsTnNaSWhXeTA4ZW5oYXlI?= =?utf-8?B?OEtFL3dXd0EydTJKbGg5RytycXA5L3FkczRYYjMxbDFCQXhTWlMvRjhhOG9v?= =?utf-8?B?T3VsYTYwa1V1R2wzR05wc0V3eFhrdWRXeFc1Q0VtOTUzbXBPYytPZ3NlY1FD?= =?utf-8?B?VDlZREw1Y25NZ1Nwd2JyOC9Ma3lhckF0bERJY0I5WUNzYW8xQzlqUHFXaEdU?= =?utf-8?B?bUdmUko1LzM5cnZtSjlCc04vdC8vNFZEd08vdUQ1cG5vT01PQW43YUxVRXZr?= =?utf-8?B?NU03Mk9vQVZrem5aUzdEN2ZFWWt5cDRWdmo1NWFWQTdUWktIMkpwUkxnK20z?= =?utf-8?B?OGQwL2hpZkg4a2ZDTEI4MVUyV3pYSVRObERsdVZzOG9sVDBpbWg5OTh6R2Y3?= =?utf-8?B?dTB0T0w3M3A4OHBrNTM0ZWNhdEY0Nk9vbGlwY2dLOFBORy9zNlRWMGM3Z29P?= =?utf-8?B?SmpBNEsrajIvRjZ6ZXJEK2RnaktJRmxmNFdHTEtGaDdEeG4vSVdvRUtpVUdK?= =?utf-8?B?aTJIbHh6YU1xMzlqdlM5M0dBT3JvRHA5ektxQ2FYcndrY0JHcHBTUEFzd2Y0?= =?utf-8?B?anA2RDdzQ3UxVlkwS0FBQkdjZzErRElzT1krRkpSNHA0YTc0TjNjcmREL0xy?= =?utf-8?B?dENqZnpLWFU4QU9Jb2w1ZSt0MFp4WWhZN0Z6U3U2ai9Md0lJbmhXVHBFcWY1?= =?utf-8?B?T2l6cjFhZ2w3SExHZ20raDNqdDJBaVFZWDZWclQ1aUVaRjVqMGJ3OHE2d0hO?= =?utf-8?Q?mUZeJY+qv5NLKVeuEbdOHK03xlZQ5RhCP+r0xGb?= X-MS-Exchange-CrossTenant-Network-Message-Id: b8bad2b4-a2ce-4ca1-f080-08d98a99765f X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5000.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2021 20:23:17.3709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IXYHWqClElF6tQdwXFuQZlsBmFiFAvXVBVe+TUfZNStIIuooJ93+3CHytHy/wkfiweU30yCkLYI86+qNEuYDfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5125 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2] kni: Fix request overwritten 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 Sender: "dev" On 10/4/2021 7:27 PM, Elad Nachman wrote: > בתאריך יום ב׳, 4 באוק׳ 2021, 20:00, מאת Eric Christian ‏> : > >> I am not sure that only we can recreate the KNI request overwrite. We may >> be the only ones with a current use case that exposes the vulnerability. >> It is possible for any KNI operation to encounter this issue with the new >> async mechanism. As long as the call to kni_net_process_request() is a >> separate thread from rte_kni_handle_request() this has the potential to >> occur with the use of async requests. >> >> All you need is one async KNI request followed closely by a second KNI >> request before the rte_kni_handle_request() has had a chance to process the >> first request. >> >> The kernel dev driver simply returns the error value back to the caller if >> it is less than zero. >> >> >> Eric >> > > What I did in order to attempt to recreate this issue was: > > Create a qemu VM with four cores. > Run the KNI sample application. > > Then: > > 1. Run ifconfig vEth0_0 down followed immediately by ifconfig vEth0_0 up > > 2. Same as above but in a sample userspace C application which calls ioctl > twice in a row to achieve the same. > > > Both did not recreate the problem. > > The only way to recreate it IMHO is to either: > run the ioctl from two parallel threads or perhaps assign RT fifo priority > to the application calling ioctl in a row. > In kni sample app 'rte_kni_handle_request()' is called in endless loop in the datapath, this may be making it hard to reproduce the issue. But what Eric described is valid problem and can happen. Reducing the frequency of the 'rte_kni_handle_request()' call can make it easy to reproduce. > > >> >> On Mon, Oct 4, 2021 at 12:19 PM Elad Nachman wrote: >> >>> >>> >>> On Mon, Oct 4, 2021 at 7:05 PM Ferruh Yigit >>> wrote: >>> >>>> On 10/4/2021 3:58 PM, Elad Nachman wrote: >>>>> בתאריך יום ב׳, 4 באוק׳ 2021, 17:51, מאת Ferruh Yigit ‏< >>>>> ferruh.yigit@intel.com>: >>>>> >>>>>> On 10/4/2021 3:25 PM, Elad Nachman wrote: >>>>>> >>>>>> Can you please try to not top post, it will make impossible to follow >>>> this >>>>>> discussion later from the mail archives. >>>>>> >>>>>>> 1. Userspace will get an error >>>>>> >>>>>> So there is nothing special with returning '-EAGAIN', user will only >>>>>> observe an >>>>>> error. >>>>>> Wasn't initial intention to use '-EAGAIN' to try request again? >>>>>> >>>>> To signal user-space to retry the operation. >>>>> >>>> >>>> Not sure if it will reach to the end user. If user is calling "ifconfig >>>> >>>> down", it will just fail right, it won't recognize the error type. >>>> >>>> Unless this is common usage by the Linux network drivers, having this >>>> usage in >>>> KNI won't help much. I am for handling this in the kernel side if we can. >>>> >>>> >>> If user calls ifconfig down it will not happen. It requires some >>> multi-core race condition only Eric can recreate. >>> >>> >>>>>> >>>>>>> 2. Waiting with rtnl locked causes a deadlock; waiting with rtnl >>>> unlocked >>>>>>> for interface down command causes a crash because of a race >>>> condition in >>>>>>> the device delete/unregister list in the kernel. >>>>>>> >>>>>> >>>>>> Why waiting with rthnl lock causes a deadlock? As said below we are >>>> already >>>>>> doing it, why it is different with retry logic? >>>>>> >>>>> Because it can be interface down request. >>>>> >>>> >>>> (sure you like short answers) >>>> >>>> Please help me to see why "interface down" is special. Isn't it point of >>>> your >>>> patch to wait the request execution in the userspace even it is an async >>>> request? >>>> >>>> And yet again, number of retry can be limited. >>>> >>>> >>> No, it is not. Please look again: >>> https://patches.dpdk.org/project/dpdk/patch/20210924105409.21711-1-eladv6@gmail.com/ >>> >>> >>> >>>> >>>>> >>>>>> I agree to not wait with rtnl unlocked. >>>>>> >>>>>>> FYI, >>>>>>> >>>>>>> Elad. >>>>>>> >>>>>>> בתאריך יום ב׳, 4 באוק׳ 2021, 17:13, מאת Ferruh Yigit ‏< >>>>>>> ferruh.yigit@intel.com>: >>>>>>> >>>>>>>> On 10/4/2021 2:09 PM, Elad Nachman wrote: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> EAGAIN is propogated back to the kernel and to the caller. >>>>>>>>> >>>>>>>> >>>>>>>> So will the user get an error, or it will be handled by the kernel >>>> and >>>>>>>> retried? >>>>>>>> >>>>>>>>> We cannot retry from the kni kernel module since we hold the rtnl >>>> lock. >>>>>>>>> >>>>>>>> >>>>>>>> Why not? We are already waiting until a command time out, like >>>>>>>> 'kni_net_open()' >>>>>>>> can retry if 'kni_net_process_request()' returns '-EAGAIN'. And we >>>> can >>>>>>>> limit the >>>>>>>> number of retry for safety. >>>>>>>> >>>>>>>>> FYI, >>>>>>>>> >>>>>>>>> Elad >>>>>>>>> >>>>>>>>> בתאריך יום ב׳, 4 באוק׳ 2021, 16:05, מאת Ferruh Yigit ‏< >>>>>>>>> ferruh.yigit@intel.com>: >>>>>>>>> >>>>>>>>>> On 9/24/2021 11:54 AM, Elad Nachman wrote: >>>>>>>>>>> Fix lack of multiple KNI requests handling support by >>>> introducing a >>>>>>>>>>> request in progress flag which will fail additional requests with >>>>>>>>>>> EAGAIN return code if the original request has not been processed >>>>>>>>>>> by user-space. >>>>>>>>>>> >>>>>>>>>>> Bugzilla ID: 809 >>>>>>>>>> >>>>>>>>>> Hi Eric, >>>>>>>>>> >>>>>>>>>> Can you please test this patch, if it solves the issue you >>>> reported? >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Signed-off-by: Elad Nachman >>>>>>>>>>> --- >>>>>>>>>>> kernel/linux/kni/kni_net.c | 9 +++++++++ >>>>>>>>>>> lib/kni/rte_kni.c | 2 ++ >>>>>>>>>>> lib/kni/rte_kni_common.h | 1 + >>>>>>>>>>> 3 files changed, 12 insertions(+) >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> <...> >>>>>>>>>> >>>>>>>>>>> @@ -123,7 +124,15 @@ kni_net_process_request(struct net_device >>>> *dev, >>>>>>>>>> struct rte_kni_request *req) >>>>>>>>>>> >>>>>>>>>>> mutex_lock(&kni->sync_lock); >>>>>>>>>>> >>>>>>>>>>> + /* Check that existing request has been processed: */ >>>>>>>>>>> + cur_req = (struct rte_kni_request *)kni->sync_kva; >>>>>>>>>>> + if (cur_req->req_in_progress) { >>>>>>>>>>> + ret = -EAGAIN; >>>>>>>>>> >>>>>>>>>> Overall logic in the KNI looks good to me, this helps to >>>> serialize the >>>>>>>>>> requests >>>>>>>>>> even for async ones. >>>>>>>>>> >>>>>>>>>> But can you please clarify how it behaves in the kernel side with >>>>>>>> '-EAGAIN' >>>>>>>>>> return type? Will linux call the ndo again, or will it just fail. >>>>>>>>>> >>>>>>>>>> If it just fails should we handle the re-try on '-EAGAIN' within >>>> the >>>>>> kni >>>>>>>>>> module? >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>>>>> Elad. >>>> >>>>