sparc64 hang with zfs v28

Marius Strobl marius at alchemy.franken.de
Tue Mar 22 19:11:20 UTC 2011


On Tue, Mar 22, 2011 at 01:51:20PM -0400, Roger Hammerstein wrote:
> 
> which is:
> 1310:
> 1311:   error = put_nvlist(zc, configs);
> 1312:
> 1313:   nvlist_free(configs);
> 1314:
> 1315:   return (error);
> 1316:}
> 1317:
> 

Uhm, looks like r219089 changed some xcopy{in,out}() into
ddi_copy{in,out}(), i.e. copy{in,out}() into bcopy(), which
is just wrong for copying in data in from/out to userspace.
However, looking at the other uses of ddi_copy{in,out}() it
generally seems that ddi_copy{in,out}() should be defined to
copy{in,out}(). With the attached patch at least my simple
test cases works again. The one remaining xcopyout() in
zfs_ioctl.c then could be also replaced with a ddi_copyout().
Not sure how any of this manages to work on x86 :)

Marius

-------------- next part --------------
A non-text attachment was scrubbed...
Name: sunddi.h.diff
Type: text/x-diff
Size: 878 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-sparc64/attachments/20110322/9578f3c4/sunddi.h.bin


More information about the freebsd-sparc64 mailing list