mirror of https://gitee.com/openkylin/linux.git
[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: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
41790e04e6
commit
0f5d0df35e
|
@ -1340,6 +1340,23 @@ static void kspd_sp_exit( int sp_id)
|
|||
}
|
||||
#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)
|
||||
{
|
||||
struct vpe *vpe = get_vpe(tclimit);
|
||||
|
@ -1369,6 +1386,7 @@ static ssize_t store_ntcs(struct class_device *dev, const char *buf, size_t len)
|
|||
}
|
||||
|
||||
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),
|
||||
{}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue