diff --git a/net/sched/ematch.c b/net/sched/ematch.c
index 4ce681361851..5c1235e6076a 100644
--- a/net/sched/ematch.c
+++ b/net/sched/ematch.c
@@ -255,6 +255,8 @@ static int tcf_em_validate(struct tcf_proto *tp,
                         * the value carried.
                         */
                        if (em_hdr->flags & TCF_EM_SIMPLE) {
+                               if (em->ops->datalen > 0)
+                                       goto errout;
                                if (data_len < sizeof(u32))
                                        goto errout;
                                em->data = *(u32 *) data;