Commit cbc41b43 authored by Bhumika Goyal's avatar Bhumika Goyal Committed by David S. Miller

sparc32: mm: srmmu: add __ro_after_init to sparc32_cachetlb_ops structures

The objects viking_ops, viking_sun4d_smp_ops and smp_cachetlb_ops of
type sparc32_cachetlb_ops are not modified anywhere after getting modified
in the init functions. Inside init their reference is also stored in a
pointer of type const struct sparc32_cachetlb_ops *. So these structures
are never modified after init, therefore add __ro_after to the declaration
of these structures.
Signed-off-by: default avatarBhumika Goyal <bhumirks@gmail.com>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bc49a783
...@@ -1444,7 +1444,7 @@ static void poke_viking(void) ...@@ -1444,7 +1444,7 @@ static void poke_viking(void)
srmmu_set_mmureg(mreg); srmmu_set_mmureg(mreg);
} }
static struct sparc32_cachetlb_ops viking_ops = { static struct sparc32_cachetlb_ops viking_ops __ro_after_init = {
.cache_all = viking_flush_cache_all, .cache_all = viking_flush_cache_all,
.cache_mm = viking_flush_cache_mm, .cache_mm = viking_flush_cache_mm,
.cache_page = viking_flush_cache_page, .cache_page = viking_flush_cache_page,
...@@ -1475,7 +1475,7 @@ static struct sparc32_cachetlb_ops viking_ops = { ...@@ -1475,7 +1475,7 @@ static struct sparc32_cachetlb_ops viking_ops = {
* flushes going at once will require SMP locking anyways so there's * flushes going at once will require SMP locking anyways so there's
* no real value in trying any harder than this. * no real value in trying any harder than this.
*/ */
static struct sparc32_cachetlb_ops viking_sun4d_smp_ops = { static struct sparc32_cachetlb_ops viking_sun4d_smp_ops __ro_after_init = {
.cache_all = viking_flush_cache_all, .cache_all = viking_flush_cache_all,
.cache_mm = viking_flush_cache_mm, .cache_mm = viking_flush_cache_mm,
.cache_page = viking_flush_cache_page, .cache_page = viking_flush_cache_page,
...@@ -1759,7 +1759,7 @@ static void smp_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr) ...@@ -1759,7 +1759,7 @@ static void smp_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr)
local_ops->sig_insns(mm, insn_addr); local_ops->sig_insns(mm, insn_addr);
} }
static struct sparc32_cachetlb_ops smp_cachetlb_ops = { static struct sparc32_cachetlb_ops smp_cachetlb_ops __ro_after_init = {
.cache_all = smp_flush_cache_all, .cache_all = smp_flush_cache_all,
.cache_mm = smp_flush_cache_mm, .cache_mm = smp_flush_cache_mm,
.cache_page = smp_flush_cache_page, .cache_page = smp_flush_cache_page,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment