16 Aug, 2008

1 commit


14 Aug, 2008

1 commit


13 Aug, 2008

38 commits

  • fix:

    WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
    #46: FILE: kernel/spinlock.c:326:
    +EXPORT_SYMBOL(_spin_lock_nest_lock);

    total: 0 errors, 1 warnings, 26 lines checked

    Signed-off-by: Andrew Morton
    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar

    Andrew Morton
     
  • Ingo Molnar
     
  • fix:

    kernel/built-in.o: In function `lockdep_stats_show':
    lockdep_proc.c:(.text+0x3cb2f): undefined reference to `lockdep_count_forward_deps'
    kernel/built-in.o: In function `l_show':
    lockdep_proc.c:(.text+0x3d02b): undefined reference to `lockdep_count_forward_deps'
    lockdep_proc.c:(.text+0x3d047): undefined reference to `lockdep_count_backward_deps'

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Linus Torvalds
     
  • * 'for-2.6.27' of git://linux-nfs.org/~bfields/linux:
    fs/nfsd/export.c: Adjust error handling code involving auth_domain_put
    MAINTAINERS: mention lockd and sunrpc in nfs entries
    lockd: trivial sparse endian annotations

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/ehca: Discard double CQE for one WR
    IB/ehca: Check idr_find() return value
    IB/ehca: Repoll CQ on invalid opcode
    IB/ehca: Rename goto label in ehca_poll_cq_one()
    IB/ehca: Update qp_state on cached modify_qp()
    IPoIB/cm: Use vmalloc() to allocate rx_rings

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] use bcd2bin/bin2bcd
    [IA64] Ensure cpu0 can access per-cpu variables in early boot code

    Linus Torvalds
     
  • Various cleanup the drivers/firmware/memmap (after review by AKPM):

    - fix kdoc to conform to the standard
    - move kdoc from header to implementation files
    - remove superfluous WARN_ON() after kmalloc()
    - WARN_ON(x); if (!x) -> if(!WARN_ON(x))
    - improve some comments

    Signed-off-by: Bernhard Walle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bernhard Walle
     
  • My Sun Netra T1 AC200 has one of these... bit harsh not letting me use it
    and all :)

    ==========
    alex@woodchuck:~$ lspci -nn
    00:01.0 PCI bridge [0604]: Sun Microsystems Computer Corp. Simba Advanced PCI Bridge [108e:5000] (rev 13)
    00:01.1 PCI bridge [0604]: Sun Microsystems Computer Corp. Simba Advanced PCI Bridge [108e:5000] (rev 13)
    01:03.0 Non-VGA unclassified device [0000]: ALi Corporation M7101 Power Management Controller [PMU] [10b9:7101]
    01:05.1 Ethernet controller [0200]: Sun Microsystems Computer Corp. RIO GEM [108e:1101] (rev 01)
    01:05.3 USB Controller [0c03]: Sun Microsystems Computer Corp. RIO USB [108e:1103] (rev 01)
    01:07.0 ISA bridge [0601]: ALi Corporation M1533/M1535 PCI to ISA Bridge [Aladdin IV/V/V+] [10b9:1533]
    01:0c.0 Bridge [0680]: Sun Microsystems Computer Corp. RIO EBUS [108e:1100] (rev 01)
    01:0c.1 Ethernet controller [0200]: Sun Microsystems Computer Corp. RIO GEM [108e:1101] (rev 01)
    01:0c.3 USB Controller [0c03]: Sun Microsystems Computer Corp. RIO USB [108e:1103] (rev 01)
    01:0d.0 IDE interface [0101]: ALi Corporation M5229 IDE [10b9:5229] (rev c3)
    02:08.0 SCSI storage controller [0100]: LSI Logic / Symbios Logic 53C896/897 [1000:000b] (rev 07)
    02:08.1 SCSI storage controller [0100]: LSI Logic / Symbios Logic 53C896/897 [1000:000b] (rev 07)
    ==========

    Signed-off-by: Alexander Clouter
    Cc: Wim Van Sebroeck
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Clouter
     
  • The attached patch seems to already exist in a number of branches -- it
    keeps popping up on Google for me, and is certainly already in Debian --
    but is strangely absent from mainstream.

    The problem appears to be that the patched file ends up as part of the
    target toolchain, but unfortunately the gcc constant folding doesn't
    appear to eliminate the __invalid_size_argument_for_IOC value early
    enough. Certainly compiling C++ programs which use _IO... macros as
    constants fails without this patch.

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

    Michael Abbott
     
  • Fix printf format type warnings (seen on alpha & ia64):

    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 6 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 7 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 8 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 9 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 12 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 13 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 16 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 17 has type '__u64'
    Documentation/accounting/getdelays.c:214: warning: format '%15llu' expects type 'long long unsigned int', but argument 4 has type '__u64'
    Documentation/accounting/getdelays.c:214: warning: format '%15llu' expects type 'long long unsigned int', but argument 5 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 2 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 5 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 6 has type '__u64'
    Documentation/accounting/getdelays.c:236: warning: 'cmd_type' may be used uninitialized in this function

    Signed-off-by: Randy Dunlap
    Cc: Balbir Singh
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix differing signedness warning:

    Documentation/pcmcia/crc32hash.c:29: warning: pointer targets in passing argument 1 of 'crc32' differ in signedness

    Signed-off-by: Randy Dunlap
    Acked-by: Dominik Brodowski
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Documentation/networking/ifenslave.c:1084: warning: pointer targets in assignment differ in signedness

    >From include/linux/socket.h:
    * 1003.1g requires sa_family_t and that sa_data is char.

    and from SUSv3:
    (http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html)

    The header shall define the sockaddr structure that includes at least the following members:

    sa_family_t sa_family Address family.
    char sa_data[] Socket address (variable-length data).

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Add MODULE_LICENSE() to DocBook/procfs_example.c since modpost complained
    about a missing license there.

    Remove tty procfs removal since the creation was deleted long ago
    (http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=5ad9cb65e9b15e5b83e2dd1c10a4bcaccc4ec644).

    Signed-off-by: Randy Dunlap
    Cc:
    Cc: Sam Ravnborg
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Currently source files in the Documentation/ sub-dir can easily bit-rot
    since they are not generally buildable, either because they are hidden in
    text files or because there are no Makefile rules for them. This needs to
    be fixed so that the source files remain usable and good examples of code
    instead of bad examples.

    Add the ability to build source files that are in the Documentation/ dir.
    Add to Kconfig as "BUILD_DOCSRC" config symbol.

    Use "CONFIG_BUILD_DOCSRC=1 make ..." to build objects from the
    Documentation/ sources. Or enable BUILD_DOCSRC in the *config system.
    However, this symbol depends on HEADERS_CHECK since the header files need
    to be installed (for userspace builds).

    Built (using cross-tools) for x86-64, i386, alpha, ia64, sparc32,
    sparc64, powerpc, sh, m68k, & mips.

    Signed-off-by: Randy Dunlap
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • Collect the implementations from include/linux/byteorder/swab.h, swabb.h
    in swab.h

    The functionality provided covers:
    u16 swab16(u16 val) - return a byteswapped 16 bit value
    u32 swab32(u32 val) - return a byteswapped 32 bit value
    u64 swab64(u64 val) - return a byteswapped 64 bit value
    u32 swahw32(u32 val) - return a wordswapped 32 bit value
    u32 swahb32(u32 val) - return a high/low byteswapped 32 bit value

    Similar to above, but return swapped value from a naturally-aligned pointer
    u16 swab16p(u16 *p)
    u32 swab32p(u32 *p)
    u64 swab64p(u64 *p)
    u32 swahw32p(u32 *p)
    u32 swahb32p(u32 *p)

    Similar to above, but swap the value in-place (in-situ)
    void swab16s(u16 *p)
    void swab32s(u32 *p)
    void swab64s(u64 *p)
    void swahw32s(u32 *p)
    void swahb32s(u32 *p)

    Arches can override any of these with an optimized version by defining an
    inline in their asm/byteorder.h (example given for swab16()):

    u16 __arch_swab16() {}
    #define __arch_swab16 __arch_swab16

    Signed-off-by: Harvey Harrison
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • Switch /proc/irq/*/smp_affinity , /proc/irq/default_smp_affinity to
    seq_files.

    cat(1) reads with 1024 chunks by default, with high enough NR_CPUS, there
    will be -EINVAL.

    As side effect, there are now two less users of the ->read_proc interface.

    Signed-off-by: Alexey Dobriyan
    Cc: Paul Jackson
    Cc: Mike Travis
    Cc: Al Viro
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Short enough reads from /proc/irq/*/smp_affinity return -EINVAL for no
    good reason.

    This became noticed with NR_CPUS=4096 patches, when length of printed
    representation of cpumask becase 1152, but cat(1) continued to read with
    1024-byte chunks. bitmap_scnprintf() in good faith fills buffer, returns
    1023, check returns -EINVAL.

    Fix it by switching to seq_file, so handler will just fill buffer and
    doesn't care about offsets, length, filling EOF and all this crap.

    For that add seq_bitmap(), and wrappers around it -- seq_cpumask() and
    seq_nodemask().

    Signed-off-by: Alexey Dobriyan
    Reviewed-by: Paul Jackson
    Cc: Mike Travis
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Removed duplicated #include in
    fs/reiserfs/super.c.

    Signed-off-by: Huang Weiyi
    Signed-off-by: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Weiyi
     
  • The `size' argument was removed.

    Reported-by: Geert Uytterhoeven
    Cc: Ulrich Drepper
    Cc: Davide Libenzi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Signed-off-by: Huang Weiyi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Weiyi
     
  • Signed-off-by: Huang Weiyi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Weiyi
     
  • Signed-off-by: Uwe Kleine-König
    Cc: Ingo Molnar
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     
  • Fix wrong conversion function used by strict_strtou*

    Signed-off-by: Yi Yang
    Reported-by: Swen Schillig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yi Yang
     
  • Adjust and honor the vc_scrl_erase_char for 256 and 512 character fonts.

    It fixes the issue with disappearing cursor during scrolling
    (http://bugzilla.kernel.org/show_bug.cgi?id=11258). The issue was
    reported and tracked by Peter Hanzel.

    Signed-off-by: Krzysztof Helt
    Reported-by: Peter Hanzel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • Specify how much physically continuous, DMA capable memory will be
    allocated at driver initialization time. This allow to create framebuffer
    device with larger virtual resolution. Combine with y-panning this can be
    used to implement double buffering acceleration method.

    Signed-off-by: Stanislaw Gruszka
    Acked-by: Haavard Skinnemoen
    Acked-by: Krzysztof Helt
    Cc: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • Panning in the y-direction can be done by simply changing the DMA base
    address. This code is already in place, but FBIOPAN_DISPLAY will
    currently fail because ypanstep is 0.

    Set ypanstep to 1 to indicate that we do support y-panning and also set
    the necessary acceleration flags on AT91 (AVR32 already have them.)

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Krzysztof Helt
    Cc: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • The legacy i2c model is going away soon, so switch to the new model.

    Signed-off-by: Jean Delvare
    Acked-by: Krzysztof Helt
    Cc: Petr Vandrovec
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • Clean up the use of structure templates in i2c-matroxfb. In this case
    it's more efficient to initialize the few fields we need individually.
    This makes i2c-matroxfb.ko 16% smaller on my system.

    Signed-off-by: Jean Delvare
    Acked-by: Krzysztof Helt
    Cc: Petr Vandrovec
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • I broke an error path with d03c21ec0be7787ff6b75dcf56c0e96209ccbfbd,
    sorry about that.

    The machine will crash if the i2c_attach_client() or maven_init_client()
    calls fail, although nobody has yet reported this happening.

    Signed-off-by: Jean Delvare
    Acked-by: Krzysztof Helt
    Cc: Petr Vandrovec
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • Signed-off-by: MinChan Kim
    Acked-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    MinChan Kim
     
  • Fix preprocessor symbol so that sparse sees it and does not generate
    errors:

    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutlbpurge.c:185:11: error: undefined identifier 'GRUREGION'
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"
    drivers/misc/sgi-gru/grutables.h:286:2: error: "Unsupported architecture"

    Signed-off-by: Randy Dunlap
    Cc: Jack Steiner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Some chips appear to have the 2D engine hang during screen redraw,
    typically in a sequence of copyarea operations. This appear to be
    solved by adding a flush of the engine destination pixel cache
    and waiting for the engine to be idle before issuing the accel
    operation. The performance impact seems to be fairly small.

    Here is a trace on an RV370 (PCI device ID 0x5b64), it records the
    RBBM_STATUS register, then the source x/y, destination x/y, and
    width/height used for the copy:

    ----------------------------------------
    radeonfb_prim_copyarea: STATUS[00000140] src[210:70] dst[210:60] wh[a0:10]
    radeonfb_prim_copyarea: STATUS[00000140] src[2b8:70] dst[2b8:60] wh[88:10]
    radeonfb_prim_copyarea: STATUS[00000140] src[348:70] dst[348:60] wh[40:10]
    radeonfb_prim_copyarea: STATUS[80020140] src[390:70] dst[390:60] wh[88:10]
    radeonfb_prim_copyarea: STATUS[8002613f] src[40:80] dst[40:70] wh[28:10]
    radeonfb_prim_copyarea: STATUS[80026139] src[a8:80] dst[a8:70] wh[38:10]
    radeonfb_prim_copyarea: STATUS[80026133] src[e8:80] dst[e8:70] wh[80:10]
    radeonfb_prim_copyarea: STATUS[8002612d] src[170:80] dst[170:70] wh[30:10]
    radeonfb_prim_copyarea: STATUS[80026127] src[1a8:80] dst[1a8:70] wh[8:10]
    radeonfb_prim_copyarea: STATUS[80026121] src[1b8:80] dst[1b8:70] wh[88:10]
    radeonfb_prim_copyarea: STATUS[8002611b] src[248:80] dst[248:70] wh[68:10]
    ----------------------------------------

    When things are going fine the copies complete before the next ROP is
    even issued, but all of a sudden the 2D unit becomes active (bit 17 in
    RBBM_STATUS) and the FIFO retry (bit 13) and FIFO pipeline busy (bit
    14) are set as well. The FIFO begins to backup until it becomes full.

    What happens next is the radeon_fifo_wait() times out, and we access
    the chip illegally leading to a bus error which usually wedges the
    box. None of this makes it to the console screen, of course :-)
    radeon_fifo_wait() should be modified to reset the accelerator when
    this timeout happens instead of programming the chip anyways.

    ----------------------------------------
    radeonfb: FIFO Timeout !
    ERROR(0): Cheetah error trap taken afsr[0010080005000000] afar[000007f900800e40] TL1(0)
    ERROR(0): TPC[595114] TNPC[595118] O7[459788] TSTATE[11009601]
    ERROR(0): TPC
    ERROR(0): M_SYND(0), E_SYND(0), Privileged
    ERROR(0): Highest priority error (0000080000000000) "Bus error response from system bus"
    ERROR(0): D-cache idx[0] tag[0000000000000000] utag[0000000000000000] stag[0000000000000000]
    ERROR(0): D-cache data0[0000000000000000] data1[0000000000000000] data2[0000000000000000] data3[0000000000000000]
    ERROR(0): I-cache idx[0] tag[0000000000000000] utag[0000000000000000] stag[0000000000000000] u[0000000000000000] l[00\

    ERROR(0): I-cache INSN0[0000000000000000] INSN1[0000000000000000] INSN2[0000000000000000] INSN3[0000000000000000]
    ERROR(0): I-cache INSN4[0000000000000000] INSN5[0000000000000000] INSN6[0000000000000000] INSN7[0000000000000000]
    ERROR(0): E-cache idx[800e40] tag[000000000e049f4c]
    ERROR(0): E-cache data0[fffff8127d300180] data1[00000000004b5384] data2[0000000000000000] data3[0000000000000000]
    Ker:xnel panic - not syncing: Irrecoverable deferred error trap.
    ----------------------------------------

    Another quirk is that these copyarea calls will not happen until the
    first drivers/char/vt.c:redraw_screen() occurs. This will only happen
    if you 1) VC switch or 2) run "consolechars" or 3) unblank the screen.

    This seems to happen because until a redraw_screen() the screen scrolling
    method used by fbcon is not finalized yet. I've seen this with other fb
    drivers too.

    So if all you do is boot straight into X you will never see this bug on
    the relevant chips.

    Signed-off-by: David S. Miller
    Signed-off-by: Benjamin Herrenschmidt
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Miller
     
  • [Andrew this should replace the previous version which did not check
    the returns from the region prepare for errors. This has been tested by
    us and Gerald and it looks good.

    Bah, while reviewing the locking based on your previous email I spotted
    that we need to check the return from the vma_needs_reservation call for
    allocation errors. Here is an updated patch to correct this. This passes
    testing here.]

    Signed-off-by: Andy Whitcroft
    Tested-by: Gerald Schaefer
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • In the normal case, hugetlbfs reserves hugepages at map time so that the
    pages exist for future faults. A struct file_region is used to track when
    reservations have been consumed and where. These file_regions are
    allocated as necessary with kmalloc() which can sleep with the
    mm->page_table_lock held. This is wrong and triggers may-sleep warning
    when PREEMPT is enabled.

    Updates to the underlying file_region are done in two phases. The first
    phase prepares the region for the change, allocating any necessary memory,
    without actually making the change. The second phase actually commits the
    change. This patch makes use of this by checking the reservations before
    the page_table_lock is taken; triggering any necessary allocations. This
    may then be safely repeated within the locks without any allocations being
    required.

    Credit to Mel Gorman for diagnosing this failure and initial versions of
    the patch.

    Signed-off-by: Andy Whitcroft
    Tested-by: Gerald Schaefer
    Cc: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Whitcroft
     
  • Signed-off-by: Parag Warudkar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Parag Warudkar
     
  • These attributes are really sysdev class attributes. The incorrect
    definition leads to an oops because of recent changes which make sysdev
    attributes use a different prototype.

    Based on Andi's f718cd4add5aea9d379faff92f162571e356cc5f ("sched: make
    scheduler sysfs attributes sysdev class devices")

    Reported-by: Eric Sesterhenn
    Signed-off-by: Rabin Vincent
    Acked-by: Andi Kleen
    Cc: "Li, Shaohua"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rabin Vincent