1. 01 12月, 2012 6 次提交
    • N
      mm: soft offline: split thp at the beginning of soft_offline_page() · 783657a7
      Naoya Horiguchi 提交于
      When we try to soft-offline a thp tail page, put_page() is called on the
      tail page unthinkingly and VM_BUG_ON is triggered in put_compound_page().
      
      This patch splits thp before going into the main body of soft-offlining.
      Signed-off-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Andi Kleen <andi.kleen@intel.com>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      783657a7
    • M
      mm: avoid waking kswapd for THP allocations when compaction is deferred or contended · 782fd304
      Mel Gorman 提交于
      With "mm: vmscan: scale number of pages reclaimed by reclaim/compaction
      based on failures" reverted, Zdenek Kabelac reported the following
      
        Hmm,  so it's just took longer to hit the problem and observe
        kswapd0 spinning on my CPU again - it's not as endless like before -
        but still it easily eats minutes - it helps to turn off  Firefox
        or TB  (memory hungry apps) so kswapd0 stops soon - and restart
        those apps again.  (And I still have like >1GB of cached memory)
      
        kswapd0         R  running task        0    30      2 0x00000000
        Call Trace:
          preempt_schedule+0x42/0x60
          _raw_spin_unlock+0x55/0x60
          put_super+0x31/0x40
          drop_super+0x22/0x30
          prune_super+0x149/0x1b0
          shrink_slab+0xba/0x510
      
      The sysrq+m indicates the system has no swap so it'll never reclaim
      anonymous pages as part of reclaim/compaction.  That is one part of the
      problem but not the root cause as file-backed pages could also be
      reclaimed.
      
      The likely underlying problem is that kswapd is woken up or kept awake
      for each THP allocation request in the page allocator slow path.
      
      If compaction fails for the requesting process then compaction will be
      deferred for a time and direct reclaim is avoided.  However, if there
      are a storm of THP requests that are simply rejected, it will still be
      the the case that kswapd is awake for a prolonged period of time as
      pgdat->kswapd_max_order is updated each time.  This is noticed by the
      main kswapd() loop and it will not call kswapd_try_to_sleep().  Instead
      it will loopp, shrinking a small number of pages and calling
      shrink_slab() on each iteration.
      
      This patch defers when kswapd gets woken up for THP allocations.  For
      !THP allocations, kswapd is always woken up.  For THP allocations,
      kswapd is woken up iff the process is willing to enter into direct
      reclaim/compaction.
      
      [akpm@linux-foundation.org: fix typo in comment]
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: Zdenek Kabelac <zkabelac@redhat.com>
      Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
      Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Cc: Glauber Costa <glommer@gmail.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      782fd304
    • A
      revert "Revert "mm: remove __GFP_NO_KSWAPD"" · a5091539
      Andrew Morton 提交于
      It apepars that this patch was innocent, and we hope that "mm: avoid
      waking kswapd for THP allocations when compaction is deferred or
      contended" will fix the final kswapd-spinning cause.
      
      Cc: Zdenek Kabelac <zkabelac@redhat.com>
      Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
      Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
      Cc: Mel Gorman <mgorman@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a5091539
    • J
      mm: vmscan: fix endless loop in kswapd balancing · 60cefed4
      Johannes Weiner 提交于
      Kswapd does not in all places have the same criteria for a balanced
      zone.  Zones are only being reclaimed when their high watermark is
      breached, but compaction checks loop over the zonelist again when the
      zone does not meet the low watermark plus two times the size of the
      allocation.  This gets kswapd stuck in an endless loop over a small
      zone, like the DMA zone, where the high watermark is smaller than the
      compaction requirement.
      
      Add a function, zone_balanced(), that checks the watermark, and, for
      higher order allocations, if compaction has enough free memory.  Then
      use it uniformly to check for balanced zones.
      
      This makes sure that when the compaction watermark is not met, at least
      reclaim happens and progress is made - or the zone is declared
      unreclaimable at some point and skipped entirely.
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reported-by: NGeorge Spelvin <linux@horizon.com>
      Reported-by: NJohannes Hirte <johannes.hirte@fem.tu-ilmenau.de>
      Reported-by: NTomas Racek <tracek@redhat.com>
      Tested-by: NJohannes Hirte <johannes.hirte@fem.tu-ilmenau.de>
      Reviewed-by: NRik van Riel <riel@redhat.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      60cefed4
    • J
      mm/vmemmap: fix wrong use of virt_to_page · ae64ffca
      Jianguo Wu 提交于
      I enable CONFIG_DEBUG_VIRTUAL and CONFIG_SPARSEMEM_VMEMMAP, when doing
      memory hotremove, there is a kernel BUG at arch/x86/mm/physaddr.c:20.
      
      It is caused by free_section_usemap()->virt_to_page(), virt_to_page() is
      only used for kernel direct mapping address, but sparse-vmemmap uses
      vmemmap address, so it is going wrong here.
      
        ------------[ cut here ]------------
        kernel BUG at arch/x86/mm/physaddr.c:20!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: acpihp_drv acpihp_slot edd cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq mperf fuse vfat fat loop dm_mod coretemp kvm crc32c_intel ipv6 ixgbe igb iTCO_wdt i7core_edac edac_core pcspkr iTCO_vendor_support ioatdma microcode joydev sr_mod i2c_i801 dca lpc_ich mfd_core mdio tpm_tis i2c_core hid_generic tpm cdrom sg tpm_bios rtc_cmos button ext3 jbd mbcache usbhid hid uhci_hcd ehci_hcd usbcore usb_common sd_mod crc_t10dif processor thermal_sys hwmon scsi_dh_alua scsi_dh_hp_sw scsi_dh_rdac scsi_dh_emc scsi_dh ata_generic ata_piix libata megaraid_sas scsi_mod
        CPU 39
        Pid: 6454, comm: sh Not tainted 3.7.0-rc1-acpihp-final+ #45 QCI QSSC-S4R/QSSC-S4R
        RIP: 0010:[<ffffffff8103c908>]  [<ffffffff8103c908>] __phys_addr+0x88/0x90
        RSP: 0018:ffff8804440d7c08  EFLAGS: 00010006
        RAX: 0000000000000006 RBX: ffffea0012000000 RCX: 000000000000002c
        ...
      Signed-off-by: NJianguo Wu <wujianguo@huawei.com>
      Signed-off-by: NJiang Liu <jiang.liu@huawei.com>
      Reviewd-by: NWen Congyang <wency@cn.fujitsu.com>
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reviewed-by: NYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reviewed-by: NMichal Hocko <mhocko@suse.cz>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ae64ffca
    • M
      mm: compaction: fix return value of capture_free_page() · 58d00209
      Mel Gorman 提交于
      Commit ef6c5be6 ("fix incorrect NR_FREE_PAGES accounting (appears
      like memory leak)") fixes a NR_FREE_PAGE accounting leak but missed the
      return value which was also missed by this reviewer until today.
      
      That return value is used by compaction when adding pages to a list of
      isolated free pages and without this follow-up fix, there is a risk of
      free list corruption.
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: Dave Hansen <dave@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      58d00209
  2. 27 11月, 2012 8 次提交
    • D
      futex: avoid wake_futex() for a PI futex_q · aa10990e
      Darren Hart 提交于
      Dave Jones reported a bug with futex_lock_pi() that his trinity test
      exposed.  Sometime between queue_me() and taking the q.lock_ptr, the
      lock_ptr became NULL, resulting in a crash.
      
      While futex_wake() is careful to not call wake_futex() on futex_q's with
      a pi_state or an rt_waiter (which are either waiting for a
      futex_unlock_pi() or a PI futex_requeue()), futex_wake_op() and
      futex_requeue() do not perform the same test.
      
      Update futex_wake_op() and futex_requeue() to test for q.pi_state and
      q.rt_waiter and abort with -EINVAL if detected.  To ensure any future
      breakage is caught, add a WARN() to wake_futex() if the same condition
      is true.
      
      This fix has seen 3 hours of testing with "trinity -c futex" on an
      x86_64 VM with 4 CPUS.
      
      [akpm@linux-foundation.org: tidy up the WARN()]
      Signed-off-by: NDarren Hart <dvhart@linux.intel.com>
      Reported-by: NDave Jones <davej@redat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      aa10990e
    • C
      watchdog: using u64 in get_sample_period() · 8ffeb9b0
      Chuansheng Liu 提交于
      In get_sample_period(), unsigned long is not enough:
      
        watchdog_thresh * 2 * (NSEC_PER_SEC / 5)
      
      case1:
        watchdog_thresh is 10 by default, the sample value will be: 0xEE6B2800
      
      case2:
       set watchdog_thresh is 20, the sample value will be: 0x1 DCD6 5000
      
      In case2, we need use u64 to express the sample period.  Otherwise,
      changing the threshold thru proc often can not be successful.
      Signed-off-by: Nliu chuansheng <chuansheng.liu@intel.com>
      Acked-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8ffeb9b0
    • J
      writeback: put unused inodes to LRU after writeback completion · 4eff96dd
      Jan Kara 提交于
      Commit 169ebd90 ("writeback: Avoid iput() from flusher thread")
      removed iget-iput pair from inode writeback.  As a side effect, inodes
      that are dirty during iput_final() call won't be ever added to inode LRU
      (iput_final() doesn't add dirty inodes to LRU and later when the inode
      is cleaned there's noone to add the inode there).  Thus inodes are
      effectively unreclaimable until someone looks them up again.
      
      The practical effect of this bug is limited by the fact that inodes are
      pinned by a dentry for long enough that the inode gets cleaned.  But
      still the bug can have nasty consequences leading up to OOM conditions
      under certain circumstances.  Following can easily reproduce the
      problem:
      
        for (( i = 0; i < 1000; i++ )); do
          mkdir $i
          for (( j = 0; j < 1000; j++ )); do
            touch $i/$j
            echo 2 > /proc/sys/vm/drop_caches
          done
        done
      
      then one needs to run 'sync; ls -lR' to make inodes reclaimable again.
      
      We fix the issue by inserting unused clean inodes into the LRU after
      writeback finishes in inode_sync_complete().
      Signed-off-by: NJan Kara <jack@suse.cz>
      Reported-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: Wu Fengguang <fengguang.wu@intel.com>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: <stable@vger.kernel.org>		[3.5+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4eff96dd
    • M
      mm: vmscan: check for fatal signals iff the process was throttled · 50694c28
      Mel Gorman 提交于
      Commit 5515061d ("mm: throttle direct reclaimers if PF_MEMALLOC
      reserves are low and swap is backed by network storage") introduced a
      check for fatal signals after a process gets throttled for network
      storage.  The intention was that if a process was throttled and got
      killed that it should not trigger the OOM killer.  As pointed out by
      Minchan Kim and David Rientjes, this check is in the wrong place and too
      broad.  If a system is in am OOM situation and a process is exiting, it
      can loop in __alloc_pages_slowpath() and calling direct reclaim in a
      loop.  As the fatal signal is pending it returns 1 as if it is making
      forward progress and can effectively deadlock.
      
      This patch moves the fatal_signal_pending() check after throttling to
      throttle_direct_reclaim() where it belongs.  If the process is killed
      while throttled, it will return immediately without direct reclaim
      except now it will have TIF_MEMDIE set and will use the PFMEMALLOC
      reserves.
      
      Minchan pointed out that it may be better to direct reclaim before
      returning to avoid using the reserves because there may be pages that
      can easily reclaim that would avoid using the reserves.  However, we do
      no such targetted reclaim and there is no guarantee that suitable pages
      are available.  As it is expected that this throttling happens when
      swap-over-NFS is used there is a possibility that the process will
      instead swap which may allocate network buffers from the PFMEMALLOC
      reserves.  Hence, in the swap-over-nfs case where a process can be
      throtted and be killed it can use the reserves to exit or it can
      potentially use reserves to swap a few pages and then exit.  This patch
      takes the option of using the reserves if necessary to allow the process
      exit quickly.
      
      If this patch passes review it should be considered a -stable candidate
      for 3.6.
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Luigi Semenzato <semenzato@google.com>
      Cc: Dan Magenheimer <dan.magenheimer@oracle.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Sonny Rao <sonnyrao@google.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      50694c28
    • M
      Revert "mm: remove __GFP_NO_KSWAPD" · 82b212f4
      Mel Gorman 提交于
      With "mm: vmscan: scale number of pages reclaimed by reclaim/compaction
      based on failures" reverted, Zdenek Kabelac reported the following
      
        Hmm,  so it's just took longer to hit the problem and observe
        kswapd0 spinning on my CPU again - it's not as endless like before -
        but still it easily eats minutes - it helps to	turn off  Firefox
        or TB  (memory hungry apps) so kswapd0 stops soon - and restart
        those apps again.  (And I still have like >1GB of cached memory)
      
        kswapd0         R  running task        0    30      2 0x00000000
        Call Trace:
          preempt_schedule+0x42/0x60
          _raw_spin_unlock+0x55/0x60
          put_super+0x31/0x40
          drop_super+0x22/0x30
          prune_super+0x149/0x1b0
          shrink_slab+0xba/0x510
      
      The sysrq+m indicates the system has no swap so it'll never reclaim
      anonymous pages as part of reclaim/compaction.  That is one part of the
      problem but not the root cause as file-backed pages could also be
      reclaimed.
      
      The likely underlying problem is that kswapd is woken up or kept awake
      for each THP allocation request in the page allocator slow path.
      
      If compaction fails for the requesting process then compaction will be
      deferred for a time and direct reclaim is avoided.  However, if there
      are a storm of THP requests that are simply rejected, it will still be
      the the case that kswapd is awake for a prolonged period of time as
      pgdat->kswapd_max_order is updated each time.  This is noticed by the
      main kswapd() loop and it will not call kswapd_try_to_sleep().  Instead
      it will loopp, shrinking a small number of pages and calling
      shrink_slab() on each iteration.
      
      The temptation is to supply a patch that checks if kswapd was woken for
      THP and if so ignore pgdat->kswapd_max_order but it'll be a hack and not
      backed up by proper testing.  As 3.7 is very close to release and this
      is not a bug we should release with, a safer path is to revert "mm:
      remove __GFP_NO_KSWAPD" for now and revisit it with the view to ironing
      out the balance_pgdat() logic in general.
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: Zdenek Kabelac <zkabelac@redhat.com>
      Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
      Cc: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
      Cc: Jiri Slaby <jirislaby@gmail.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      82b212f4
    • S
      proc: check vma->vm_file before dereferencing · 05f56484
      Stanislav Kinsbursky 提交于
      Commit 7b540d06 ("proc_map_files_readdir(): don't bother with
      grabbing files") switched proc_map_files_readdir() to use @f_mode
      directly instead of grabbing @file reference, but same time the test for
      @vm_file presence was lost leading to nil dereference.  The patch brings
      the test back.
      
      The all proc_map_files feature is CONFIG_CHECKPOINT_RESTORE wrapped
      (which is set to 'n' by default) so the bug doesn't affect regular
      kernels.
      
      The regression is 3.7-rc1 only as far as I can tell.
      
      [gorcunov@openvz.org: provided changelog]
      Signed-off-by: NStanislav Kinsbursky <skinsbursky@parallels.com>
      Acked-by: NCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      05f56484
    • D
      UAPI: strip the _UAPI prefix from header guards during header installation · 56c176c9
      David Howells 提交于
      Strip the _UAPI prefix from header guards during header installation so
      that any userspace dependencies aren't affected.  glibc, for example,
      checks for linux/types.h, linux/kernel.h, linux/compiler.h and
      linux/list.h by their guards - though the last two aren't actually
      exported.
      
        libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Wall -Werror -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fno-delete-null-pointer-checks -fstack-protector -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c child.c  -fPIC -DPIC -o .libs/child.o
        In file included from cli.c:20:0:
        common.h:152:8: error: redefinition of 'struct sysinfo'
        In file included from /usr/include/linux/kernel.h:4:0,
        		 from /usr/include/linux/sysctl.h:25,
        		 from /usr/include/sys/sysctl.h:43,
        		 from common.h:50,
        		 from cli.c:20:
        /usr/include/linux/sysinfo.h:7:8: note: originally defined here
      Reported-by: NTomasz Torcz <tomek@pipebreaker.pl>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Acked-by: NJosh Boyer <jwboyer@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      56c176c9
    • T
      include/linux/bug.h: fix sparse warning related to BUILD_BUG_ON_INVALID · c5782e9f
      Tushar Behera 提交于
      Commit baf05aa9 ("bug: introduce BUILD_BUG_ON_INVALID() macro")
      introduces this macro only when _CHECKER_ is not defined.  Define a
      silent macro in the else condition to fix following sparse warning:
      
        mm/filemap.c:395:9: error: undefined identifier 'BUILD_BUG_ON_INVALID'
        mm/filemap.c:396:9: error: undefined identifier 'BUILD_BUG_ON_INVALID'
        mm/filemap.c:397:9: error: undefined identifier 'BUILD_BUG_ON_INVALID'
        include/linux/mm.h:419:9: error: undefined identifier 'BUILD_BUG_ON_INVALID'
        include/linux/mm.h:419:9: error: not a function <noident>
      Signed-off-by: NTushar Behera <tushar.behera@linaro.org>
      Acked-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c5782e9f
  3. 26 11月, 2012 4 次提交
  4. 25 11月, 2012 1 次提交
  5. 24 11月, 2012 21 次提交
    • T
      ALSA: hda - Fix build without CONFIG_PM · d846b174
      Takashi Iwai 提交于
      I forgot this again...  codec->in_pm is in #ifdef CONFIG_PM
      Reported-by: NMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d846b174
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2654ad44
      Linus Torvalds 提交于
      Pull x86 arch fixes from Peter Anvin:
       "Here is a collection of fixes for 3.7-rc7.  This is a superset of
        tglx' earlier pull request."
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86-64: Fix ordering of CFI directives and recent ASM_CLAC additions
        x86, microcode, AMD: Add support for family 16h processors
        x86-32: Export kernel_stack_pointer() for modules
        x86-32: Fix invalid stack address while in softirq
        x86, efi: Fix processor-specific memcpy() build error
        x86: remove dummy long from EFI stub
        x86, mm: Correct vmflag test for checking VM_HUGETLB
        x86, amd: Disable way access filter on Piledriver CPUs
        x86/mce: Do not change worker's running cpu in cmci_rediscover().
        x86/ce4100: Fix PCI configuration register access for devices without interrupts
        x86/ce4100: Fix reboot by forcing the reboot method to be KBD
        x86/ce4100: Fix pm_poweroff
        MAINTAINERS: Update email address for Robert Richter
        x86, microcode_amd: Change email addresses, MAINTAINERS entry
        MAINTAINERS: Change Boris' email address
        EDAC: Change Boris' email address
        x86, AMD: Change Boris' email address
      2654ad44
    • L
      Merge tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6 · 35f95d22
      Linus Torvalds 提交于
      Pull MTD fixes from David Woodhouse:
       "The most important part of this is that it fixes a regression in
        Samsung NAND chip detection, introduced by some rework which went into
        3.7.  The initial fix wasn't quite complete, so it's in two parts.  In
        fact the first part is committed twice (Artem committed his own copy
        of the same patch) and I've merged Artem's tree into mine which
        already had that fix.
      
        I'd have recommitted that to make it somewhat cleaner, but figured by
        this point in the release cycle it was better to merge *exactly* the
        commits which have been in linux-next.
      
        If I'd recommitted, I'd also omit the sparse warning fix.  But it's
        there, and it's harmless — just marking one function as 'static' in
        onenand code.
      
        This also includes a couple more fixes for stable: an AB-BA deadlock
        in JFFS2, and an invalid range check in slram."
      
      * tag 'for-linus-20121123' of git://git.infradead.org/mtd-2.6:
        mtd: nand: fix Samsung SLC detection regression
        mtd: nand: fix Samsung SLC NAND identification regression
        jffs2: Fix lock acquisition order bug in jffs2_write_begin
        mtd: onenand: Make flexonenand_set_boundary static
        mtd: slram: invalid checking of absolute end address
        mtd: ofpart: Fix incorrect NULL check in parse_ofoldpart_partitions()
        mtd: nand: fix Samsung SLC NAND identification regression
      35f95d22
    • L
      Merge tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 5e351cdc
      Linus Torvalds 提交于
      Pull device tree regression fix from Grant Likely:
       "Simple build regression fix for DT device drivers on Sparc.  An
        earlier change had masked out the of_iomap() helper on SPARC."
      
      * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux-2.6:
        of/address: sparc: Declare of_iomap as an extern function for sparc again
      5e351cdc
    • L
      Merge tag 'pm-for-3.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a0543d64
      Linus Torvalds 提交于
      Pull power management update from Rafael Wysocki:
       "Fix for an incorrect error condition check in device PM QoS code that
        may lead to an Oops from Guennadi Liakhovetski."
      
      * tag 'pm-for-3.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / QoS: fix wrong error-checking condition
      a0543d64
    • L
      Merge tag 'md-3.7-fixes' of git://neil.brown.name/md · 1d838d70
      Linus Torvalds 提交于
      Pull md fixes from NeilBrown:
       "Several bug fixes for md in 3.7:
      
         - raid5 discard has problems
         - raid10 replacement devices have problems
         - bad block lock seqlock usage has problems
         - dm-raid doesn't free everything"
      
      * tag 'md-3.7-fixes' of git://neil.brown.name/md:
        md/raid10: decrement correct pending counter when writing to replacement.
        md/raid10: close race that lose writes lost when replacement completes.
        md/raid5: Make sure we clear R5_Discard when discard is finished.
        md/raid5: move resolving of reconstruct_state earlier in stripe_handle.
        md/raid5: round discard alignment up to power of 2.
        md: make sure everything is freed when dm-raid stops an array.
        md: Avoid write invalid address if read_seqretry returned true.
        md: Reassigned the parameters if read_seqretry returned true in func md_is_badblock.
      1d838d70
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · a8946afe
      Linus Torvalds 提交于
      Pull block layer fixes from Jens Axboe:
       "Distilled down version of bug fixes for 3.7.  The patches have been
        well tested.  If you notice that commit dates are from today, it's
        because I pulled less important bits out and shuffled them into the
        3.8 mix.  Apart from that, no changes, base still the same.
      
        It contains:
      
         - Fix for aoe, don't run request_fn while it's plugged.
      
         - Fix for a regression in floppy since 3.6, which causes problems if
           no floppy is found.
      
         - Stable fix for blk_exec(), don't touch a request after it has been
           sent to the scheduler (and the device as well).
      
         - Five fixes for various nasties in mtip32xx."
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        block: Don't access request after it might be freed
        mtip32xx: Fix padding issue
        aoe: avoid running request handler on plugged queue
        mtip32xx: fix potential NULL pointer dereference in mtip_timeout_function()
        mtip32xx: fix shift larger than type warning
        mtip32xx: Fix incorrect mask used for erase mode
        mtip32xx: Fix to make lba address correct in big-endian systems
        mtip32xx: fix potential crash on SEC_ERASE_UNIT
        dm: fix deadlock with request based dm and queue request_fn recursion
        floppy: destroy floppy workqueue before cleaning up the queue
      a8946afe
    • A
      of/address: sparc: Declare of_iomap as an extern function for sparc again · 0e622d39
      Andreas Larsson 提交于
      This bug-fix makes sure that of_iomap is defined extern for sparc so that the
      sparc-specific implementation of_iomap is once again used when including
      include/linux/of_address.h in a sparc context. OF_GPIO that is now available for
      sparc relies on this.
      
      The bug was inadvertently introduced in a850a755, "of/address: add empty static
      inlines for !CONFIG_OF", that added a static dummy inline for of_iomap when
      !CONFIG_OF_ADDRESS. However, CONFIG_OF_ADDRESS is never defined for sparc, but
      there is a sparc-specific implementation /arch/sparc/kernel/of_device_common.c.
      
      This fix takes the same approach as 0bce04be that solved the equivalent problem
      for of_address_to_resource.
      Signed-off-by: NAndreas Larsson <andreas@gaisler.com>
      Acked-by: NDavid Miller <davem@davemloft.net>
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      0e622d39
    • L
      Merge tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2/linux · f789dcc7
      Linus Torvalds 提交于
      Pull omapdss fixes from Tomi Valkeinen:
       "Here are a few OMAPDSS fixes for the next -rc.  I'm sending these
        directly to you, and quite late, as the fbdev tree maintainer
        (Florian) has been busy with his work and hasn't had time to manage
        the fb patches."
      
      * tag 'omapdss-for-3.7-rc' of git://gitorious.org/linux-omap-dss2/linux:
        OMAPDSS: do not fail if dpll4_m4_ck is missing
        OMAPFB: Fix possible null pointer dereferencing
        OMAPDSS: HDMI: fix missing unlock on error in hdmi_dump_regs()
        omapdss: dss: Fix clocks on OMAP363x
        OMAPDSS: DSI: fix dsi_get_dsidev_from_id()
      f789dcc7
    • L
      Merge branch 'i2c-embedded/for-current' of git://git.pengutronix.de/git/wsa/linux · 33f14593
      Linus Torvalds 提交于
      Pull i2c fixes from Wolfram Sang:
       "Bugfixes for the i2c subsystem.
      
        Except for a few one-liners, there is mainly one revert because of an
        overlooked dependency.  Since there is no linux-next at the moment, I
        did some extra testing, and all was fine for me."
      
      * 'i2c-embedded/for-current' of git://git.pengutronix.de/git/wsa/linux:
        i2c: mxs: Handle i2c DMA failure properly
        i2c: s3c2410: Fix code to free gpios
        i2c: omap: ensure writes to dev->buf_len are ordered
        Revert "ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints"
        i2c: at91: fix SMBus quick command
      33f14593
    • L
      Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · f470b8c2
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "The highlight of this update is the fixes for ASoC kirkwood by
        Russell.  In addition to that, a couple of regression fixes for
        HD-audio due to the runtime PM support on 3.7, and other driver-
        specific regression fixes like USB MIDI on non-standard USB audio
        drivers."
      
      * tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: snd-usb: properly initialize the sync endpoint
        ALSA: hda - Cirrus: Correctly clear line_out_pins when moving to speaker
        ALSA: hda - Add support for Realtek ALC292
        ASoC: kirkwood-i2s: more pause-mode fixes
        ASoC: kirkwood-i2s: fix DMA underruns
        ASoC: kirkwood-i2s: fix DCO lock detection
        ASoC: kirkwood-dma: don't ignore other irq causes on error
        ASoC: kirkwood-dma: fix use of virt_to_phys()
        ALSA: hda - Limit runtime PM support only to known Intel chips
        ALSA: hda - Fix recursive suspend/resume call
        ALSA: ua101, usx2y: fix broken MIDI output
        ASoC: arizona: Fix typo - Swap value in 48k_rates[] and 44k1_rates[]
        ASoC: bells: Fix up git patch application failure
        ASoC: cs4271: free allocated GPIO
      f470b8c2
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · eb5aaedd
      Linus Torvalds 提交于
      Pull networkign fixes from David Miller:
       "Networking bug fixes, Cacio e Pepe edition:
      
        1) BNX2X accidently accesses chip rev specific registers without an
           appropriate guard, fix from Ariel Elior.
      
        2) When we removed the routing cache, we set ip_rt_max_size to ~0 just
           to keep reporting a value to userspace via sysfs.  But the ipv4
           IPSEC layer was using this to tune itself which is completely bogus
           to now do.  Fix from Steffen Klassert.
      
        3) Missing initialization in netfilter ipset code from Jozsef
           Kadlecsik.
      
        4) Check CTA_TIMEOUT_NAME length properly in netfilter cttimeout code,
           fix from Florian Westphal.
      
        5) After removing the routing cache, we inadvertantly are caching
           multicast routes that end up looping back locally, we cannot do
           that legitimately any more.  Fix from Julian Anastasov.
      
        6) Revert a race fix for 8139cp qemu/kvm that doesn't actually work
           properly on real hardware.  From Francois Romieu.
      
        7) Fixup errors in example command lines in VXLAN device docs."
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        bnx2x: remove redundant warning log
        vxlan: fix command usage in its doc
        8139cp: revert "set ring address before enabling receiver"
        ipv4: do not cache looped multicasts
        netfilter: cttimeout: fix buffer overflow
        netfilter: ipset: Fix range bug in hash:ip,port,net
        xfrm: Fix the gc threshold value for ipv4
      eb5aaedd
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · f3a443af
      Linus Torvalds 提交于
      Pull sparc fix from David Miller:
       "Bug fix from Al Viro"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: not any error from do_sigaltstack() should fail rt_sigreturn()
      f3a443af
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 45aaff06
      Linus Torvalds 提交于
      Pull one more ARM SoC fix from Olof Johansson:
       "I missed one pull request from Samsung with one fix in the previous
        batch.  Here it is -- a dma driver fix for an early version of silicon
        that they still support."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: EXYNOS: PL330 MDMA1 fix for revision 0 of Exynos4210 SOC
      45aaff06
    • G
      PM / QoS: fix wrong error-checking condition · a7227a0f
      Guennadi Liakhovetski 提交于
      dev_pm_qos_add_request() can return 0, 1, or a negative error code,
      therefore the correct error test is "if (error < 0)." Checking just for
      non-zero return code leads to erroneous setting of the req->dev pointer
      to NULL, which then leads to a repeated call to
      dev_pm_qos_add_ancestor_request() in st1232_ts_irq_handler(). This in turn
      leads to an Oops, when the I2C host adapter is unloaded and reloaded again
      because of the inconsistent state of its QoS request list.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a7227a0f
    • A
      bnx2x: remove redundant warning log · 4a25417c
      Ariel Elior 提交于
      fix bug where a register which was only meant to be read in 578xx/57712
      devices causes a bogus error message to be logged when read from other
      devices.
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4a25417c
    • Z
      vxlan: fix command usage in its doc · cc9b3101
      Zhi Yong Wu 提交于
        Some commands don't work in its example doc. The patch will fix it.
      Signed-off-by: NZhi Yong Wu <wuzhy@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cc9b3101
    • F
      8139cp: revert "set ring address before enabling receiver" · b26623da
      françois romieu 提交于
      This patch reverts b01af457.
      
      The original patch was tested with emulated hardware. Real
      hardware chokes.
      
      Fixes https://bugzilla.kernel.org/show_bug.cgi?id=47041Signed-off-by: NFrancois Romieu <romieu@fr.zoreil.com>
      Acked-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b26623da
    • M
      MPI: Fix compilation on MIPS with GCC 4.4 and newer · a3cea989
      Manuel Lauss 提交于
      Since 4.4 GCC on MIPS no longer recognizes the "h" constraint,
      leading to this build failure:
      
        CC      lib/mpi/generic_mpih-mul1.o
      lib/mpi/generic_mpih-mul1.c: In function 'mpihelp_mul_1':
      lib/mpi/generic_mpih-mul1.c:50:3: error: impossible constraint in 'asm'
      
      This patch updates MPI with the latest umul_ppm implementations for MIPS.
      Signed-off-by: NManuel Lauss <manuel.lauss@gmail.com>
      Cc: Linux-MIPS <linux-mips@linux-mips.org>
      Cc: Dmitry Kasatkin <dmitry.kasatkin@intel.com>
      Cc: James Morris <jmorris@namei.org>
      Patchwork: https://patchwork.linux-mips.org/patch/4612/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a3cea989
    • A
      MIPS: Fix crash that occurs when function tracing is enabled · f93a1a00
      Al Cooper 提交于
      A recent patch changed some irq routines from inlines to functions.
      These routines are called by the tracer code. Now that they're functions,
      if they are compiled for function tracing they will call the tracer
      and crash the system due to infinite recursion. The fix disables
      tracing in these functions by using "notrace" in the function
      definition.
      Signed-off-by: NAl Cooper <alcooperx@gmail.com>
      Reviewed-by: NDavid Daney <david.daney@cavium.com>
      Pathchwork: https://patchwork.linux-mips.org/patch/4564/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      f93a1a00
    • R
      MIPS: Merge overlapping bootmem ranges · 0ec7ec75
      Ralf Baechle 提交于
      Without this, we may end up with something like this in /proc/iomem:
      
      01100000-014fffff : System RAM
        01100000-013bf48f : Kernel code
        013bf490-0149e01f : Kernel data
      01500000-0c0fffff : System RAM
      
      but the two System RAM ranges should be one single range.  This particular
      case will result in kexec failure on Octeon systems if the kernel being
      loaded by kexec is bigger than the already running kernel.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      0ec7ec75