Thanks for the review it. 2018년 6월 14일 (목) 오후 11:48, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>님이 작성: > > On Thu, 14 Jun 2018, Jaejoong Kim wrote: > > > Removing EXPORT_SYMBOL_GPL from kref_{put, get} since it is used > > only in f_mass_storage > > > > Signed-off-by: Jaejoong Kim <climbbb.kim@xxxxxxxxx> > > This is only a partial solution. In fact, fsg_common_get() isn't used > anywhere, and fsg_common_put() is used in only one place. Right. Actually my first approach was to remove fsg_common_get/put and just use kref APIs(kref_get/put). But I kept current codes because this module author might have another reason. > > It would be better to remove those two routines, get rid of common->ref > entirely, and make fsg_free_inst() call fsg_common_release() directly. Hm.. If you want to call fsg_common_release () in fsg_free_inst (), the struct kref in this moduel is meaningless. I prefer hold kref and just use kref APIs not fsg_common_get/put. Thanks, Jaejoong > > Alan Stern > > > --- > > drivers/usb/gadget/function/f_mass_storage.c | 6 ++---- > > drivers/usb/gadget/function/f_mass_storage.h | 4 ---- > > 2 files changed, 2 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c > > index b6e2930..ba0eb7e 100644 > > --- a/drivers/usb/gadget/function/f_mass_storage.c > > +++ b/drivers/usb/gadget/function/f_mass_storage.c > > @@ -2558,17 +2558,15 @@ static void fsg_lun_release(struct device *dev) > > /* Nothing needs to be done */ > > } > > > > -void fsg_common_get(struct fsg_common *common) > > +static void __maybe_unused fsg_common_get(struct fsg_common *common) > > { > > kref_get(&common->ref); > > } > > -EXPORT_SYMBOL_GPL(fsg_common_get); > > > > -void fsg_common_put(struct fsg_common *common) > > +static void fsg_common_put(struct fsg_common *common) > > { > > kref_put(&common->ref, fsg_common_release); > > } > > -EXPORT_SYMBOL_GPL(fsg_common_put); > > > > static struct fsg_common *fsg_common_setup(struct fsg_common *common) > > { > > diff --git a/drivers/usb/gadget/function/f_mass_storage.h b/drivers/usb/gadget/function/f_mass_storage.h > > index 58857fc..3b8c4ce 100644 > > --- a/drivers/usb/gadget/function/f_mass_storage.h > > +++ b/drivers/usb/gadget/function/f_mass_storage.h > > @@ -115,10 +115,6 @@ fsg_opts_from_func_inst(const struct usb_function_instance *fi) > > return container_of(fi, struct fsg_opts, func_inst); > > } > > > > -void fsg_common_get(struct fsg_common *common); > > - > > -void fsg_common_put(struct fsg_common *common); > > - > > void fsg_common_set_sysfs(struct fsg_common *common, bool sysfs); > > > > int fsg_common_set_num_buffers(struct fsg_common *common, unsigned int n); > > > -- 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