linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ronnie sahlberg <ronniesahlberg@gmail.com>
To: Steve French <smfrench@gmail.com>
Cc: "kbuild test robot" <lkp@intel.com>,
	CIFS <linux-cifs@vger.kernel.org>,
	"Aurélien Aptel" <aaptel@suse.com>
Subject: Re: [cifs:for-next 10/11] fs/cifs/smb2pdu.c:1985:38: error: macro "memcmp" passed 18 arguments, but takes just 3
Date: Fri, 7 Feb 2020 09:16:22 +1000	[thread overview]
Message-ID: <CAN05THQ8ajLM58-dyQA0teD56Hkt7wmJMRtHB8DW1Yh5qKBrjg@mail.gmail.com> (raw)
In-Reply-To: <CAH2r5mtHY6OGMpMdpLcxZ_xyjzZHANhqr_NoeGERiFiQyfc-PQ@mail.gmail.com>

It is probably that m68k lage quite behind in GCC versions and
probably that compiler can not handle this construct:
> 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)
and you would probably need something like this:
     const char foo[] = {0x93, 0xAD, 0x25, 0x50, 0x9C, 0xB4, 0x11,
0xE7, 0xB4, 0x23, 0x83, 0xDE, 0x96, 0x8B, 0xCD, 0x7C};
     if (memcmp(name, foo, sizeof(foo)) == 0)
...

On Fri, Feb 7, 2020 at 8:48 AM Steve French <smfrench@gmail.com> wrote:
>
> 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@intel.com> 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@intel.com>
> >
> > 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@lists.01.org
>
>
>
> --
> Thanks,
>
> Steve

  reply	other threads:[~2020-02-06 23:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06 22:26 [cifs:for-next 10/11] fs/cifs/smb2pdu.c:1985:38: error: macro "memcmp" passed 18 arguments, but takes just 3 kbuild test robot
2020-02-06 22:47 ` Steve French
2020-02-06 23:16   ` ronnie sahlberg [this message]
2020-02-06 23:33     ` Steve French
2020-02-07  0:34       ` ronnie sahlberg
2020-02-07  8:12       ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAN05THQ8ajLM58-dyQA0teD56Hkt7wmJMRtHB8DW1Yh5qKBrjg@mail.gmail.com \
    --to=ronniesahlberg@gmail.com \
    --cc=aaptel@suse.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=smfrench@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).