[dpdk-dev] [PATCH 2/2] kni: remove unnecessary ethtool files

Ferruh Yigit ferruh.yigit at intel.com
Fri Sep 30 12:10:30 CEST 2016


Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 lib/librte_eal/linuxapp/kni/Makefile               |   3 -
 .../linuxapp/kni/ethtool/igb/igb_debugfs.c         |  28 --
 .../linuxapp/kni/ethtool/igb/igb_hwmon.c           | 260 ---------------
 .../linuxapp/kni/ethtool/igb/igb_procfs.c          | 363 ---------------------
 4 files changed, 654 deletions(-)
 delete mode 100644 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c
 delete mode 100644 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c
 delete mode 100644 lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c

diff --git a/lib/librte_eal/linuxapp/kni/Makefile b/lib/librte_eal/linuxapp/kni/Makefile
index 35861b9..4e99e07 100644
--- a/lib/librte_eal/linuxapp/kni/Makefile
+++ b/lib/librte_eal/linuxapp/kni/Makefile
@@ -76,11 +76,8 @@ SRCS-y += ethtool/igb/e1000_mbx.c
 SRCS-y += ethtool/igb/e1000_nvm.c
 SRCS-y += ethtool/igb/e1000_phy.c
 SRCS-y += ethtool/igb/igb_ethtool.c
-SRCS-y += ethtool/igb/igb_hwmon.c
 SRCS-y += ethtool/igb/igb_main.c
-SRCS-y += ethtool/igb/igb_debugfs.c
 SRCS-y += ethtool/igb/igb_param.c
-SRCS-y += ethtool/igb/igb_procfs.c
 SRCS-y += ethtool/igb/igb_vmdq.c
 
 SRCS-y += kni_misc.c
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c
deleted file mode 100644
index 108e3c3..0000000
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_debugfs.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
-
-  Intel(R) Gigabit Ethernet Linux driver
-  Copyright(c) 2007-2013 Intel Corporation.
-
-  This program is free software; you can redistribute it and/or modify it
-  under the terms and conditions of the GNU General Public License,
-  version 2, as published by the Free Software Foundation.
-
-  This program is distributed in the hope it will be useful, but WITHOUT
-  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  more details.
-
-  You should have received a copy of the GNU General Public License along with
-  this program; if not, write to the Free Software Foundation, Inc.,
-  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-
-  The full GNU General Public License is included in this distribution in
-  the file called "LICENSE.GPL".
-
-  Contact Information:
-  e1000-devel Mailing List <e1000-devel at lists.sourceforge.net>
-  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
-
-*******************************************************************************/
-
-#include "igb.h"
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c
deleted file mode 100644
index 5b23ded..0000000
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_hwmon.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
-
-  Intel(R) Gigabit Ethernet Linux driver
-  Copyright(c) 2007-2013 Intel Corporation.
-
-  This program is free software; you can redistribute it and/or modify it
-  under the terms and conditions of the GNU General Public License,
-  version 2, as published by the Free Software Foundation.
-
-  This program is distributed in the hope it will be useful, but WITHOUT
-  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  more details.
-
-  You should have received a copy of the GNU General Public License along with
-  this program; if not, write to the Free Software Foundation, Inc.,
-  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-
-  The full GNU General Public License is included in this distribution in
-  the file called "LICENSE.GPL".
-
-  Contact Information:
-  e1000-devel Mailing List <e1000-devel at lists.sourceforge.net>
-  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
-
-*******************************************************************************/
-
-#include "igb.h"
-#include "e1000_82575.h"
-#include "e1000_hw.h"
-#ifdef IGB_HWMON
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/sysfs.h>
-#include <linux/kobject.h>
-#include <linux/device.h>
-#include <linux/netdevice.h>
-#include <linux/hwmon.h>
-#include <linux/pci.h>
-
-#ifdef HAVE_I2C_SUPPORT
-static struct i2c_board_info i350_sensor_info = {
-	I2C_BOARD_INFO("i350bb", (0Xf8 >> 1)),
-};
-#endif /* HAVE_I2C_SUPPORT */
-
-/* hwmon callback functions */
-static ssize_t igb_hwmon_show_location(struct device *dev,
-					 struct device_attribute *attr,
-					 char *buf)
-{
-	struct hwmon_attr *igb_attr = container_of(attr, struct hwmon_attr,
-						     dev_attr);
-	return sprintf(buf, "loc%u\n",
-		       igb_attr->sensor->location);
-}
-
-static ssize_t igb_hwmon_show_temp(struct device *dev,
-				     struct device_attribute *attr,
-				     char *buf)
-{
-	struct hwmon_attr *igb_attr = container_of(attr, struct hwmon_attr,
-						     dev_attr);
-	unsigned int value;
-
-	/* reset the temp field */
-	igb_attr->hw->mac.ops.get_thermal_sensor_data(igb_attr->hw);
-
-	value = igb_attr->sensor->temp;
-
-	/* display millidegree */
-	value *= 1000;
-
-	return sprintf(buf, "%u\n", value);
-}
-
-static ssize_t igb_hwmon_show_cautionthresh(struct device *dev,
-				     struct device_attribute *attr,
-				     char *buf)
-{
-	struct hwmon_attr *igb_attr = container_of(attr, struct hwmon_attr,
-						     dev_attr);
-	unsigned int value = igb_attr->sensor->caution_thresh;
-
-	/* display millidegree */
-	value *= 1000;
-
-	return sprintf(buf, "%u\n", value);
-}
-
-static ssize_t igb_hwmon_show_maxopthresh(struct device *dev,
-				     struct device_attribute *attr,
-				     char *buf)
-{
-	struct hwmon_attr *igb_attr = container_of(attr, struct hwmon_attr,
-						     dev_attr);
-	unsigned int value = igb_attr->sensor->max_op_thresh;
-
-	/* display millidegree */
-	value *= 1000;
-
-	return sprintf(buf, "%u\n", value);
-}
-
-/* igb_add_hwmon_attr - Create hwmon attr table for a hwmon sysfs file.
- * @ adapter: pointer to the adapter structure
- * @ offset: offset in the eeprom sensor data table
- * @ type: type of sensor data to display
- *
- * For each file we want in hwmon's sysfs interface we need a device_attribute
- * This is included in our hwmon_attr struct that contains the references to
- * the data structures we need to get the data to display.
- */
-static int igb_add_hwmon_attr(struct igb_adapter *adapter,
-				unsigned int offset, int type) {
-	int rc;
-	unsigned int n_attr;
-	struct hwmon_attr *igb_attr;
-
-	n_attr = adapter->igb_hwmon_buff.n_hwmon;
-	igb_attr = &adapter->igb_hwmon_buff.hwmon_list[n_attr];
-
-	switch (type) {
-	case IGB_HWMON_TYPE_LOC:
-		igb_attr->dev_attr.show = igb_hwmon_show_location;
-		snprintf(igb_attr->name, sizeof(igb_attr->name),
-			 "temp%u_label", offset);
-		break;
-	case IGB_HWMON_TYPE_TEMP:
-		igb_attr->dev_attr.show = igb_hwmon_show_temp;
-		snprintf(igb_attr->name, sizeof(igb_attr->name),
-			 "temp%u_input", offset);
-		break;
-	case IGB_HWMON_TYPE_CAUTION:
-		igb_attr->dev_attr.show = igb_hwmon_show_cautionthresh;
-		snprintf(igb_attr->name, sizeof(igb_attr->name),
-			 "temp%u_max", offset);
-		break;
-	case IGB_HWMON_TYPE_MAX:
-		igb_attr->dev_attr.show = igb_hwmon_show_maxopthresh;
-		snprintf(igb_attr->name, sizeof(igb_attr->name),
-			 "temp%u_crit", offset);
-		break;
-	default:
-		rc = -EPERM;
-		return rc;
-	}
-
-	/* These always the same regardless of type */
-	igb_attr->sensor =
-		&adapter->hw.mac.thermal_sensor_data.sensor[offset];
-	igb_attr->hw = &adapter->hw;
-	igb_attr->dev_attr.store = NULL;
-	igb_attr->dev_attr.attr.mode = S_IRUGO;
-	igb_attr->dev_attr.attr.name = igb_attr->name;
-	sysfs_attr_init(&igb_attr->dev_attr.attr);
-	rc = device_create_file(&adapter->pdev->dev,
-				&igb_attr->dev_attr);
-	if (rc == 0)
-		++adapter->igb_hwmon_buff.n_hwmon;
-
-	return rc;
-}
-
-static void igb_sysfs_del_adapter(struct igb_adapter *adapter)
-{
-	int i;
-
-	if (adapter == NULL)
-		return;
-
-	for (i = 0; i < adapter->igb_hwmon_buff.n_hwmon; i++) {
-		device_remove_file(&adapter->pdev->dev,
-			   &adapter->igb_hwmon_buff.hwmon_list[i].dev_attr);
-	}
-
-	kfree(adapter->igb_hwmon_buff.hwmon_list);
-
-	if (adapter->igb_hwmon_buff.device)
-		hwmon_device_unregister(adapter->igb_hwmon_buff.device);
-}
-
-/* called from igb_main.c */
-void igb_sysfs_exit(struct igb_adapter *adapter)
-{
-	igb_sysfs_del_adapter(adapter);
-}
-
-/* called from igb_main.c */
-int igb_sysfs_init(struct igb_adapter *adapter)
-{
-	struct hwmon_buff *igb_hwmon = &adapter->igb_hwmon_buff;
-	unsigned int i;
-	int n_attrs;
-	int rc = 0;
-#ifdef HAVE_I2C_SUPPORT
-	struct i2c_client *client = NULL;
-#endif /* HAVE_I2C_SUPPORT */
-
-	/* If this method isn't defined we don't support thermals */
-	if (adapter->hw.mac.ops.init_thermal_sensor_thresh == NULL)
-		goto exit;
-
-	/* Don't create thermal hwmon interface if no sensors present */
-	rc = (adapter->hw.mac.ops.init_thermal_sensor_thresh(&adapter->hw));
-		if (rc)
-			goto exit;
-#ifdef HAVE_I2C_SUPPORT
-	/* init i2c_client */
-	client = i2c_new_device(&adapter->i2c_adap, &i350_sensor_info);
-	if (client == NULL) {
-		dev_info(&adapter->pdev->dev,
-			"Failed to create new i2c device..\n");
-		goto exit;
-	}
-	adapter->i2c_client = client;
-#endif /* HAVE_I2C_SUPPORT */
-
-	/* Allocation space for max attributes
-	 * max num sensors * values (loc, temp, max, caution)
-	 */
-	n_attrs = E1000_MAX_SENSORS * 4;
-	igb_hwmon->hwmon_list = kcalloc(n_attrs, sizeof(struct hwmon_attr),
-					  GFP_KERNEL);
-	if (!igb_hwmon->hwmon_list) {
-		rc = -ENOMEM;
-		goto err;
-	}
-
-	igb_hwmon->device = hwmon_device_register(&adapter->pdev->dev);
-	if (IS_ERR(igb_hwmon->device)) {
-		rc = PTR_ERR(igb_hwmon->device);
-		goto err;
-	}
-
-	for (i = 0; i < E1000_MAX_SENSORS; i++) {
-
-		/* Only create hwmon sysfs entries for sensors that have
-		 * meaningful data.
-		 */
-		if (adapter->hw.mac.thermal_sensor_data.sensor[i].location == 0)
-			continue;
-
-		/* Bail if any hwmon attr struct fails to initialize */
-		rc = igb_add_hwmon_attr(adapter, i, IGB_HWMON_TYPE_CAUTION);
-		rc |= igb_add_hwmon_attr(adapter, i, IGB_HWMON_TYPE_LOC);
-		rc |= igb_add_hwmon_attr(adapter, i, IGB_HWMON_TYPE_TEMP);
-		rc |= igb_add_hwmon_attr(adapter, i, IGB_HWMON_TYPE_MAX);
-		if (rc)
-			goto err;
-	}
-
-	goto exit;
-
-err:
-	igb_sysfs_del_adapter(adapter);
-exit:
-	return rc;
-}
-#endif /* IGB_HWMON */
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c
deleted file mode 100644
index 20990f8..0000000
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_procfs.c
+++ /dev/null
@@ -1,363 +0,0 @@
-/*******************************************************************************
-
-  Intel(R) Gigabit Ethernet Linux driver
-  Copyright(c) 2007-2013 Intel Corporation.
-
-  This program is free software; you can redistribute it and/or modify it
-  under the terms and conditions of the GNU General Public License,
-  version 2, as published by the Free Software Foundation.
-
-  This program is distributed in the hope it will be useful, but WITHOUT
-  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  more details.
-
-  You should have received a copy of the GNU General Public License along with
-  this program; if not, write to the Free Software Foundation, Inc.,
-  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-
-  The full GNU General Public License is included in this distribution in
-  the file called "LICENSE.GPL".
-
-  Contact Information:
-  e1000-devel Mailing List <e1000-devel at lists.sourceforge.net>
-  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
-
-*******************************************************************************/
-
-#include "igb.h"
-#include "e1000_82575.h"
-#include "e1000_hw.h"
-
-#ifdef IGB_PROCFS
-#ifndef IGB_HWMON
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/proc_fs.h>
-#include <linux/device.h>
-#include <linux/netdevice.h>
-
-static struct proc_dir_entry *igb_top_dir = NULL;
-
-
-bool igb_thermal_present(struct igb_adapter *adapter)
-{
-	s32 status;
-	struct e1000_hw *hw;
-
-	if (adapter == NULL)
-		return false;
-	hw = &adapter->hw;
-
-	/*
-	 * Only set I2C bit-bang mode if an external thermal sensor is
-	 * supported on this device.
-	 */
-	if (adapter->ets) {
-		status = e1000_set_i2c_bb(hw);
-		if (status != E1000_SUCCESS)
-			return false;
-	}
-
-	status = hw->mac.ops.init_thermal_sensor_thresh(hw);
-	if (status != E1000_SUCCESS)
-		return false;
-
-	return true;
-}
-
-
-static int igb_macburn(char *page, char **start, off_t off, int count,
-			int *eof, void *data)
-{
-	struct e1000_hw *hw;
-	struct igb_adapter *adapter = (struct igb_adapter *)data;
-	if (adapter == NULL)
-		return snprintf(page, count, "error: no adapter\n");
-
-	hw = &adapter->hw;
-	if (hw == NULL)
-		return snprintf(page, count, "error: no hw data\n");
-
-	return snprintf(page, count, "0x%02X%02X%02X%02X%02X%02X\n",
-		       (unsigned int)hw->mac.perm_addr[0],
-		       (unsigned int)hw->mac.perm_addr[1],
-		       (unsigned int)hw->mac.perm_addr[2],
-		       (unsigned int)hw->mac.perm_addr[3],
-		       (unsigned int)hw->mac.perm_addr[4],
-		       (unsigned int)hw->mac.perm_addr[5]);
-}
-
-static int igb_macadmn(char *page, char **start, off_t off,
-		       int count, int *eof, void *data)
-{
-	struct e1000_hw *hw;
-	struct igb_adapter *adapter = (struct igb_adapter *)data;
-	if (adapter == NULL)
-		return snprintf(page, count, "error: no adapter\n");
-
-	hw = &adapter->hw;
-	if (hw == NULL)
-		return snprintf(page, count, "error: no hw data\n");
-
-	return snprintf(page, count, "0x%02X%02X%02X%02X%02X%02X\n",
-		       (unsigned int)hw->mac.addr[0],
-		       (unsigned int)hw->mac.addr[1],
-		       (unsigned int)hw->mac.addr[2],
-		       (unsigned int)hw->mac.addr[3],
-		       (unsigned int)hw->mac.addr[4],
-		       (unsigned int)hw->mac.addr[5]);
-}
-
-static int igb_numeports(char *page, char **start, off_t off, int count,
-			 int *eof, void *data)
-{
-	struct e1000_hw *hw;
-	int ports;
-	struct igb_adapter *adapter = (struct igb_adapter *)data;
-	if (adapter == NULL)
-		return snprintf(page, count, "error: no adapter\n");
-
-	hw = &adapter->hw;
-	if (hw == NULL)
-		return snprintf(page, count, "error: no hw data\n");
-
-	ports = 4;
-
-	return snprintf(page, count, "%d\n", ports);
-}
-
-static int igb_porttype(char *page, char **start, off_t off, int count,
-			int *eof, void *data)
-{
-	struct igb_adapter *adapter = (struct igb_adapter *)data;
-	if (adapter == NULL)
-		return snprintf(page, count, "error: no adapter\n");
-
-	return snprintf(page, count, "%d\n",
-			test_bit(__IGB_DOWN, &adapter->state));
-}
-
-static int igb_therm_location(char *page, char **start, off_t off,
-				     int count, int *eof, void *data)
-{
-	struct igb_therm_proc_data *therm_data =
-		(struct igb_therm_proc_data *)data;
-
-	if (therm_data == NULL)
-		return snprintf(page, count, "error: no therm_data\n");
-
-	return snprintf(page, count, "%d\n", therm_data->sensor_data->location);
-}
-
-static int igb_therm_maxopthresh(char *page, char **start, off_t off,
-				    int count, int *eof, void *data)
-{
-	struct igb_therm_proc_data *therm_data =
-		(struct igb_therm_proc_data *)data;
-
-	if (therm_data == NULL)
-		return snprintf(page, count, "error: no therm_data\n");
-
-	return snprintf(page, count, "%d\n",
-			therm_data->sensor_data->max_op_thresh);
-}
-
-static int igb_therm_cautionthresh(char *page, char **start, off_t off,
-				      int count, int *eof, void *data)
-{
-	struct igb_therm_proc_data *therm_data =
-		(struct igb_therm_proc_data *)data;
-
-	if (therm_data == NULL)
-		return snprintf(page, count, "error: no therm_data\n");
-
-	return snprintf(page, count, "%d\n",
-			therm_data->sensor_data->caution_thresh);
-}
-
-static int igb_therm_temp(char *page, char **start, off_t off,
-			     int count, int *eof, void *data)
-{
-	s32 status;
-	struct igb_therm_proc_data *therm_data =
-		(struct igb_therm_proc_data *)data;
-
-	if (therm_data == NULL)
-		return snprintf(page, count, "error: no therm_data\n");
-
-	status = e1000_get_thermal_sensor_data(therm_data->hw);
-	if (status != E1000_SUCCESS)
-		snprintf(page, count, "error: status %d returned\n", status);
-
-	return snprintf(page, count, "%d\n", therm_data->sensor_data->temp);
-}
-
-struct igb_proc_type{
-	char name[32];
-	int (*read)(char*, char**, off_t, int, int*, void*);
-};
-
-struct igb_proc_type igb_proc_entries[] = {
-	{"numeports", &igb_numeports},
-	{"porttype", &igb_porttype},
-	{"macburn", &igb_macburn},
-	{"macadmn", &igb_macadmn},
-	{"", NULL}
-};
-
-struct igb_proc_type igb_internal_entries[] = {
-	{"location", &igb_therm_location},
-	{"temp", &igb_therm_temp},
-	{"cautionthresh", &igb_therm_cautionthresh},
-	{"maxopthresh", &igb_therm_maxopthresh},
-	{"", NULL}
-};
-
-void igb_del_proc_entries(struct igb_adapter *adapter)
-{
-	int index, i;
-	char buf[16];	/* much larger than the sensor number will ever be */
-
-	if (igb_top_dir == NULL)
-		return;
-
-	for (i = 0; i < E1000_MAX_SENSORS; i++) {
-		if (adapter->therm_dir[i] == NULL)
-			continue;
-
-		for (index = 0; ; index++) {
-			if (igb_internal_entries[index].read == NULL)
-				break;
-
-			 remove_proc_entry(igb_internal_entries[index].name,
-					   adapter->therm_dir[i]);
-		}
-		snprintf(buf, sizeof(buf), "sensor_%d", i);
-		remove_proc_entry(buf, adapter->info_dir);
-	}
-
-	if (adapter->info_dir != NULL) {
-		for (index = 0; ; index++) {
-			if (igb_proc_entries[index].read == NULL)
-				break;
-		        remove_proc_entry(igb_proc_entries[index].name,
-					  adapter->info_dir);
-		}
-		remove_proc_entry("info", adapter->eth_dir);
-	}
-
-	if (adapter->eth_dir != NULL)
-		remove_proc_entry(pci_name(adapter->pdev), igb_top_dir);
-}
-
-/* called from igb_main.c */
-void igb_procfs_exit(struct igb_adapter *adapter)
-{
-	igb_del_proc_entries(adapter);
-}
-
-int igb_procfs_topdir_init(void)
-{
-	igb_top_dir = proc_mkdir("driver/igb", NULL);
-	if (igb_top_dir == NULL)
-		return -ENOMEM;
-
-	return 0;
-}
-
-void igb_procfs_topdir_exit(void)
-{
-	remove_proc_entry("driver/igb", NULL);
-}
-
-/* called from igb_main.c */
-int igb_procfs_init(struct igb_adapter *adapter)
-{
-	int rc = 0;
-	int i;
-	int index;
-	char buf[16];	/* much larger than the sensor number will ever be */
-
-	adapter->eth_dir = NULL;
-	adapter->info_dir = NULL;
-	for (i = 0; i < E1000_MAX_SENSORS; i++)
-		adapter->therm_dir[i] = NULL;
-
-	if ( igb_top_dir == NULL ) {
-		rc = -ENOMEM;
-		goto fail;
-	}
-
-	adapter->eth_dir = proc_mkdir(pci_name(adapter->pdev), igb_top_dir);
-	if (adapter->eth_dir == NULL) {
-		rc = -ENOMEM;
-		goto fail;
-	}
-
-	adapter->info_dir = proc_mkdir("info", adapter->eth_dir);
-	if (adapter->info_dir == NULL) {
-		rc = -ENOMEM;
-		goto fail;
-	}
-	for (index = 0; ; index++) {
-		if (igb_proc_entries[index].read == NULL) {
-			break;
-		}
-		if (!(create_proc_read_entry(igb_proc_entries[index].name,
-					   0444,
-					   adapter->info_dir,
-					   igb_proc_entries[index].read,
-					   adapter))) {
-
-			rc = -ENOMEM;
-			goto fail;
-		}
-	}
-	if (igb_thermal_present(adapter) == false)
-		goto exit;
-
-	for (i = 0; i < E1000_MAX_SENSORS; i++) {
-
-		 if (adapter->hw.mac.thermal_sensor_data.sensor[i].location== 0)
-			continue;
-
-		snprintf(buf, sizeof(buf), "sensor_%d", i);
-		adapter->therm_dir[i] = proc_mkdir(buf, adapter->info_dir);
-		if (adapter->therm_dir[i] == NULL) {
-			rc = -ENOMEM;
-			goto fail;
-		}
-		for (index = 0; ; index++) {
-			if (igb_internal_entries[index].read == NULL)
-				break;
-			/*
-			 * therm_data struct contains pointer the read func
-			 * will be needing
-			 */
-			adapter->therm_data[i].hw = &adapter->hw;
-			adapter->therm_data[i].sensor_data =
-				&adapter->hw.mac.thermal_sensor_data.sensor[i];
-
-			if (!(create_proc_read_entry(
-					   igb_internal_entries[index].name,
-					   0444,
-					   adapter->therm_dir[i],
-					   igb_internal_entries[index].read,
-					   &adapter->therm_data[i]))) {
-				rc = -ENOMEM;
-				goto fail;
-			}
-		}
-	}
-	goto exit;
-
-fail:
-	igb_del_proc_entries(adapter);
-exit:
-	return rc;
-}
-
-#endif /* !IGB_HWMON */
-#endif /* IGB_PROCFS */
-- 
2.7.4



More information about the dev mailing list