@@ -885,10 +885,10 @@ static ssize_t dispatch_proc_write(struct file *file,
885
885
886
886
if (!ibm || !ibm -> write )
887
887
return - EINVAL ;
888
- if (count > PAGE_SIZE - 2 )
888
+ if (count > PAGE_SIZE - 1 )
889
889
return - EINVAL ;
890
890
891
- kernbuf = kmalloc (count + 2 , GFP_KERNEL );
891
+ kernbuf = kmalloc (count + 1 , GFP_KERNEL );
892
892
if (!kernbuf )
893
893
return - ENOMEM ;
894
894
@@ -898,7 +898,6 @@ static ssize_t dispatch_proc_write(struct file *file,
898
898
}
899
899
900
900
kernbuf [count ] = 0 ;
901
- strcat (kernbuf , "," );
902
901
ret = ibm -> write (kernbuf );
903
902
if (ret == 0 )
904
903
ret = count ;
@@ -916,23 +915,6 @@ static const struct proc_ops dispatch_proc_ops = {
916
915
.proc_write = dispatch_proc_write ,
917
916
};
918
917
919
- static char * next_cmd (char * * cmds )
920
- {
921
- char * start = * cmds ;
922
- char * end ;
923
-
924
- while ((end = strchr (start , ',' )) && end == start )
925
- start = end + 1 ;
926
-
927
- if (!end )
928
- return NULL ;
929
-
930
- * end = 0 ;
931
- * cmds = end + 1 ;
932
- return start ;
933
- }
934
-
935
-
936
918
/****************************************************************************
937
919
****************************************************************************
938
920
*
@@ -1423,7 +1405,7 @@ static int tpacpi_rfk_procfs_write(const enum tpacpi_rfk_id id, char *buf)
1423
1405
if (id >= TPACPI_RFK_SW_MAX )
1424
1406
return - ENODEV ;
1425
1407
1426
- while ((cmd = next_cmd (& buf ))) {
1408
+ while ((cmd = strsep (& buf , "," ))) {
1427
1409
if (strlencmp (cmd , "enable" ) == 0 )
1428
1410
status = TPACPI_RFK_RADIO_ON ;
1429
1411
else if (strlencmp (cmd , "disable" ) == 0 )
@@ -4306,7 +4288,7 @@ static int hotkey_write(char *buf)
4306
4288
mask = hotkey_user_mask ;
4307
4289
4308
4290
res = 0 ;
4309
- while ((cmd = next_cmd (& buf ))) {
4291
+ while ((cmd = strsep (& buf , "," ))) {
4310
4292
if (strlencmp (cmd , "enable" ) == 0 ) {
4311
4293
hotkey_enabledisable_warn (1 );
4312
4294
} else if (strlencmp (cmd , "disable" ) == 0 ) {
@@ -5233,7 +5215,7 @@ static int video_write(char *buf)
5233
5215
enable = 0 ;
5234
5216
disable = 0 ;
5235
5217
5236
- while ((cmd = next_cmd (& buf ))) {
5218
+ while ((cmd = strsep (& buf , "," ))) {
5237
5219
if (strlencmp (cmd , "lcd_enable" ) == 0 ) {
5238
5220
enable |= TP_ACPI_VIDEO_S_LCD ;
5239
5221
} else if (strlencmp (cmd , "lcd_disable" ) == 0 ) {
@@ -5477,7 +5459,7 @@ static int kbdlight_write(char *buf)
5477
5459
if (!tp_features .kbdlight )
5478
5460
return - ENODEV ;
5479
5461
5480
- while ((cmd = next_cmd (& buf ))) {
5462
+ while ((cmd = strsep (& buf , "," ))) {
5481
5463
if (strlencmp (cmd , "0" ) == 0 )
5482
5464
level = 0 ;
5483
5465
else if (strlencmp (cmd , "1" ) == 0 )
@@ -5657,7 +5639,7 @@ static int light_write(char *buf)
5657
5639
if (!tp_features .light )
5658
5640
return - ENODEV ;
5659
5641
5660
- while ((cmd = next_cmd (& buf ))) {
5642
+ while ((cmd = strsep (& buf , "," ))) {
5661
5643
if (strlencmp (cmd , "on" ) == 0 ) {
5662
5644
newstatus = 1 ;
5663
5645
} else if (strlencmp (cmd , "off" ) == 0 ) {
@@ -5742,7 +5724,7 @@ static int cmos_write(char *buf)
5742
5724
char * cmd ;
5743
5725
int cmos_cmd , res ;
5744
5726
5745
- while ((cmd = next_cmd (& buf ))) {
5727
+ while ((cmd = strsep (& buf , "," ))) {
5746
5728
if (sscanf (cmd , "%u" , & cmos_cmd ) == 1 &&
5747
5729
cmos_cmd >= 0 && cmos_cmd <= 21 ) {
5748
5730
/* cmos_cmd set */
@@ -6131,7 +6113,7 @@ static int led_write(char *buf)
6131
6113
if (!led_supported )
6132
6114
return - ENODEV ;
6133
6115
6134
- while ((cmd = next_cmd (& buf ))) {
6116
+ while ((cmd = strsep (& buf , "," ))) {
6135
6117
if (sscanf (cmd , "%d" , & led ) != 1 )
6136
6118
return - EINVAL ;
6137
6119
@@ -6218,7 +6200,7 @@ static int beep_write(char *buf)
6218
6200
if (!beep_handle )
6219
6201
return - ENODEV ;
6220
6202
6221
- while ((cmd = next_cmd (& buf ))) {
6203
+ while ((cmd = strsep (& buf , "," ))) {
6222
6204
if (sscanf (cmd , "%u" , & beep_cmd ) == 1 &&
6223
6205
beep_cmd >= 0 && beep_cmd <= 17 ) {
6224
6206
/* beep_cmd set */
@@ -7106,7 +7088,7 @@ static int brightness_write(char *buf)
7106
7088
if (level < 0 )
7107
7089
return level ;
7108
7090
7109
- while ((cmd = next_cmd (& buf ))) {
7091
+ while ((cmd = strsep (& buf , "," ))) {
7110
7092
if (strlencmp (cmd , "up" ) == 0 ) {
7111
7093
if (level < bright_maxlvl )
7112
7094
level ++ ;
@@ -7858,7 +7840,7 @@ static int volume_write(char *buf)
7858
7840
new_level = s & TP_EC_AUDIO_LVL_MSK ;
7859
7841
new_mute = s & TP_EC_AUDIO_MUTESW_MSK ;
7860
7842
7861
- while ((cmd = next_cmd (& buf ))) {
7843
+ while ((cmd = strsep (& buf , "," ))) {
7862
7844
if (!tp_features .mixer_no_level_control ) {
7863
7845
if (strlencmp (cmd , "up" ) == 0 ) {
7864
7846
if (new_mute )
@@ -9168,7 +9150,7 @@ static int fan_write(char *buf)
9168
9150
char * cmd ;
9169
9151
int rc = 0 ;
9170
9152
9171
- while (!rc && (cmd = next_cmd (& buf ))) {
9153
+ while (!rc && (cmd = strsep (& buf , "," ))) {
9172
9154
if (!((fan_control_commands & TPACPI_FAN_CMD_LEVEL ) &&
9173
9155
fan_write_cmd_level (cmd , & rc )) &&
9174
9156
!((fan_control_commands & TPACPI_FAN_CMD_ENABLE ) &&
@@ -9807,7 +9789,7 @@ static int lcdshadow_write(char *buf)
9807
9789
if (lcdshadow_state < 0 )
9808
9790
return - ENODEV ;
9809
9791
9810
- while ((cmd = next_cmd (& buf ))) {
9792
+ while ((cmd = strsep (& buf , "," ))) {
9811
9793
if (strlencmp (cmd , "0" ) == 0 )
9812
9794
state = 0 ;
9813
9795
else if (strlencmp (cmd , "1" ) == 0 )
@@ -10330,10 +10312,9 @@ static int __init set_ibm_param(const char *val, const struct kernel_param *kp)
10330
10312
continue ;
10331
10313
10332
10314
if (strcmp (ibm -> name , kp -> name ) == 0 && ibm -> write ) {
10333
- if (strlen (val ) > sizeof (ibms_init [i ].param ) - 2 )
10315
+ if (strlen (val ) > sizeof (ibms_init [i ].param ) - 1 )
10334
10316
return - ENOSPC ;
10335
10317
strcpy (ibms_init [i ].param , val );
10336
- strcat (ibms_init [i ].param , "," );
10337
10318
return 0 ;
10338
10319
}
10339
10320
}
0 commit comments