On Fri, Oct 25, 2019 at 09:31:16AM -0700, Jakub Kicinski wrote: > On Fri, 25 Oct 2019 05:01:17 +0000, Andrii Nakryiko wrote: > > >> +static bool is_btf_raw(const char *file) > > >> +{ > > >> + __u16 magic = 0; > > >> + int fd; > > >> + > > >> + fd = open(file, O_RDONLY); > > >> + if (fd < 0) > > >> + return false; > > >> + > > >> + read(fd, &magic, sizeof(magic)); > > >> + close(fd); > > >> + return magic == BTF_MAGIC; > > > > > > Isn't it suspicious to read() 2 bytes into an u16 and compare to a > > > constant like endianness doesn't matter? Quick grep doesn't reveal > > > BTF_MAGIC being endian-aware.. > > > > Right now we support only loading BTF in native endianness, so I think > > this should do. If we ever add ability to load non-native endianness, > > then we'll have to adjust this. > > This doesn't do native endianness, this does LE-only. It will not work > on BE machines. hum, let me try.. I thought it would jirka