| @@ -6449,6 +6449,10 @@ sk_msg_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) · 6448 unmodified lines |
| 6449 | return &bpf_get_current_uid_gid_proto; | 6449 | return &bpf_get_current_uid_gid_proto; |
| 6450 | case BPF_FUNC_get_current_pid_tgid: | 6450 | case BPF_FUNC_get_current_pid_tgid: |
| 6451 | return &bpf_get_current_pid_tgid_proto; | 6451 | return &bpf_get_current_pid_tgid_proto; |
| | 6452 | case BPF_FUNC_sk_storage_get: |
| | 6453 | return &bpf_sk_storage_get_proto; |
| | 6454 | case BPF_FUNC_sk_storage_delete: |
| | 6455 | return &bpf_sk_storage_delete_proto; |
| 6452 | #ifdef CONFIG_CGROUPS | 6456 | #ifdef CONFIG_CGROUPS |
| 6453 | case BPF_FUNC_get_current_cgroup_id: | 6457 | case BPF_FUNC_get_current_cgroup_id: |
| 6454 | return &bpf_get_current_cgroup_id_proto; | 6458 | return &bpf_get_current_cgroup_id_proto; |
| @@ -7273,6 +7277,11 @@ static bool sk_msg_is_valid_access(int off, int size, · 818 unmodified lines |
| 7273 | if (size != sizeof(__u64)) | 7277 | if (size != sizeof(__u64)) |
| 7274 | return false; | 7278 | return false; |
| 7275 | break; | 7279 | break; |
| | 7280 | case offsetof(struct sk_msg_md, sk): |
| | 7281 | if (size != sizeof(__u64)) |
| | 7282 | return false; |
| | 7283 | info->reg_type = PTR_TO_SOCKET; |
| | 7284 | break; |
| 7276 | case bpf_ctx_range(struct sk_msg_md, family): | 7285 | case bpf_ctx_range(struct sk_msg_md, family): |
| 7277 | case bpf_ctx_range(struct sk_msg_md, remote_ip4): | 7286 | case bpf_ctx_range(struct sk_msg_md, remote_ip4): |
| 7278 | case bpf_ctx_range(struct sk_msg_md, local_ip4): | 7287 | case bpf_ctx_range(struct sk_msg_md, local_ip4): |
| @@ -8609,6 +8618,12 @@ static u32 sk_msg_convert_ctx_access(enum bpf_access_type type, · 1330 unmodified lines |
| 8609 | si->dst_reg, si->src_reg, | 8618 | si->dst_reg, si->src_reg, |
| 8610 | offsetof(struct sk_msg_sg, size)); | 8619 | offsetof(struct sk_msg_sg, size)); |
| 8611 | break; | 8620 | break; |
| | 8621 | |
| | 8622 | case offsetof(struct sk_msg_md, sk): |
| | 8623 | *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_msg, sk), |
| | 8624 | si->dst_reg, si->src_reg, |
| | 8625 | offsetof(struct sk_msg, sk)); |
| | 8626 | break; |
| 8612 | } | 8627 | } |
| 8613 | | 8628 | |
| 8614 | return insn - insn_buf; | 8629 | return insn - insn_buf; |