1. 07 Jun, 2010 2 commits
  2. 06 Jun, 2010 1 commit
  3. 05 Jun, 2010 7 commits
  4. 04 Jun, 2010 30 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 7f0d384c
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        Minix: Clean up left over label
        fix truncate inode time modification breakage
        fix setattr error handling in sysfs, configfs
        fcntl: return -EFAULT if copy_to_user fails
        wrong type for 'magic' argument in simple_fill_super()
        fix the deadlock in qib_fs
        mqueue doesn't need make_bad_inode()
      7f0d384c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus · 90ec7819
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        module: fix bne2 "gave up waiting for init of module libcrc32c"
        module: verify_export_symbols under the lock
        module: move find_module check to end
        module: make locking more fine-grained.
        module: Make module sysfs functions private.
        module: move sysfs exposure to end of load_module
        module: fix kdb's illicit use of struct module_use.
        module: Make the 'usage' lists be two-way
      90ec7819
    • Rusty Russell's avatar
      module: fix bne2 "gave up waiting for init of module libcrc32c" · 9bea7f23
      Rusty Russell authored
      
      
      Problem: it's hard to avoid an init routine stumbling over a
      request_module these days.  And it's not clear it's always a bad idea:
      for example, a module like kvm with dynamic dependencies on kvm-intel
      or kvm-amd would be neater if it could simply request_module the right
      one.
      
      In this particular case, it's libcrc32c:
      
      	libcrc32c_mod_init
      	 crypto_alloc_shash
      	  crypto_alloc_tfm
      	   crypto_find_alg
      	    crypto_alg_mod_lookup
      	     crypto_larval_lookup
      	      request_module
      
      If another module is waiting inside resolve_symbol() for libcrc32c to
      finish initializing (ie. bne2 depends on libcrc32c) then it does so
      holding the module lock, and our request_module() can't make progress
      until that is released.
      
      Waiting inside resolve_symbol() without the lock isn't all that hard:
      we just need to pass the -EBUSY up the call chain so we can sleep
      where we don't hold the lock.  Error reporting is a bit trickier: we
      need to copy the name of the unfinished module before releasing the
      lock.
      
      Other notes:
      1) This also fixes a theoretical issue where a weak dependency would allow
         symbol version mismatches to be ignored.
      2) We rename use_module to ref_module to make life easier for the only
         external user (the out-of-tree ksplice patches).
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Tim Abbot <tabbott@ksplice.com>
      Tested-by: default avatarBrandon Philips <bphilips@suse.de>
      9bea7f23
    • Rusty Russell's avatar
      module: verify_export_symbols under the lock · be593f4c
      Rusty Russell authored
      
      
      It disabled preempt so it was "safe", but nothing stops another module
      slipping in before this module is added to the global list now we don't
      hold the lock the whole time.
      
      So we check this just after we check for duplicate modules, and just
      before we put the module in the global list.
      
      (find_symbol finds symbols in coming and going modules, too).
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      be593f4c
    • Linus Torvalds's avatar
      module: move find_module check to end · 3bafeb62
      Linus Torvalds authored
      
      
      I think Rusty may have made the lock a bit _too_ finegrained there, and
      didn't add it to some places that needed it. It looks, for example, like
      PATCH 1/2 actually drops the lock in places where it's needed
      ("find_module()" is documented to need it, but now load_module() didn't
      hold it at all when it did the find_module()).
      
      Rather than adding a new "module_loading" list, I think we should be able
      to just use the existing "modules" list, and just fix up the locking a
      bit.
      
      In fact, maybe we could just move the "look up existing module" a bit
      later - optimistically assuming that the module doesn't exist, and then
      just undoing the work if it turns out that we were wrong, just before
      adding ourselves to the list.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      3bafeb62
    • Rusty Russell's avatar
      module: make locking more fine-grained. · 75676500
      Rusty Russell authored
      
      
      Kay Sievers <kay.sievers@vrfy.org> reports that we still have some
      contention over module loading which is slowing boot.
      
      Linus also disliked a previous "drop lock and regrab" patch to fix the
      bne2 "gave up waiting for init of module libcrc32c" message.
      
      This is more ambitious: we only grab the lock where we need it.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Brandon Philips <brandon@ifup.org>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      75676500
    • Rusty Russell's avatar
      module: Make module sysfs functions private. · 6407ebb2
      Rusty Russell authored
      These were placed in the header in ef665c1a
      
       to get the various
      SYSFS/MODULE config combintations to compile.
      
      That may have been necessary then, but it's not now.  These functions
      are all local to module.c.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      6407ebb2
    • Rusty Russell's avatar
      module: move sysfs exposure to end of load_module · 80a3d1bb
      Rusty Russell authored
      
      
      This means a little extra work, but is more logical: we don't put
      anything in sysfs until we're about to put the module into the
      global list an parse its parameters.
      
      This also gives us a logical place to put duplicate module detection
      in the next patch.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      80a3d1bb
    • Rusty Russell's avatar
      module: fix kdb's illicit use of struct module_use. · c8e21ced
      Rusty Russell authored
      
      
      Linus changed the structure, and luckily this didn't compile any more.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: Martin Hicks <mort@sgi.com>
      c8e21ced
    • Linus Torvalds's avatar
      module: Make the 'usage' lists be two-way · 2c02dfe7
      Linus Torvalds authored
      
      
      When adding a module that depends on another one, we used to create a
      one-way list of "modules_which_use_me", so that module unloading could
      see who needs a module.
      
      It's actually quite simple to make that list go both ways: so that we
      not only can see "who uses me", but also see a list of modules that are
      "used by me".
      
      In fact, we always wanted that list in "module_unload_free()": when we
      unload a module, we want to also release all the other modules that are
      used by that module.  But because we didn't have that list, we used to
      first iterate over all modules, and then iterate over each "used by me"
      list of that module.
      
      By making the list two-way, we simplify module_unload_free(), and it
      allows for some trivial fixes later too.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cleaned & rebased)
      2c02dfe7
    • Huang Weiyi's avatar
      X25: remove duplicated #include · ca733594
      Huang Weiyi authored
      
      
      Remove duplicated #include('s) in drivers/net/wan/x25_asy.c
      Signed-off-by: default avatarHuang Weiyi <weiyi.huang@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca733594
    • Eric Dumazet's avatar
      tcp: use correct net ns in cookie_v4_check() · c4464921
      Eric Dumazet authored
      
      
      Its better to make a route lookup in appropriate namespace.
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c4464921
    • Eric Dumazet's avatar
      rps: tcp: fix rps_sock_flow_table table updates · ca55158c
      Eric Dumazet authored
      
      
      I believe a moderate SYN flood attack can corrupt RFS flow table
      (rps_sock_flow_table), making RPS/RFS much less effective.
      
      Even in a normal situation, server handling short lived sessions suffer
      from bad steering for the first data packet of a session, if another SYN
      packet is received for another session.
      
      We do following action in tcp_v4_rcv() :
      
      	sock_rps_save_rxhash(sk, skb->rxhash);
      
      We should _not_ do this if sk is a LISTEN socket, as about each
      packet received on a LISTEN socket has a different rxhash than
      previous one.
       -> RPS_NO_CPU markers are spread all over rps_sock_flow_table.
      
      Also, it makes sense to protect sk->rxhash field changes with socket
      lock (We currently can change it even if user thread owns the lock
      and might use rxhash)
      
      This patch moves sock_rps_save_rxhash() to a sock locked section,
      and only for non LISTEN sockets.
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca55158c
    • Ben McKeegan's avatar
      ppp_generic: fix multilink fragment sizes · 536e00e5
      Ben McKeegan authored
      Fix bug in multilink fragment size calculation introduced by
      commit 9c705260
      
      
      "ppp: ppp_mp_explode() redesign"
      Signed-off-by: default avatarBen McKeegan <ben@netservers.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      536e00e5
    • Florian Westphal's avatar
      syncookies: remove Kconfig text line about disabled-by-default · 57f1553e
      Florian Westphal authored
      syncookies default to on since
      e994b7c9
      
      
      (tcp: Don't make syn cookies initial setting depend on CONFIG_SYSCTL).
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      57f1553e
    • John Fastabend's avatar
      ixgbe: only check pfc bits in hang logic if pfc is enabled · ca739481
      John Fastabend authored
      
      
      Only check pfc bits in hang logic if PFC is enabled.  Previously,
      if DCB was enabled but PFC was disabled the incorrect pause
      bits would be checked.
      Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Acked-by: default avatarDon Skidmore <donald.c.skidmore@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca739481
    • Steffen Klassert's avatar
      net: check for refcount if pop a stacked dst_entry · 8764ab2c
      Steffen Klassert authored
      
      
      xfrm triggers a warning if dst_pop() drops a refcount
      on a noref dst. This patch changes dst_pop() to
      skb_dst_pop(). skb_dst_pop() drops the refcnt only
      on a refcounted dst. Also we don't clone the child
      dst_entry, so it is not refcounted and we can use
      skb_dst_set_noref() in xfrm_output_one().
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8764ab2c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 8ce655e7
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: wacom - add Cintiq 21UX2 and Intuos4 WL
        Input: ads7846 - fix compiler warning in ads7846_probe()
        Input: tps6507x-ts - a couple work queue cleanups
        Input: s3c2410_ts - tone down logging
        Input: s3c2410_ts - fix build error due to ADC Kconfig rename
      8ce655e7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 999fd1ab
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
        sh: Make intc messages consistent via pr_fmt.
        sh: make sure static declaration on ms7724se
        sh: make sure static declaration on mach-migor
        sh: make sure static declaration on mach-ecovec24
        sh: make sure static declaration on mach-ap325rxa
        clocksource: sh_cmt: compute mult and shift before registration
        clocksource: sh_tmu: compute mult and shift before registration
        sh: PIO disabling for x3proto and urquell.
        sh: mach-sdk7786: conditionally disable PIO support.
        sh: support for platforms without PIO.
        usb: r8a66597-hcd pio to mmio accessor conversion.
        usb: gadget: r8a66597-udc pio to mmio accessor conversion.
        usb: gadget: m66592-udc pio to mmio accessor conversion.
        sh: add romImage MMCIF boot for sh7724 and Ecovec V2
        sh: add boot code to MMCIF driver header
        sh: prepare MMCIF driver header file
        sh: allow romImage data between head.S and the zero page
        sh: Add support MMCIF for ecovec
        sh: remove duplicated #include
        input: serio: disable i8042 for non-cayman sh platforms.
        ...
      999fd1ab
    • Linus Torvalds's avatar
      Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core · 9a9620db
      Linus Torvalds authored
      * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/i7core: (83 commits)
        i7core_edac: Better describe the supported devices
        Add support for Westmere to i7core_edac driver
        i7core_edac: don't free on success
        i7core_edac: Add support for X5670
        Always call i7core_[ur]dimm_check_mc_ecc_err
        i7core_edac: fix memory leak of i7core_dev
        EDAC: add __init to i7core_xeon_pci_fixup
        i7core_edac: Fix wrong device id for channel 1 devices
        i7core: add support for Lynnfield alternate address
        i7core_edac: Add initial support for Lynnfield
        i7core_edac: do not export static functions
        edac: fix i7core build
        edac: i7core_edac produces undefined behaviour on 32bit
        i7core_edac: Use a more generic approach for probing PCI devices
        i7core_edac: PCI device is called NONCORE, instead of NOCORE
        i7core_edac: Fix ringbuffer maxsize
        i7core_edac: First store, then increment
        i7core_edac: Better parse "any" addrmask
        i7core_edac: Use a lockless ringbuffer
        edac: Create an unique instance for each kobj
        ...
      9a9620db
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 · e620d1e3
      Linus Torvalds authored
      * 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (87 commits)
        V4L/DVB: ivtv: Timing tweaks and code re-order to try and improve stability
        V4L/DVB: ivtv: Avoid accidental video standard change
        V4L/DVB: ivtvfb : Module load / unload fixes
        V4L/DVB: cx2341x: Report correct temporal setting for log-status
        V4L/DVB: cx18, cx23885, v4l2 doc, MAINTAINERS: Update Andy Walls' email address
        V4L/DVB: drivers/media: Eliminate a NULL pointer dereference
        V4L/DVB: dvb-core: Fix ULE decapsulation bug
        V4L/DVB: Bug fix: make IR work again for dm1105
        V4L/DVB: media/IR: nec-decoder needs to select BITREV
        V4L/DVB: video/saa7134: change dprintk() to i2cdprintk()
        V4L/DVB: video/saa7134: remove duplicate break
        V4L/DVB: IR/imon: add auto-config for 0xffdc rf device
        V4L/DVB: IR/imon: clean up usage of bools
        V4L/DVB: em28xx: remove unneeded null checks
        V4L/DVB: ngene: remove unused #include <linux/version.h>
        V4L/DVB: ak881x needs slab.h
        V4L/DVB: FusionHDTV: Use quick reads for I2C IR device probing
        V4L/DVB: Technotrend S2-3200 ships with a TT 1500 remote
        V4L/DVB: drivers/media: Use kzalloc
        V4L/DVB: m920x: Select simple tuner
        ...
      e620d1e3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · d2dd328b
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block: (27 commits)
        block: make blk_init_free_list and elevator_init idempotent
        block: avoid unconditionally freeing previously allocated request_queue
        pipe: change /proc/sys/fs/pipe-max-pages to byte sized interface
        pipe: change the privilege required for growing a pipe beyond system max
        pipe: adjust minimum pipe size to 1 page
        block: disable preemption before using sched_clock()
        cciss: call BUG() earlier
        Preparing 8.3.8rc2
        drbd: Reduce verbosity
        drbd: use drbd specific ratelimit instead of global printk_ratelimit
        drbd: fix hang on local read errors while disconnected
        drbd: Removed the now empty w_io_error() function
        drbd: removed duplicated #includes
        drbd: improve usage of MSG_MORE
        drbd: need to set socket bufsize early to take effect
        drbd: improve network latency, TCP_QUICKACK
        drbd: Revert "drbd: Create new current UUID as late as possible"
        brd: support discard
        Revert "writeback: fix WB_SYNC_NONE writeback from umount"
        Revert "writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync"
        ...
      d2dd328b
    • Linus Torvalds's avatar
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · a094c0af
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (27 commits)
        Staging: sep: return -EFAULT on copy_to_user errors
        Staging: rc2860: return -EFAULT on copy_to_user errors
        Staging: Eliminate a NULL pointer dereference
        staging: Use GFP_ATOMIC when a lock is held
        Staging: comedi - correct parameter gainlkup for DAQCard-6024E in driver ni_mio_cs.c
        Staging: comedi: fixing ni_labpc to mite dependancy
        Staging: wlags49_h2, wlags49_h25: fixed Kconfig dependencies
        Staging: phison: depends on ATA_BMDMA
        Staging: iio-utils: fix memory overflow for dynamically allocateded memory to hold filename
        Staging: adis16255: add proper section markings to hotplug funcs
        Staging: adis16255: fix typo in Kconfig
        Staging: batman-adv: Don't allocate icmp packet with GFP_KERNEL
        Staging: batman-adv: Don't call free_netdev twice
        Staging: batman-adv: Call unregister_netdev on failures to get rtnl lock
        Staging: batman-adv: fix rogue packets on shutdown
        Staging: add MSM framebuffer driver
        Staging: comedi: fixing ni_tio to mite PCI dependancy
        Staging: comedi: fix 8255 and DAS08 Kconfig dependancies.
        Staging: comedi: For COMEDI_BUFINFO, check access to command
        Staging: comedi: COMEDI_BUFINFO with no async - report no bytes read or written
        ...
      a094c0af
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 · f9196e7c
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
        fix setattr error handling in sysfs, configfs
        kobject: free memory if netlink_kernel_create() fails
        lib/kobject_uevent.c: fix CONIG_NET=n warning
      f9196e7c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 · bf4282cb
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
        serial: add support for various Titan PCI cards
        vt_ioctl: return -EFAULT on copy_from_user errors
        serial: altera_uart: Proper section for altera_uart_remove
        tty: fix a little bug in scrup, vt.c
        altera_uart: Simplify altera_uart_console_putc
        altera_uart: Don't take spinlock in already protected functions
        TTY/n_gsm: potential double lock
        serial: bfin_5xx: fix typo in IER check
        serial: bfin_5xx: IRDA is not affected by anomaly 05000230
        serial_cs: add and sort IDs for serial and modem cards
        msm_serial: fix serial on trout
      bf4282cb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · d7940b04
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        USB: unbind all interfaces before rebinding them
        USB: serial: digi_acceleport: Eliminate a NULL pointer dereference
        usb: fix ehci_hcd build failure when both generic-OF and xilinx is selected
        USB: cdc-acm: fix resource reclaim in error path of acm_probe
        USB: ftdi_sio: fix DTR/RTS line modes
        USB: s3c-hsotg: Ensure FIFOs are fully flushed after layout
        USB: s3c-hsotg: SoftDisconnect minimum 3ms
        USB: s3c-hsotg: Ensure TX FIFO addresses setup when initialising FIFOs
        USB: s3c_hsotg: define USB_GADGET_DUALSPEED in Kconfig
        USB: s3c: Enable soft disconnect during initialization
        USB: xhci: Print NEC firmware version.
        USB: xhci: Wait for host to start running.
        USB: xhci: Wait for controller to be ready after reset.
        USB: isp1362: fix inw warning on Blackfin systems
        USB: mos7840: fix null-pointer dereference
      d7940b04
    • Cory Maccarrone's avatar
      omap: remove BUG_ON for disabled interrupts · 683eb947
      Cory Maccarrone authored
      
      
      Remove a BUG_ON for when interrupts are disabled during an MMC request.
      
      During boot, interrupts can be disabled when a request is made, causing
      this bug to be triggered.  In reality, there's no reason this should halt
      the kernel, as the driver has proved reliable in spite of disabled
      interrupts, and additionally, there's nothing in this code that would
      require interrupts to be enabled.
      
      The only setup I've managed to make it trigger on is on the HTC Herald
      during bootup when the driver is built into the kernel (mostly because
      that's all I have).  I believe it's related to the fact that on bootup I
      get many timeout errors on "CMD5" while initializing the card.  Each CMD5
      timeout triggers that bug (I changed it to a WARN_ON to get it to boot in)
      due to the fact that part of the timeout code involves sending the request
      again.  With interrupts turned off, that BUG would be triggered.
      Signed-off-by: default avatarCory Maccarrone <darkstar6262@gmail.com>
      Acked-by: default avatarTony Lindgren <tony@atomide.com>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      683eb947
    • KOSAKI Motohiro's avatar
      vmscan: fix do_try_to_free_pages() return value when priority==0 reclaim failure · bb21c7ce
      KOSAKI Motohiro authored
      Greg Thelen reported recent Johannes's stack diet patch makes kernel hang.
       His test is following.
      
        mount -t cgroup none /cgroups -o memory
        mkdir /cgroups/cg1
        echo $$ > /cgroups/cg1/tasks
        dd bs=1024 count=1024 if=/dev/null of=/data/foo
        echo $$ > /cgroups/tasks
        echo 1 > /cgroups/cg1/memory.force_empty
      
      Actually, This OOM hard to try logic have been corrupted since following
      two years old patch.
      
      	commit a41f24ea
      	Author: Nishanth Aravamudan <nacc@us.ibm.com>
      	Date:   Tue Apr 29 00:58:25 2008 -0700
      
      	    page allocator: smarter retry of costly-order allocations
      
      Original intention was "return success if the system have shrinkable zones
      though priority==0 reclaim was failure".  But the above patch changed to
      "return nr_reclaimed if .....".  Oh, That forgot nr_reclaimed may be 0 if
      priority==0 reclaim failure.
      
      And Johannes's patch 0aeb2339
      
       ("vmscan: remove all_unreclaimable scan
      control") made it more corrupt.  Originally, priority==0 reclaim failure
      on memcg return 0, but this patch changed to return 1.  It totally
      confused memcg.
      
      This patch fixes it completely.
      Reported-by: default avatarGreg Thelen <gthelen@google.com>
      Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Tested-by: default avatarGreg Thelen <gthelen@google.com>
      Acked-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bb21c7ce
    • Akinobu Mita's avatar
      kernel/: fix BUG_ON checks for cpu notifier callbacks direct call · 9e506f7a
      Akinobu Mita authored
      The commit 80b5184c
      
       ("kernel/: convert cpu
      notifier to return encapsulate errno value") changed the return value of
      cpu notifier callbacks.
      
      Those callbacks don't return NOTIFY_BAD on failures anymore.  But there
      are a few callbacks which are called directly at init time and checking
      the return value.
      
      I forgot to change BUG_ON checking by the direct callers in the commit.
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e506f7a