int rndis_proc_write (struct file *file, const char __user *buffer,
unsigned long count, void *data)
{
- rndis_params *p = data;
u32 speed = 0;
int i, fl_speed = 0;
for (i = 0; i < count; i++) {
- char c;
- if (get_user(c, buffer))
- return -EFAULT;
- switch (c) {
+ switch (*buffer) {
case '0':
case '1':
case '2':
case '8':
case '9':
fl_speed = 1;
- speed = speed*10 + c - '0';
+ speed = speed*10 + *buffer - '0';
break;
case 'C':
case 'c':
- rndis_signal_connect (p->confignr);
+ rndis_signal_connect (((rndis_params *) data)
+ ->confignr);
break;
case 'D':
case 'd':
- rndis_signal_disconnect(p->confignr);
+ rndis_signal_disconnect (((rndis_params *) data)
+ ->confignr);
break;
default:
- if (fl_speed) p->speed = speed;
- else DEBUG ("%c is not valid\n", c);
+ if (fl_speed) ((rndis_params *) data)->speed = speed;
+ else DEBUG ("%c is not valid\n", *buffer);
break;
}