Dear All, This is the third revision of the patch which adds simultaneous multiple USB functions support to FunctionFS. It includes modifications after Michal's review. Thanks Michal. @Michal: I generally included all your comments. However, I think it is not possible to make func_names __initdata since it is used as a module parameter of type "charp", so modules' handling code allocates memory for it and, consequently, wants to free it on unloading the module, but if it is __initdata, there is a problem here. As far as passing struct ffs_data * to the release callback, it is possible, but required a trick. This callback sometimes needs to be called from ffs_fs_mount, where the instance of ffs_data is not directly accessible. So I made use of the "private_data" member of struct ffs_sb_fill_data which, after ffs_sb_fill returns, contains a pointer to struct ffs_data. This implies an assumption that the callback is executed synchronously (e.g. mount_nodev returns only after the callback has been executed). Patch 1/3: Fix a bug in FunctionFS, CC stable Patch 2/3: Add __init & __exit to module init & exit Patch 3/3: enable multiple functions proper Andrzej Pietrasiewicz (3): FunctionFS: clear FFS_FL_BOUND flag on unbind (bugfix) FunctionFS: make module init & exit __init & __exit Revert "FunctionFS: multiinstance wip" Documentation/usb/functionfs.txt | 67 ++++++++++++ drivers/usb/gadget/f_fs.c | 34 +++++-- drivers/usb/gadget/g_ffs.c | 205 +++++++++++++++++++++++++++++++++----- include/linux/usb/functionfs.h | 4 +- 4 files changed, 276 insertions(+), 34 deletions(-) create mode 100644 Documentation/usb/functionfs.txt -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html