Message ID | 20201004192152.3298573-9-robdclark@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm: de-struct_mutex-ification | expand |
On Sun, Oct 04, 2020 at 12:21:40PM -0700, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > It cannot be atomically updated with obj->active_count, and the only > purpose is a useless WARN_ON() (which becomes a buggy WARN_ON() once > retire_submits() is not serialized with incoming submits via > struct_mutex) Somebody will prove me wrong but the longer we go without 2D the less likely it is that we'll ever see it. Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org> > Signed-off-by: Rob Clark <robdclark@chromium.org> > --- > drivers/gpu/drm/msm/msm_gem.c | 2 -- > drivers/gpu/drm/msm/msm_gem.h | 1 - > drivers/gpu/drm/msm/msm_gpu.c | 5 ----- > 3 files changed, 8 deletions(-) > > diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c > index b04ed8b52f9d..c52a3969e60b 100644 > --- a/drivers/gpu/drm/msm/msm_gem.c > +++ b/drivers/gpu/drm/msm/msm_gem.c > @@ -753,7 +753,6 @@ void msm_gem_active_get(struct drm_gem_object *obj, struct msm_gpu *gpu) > > if (!atomic_fetch_inc(&msm_obj->active_count)) { > mutex_lock(&priv->mm_lock); > - msm_obj->gpu = gpu; > list_del_init(&msm_obj->mm_list); > list_add_tail(&msm_obj->mm_list, &gpu->active_list); > mutex_unlock(&priv->mm_lock); > @@ -769,7 +768,6 @@ void msm_gem_active_put(struct drm_gem_object *obj) > > if (!atomic_dec_return(&msm_obj->active_count)) { > mutex_lock(&priv->mm_lock); > - msm_obj->gpu = NULL; > list_del_init(&msm_obj->mm_list); > list_add_tail(&msm_obj->mm_list, &priv->inactive_list); > mutex_unlock(&priv->mm_lock); > diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h > index e05b1530aca6..61147bd96b06 100644 > --- a/drivers/gpu/drm/msm/msm_gem.h > +++ b/drivers/gpu/drm/msm/msm_gem.h > @@ -64,7 +64,6 @@ struct msm_gem_object { > * > */ > struct list_head mm_list; > - struct msm_gpu *gpu; /* non-null if active */ > > /* Transiently in the process of submit ioctl, objects associated > * with the submit are on submit->bo_list.. this only lasts for > diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c > index fd3fc6f36ab1..c9ff19a75169 100644 > --- a/drivers/gpu/drm/msm/msm_gpu.c > +++ b/drivers/gpu/drm/msm/msm_gpu.c > @@ -800,11 +800,6 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit) > struct drm_gem_object *drm_obj = &msm_obj->base; > uint64_t iova; > > - /* can't happen yet.. but when we add 2d support we'll have > - * to deal w/ cross-ring synchronization: > - */ > - WARN_ON(is_active(msm_obj) && (msm_obj->gpu != gpu)); > - > /* submit takes a reference to the bo and iova until retired: */ > drm_gem_object_get(&msm_obj->base); > msm_gem_get_and_pin_iova(&msm_obj->base, submit->aspace, &iova); > -- > 2.26.2 > > _______________________________________________ > Freedreno mailing list > Freedreno@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/freedreno
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index b04ed8b52f9d..c52a3969e60b 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -753,7 +753,6 @@ void msm_gem_active_get(struct drm_gem_object *obj, struct msm_gpu *gpu) if (!atomic_fetch_inc(&msm_obj->active_count)) { mutex_lock(&priv->mm_lock); - msm_obj->gpu = gpu; list_del_init(&msm_obj->mm_list); list_add_tail(&msm_obj->mm_list, &gpu->active_list); mutex_unlock(&priv->mm_lock); @@ -769,7 +768,6 @@ void msm_gem_active_put(struct drm_gem_object *obj) if (!atomic_dec_return(&msm_obj->active_count)) { mutex_lock(&priv->mm_lock); - msm_obj->gpu = NULL; list_del_init(&msm_obj->mm_list); list_add_tail(&msm_obj->mm_list, &priv->inactive_list); mutex_unlock(&priv->mm_lock); diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h index e05b1530aca6..61147bd96b06 100644 --- a/drivers/gpu/drm/msm/msm_gem.h +++ b/drivers/gpu/drm/msm/msm_gem.h @@ -64,7 +64,6 @@ struct msm_gem_object { * */ struct list_head mm_list; - struct msm_gpu *gpu; /* non-null if active */ /* Transiently in the process of submit ioctl, objects associated * with the submit are on submit->bo_list.. this only lasts for diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index fd3fc6f36ab1..c9ff19a75169 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -800,11 +800,6 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit) struct drm_gem_object *drm_obj = &msm_obj->base; uint64_t iova; - /* can't happen yet.. but when we add 2d support we'll have - * to deal w/ cross-ring synchronization: - */ - WARN_ON(is_active(msm_obj) && (msm_obj->gpu != gpu)); - /* submit takes a reference to the bo and iova until retired: */ drm_gem_object_get(&msm_obj->base); msm_gem_get_and_pin_iova(&msm_obj->base, submit->aspace, &iova);