diff
--- a/drivers/net/ethernet/broadcom/bnx2x/bnad/bnad_debugfs.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnad/bnad_debugfs.c
@@ -12,5 +12,8 @@
 	u32 in_reg;
 	size_t cnt;
 	void *kern_buf;
+	if (!access_ok(VERIFY_READ, buf, nbytes))
+		return -EFAULT;
 
-	kern_buf = memdup_user(buf, nbytes);
+	kern_buf = memdup_user(buf, nbytes); 
 	if (IS_ERR(kern_buf))

