tree:
https://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git rdma-next
head: 773349feb182515e85e5ecfa7745dcd6c37cfc91
commit: 2bba7a3cc66fbfe94a3a1955f8fe5b983bf0a183 [32/55] RDMA/core: Update write interface
to use automatic object lifetime
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
cppcheck warnings: (new ones prefixed by >>)
> drivers/infiniband/core/uverbs_cmd.c:895:15: warning: Variable
'uobj->object' is reassigned a value before the old one has been used.
[redundantAssignment]
uobj->object = mw;
^
drivers/infiniband/core/uverbs_cmd.c:893:15: note: Variable 'uobj->object'
is reassigned a value before the old one has been used.
uobj->object = mw;
^
drivers/infiniband/core/uverbs_cmd.c:895:15: note: Variable 'uobj->object'
is reassigned a value before the old one has been used.
uobj->object = mw;
^
drivers/infiniband/core/uverbs_cmd.c:1066:6: warning: Variable 'ret' is
reassigned a value before the old one has been used. [redundantAssignment]
ret = uverbs_request(attrs, &cmd, sizeof(cmd));
^
drivers/infiniband/core/uverbs_cmd.c:1064:0: note: Variable 'ret' is reassigned
a value before the old one has been used.
int ret = -EINVAL;
^
drivers/infiniband/core/uverbs_cmd.c:1066:6: note: Variable 'ret' is reassigned
a value before the old one has been used.
ret = uverbs_request(attrs, &cmd, sizeof(cmd));
^
drivers/infiniband/core/uverbs_cmd.c:1897:47: warning: Shifting signed 32-bit value by
31 bits is undefined behaviour [shiftTooManyBitsSigned]
BUILD_BUG_ON(IB_USER_LAST_QP_ATTR_MASK == (1 << 31));
^
vim +895 drivers/infiniband/core/uverbs_cmd.c
852
853 static int ib_uverbs_alloc_mw(struct uverbs_attr_bundle *attrs)
854 {
855 struct ib_uverbs_alloc_mw cmd;
856 struct ib_uverbs_alloc_mw_resp resp;
857 struct ib_uobject *uobj;
858 struct ib_pd *pd;
859 struct ib_mw *mw;
860 int ret;
861 struct ib_device *ib_dev;
862
863 ret = uverbs_request(attrs, &cmd, sizeof(cmd));
864 if (ret)
865 return ret;
866
867 uobj = uobj_alloc(UVERBS_OBJECT_MW, attrs, &ib_dev);
868 if (IS_ERR(uobj))
869 return PTR_ERR(uobj);
870
871 pd = uobj_get_obj_read(pd, UVERBS_OBJECT_PD, cmd.pd_handle, attrs);
872 if (!pd) {
873 ret = -EINVAL;
874 goto err_free;
875 }
876
877 if (cmd.mw_type != IB_MW_TYPE_1 && cmd.mw_type != IB_MW_TYPE_2) {
878 ret = -EINVAL;
879 goto err_put;
880 }
881
882 mw = pd->device->ops.alloc_mw(pd, cmd.mw_type,
&attrs->driver_udata);
883 if (IS_ERR(mw)) {
884 ret = PTR_ERR(mw);
885 goto err_put;
886 }
887
888 mw->device = pd->device;
889 mw->pd = pd;
890 mw->uobject = uobj;
891 atomic_inc(&pd->usecnt);
892
893 uobj->object = mw;
894
895 uobj->object = mw;
896 uobj_put_obj_read(pd);
897 uobj_finalize_uobj_create(uobj, attrs);
898
899 resp.rkey = mw->rkey;
900 resp.mw_handle = uobj->id;
901 return uverbs_response(attrs, &resp, sizeof(resp));
902
903 err_put:
904 uobj_put_obj_read(pd);
905 err_free:
906 uobj_alloc_abort(uobj, attrs);
907 return ret;
908 }
909
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org