From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 27E31A2EEB for ; Fri, 13 Sep 2019 23:07:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 43FE81F054; Fri, 13 Sep 2019 23:07:28 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 953661F040 for ; Fri, 13 Sep 2019 23:07:26 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 026FEB40053; Fri, 13 Sep 2019 21:07:23 +0000 (UTC) Received: from [192.168.1.192] (188.242.181.57) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 13 Sep 2019 22:07:00 +0100 To: "Hyong Youb Kim (hyonkim)" , "John W. Linville" , Xiaolong Ye , Qi Zhang , Igor Russkikh , "Pavel Belous" , Allain Legacy , Matt Peters , "Ravi Kumar" , Rasesh Mody , Shahed Shaikh , Ajit Khaparde , "Somnath Kotur" , Chas Williams , "Rahul Lakkireddy" , Hemant Agrawal , Sachin Saxena , Wenzhuo Lu , Gagandeep Singh , "John Daley (johndale)" , Gaetan Rivet , "Xiao Wang" , Ziyang Xuan , "Xiaoyun Wang" , Guoyang Zhou , Beilei Xing , Jingjing Wu , Qiming Yang , Rosen Xu , Konstantin Ananyev , Shijith Thotton , Srisivasubramanian Srinivasan , Matan Azrad , Shahaf Shuler , Yongseok Koh , "Viacheslav Ovsiienko" , Zyta Szpak , "Liron Himi" , Tomasz Duszynski , "Stephen Hemminger" , "K. Y. Srinivasan" , Haiyang Zhang , Rastislav Cernay , Jan Remes , Alejandro Lucero , Jerin Jacob , "Nithin Dabilpuram" , Kiran Kumar K , Keith Wiles , Maciej Czekaj , Maxime Coquelin , "Tiwei Bie" , Zhihong Wang , Yong Wang , Thomas Monjalon , Ferruh Yigit CC: "dev@dpdk.org" References: <1567699852-31693-1-git-send-email-arybchenko@solarflare.com> <1568030331-16526-1-git-send-email-arybchenko@solarflare.com> <1568030331-16526-5-git-send-email-arybchenko@solarflare.com> From: Andrew Rybchenko Message-ID: <8bd6e2ac-084e-82e8-60a7-43b81304dfed@solarflare.com> Date: Sat, 14 Sep 2019 00:06:55 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [188.242.181.57] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24908.002 X-TM-AS-Result: No-7.249900-8.000000-10 X-TMASE-MatchedRID: byfwvk+IcRnA46G+uSzVzSLVdThWsHxY69aS+7/zbj/adW4iYSMjUfIL 3EilQkpCMsvMh/8C+DaJFCLyzS0nQjM9BBRuZZ1vMpVOsYwN78NjibYbm9O0sFeIuu+Gkot89WX m+yhJKyjqBFaqfyworVO9V994jC9DEsfjho4nYewaPMGCcVm9DuvcTjVWUqx9RjNrjV0arFKGgE 0qc4kdzZZ7vXbkhZ4j7ymc6Hxoizxgy6dN4lmwycqquP3qhQpqBGvINcfHqhfVH+m1hZHwLsuJM hEV0ko3Q7SWwQCIbXC1jZLsBOhz3KVMc3EkPB2kfzgVmnL/olU3n3RO4dBvVCBwR3y4lKPE5wxI yyhRieMMhupwpE1jD8D0k32/8s2X2cr27ZsPYuFOHhVJB+QhXH0tCKdnhB58vqq8s2MNhPCy5/t FZu9S3Ku6xVHLhqfxJ0RPnyOnrZJn3HwOzKtUI4Dv746X37mccNqxRT/4wYkKS85bNHi4PfLP8h z5+Aun5OnI2j2UKTYgzFGuHA1WthQYTFKzBJTcmthaAq1jAV/wHX5+Q8jjw1wuriZ3P6dErIJZJ bQfMXRqaM5LmpUkwzr8RUm73lTc X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--7.249900-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24908.002 X-MDID: 1568408845-YLnMaUgUTzRR Subject: Re: [dpdk-dev] [PATCH v2 04/13] ethdev: change promiscuous callbacks to return status X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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 9/11/19 11:46 AM, Hyong Youb Kim (hyonkim) wrote: >> -----Original Message----- >> From: Andrew Rybchenko >> Sent: Monday, September 9, 2019 8:59 PM > [...] >> Subject: [PATCH v2 04/13] ethdev: change promiscuous callbacks to return >> status >> >> Enabling/disabling of promiscuous mode is not always successful and >> it should be taken into account to be able to handle it properly. >> >> When correct return status is unclear from driver code, -EAGAIN is used. >> >> Signed-off-by: Andrew Rybchenko >> --- > [...] >> drivers/net/enic/enic.h | 2 +- >> drivers/net/enic/enic_ethdev.c | 22 +++++++--- >> drivers/net/enic/enic_main.c | 4 +- > [...] >> static void >> diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h >> index 5a92508f00..72b1e7956b 100644 >> --- a/drivers/net/enic/enic.h >> +++ b/drivers/net/enic/enic.h >> @@ -305,7 +305,7 @@ int enic_get_link_status(struct enic *enic); >> int enic_dev_stats_get(struct enic *enic, >> struct rte_eth_stats *r_stats); >> void enic_dev_stats_clear(struct enic *enic); >> -void enic_add_packet_filter(struct enic *enic); >> +int enic_add_packet_filter(struct enic *enic); >> int enic_set_mac_address(struct enic *enic, uint8_t *mac_addr); >> int enic_del_mac_address(struct enic *enic, int mac_index); >> unsigned int enic_cleanup_wq(struct enic *enic, struct vnic_wq *wq); >> diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c >> index 90fdeda901..5d48930a9d 100644 >> --- a/drivers/net/enic/enic_ethdev.c >> +++ b/drivers/net/enic/enic_ethdev.c >> @@ -603,29 +603,39 @@ static const uint32_t >> *enicpmd_dev_supported_ptypes_get(struct rte_eth_dev *dev) >> return NULL; >> } >> >> -static void enicpmd_dev_promiscuous_enable(struct rte_eth_dev >> *eth_dev) >> +static int enicpmd_dev_promiscuous_enable(struct rte_eth_dev *eth_dev) >> { >> struct enic *enic = pmd_priv(eth_dev); >> + int ret; >> >> if (rte_eal_process_type() != RTE_PROC_PRIMARY) >> - return; >> + return -ENOTSUP; > Should return -E_RTE_SECONDARY to be consistent with other handlers > that check primary/secondary. I'll fix in the next version, but please, note that -ENOTSUP has special handling in ethdev patch on config restore. It looks like different error code should not be a problem here, but please, check. >> ENICPMD_FUNC_TRACE(); >> >> enic->promisc = 1; >> - enic_add_packet_filter(enic); >> + ret = enic_add_packet_filter(enic); >> + if (ret != 0) >> + enic->promisc = 0; >> + >> + return ret; >> } >> >> -static void enicpmd_dev_promiscuous_disable(struct rte_eth_dev >> *eth_dev) >> +static int enicpmd_dev_promiscuous_disable(struct rte_eth_dev *eth_dev) >> { >> struct enic *enic = pmd_priv(eth_dev); >> + int ret; >> >> if (rte_eal_process_type() != RTE_PROC_PRIMARY) >> - return; >> + return -ENOTSUP; > Should return -E_RTE_SECONDARY here too. > >> ENICPMD_FUNC_TRACE(); >> enic->promisc = 0; >> - enic_add_packet_filter(enic); >> + ret = enic_add_packet_filter(enic); >> + if (ret != 0) >> + enic->promisc = 1; >> + >> + return ret; >> } >> >> static void enicpmd_dev_allmulticast_enable(struct rte_eth_dev *eth_dev) >> diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c >> index 40af3781b3..f4e76a057a 100644 >> --- a/drivers/net/enic/enic_main.c >> +++ b/drivers/net/enic/enic_main.c >> @@ -1364,10 +1364,10 @@ int enic_set_vlan_strip(struct enic *enic) >> enic->rss_enable); >> } >> >> -void enic_add_packet_filter(struct enic *enic) >> +int enic_add_packet_filter(struct enic *enic) >> { >> /* Args -> directed, multicast, broadcast, promisc, allmulti */ >> - vnic_dev_packet_filter(enic->vdev, 1, 1, 1, >> + return vnic_dev_packet_filter(enic->vdev, 1, 1, 1, >> enic->promisc, enic->allmulti); >> } >> > A couple minor comments above. Other than those, patch works fine for enic. > Feel free to add my ack on v2.. > > Acked-by: Hyong Youb Kim > Thanks for review, Andrew.