Commit 0f5d0df3 authored by Ralf Baechle's avatar Ralf Baechle

[MIPS] RP: Sysfs interface for stopping RP program

The old method of attempting to load a invalid program was just too icky.
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 41790e04
...@@ -1340,6 +1340,23 @@ static void kspd_sp_exit( int sp_id) ...@@ -1340,6 +1340,23 @@ static void kspd_sp_exit( int sp_id)
} }
#endif #endif
static ssize_t store_kill(struct class_device *dev, const char *buf, size_t len)
{
struct vpe *vpe = get_vpe(tclimit);
struct vpe_notifications *not;
list_for_each_entry(not, &vpe->notify, list) {
not->stop(tclimit);
}
release_progmem(vpe->load_addr);
cleanup_tc(get_tc(tclimit));
vpe_stop(vpe);
vpe_free(vpe);
return len;
}
static ssize_t show_ntcs(struct class_device *cd, char *buf) static ssize_t show_ntcs(struct class_device *cd, char *buf)
{ {
struct vpe *vpe = get_vpe(tclimit); struct vpe *vpe = get_vpe(tclimit);
...@@ -1369,6 +1386,7 @@ out_einval: ...@@ -1369,6 +1386,7 @@ out_einval:
} }
static struct class_device_attribute vpe_class_attributes[] = { static struct class_device_attribute vpe_class_attributes[] = {
__ATTR(kill, S_IWUSR, NULL, store_kill),
__ATTR(ntcs, S_IRUGO | S_IWUSR, show_ntcs, store_ntcs), __ATTR(ntcs, S_IRUGO | S_IWUSR, show_ntcs, store_ntcs),
{} {}
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment