Message ID | 20190322154425.3852517-2-arnd@arndb.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | candidates from spreadtrum 4.4 product kernel | expand |
On Fri, Mar 22, 2019 at 04:43:52PM +0100, Arnd Bergmann wrote: > From: Julia Lawall <Julia.Lawall@lip6.fr> > > The mmc_pwrseq_ops structures are never modified, so declare them as const. > > Done with the help of Coccinelle. > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> > (cherry picked from commit ffedbd2210f2f4cba490a9205adc11fd1b89a852) > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/mmc/core/pwrseq.h | 2 +- > drivers/mmc/core/pwrseq_emmc.c | 2 +- > drivers/mmc/core/pwrseq_simple.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/core/pwrseq.h b/drivers/mmc/core/pwrseq.h > index 096da48c6a7e..133de0426687 100644 > --- a/drivers/mmc/core/pwrseq.h > +++ b/drivers/mmc/core/pwrseq.h > @@ -16,7 +16,7 @@ struct mmc_pwrseq_ops { > }; > > struct mmc_pwrseq { > - struct mmc_pwrseq_ops *ops; > + const struct mmc_pwrseq_ops *ops; > }; > > #ifdef CONFIG_OF > diff --git a/drivers/mmc/core/pwrseq_emmc.c b/drivers/mmc/core/pwrseq_emmc.c > index ad4f94ec7e8d..4a82bc77fe49 100644 > --- a/drivers/mmc/core/pwrseq_emmc.c > +++ b/drivers/mmc/core/pwrseq_emmc.c > @@ -51,7 +51,7 @@ static void mmc_pwrseq_emmc_free(struct mmc_host *host) > kfree(pwrseq); > } > > -static struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { > +static const struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { > .post_power_on = mmc_pwrseq_emmc_reset, > .free = mmc_pwrseq_emmc_free, > }; > diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c > index d10538bb5e07..2b16263458af 100644 > --- a/drivers/mmc/core/pwrseq_simple.c > +++ b/drivers/mmc/core/pwrseq_simple.c > @@ -87,7 +87,7 @@ static void mmc_pwrseq_simple_free(struct mmc_host *host) > kfree(pwrseq); > } > > -static struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > +static const struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > .pre_power_on = mmc_pwrseq_simple_pre_power_on, > .post_power_on = mmc_pwrseq_simple_post_power_on, > .power_off = mmc_pwrseq_simple_power_off, Why is this needed for a stable patch? It doesn't fix a bug, it just looks like it is a "nice thing" to have, right? I don't think any later patch in this series relies it it, or am I missing something? thanks, greg k-h
On Tue, 26 Mar 2019, Greg KH wrote: > On Fri, Mar 22, 2019 at 04:43:52PM +0100, Arnd Bergmann wrote: > > From: Julia Lawall <Julia.Lawall@lip6.fr> > > > > The mmc_pwrseq_ops structures are never modified, so declare them as const. > > > > Done with the help of Coccinelle. > > > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> > > Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> > > (cherry picked from commit ffedbd2210f2f4cba490a9205adc11fd1b89a852) > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > --- > > drivers/mmc/core/pwrseq.h | 2 +- > > drivers/mmc/core/pwrseq_emmc.c | 2 +- > > drivers/mmc/core/pwrseq_simple.c | 2 +- > > 3 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/mmc/core/pwrseq.h b/drivers/mmc/core/pwrseq.h > > index 096da48c6a7e..133de0426687 100644 > > --- a/drivers/mmc/core/pwrseq.h > > +++ b/drivers/mmc/core/pwrseq.h > > @@ -16,7 +16,7 @@ struct mmc_pwrseq_ops { > > }; > > > > struct mmc_pwrseq { > > - struct mmc_pwrseq_ops *ops; > > + const struct mmc_pwrseq_ops *ops; > > }; > > > > #ifdef CONFIG_OF > > diff --git a/drivers/mmc/core/pwrseq_emmc.c b/drivers/mmc/core/pwrseq_emmc.c > > index ad4f94ec7e8d..4a82bc77fe49 100644 > > --- a/drivers/mmc/core/pwrseq_emmc.c > > +++ b/drivers/mmc/core/pwrseq_emmc.c > > @@ -51,7 +51,7 @@ static void mmc_pwrseq_emmc_free(struct mmc_host *host) > > kfree(pwrseq); > > } > > > > -static struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { > > +static const struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { > > .post_power_on = mmc_pwrseq_emmc_reset, > > .free = mmc_pwrseq_emmc_free, > > }; > > diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c > > index d10538bb5e07..2b16263458af 100644 > > --- a/drivers/mmc/core/pwrseq_simple.c > > +++ b/drivers/mmc/core/pwrseq_simple.c > > @@ -87,7 +87,7 @@ static void mmc_pwrseq_simple_free(struct mmc_host *host) > > kfree(pwrseq); > > } > > > > -static struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > > +static const struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > > .pre_power_on = mmc_pwrseq_simple_pre_power_on, > > .post_power_on = mmc_pwrseq_simple_post_power_on, > > .power_off = mmc_pwrseq_simple_power_off, > > Why is this needed for a stable patch? It doesn't fix a bug, it just > looks like it is a "nice thing" to have, right? I don't think any later > patch in this series relies it it, or am I missing something? Fine with me. julia
On Tue, Mar 26, 2019 at 2:22 AM Greg KH <gregkh@linuxfoundation.org> wrote: > On Fri, Mar 22, 2019 at 04:43:52PM +0100, Arnd Bergmann wrote: > > } > > > > -static struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > > +static const struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { > > .pre_power_on = mmc_pwrseq_simple_pre_power_on, > > .post_power_on = mmc_pwrseq_simple_post_power_on, > > .power_off = mmc_pwrseq_simple_power_off, > > Why is this needed for a stable patch? It doesn't fix a bug, it just > looks like it is a "nice thing" to have, right? I don't think any later > patch in this series relies it it, or am I missing something? Right, the benefit here is rather small. In theory, any structure of function pointers is a place into which an exploit can be placed in case someone finds a way to modify a few bytes of kernel memory. Placing the structures in read-only memory make this a little harder (it doesn't prevent rowhammer attacks though). Dropping this patch is certainly fine with me, as we have a large supply of other structure definitions like this, and we wont' get close to plugging enough of them in stable kernels. Arnd
diff --git a/drivers/mmc/core/pwrseq.h b/drivers/mmc/core/pwrseq.h index 096da48c6a7e..133de0426687 100644 --- a/drivers/mmc/core/pwrseq.h +++ b/drivers/mmc/core/pwrseq.h @@ -16,7 +16,7 @@ struct mmc_pwrseq_ops { }; struct mmc_pwrseq { - struct mmc_pwrseq_ops *ops; + const struct mmc_pwrseq_ops *ops; }; #ifdef CONFIG_OF diff --git a/drivers/mmc/core/pwrseq_emmc.c b/drivers/mmc/core/pwrseq_emmc.c index ad4f94ec7e8d..4a82bc77fe49 100644 --- a/drivers/mmc/core/pwrseq_emmc.c +++ b/drivers/mmc/core/pwrseq_emmc.c @@ -51,7 +51,7 @@ static void mmc_pwrseq_emmc_free(struct mmc_host *host) kfree(pwrseq); } -static struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { +static const struct mmc_pwrseq_ops mmc_pwrseq_emmc_ops = { .post_power_on = mmc_pwrseq_emmc_reset, .free = mmc_pwrseq_emmc_free, }; diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c index d10538bb5e07..2b16263458af 100644 --- a/drivers/mmc/core/pwrseq_simple.c +++ b/drivers/mmc/core/pwrseq_simple.c @@ -87,7 +87,7 @@ static void mmc_pwrseq_simple_free(struct mmc_host *host) kfree(pwrseq); } -static struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { +static const struct mmc_pwrseq_ops mmc_pwrseq_simple_ops = { .pre_power_on = mmc_pwrseq_simple_pre_power_on, .post_power_on = mmc_pwrseq_simple_post_power_on, .power_off = mmc_pwrseq_simple_power_off,