goldfish: R.I.P.
[openwrt/svn-archive/archive.git] / target / linux / goldfish / patches-2.6.30 / 0082-sysfs_net_ipv4-Add-sysfs-based-knobs-for-controllin.patch
diff --git a/target/linux/goldfish/patches-2.6.30/0082-sysfs_net_ipv4-Add-sysfs-based-knobs-for-controllin.patch b/target/linux/goldfish/patches-2.6.30/0082-sysfs_net_ipv4-Add-sysfs-based-knobs-for-controllin.patch
deleted file mode 100644 (file)
index f1fce08..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From 75090d40ffbd9b4863238e1d62b43f8598da5e5e Mon Sep 17 00:00:00 2001
-From: Robert Love <rlove@google.com>
-Date: Thu, 31 Jul 2008 11:12:44 -0400
-Subject: [PATCH 082/134] sysfs_net_ipv4: Add sysfs-based knobs for controlling TCP window size
-
-Add a family of knobs to /sys/kernel/ipv4 for controlling the TCP window size:
-
-       tcp_wmem_min
-       tcp_wmem_def
-       tcp_wmem_max
-       tcp_rmem_min
-       tcp_rmem_def
-       tcp_rmem_max
-
-This six values mirror the sysctl knobs in /proc/sys/net/ipv4/tcp_wmem and
-/proc/sys/net/ipv4/tcp_rmem.
-
-Sysfs, unlike sysctl, allows us to set and manage the files' permissions and
-owners.
-
-Signed-off-by: Robert Love <rlove@google.com>
----
- net/ipv4/Makefile         |    1 +
- net/ipv4/sysfs_net_ipv4.c |   88 +++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 89 insertions(+), 0 deletions(-)
- create mode 100644 net/ipv4/sysfs_net_ipv4.c
-
---- a/net/ipv4/Makefile
-+++ b/net/ipv4/Makefile
-@@ -14,6 +14,7 @@ obj-y     := route.o inetpeer.o protocol
-            inet_fragment.o
- obj-$(CONFIG_SYSCTL) += sysctl_net_ipv4.o
-+obj-$(CONFIG_SYSFS) += sysfs_net_ipv4.o
- obj-$(CONFIG_IP_FIB_HASH) += fib_hash.o
- obj-$(CONFIG_IP_FIB_TRIE) += fib_trie.o
- obj-$(CONFIG_PROC_FS) += proc.o
---- /dev/null
-+++ b/net/ipv4/sysfs_net_ipv4.c
-@@ -0,0 +1,88 @@
-+/*
-+ * net/ipv4/sysfs_net_ipv4.c
-+ *
-+ * sysfs-based networking knobs (so we can, unlike with sysctl, control perms)
-+ *
-+ * Copyright (C) 2008 Google, Inc.
-+ *
-+ * Robert Love <rlove@google.com>
-+ *
-+ * This software is licensed under the terms of the GNU General Public
-+ * License version 2, as published by the Free Software Foundation, and
-+ * may be copied, distributed, and modified under those terms.
-+ *
-+ * This program is distributed in the hope that 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.
-+ */
-+
-+#include <linux/kobject.h>
-+#include <linux/string.h>
-+#include <linux/sysfs.h>
-+#include <linux/init.h>
-+#include <net/tcp.h>
-+
-+#define CREATE_IPV4_FILE(_name, _var) \
-+static ssize_t _name##_show(struct kobject *kobj, \
-+                          struct kobj_attribute *attr, char *buf) \
-+{ \
-+      return sprintf(buf, "%d\n", _var); \
-+} \
-+static ssize_t _name##_store(struct kobject *kobj, \
-+                           struct kobj_attribute *attr, \
-+                           const char *buf, size_t count) \
-+{ \
-+      int val, ret; \
-+      ret = sscanf(buf, "%d", &val); \
-+      if (ret != 1) \
-+              return -EINVAL; \
-+      if (val < 0) \
-+              return -EINVAL; \
-+      _var = val; \
-+      return count; \
-+} \
-+static struct kobj_attribute _name##_attr = \
-+      __ATTR(_name, 0644, _name##_show, _name##_store)
-+
-+CREATE_IPV4_FILE(tcp_wmem_min, sysctl_tcp_wmem[0]);
-+CREATE_IPV4_FILE(tcp_wmem_def, sysctl_tcp_wmem[1]);
-+CREATE_IPV4_FILE(tcp_wmem_max, sysctl_tcp_wmem[2]);
-+
-+CREATE_IPV4_FILE(tcp_rmem_min, sysctl_tcp_rmem[0]);
-+CREATE_IPV4_FILE(tcp_rmem_def, sysctl_tcp_rmem[1]);
-+CREATE_IPV4_FILE(tcp_rmem_max, sysctl_tcp_rmem[2]);
-+
-+static struct attribute *ipv4_attrs[] = {
-+      &tcp_wmem_min_attr.attr,
-+      &tcp_wmem_def_attr.attr,
-+      &tcp_wmem_max_attr.attr,
-+      &tcp_rmem_min_attr.attr,
-+      &tcp_rmem_def_attr.attr,
-+      &tcp_rmem_max_attr.attr,
-+      NULL
-+};
-+
-+static struct attribute_group ipv4_attr_group = {
-+      .attrs = ipv4_attrs,
-+};
-+
-+static __init int sysfs_ipv4_init(void)
-+{
-+      struct kobject *ipv4_kobject;
-+      int ret;
-+
-+      ipv4_kobject = kobject_create_and_add("ipv4", kernel_kobj);
-+      if (!ipv4_kobject)
-+              return -ENOMEM;
-+
-+      ret = sysfs_create_group(ipv4_kobject, &ipv4_attr_group);
-+      if (ret) {
-+              kobject_put(ipv4_kobject);
-+              return ret;
-+      }
-+
-+      return 0;
-+}
-+
-+subsys_initcall(sysfs_ipv4_init);