You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
freifunkist-firmware/package/ar7-atm/patches-D7.04.03.00/190-2.6.32_proc_fixes.patch

80 lines
1.8 KiB

--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -203,7 +203,11 @@ led_reg_t ledreg[2];
static struct led_funcs ledreg[2];
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
#define DEV_DSLMOD CTL_UNNUMBERED
+#else
+#define DEV_DSLMOD 0
+#endif
#define MAX_STR_SIZE 256
#define DSL_MOD_SIZE 256
@@ -3431,9 +3435,16 @@ static int dslmod_sysctl(ctl_table *ctl,
*/
if(write)
{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
-
+#else
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
switch (ctl->ctl_name)
+#else
+ switch ((long)ctl->extra2)
+#endif
{
case DEV_DSLMOD:
ptr = strpbrk(info, " \t");
@@ -3517,14 +3528,29 @@ static int dslmod_sysctl(ctl_table *ctl,
else
{
len += sprintf(info+len, mod_req);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
+#else
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
+#endif
}
return ret;
}
ctl_table dslmod_table[] = {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
{DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
+#else
+ {
+ .procname = "dslmod",
+ .data = info,
+ .maxlen = DSL_MOD_SIZE,
+ .mode = 0644,
+ .proc_handler = &dslmod_sysctl,
+ .extra2 = (void *)DEV_DSLMOD,
+ }
+#endif
,
{0}
};
@@ -3532,7 +3558,16 @@ ctl_table dslmod_table[] = {
/* Make sure that /proc/sys/dev is there */
ctl_table dslmod_root_table[] = {
#ifdef CONFIG_PROC_FS
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
{CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
+ #else
+ {
+ .procname = "dev",
+ .maxlen = 0,
+ .mode = 0555,
+ .child = dslmod_table,
+ }
+ #endif
,
#endif /* CONFIG_PROC_FS */
{0}