--- 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}