Christophe JAILLET
2024-Jun-14 16:08 UTC
[PATCH] drm/nouveau: Constify struct nouveau_job_ops
"struct nouveau_job_ops" is not modified in these drivers. Constifying this structure moves some data to a read-only section, so increase overall security. In order to do it, "struct nouveau_job" and "struct nouveau_job_args" also need to be adjusted to this new const qualifier. On a x86_64, with allmodconfig: Before: ===== text data bss dec hex filename 5570 152 0 5722 165a drivers/gpu/drm/nouveau/nouveau_exec.o After: ==== text data bss dec hex filename 5630 112 0 5742 166e drivers/gpu/drm/nouveau/nouveau_exec.o Signed-off-by: Christophe JAILLET <christophe.jaillet at wanadoo.fr> --- drivers/gpu/drm/nouveau/nouveau_exec.c | 2 +- drivers/gpu/drm/nouveau/nouveau_sched.h | 4 ++-- drivers/gpu/drm/nouveau/nouveau_uvmm.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_exec.c b/drivers/gpu/drm/nouveau/nouveau_exec.c index e65c0ef23bc7..a0b5f1b16e8b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_exec.c +++ b/drivers/gpu/drm/nouveau/nouveau_exec.c @@ -188,7 +188,7 @@ nouveau_exec_job_timeout(struct nouveau_job *job) return DRM_GPU_SCHED_STAT_NOMINAL; } -static struct nouveau_job_ops nouveau_exec_job_ops = { +static const struct nouveau_job_ops nouveau_exec_job_ops = { .submit = nouveau_exec_job_submit, .armed_submit = nouveau_exec_job_armed_submit, .run = nouveau_exec_job_run, diff --git a/drivers/gpu/drm/nouveau/nouveau_sched.h b/drivers/gpu/drm/nouveau/nouveau_sched.h index e1f01a23e6f6..20cd1da8db73 100644 --- a/drivers/gpu/drm/nouveau/nouveau_sched.h +++ b/drivers/gpu/drm/nouveau/nouveau_sched.h @@ -42,7 +42,7 @@ struct nouveau_job_args { u32 count; } out_sync; - struct nouveau_job_ops *ops; + const struct nouveau_job_ops *ops; }; struct nouveau_job { @@ -73,7 +73,7 @@ struct nouveau_job { u32 count; } out_sync; - struct nouveau_job_ops { + const struct nouveau_job_ops { /* If .submit() returns without any error, it is guaranteed that * armed_submit() is called. */ diff --git a/drivers/gpu/drm/nouveau/nouveau_uvmm.c b/drivers/gpu/drm/nouveau/nouveau_uvmm.c index ee02cd833c5e..9402fa320a7e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_uvmm.c +++ b/drivers/gpu/drm/nouveau/nouveau_uvmm.c @@ -1534,7 +1534,7 @@ nouveau_uvmm_bind_job_cleanup(struct nouveau_job *job) nouveau_uvmm_bind_job_put(bind_job); } -static struct nouveau_job_ops nouveau_bind_job_ops = { +static const struct nouveau_job_ops nouveau_bind_job_ops = { .submit = nouveau_uvmm_bind_job_submit, .armed_submit = nouveau_uvmm_bind_job_armed_submit, .run = nouveau_uvmm_bind_job_run, -- 2.45.2
Danilo Krummrich
2024-Jun-17 15:27 UTC
[PATCH] drm/nouveau: Constify struct nouveau_job_ops
On 6/14/24 18:08, Christophe JAILLET wrote:> "struct nouveau_job_ops" is not modified in these drivers. > > Constifying this structure moves some data to a read-only section, so > increase overall security. > > In order to do it, "struct nouveau_job" and "struct nouveau_job_args" also > need to be adjusted to this new const qualifier. > > On a x86_64, with allmodconfig: > Before: > =====> text data bss dec hex filename > 5570 152 0 5722 165a drivers/gpu/drm/nouveau/nouveau_exec.o > > After: > ====> text data bss dec hex filename > 5630 112 0 5742 166e drivers/gpu/drm/nouveau/nouveau_exec.o > > Signed-off-by: Christophe JAILLET <christophe.jaillet at wanadoo.fr>Applied to drm-misc-next, thanks!> --- > drivers/gpu/drm/nouveau/nouveau_exec.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_sched.h | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_uvmm.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_exec.c b/drivers/gpu/drm/nouveau/nouveau_exec.c > index e65c0ef23bc7..a0b5f1b16e8b 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_exec.c > +++ b/drivers/gpu/drm/nouveau/nouveau_exec.c > @@ -188,7 +188,7 @@ nouveau_exec_job_timeout(struct nouveau_job *job) > return DRM_GPU_SCHED_STAT_NOMINAL; > } > > -static struct nouveau_job_ops nouveau_exec_job_ops = { > +static const struct nouveau_job_ops nouveau_exec_job_ops = { > .submit = nouveau_exec_job_submit, > .armed_submit = nouveau_exec_job_armed_submit, > .run = nouveau_exec_job_run, > diff --git a/drivers/gpu/drm/nouveau/nouveau_sched.h b/drivers/gpu/drm/nouveau/nouveau_sched.h > index e1f01a23e6f6..20cd1da8db73 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_sched.h > +++ b/drivers/gpu/drm/nouveau/nouveau_sched.h > @@ -42,7 +42,7 @@ struct nouveau_job_args { > u32 count; > } out_sync; > > - struct nouveau_job_ops *ops; > + const struct nouveau_job_ops *ops; > }; > > struct nouveau_job { > @@ -73,7 +73,7 @@ struct nouveau_job { > u32 count; > } out_sync; > > - struct nouveau_job_ops { > + const struct nouveau_job_ops { > /* If .submit() returns without any error, it is guaranteed that > * armed_submit() is called. > */ > diff --git a/drivers/gpu/drm/nouveau/nouveau_uvmm.c b/drivers/gpu/drm/nouveau/nouveau_uvmm.c > index ee02cd833c5e..9402fa320a7e 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_uvmm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_uvmm.c > @@ -1534,7 +1534,7 @@ nouveau_uvmm_bind_job_cleanup(struct nouveau_job *job) > nouveau_uvmm_bind_job_put(bind_job); > } > > -static struct nouveau_job_ops nouveau_bind_job_ops = { > +static const struct nouveau_job_ops nouveau_bind_job_ops = { > .submit = nouveau_uvmm_bind_job_submit, > .armed_submit = nouveau_uvmm_bind_job_armed_submit, > .run = nouveau_uvmm_bind_job_run,
Possibly Parallel Threads
- [PATCH 1/2] drm/nouveau: don't fini scheduler if not initialized
- [PATCH drm-misc-next] drm/nouveau: sched: avoid job races between entities
- [PATCH drm-misc-next] drm/nouveau: fence: fix undefined fence state after emit
- [PATCH drm-misc-next v2] drm/nouveau: uapi: don't pass NO_PREFETCH flag implicitly
- [PATCH drm-misc-next] drm/nouveau: uapi: don't pass NO_PREFETCH flag implicitly