bpf: Add __bpf_dynptr_data* for in kernel use
[linux-2.6-microblaze.git] / kernel / trace / bpf_trace.c
index 84e8a0f..f0b8b7c 100644 (file)
@@ -1376,6 +1376,8 @@ __bpf_kfunc int bpf_verify_pkcs7_signature(struct bpf_dynptr_kern *data_ptr,
                               struct bpf_dynptr_kern *sig_ptr,
                               struct bpf_key *trusted_keyring)
 {
+       const void *data, *sig;
+       u32 data_len, sig_len;
        int ret;
 
        if (trusted_keyring->has_ref) {
@@ -1392,10 +1394,12 @@ __bpf_kfunc int bpf_verify_pkcs7_signature(struct bpf_dynptr_kern *data_ptr,
                        return ret;
        }
 
-       return verify_pkcs7_signature(data_ptr->data,
-                                     __bpf_dynptr_size(data_ptr),
-                                     sig_ptr->data,
-                                     __bpf_dynptr_size(sig_ptr),
+       data_len = __bpf_dynptr_size(data_ptr);
+       data = __bpf_dynptr_data(data_ptr, data_len);
+       sig_len = __bpf_dynptr_size(sig_ptr);
+       sig = __bpf_dynptr_data(sig_ptr, sig_len);
+
+       return verify_pkcs7_signature(data, data_len, sig, sig_len,
                                      trusted_keyring->key,
                                      VERIFYING_UNSPECIFIED_SIGNATURE, NULL,
                                      NULL);