17cb29b1cSKumar Kartikeya Dwivedi // SPDX-License-Identifier: GPL-2.0-only 27cb29b1cSKumar Kartikeya Dwivedi #include <vmlinux.h> 37cb29b1cSKumar Kartikeya Dwivedi #include <bpf/bpf_helpers.h> 495ebb376SAndrii Nakryiko #include "bpf_misc.h" 57cb29b1cSKumar Kartikeya Dwivedi foo(int * p)67cb29b1cSKumar Kartikeya Dwivedi__noinline int foo(int *p) 77cb29b1cSKumar Kartikeya Dwivedi { 8*e02851adSYonghong Song barrier_var(p); 97cb29b1cSKumar Kartikeya Dwivedi return p ? (*p = 42) : 0; 107cb29b1cSKumar Kartikeya Dwivedi } 117cb29b1cSKumar Kartikeya Dwivedi 127cb29b1cSKumar Kartikeya Dwivedi const volatile int i; 137cb29b1cSKumar Kartikeya Dwivedi 147cb29b1cSKumar Kartikeya Dwivedi SEC("tc") 1595ebb376SAndrii Nakryiko __failure __msg("Caller passes invalid args into func#1") global_func17(struct __sk_buff * skb)1695ebb376SAndrii Nakryikoint global_func17(struct __sk_buff *skb) 177cb29b1cSKumar Kartikeya Dwivedi { 187cb29b1cSKumar Kartikeya Dwivedi return foo((int *)&i); 197cb29b1cSKumar Kartikeya Dwivedi } 20