tk->rp.maxactive = maxactive;
 
-       if (!event || !is_good_name(event)) {
+       if (!event || !group) {
                ret = -EINVAL;
                goto error;
        }
        if (!tk->tp.call.name)
                goto error;
 
-       if (!group || !is_good_name(group)) {
-               ret = -EINVAL;
-               goto error;
-       }
-
        tk->tp.class.system = kstrdup(group, GFP_KERNEL);
        if (!tk->tp.class.system)
                goto error;
 
                        return -E2BIG;
                }
                strlcpy(buf, event, slash - event + 1);
+               if (!is_good_name(buf)) {
+                       pr_info("Group name must follow the same rules as C identifiers\n");
+                       return -EINVAL;
+               }
                *pgroup = buf;
                *pevent = slash + 1;
                event = *pevent;
                pr_info("Event name is too long\n");
                return -E2BIG;
        }
+       if (!is_good_name(event)) {
+               pr_info("Event name must follow the same rules as C identifiers\n");
+               return -EINVAL;
+       }
        return 0;
 }
 
 
 {
        struct trace_uprobe *tu;
 
-       if (!event || !is_good_name(event))
-               return ERR_PTR(-EINVAL);
-
-       if (!group || !is_good_name(group))
+       if (!event || !group)
                return ERR_PTR(-EINVAL);
 
        tu = kzalloc(SIZEOF_TRACE_UPROBE(nargs), GFP_KERNEL);