summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/gianfar_sysfs.c
diff options
context:
space:
mode:
authorClaudiu Manoil <claudiu.manoil@freescale.com>2013-03-28 08:47:35 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-04-03 21:14:55 (GMT)
commit3bb568b890309eac9f36674ad0d956c32292ec00 (patch)
treee610185304c6661a75a4beb7222ff6237ae7e597 /drivers/net/ethernet/freescale/gianfar_sysfs.c
parentcabbbf0bc6013f3ed6249837187dd5c39d0d0ed9 (diff)
downloadlinux-fsl-qoriq-3bb568b890309eac9f36674ad0d956c32292ec00.tar.xz
gianfar: Add module param to enable/disable skb recycling
The gfar_skb_recycling_en driver option (boot time or module load time) when disabled (set to 'N') effectively prevents recycling of skbs. The option is enabled by default. Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com> Change-Id: Ib54fbd4bcc0102e10e8fa4e2a658272a6b8192ff Reviewed-on: http://git.am.freescale.net:8181/871 Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/gianfar_sysfs.c')
-rw-r--r--drivers/net/ethernet/freescale/gianfar_sysfs.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar_sysfs.c b/drivers/net/ethernet/freescale/gianfar_sysfs.c
index 2ea7008..0c420e8 100644
--- a/drivers/net/ethernet/freescale/gianfar_sysfs.c
+++ b/drivers/net/ethernet/freescale/gianfar_sysfs.c
@@ -340,8 +340,9 @@ static ssize_t gfar_show_recycle_target(struct device *dev,
char *buf)
{
struct gfar_private *priv = netdev_priv(to_net_dev(dev));
+ char *name = gfar_skb_recycling_en ? priv->recycle_ndev->name : "";
- return sprintf(buf, "%s\n", priv->recycle_ndev->name);
+ return sprintf(buf, "%s\n", name);
}
static ssize_t gfar_set_recycle_target(struct device *dev,
@@ -353,6 +354,9 @@ static ssize_t gfar_set_recycle_target(struct device *dev,
struct gfar_private *priv_target;
int found = 0;
+ if (!gfar_skb_recycling_en)
+ return count;
+
list_for_each_entry(priv_target, &gfar_recycle_queues, recycle_node) {
char *name = priv_target->ndev->name;
if ((strlen(name) == count - 1) &&