Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Mar 2011 10:03:29 +0100
From:      Martin Matuska <mm@FreeBSD.org>
To:        Michael Moll <kvedulv@kvedulv.de>
Cc:        Roger Hammerstein <cheeky.m@live.com>, pjd@freebsd.org, freebsd-sparc64@freebsd.org, Marius Strobl <marius@alchemy.franken.de>
Subject:   Re: sparc64 hang with zfs v28
Message-ID:  <4D8B08E1.5060008@FreeBSD.org>
In-Reply-To: <20110323232411.GC82490@darkthrone.kvedulv.de>
References:  <BAY147-w7342A790723770DCE8BD4F9C00@phx.gbl> <BAY147-w229E76D137B7A0DCEB3696F9C70@phx.gbl> <20110307192239.GA31314@alchemy.franken.de> <BAY147-w5926709E28BF613C663D48F9C90@phx.gbl> <20110310185423.GA50419@alchemy.franken.de> <20110319152838.GA8594@alchemy.franken.de> <20110321175632.GA19345@darkthrone.kvedulv.de> <20110321175933.GD2086@garage.freebsd.pl> <BAY147-w266A8BF89A940BDD569D2EF9B40@phx.gbl> <20110322191117.GH15528@alchemy.franken.de> <20110323232411.GC82490@darkthrone.kvedulv.de>

next in thread | previous in thread | raw e-mail | index | archive | help
zfs_ioctl_compat_post() calls depending on the ioctl
zfs_ioctl_compat_fix_stats() or zfs_ioctl_compat_pool_get_props()

Both functions unpack the "zc->zc_nvlist_dst" into "nv" at the very
beginning and I might be missing something here (works very well on
i386/amd64) or there might be a problem elsewhere.

nvlist_unpack() from libnvpair (nvpair.c) calls nvlist_xunpack(),
issuing a nvlist_xalloc(), followerd by a nvlist_common() in
NVS_OP_DECODE mode - that's where it dies.
nvlist_common() deals directly with endianess.

sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c
sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c

Dňa 24.03.2011 00:24, Michael Moll  wrote / napísal(a):
> Hi All,
> 
> On Tue, Mar 22, 2011 at 08:11:17PM +0100, Marius Strobl wrote:
> 
>> 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.
> 
> That looks good, I will test more tomorrow but when netbooting I can
> import a zpool now. The only thing is that when upgrading the kernel and
> using the old world it still hangs:
> http://space.kvedulv.de/zfs_v28/at.txt
> 
> zfs_ioctl_compat_post() is probably the problematic function.
> 
> Regards



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D8B08E1.5060008>