Linux 3.6 compat: Remove `struct zone` hack

Linux and Solaris both define `struct zone`, but for different purposes.
In Linux, `struct zone` is used to describe different regions of memory
while on Solaris, `struct zone` is used to describe containers. This
caused a conflict that was originally worked around by renaming the
Linux definitions to `struct Xzone`. This caused a build failure on
Linux 3.6. The Solaris code declares `struct zone` as a convention, but
in reality, it depends on the typedef zone_t, not `struct zone`. As a
consequence, we can workaround this issue by making `struct zone` into a
nameless struct, which permits the build process to succeed on Linux
3.6.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Print lockdep_init_map_ptr instead of lockdep_init_map

This corrects a typo.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Linux 3.7 compat: delayed_work_timer_fn is now GPL-exported

torvalds/linux@d8e794dfd51c368ed3f686b7f4172830b60ae47b made
delayed_work_timer_fn() a GPL-exported symbol. This has forced
CDDL-licensed out-of-tree modules to adopt workarounds. ZFSOnLinux
created a new interface in the Solaris Porting Layer that provides this
functionality reimplemnted this functionality with the following
commits:

zfsonlinux/spl@d9acd930b52503582425c6398fc8dbc1d7d4a01b
zfsonlinux/zfs@2ae10319624869eef0954cdfcdb6f5e33cba2e09

dtrace4linux currently handles GPL-exported symbols by invoking them
anyway. This prevents dtrace4linux from being redistributable in binary
form. ZFSOnLinux and dtrace4linux share common porting issues, but they
currently implement compatibility code independently of one another. My
hope is that dtrace4linux will adopt the ZFSOnLinux Solaris Porting
Layer, which should resolve such issues. With that said, it is easier to
refactor a module that works than it is to refactor one that does not.
That is why I am tentatively extending the approach currently used to
handle GPL-exported symbols to cover delayed_work_timer_fn().

Signed-off-by: Richard Yao <ryao@gentoo.org>
Linux 3.8 compat: Some probe locations have been removed

sdt_add_locator is being called against some things that no longer
exist. I am adding preprocessor directives to fix that.

Signed-off-by: Richard Yao <ryao@gentoo.org>
     811* Various: User-mode DTrace compiles on ARM (dtrace cmd runs
          but does not currently get passed the USDT behavior); some
	  stuff stubbed out in libproc.
Needed for ARM.
     811* Various: User-mode DTrace compiles on ARM (dtrace cmd runs
          but does not currently get passed the USDT behavior); some
	  stuff stubbed out in libproc.
     815* libdtrace/dt_link.c: Start to implement dt_modtext for ARM.
     815* libdtrace/dt_link.c: Start to implement dt_modtext for ARM.
     816* Various: Changes to compile on 3.6.8/ARM/RaspberryPi kernel.
          ARM is still no good to run. This build *should* compile
	  apart from the very last section on divmod64.c processing,
	  but am releasing to keep current. Theres still a lot
	  of execution time work to do.
     817* linux/sys/regset.h: Fix for i386 build after rearranging for
          ARM.
     818* dtrace.c: dtrace_probe: When checking for Xen probes with
     interrupts disabled, be careful of deref of null ptr.
     818* dtrace.c: dtrace_probe: When checking for Xen probes with
     interrupts disabled, be careful of deref of null ptr.
     819* driver/dtrace_linux.c: Fix xtime_cache_ptr so that
          the timestamp function works on Ubuntu 12.04 (or any >= 3.4
	  kernel).