23 Sep, 2009

25 commits

  • Fix the following 'make includecheck' warning:

    drivers/vlynq/vlynq.c: linux/device.h is included more than once.

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Florian Fainelli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jaswinder Singh Rajput
     
  • qnx4 wrte support has never been fully implement, is broken since the dawn
    of time and hasn't been actively developed since before git history
    started.

    Instead of letting it further bitrot and complicate API transition (like
    the new truncate code) remove it.

    Signed-off-by: Christoph Hellwig
    Cc: Anders Larsen
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • do_sync_write() does the right thing for turning the aio_writev method
    into a normal non-vectored synchronous write, no need to duplicate it in
    ntfs.

    Signed-off-by: Christoph Hellwig
    Acked-by: Anton Altaparmakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Split the anonfd interface into a bare file pointer creation one, and a
    file pointer creation plus install one.

    There are cases, like the usage of eventfds inside other kernel
    interfaces, where the file pointer created by anonfd needs to be used
    inside the initialization of other structures.

    As it is right now, as soon as anon_inode_getfd() returns, the kenrle can
    race with userspace closing the newly installed file descriptor.

    This patch, while keeping the old anon_inode_getfd(), introduces a new
    anon_inode_getfile() (whose services are reused in anon_inode_getfd())
    that allows to split the file creation phase and the fd install one.

    Once all the kernel structures are initialized, the code can call the
    proper fd_install().

    Gregory manifested the need for something like this inside KVM.

    Signed-off-by: Davide Libenzi
    Cc: Alexander Viro
    Cc: James Morris
    Cc: Peter Zijlstra
    Cc: Gregory Haskins
    Acked-by: Serge Hallyn
    Acked-by: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davide Libenzi
     
  • On Saturday 01 August 2009 00:30:39 Mail Delivery Subsystem wrote:
    > Delivery to the following recipient failed permanently:
    >
    > linware@sh.cvut.cz
    >
    > Technical details of permanent failure:
    > Google tried to deliver your message, but it was rejected by the recipient
    > domain. We recommend contacting the other email provider for further
    > information about the cause of this error. The error that the other server
    > returned was: 450 450 : Recipient address rejected:
    > undeliverable address: unknown user: "linware" (state 14).

    Cc: Petr Vandrovec
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bartlomiej Zolnierkiewicz
     
  • As mentioned in Documentation/CodingStyle, move EXPORT* macro's
    to the line immediately after the closing function brace line.

    Also, move the __initcall() similarly.

    Signed-off-by: H Hartley Sweeten
    Cc: Zach Brown
    Cc: Benjamin LaHaise
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     
  • gcc permitting variable length arrays makes the current construct used for
    BUILD_BUG_ON() useless, as that doesn't produce any diagnostic if the
    controlling expression isn't really constant. Instead, this patch makes
    it so that a bit field gets used here. Consequently, those uses where the
    condition isn't really constant now also need fixing.

    Note that in the gfp.h, kmemcheck.h, and virtio_config.h cases
    MAYBE_BUILD_BUG_ON() really just serves documentation purposes - even if
    the expression is compile time constant (__builtin_constant_p() yields
    true), the array is still deemed of variable length by gcc, and hence the
    whole expression doesn't have the intended effect.

    [akpm@linux-foundation.org: make arch/sparc/include/asm/vio.h compile]
    [akpm@linux-foundation.org: more nonsensical assertions in tpm.c..]
    Signed-off-by: Jan Beulich
    Cc: Andi Kleen
    Cc: Rusty Russell
    Cc: Catalin Marinas
    Cc: "David S. Miller"
    Cc: Rajiv Andrade
    Cc: Mimi Zohar
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • According to Documentation/CodingStyle the EXPORT* macro should follow
    immediately after the closing function brace line.

    Also, mark_buffer_async_write_endio() and do_thaw_all() are not used
    elsewhere so they should be marked as static.

    In addition, file_fsync() is actually in fs/sync.c so move the EXPORT* to
    that file.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     
  • We have had a report of bad memory allocation latency during DVD-RAM (UDF)
    writing. This is causing the user's desktop session to become unusable.

    Jan tracked the cause of this down to UDF inode reclaim blocking:

    gnome-screens D ffff810006d1d598 0 20686 1
    ffff810006d1d508 0000000000000082 ffff810037db6718 0000000000000800
    ffff810006d1d488 ffffffff807e4280 ffffffff807e4280 ffff810006d1a580
    ffff8100bccbc140 ffff810006d1a8c0 0000000006d1d4e8 ffff810006d1a8c0
    Call Trace:
    [] io_schedule+0x63/0xa5
    [] sync_buffer+0x3b/0x3f
    [] __wait_on_bit+0x47/0x79
    [] out_of_line_wait_on_bit+0x6a/0x77
    [] __wait_on_buffer+0x1f/0x21
    [] __bread+0x70/0x86
    [] :udf:udf_tread+0x38/0x3a
    [] :udf:udf_update_inode+0x4d/0x68c
    [] :udf:udf_write_inode+0x1d/0x2b
    [] __writeback_single_inode+0x1c0/0x394
    [] write_inode_now+0x7d/0xc4
    [] :udf:udf_clear_inode+0x3d/0x53
    [] clear_inode+0xc2/0x11b
    [] dispose_list+0x5b/0x102
    [] shrink_icache_memory+0x1dd/0x213
    [] shrink_slab+0xe3/0x158
    [] try_to_free_pages+0x177/0x232
    [] __alloc_pages+0x1fa/0x392
    [] alloc_page_vma+0x176/0x189
    [] __do_fault+0x10c/0x417
    [] handle_mm_fault+0x466/0x940
    [] do_page_fault+0x676/0xabf

    This blocks with iprune_mutex held, which then blocks other reclaimers:

    X D ffff81009d47c400 0 17285 14831
    ffff8100844f3728 0000000000000086 0000000000000000 ffff81000000e288
    ffff81000000da00 ffffffff807e4280 ffffffff807e4280 ffff81009d47c400
    ffffffff805ff890 ffff81009d47c740 00000000844f3808 ffff81009d47c740
    Call Trace:
    [] __mutex_lock_slowpath+0x72/0xa9
    [] mutex_lock+0x1e/0x22
    [] shrink_icache_memory+0x49/0x213
    [] shrink_slab+0xe3/0x158
    [] try_to_free_pages+0x177/0x232
    [] __alloc_pages+0x1fa/0x392
    [] alloc_pages_current+0xd1/0xd6
    [] __get_free_pages+0xe/0x4d
    [] __pollwait+0x5e/0xdf
    [] :nvidia:nv_kern_poll+0x2e/0x73
    [] do_select+0x308/0x506
    [] core_sys_select+0x1a6/0x254
    [] sys_select+0xb5/0x157

    Now I think the main problem is having the filesystem block (and do IO) in
    inode reclaim. The problem is that this doesn't get accounted well and
    penalizes a random allocator with a big latency spike caused by work
    generated from elsewhere.

    I think the best idea would be to avoid this. By design if possible, or
    by deferring the hard work to an asynchronous context. If the latter,
    then the fs would probably want to throttle creation of new work with
    queue size of the deferred work, but let's not get into those details.

    Anyway, the other obvious thing we looked at is the iprune_mutex which is
    causing the cascading blocking. We could turn this into an rwsem to
    improve concurrency. It is unreasonable to totally ban all potentially
    slow or blocking operations in inode reclaim, so I think this is a cheap
    way to get a small improvement.

    This doesn't solve the whole problem of course. The process doing inode
    reclaim will still take the latency hit, and concurrent processes may end
    up contending on filesystem locks. So fs developers should keep these
    problems in mind.

    Signed-off-by: Nick Piggin
    Cc: Jan Kara
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • Using the type bool (instead of int) for the __print_once flag in the
    printk_once() macro matches the intent of the code better, and allows the
    compiler to generate smaller code; eg a typical callsite with gcc 4.3.3 on
    i386:

    add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6 (-6)
    function old new delta
    static.__print_once 4 1 -3
    get_cpu_vendor 146 143 -3

    Saving 6 bytes of object size per callsite by slightly improving the
    readability of the source seems like a win to me.

    Signed-off-by: Roland Dreier
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roland Dreier
     
  • The act of a process becoming a session leader is a useful signal to a
    supervising init daemon such as Upstart.

    While a daemon will normally do this as part of the process of becoming a
    daemon, it is rare for its children to do so. When the children do, it is
    nearly always a sign that the child should be considered detached from the
    parent and not supervised along with it.

    The poster-child example is OpenSSH; the per-login children call setsid()
    so that they may control the pty connected to them. If the primary daemon
    dies or is restarted, we do not want to consider the per-login children
    and want to respawn the primary daemon without killing the children.

    This patch adds a new PROC_SID_EVENT and associated structure to the
    proc_event event_data union, it arranges for this to be emitted when the
    special PIDTYPE_SID pid is set.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Scott James Remnant
    Acked-by: Matt Helsley
    Cc: Oleg Nesterov
    Cc: Evgeniy Polyakov
    Acked-by: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Scott James Remnant
     
  • Make all seq_operations structs const, to help mitigate against
    revectoring user-triggerable function pointers.

    This is derived from the grsecurity patch, although generated from scratch
    because it's simpler than extracting the changes from there.

    Signed-off-by: James Morris
    Acked-by: Serge Hallyn
    Acked-by: Casey Schaufler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     
  • Fix up -Wmissing-prototypes in compileable userspace code, mainly under
    Documentation/.

    Signed-off-by: Ladinu Chandrasinghe
    Signed-off-by: Trevor Keith
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ladinu Chandrasinghe
     
  • The static code scanner "Parfait" reported this because pwm_config is
    only 3 bytes - pwm_config[3] is out of range.

    Since this code path is never called with ix == 3 (the device has no PWM4
    output) this doesn't change anything in practice. But to encourage
    testing with Parfait, lets make the warning go away...

    Signed-off-by: Roel Kluin
    Acked-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • This patch can remove spinlock from struct call_function_data, the
    reasons are below:

    1: add a new interface for cpumask named cpumask_test_and_clear_cpu(),
    it can atomically test and clear specific cpu, we can use it instead
    of cpumask_test_cpu() and cpumask_clear_cpu() and no need data->lock
    to protect those in generic_smp_call_function_interrupt().

    2: in smp_call_function_many(), after csd_lock() return, the current's
    cfd_data is deleted from call_function list, so it not have race
    between other cpus, then cfs_data is only used in
    smp_call_function_many() that must disable preemption and not from
    a hardware interrupthandler or from a bottom half handler to call,
    only the correspond cpu can use it, so it not have race in current
    cpu, no need cfs_data->lock to protect it.

    3: after 1 and 2, cfs_data->lock is only use to protect cfs_data->refs in
    generic_smp_call_function_interrupt(), so we can define cfs_data->refs
    to atomic_t, and no need cfs_data->lock any more.

    Signed-off-by: Xiao Guangrong
    Cc: Ingo Molnar
    Cc: Jens Axboe
    Cc: Nick Piggin
    Cc: Peter Zijlstra
    Acked-by: Rusty Russell
    [akpm@linux-foundation.org: use atomic_dec_return()]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xiao Guangrong
     
  • Signed-off-by: Trevor Keith
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Trevor Keith
     
  • Fix undefined behavior due to a buffer underrun if an empty string is
    written to the proc file.

    Signed-off-by: Michael Buesch
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Buesch
     
  • The user mode helper code has a race in it. call_usermodehelper_exec()
    takes an allocated subprocess_info structure, which it passes to a
    workqueue, and then passes it to a kernel thread which it creates, after
    which it calls complete to signal to the caller of
    call_usermodehelper_exec() that it can free the subprocess_info struct.

    But since we use that structure in the created thread, we can't call
    complete from __call_usermodehelper(), which is where we create the kernel
    thread. We need to call complete() from within the kernel thread and then
    not use subprocess_info afterward in the case of UMH_WAIT_EXEC. Tested
    successfully by me.

    Signed-off-by: Neil Horman
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Neil Horman
     
  • Move various magic-number definitions into magic.h.

    Signed-off-by: Nick Black
    Acked-by: Pekka Enberg
    Cc: Al Viro
    Cc: "David S. Miller"
    Cc: Casey Schaufler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Black
     
  • When syslog is not possible, at the same time there's no serial/net
    console available, it will be hard to read the printk messages. For
    example oops/panic/warning messages in shutdown phase.

    Add a printk delay feature, we can make each printk message delay some
    milliseconds.

    Setting the delay by proc/sysctl interface: /proc/sys/kernel/printk_delay

    The value range from 0 - 10000, default value is 0

    [akpm@linux-foundation.org: fix a few things]
    Signed-off-by: Dave Young
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     
  • Rename `printk_delay_msec' to `loops_per_msec', because the patch "printk:
    add printk_delay to make messages readable for some scenarios" wishes to
    more appropriately use the `printk_delay_msec' identifier.

    [akpm@linux-foundation.org: add a comment]
    Signed-off-by: Dave Young
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Young
     
  • __estimate_accuracy() was prone to integer overflow, for example if *tv ==
    {2147, 483648000} on a 32 bit computer (or even for delays as small as
    {429, 500000000} if the task is niced).

    Because the result was already forced between 0 and 100ms, the effect of
    the overflow was not too problematic, but the use of the hrtimer range
    feature was not optimal in overflow cases.

    This patch ensures that there can not be an integer overflow in this
    function.

    Signed-off-by: Guillaume Knispel
    Cc: Alexander Viro
    Cc: Arjan van de Ven
    Cc: Thomas Gleixner
    Cc: Heiko Carstens
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guillaume Knispel
     
  • Current lkdtm code puts a probe on __do_IRQ for some of the kdump test
    cases. Since __do_IRQ is deprecated, change lkdtm code to use do_IRQ
    function.

    Signed-off-by: M. Mohan Kumar
    Cc: Ankita Garg
    Cc: Ingo Molnar
    Cc: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: "David S. Miller"
    Cc: Masami Hiramatsu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    M. Mohan Kumar
     
  • This function uses signed integers for the unix_date and local variables -
    if a negative number is supplied and the leap-year condition is not met,
    month will be 0, leading to a read of day_n[-1]

    Signed-off-by: Roel Kluin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • of the form

    include/net/inet_sock.h:208: warning: ISO C90 forbids mixed declarations and code

    Cc: Johannes Berg
    Acked-by: Vegard Nossum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

22 Sep, 2009

15 commits

  • …/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf_event, powerpc: Fix compilation after big perf_counter rename

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vegard/kmemcheck:
    kmemcheck: add missing braces to do-while in kmemcheck_annotate_bitfield
    kmemcheck: update documentation
    kmemcheck: depend on HAVE_ARCH_KMEMCHECK
    kmemcheck: remove useless check
    kmemcheck: remove duplicated #include

    Linus Torvalds
     
  • * 'for-2.6.32' of git://linux-nfs.org/~bfields/linux: (68 commits)
    nfsd4: nfsv4 clients should cross mountpoints
    nfsd: revise 4.1 status documentation
    sunrpc/cache: avoid variable over-loading in cache_defer_req
    sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req
    nfsd: return success for non-NFS4 nfs4_state_start
    nfsd41: Refactor create_client()
    nfsd41: modify nfsd4.1 backchannel to use new xprt class
    nfsd41: Backchannel: Implement cb_recall over NFSv4.1
    nfsd41: Backchannel: cb_sequence callback
    nfsd41: Backchannel: Setup sequence information
    nfsd41: Backchannel: Server backchannel RPC wait queue
    nfsd41: Backchannel: Add sequence arguments to callback RPC arguments
    nfsd41: Backchannel: callback infrastructure
    nfsd4: use common rpc_cred for all callbacks
    nfsd4: allow nfs4 state startup to fail
    SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous
    nfsd4: fix null dereference creating nfsv4 callback client
    nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition
    nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel
    sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)
    trivial: fix typo in aic7xxx comment
    trivial: fix comment typo in drivers/ata/pata_hpt37x.c
    trivial: typo in kernel-parameters.txt
    trivial: fix typo in tracing documentation
    trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c
    trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c
    trivial: remove unnecessary semicolons
    trivial: Fix duplicated word "options" in comment
    trivial: kbuild: remove extraneous blank line after declaration of usage()
    trivial: improve help text for mm debug config options
    trivial: doc: hpfall: accept disk device to unload as argument
    trivial: doc: hpfall: reduce risk that hpfall can do harm
    trivial: SubmittingPatches: Fix reference to renumbered step
    trivial: fix typos "man[ae]g?ment" -> "management"
    trivial: media/video/cx88: add __init/__exit macros to cx88 drivers
    trivial: fix typo in CONFIG_DEBUG_FS in gcov doc
    trivial: fix missing printk space in amd_k7_smp_check
    trivial: fix typo s/ketymap/keymap/ in comment
    trivial: fix typo "to to" in multiple files
    trivial: fix typos in comments s/DGBU/DBGU/
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: Remove duplicate Kconfig entry
    HID: consolidate connect and disconnect into core code
    HID: fix non-atomic allocation in hid_input_report

    Linus Torvalds
     
  • Add a driver for the the Consumer IR (CIR) functionality of the Winbond
    WPCD376I chipset (found on e.g. Intel DG45FC motherboards).

    Signed-off-by: David Härdeman
    Reviewed-by: Jesse Barnes
    Cc: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Härdeman
     
  • The shutdown method is used by the winbond cir driver to setup the
    hardware for wake-from-S5.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: David Härdeman
    Cc: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Härdeman
     
  • On resume from suspend, the driver currently resets the logical state as
    if it was brought up from halt. This patch uses the
    dev_pm_ops.resume/restore methods to synchronize the hardware with the
    memorized logical state, in effect bringing back the accelerometer and
    backlight to the state prior to suspend. Works for both suspend to ram
    and hibernation. The patch has zero effect on the running state.

    Signed-off-by: Henrik Rydberg
    Cc: Nicolas Boichat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Rydberg
     
  • If already requested, gpio_data and irq should be freed in the case of an
    error.

    Signed-off-by: Roel Kluin
    Acked-by: Jonathan Cameron
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Roel Kluin
     
  • Occasionally it is helpful to be able to turn a temperature sensor off
    (for example if it's making unwanted electrical noise). This patch
    adds a sysfs node to put any adm1021 compatible device into low power mode.

    Signed-off-by: Michael Abbott
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Abbott
     
  • The ADM1023 temperature sensor supports higher resolution for its external
    sensor (sensitivity of 1/8 deg C). This patch makes this higher
    resolution available through the appropriate temperature sysfs nodes.

    Curiously, this functionality was available in the 2.4 kernel driver (but
    formatted in a less helpful manner).

    Cc: Jean Delvare
    Signed-off-by: Michael Abbott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Abbott
     
  • Signed-off-by: Daniel Mack
    Acked-by: Pavel Machek
    Cc: Eric Piel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Mack
     
  • This enabled power management functions for the SPI transport layer of the
    lis3 devices. The device's suspend mode is only entered in case no wakeup
    threshold has been given. In this case, the device is supposed to wake up
    the system and must thus not be put to deep sleep.

    [randy.dunlap@oracle.com: fix lis3-spi for CONFIG_PM=n]
    Signed-off-by: Daniel Mack
    Acked-by: Pavel Machek
    Cc: Eric Piel
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Mack
     
  • This offers a way for platforms to define flags and thresholds for the
    free-fall/wakeup functions of the lis302d chips.

    More registers needed to be seperated as they are specific to the

    Signed-off-by: Daniel Mack
    Acked-by: Pavel Machek
    Cc: Eric Piel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Mack
     
  • Bit 0x80 in CTRL_REG3 is an ACTIVE_LOW rather than an ACTIVE_HIGH
    function, I got that wrong during my last change.

    Signed-off-by: Daniel Mack
    Acked-by: Pavel Machek
    Cc: Eric Piel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Mack