diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index c531555cc2d9..4f4a61cbd813 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -4311,11 +4311,6 @@ static int bpf_raw_tp_link_attach(struct bpf_prog *prog,
 	if (!btp)
 		return -ENOENT;
 
-	if (prog->sleepable && !tracepoint_is_faultable(btp->tp)) {
-		bpf_put_raw_tracepoint(btp);
-		return -EINVAL;
-	}
-
 	link = kzalloc_obj(*link, GFP_USER);
 	if (!link) {
 		err = -ENOMEM;
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index d4e38697a704..22ea58b98a8c 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -25205,12 +25205,6 @@ int bpf_check_attach_target(struct bpf_verifier_log *log,
 		btp = bpf_get_raw_tracepoint(tname);
 		if (!btp)
 			return -EINVAL;
-		if (prog->sleepable && !tracepoint_is_faultable(btp->tp)) {
-			bpf_log(log, "Sleepable program cannot attach to non-faultable tracepoint %s\n",
-				tname);
-			bpf_put_raw_tracepoint(btp);
-			return -EINVAL;
-		}
 		fname = kallsyms_lookup((unsigned long)btp->bpf_func, NULL, NULL, NULL,
 					trace_symbol);
 		bpf_put_raw_tracepoint(btp);
@@ -25432,7 +25426,6 @@ static bool can_be_sleepable(struct bpf_prog *prog)
 		case BPF_MODIFY_RETURN:
 		case BPF_TRACE_ITER:
 		case BPF_TRACE_FSESSION:
-		case BPF_TRACE_RAW_TP:
 			return true;
 		default:
 			return false;
@@ -25442,9 +25435,7 @@ static bool can_be_sleepable(struct bpf_prog *prog)
 		return prog->expected_attach_type != BPF_LSM_CGROUP;
 
 	return prog->type == BPF_PROG_TYPE_KPROBE /* only for uprobes */ ||
-	       prog->type == BPF_PROG_TYPE_STRUCT_OPS ||
-	       prog->type == BPF_PROG_TYPE_RAW_TRACEPOINT ||
-	       prog->type == BPF_PROG_TYPE_TRACEPOINT;
+	       prog->type == BPF_PROG_TYPE_STRUCT_OPS;
 }
 
 static int check_attach_btf_id(struct bpf_verifier_env *env)
@@ -25466,7 +25457,7 @@ static int check_attach_btf_id(struct bpf_verifier_env *env)
 	}
 
 	if (prog->sleepable && !can_be_sleepable(prog)) {
-		verbose(env, "Program of this type cannot be sleepable\n");
+		verbose(env, "Only fentry/fexit/fmod_ret, lsm, iter, uprobe, and struct_ops programs can be sleepable\n");
 		return -EINVAL;
 	}
 
