CDEBUG(D_IOCTL, "calling handler nal: %d, cmd: %d\n", nal,
pcfg->pcfg_command);
rc = cmd->nch_handler(pcfg, cmd->nch_private);
+ } else {
+ CERROR("invalid nal: %d, cmd: %d\n", nal, pcfg->pcfg_command);
}
up(&nal_cmd_sem);
portals_debug_mark_buffer(data->ioc_inlbuf1);
RETURN(0);
#if LWT_SUPPORT
- case IOC_PORTAL_LWT_CONTROL:
+ case IOC_PORTAL_LWT_CONTROL:
err = lwt_control (data->ioc_flags, data->ioc_misc);
break;
-
+
case IOC_PORTAL_LWT_SNAPSHOT: {
cycles_t now;
int ncpu;
int total_size;
-
+
err = lwt_snapshot (&now, &ncpu, &total_size,
data->ioc_pbuf1, data->ioc_plen1);
data->ioc_nid = now;
data->ioc_misc = total_size;
/* Hedge against broken user/kernel typedefs (e.g. cycles_t) */
- data->ioc_nid = sizeof(lwt_event_t);
- data->ioc_nid2 = offsetof(lwt_event_t, lwte_where);
+ data->ioc_nid2 = sizeof(lwt_event_t);
+ data->ioc_nid3 = offsetof(lwt_event_t, lwte_where);
if (err == 0 &&
copy_to_user((char *)arg, data, sizeof (*data)))
err = -EFAULT;
break;
}
-
+
case IOC_PORTAL_LWT_LOOKUP_STRING:
err = lwt_lookup_string (&data->ioc_count, data->ioc_pbuf1,
data->ioc_pbuf2, data->ioc_plen2);
break;
}
- if (copy_from_user(&pcfg, (void *)data->ioc_pbuf1,
+ if (copy_from_user(&pcfg, (void *)data->ioc_pbuf1,
sizeof(pcfg))) {
err = -EFAULT;
break;
err = libcfs_nal_cmd(&pcfg);
if (err == 0 &&
- copy_to_user((char *)data->ioc_pbuf1, &pcfg,
+ copy_to_user((char *)data->ioc_pbuf1, &pcfg,
sizeof (pcfg)))
err = -EFAULT;
break;