lkml.org 
[lkml]   [2021]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v6] i2c: virtio: add a virtio i2c frontend driver
    Hi Jie,

    Thank you for the patch! Perhaps something to improve:

    [auto build test WARNING on wsa/i2c/for-next]
    [also build test WARNING on vhost/linux-next linux/master linus/master v5.12-rc1 next-20210303]
    [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/Jie-Deng/i2c-virtio-add-a-virtio-i2c-frontend-driver/20210304-100543
    base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-next
    config: xtensa-randconfig-s031-20210304 (attached as .config)
    compiler: xtensa-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.3-245-gacc5c298-dirty
    # https://github.com/0day-ci/linux/commit/bb645653b6d7750a026229726f8d9d0371457ac6
    git remote add linux-review https://github.com/0day-ci/linux
    git fetch --no-tags linux-review Jie-Deng/i2c-virtio-add-a-virtio-i2c-frontend-driver/20210304-100543
    git checkout bb645653b6d7750a026229726f8d9d0371457ac6
    # 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=xtensa

    If you fix the issue, kindly add following tag as appropriate
    Reported-by: kernel test robot <lkp@intel.com>


    "sparse warnings: (new ones prefixed by >>)"
    >> drivers/i2c/busses/i2c-virtio.c:78:47: sparse: sparse: invalid assignment: |=
    >> drivers/i2c/busses/i2c-virtio.c:78:47: sparse: left side has type restricted __le32
    >> drivers/i2c/busses/i2c-virtio.c:78:47: sparse: right side has type int

    vim +78 drivers/i2c/busses/i2c-virtio.c

    59
    60 static int virtio_i2c_send_reqs(struct virtqueue *vq,
    61 struct virtio_i2c_req *reqs,
    62 struct i2c_msg *msgs, int nr)
    63 {
    64 struct scatterlist *sgs[3], out_hdr, msg_buf, in_hdr;
    65 int i, outcnt, incnt, err = 0;
    66 u8 *buf;
    67
    68 for (i = 0; i < nr; i++) {
    69 if (!msgs[i].len)
    70 break;
    71
    72 /* Only 7-bit mode supported for this moment. For the address format,
    73 * Please check the Virtio I2C Specification.
    74 */
    75 reqs[i].out_hdr.addr = cpu_to_le16(msgs[i].addr << 1);
    76
    77 if (i != nr - 1)
    > 78 reqs[i].out_hdr.flags |= VIRTIO_I2C_FLAGS_FAIL_NEXT;
    79
    80 outcnt = incnt = 0;
    81 sg_init_one(&out_hdr, &reqs[i].out_hdr, sizeof(reqs[i].out_hdr));
    82 sgs[outcnt++] = &out_hdr;
    83
    84 buf = kzalloc(msgs[i].len, GFP_KERNEL);
    85 if (!buf)
    86 break;
    87
    88 reqs[i].buf = buf;
    89 sg_init_one(&msg_buf, reqs[i].buf, msgs[i].len);
    90
    91 if (msgs[i].flags & I2C_M_RD) {
    92 sgs[outcnt + incnt++] = &msg_buf;
    93 } else {
    94 memcpy(reqs[i].buf, msgs[i].buf, msgs[i].len);
    95 sgs[outcnt++] = &msg_buf;
    96 }
    97
    98 sg_init_one(&in_hdr, &reqs[i].in_hdr, sizeof(reqs[i].in_hdr));
    99 sgs[outcnt + incnt++] = &in_hdr;
    100
    101 err = virtqueue_add_sgs(vq, sgs, outcnt, incnt, &reqs[i], GFP_KERNEL);
    102 if (err < 0) {
    103 pr_err("failed to add msg[%d] to virtqueue.\n", i);
    104 kfree(reqs[i].buf);
    105 reqs[i].buf = NULL;
    106 break;
    107 }
    108 }
    109
    110 return i;
    111 }
    112

    ---
    0-DAY CI Kernel Test Service, Intel Corporation
    https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
    [unhandled content-type:application/gzip]
    \
     
     \ /
      Last update: 2021-03-04 06:45    [W:4.811 / U:0.380 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site