Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/592255/?format=api
{ "id": 592255, "url": "http://patchwork.ozlabs.org/api/patches/592255/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1457134668-19142-3-git-send-email-jacob.e.keller@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1457134668-19142-3-git-send-email-jacob.e.keller@intel.com>", "list_archive_url": null, "date": "2016-03-04T23:37:48", "name": "[v6,2/2] fm10k: remove remove debug-statistics support", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "acdb351fbd8fd424934a88085c324eafbf4278d7", "submitter": { "id": 9784, "url": "http://patchwork.ozlabs.org/api/people/9784/?format=api", "name": "Jacob Keller", "email": "jacob.e.keller@intel.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1457134668-19142-3-git-send-email-jacob.e.keller@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/592255/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/592255/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Received": [ "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id 3C84B140216\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 5 Mar 2016 10:37:58 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 5693D33BEC;\n\tFri, 4 Mar 2016 23:37:57 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id x5ym6UufSJqk; Fri, 4 Mar 2016 23:37:54 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 689FD33C15;\n\tFri, 4 Mar 2016 23:37:54 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id 5833A1C0F12\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 4 Mar 2016 23:37:53 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 546C333AD1\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 4 Mar 2016 23:37:53 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id O0VZL5fBlP7I for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 4 Mar 2016 23:37:51 +0000 (UTC)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n\tby silver.osuosl.org (Postfix) with ESMTP id 82A9C33C0A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 4 Mar 2016 23:37:51 +0000 (UTC)", "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby fmsmga103.fm.intel.com with ESMTP; 04 Mar 2016 15:37:51 -0800", "from jekeller-desk.amr.corp.intel.com (HELO\n\tjekeller-desk.jekeller.internal) ([134.134.3.65])\n\tby orsmga003.jf.intel.com with ESMTP; 04 Mar 2016 15:37:51 -0800" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.22,538,1449561600\"; d=\"scan'208\";a=\"758375722\"", "From": "Jacob Keller <jacob.e.keller@intel.com>", "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>", "Date": "Fri, 4 Mar 2016 15:37:48 -0800", "Message-Id": "<1457134668-19142-3-git-send-email-jacob.e.keller@intel.com>", "X-Mailer": "git-send-email 2.7.1.429.g45cd78e", "In-Reply-To": "<1457134668-19142-1-git-send-email-jacob.e.keller@intel.com>", "References": "<1457134668-19142-1-git-send-email-jacob.e.keller@intel.com>", "Subject": "[Intel-wired-lan] [PATCH v6 2/2] fm10k: remove remove\n\tdebug-statistics support", "X-BeenThere": "intel-wired-lan@lists.osuosl.org", "X-Mailman-Version": "2.1.18-1", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>", "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>", "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>" }, "content": "This change fixes an (ab)use of the ethtool stats API, which could\nresult in corrupt memory or misleading stat output. The ethtool stats\nAPI is not robust enough to handle varying number of statistics due to\nhow it requests the size and allocates memory. Remove the poorly conceived\nsupport originally added for extra debug statistics. In the future,\na new stats api may open up the ability to display these statistics.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n\nNotes:\n - v6\n * move the queue stats changes to the first patch in this series\n * rework commit message to explain why we need to remove this feature\n \n This is a direct replacement for 2d6c14d75442 (\"fm10k: cleanup fm10k stats and\n remove debug-statistics\", 2016-03-04) which was on the queue. The previous\n version has a different title, but should be removed from the queue before\n applying this version.\n\n drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c | 72 +-----------------------\n 1 file changed, 1 insertion(+), 71 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c\nindex 93f26c8b520c..a41a35082ddb 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c\n@@ -81,17 +81,6 @@ static const struct fm10k_stats fm10k_gstrings_global_stats[] = {\n \tFM10K_STAT(\"tx_hwtstamp_timeouts\", tx_hwtstamp_timeouts),\n };\n \n-static const struct fm10k_stats fm10k_gstrings_debug_stats[] = {\n-\tFM10K_STAT(\"hw_sm_mbx_full\", hw_sm_mbx_full),\n-\tFM10K_STAT(\"hw_csum_tx_good\", hw_csum_tx_good),\n-\tFM10K_STAT(\"hw_csum_rx_good\", hw_csum_rx_good),\n-\tFM10K_STAT(\"rx_switch_errors\", rx_switch_errors),\n-\tFM10K_STAT(\"rx_drops\", rx_drops),\n-\tFM10K_STAT(\"rx_pp_errors\", rx_pp_errors),\n-\tFM10K_STAT(\"rx_link_errors\", rx_link_errors),\n-\tFM10K_STAT(\"rx_length_errors\", rx_length_errors),\n-};\n-\n static const struct fm10k_stats fm10k_gstrings_pf_stats[] = {\n \tFM10K_STAT(\"timeout\", stats.timeout.count),\n \tFM10K_STAT(\"ur\", stats.ur.count),\n@@ -133,7 +122,6 @@ static const struct fm10k_stats fm10k_gstrings_queue_stats[] = {\n };\n \n #define FM10K_GLOBAL_STATS_LEN ARRAY_SIZE(fm10k_gstrings_global_stats)\n-#define FM10K_DEBUG_STATS_LEN ARRAY_SIZE(fm10k_gstrings_debug_stats)\n #define FM10K_PF_STATS_LEN ARRAY_SIZE(fm10k_gstrings_pf_stats)\n #define FM10K_MBX_STATS_LEN ARRAY_SIZE(fm10k_gstrings_mbx_stats)\n #define FM10K_QUEUE_STATS_LEN ARRAY_SIZE(fm10k_gstrings_queue_stats)\n@@ -154,12 +142,10 @@ enum fm10k_self_test_types {\n };\n \n enum {\n-\tFM10K_PRV_FLAG_DEBUG_STATS,\n \tFM10K_PRV_FLAG_LEN,\n };\n \n static const char fm10k_prv_flags[FM10K_PRV_FLAG_LEN][ETH_GSTRING_LEN] = {\n-\t\"debug-statistics\",\n };\n \n static void fm10k_add_stat_strings(char **p, const char *prefix,\n@@ -178,7 +164,6 @@ static void fm10k_add_stat_strings(char **p, const char *prefix,\n static void fm10k_get_stat_strings(struct net_device *dev, u8 *data)\n {\n \tstruct fm10k_intfc *interface = netdev_priv(dev);\n-\tstruct fm10k_iov_data *iov_data = interface->iov_data;\n \tchar *p = (char *)data;\n \tunsigned int i;\n \n@@ -188,10 +173,6 @@ static void fm10k_get_stat_strings(struct net_device *dev, u8 *data)\n \tfm10k_add_stat_strings(&p, \"\", fm10k_gstrings_global_stats,\n \t\t\t FM10K_GLOBAL_STATS_LEN);\n \n-\tif (interface->flags & FM10K_FLAG_DEBUG_STATS)\n-\t\tfm10k_add_stat_strings(&p, \"\", fm10k_gstrings_debug_stats,\n-\t\t\t\t FM10K_DEBUG_STATS_LEN);\n-\n \tfm10k_add_stat_strings(&p, \"\", fm10k_gstrings_mbx_stats,\n \t\t\t FM10K_MBX_STATS_LEN);\n \n@@ -199,17 +180,6 @@ static void fm10k_get_stat_strings(struct net_device *dev, u8 *data)\n \t\tfm10k_add_stat_strings(&p, \"\", fm10k_gstrings_pf_stats,\n \t\t\t\t FM10K_PF_STATS_LEN);\n \n-\tif ((interface->flags & FM10K_FLAG_DEBUG_STATS) && iov_data) {\n-\t\tfor (i = 0; i < iov_data->num_vfs; i++) {\n-\t\t\tchar prefix[ETH_GSTRING_LEN];\n-\n-\t\t\tsnprintf(prefix, ETH_GSTRING_LEN, \"vf_%u_\", i);\n-\t\t\tfm10k_add_stat_strings(&p, prefix,\n-\t\t\t\t\t fm10k_gstrings_mbx_stats,\n-\t\t\t\t\t FM10K_MBX_STATS_LEN);\n-\t\t}\n-\t}\n-\n \tfor (i = 0; i < interface->hw.mac.max_queues; i++) {\n \t\tchar prefix[ETH_GSTRING_LEN];\n \n@@ -248,7 +218,6 @@ static void fm10k_get_strings(struct net_device *dev,\n static int fm10k_get_sset_count(struct net_device *dev, int sset)\n {\n \tstruct fm10k_intfc *interface = netdev_priv(dev);\n-\tstruct fm10k_iov_data *iov_data = interface->iov_data;\n \tstruct fm10k_hw *hw = &interface->hw;\n \tint stats_len = FM10K_STATIC_STATS_LEN;\n \n@@ -261,14 +230,6 @@ static int fm10k_get_sset_count(struct net_device *dev, int sset)\n \t\tif (hw->mac.type != fm10k_mac_vf)\n \t\t\tstats_len += FM10K_PF_STATS_LEN;\n \n-\t\tif (interface->flags & FM10K_FLAG_DEBUG_STATS) {\n-\t\t\tstats_len += FM10K_DEBUG_STATS_LEN;\n-\n-\t\t\tif (iov_data)\n-\t\t\t\tstats_len += FM10K_MBX_STATS_LEN *\n-\t\t\t\t\tiov_data->num_vfs;\n-\t\t}\n-\n \t\treturn stats_len;\n \tcase ETH_SS_PRIV_FLAGS:\n \t\treturn FM10K_PRV_FLAG_LEN;\n@@ -318,7 +279,6 @@ static void fm10k_get_ethtool_stats(struct net_device *netdev,\n \t\t\t\t u64 *data)\n {\n \tstruct fm10k_intfc *interface = netdev_priv(netdev);\n-\tstruct fm10k_iov_data *iov_data = interface->iov_data;\n \tstruct net_device_stats *net_stats = &netdev->stats;\n \tint i;\n \n@@ -330,11 +290,6 @@ static void fm10k_get_ethtool_stats(struct net_device *netdev,\n \tfm10k_add_ethtool_stats(&data, interface, fm10k_gstrings_global_stats,\n \t\t\t\tFM10K_GLOBAL_STATS_LEN);\n \n-\tif (interface->flags & FM10K_FLAG_DEBUG_STATS)\n-\t\tfm10k_add_ethtool_stats(&data, interface,\n-\t\t\t\t\tfm10k_gstrings_debug_stats,\n-\t\t\t\t\tFM10K_DEBUG_STATS_LEN);\n-\n \tfm10k_add_ethtool_stats(&data, &interface->hw.mbx,\n \t\t\t\tfm10k_gstrings_mbx_stats,\n \t\t\t\tFM10K_MBX_STATS_LEN);\n@@ -345,18 +300,6 @@ static void fm10k_get_ethtool_stats(struct net_device *netdev,\n \t\t\t\t\tFM10K_PF_STATS_LEN);\n \t}\n \n-\tif ((interface->flags & FM10K_FLAG_DEBUG_STATS) && iov_data) {\n-\t\tfor (i = 0; i < iov_data->num_vfs; i++) {\n-\t\t\tstruct fm10k_vf_info *vf_info;\n-\n-\t\t\tvf_info = &iov_data->vf_info[i];\n-\n-\t\t\tfm10k_add_ethtool_stats(&data, &vf_info->mbx,\n-\t\t\t\t\t\tfm10k_gstrings_mbx_stats,\n-\t\t\t\t\t\tFM10K_MBX_STATS_LEN);\n-\t\t}\n-\t}\n-\n \tfor (i = 0; i < interface->hw.mac.max_queues; i++) {\n \t\tstruct fm10k_ring *ring;\n \n@@ -1015,27 +958,14 @@ static void fm10k_self_test(struct net_device *dev,\n \n static u32 fm10k_get_priv_flags(struct net_device *netdev)\n {\n-\tstruct fm10k_intfc *interface = netdev_priv(netdev);\n-\tu32 priv_flags = 0;\n-\n-\tif (interface->flags & FM10K_FLAG_DEBUG_STATS)\n-\t\tpriv_flags |= BIT(FM10K_PRV_FLAG_DEBUG_STATS);\n-\n-\treturn priv_flags;\n+\treturn 0;\n }\n \n static int fm10k_set_priv_flags(struct net_device *netdev, u32 priv_flags)\n {\n-\tstruct fm10k_intfc *interface = netdev_priv(netdev);\n-\n \tif (priv_flags >= BIT(FM10K_PRV_FLAG_LEN))\n \t\treturn -EINVAL;\n \n-\tif (priv_flags & BIT(FM10K_PRV_FLAG_DEBUG_STATS))\n-\t\tinterface->flags |= FM10K_FLAG_DEBUG_STATS;\n-\telse\n-\t\tinterface->flags &= ~FM10K_FLAG_DEBUG_STATS;\n-\n \treturn 0;\n }\n \n", "prefixes": [ "v6", "2/2" ] }