Merge branch 'akpm' (patches from Andrew)
[linux-2.6-microblaze.git] / drivers / remoteproc / remoteproc_sysfs.c
index d1cf7bf..1dbef89 100644 (file)
@@ -154,38 +154,9 @@ static ssize_t firmware_store(struct device *dev,
                              const char *buf, size_t count)
 {
        struct rproc *rproc = to_rproc(dev);
-       char *p;
-       int err, len = count;
+       int err;
 
-       err = mutex_lock_interruptible(&rproc->lock);
-       if (err) {
-               dev_err(dev, "can't lock rproc %s: %d\n", rproc->name, err);
-               return -EINVAL;
-       }
-
-       if (rproc->state != RPROC_OFFLINE) {
-               dev_err(dev, "can't change firmware while running\n");
-               err = -EBUSY;
-               goto out;
-       }
-
-       len = strcspn(buf, "\n");
-       if (!len) {
-               dev_err(dev, "can't provide a NULL firmware\n");
-               err = -EINVAL;
-               goto out;
-       }
-
-       p = kstrndup(buf, len, GFP_KERNEL);
-       if (!p) {
-               err = -ENOMEM;
-               goto out;
-       }
-
-       kfree(rproc->firmware);
-       rproc->firmware = p;
-out:
-       mutex_unlock(&rproc->lock);
+       err = rproc_set_firmware(rproc, buf);
 
        return err ? err : count;
 }