static ssize_t proc_write_simdisk()

in platforms/iss/simdisk.c [224:249]


static ssize_t proc_write_simdisk(struct file *file, const char __user *buf,
			size_t count, loff_t *ppos)
{
	char *tmp = memdup_user_nul(buf, count);
	struct simdisk *dev = PDE_DATA(file_inode(file));
	int err;

	if (IS_ERR(tmp))
		return PTR_ERR(tmp);

	err = simdisk_detach(dev);
	if (err != 0)
		goto out_free;

	if (count > 0 && tmp[count - 1] == '\n')
		tmp[count - 1] = 0;

	if (tmp[0])
		err = simdisk_attach(dev, tmp);

	if (err == 0)
		err = count;
out_free:
	kfree(tmp);
	return err;
}