Message ID | 1488837332-71582-4-git-send-email-keescook@chromium.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Hi Kees, On Tue, Mar 7, 2017 at 6:55 AM, Kees Cook <keescook@chromium.org> wrote: > Technically, it might be possible for struct pstore_info to go out of > scope after the module_put(), so report the backend name first. But in that case, using pstore will crash the kernel anyway, right? If so, why pstore doesn't keep a reference until unregister? Do I miss something? Thanks, Namhyung > > Signed-off-by: Kees Cook <keescook@chromium.org> > --- > fs/pstore/platform.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c > index 074fe85a2078..d69ef8a840b9 100644 > --- a/fs/pstore/platform.c > +++ b/fs/pstore/platform.c > @@ -722,10 +722,10 @@ int pstore_register(struct pstore_info *psi) > */ > backend = psi->name; > > - module_put(owner); > - > pr_info("Registered %s as persistent store backend\n", psi->name); > > + module_put(owner); > + > return 0; > } > EXPORT_SYMBOL_GPL(pstore_register); > -- > 2.7.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Mar 7, 2017 at 8:16 AM, Namhyung Kim <namhyung@gmail.com> wrote: > Hi Kees, > > On Tue, Mar 7, 2017 at 6:55 AM, Kees Cook <keescook@chromium.org> wrote: >> Technically, it might be possible for struct pstore_info to go out of >> scope after the module_put(), so report the backend name first. > > But in that case, using pstore will crash the kernel anyway, right? > If so, why pstore doesn't keep a reference until unregister? > Do I miss something? I could be wrong with this, since the backend can't call unregister until register has finished... I'll drop this patch. -Kees > > Thanks, > Namhyung > > >> >> Signed-off-by: Kees Cook <keescook@chromium.org> >> --- >> fs/pstore/platform.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c >> index 074fe85a2078..d69ef8a840b9 100644 >> --- a/fs/pstore/platform.c >> +++ b/fs/pstore/platform.c >> @@ -722,10 +722,10 @@ int pstore_register(struct pstore_info *psi) >> */ >> backend = psi->name; >> >> - module_put(owner); >> - >> pr_info("Registered %s as persistent store backend\n", psi->name); >> >> + module_put(owner); >> + >> return 0; >> } >> EXPORT_SYMBOL_GPL(pstore_register); >> -- >> 2.7.4 >>
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 074fe85a2078..d69ef8a840b9 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -722,10 +722,10 @@ int pstore_register(struct pstore_info *psi) */ backend = psi->name; - module_put(owner); - pr_info("Registered %s as persistent store backend\n", psi->name); + module_put(owner); + return 0; } EXPORT_SYMBOL_GPL(pstore_register);
Technically, it might be possible for struct pstore_info to go out of scope after the module_put(), so report the backend name first. Signed-off-by: Kees Cook <keescook@chromium.org> --- fs/pstore/platform.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)