889b21f954
Minimum supported kernel is 3.18, so we don't need to test for anything older. In addition, the API hasn't changed since then, so we don't need to check for any kernel version at all. This helps to keeps the amount of changes more managable. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
61 lines
1.5 KiB
Diff
61 lines
1.5 KiB
Diff
--- a/tn7dsl.c
|
|
+++ b/tn7dsl.c
|
|
@@ -197,7 +197,7 @@ led_reg_t ledreg[2];
|
|
static struct led_funcs ledreg[2];
|
|
#endif
|
|
|
|
-#define DEV_DSLMOD CTL_UNNUMBERED
|
|
+#define DEV_DSLMOD 0
|
|
#define MAX_STR_SIZE 256
|
|
#define DSL_MOD_SIZE 256
|
|
|
|
@@ -3421,9 +3421,9 @@ static int dslmod_sysctl(ctl_table *ctl,
|
|
*/
|
|
if(write)
|
|
{
|
|
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
|
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
|
|
|
- switch (ctl->ctl_name)
|
|
+ switch ((long)ctl->extra2)
|
|
{
|
|
case DEV_DSLMOD:
|
|
ptr = strpbrk(info, " \t");
|
|
@@ -3507,14 +3507,21 @@ static int dslmod_sysctl(ctl_table *ctl,
|
|
else
|
|
{
|
|
len += sprintf(info+len, mod_req);
|
|
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
|
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
|
|
ctl_table dslmod_table[] = {
|
|
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
|
+ {
|
|
+ .procname = "dslmod",
|
|
+ .data = info,
|
|
+ .maxlen = DSL_MOD_SIZE,
|
|
+ .mode = 0644,
|
|
+ .proc_handler = &dslmod_sysctl,
|
|
+ .extra2 = (void *)DEV_DSLMOD,
|
|
+ }
|
|
,
|
|
{0}
|
|
};
|
|
@@ -3522,7 +3529,12 @@ ctl_table dslmod_table[] = {
|
|
/* Make sure that /proc/sys/dev is there */
|
|
ctl_table dslmod_root_table[] = {
|
|
#ifdef CONFIG_PROC_FS
|
|
- {CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
|
|
+ {
|
|
+ .procname = "dev",
|
|
+ .maxlen = 0,
|
|
+ .mode = 0555,
|
|
+ .child = dslmod_table,
|
|
+ }
|
|
,
|
|
#endif /* CONFIG_PROC_FS */
|
|
{0}
|