25 May, 2010

40 commits

  • Allow the use of a .get_maintainer.conf file to control the default
    options applied when scripts/get_maintainer.pl is run.

    .get_maintainer.conf can contain any valid command-line argument.

    File contents are prepended to any additional command line arguments.

    Multiple lines may be used, blank lines ignored, # is a comment.

    Updated scripts/get_maintainer.pl version to 0.24

    Signed-off-by: Joe Perches
    Reviewed-by: Florian Mickler
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • When using --git to determine who to send a patch to, get_maintainers will
    currently include all signatures. This can include signers that simply
    report an issue or test a patch. Signers that use this tag are not
    necessarily good candidates to review new patches.

    This patch allows get_maintainers to optionally restrict output to only
    signatures that use Signed-off-by:, Acked-by:, or Reviewed-by:.

    Signed-off-by: is included because those are people who are responsible
    for the code.

    Acked-by: is questionable, but as signers that use this tag tend to be
    active linux gatekeepers, false positives are tolerable.

    Reviewed-by: is included because signers responsible for the code thought
    that the review feedback for a changeset by that signer was valuable.

    This patch has been modified from Florian's original submission to change
    the supported signature types to the canonical forms and use slightly
    different spacing. A couple of spacing issues were also corrected in the
    original source. The command line argument was also renamed.

    Original-patch-by: Florian Mickler
    Signed-off-by: Florian Mickler
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Mark static functions with noinline_for_stack

    Before:

    akpm:/usr/src/25> objdump -d lib/vsprintf.o | perl scripts/checkstack.pl
    0x00000e82 pointer [vsprintf.o]: 344
    0x0000198c pointer [vsprintf.o]: 344
    0x000025d6 scnprintf [vsprintf.o]: 216
    0x00002648 scnprintf [vsprintf.o]: 216
    0x00002565 snprintf [vsprintf.o]: 208
    0x0000267c sprintf [vsprintf.o]: 208
    0x000030a3 bprintf [vsprintf.o]: 208
    0x00003b1e sscanf [vsprintf.o]: 208
    0x00000608 number [vsprintf.o]: 136
    0x00000937 number [vsprintf.o]: 136

    After:

    akpm:/usr/src/25> objdump -d lib/vsprintf.o | perl scripts/checkstack.pl
    0x00000a7c symbol_string [vsprintf.o]: 248
    0x00000ae8 symbol_string [vsprintf.o]: 248
    0x00002310 scnprintf [vsprintf.o]: 216
    0x00002382 scnprintf [vsprintf.o]: 216
    0x0000229f snprintf [vsprintf.o]: 208
    0x000023b6 sprintf [vsprintf.o]: 208
    0x00002ddd bprintf [vsprintf.o]: 208
    0x00003858 sscanf [vsprintf.o]: 208
    0x00000625 number [vsprintf.o]: 136
    0x00000954 number [vsprintf.o]: 136

    Signed-off-by: Joe Perches
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • New parts supported:
    AD5170, AD5171, AD5172, AD5173, AD5273

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • New parts supported:
    AD5280, AD5282, ADN2860

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • New parts supported:
    AD5241, AD5242, AD5243, AD5245, AD5246, AD5247, AD5248

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • Split the bus logic out into separate files so that we can handle I2C and
    SPI busses independently. The new SPI bus logic brings in support for a
    lot more parts:

    AD5160, AD5161, AD5162, AD5165, AD5200, AD5201, AD5203,
    AD5204, AD5206, AD5207, AD5231, AD5232, AD5233, AD5235,
    AD5260, AD5262, AD5263, AD5290, AD5291, AD5292, AD5293,
    AD7376, AD8400, AD8402, AD8403, ADN2850

    [randy.dunlap@oracle.com: fix ad525X_dpot build]
    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • The possible output data is 16bits, not 8bits, so don't truncate it.

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • Macro away the duplication to make maintenance easier.

    Signed-off-by: Michael Hennerich
    Signed-off-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • Minor cleanup on duplicate __{start/stop}__ksymtab_gpl_future.

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

    Wenji Huang
     
  • Signed-off-by: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • For now, all users of ratelimit_state allocates it statically, so
    DEFINE_RATELIMIT_STATE() is enough. But, I want to use ratelimit_state
    for fs, i.e. per super_block to suppress too many error reports.

    So, this adds ratelimit_state_init() to initialize ratelimite_state
    which is dynamically allocated, instead of opencoding.

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

    OGAWA Hirofumi
     
  • ratelimit_state initialization of printk_ratelimited() seems broken. This
    fixes it by using DEFINE_RATELIMIT_STATE() to initialize spinlock
    properly.

    Signed-off-by: OGAWA Hirofumi
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     
  • For misc devices, inode->i_cdev doesn't point to the device drivers own
    data. Link between file operations and device driver internal data is
    lost. Pass pointer to misc device struct via file private data for driver
    open function use.

    Signed-off-by: Samu Onkalo
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • 32-bit Sparc used to only allow usage of 24-bit of it's atomic_t type.
    This was corrected with linux 2.6.3 when Keith M Wesolowski changed the
    implementation to use the parisc approach of having an array of spinlocks
    to protect the atomic_t.

    These warnings were also removed from the sparc implementation when the
    new implementation was merged in BKrev:402e4949VThdc6D3iaosSFUgabMfvw, but
    the warning still remained in some other places without any 24-bit-only
    atomic_t implementation inside the kernel.

    We should remove these warnings to allow users to rely on the full 32-bit
    range of atomic_t.

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

    Peter Fritzsche
     
  • The current logging macros are
    pr_, dev_, netdev_, and netif_.
    pr_ uses warning, the other use warn.

    Standardize these logging macros a bit more by adding pr_warn and
    pr_warn_ratelimited.

    Right now, there are:

    $ for level in emerg alert crit err warn warning notice info ; do \
    for prefix in pr dev netdev netif ; do \
    echo -n "${prefix}_${level}: `git grep -w "${prefix}_${level}" | wc -l` " ; \
    done ; \
    echo ; \
    done
    pr_emerg: 45 dev_emerg: 4 netdev_emerg: 1 netif_emerg: 4
    pr_alert: 24 dev_alert: 36 netdev_alert: 1 netif_alert: 6
    pr_crit: 24 dev_crit: 22 netdev_crit: 1 netif_crit: 4
    pr_err: 2013 dev_err: 8467 netdev_err: 267 netif_err: 240
    pr_warn: 0 dev_warn: 1818 netdev_warn: 126 netif_warn: 23
    pr_warning: 773 dev_warning: 0 netdev_warning: 0 netif_warning: 0
    pr_notice: 148 dev_notice: 111 netdev_notice: 9 netif_notice: 3
    pr_info: 1717 dev_info: 3007 netdev_info: 101 netif_info: 85

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

    Joe Perches
     
  • Quote from Nick piggin's about btrfs patch
    - http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg04472.html.

    "add_to_page_cache_lru is exported, so it should be used. Benefits over
    using a private pagevec: neater code, 128 bytes fewer stack used, percpu
    lru ordering is preserved, and finally don't need to flush pagevec
    before returning so batching may be shared with other LRU insertions."

    Let's use it instead of private pagevec in ntfs, too.

    Signed-off-by: Minchan Kim
    Acked-by: Anton Altaparmakov
    Cc: Nick Piggin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Minchan Kim
     
  • cached_page and lru_pvec have not been used. Let's remove the arguments.

    Signed-off-by: Minchan Kim
    Acked-by: Anton Altaparmakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Minchan Kim
     
  • gcc-4.3.3 produces the warning:
    "format not a string literal and no format arguments"

    Signed-off-by: Alex Riesen
    Cc: Trond Myklebust
    Cc: Chuck Lever
    Cc: David S. Miller
    Acked-by: Tom Talpey
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alex Riesen
     
  • Handle out-of-range indices before reading what they refer to. And don't
    access the one-past-the-end element of the array either.

    Signed-off-by: Phil Carmody
    Cc: Benjamin Herrenschmidt
    Cc: Roel Kluin
    Cc: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Phil Carmody
     
  • - C99 knows about USHRT_MAX/SHRT_MAX/SHRT_MIN, not
    USHORT_MAX/SHORT_MAX/SHORT_MIN.

    - Make SHRT_MIN of type s16, not int, for consistency.

    [akpm@linux-foundation.org: fix drivers/dma/timb_dma.c]
    [akpm@linux-foundation.org: fix security/keys/keyring.c]
    Signed-off-by: Alexey Dobriyan
    Acked-by: WANG Cong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • drivers/char/hangcheck-timer.c is doubly broken. When the overflown value
    of TIMER_FREQ is abnormally low, it spams the syslog with KERN_CRIT
    messages "Hangcheck: hangcheck value past margin!" But whether it happens
    or not depends on HZ and lpj in a complex way. People have hit it
    occasionally as far as google search can tell.

    First, the following line overflows unsigned long:

    # define TIMER_FREQ (HZ*loops_per_jiffy)

    Second, and more importantly, loops_per_jiffy has little to do with the
    con= version from the the time scale of get_cycles() (aka rdtsc) to the
    time scale of jiffies.

    The attached patch resolves both of the problems.

    Acked-by: Joel Becker
    Cc: john stultz
    Cc: Jan Glauber
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Polyanskiy
     
  • Linux does not define __BYTE_ORDER in its endian header files which makes
    some header files bend backwards to get at the current endian. Lets
    #define __BYTE_ORDER in big_endian.h/litte_endian.h to make it easier for
    header files that are used in user space too.

    In userspace the convention is that

    1. _both_ __LITTLE_ENDIAN and __BIG_ENDIAN are defined,
    2. you have to test for e.g. __BYTE_ORDER == __BIG_ENDIAN.

    Signed-off-by: Joakim Tjernlund
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joakim Tjernlund
     
  • Add __must_check to error pointer handlers to have the compiler warn about
    mistakes like:

    if (err)
    ERR_PTR(err);

    It found two bugs:

    Mar 12 Nikula Jani [PATCH] enclosure: fix error path - actually return ERR_PTR() on error
    Mar 12 Nikula Jani [PATCH] sunrpc: fix error path - actually return ERR_PTR() on error

    Signed-off-by: Jani Nikula
    Cc: Phil Carmody
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jani Nikula
     
  • Currently, the menu governor uses the (corrected) next timer as key item
    for predicting the idle duration.

    It turns out that there are specific cases where this breaks down: There
    are cases where we have a very repetitive pattern of idle durations, where
    the idle period is pretty much the same, for reasons completely unrelated
    to the next timer event. Examples of such repeating patterns are network
    loads with irq mitigation, the mouse moving but in theory also the wifi
    beacons.

    This patch adds a relatively simple detector for such repeating patterns,
    where the standard deviation of the last 8 idle periods is compared to a
    threshold.

    With this extra predictor in place, measurements show that the DECAY
    factor can now be increased (the decaying average will now decay slower)
    to get an even more stable result.

    [arjan@infradead.org: fix bug identified by Frank]
    Signed-off-by: Arjan van de Ven
    Cc: Corrado Zoccolo
    Cc: Frank Rowand
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • Architectures that handle DMA-non-coherent memory need to set
    ARCH_KMALLOC_MINALIGN to make sure that kmalloc'ed buffer is DMA-safe: the
    buffer doesn't share a cache with the others.

    Signed-off-by: FUJITA Tomonori
    Acked-by: David Howells
    Cc: Koichi Yasutake
    Acked-by: Pekka Enberg
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • asm-generic/atomic.h has been derived from the mn10300 implementation.
    Remove the now duplicated mn10300 implementation by including the generic
    version instead.

    This adds cmpxchg_local() and cmpxchg64_local() for free to the
    architecture, as they are implemented in asm-generic/atomic.h.

    Signed-off-by: Mathieu Desnoyers
    Acked-by: David Howells
    Acked-by: Peter Fritzsche
    Acked-by: Arnd Bergmann
    Cc: Jamie Lokier
    Cc: Ingo Molnar
    Cc: Heiko Carstens
    Cc: Keith M Wesolowski
    Cc: Martin Schwidefsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • Commit 8b505ca8e2600eb9e7dd2d6b2682a81717671374 ("serial: 68328serial.c:
    remove BAUD_TABLE_SIZE macro") misses one use of BAUD_TABLE_SIZE. So the
    resulting 68328serial.c does not compile:

    drivers/serial/68328serial.c: In function `m68328_console_setup':
    drivers/serial/68328serial.c:1439: error: `BAUD_TABLE_SIZE' undeclared (first use in this function)
    drivers/serial/68328serial.c:1439: error: (Each undeclared identifier is reported only once
    drivers/serial/68328serial.c:1439: error: for each function it appears in.)

    Fix that last use of it.

    Signed-off-by: Greg Ungerer
    Cc: Thiago Farina
    Cc: Alan Cox
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Ungerer
     
  • Architectures that handle DMA-non-coherent memory need to set
    ARCH_KMALLOC_MINALIGN to make sure that kmalloc'ed buffer is DMA-safe: the
    buffer doesn't share a cache with the others.

    Signed-off-by: FUJITA Tomonori
    Acked-by: David Howells
    Acked-by: Pekka Enberg
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • Extend gdbstub to support more features of gdb remote protocol to keep
    gdb-7 and emacs gud mode happy:

    (*) The D command. Detach debugger.

    (*) The H command. Handle setting the target thread by ignoring it.

    (*) The qAttached command. Indicate we 'attached' to an existing process.

    (*) The qC command. Indicate that the current thread ID is 0.

    (*) The qOffsets command. Indicate that no relocation has been done.

    (*) The qSymbol:: command. Indicate that we're not interested in looking up
    any symbol addresses.

    (*) The qSupported command. Indicate the maximum packet size and the fact
    that reverse step and continue aren't supported.

    (*) The vCont? command. Indicate that we don't support any of its variants.

    Also make it possible to trace the commands and replies without tracing
    the individual character I/O.

    [akpm@linux-foundation.org: make gdbstub_handle_query() static]
    Signed-off-by: David Howells
    Cc: Jason Wessel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • This ensures that platforms with lowmem PAs above 32 bits work correctly
    by avoiding truncating the PA during a left shift.

    Signed-off-by: Chris Metcalf
    Cc: Barry Song
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     
  • Add global mutex zonelists_mutex to fix the possible race:

    CPU0 CPU1 CPU2
    (1) zone->present_pages += online_pages;
    (2) build_all_zonelists();
    (3) alloc_page();
    (4) free_page();
    (5) build_all_zonelists();
    (6) __build_all_zonelists();
    (7) zone->pageset = alloc_percpu();

    In step (3,4), zone->pageset still points to boot_pageset, so bad
    things may happen if 2+ nodes are in this state. Even if only 1 node
    is accessing the boot_pageset, (3) may still consume too much memory
    to fail the memory allocations in step (7).

    Besides, atomic operation ensures alloc_percpu() in step (7) will never fail
    since there is a new fresh memory block added in step(6).

    [haicheng.li@linux.intel.com: hold zonelists_mutex when build_all_zonelists]
    Signed-off-by: Haicheng Li
    Signed-off-by: Wu Fengguang
    Reviewed-by: Andi Kleen
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haicheng Li
     
  • For each new populated zone of hotadded node, need to update its pagesets
    with dynamically allocated per_cpu_pageset struct for all possible CPUs:

    1) Detach zone->pageset from the shared boot_pageset
    at end of __build_all_zonelists().

    2) Use mutex to protect zone->pageset when it's still
    shared in onlined_pages()

    Otherwises, multiple zones of different nodes would share same boot strapping
    boot_pageset for same CPU, which will finally cause below kernel panic:

    ------------[ cut here ]------------
    kernel BUG at mm/page_alloc.c:1239!
    invalid opcode: 0000 [#1] SMP
    ...
    Call Trace:
    [] __alloc_pages_nodemask+0x131/0x7b0
    [] alloc_pages_current+0x87/0xd0
    [] __page_cache_alloc+0x67/0x70
    [] __do_page_cache_readahead+0x120/0x260
    [] ra_submit+0x21/0x30
    [] ondemand_readahead+0x166/0x2c0
    [] page_cache_async_readahead+0x80/0xa0
    [] generic_file_aio_read+0x364/0x670
    [] nfs_file_read+0xca/0x130
    [] do_sync_read+0xfa/0x140
    [] vfs_read+0xb5/0x1a0
    [] sys_read+0x51/0x80
    [] system_call_fastpath+0x16/0x1b
    RIP [] get_page_from_freelist+0x883/0x900
    RSP
    ---[ end trace 4bda28328b9990db ]

    [akpm@linux-foundation.org: merge fix]
    Signed-off-by: Haicheng Li
    Signed-off-by: Wu Fengguang
    Reviewed-by: Andi Kleen
    Reviewed-by: Christoph Lameter
    Cc: Mel Gorman
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haicheng Li
     
  • No behavior change here.

    Move some of setup_per_cpu_pageset() code into a new function
    setup_zone_pageset() that will be useful for memory hotplug.

    Signed-off-by: Wu Fengguang
    Signed-off-by: Haicheng Li
    Reviewed-by: Andi Kleen
    Reviewed-by: Christoph Lameter
    Cc: Mel Gorman
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wu Fengguang
     
  • Got this while compiling for ARM/SA1100:

    mm/sparse.c: In function '__section_nr':
    mm/sparse.c:135: warning: 'root' is used uninitialized in this function

    This patch follows Russell King's suggestion for a new calculation for
    NR_SECTION_ROOTS. Thanks also to Sergei Shtylyov for pointing out the
    existence of the macro DIV_ROUND_UP.

    Atsushi Nemoto observed:
    : This fix doesn't just silence the warning - it fixes a real problem.
    :
    : Without this fix, mem_section[] might have 0 size so mem_section[0]
    : will share other variable area. For example, I got:
    :
    : c030c700 b __warned.16478
    : c030c700 B mem_section
    : c030c701 b __warned.16483
    :
    : This might cause very strange behavior. Your patch actually fixes it.

    Signed-off-by: Marcelo Roberto Jimenez
    Cc: Atsushi Nemoto
    Cc: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Cc: Minchan Kim
    Cc: Yinghai Lu
    Cc: Sergei Shtylyov
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marcelo Roberto Jimenez
     
  • In f4112de6b679d84bd9b9681c7504be7bdfb7c7d5 ("mm: introduce
    debug_kmap_atomic") I said that debug_kmap_atomic() needs
    CONFIG_TRACE_IRQFLAGS_SUPPORT.

    It was wrong. (I thought irqs_disabled() is only available when the
    architecture has CONFIG_TRACE_IRQFLAGS_SUPPORT)

    Remove the #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT check to enable
    kmap_atomic() debugging for the architectures which do not have
    CONFIG_TRACE_IRQFLAGS_SUPPORT.

    Reported-by: Andrew Morton
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Add parenthesis in a define. This doesn't change functionality.

    checkpatch errors:
    1) white space fixes
    2) add spaces after comas

    Signed-off-by: matt mooney
    Cc: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    matt mooney
     
  • Fix minor spelling errors in a few comments; no code changes.

    Signed-off-by: matt mooney
    Cc: Dan Carpenter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    matt mooney
     
  • Enable users to online CPUs even if the CPUs belongs to a numa node which
    doesn't have onlined local memory.

    The zonlists(pg_data_t.node_zonelists[]) of a numa node are created either
    in system boot/init period, or at the time of local memory online. For a
    numa node without onlined local memory, its zonelists are not initialized
    at present. As a result, any memory allocation operations executed by
    CPUs within this node will fail. In fact, an out-of-memory error is
    triggered when attempt to online CPUs before memory comes to online.

    This patch tries to create zonelists for such numa nodes, so that the
    memory allocation for this node can be fallback'ed to other nodes.

    [akpm@linux-foundation.org: remove unneeded export]
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: minskey guo
    Cc: Minchan Kim
    Cc: Yasunori Goto
    Cc: Andi Kleen
    Cc: Christoph Lameter
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    minskey guo