}
 #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);
 }
 
 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),
        {}
 };