[linux-cifs-client] Re: cifs on ARM?

Steve French smfltc at us.ibm.com
Fri Oct 21 20:40:36 GMT 2005


Looking at the smb dumped in your log it looks like endian or alignment 
problems but not one that shows up on other big endian architectures.

Are you running arm bigendian or little endian (apparently they can be 
configured either way)?

Please turn on smb tracing (or send a binary tcpdump or ethereal trace 
file):
    echo 1 > /proc/fs/cifs/traceSMB
so I can see what I sent on the wire in the negotiate protocol request 
(the response you show from the server looks like it rejected the 
offerred dialects - as it might if the server were pre-NT4 - such as 
OS/2 or DOS server).  Assuming that your server is more recent than 
1995, then I expect that what was sent from the client in the SMB 
negotiate protocol request (the first SMB) is what we need to look at - 
which is why I would like you to turn on the traceSMB setting.

In addition, it would be helpful to reenable the length check (roughly 
line 424 of fs/cifs/misc.c) and make it log all the time (cERROR) rather 
than only when debug messages (/proc/fs/cifs/cifsFYI) are enabled by 
changing the line from:

    cFYI(0,
             ("Entering checkSMB with Length: %x, smb_buf_length: %x ",
              length, len));

to

    cERROR(1,
            ("Entering checkSMB with Length: %x, smb_buf_length: %x ",
              length, len));

It would not hurt to turn on cifs debugging ("echo 7 > 
/proc/fs/cifs/cifsFYI)") before the mount (which will allow more 
information to be dumped).


More information about the linux-cifs-client mailing list