summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab2015-10-01 23:07:53 +0200
committerMauro Carvalho Chehab2015-10-01 23:10:05 +0200
commitef69ee1bc2c10fd1c5b389258d8156f3c38bdb33 (patch)
treea5c80cbea5086ebfee9f72b1905e13f44da6192a
parentRevert "[media] rcar_vin: call g_std() instead of querystd()" (diff)
downloadkernel-qcow2-linux-ef69ee1bc2c10fd1c5b389258d8156f3c38bdb33.tar.gz
kernel-qcow2-linux-ef69ee1bc2c10fd1c5b389258d8156f3c38bdb33.tar.xz
kernel-qcow2-linux-ef69ee1bc2c10fd1c5b389258d8156f3c38bdb33.zip
[media] media-entity.c: get rid of var length arrays
Fix those sparse warnings: drivers/media/media-entity.c:238:17: warning: Variable length array is used. drivers/media/media-entity.c:239:17: warning: Variable length array is used. That allows sparse and other code check tools to verify if the function is using more stack than allowed. It also solves a bad Kernel pratice of using var length arrays at the stack. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r--drivers/media/media-entity.c4
-rw-r--r--include/media/media-entity.h7
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c
index 153a46469814..767fe55ba08e 100644
--- a/drivers/media/media-entity.c
+++ b/drivers/media/media-entity.c
@@ -235,8 +235,8 @@ __must_check int media_entity_pipeline_start(struct media_entity *entity,
media_entity_graph_walk_start(&graph, entity);
while ((entity = media_entity_graph_walk_next(&graph))) {
- DECLARE_BITMAP(active, entity->num_pads);
- DECLARE_BITMAP(has_no_links, entity->num_pads);
+ DECLARE_BITMAP(active, MEDIA_ENTITY_MAX_PADS);
+ DECLARE_BITMAP(has_no_links, MEDIA_ENTITY_MAX_PADS);
unsigned int i;
entity->stream_count++;
diff --git a/include/media/media-entity.h b/include/media/media-entity.h
index 0c003d817493..197f93799753 100644
--- a/include/media/media-entity.h
+++ b/include/media/media-entity.h
@@ -116,6 +116,13 @@ static inline u32 media_entity_subtype(struct media_entity *entity)
#define MEDIA_ENTITY_ENUM_MAX_DEPTH 16
#define MEDIA_ENTITY_ENUM_MAX_ID 64
+/*
+ * The number of pads can't be bigger than the number of entities,
+ * as the worse-case scenario is to have one entity linked up to
+ * MEDIA_ENTITY_ENUM_MAX_ID - 1 entities.
+ */
+#define MEDIA_ENTITY_MAX_PADS (MEDIA_ENTITY_ENUM_MAX_ID - 1)
+
struct media_entity_graph {
struct {
struct media_entity *entity;