mount_smbfs

Ian Lepore ian at freebsd.org
Sat Dec 19 01:13:06 UTC 2015


On Fri, 2015-01-23 at 13:36 -0800, John-Mark Gurney wrote:
> Warner Losh wrote this message on Fri, Jan 23, 2015 at 13:21 -0800:
> > 
> > > On Jan 23, 2015, at 11:54 AM, John-Mark Gurney <jmg at funkthat.com> wrote:
> > > 
> > > Daisuke Aoyama wrote this message on Sat, Jan 24, 2015 at 03:07 +0900:
> > > > Quick hack patch is attached.
> > > 
> > > Please use {l,b}e16dec, or if the code is suppose to be native endian,
> > > make it dependant on __NO_STRICT_ALIGNMENT and add the proper endian
> > > swap, not __arm__ as there are other arches that require the same fix...
> > 
> > If there???s just a couple of places that need this, don???t bother making them dependent
> > on __NO_STRICT_ALIGNMENT. That clutters things up a bit too much. Given the 3
> > or 4 places this is used, and the relative infrequency of the calls, just doing a memcpy
> > unconditionally is always correct and reduces the risk of one branch of the #if being
> > changed w/o the other.  Since it is already using NBENCODE(), I think that using
> > {l,b}e16enc (not dec) would be a larger code churn.
> 
> Clearly neither of us looked at the code closely...  NBENCODE should be
> rewritten to take a pointer and use le16enc...  Then memsetw should just
> call NBENCODE internally as it goes...

Well I looked at the code closely, even if it did take me almost a year
to get around to it. :)

The conclusion I reached is that alignment and endian problems should
just be turned into a non-issue by discarding the existing macro and
memsetw() function and writing a new inline function that deals purely
with bytes instead of 16-bit values.

It's up for review on phabricator at https://reviews.freebsd.org/D4622

And I'll also attach the diff to this mail for anyone who wants to test
it (which I can't do, no smb server).

-- Ian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smbfs_nb_name.diff
Type: text/x-patch
Size: 1504 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20151218/c6ec5078/attachment.bin>


More information about the freebsd-arm mailing list