compat: declare kmalloc_array() through LINUX_BACKPORT()

This fixes compilation with Debian 3.2 kernels that
cherry picked the commit that added that call (a8203725).

commit a8203725dfded5c1f79dca3368a4a273e24b59bb
Author: Xi Wang <xi.wang@gmail.com>
Date:   Mon Mar 5 15:14:41 2012 -0800

    slab: introduce kmalloc_array()

    Introduce a kmalloc_array() wrapper that performs integer overflow
    checking without zeroing the memory.

    Suggested-by: Andrew Morton <akpm@linux-foundation.org>
    Suggested-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Xi Wang <xi.wang@gmail.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: David Rientjes <rientjes@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Pekka Enberg <penberg@kernel.org>

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat: declare eth_hw_addr_random() under LINUX_BACKPORT()

Debian kernels cherry picked the commit that added this,
so LINUX_BACKPORT() comes to the rescue.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat: backport ktime_get_monotonic_offset()

The commit a80b83b7 exported ktime_get_monotonic_offset()
but note that this was already in place on the header
files declared as extern, it was just never exported.
To work around the double possible declaration issue
with older kernels fortunately the LINUX_BACKPORT()
macro comes to the rescue by encofring our version
to be declared and used in backport code. Note that
this was added due to commit c61eef72 added as of
v3.8 for DRM drivers that need access to timestamps that
do no do not jump, unfortunately for older kernels we
can't port that since it requires access to a static
variable on the kernel, so just use the timestamps that
jump.

mcgrof@frijol ~/linux-stable (git::master)$ git describe --contains a80b83b7
v3.5-rc6~10^2~15^2~30

mcgrof@frijol ~/linux-stable (git::master)$ git describe --contains c61eef72
v3.8-rc1~42^2~170

commit a80b83b7b8456e9b475346c2e01d7e210883208c
Author: John Stultz <john.stultz@linaro.org>
Date:   Fri Feb 3 00:19:07 2012 -0800

    Input: add infrastructure for selecting clockid for event time stamps

    As noted by Arve and others, since wall time can jump backwards, it is
    difficult to use for input because one cannot determine if one event
    occurred before another or for how long a key was pressed.

    However, the timestamp field is part of the kernel ABI, and cannot be
    changed without possibly breaking existing users.

    This patch adds a new IOCTL that allows a clockid to be set in the
    evdev_client struct that will specify which time base to use for event
    timestamps (ie: CLOCK_MONOTONIC instead of CLOCK_REALTIME).

    For now we only support CLOCK_MONOTONIC and CLOCK_REALTIME, but
    in the future we could support other clockids if appropriate.

    The default remains CLOCK_REALTIME, so we don't change the ABI.

    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Reviewed-by: Daniel Kurtz <djkurtz@google.com>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

commit c61eef726a78ae77b6ce223d01ea2130f465fe5c
Author: Imre Deak <imre.deak@intel.com>
Date:   Tue Oct 23 18:53:26 2012 +0000

    drm: add support for monotonic vblank timestamps

    Jumps in the vblank and page flip event timestamps cause trouble for
    clients, so we should avoid them. The timestamp we get currently with
    gettimeofday can jump, so use instead monotonic timestamps.

    For backward compatibility use a module flag to revert back to using
    gettimeofday timestamps. Add also a DRM_CAP_TIMESTAMP_MONOTONIC flag
    that is simply a read only version of the module flag, so that clients
    can query this without depending on sysfs.

    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>