syscall: Only fake uname on very first call of netbpfload

* The bpf programs actually still support older kernels,
  we just need to bypass the very first check for kernel version

Change-Id: I4264782ee63efb26b95abd94774938d5456200a3
diff --git a/kernel/sys.c b/kernel/sys.c
index 9e728ed..6bc02c0 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1182,15 +1182,17 @@
 	return ret;
 }
 
+
+static uint64_t netbpfload_pid = 0;
 SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
 {
 	struct new_utsname tmp;
 
 	down_read(&uts_sem);
 	memcpy(&tmp, utsname(), sizeof(tmp));
-	if (!strncmp(current->comm, "bpfloader", 9) ||
-	    !strncmp(current->comm, "netbpfload", 10) ||
-	    !strncmp(current->comm, "netd", 4)) {
+	if (!strncmp(current->comm, "netbpfload", 10) &&
+	    current->pid != netbpfload_pid) {
+		netbpfload_pid = current->pid;
 		strcpy(tmp.release, "5.4.186");
 		pr_debug("fake uname: %s/%d release=%s\n",
 			 current->comm, current->pid, tmp.release);