diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2011-05-19 00:36:21 -0500 |
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2011-05-19 00:36:21 -0500 |
| commit | 134c428e5a31f2d5ed3a70ba20dac83895ec8b82 (patch) | |
| tree | 0fb28accbf09171b8a1ca792361f4160434529e8 /drivers/media/media-entity.c | |
| parent | a0496d450ab8c17f6c4d86979b1f6ba486fe9365 (diff) | |
| parent | c560bbceaf6b06e52f1ef20131b76a3fdc0a2c19 (diff) | |
Merge remote branch 'benh/merge' into benh-next
Diffstat (limited to 'drivers/media/media-entity.c')
| -rw-r--r-- | drivers/media/media-entity.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c index 23640ed44d8..056138f63c7 100644 --- a/drivers/media/media-entity.c +++ b/drivers/media/media-entity.c @@ -378,7 +378,6 @@ EXPORT_SYMBOL_GPL(media_entity_create_link); static int __media_entity_setup_link_notify(struct media_link *link, u32 flags) { - const u32 mask = MEDIA_LNK_FL_ENABLED; int ret; /* Notify both entities. */ @@ -395,7 +394,7 @@ static int __media_entity_setup_link_notify(struct media_link *link, u32 flags) return ret; } - link->flags = (link->flags & ~mask) | (flags & mask); + link->flags = flags; link->reverse->flags = link->flags; return 0; @@ -417,6 +416,7 @@ static int __media_entity_setup_link_notify(struct media_link *link, u32 flags) */ int __media_entity_setup_link(struct media_link *link, u32 flags) { + const u32 mask = MEDIA_LNK_FL_ENABLED; struct media_device *mdev; struct media_entity *source, *sink; int ret = -EBUSY; @@ -424,6 +424,10 @@ int __media_entity_setup_link(struct media_link *link, u32 flags) if (link == NULL) return -EINVAL; + /* The non-modifiable link flags must not be modified. */ + if ((link->flags & ~mask) != (flags & ~mask)) + return -EINVAL; + if (link->flags & MEDIA_LNK_FL_IMMUTABLE) return link->flags == flags ? 0 : -EINVAL; |
