[tglx-devel:x86/entry 12/16] arch/x86/kernel/signal.c:806:6: warning: no previous prototype for function 'arch_do_signal'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/entry
head: a55e3844bc8afc350ee4efd87442c9c74f101b34
commit: 0e43d3bd147e265b320614052d684f1a4767fd1f [12/16] x86/entry: Use generic syscall exit functionality
config: x86_64-randconfig-r025-20200719 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 3504acc33e8b9ddd7de71d75cdc329a14dbf58d9)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 0e43d3bd147e265b320614052d684f1a4767fd1f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/x86/kernel/signal.c:806:6: warning: no previous prototype for function 'arch_do_signal' [-Wmissing-prototypes]
void arch_do_signal(struct pt_regs *regs)
^
arch/x86/kernel/signal.c:806:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void arch_do_signal(struct pt_regs *regs)
^
static
1 warning generated.
vim +/arch_do_signal +806 arch/x86/kernel/signal.c
800
801 /*
802 * Note that 'init' is a special process: it doesn't get signals it doesn't
803 * want to handle. Thus you cannot kill init even with a SIGKILL even by
804 * mistake.
805 */
> 806 void arch_do_signal(struct pt_regs *regs)
807 {
808 struct ksignal ksig;
809
810 if (get_signal(&ksig)) {
811 /* Whee! Actually deliver the signal. */
812 handle_signal(&ksig, regs);
813 return;
814 }
815
816 /* Did we come from a system call? */
817 if (syscall_get_nr(current, regs) >= 0) {
818 /* Restart the system call - no handlers present */
819 switch (syscall_get_error(current, regs)) {
820 case -ERESTARTNOHAND:
821 case -ERESTARTSYS:
822 case -ERESTARTNOINTR:
823 regs->ax = regs->orig_ax;
824 regs->ip -= 2;
825 break;
826
827 case -ERESTART_RESTARTBLOCK:
828 regs->ax = get_nr_restart_syscall(regs);
829 regs->ip -= 2;
830 break;
831 }
832 }
833
834 /*
835 * If there's no signal to deliver, we just put the saved sigmask
836 * back.
837 */
838 restore_saved_sigmask();
839 }
840
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH v2 bpf-next 4/4] bpf: Add kernel module with user mode driver that populates bpffs.
by kernel test robot
Hi Alexei,
I love your patch! Yet something to improve:
[auto build test ERROR on bpf-next/master]
url: https://github.com/0day-ci/linux/commits/Alexei-Starovoitov/bpf-Populate-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/bpf.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/bpf.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/libbpf.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/libbpf.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/btf.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/btf.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/libbpf_errno.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/libbpf_errno.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/str_error.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/str_error.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/hashmap.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/hashmap.o'.
>> make[4]: *** No rule to make target 'kernel/bpf/preload/../../tools/lib/bpf/libbpf_probes.c', needed by 'kernel/bpf/preload/../../tools/lib/bpf/libbpf_probes.o'.
make[4]: Target '__build' not remade because of errors.
--
kernel/bpf/preload/bpf_preload_kern.c: In function 'do_preload':
>> kernel/bpf/preload/bpf_preload_kern.c:16:14: warning: variable 'tgid' set but not used [-Wunused-but-set-variable]
16 | struct pid *tgid;
| ^~~~
vim +/tgid +16 kernel/bpf/preload/bpf_preload_kern.c
12
13 static int do_preload(struct bpf_preload_info *obj)
14 {
15 int magic = BPF_PRELOAD_START;
> 16 struct pid *tgid;
17 loff_t pos = 0;
18 int i, err;
19 ssize_t n;
20
21 err = fork_usermode_driver(&bpf_preload_ops.info);
22 if (err)
23 return err;
24 tgid = bpf_preload_ops.info.tgid;
25
26 /* send the start magic to let UMD proceed with loading BPF progs */
27 n = kernel_write(bpf_preload_ops.info.pipe_to_umh,
28 &magic, sizeof(magic), &pos);
29 if (n != sizeof(magic))
30 return -EPIPE;
31
32 /* receive bpf_link IDs and names from UMD */
33 pos = 0;
34 for (i = 0; i < BPF_PRELOAD_LINKS; i++) {
35 n = kernel_read(bpf_preload_ops.info.pipe_from_umh,
36 &obj[i], sizeof(*obj), &pos);
37 if (n != sizeof(*obj))
38 return -EPIPE;
39 }
40 return 0;
41 }
42
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[leon-rdma:rdma-next 55/57] drivers/infiniband/core/uverbs_cmd.c:799:6: warning: variable 'pd' is used uninitialized whenever 'if' condition is false
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git rdma-next
head: 0757f2af90704cd86cbc7d1f98a5af5a1d9f38b1
commit: 5315266b49aa1483481880854ff075a79053f477 [55/57] RDMA/uverbs: Remove redundant assignments
config: riscv-randconfig-r012-20200719 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
git checkout 5315266b49aa1483481880854ff075a79053f477
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/infiniband/core/uverbs_cmd.c:799:6: warning: variable 'pd' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (cmd.flags & IB_MR_REREG_PD) {
^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/infiniband/core/uverbs_cmd.c:811:28: note: uninitialized use occurs here
cmd.access_flags, pd,
^~
drivers/infiniband/core/uverbs_cmd.c:799:2: note: remove the 'if' if its condition is always true
if (cmd.flags & IB_MR_REREG_PD) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/infiniband/core/uverbs_cmd.c:764:18: note: initialize the variable 'pd' to silence this warning
struct ib_pd *pd;
^
= NULL
1 warning generated.
vim +799 drivers/infiniband/core/uverbs_cmd.c
bc38a6abdd5a50 Roland Dreier 2005-07-07 759
974d6b4b2bc33c Jason Gunthorpe 2018-11-25 760 static int ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs)
7e6edb9b2e0bcf Matan Barak 2014-07-31 761 {
7e6edb9b2e0bcf Matan Barak 2014-07-31 762 struct ib_uverbs_rereg_mr cmd;
7e6edb9b2e0bcf Matan Barak 2014-07-31 763 struct ib_uverbs_rereg_mr_resp resp;
5315266b49aa14 Leon Romanovsky 2020-07-19 764 struct ib_pd *pd;
7e6edb9b2e0bcf Matan Barak 2014-07-31 765 struct ib_mr *mr;
7e6edb9b2e0bcf Matan Barak 2014-07-31 766 struct ib_pd *old_pd;
7e6edb9b2e0bcf Matan Barak 2014-07-31 767 int ret;
7e6edb9b2e0bcf Matan Barak 2014-07-31 768 struct ib_uobject *uobj;
7e6edb9b2e0bcf Matan Barak 2014-07-31 769
3c2c20947ddbb8 Jason Gunthorpe 2018-11-25 770 ret = uverbs_request(attrs, &cmd, sizeof(cmd));
3c2c20947ddbb8 Jason Gunthorpe 2018-11-25 771 if (ret)
3c2c20947ddbb8 Jason Gunthorpe 2018-11-25 772 return ret;
7e6edb9b2e0bcf Matan Barak 2014-07-31 773
7e6edb9b2e0bcf Matan Barak 2014-07-31 774 if (cmd.flags & ~IB_MR_REREG_SUPPORTED || !cmd.flags)
7e6edb9b2e0bcf Matan Barak 2014-07-31 775 return -EINVAL;
7e6edb9b2e0bcf Matan Barak 2014-07-31 776
7e6edb9b2e0bcf Matan Barak 2014-07-31 777 if ((cmd.flags & IB_MR_REREG_TRANS) &&
7e6edb9b2e0bcf Matan Barak 2014-07-31 778 (!cmd.start || !cmd.hca_va || 0 >= cmd.length ||
7e6edb9b2e0bcf Matan Barak 2014-07-31 779 (cmd.start & ~PAGE_MASK) != (cmd.hca_va & ~PAGE_MASK)))
7e6edb9b2e0bcf Matan Barak 2014-07-31 780 return -EINVAL;
7e6edb9b2e0bcf Matan Barak 2014-07-31 781
8313c10fa8be03 Jason Gunthorpe 2018-11-25 782 uobj = uobj_get_write(UVERBS_OBJECT_MR, cmd.mr_handle, attrs);
fd3c7904db6e05 Matan Barak 2017-04-04 783 if (IS_ERR(uobj))
fd3c7904db6e05 Matan Barak 2017-04-04 784 return PTR_ERR(uobj);
7e6edb9b2e0bcf Matan Barak 2014-07-31 785
7e6edb9b2e0bcf Matan Barak 2014-07-31 786 mr = uobj->object;
7e6edb9b2e0bcf Matan Barak 2014-07-31 787
5ccbf63f87a39c Ariel Levkovich 2018-04-26 788 if (mr->dm) {
5ccbf63f87a39c Ariel Levkovich 2018-04-26 789 ret = -EINVAL;
5ccbf63f87a39c Ariel Levkovich 2018-04-26 790 goto put_uobjs;
5ccbf63f87a39c Ariel Levkovich 2018-04-26 791 }
5ccbf63f87a39c Ariel Levkovich 2018-04-26 792
7e6edb9b2e0bcf Matan Barak 2014-07-31 793 if (cmd.flags & IB_MR_REREG_ACCESS) {
7e6edb9b2e0bcf Matan Barak 2014-07-31 794 ret = ib_check_mr_access(cmd.access_flags);
7e6edb9b2e0bcf Matan Barak 2014-07-31 795 if (ret)
7e6edb9b2e0bcf Matan Barak 2014-07-31 796 goto put_uobjs;
7e6edb9b2e0bcf Matan Barak 2014-07-31 797 }
7e6edb9b2e0bcf Matan Barak 2014-07-31 798
7e6edb9b2e0bcf Matan Barak 2014-07-31 @799 if (cmd.flags & IB_MR_REREG_PD) {
2cc1e3b80942a7 Jason Gunthorpe 2018-07-04 800 pd = uobj_get_obj_read(pd, UVERBS_OBJECT_PD, cmd.pd_handle,
8313c10fa8be03 Jason Gunthorpe 2018-11-25 801 attrs);
7e6edb9b2e0bcf Matan Barak 2014-07-31 802 if (!pd) {
7e6edb9b2e0bcf Matan Barak 2014-07-31 803 ret = -EINVAL;
7e6edb9b2e0bcf Matan Barak 2014-07-31 804 goto put_uobjs;
7e6edb9b2e0bcf Matan Barak 2014-07-31 805 }
7e6edb9b2e0bcf Matan Barak 2014-07-31 806 }
7e6edb9b2e0bcf Matan Barak 2014-07-31 807
25fd08eb2be0fc Leon Romanovsky 2019-02-21 808 old_pd = mr->pd;
3023a1e93656c0 Kamal Heib 2018-12-10 809 ret = mr->device->ops.rereg_user_mr(mr, cmd.flags, cmd.start,
3023a1e93656c0 Kamal Heib 2018-12-10 810 cmd.length, cmd.hca_va,
3023a1e93656c0 Kamal Heib 2018-12-10 811 cmd.access_flags, pd,
ef87df2c7a8f04 Jason Gunthorpe 2018-11-25 812 &attrs->driver_udata);
e278173fd19eb5 Yuval Shaia 2019-02-18 813 if (ret)
e278173fd19eb5 Yuval Shaia 2019-02-18 814 goto put_uobj_pd;
e278173fd19eb5 Yuval Shaia 2019-02-18 815
7e6edb9b2e0bcf Matan Barak 2014-07-31 816 if (cmd.flags & IB_MR_REREG_PD) {
7e6edb9b2e0bcf Matan Barak 2014-07-31 817 atomic_inc(&pd->usecnt);
7e6edb9b2e0bcf Matan Barak 2014-07-31 818 mr->pd = pd;
7e6edb9b2e0bcf Matan Barak 2014-07-31 819 atomic_dec(&old_pd->usecnt);
7e6edb9b2e0bcf Matan Barak 2014-07-31 820 }
7e6edb9b2e0bcf Matan Barak 2014-07-31 821
04c0a5fcfcf65a Yishai Hadas 2020-06-30 822 if (cmd.flags & IB_MR_REREG_TRANS)
04c0a5fcfcf65a Yishai Hadas 2020-06-30 823 mr->iova = cmd.hca_va;
04c0a5fcfcf65a Yishai Hadas 2020-06-30 824
7e6edb9b2e0bcf Matan Barak 2014-07-31 825 memset(&resp, 0, sizeof(resp));
7e6edb9b2e0bcf Matan Barak 2014-07-31 826 resp.lkey = mr->lkey;
7e6edb9b2e0bcf Matan Barak 2014-07-31 827 resp.rkey = mr->rkey;
7e6edb9b2e0bcf Matan Barak 2014-07-31 828
9a0738575f2691 Jason Gunthorpe 2018-11-25 829 ret = uverbs_response(attrs, &resp, sizeof(resp));
7e6edb9b2e0bcf Matan Barak 2014-07-31 830
7e6edb9b2e0bcf Matan Barak 2014-07-31 831 put_uobj_pd:
7e6edb9b2e0bcf Matan Barak 2014-07-31 832 if (cmd.flags & IB_MR_REREG_PD)
fd3c7904db6e05 Matan Barak 2017-04-04 833 uobj_put_obj_read(pd);
7e6edb9b2e0bcf Matan Barak 2014-07-31 834
7e6edb9b2e0bcf Matan Barak 2014-07-31 835 put_uobjs:
fd3c7904db6e05 Matan Barak 2017-04-04 836 uobj_put_write(uobj);
7e6edb9b2e0bcf Matan Barak 2014-07-31 837
7e6edb9b2e0bcf Matan Barak 2014-07-31 838 return ret;
7e6edb9b2e0bcf Matan Barak 2014-07-31 839 }
7e6edb9b2e0bcf Matan Barak 2014-07-31 840
:::::: The code at line 799 was first introduced by commit
:::::: 7e6edb9b2e0bcfb2a588db390c44d120213c57ae IB/core: Add user MR re-registration support
:::::: TO: Matan Barak <matanb(a)mellanox.com>
:::::: CC: Roland Dreier <roland(a)purestorage.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[linux-stable-rc:linux-4.4.y 8475/9999] include/linux/compiler.h:181:38: error: invalid use of void expression
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
head: 95a3867e897abd7811196123f81a119a75aba863
commit: 177aa4d14d912a33a4490644987ac499e8bb9e11 [8475/9999] can: mscan: mscan_rx_poll(): fix rx path lockup when returning from polling to irq mode
config: powerpc-randconfig-r035-20200719 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 177aa4d14d912a33a4490644987ac499e8bb9e11
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
^~~~~~~~~
include/net/checksum.h: In function 'csum_and_copy_to_user':
arch/powerpc/include/asm/uaccess.h:57:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(((size) == 0) || (((size) - 1) <= ((segment).seg - (addr)))))
^
arch/powerpc/include/asm/uaccess.h:63:3: note: in expansion of macro '__access_ok'
__access_ok((__force unsigned long)(addr), (size), get_fs()))
^~~~~~~~~~~
include/net/checksum.h:49:6: note: in expansion of macro 'access_ok'
if (access_ok(VERIFY_WRITE, dst, len)) {
^~~~~~~~~
In file included from include/linux/if_ether.h:23:0,
from include/uapi/linux/ethtool.h:17,
from include/linux/ethtool.h:16,
from include/linux/netdevice.h:42,
from drivers/net/can/mscan/mscan.c:26:
include/linux/skbuff.h: In function 'skb_add_data':
include/linux/skbuff.h:2675:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
&csum, from) == copy) {
^~
include/linux/skbuff.h:2679:60: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
} else if (copy_from_iter(skb_put(skb, copy), copy, from) == copy)
^~
include/linux/skbuff.h: In function 'skb_can_coalesce':
include/linux/skbuff.h:2693:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
off == frag->page_offset + skb_frag_size(frag);
^~
include/linux/skbuff.h: In function 'memcpy_from_msg':
include/linux/skbuff.h:2921:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return copy_from_iter(data, len, &msg->msg_iter) == len ? 0 : -EFAULT;
^~
include/linux/skbuff.h: In function 'memcpy_to_msg':
include/linux/skbuff.h:2926:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return copy_to_iter(data, len, &msg->msg_iter) == len ? 0 : -EFAULT;
^~
In file included from include/net/inet_frag.h:4:0,
from include/net/netns/ipv4.h:9,
from include/net/net_namespace.h:17,
from include/linux/netdevice.h:43,
from drivers/net/can/mscan/mscan.c:26:
include/linux/rhashtable.h: In function 'rht_grow_above_75':
include/linux/rhashtable.h:264:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return atomic_read(&ht->nelems) > (tbl->size / 4 * 3) &&
^
include/linux/rhashtable.h: In function 'rht_shrink_below_30':
include/linux/rhashtable.h:277:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return atomic_read(&ht->nelems) < (tbl->size * 3 / 10) &&
^
include/linux/rhashtable.h: In function 'rht_grow_above_100':
include/linux/rhashtable.h:289:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
return atomic_read(&ht->nelems) > tbl->size &&
^
include/linux/rhashtable.h: In function 'rht_grow_above_max':
include/linux/rhashtable.h:302:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
atomic_read(&ht->nelems) >= ht->p.insecure_max_entries;
^~
In file included from drivers/net/can/mscan/mscan.c:26:0:
include/linux/netdevice.h: In function '__skb_gro_checksum_validate_needed':
include/linux/netdevice.h:2389:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
skb_checksum_start_offset(skb) <
^
In file included from include/linux/bug.h:4:0,
from include/linux/thread_info.h:11,
from include/asm-generic/preempt.h:4,
from arch/powerpc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:59,
from include/linux/spinlock.h:50,
from include/linux/seqlock.h:35,
from include/linux/time.h:5,
from include/linux/stat.h:18,
from include/linux/module.h:10,
from drivers/net/can/mscan/mscan.c:23:
include/linux/netdevice.h: In function 'get_netdev_rx_queue_index':
include/linux/netdevice.h:3027:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BUG_ON(index >= dev->num_rx_queues);
^
arch/powerpc/include/asm/bug.h:75:27: note: in definition of macro 'BUG_ON'
if (__builtin_constant_p(x)) { \
^
include/linux/netdevice.h:3027:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BUG_ON(index >= dev->num_rx_queues);
^
arch/powerpc/include/asm/bug.h:76:7: note: in definition of macro 'BUG_ON'
if (x) \
^
include/linux/netdevice.h:3027:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
BUG_ON(index >= dev->num_rx_queues);
^
arch/powerpc/include/asm/bug.h:84:25: note: in definition of macro 'BUG_ON'
"r" ((__force long)(x))); \
^
In file included from drivers/net/can/mscan/mscan.c:26:0:
include/linux/netdevice.h: In function 'netif_msg_init':
include/linux/netdevice.h:3301:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if (debug_value < 0 || debug_value >= (sizeof(u32) * 8))
^~
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from drivers/net/can/mscan/mscan.c:22:
drivers/net/can/mscan/mscan.c: In function 'mscan_rx_poll':
>> include/linux/compiler.h:181:38: error: invalid use of void expression
# define likely(x) __builtin_expect(!!(x), 1)
^
drivers/net/can/mscan/mscan.c:426:7: note: in expansion of macro 'likely'
if (likely(napi_complete_done(&priv->napi, work_done))) {
^~~~~~
drivers/net/can/mscan/mscan.c: In function 'mscan_start_xmit':
drivers/net/can/mscan/mscan.c:222:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
netif_stop_queue(dev);
^~~~~~~~~~~~~~~~~~~~~
drivers/net/can/mscan/mscan.c:223:2: note: here
case 2:
^~~~
vim +181 include/linux/compiler.h
2bcd521a684cc9 Steven Rostedt 2008-11-21 179
1f0d69a9fc815d Steven Rostedt 2008-11-12 180 #else
^1da177e4c3f41 Linus Torvalds 2005-04-16 @181 # define likely(x) __builtin_expect(!!(x), 1)
^1da177e4c3f41 Linus Torvalds 2005-04-16 182 # define unlikely(x) __builtin_expect(!!(x), 0)
1f0d69a9fc815d Steven Rostedt 2008-11-12 183 #endif
^1da177e4c3f41 Linus Torvalds 2005-04-16 184
:::::: The code at line 181 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds(a)ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds(a)ppc970.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[omap-audio:peter/ti-linux-5.4.y/wip 3276/7372] drivers/gpu/drm/bridge/cdns-mhdp-j721e.h:46:1: sparse: sparse: missing identifier in declaration
by kernel test robot
tree: https://github.com/omap-audio/linux-audio peter/ti-linux-5.4.y/wip
head: 00f8eae5e721a0a2673c070c612b26aee41e0c07
commit: 027933539b12d9948f86bed77cb17767db19b343 [3276/7372] drm: bridge: cdns-mhdp: add j721e wrapper
config: powerpc64-randconfig-s031-20200719 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-49-g707c5017-dirty
git checkout 027933539b12d9948f86bed77cb17767db19b343
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/bridge/cdns-mhdp-j721e.h:46:1: sparse: sparse: missing identifier in declaration
drivers/gpu/drm/bridge/cdns-mhdp-j721e.h:46:1: sparse: sparse: Expected ; at the end of type declaration
drivers/gpu/drm/bridge/cdns-mhdp-j721e.h:46:1: sparse: sparse: got {
drivers/gpu/drm/bridge/cdns-mhdp-core.c:1073:22: sparse: sparse: undefined identifier 'mhdp_ids'
drivers/gpu/drm/bridge/cdns-mhdp-core.c:2049:33: sparse: sparse: undefined identifier 'mhdp_ids'
drivers/gpu/drm/bridge/cdns-mhdp-core.c:2206:35: sparse: sparse: undefined identifier 'mhdp_ids'
vim +46 drivers/gpu/drm/bridge/cdns-mhdp-j721e.h
43
44 static inline
45 void cdns_mhdp_j721e_sst_enable(struct cdns_mhdp_device *mhdp);
> 46 {
47 }
48
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH net v2] net/sched: act_ct: fix restore the qdisc_skb_cb after defrag
by kernel test robot
Hi,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net/master]
url: https://github.com/0day-ci/linux/commits/wenxu-ucloud-cn/net-sched-act_ct...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 2ccb0161a0e9eb06f538557d38987e436fc39b8d
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> net/sched/act_ct.c:939:6: warning: variable 'defrag' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
if (clear) {
^~~~~
net/sched/act_ct.c:1026:6: note: uninitialized use occurs here
if (defrag)
^~~~~~
net/sched/act_ct.c:939:2: note: remove the 'if' if its condition is always false
if (clear) {
^~~~~~~~~~~~
net/sched/act_ct.c:926:13: note: initialize the variable 'defrag' to silence this warning
bool defrag;
^
= 0
1 warning generated.
vim +939 net/sched/act_ct.c
b57dc7c13ea90e Paul Blakey 2019-07-09 912
b57dc7c13ea90e Paul Blakey 2019-07-09 913 static int tcf_ct_act(struct sk_buff *skb, const struct tc_action *a,
b57dc7c13ea90e Paul Blakey 2019-07-09 914 struct tcf_result *res)
b57dc7c13ea90e Paul Blakey 2019-07-09 915 {
b57dc7c13ea90e Paul Blakey 2019-07-09 916 struct net *net = dev_net(skb->dev);
b57dc7c13ea90e Paul Blakey 2019-07-09 917 bool cached, commit, clear, force;
b57dc7c13ea90e Paul Blakey 2019-07-09 918 enum ip_conntrack_info ctinfo;
b57dc7c13ea90e Paul Blakey 2019-07-09 919 struct tcf_ct *c = to_ct(a);
b57dc7c13ea90e Paul Blakey 2019-07-09 920 struct nf_conn *tmpl = NULL;
b57dc7c13ea90e Paul Blakey 2019-07-09 921 struct nf_hook_state state;
b57dc7c13ea90e Paul Blakey 2019-07-09 922 int nh_ofs, err, retval;
b57dc7c13ea90e Paul Blakey 2019-07-09 923 struct tcf_ct_params *p;
46475bb20f4ba0 Paul Blakey 2020-03-03 924 bool skip_add = false;
b57dc7c13ea90e Paul Blakey 2019-07-09 925 struct nf_conn *ct;
7e9055f6e78f92 wenxu 2020-07-19 926 bool defrag;
b57dc7c13ea90e Paul Blakey 2019-07-09 927 u8 family;
b57dc7c13ea90e Paul Blakey 2019-07-09 928
b57dc7c13ea90e Paul Blakey 2019-07-09 929 p = rcu_dereference_bh(c->params);
b57dc7c13ea90e Paul Blakey 2019-07-09 930
b57dc7c13ea90e Paul Blakey 2019-07-09 931 retval = READ_ONCE(c->tcf_action);
b57dc7c13ea90e Paul Blakey 2019-07-09 932 commit = p->ct_action & TCA_CT_ACT_COMMIT;
b57dc7c13ea90e Paul Blakey 2019-07-09 933 clear = p->ct_action & TCA_CT_ACT_CLEAR;
b57dc7c13ea90e Paul Blakey 2019-07-09 934 force = p->ct_action & TCA_CT_ACT_FORCE;
b57dc7c13ea90e Paul Blakey 2019-07-09 935 tmpl = p->tmpl;
b57dc7c13ea90e Paul Blakey 2019-07-09 936
8367b3ab6e9a26 wenxu 2020-07-04 937 tcf_lastuse_update(&c->tcf_tm);
8367b3ab6e9a26 wenxu 2020-07-04 938
b57dc7c13ea90e Paul Blakey 2019-07-09 @939 if (clear) {
b57dc7c13ea90e Paul Blakey 2019-07-09 940 ct = nf_ct_get(skb, &ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09 941 if (ct) {
b57dc7c13ea90e Paul Blakey 2019-07-09 942 nf_conntrack_put(&ct->ct_general);
b57dc7c13ea90e Paul Blakey 2019-07-09 943 nf_ct_set(skb, NULL, IP_CT_UNTRACKED);
b57dc7c13ea90e Paul Blakey 2019-07-09 944 }
b57dc7c13ea90e Paul Blakey 2019-07-09 945
b57dc7c13ea90e Paul Blakey 2019-07-09 946 goto out;
b57dc7c13ea90e Paul Blakey 2019-07-09 947 }
b57dc7c13ea90e Paul Blakey 2019-07-09 948
b57dc7c13ea90e Paul Blakey 2019-07-09 949 family = tcf_ct_skb_nf_family(skb);
b57dc7c13ea90e Paul Blakey 2019-07-09 950 if (family == NFPROTO_UNSPEC)
b57dc7c13ea90e Paul Blakey 2019-07-09 951 goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09 952
b57dc7c13ea90e Paul Blakey 2019-07-09 953 /* The conntrack module expects to be working at L3.
b57dc7c13ea90e Paul Blakey 2019-07-09 954 * We also try to pull the IPv4/6 header to linear area
b57dc7c13ea90e Paul Blakey 2019-07-09 955 */
b57dc7c13ea90e Paul Blakey 2019-07-09 956 nh_ofs = skb_network_offset(skb);
b57dc7c13ea90e Paul Blakey 2019-07-09 957 skb_pull_rcsum(skb, nh_ofs);
7e9055f6e78f92 wenxu 2020-07-19 958 err = tcf_ct_handle_fragments(net, skb, family, p->zone, &defrag);
b57dc7c13ea90e Paul Blakey 2019-07-09 959 if (err == -EINPROGRESS) {
b57dc7c13ea90e Paul Blakey 2019-07-09 960 retval = TC_ACT_STOLEN;
b57dc7c13ea90e Paul Blakey 2019-07-09 961 goto out;
b57dc7c13ea90e Paul Blakey 2019-07-09 962 }
b57dc7c13ea90e Paul Blakey 2019-07-09 963 if (err)
b57dc7c13ea90e Paul Blakey 2019-07-09 964 goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09 965
b57dc7c13ea90e Paul Blakey 2019-07-09 966 err = tcf_ct_skb_network_trim(skb, family);
b57dc7c13ea90e Paul Blakey 2019-07-09 967 if (err)
b57dc7c13ea90e Paul Blakey 2019-07-09 968 goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09 969
b57dc7c13ea90e Paul Blakey 2019-07-09 970 /* If we are recirculating packets to match on ct fields and
b57dc7c13ea90e Paul Blakey 2019-07-09 971 * committing with a separate ct action, then we don't need to
b57dc7c13ea90e Paul Blakey 2019-07-09 972 * actually run the packet through conntrack twice unless it's for a
b57dc7c13ea90e Paul Blakey 2019-07-09 973 * different zone.
b57dc7c13ea90e Paul Blakey 2019-07-09 974 */
b57dc7c13ea90e Paul Blakey 2019-07-09 975 cached = tcf_ct_skb_nfct_cached(net, skb, p->zone, force);
b57dc7c13ea90e Paul Blakey 2019-07-09 976 if (!cached) {
46475bb20f4ba0 Paul Blakey 2020-03-03 977 if (!commit && tcf_ct_flow_table_lookup(p, skb, family)) {
46475bb20f4ba0 Paul Blakey 2020-03-03 978 skip_add = true;
46475bb20f4ba0 Paul Blakey 2020-03-03 979 goto do_nat;
46475bb20f4ba0 Paul Blakey 2020-03-03 980 }
46475bb20f4ba0 Paul Blakey 2020-03-03 981
b57dc7c13ea90e Paul Blakey 2019-07-09 982 /* Associate skb with specified zone. */
b57dc7c13ea90e Paul Blakey 2019-07-09 983 if (tmpl) {
b57dc7c13ea90e Paul Blakey 2019-07-09 984 ct = nf_ct_get(skb, &ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09 985 if (skb_nfct(skb))
b57dc7c13ea90e Paul Blakey 2019-07-09 986 nf_conntrack_put(skb_nfct(skb));
b57dc7c13ea90e Paul Blakey 2019-07-09 987 nf_conntrack_get(&tmpl->ct_general);
b57dc7c13ea90e Paul Blakey 2019-07-09 988 nf_ct_set(skb, tmpl, IP_CT_NEW);
b57dc7c13ea90e Paul Blakey 2019-07-09 989 }
b57dc7c13ea90e Paul Blakey 2019-07-09 990
b57dc7c13ea90e Paul Blakey 2019-07-09 991 state.hook = NF_INET_PRE_ROUTING;
b57dc7c13ea90e Paul Blakey 2019-07-09 992 state.net = net;
b57dc7c13ea90e Paul Blakey 2019-07-09 993 state.pf = family;
b57dc7c13ea90e Paul Blakey 2019-07-09 994 err = nf_conntrack_in(skb, &state);
b57dc7c13ea90e Paul Blakey 2019-07-09 995 if (err != NF_ACCEPT)
b57dc7c13ea90e Paul Blakey 2019-07-09 996 goto out_push;
b57dc7c13ea90e Paul Blakey 2019-07-09 997 }
b57dc7c13ea90e Paul Blakey 2019-07-09 998
46475bb20f4ba0 Paul Blakey 2020-03-03 999 do_nat:
b57dc7c13ea90e Paul Blakey 2019-07-09 1000 ct = nf_ct_get(skb, &ctinfo);
b57dc7c13ea90e Paul Blakey 2019-07-09 1001 if (!ct)
b57dc7c13ea90e Paul Blakey 2019-07-09 1002 goto out_push;
b57dc7c13ea90e Paul Blakey 2019-07-09 1003 nf_ct_deliver_cached_events(ct);
b57dc7c13ea90e Paul Blakey 2019-07-09 1004
b57dc7c13ea90e Paul Blakey 2019-07-09 1005 err = tcf_ct_act_nat(skb, ct, ctinfo, p->ct_action, &p->range, commit);
b57dc7c13ea90e Paul Blakey 2019-07-09 1006 if (err != NF_ACCEPT)
b57dc7c13ea90e Paul Blakey 2019-07-09 1007 goto drop;
b57dc7c13ea90e Paul Blakey 2019-07-09 1008
b57dc7c13ea90e Paul Blakey 2019-07-09 1009 if (commit) {
b57dc7c13ea90e Paul Blakey 2019-07-09 1010 tcf_ct_act_set_mark(ct, p->mark, p->mark_mask);
b57dc7c13ea90e Paul Blakey 2019-07-09 1011 tcf_ct_act_set_labels(ct, p->labels, p->labels_mask);
b57dc7c13ea90e Paul Blakey 2019-07-09 1012
b57dc7c13ea90e Paul Blakey 2019-07-09 1013 /* This will take care of sending queued events
b57dc7c13ea90e Paul Blakey 2019-07-09 1014 * even if the connection is already confirmed.
b57dc7c13ea90e Paul Blakey 2019-07-09 1015 */
b57dc7c13ea90e Paul Blakey 2019-07-09 1016 nf_conntrack_confirm(skb);
46475bb20f4ba0 Paul Blakey 2020-03-03 1017 } else if (!skip_add) {
64ff70b80fd403 Paul Blakey 2020-03-03 1018 tcf_ct_flow_table_process_conn(p->ct_ft, ct, ctinfo);
46475bb20f4ba0 Paul Blakey 2020-03-03 1019 }
64ff70b80fd403 Paul Blakey 2020-03-03 1020
b57dc7c13ea90e Paul Blakey 2019-07-09 1021 out_push:
b57dc7c13ea90e Paul Blakey 2019-07-09 1022 skb_push_rcsum(skb, nh_ofs);
b57dc7c13ea90e Paul Blakey 2019-07-09 1023
b57dc7c13ea90e Paul Blakey 2019-07-09 1024 out:
5e1ad95b630e65 Vlad Buslov 2019-10-30 1025 tcf_action_update_bstats(&c->common, skb);
7e9055f6e78f92 wenxu 2020-07-19 1026 if (defrag)
7e9055f6e78f92 wenxu 2020-07-19 1027 qdisc_skb_cb(skb)->pkt_len = skb->len;
b57dc7c13ea90e Paul Blakey 2019-07-09 1028 return retval;
b57dc7c13ea90e Paul Blakey 2019-07-09 1029
b57dc7c13ea90e Paul Blakey 2019-07-09 1030 drop:
26b537a88ca5b7 Vlad Buslov 2019-10-30 1031 tcf_action_inc_drop_qstats(&c->common);
b57dc7c13ea90e Paul Blakey 2019-07-09 1032 return TC_ACT_SHOT;
b57dc7c13ea90e Paul Blakey 2019-07-09 1033 }
b57dc7c13ea90e Paul Blakey 2019-07-09 1034
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH 1/2] f2fs: add sysfs symbolic link to kobject with volume name
by kernel test robot
Hi Daeho,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on f2fs/dev-test]
[also build test WARNING on linux/master linus/master v5.8-rc5 next-20200717]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Daeho-Jeong/f2fs-add-sysfs-symbo...
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
config: s390-randconfig-s032-20200719 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-49-g707c5017-dirty
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
>> fs/f2fs/sysfs.c:915:36: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short const [usertype] *pwcs @@ got restricted __le16 * @@
>> fs/f2fs/sysfs.c:915:36: sparse: expected unsigned short const [usertype] *pwcs
>> fs/f2fs/sysfs.c:915:36: sparse: got restricted __le16 *
vim +915 fs/f2fs/sysfs.c
909
910 static int f2fs_load_syslink(struct f2fs_sb_info *sbi)
911 {
912 int idx, count, ret;
913
914 down_read(&sbi->sb_lock);
> 915 count = utf16s_to_utf8s(sbi->raw_super->volume_name,
916 ARRAY_SIZE(sbi->raw_super->volume_name),
917 UTF16_LITTLE_ENDIAN, sbi->syslink_name,
918 MAX_VOLUME_NAME);
919 up_read(&sbi->sb_lock);
920
921 if (!count)
922 return -ENOENT;
923
924 for (idx = 0; idx < MAX_DUP_NUM; idx++) {
925 snprintf(sbi->syslink_name + count, MAX_DUP_NAME, "_%d", idx);
926 ret = sysfs_create_link(&f2fs_kset.kobj, &sbi->s_kobj,
927 sbi->syslink_name);
928 if (ret != -EEXIST)
929 break;
930 }
931
932 if (ret)
933 memset(sbi->syslink_name, 0, MAX_SYSLINK_NAME);
934
935 return ret;
936 }
937
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [RFC PATCH v4 08/12] ipe: add property for signed dmverity volumes
by kernel test robot
Hi Deven,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on dm/for-next]
[also build test WARNING on pcmoore-selinux/next linus/master v5.8-rc5]
[cannot apply to security/next-testing next-20200717]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Deven-Bowers/Integrity-Policy-En...
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/m68k/include/asm/io_mm.h:25,
from arch/m68k/include/asm/io.h:8,
from include/linux/scatterlist.h:9,
from include/linux/dma-mapping.h:11,
from include/linux/skbuff.h:31,
from include/linux/lsm_audit.h:24,
from security/ipe/properties/../ipe-property.h:9,
from security/ipe/properties/dmverity-signature.c:8:
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsb':
arch/m68k/include/asm/raw_io.h:83:7: warning: variable '__w' set but not used [-Wunused-but-set-variable]
83 | ({u8 __w, __v = (b); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:430:3: note: in expansion of macro 'rom_out_8'
430 | rom_out_8(port, *buf++);
| ^~~~~~~~~
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw':
arch/m68k/include/asm/raw_io.h:86:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
86 | ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:448:3: note: in expansion of macro 'rom_out_be16'
448 | rom_out_be16(port, *buf++);
| ^~~~~~~~~~~~
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw_swapw':
arch/m68k/include/asm/raw_io.h:90:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
90 | ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:466:3: note: in expansion of macro 'rom_out_le16'
466 | rom_out_le16(port, *buf++);
| ^~~~~~~~~~~~
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/wait.h:7,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from security/ipe/properties/../ipe.h:12,
from security/ipe/properties/dmverity-signature.c:6:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from arch/m68k/include/asm/bug.h:32,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/preempt.h:5,
from ./arch/m68k/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from security/ipe/properties/../ipe.h:12,
from security/ipe/properties/dmverity-signature.c:6:
include/linux/dma-mapping.h: In function 'dma_map_resource':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/asm-generic/bug.h:144:27: note: in definition of macro 'WARN_ON_ONCE'
144 | int __ret_warn_once = !!(condition); \
| ^~~~~~~~~
arch/m68k/include/asm/page_mm.h:170:25: note: in expansion of macro 'virt_addr_valid'
170 | #define pfn_valid(pfn) virt_addr_valid(pfn_to_virt(pfn))
| ^~~~~~~~~~~~~~~
include/linux/dma-mapping.h:352:19: note: in expansion of macro 'pfn_valid'
352 | if (WARN_ON_ONCE(pfn_valid(PHYS_PFN(phys_addr))))
| ^~~~~~~~~
security/ipe/properties/dmverity-signature.c: At top level:
>> security/ipe/properties/dmverity-signature.c:79:5: warning: no previous prototype for 'ipe_init_dm_verity_signature' [-Wmissing-prototypes]
79 | int ipe_init_dm_verity_signature(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ipe_init_dm_verity_signature +79 security/ipe/properties/dmverity-signature.c
78
> 79 int ipe_init_dm_verity_signature(void)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH] staging: kpc2000: Replace depracated MSI API.
by kernel test robot
Hi Suraj,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on staging/staging-testing]
url: https://github.com/0day-ci/linux/commits/Suraj-Upadhyay/staging-kpc2000-R...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 9d5d041eebe3dcf7591ff7004896c329eb841ca6
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/staging/kpc2000/kpc2000/core.c:443:30: error: use of undeclared identifier 'dev'; did you mean 'pdev'?
err = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_MSI);
^~~
pdev
drivers/staging/kpc2000/kpc2000/core.c:296:46: note: 'pdev' declared here
static int kp2000_pcie_probe(struct pci_dev *pdev,
^
>> drivers/staging/kpc2000/kpc2000/core.c:434:42: warning: shift count >= width of type [-Wshift-count-overflow]
err = dma_set_mask(PCARD_TO_DEV(pcard), DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:139:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/staging/kpc2000/kpc2000/core.c:437:35: warning: shift count >= width of type [-Wshift-count-overflow]
"CANNOT use DMA mask %0llx\n", DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
^~~~~~~~~~~
include/linux/dma-mapping.h:139:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
2 warnings and 1 error generated.
vim +443 drivers/staging/kpc2000/kpc2000/core.c
295
296 static int kp2000_pcie_probe(struct pci_dev *pdev,
297 const struct pci_device_id *id)
298 {
299 int err = 0;
300 struct kp2000_device *pcard;
301 unsigned long reg_bar_phys_addr;
302 unsigned long reg_bar_phys_len;
303 unsigned long dma_bar_phys_addr;
304 unsigned long dma_bar_phys_len;
305 u16 regval;
306
307 pcard = kzalloc(sizeof(*pcard), GFP_KERNEL);
308 if (!pcard)
309 return -ENOMEM;
310 dev_dbg(&pdev->dev, "probe: allocated struct kp2000_device @ %p\n",
311 pcard);
312
313 err = ida_simple_get(&card_num_ida, 1, INT_MAX, GFP_KERNEL);
314 if (err < 0) {
315 dev_err(&pdev->dev, "probe: failed to get card number (%d)\n",
316 err);
317 goto err_free_pcard;
318 }
319 pcard->card_num = err;
320 scnprintf(pcard->name, 16, "kpcard%u", pcard->card_num);
321
322 mutex_init(&pcard->sem);
323 mutex_lock(&pcard->sem);
324
325 pcard->pdev = pdev;
326 pci_set_drvdata(pdev, pcard);
327
328 err = pci_enable_device(pcard->pdev);
329 if (err) {
330 dev_err(&pcard->pdev->dev,
331 "probe: failed to enable PCIE2000 PCIe device (%d)\n",
332 err);
333 goto err_remove_ida;
334 }
335
336 /* Setup the Register BAR */
337 reg_bar_phys_addr = pci_resource_start(pcard->pdev, REG_BAR);
338 reg_bar_phys_len = pci_resource_len(pcard->pdev, REG_BAR);
339
340 pcard->regs_bar_base = ioremap(reg_bar_phys_addr, PAGE_SIZE);
341 if (!pcard->regs_bar_base) {
342 dev_err(&pcard->pdev->dev,
343 "probe: REG_BAR could not remap memory to virtual space\n");
344 err = -ENODEV;
345 goto err_disable_device;
346 }
347 dev_dbg(&pcard->pdev->dev,
348 "probe: REG_BAR virt hardware address start [%p]\n",
349 pcard->regs_bar_base);
350
351 err = pci_request_region(pcard->pdev, REG_BAR, KP_DRIVER_NAME_KP2000);
352 if (err) {
353 dev_err(&pcard->pdev->dev,
354 "probe: failed to acquire PCI region (%d)\n",
355 err);
356 err = -ENODEV;
357 goto err_unmap_regs;
358 }
359
360 pcard->regs_base_resource.start = reg_bar_phys_addr;
361 pcard->regs_base_resource.end = reg_bar_phys_addr +
362 reg_bar_phys_len - 1;
363 pcard->regs_base_resource.flags = IORESOURCE_MEM;
364
365 /* Setup the DMA BAR */
366 dma_bar_phys_addr = pci_resource_start(pcard->pdev, DMA_BAR);
367 dma_bar_phys_len = pci_resource_len(pcard->pdev, DMA_BAR);
368
369 pcard->dma_bar_base = ioremap(dma_bar_phys_addr,
370 dma_bar_phys_len);
371 if (!pcard->dma_bar_base) {
372 dev_err(&pcard->pdev->dev,
373 "probe: DMA_BAR could not remap memory to virtual space\n");
374 err = -ENODEV;
375 goto err_release_regs;
376 }
377 dev_dbg(&pcard->pdev->dev,
378 "probe: DMA_BAR virt hardware address start [%p]\n",
379 pcard->dma_bar_base);
380
381 pcard->dma_common_regs = pcard->dma_bar_base + KPC_DMA_COMMON_OFFSET;
382
383 err = pci_request_region(pcard->pdev, DMA_BAR, "kp2000_pcie");
384 if (err) {
385 dev_err(&pcard->pdev->dev,
386 "probe: failed to acquire PCI region (%d)\n", err);
387 err = -ENODEV;
388 goto err_unmap_dma;
389 }
390
391 pcard->dma_base_resource.start = dma_bar_phys_addr;
392 pcard->dma_base_resource.end = dma_bar_phys_addr +
393 dma_bar_phys_len - 1;
394 pcard->dma_base_resource.flags = IORESOURCE_MEM;
395
396 /* Read System Regs */
397 pcard->sysinfo_regs_base = pcard->regs_bar_base;
398 err = read_system_regs(pcard);
399 if (err)
400 goto err_release_dma;
401
402 // Disable all "user" interrupts because they're not used yet.
403 writeq(0xFFFFFFFFFFFFFFFFUL,
404 pcard->sysinfo_regs_base + REG_INTERRUPT_MASK);
405
406 // let the card master PCIe
407 pci_set_master(pcard->pdev);
408
409 // enable IO and mem if not already done
410 pci_read_config_word(pcard->pdev, PCI_COMMAND, ®val);
411 regval |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY);
412 pci_write_config_word(pcard->pdev, PCI_COMMAND, regval);
413
414 // Clear relaxed ordering bit
415 pcie_capability_clear_and_set_word(pcard->pdev, PCI_EXP_DEVCTL,
416 PCI_EXP_DEVCTL_RELAX_EN, 0);
417
418 // Set Max_Payload_Size and Max_Read_Request_Size
419 regval = (0x0) << 5; // Max_Payload_Size = 128 B
420 pcie_capability_clear_and_set_word(pcard->pdev, PCI_EXP_DEVCTL,
421 PCI_EXP_DEVCTL_PAYLOAD, regval);
422 regval = (0x0) << 12; // Max_Read_Request_Size = 128 B
423 pcie_capability_clear_and_set_word(pcard->pdev, PCI_EXP_DEVCTL,
424 PCI_EXP_DEVCTL_READRQ, regval);
425
426 // Enable error reporting for: Correctable Errors, Non-Fatal Errors,
427 // Fatal Errors, Unsupported Requests
428 pcie_capability_clear_and_set_word(pcard->pdev, PCI_EXP_DEVCTL, 0,
429 PCI_EXP_DEVCTL_CERE |
430 PCI_EXP_DEVCTL_NFERE |
431 PCI_EXP_DEVCTL_FERE |
432 PCI_EXP_DEVCTL_URRE);
433
> 434 err = dma_set_mask(PCARD_TO_DEV(pcard), DMA_BIT_MASK(64));
435 if (err) {
436 dev_err(&pcard->pdev->dev,
437 "CANNOT use DMA mask %0llx\n", DMA_BIT_MASK(64));
438 goto err_release_dma;
439 }
440 dev_dbg(&pcard->pdev->dev,
441 "Using DMA mask %0llx\n", dma_get_mask(PCARD_TO_DEV(pcard)));
442
> 443 err = pci_alloc_irq_vectors(dev, 1, 1, PCI_IRQ_MSI);
444 if (err < 0)
445 goto err_release_dma;
446
447 err = request_irq(pcard->pdev->irq, kp2000_irq_handler, IRQF_SHARED,
448 pcard->name, pcard);
449 if (err) {
450 dev_err(&pcard->pdev->dev,
451 "%s: failed to request_irq: %d\n", __func__, err);
452 goto err_disable_msi;
453 }
454
455 err = sysfs_create_files(&pdev->dev.kobj, kp_attr_list);
456 if (err) {
457 dev_err(&pdev->dev, "Failed to add sysfs files: %d\n", err);
458 goto err_free_irq;
459 }
460
461 err = kp2000_probe_cores(pcard);
462 if (err)
463 goto err_remove_sysfs;
464
465 /* Enable IRQs in HW */
466 writel(KPC_DMA_CARD_IRQ_ENABLE | KPC_DMA_CARD_USER_INTERRUPT_MODE,
467 pcard->dma_common_regs);
468
469 mutex_unlock(&pcard->sem);
470 return 0;
471
472 err_remove_sysfs:
473 sysfs_remove_files(&pdev->dev.kobj, kp_attr_list);
474 err_free_irq:
475 free_irq(pcard->pdev->irq, pcard);
476 err_disable_msi:
477 pci_disable_msi(pcard->pdev);
478 err_release_dma:
479 pci_release_region(pdev, DMA_BAR);
480 err_unmap_dma:
481 iounmap(pcard->dma_bar_base);
482 err_release_regs:
483 pci_release_region(pdev, REG_BAR);
484 err_unmap_regs:
485 iounmap(pcard->regs_bar_base);
486 err_disable_device:
487 pci_disable_device(pcard->pdev);
488 err_remove_ida:
489 mutex_unlock(&pcard->sem);
490 ida_simple_remove(&card_num_ida, pcard->card_num);
491 err_free_pcard:
492 kfree(pcard);
493 return err;
494 }
495
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [RFC PATCH v4 06/12] dm-verity: move signature check after tree validation
by kernel test robot
Hi Deven,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on dm/for-next]
[also build test WARNING on pcmoore-selinux/next linus/master v5.8-rc5]
[cannot apply to security/next-testing next-20200717]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Deven-Bowers/Integrity-Policy-En...
base: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git for-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from arch/m68k/include/asm/io_mm.h:25,
from arch/m68k/include/asm/io.h:8,
from include/linux/io.h:13,
from include/linux/irq.h:20,
from include/asm-generic/hardirq.h:13,
from ./arch/m68k/include/generated/asm/hardirq.h:1,
from include/linux/hardirq.h:10,
from include/linux/highmem.h:10,
from include/linux/pagemap.h:11,
from include/linux/blkdev.h:16,
from include/linux/dm-bufio.h:12,
from drivers/md/dm-verity.h:14,
from drivers/md/dm-verity-target.c:16:
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsb':
arch/m68k/include/asm/raw_io.h:83:7: warning: variable '__w' set but not used [-Wunused-but-set-variable]
83 | ({u8 __w, __v = (b); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:430:3: note: in expansion of macro 'rom_out_8'
430 | rom_out_8(port, *buf++);
| ^~~~~~~~~
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw':
arch/m68k/include/asm/raw_io.h:86:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
86 | ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:448:3: note: in expansion of macro 'rom_out_be16'
448 | rom_out_be16(port, *buf++);
| ^~~~~~~~~~~~
arch/m68k/include/asm/raw_io.h: In function 'raw_rom_outsw_swapw':
arch/m68k/include/asm/raw_io.h:90:8: warning: variable '__w' set but not used [-Wunused-but-set-variable]
90 | ({u16 __w, __v = (w); u32 _addr = ((u32) (addr)); \
| ^~~
arch/m68k/include/asm/raw_io.h:466:3: note: in expansion of macro 'rom_out_le16'
466 | rom_out_le16(port, *buf++);
| ^~~~~~~~~~~~
In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/rculist.h:10,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/blkdev.h:5,
from include/linux/dm-bufio.h:12,
from drivers/md/dm-verity.h:14,
from drivers/md/dm-verity-target.c:16:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:169:49: warning: ordered comparison of pointer with null pointer [-Wextra]
169 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/md/dm-verity-target.c: In function 'verity_ctr':
>> drivers/md/dm-verity-target.c:988:8: warning: variable 'root_hash_digest_to_validate' set but not used [-Wunused-but-set-variable]
988 | char *root_hash_digest_to_validate;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/root_hash_digest_to_validate +988 drivers/md/dm-verity-target.c
753c1fd02807cb drivers/md/dm-verity.c Sami Tolvanen 2015-11-05 963
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 964 /*
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 965 * Target parameters:
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 966 * <version> The current format is version 1.
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 967 * Vsn 0 is compatible with original Chromium OS releases.
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 968 * <data device>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 969 * <hash device>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 970 * <data block size>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 971 * <hash block size>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 972 * <the number of data blocks>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 973 * <hash start block>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 974 * <algorithm>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 975 * <digest>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 976 * <salt> Hex string or "-" if no salt.
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 977 */
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 978 static int verity_ctr(struct dm_target *ti, unsigned argc, char **argv)
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 979 {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 980 struct dm_verity *v;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 981 struct dm_arg_set as;
753c1fd02807cb drivers/md/dm-verity.c Sami Tolvanen 2015-11-05 982 unsigned int num;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 983 unsigned long long num_ll;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 984 int r;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 985 int i;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 986 sector_t hash_position;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 987 char dummy;
88cd3e6cfac915 drivers/md/dm-verity-target.c Jaskaran Khurana 2019-07-17 @988 char *root_hash_digest_to_validate;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 989
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 990 v = kzalloc(sizeof(struct dm_verity), GFP_KERNEL);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 991 if (!v) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 992 ti->error = "Cannot allocate verity structure";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 993 return -ENOMEM;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 994 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 995 ti->private = v;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 996 v->ti = ti;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 997
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 998 r = verity_fec_ctr_alloc(v);
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 999 if (r)
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1000 goto bad;
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1001
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1002 if ((dm_table_get_mode(ti->table) & ~FMODE_READ)) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1003 ti->error = "Device must be readonly";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1004 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1005 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1006 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1007
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1008 if (argc < 10) {
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1009 ti->error = "Not enough arguments";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1010 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1011 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1012 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1013
5d8be84397618a drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1014 if (sscanf(argv[0], "%u%c", &num, &dummy) != 1 ||
5d8be84397618a drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1015 num > 1) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1016 ti->error = "Invalid version";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1017 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1018 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1019 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1020 v->version = num;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1021
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1022 r = dm_get_device(ti, argv[1], FMODE_READ, &v->data_dev);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1023 if (r) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1024 ti->error = "Data device lookup failed";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1025 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1026 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1027
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1028 r = dm_get_device(ti, argv[2], FMODE_READ, &v->hash_dev);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1029 if (r) {
21ffe552e9cd9f drivers/md/dm-verity-target.c Eric Biggers 2016-09-08 1030 ti->error = "Hash device lookup failed";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1031 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1032 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1033
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1034 if (sscanf(argv[3], "%u%c", &num, &dummy) != 1 ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1035 !num || (num & (num - 1)) ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1036 num < bdev_logical_block_size(v->data_dev->bdev) ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1037 num > PAGE_SIZE) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1038 ti->error = "Invalid data device block size";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1039 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1040 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1041 }
553d8fe029a561 drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1042 v->data_dev_block_bits = __ffs(num);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1043
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1044 if (sscanf(argv[4], "%u%c", &num, &dummy) != 1 ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1045 !num || (num & (num - 1)) ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1046 num < bdev_logical_block_size(v->hash_dev->bdev) ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1047 num > INT_MAX) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1048 ti->error = "Invalid hash device block size";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1049 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1050 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1051 }
553d8fe029a561 drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1052 v->hash_dev_block_bits = __ffs(num);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1053
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1054 if (sscanf(argv[5], "%llu%c", &num_ll, &dummy) != 1 ||
1d55f6bcc0331d drivers/md/dm-verity.c Mikulas Patocka 2012-09-26 1055 (sector_t)(num_ll << (v->data_dev_block_bits - SECTOR_SHIFT))
1d55f6bcc0331d drivers/md/dm-verity.c Mikulas Patocka 2012-09-26 1056 >> (v->data_dev_block_bits - SECTOR_SHIFT) != num_ll) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1057 ti->error = "Invalid data blocks";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1058 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1059 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1060 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1061 v->data_blocks = num_ll;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1062
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1063 if (ti->len > (v->data_blocks << (v->data_dev_block_bits - SECTOR_SHIFT))) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1064 ti->error = "Data device is too small";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1065 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1066 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1067 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1068
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1069 if (sscanf(argv[6], "%llu%c", &num_ll, &dummy) != 1 ||
1d55f6bcc0331d drivers/md/dm-verity.c Mikulas Patocka 2012-09-26 1070 (sector_t)(num_ll << (v->hash_dev_block_bits - SECTOR_SHIFT))
1d55f6bcc0331d drivers/md/dm-verity.c Mikulas Patocka 2012-09-26 1071 >> (v->hash_dev_block_bits - SECTOR_SHIFT) != num_ll) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1072 ti->error = "Invalid hash start";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1073 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1074 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1075 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1076 v->hash_start = num_ll;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1077
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1078 v->alg_name = kstrdup(argv[7], GFP_KERNEL);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1079 if (!v->alg_name) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1080 ti->error = "Cannot allocate algorithm name";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1081 r = -ENOMEM;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1082 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1083 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1084
d1ac3ff008fb9a drivers/md/dm-verity-target.c Gilad Ben-Yossef 2017-02-19 1085 v->tfm = crypto_alloc_ahash(v->alg_name, 0, 0);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1086 if (IS_ERR(v->tfm)) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1087 ti->error = "Cannot initialize hash function";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1088 r = PTR_ERR(v->tfm);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1089 v->tfm = NULL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1090 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1091 }
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1092
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1093 /*
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1094 * dm-verity performance can vary greatly depending on which hash
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1095 * algorithm implementation is used. Help people debug performance
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1096 * problems by logging the ->cra_driver_name.
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1097 */
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1098 DMINFO("%s using implementation \"%s\"", v->alg_name,
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1099 crypto_hash_alg_common(v->tfm)->base.cra_driver_name);
bbf6a566920e1b drivers/md/dm-verity-target.c Eric Biggers 2018-12-05 1100
d1ac3ff008fb9a drivers/md/dm-verity-target.c Gilad Ben-Yossef 2017-02-19 1101 v->digest_size = crypto_ahash_digestsize(v->tfm);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1102 if ((1 << v->hash_dev_block_bits) < v->digest_size * 2) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1103 ti->error = "Digest size too big";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1104 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1105 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1106 }
d1ac3ff008fb9a drivers/md/dm-verity-target.c Gilad Ben-Yossef 2017-02-19 1107 v->ahash_reqsize = sizeof(struct ahash_request) +
d1ac3ff008fb9a drivers/md/dm-verity-target.c Gilad Ben-Yossef 2017-02-19 1108 crypto_ahash_reqsize(v->tfm);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1109
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1110 v->root_digest = kmalloc(v->digest_size, GFP_KERNEL);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1111 if (!v->root_digest) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1112 ti->error = "Cannot allocate root digest";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1113 r = -ENOMEM;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1114 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1115 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1116 if (strlen(argv[8]) != v->digest_size * 2 ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1117 hex2bin(v->root_digest, argv[8], v->digest_size)) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1118 ti->error = "Invalid root digest";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1119 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1120 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1121 }
88cd3e6cfac915 drivers/md/dm-verity-target.c Jaskaran Khurana 2019-07-17 1122 root_hash_digest_to_validate = argv[8];
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1123
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1124 if (strcmp(argv[9], "-")) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1125 v->salt_size = strlen(argv[9]) / 2;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1126 v->salt = kmalloc(v->salt_size, GFP_KERNEL);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1127 if (!v->salt) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1128 ti->error = "Cannot allocate salt";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1129 r = -ENOMEM;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1130 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1131 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1132 if (strlen(argv[9]) != v->salt_size * 2 ||
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1133 hex2bin(v->salt, argv[9], v->salt_size)) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1134 ti->error = "Invalid salt";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1135 r = -EINVAL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1136 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1137 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1138 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1139
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1140 argv += 10;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1141 argc -= 10;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1142
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1143 /* Optional parameters */
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1144 if (argc) {
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1145 as.argc = argc;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1146 as.argv = argv;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1147
03b608829d1182 drivers/md/dm-verity-target.c Deven Bowers 2020-07-17 1148 r = verity_parse_opt_args(&as, v);
753c1fd02807cb drivers/md/dm-verity.c Sami Tolvanen 2015-11-05 1149 if (r < 0)
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1150 goto bad;
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1151 }
65ff5b7ddf0541 drivers/md/dm-verity.c Sami Tolvanen 2015-03-18 1152
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1153 v->hash_per_block_bits =
553d8fe029a561 drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1154 __fls((1 << v->hash_dev_block_bits) / v->digest_size);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1155
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1156 v->levels = 0;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1157 if (v->data_blocks)
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1158 while (v->hash_per_block_bits * v->levels < 64 &&
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1159 (unsigned long long)(v->data_blocks - 1) >>
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1160 (v->hash_per_block_bits * v->levels))
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1161 v->levels++;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1162
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1163 if (v->levels > DM_VERITY_MAX_LEVELS) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1164 ti->error = "Too many tree levels";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1165 r = -E2BIG;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1166 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1167 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1168
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1169 hash_position = v->hash_start;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1170 for (i = v->levels - 1; i >= 0; i--) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1171 sector_t s;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1172 v->hash_level_block[i] = hash_position;
b1bf2de0727193 drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1173 s = (v->data_blocks + ((sector_t)1 << ((i + 1) * v->hash_per_block_bits)) - 1)
b1bf2de0727193 drivers/md/dm-verity.c Mikulas Patocka 2013-07-10 1174 >> ((i + 1) * v->hash_per_block_bits);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1175 if (hash_position + s < hash_position) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1176 ti->error = "Hash device offset overflow";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1177 r = -E2BIG;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1178 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1179 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1180 hash_position += s;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1181 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1182 v->hash_blocks = hash_position;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1183
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1184 v->bufio = dm_bufio_client_create(v->hash_dev->bdev,
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1185 1 << v->hash_dev_block_bits, 1, sizeof(struct buffer_aux),
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1186 dm_bufio_alloc_callback, NULL);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1187 if (IS_ERR(v->bufio)) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1188 ti->error = "Cannot initialize dm-bufio";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1189 r = PTR_ERR(v->bufio);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1190 v->bufio = NULL;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1191 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1192 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1193
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1194 if (dm_bufio_get_device_size(v->bufio) < v->hash_blocks) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1195 ti->error = "Hash device is too small";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1196 r = -E2BIG;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1197 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1198 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1199
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1200 /* WQ_UNBOUND greatly improves performance when running on ramdisk */
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1201 v->verify_wq = alloc_workqueue("kverityd", WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus());
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1202 if (!v->verify_wq) {
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1203 ti->error = "Cannot allocate workqueue";
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1204 r = -ENOMEM;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1205 goto bad;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1206 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1207
30187e1d48a258 drivers/md/dm-verity-target.c Mike Snitzer 2016-01-31 1208 ti->per_io_data_size = sizeof(struct dm_verity_io) +
d1ac3ff008fb9a drivers/md/dm-verity-target.c Gilad Ben-Yossef 2017-02-19 1209 v->ahash_reqsize + v->digest_size * 2;
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1210
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1211 r = verity_fec_ctr(v);
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1212 if (r)
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1213 goto bad;
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1214
30187e1d48a258 drivers/md/dm-verity-target.c Mike Snitzer 2016-01-31 1215 ti->per_io_data_size = roundup(ti->per_io_data_size,
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1216 __alignof__(struct dm_verity_io));
a739ff3f543afb drivers/md/dm-verity-target.c Sami Tolvanen 2015-12-03 1217
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1218 return 0;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1219
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1220 bad:
88cd3e6cfac915 drivers/md/dm-verity-target.c Jaskaran Khurana 2019-07-17 1221
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1222 verity_dtr(ti);
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1223
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1224 return r;
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1225 }
a4ffc152198efb drivers/md/dm-verity.c Mikulas Patocka 2012-03-28 1226
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months