Message ID | 1462042824-10851-1-git-send-email-falakreyaz@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 30.04.2016 um 21:00 schrieb Muhammad Falak R Wani: > The rcu_assign_pointer() ensures that the initialization of a structure > is carried out before storing a pointer to that structre. It is always > safe to use RCU_INIT_POINTER() to NULL a pointer, instead of > rcu_assign_pointer(). > This results in slightly smaller/faster code. Thanks for the detailed explanation, I was already wondering what the difference is between the two. > > The following semantic patch was used: > <smpl> > > @@ > @@ > > - rcu_assign_pointer > + RCU_INIT_POINTER > (..., NULL) > > </smpl> > > Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Regards, Christian. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > index d81f1f4..4500ff1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c > @@ -198,7 +198,7 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) > > /* There is always exactly one thread signaling this fence slot */ > fence = rcu_dereference_protected(*ptr, 1); > - rcu_assign_pointer(*ptr, NULL); > + RCU_INIT_POINTER(*ptr, NULL); > > BUG_ON(!fence); >
On Sun, May 1, 2016 at 11:26 AM, Christian König <christian.koenig@amd.com> wrote: > Am 30.04.2016 um 21:00 schrieb Muhammad Falak R Wani: >> >> The rcu_assign_pointer() ensures that the initialization of a structure >> is carried out before storing a pointer to that structre. It is always >> safe to use RCU_INIT_POINTER() to NULL a pointer, instead of >> rcu_assign_pointer(). >> This results in slightly smaller/faster code. > > > Thanks for the detailed explanation, I was already wondering what the > difference is between the two. > >> >> The following semantic patch was used: >> <smpl> >> >> @@ >> @@ >> >> - rcu_assign_pointer >> + RCU_INIT_POINTER >> (..., NULL) >> >> </smpl> >> >> Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com> > > > Reviewed-by: Christian König <christian.koenig@amd.com> Applied. thanks! Alex > > Regards, > Christian. > >> --- >> drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c >> b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c >> index d81f1f4..4500ff1 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c >> @@ -198,7 +198,7 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) >> /* There is always exactly one thread signaling this fence >> slot */ >> fence = rcu_dereference_protected(*ptr, 1); >> - rcu_assign_pointer(*ptr, NULL); >> + RCU_INIT_POINTER(*ptr, NULL); >> BUG_ON(!fence); >> > > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c index d81f1f4..4500ff1 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c @@ -198,7 +198,7 @@ void amdgpu_fence_process(struct amdgpu_ring *ring) /* There is always exactly one thread signaling this fence slot */ fence = rcu_dereference_protected(*ptr, 1); - rcu_assign_pointer(*ptr, NULL); + RCU_INIT_POINTER(*ptr, NULL); BUG_ON(!fence);
The rcu_assign_pointer() ensures that the initialization of a structure is carried out before storing a pointer to that structre. It is always safe to use RCU_INIT_POINTER() to NULL a pointer, instead of rcu_assign_pointer(). This results in slightly smaller/faster code. The following semantic patch was used: <smpl> @@ @@ - rcu_assign_pointer + RCU_INIT_POINTER (..., NULL) </smpl> Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)