Re: [PATCH v8 51/55] [media] remove interface links at media_entity_unregister()

2015-09-11 Thread Hans Verkuil
On 09/06/2015 02:03 PM, Mauro Carvalho Chehab wrote:
> Interface links connected to an entity should be removed
> before being able of removing the entity.

I'd replace that with:

...before the entity itself can be removed.

> 
> Signed-off-by: Mauro Carvalho Chehab 

Acked-by: Hans Verkuil 

> 
> diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
> index 96a476eeb16e..7c37aeab05bb 100644
> --- a/drivers/media/media-device.c
> +++ b/drivers/media/media-device.c
> @@ -638,14 +638,30 @@ void media_device_unregister_entity(struct media_entity 
> *entity)
>   return;
>  
>   spin_lock(&mdev->lock);
> +
> + /* Remove interface links with this entity on it */
> + list_for_each_entry_safe(link, tmp, &mdev->links, graph_obj.list) {
> + if (media_type(link->gobj1) == MEDIA_GRAPH_ENTITY

I honestly think that the media_type() check can be removed. I think I
mentioned it before. Not important enough to withhold the Ack, though.

> + && link->entity == entity) {
> + media_gobj_remove(&link->graph_obj);
> + kfree(link);
> + }
> + }
> +
> + /* Remove all data links that belong to this entity */
>   list_for_each_entry_safe(link, tmp, &entity->links, list) {
>   media_gobj_remove(&link->graph_obj);
>   list_del(&link->list);
>   kfree(link);
>   }
> +
> + /* Remove all pads that belong to this entity */
>   for (i = 0; i < entity->num_pads; i++)
>   media_gobj_remove(&entity->pads[i].graph_obj);
> +
> + /* Remove the entity */
>   media_gobj_remove(&entity->graph_obj);
> +
>   spin_unlock(&mdev->lock);
>   entity->graph_obj.mdev = NULL;
>  }
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 51/55] [media] remove interface links at media_entity_unregister()

2015-09-06 Thread Mauro Carvalho Chehab
Interface links connected to an entity should be removed
before being able of removing the entity.

Signed-off-by: Mauro Carvalho Chehab 

diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index 96a476eeb16e..7c37aeab05bb 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -638,14 +638,30 @@ void media_device_unregister_entity(struct media_entity 
*entity)
return;
 
spin_lock(&mdev->lock);
+
+   /* Remove interface links with this entity on it */
+   list_for_each_entry_safe(link, tmp, &mdev->links, graph_obj.list) {
+   if (media_type(link->gobj1) == MEDIA_GRAPH_ENTITY
+   && link->entity == entity) {
+   media_gobj_remove(&link->graph_obj);
+   kfree(link);
+   }
+   }
+
+   /* Remove all data links that belong to this entity */
list_for_each_entry_safe(link, tmp, &entity->links, list) {
media_gobj_remove(&link->graph_obj);
list_del(&link->list);
kfree(link);
}
+
+   /* Remove all pads that belong to this entity */
for (i = 0; i < entity->num_pads; i++)
media_gobj_remove(&entity->pads[i].graph_obj);
+
+   /* Remove the entity */
media_gobj_remove(&entity->graph_obj);
+
spin_unlock(&mdev->lock);
entity->graph_obj.mdev = NULL;
 }
-- 
2.4.3


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 51/55] [media] remove interface links at media_entity_unregister()

2015-08-31 Thread Mauro Carvalho Chehab
Em Mon, 31 Aug 2015 14:53:45 +0200
Hans Verkuil  escreveu:

> On 08/30/2015 05:07 AM, Mauro Carvalho Chehab wrote:
> > Interface links connected to an entity should be removed
> > before being able of removing the entity.
> > 
> > Signed-off-by: Mauro Carvalho Chehab 
> > 
> > diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
> > index a91e1ec076a6..638c682b79c4 100644
> > --- a/drivers/media/media-device.c
> > +++ b/drivers/media/media-device.c
> > @@ -618,14 +618,30 @@ void media_device_unregister_entity(struct 
> > media_entity *entity)
> > return;
> >  
> > spin_lock(&mdev->lock);
> > +
> > +   /* Remove interface links with this entity on it */
> > +   list_for_each_entry_safe(link, tmp, &mdev->links, graph_obj.list) {
> > +   if (media_type(link->gobj1) == MEDIA_GRAPH_ENTITY
> > +   && link->entity == entity) {
> 
> I don't think you need the == MEDIA_GRAPH_ENTITY check here. That should 
> always be
> true if link->entity == entity.

Yes, I know. Actually, I coded it as just  if (link->entity == entity).
Latter, when reviewing my own patch, I decided to add the extra
check, as it sounded me a little better.

Not sure really what would be the better.

> 
> > +   media_gobj_remove(&link->graph_obj);
> > +   kfree(link);
> > +   }
> > +   }
> > +
> > +   /* Remove all data links that belong to this entity */
> > list_for_each_entry_safe(link, tmp, &entity->links, list) {
> > media_gobj_remove(&link->graph_obj);
> > list_del(&link->list);
> > kfree(link);
> > }
> > +
> > +   /* Remove all pads that belong to this entity */
> > for (i = 0; i < entity->num_pads; i++)
> > media_gobj_remove(&entity->pads[i].graph_obj);
> > +
> > +   /* Remove the entity */
> > media_gobj_remove(&entity->graph_obj);
> > +
> > spin_unlock(&mdev->lock);
> > entity->graph_obj.mdev = NULL;
> >  }
> > 
> 
> Regards,
> 
>   Hans
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 51/55] [media] remove interface links at media_entity_unregister()

2015-08-31 Thread Hans Verkuil
On 08/30/2015 05:07 AM, Mauro Carvalho Chehab wrote:
> Interface links connected to an entity should be removed
> before being able of removing the entity.
> 
> Signed-off-by: Mauro Carvalho Chehab 
> 
> diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
> index a91e1ec076a6..638c682b79c4 100644
> --- a/drivers/media/media-device.c
> +++ b/drivers/media/media-device.c
> @@ -618,14 +618,30 @@ void media_device_unregister_entity(struct media_entity 
> *entity)
>   return;
>  
>   spin_lock(&mdev->lock);
> +
> + /* Remove interface links with this entity on it */
> + list_for_each_entry_safe(link, tmp, &mdev->links, graph_obj.list) {
> + if (media_type(link->gobj1) == MEDIA_GRAPH_ENTITY
> + && link->entity == entity) {

I don't think you need the == MEDIA_GRAPH_ENTITY check here. That should always 
be
true if link->entity == entity.

> + media_gobj_remove(&link->graph_obj);
> + kfree(link);
> + }
> + }
> +
> + /* Remove all data links that belong to this entity */
>   list_for_each_entry_safe(link, tmp, &entity->links, list) {
>   media_gobj_remove(&link->graph_obj);
>   list_del(&link->list);
>   kfree(link);
>   }
> +
> + /* Remove all pads that belong to this entity */
>   for (i = 0; i < entity->num_pads; i++)
>   media_gobj_remove(&entity->pads[i].graph_obj);
> +
> + /* Remove the entity */
>   media_gobj_remove(&entity->graph_obj);
> +
>   spin_unlock(&mdev->lock);
>   entity->graph_obj.mdev = NULL;
>  }
> 

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v8 51/55] [media] remove interface links at media_entity_unregister()

2015-08-29 Thread Mauro Carvalho Chehab
Interface links connected to an entity should be removed
before being able of removing the entity.

Signed-off-by: Mauro Carvalho Chehab 

diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
index a91e1ec076a6..638c682b79c4 100644
--- a/drivers/media/media-device.c
+++ b/drivers/media/media-device.c
@@ -618,14 +618,30 @@ void media_device_unregister_entity(struct media_entity 
*entity)
return;
 
spin_lock(&mdev->lock);
+
+   /* Remove interface links with this entity on it */
+   list_for_each_entry_safe(link, tmp, &mdev->links, graph_obj.list) {
+   if (media_type(link->gobj1) == MEDIA_GRAPH_ENTITY
+   && link->entity == entity) {
+   media_gobj_remove(&link->graph_obj);
+   kfree(link);
+   }
+   }
+
+   /* Remove all data links that belong to this entity */
list_for_each_entry_safe(link, tmp, &entity->links, list) {
media_gobj_remove(&link->graph_obj);
list_del(&link->list);
kfree(link);
}
+
+   /* Remove all pads that belong to this entity */
for (i = 0; i < entity->num_pads; i++)
media_gobj_remove(&entity->pads[i].graph_obj);
+
+   /* Remove the entity */
media_gobj_remove(&entity->graph_obj);
+
spin_unlock(&mdev->lock);
entity->graph_obj.mdev = NULL;
 }
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html