{"id":813289,"url":"http://patchwork.ozlabs.org/api/1.2/patches/813289/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/150529678520.57063.3558143909401835083.stgit@anamdev.jf.intel.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<150529678520.57063.3558143909401835083.stgit@anamdev.jf.intel.com>","list_archive_url":null,"date":"2017-09-13T09:59:45","name":"[RFC,v3,6/7] i40e: Clean up of cloud filters","commit_ref":null,"pull_url":null,"state":"rfc","archived":true,"hash":"513a4ad33a466af25dc3e2405902634b660ad019","submitter":{"id":68504,"url":"http://patchwork.ozlabs.org/api/1.2/people/68504/?format=json","name":"Nambiar, Amritha","email":"amritha.nambiar@intel.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/150529678520.57063.3558143909401835083.stgit@anamdev.jf.intel.com/mbox/","series":[{"id":2861,"url":"http://patchwork.ozlabs.org/api/1.2/series/2861/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=2861","date":"2017-09-13T09:59:13","name":"tc-flower based cloud filters in i40e","version":3,"mbox":"http://patchwork.ozlabs.org/series/2861/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813289/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813289/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xsccT3sSFz9s76\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 13 Sep 2017 20:00:57 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752207AbdIMKAz (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 13 Sep 2017 06:00:55 -0400","from mga04.intel.com ([192.55.52.120]:37862 \"EHLO mga04.intel.com\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S1751718AbdIMKAx (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tWed, 13 Sep 2017 06:00:53 -0400","from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t13 Sep 2017 03:00:52 -0700","from anamdev.jf.intel.com ([10.166.29.110])\n\tby fmsmga005.fm.intel.com with ESMTP; 13 Sep 2017 03:00:52 -0700"],"X-ExtLoop1":"1","X-IronPort-AV":"E=Sophos;i=\"5.42,387,1500966000\"; d=\"scan'208\";a=\"150797324\"","Subject":"[RFC PATCH v3 6/7] i40e: Clean up of cloud filters","From":"Amritha Nambiar <amritha.nambiar@intel.com>","To":"intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com","Cc":"alexander.h.duyck@intel.com, netdev@vger.kernel.org,\n\tamritha.nambiar@intel.com","Date":"Wed, 13 Sep 2017 02:59:45 -0700","Message-ID":"<150529678520.57063.3558143909401835083.stgit@anamdev.jf.intel.com>","In-Reply-To":"<150529632024.57063.15338545678487601430.stgit@anamdev.jf.intel.com>","References":"<150529632024.57063.15338545678487601430.stgit@anamdev.jf.intel.com>","User-Agent":"StGit/0.17.1-dirty","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Introduce the cloud filter datastructure and cleanup of cloud\nfilters associated with the device.\n\nv2: Moved field comments in struct i40e_cloud_filter to the right.\nRemoved hlist_empty check from i40e_cloud_filter_exit()\n\nSigned-off-by: Amritha Nambiar <amritha.nambiar@intel.com>\n---\n drivers/net/ethernet/intel/i40e/i40e.h      |    9 +++++++++\n drivers/net/ethernet/intel/i40e/i40e_main.c |   24 ++++++++++++++++++++++++\n 2 files changed, 33 insertions(+)","diff":"diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex d846da9..6018fb6 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -252,6 +252,12 @@ struct i40e_fdir_filter {\n \tu32 fd_id;\n };\n \n+struct i40e_cloud_filter {\n+\tstruct hlist_node cloud_node;\n+\tunsigned long cookie;\n+\tu16 seid;\t/* filter control */\n+};\n+\n #define I40E_ETH_P_LLDP\t\t\t0x88cc\n \n #define I40E_DCB_PRIO_TYPE_STRICT\t0\n@@ -419,6 +425,9 @@ struct i40e_pf {\n \tstruct i40e_udp_port_config udp_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS];\n \tu16 pending_udp_bitmap;\n \n+\tstruct hlist_head cloud_filter_list;\n+\tu16 num_cloud_filters;\n+\n \tenum i40e_interrupt_policy int_policy;\n \tu16 rx_itr_default;\n \tu16 tx_itr_default;\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 60c689a..afcf08a 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -6922,6 +6922,26 @@ static void i40e_fdir_filter_exit(struct i40e_pf *pf)\n }\n \n /**\n+ * i40e_cloud_filter_exit - Cleans up the Cloud Filters\n+ * @pf: Pointer to PF\n+ *\n+ * This function destroys the hlist where all the Cloud Filters\n+ * filters were saved.\n+ **/\n+static void i40e_cloud_filter_exit(struct i40e_pf *pf)\n+{\n+\tstruct i40e_cloud_filter *cfilter;\n+\tstruct hlist_node *node;\n+\n+\thlist_for_each_entry_safe(cfilter, node,\n+\t\t\t\t  &pf->cloud_filter_list, cloud_node) {\n+\t\thlist_del(&cfilter->cloud_node);\n+\t\tkfree(cfilter);\n+\t}\n+\tpf->num_cloud_filters = 0;\n+}\n+\n+/**\n  * i40e_close - Disables a network interface\n  * @netdev: network interface device structure\n  *\n@@ -12176,6 +12196,7 @@ static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit)\n \t\t\tvsi = i40e_vsi_reinit_setup(pf->vsi[pf->lan_vsi]);\n \t\tif (!vsi) {\n \t\t\tdev_info(&pf->pdev->dev, \"setup of MAIN VSI failed\\n\");\n+\t\t\ti40e_cloud_filter_exit(pf);\n \t\t\ti40e_fdir_teardown(pf);\n \t\t\treturn -EAGAIN;\n \t\t}\n@@ -13010,6 +13031,8 @@ static void i40e_remove(struct pci_dev *pdev)\n \tif (pf->vsi[pf->lan_vsi])\n \t\ti40e_vsi_release(pf->vsi[pf->lan_vsi]);\n \n+\ti40e_cloud_filter_exit(pf);\n+\n \t/* remove attached clients */\n \tif (pf->flags & I40E_FLAG_IWARP_ENABLED) {\n \t\tret_code = i40e_lan_del_device(pf);\n@@ -13241,6 +13264,7 @@ static void i40e_shutdown(struct pci_dev *pdev)\n \n \tdel_timer_sync(&pf->service_timer);\n \tcancel_work_sync(&pf->service_task);\n+\ti40e_cloud_filter_exit(pf);\n \ti40e_fdir_teardown(pf);\n \n \t/* Client close must be called explicitly here because the timer\n","prefixes":["RFC","v3","6/7"]}