Hi Pavel, > On Oct 24, 2014, at 1:52 PM, Pavel Machek <pavel@xxxxxxx> wrote: > > Hi! > >> * /sys/class/fpga_manager/<fpga>/firmware >> Name of FPGA image file to load using firmware class. >> $ echo image.rbf > /sys/class/fpga_manager/<fpga>/firmware > > I .. still don't think this is good idea. What about namespaces? > The path corresponds to path in which namespace? > FWIW the overlays patchset uses binary configfs attribute to make this work. >> +int fpga_mgr_write(struct fpga_manager *mgr, const char *buf, size_t count) >> +{ >> + int ret; >> + >> + if (test_and_set_bit_lock(FPGA_MGR_BUSY, &mgr->flags)) >> + return -EBUSY; >> + >> + dev_info(mgr->dev, "writing buffer to %s\n", mgr->name); >> + >> + ret = __fpga_mgr_write(mgr, buf, count); >> + clear_bit_unlock(FPGA_MGR_BUSY, &mgr->flags); >> + >> + return ret; >> +} >> +EXPORT_SYMBOL_GPL(fpga_mgr_write); > > Is the EBUSY -- userspace please try again, but you don't know when to > try again -- right interface? I mean, normally kernel would wait, so > that userland does not have to poll? > >> +static ssize_t fpga_mgr_firmware_store(struct device *dev, >> + struct device_attribute *attr, >> + const char *buf, size_t count) >> +{ >> + struct fpga_manager *mgr = dev_get_drvdata(dev); >> + unsigned int len; >> + char image_name[NAME_MAX]; >> + int ret; >> + >> + /* lose terminating \n */ >> + strcpy(image_name, buf); >> + len = strlen(image_name); >> + if (image_name[len - 1] == '\n') >> + image_name[len - 1] = 0; >> + >> + ret = fpga_mgr_firmware_write(mgr, image_name); >> + if (ret) >> + return ret; >> + >> + return count; >> +} > > This shows why the interface is not right... Valid filename may > contain \n, right? It may even end with \n. > I could argue that a valid firmware file is one that’s well formed and does not contain those characters. I guess this is only for make echo file >foo work. You could specify that echo -n file >foo is required. > Best regards, > Pavel > -- > (english) http://www.livejournal.com/~pavelmachek > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html Regards — Pantelis -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html