From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753646AbbE1Bsa (ORCPT ); Wed, 27 May 2015 21:48:30 -0400 Received: from mail-pa0-f54.google.com ([209.85.220.54]:33515 "EHLO mail-pa0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753448AbbE1BsV (ORCPT ); Wed, 27 May 2015 21:48:21 -0400 Date: Wed, 27 May 2015 18:48:19 -0700 From: Alexei Starovoitov To: Wang Nan Cc: paulus@samba.org, a.p.zijlstra@chello.nl, mingo@redhat.com, acme@kernel.org, namhyung@kernel.org, jolsa@kernel.org, dsahern@gmail.com, daniel@iogearbox.net, brendan.d.gregg@gmail.com, masami.hiramatsu.pt@hitachi.com, lizefan@huawei.com, linux-kernel@vger.kernel.org, pi3orama@163.com Subject: Re: [RFC PATCH v4 09/29] bpf tools: Collect version and license from ELF sections Message-ID: <20150528014818.GD20764@Alexeis-MacBook-Pro.local> References: <1432704004-171454-1-git-send-email-wangnan0@huawei.com> <1432704004-171454-10-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1432704004-171454-10-git-send-email-wangnan0@huawei.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 27, 2015 at 05:19:44AM +0000, Wang Nan wrote: > Expand bpf_obj_elf_collect() to collect license and kernel version > information in eBPF object file. eBPF object file should have a section > named 'license', which contains a string. It should also have a section > named 'version', contains a u32 LINUX_VERSION_CODE. > > bpf_obj_validate() is introduced to validate object file after loaded. > Currently it only check existance of 'version' section. > > Signed-off-by: Wang Nan > --- ... > +static int > +bpf_object__init_kversion(struct bpf_object *obj, > + void *data, size_t size) > +{ > + u32 kver; > + if (size < sizeof(kver)) { shouldn't it be '!=' ? > + pr_warning("invalid kver section in %s\n", obj->path); > + return -EINVAL; > + } > + memcpy(&kver, data, sizeof(kver)); > + obj->kern_version = kver; > + pr_debug("kernel version of %s is %x\n", obj->path, > + obj->kern_version); > + return 0; > +} > +