Re: [cifs:for-next 10/11] fs/cifs/smb2pdu.c:1985:38: error: macro "memcmp" passed 18 arguments, but takes just 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It compiled and tested ok.  Is this warning a limitation of the kbuild robot?

On Thu, Feb 6, 2020 at 4:26 PM kbuild test robot <lkp@xxxxxxxxx> wrote:
>
> tree:   git://git.samba.org/sfrench/cifs-2.6.git for-next
> head:   58b322cfd219fd570d4fcc2e2eb8b5d945389d46
> commit: 3d9d8c48232a668ada5f680f70c8b3d366629ab6 [10/11] smb3: print warning once if posix context returned on open
> config: m68k-multi_defconfig (attached as .config)
> compiler: m68k-linux-gcc (GCC) 7.5.0
> reproduce:
>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout 3d9d8c48232a668ada5f680f70c8b3d366629ab6
>         # save the attached .config to linux build tree
>         GCC_VERSION=7.5.0 make.cross ARCH=m68k
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
>
> All errors (new ones prefixed by >>):
>
>    fs/cifs/smb2pdu.c: In function 'smb2_parse_contexts':
> >> fs/cifs/smb2pdu.c:1985:38: error: macro "memcmp" passed 18 arguments, but takes just 3
>         0xDE, 0x96, 0x8B, 0xCD, 0x7C}, 16) == 0)
>                                          ^
> >> fs/cifs/smb2pdu.c:1983:8: error: 'memcmp' undeclared (first use in this function); did you mean 'memchr'?
>        if (memcmp(name, (char []) {0x93, 0xAD, 0x25, 0x50,
>            ^~~~~~
>            memchr
>    fs/cifs/smb2pdu.c:1983:8: note: each undeclared identifier is reported only once for each function it appears in
>
> vim +/memcmp +1985 fs/cifs/smb2pdu.c
>
>   1951
>   1952  void
>   1953  smb2_parse_contexts(struct TCP_Server_Info *server,
>   1954                         struct smb2_create_rsp *rsp,
>   1955                         unsigned int *epoch, char *lease_key, __u8 *oplock,
>   1956                         struct smb2_file_all_info *buf)
>   1957  {
>   1958          char *data_offset;
>   1959          struct create_context *cc;
>   1960          unsigned int next;
>   1961          unsigned int remaining;
>   1962          char *name;
>   1963
>   1964          *oplock = 0;
>   1965          data_offset = (char *)rsp + le32_to_cpu(rsp->CreateContextsOffset);
>   1966          remaining = le32_to_cpu(rsp->CreateContextsLength);
>   1967          cc = (struct create_context *)data_offset;
>   1968
>   1969          /* Initialize inode number to 0 in case no valid data in qfid context */
>   1970          if (buf)
>   1971                  buf->IndexNumber = 0;
>   1972
>   1973          while (remaining >= sizeof(struct create_context)) {
>   1974                  name = le16_to_cpu(cc->NameOffset) + (char *)cc;
>   1975                  if (le16_to_cpu(cc->NameLength) == 4 &&
>   1976                      strncmp(name, SMB2_CREATE_REQUEST_LEASE, 4) == 0)
>   1977                          *oplock = server->ops->parse_lease_buf(cc, epoch,
>   1978                                                             lease_key);
>   1979                  else if (buf && (le16_to_cpu(cc->NameLength) == 4) &&
>   1980                      strncmp(name, SMB2_CREATE_QUERY_ON_DISK_ID, 4) == 0)
>   1981                          parse_query_id_ctxt(cc, buf);
>   1982                  else if ((le16_to_cpu(cc->NameLength) == 16)) {
> > 1983                          if (memcmp(name, (char []) {0x93, 0xAD, 0x25, 0x50,
>   1984                                  0x9C, 0xB4, 0x11, 0xE7, 0xB4, 0x23, 0x83,
> > 1985                                  0xDE, 0x96, 0x8B, 0xCD, 0x7C}, 16) == 0)
>   1986                                  parse_posix_ctxt(cc, NULL);
>   1987                  }
>   1988                  /* else {
>   1989                          cifs_dbg(FYI, "Context not matched with len %d\n",
>   1990                                  le16_to_cpu(cc->NameLength));
>   1991                          cifs_dump_mem("Cctxt name: ", name, 4);
>   1992                  } */
>   1993
>   1994                  next = le32_to_cpu(cc->Next);
>   1995                  if (!next)
>   1996                          break;
>   1997                  remaining -= next;
>   1998                  cc = (struct create_context *)((char *)cc + next);
>   1999          }
>   2000
>   2001          if (rsp->OplockLevel != SMB2_OPLOCK_LEVEL_LEASE)
>   2002                  *oplock = rsp->OplockLevel;
>   2003
>   2004          return;
>   2005  }
>   2006
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx



-- 
Thanks,

Steve



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux