Looks good to me. Reviewed-by: Ronnie Sahlberg <lsahlber@xxxxxxxxxx> On Fri, Feb 7, 2020 at 9:33 AM Steve French <smfrench@xxxxxxxxx> wrote: > > ok - changed as suggested. Tested out ok > > See attached. > > On Thu, Feb 6, 2020 at 5:16 PM ronnie sahlberg <ronniesahlberg@xxxxxxxxx> wrote: > > > > 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@xxxxxxxxx> 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@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 > > > > -- > Thanks, > > Steve