1. 26 4月, 2017 1 次提交
    • J
      x86/unwind: Silence more entry-code related warnings · b0d50c7b
      Josh Poimboeuf 提交于
      Borislav Petkov reported the following unwinder warning:
      
        WARNING: kernel stack regs at ffffc9000024fea8 in udevadm:92 has bad 'bp' value 00007fffc4614d30
        unwind stack type:0 next_sp:          (null) mask:0x6 graph_idx:0
        ffffc9000024fea8: 000055a6100e9b38 (0x55a6100e9b38)
        ffffc9000024feb0: 000055a6100e9b35 (0x55a6100e9b35)
        ffffc9000024feb8: 000055a6100e9f68 (0x55a6100e9f68)
        ffffc9000024fec0: 000055a6100e9f50 (0x55a6100e9f50)
        ffffc9000024fec8: 00007fffc4614d30 (0x7fffc4614d30)
        ffffc9000024fed0: 000055a6100eaf50 (0x55a6100eaf50)
        ffffc9000024fed8: 0000000000000000 ...
        ffffc9000024fee0: 0000000000000100 (0x100)
        ffffc9000024fee8: ffff8801187df488 (0xffff8801187df488)
        ffffc9000024fef0: 00007ffffffff000 (0x7ffffffff000)
        ffffc9000024fef8: 0000000000000000 ...
        ffffc9000024ff10: ffffc9000024fe98 (0xffffc9000024fe98)
        ffffc9000024ff18: 00007fffc4614d00 (0x7fffc4614d00)
        ffffc9000024ff20: ffffffffffffff10 (0xffffffffffffff10)
        ffffc9000024ff28: ffffffff811c6c1f (SyS_newlstat+0xf/0x10)
        ffffc9000024ff30: 0000000000000010 (0x10)
        ffffc9000024ff38: 0000000000000296 (0x296)
        ffffc9000024ff40: ffffc9000024ff50 (0xffffc9000024ff50)
        ffffc9000024ff48: 0000000000000018 (0x18)
        ffffc9000024ff50: ffffffff816b2e6a (entry_SYSCALL_64_fastpath+0x18/0xa8)
        ...
      
      It unwinded from an interrupt which came in right after entry code
      called into a C syscall handler, before it had a chance to set up the
      frame pointer, so regs->bp still had its user space value.
      
      Add a check to silence warnings in such a case, where an interrupt
      has occurred and regs->sp is almost at the end of the stack.
      Reported-by: NBorislav Petkov <bp@suse.de>
      Tested-by: NBorislav Petkov <bp@suse.de>
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: c32c47c6 ("x86/unwind: Warn on bad frame pointer")
      Link: http://lkml.kernel.org/r/c695f0d0d4c2cfe6542b90e2d0520e11eb901eb5.1493171120.git.jpoimboe@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      b0d50c7b
  2. 21 4月, 2017 1 次提交
    • S
      x86/ftrace: Fix ebp in ftrace_regs_caller that screws up unwinder · dc912c30
      Steven Rostedt (VMware) 提交于
      Fengguang Wu's zero day bot triggered a stack unwinder dump. This can
      be easily triggered when CONFIG_FRAME_POINTERS is enabled and -mfentry
      is in use on x86_32.
      
       ># cd /sys/kernel/debug/tracing
       ># echo 'p:schedule schedule' > kprobe_events
       ># echo stacktrace > events/kprobes/schedule/trigger
      
      This is because the code that implemented fentry in the ftrace_regs_caller
      tried to use the least amount of #ifdefs, and modified ebp when
      CC_USE_FENTRY was defined to point to the parent ip as it does when
      CC_USE_FENTRY is not defined. But when CONFIG_FRAME_POINTERS is set, it
      corrupts the ebp register for this frame while doing the tracing.
      
      NOTE, it does not corrupt ebp in any other way. It is just a bad frame
      pointer when calling into the tracing infrastructure. The original ebp is
      restored before returning from the fentry call. But if a stack trace is
      performed inside the tracing, the unwinder will notice the bad ebp.
      
      Instead of toying with ebp with CC_USING_FENTRY, just slap the parent ip
      into the second parameter (%edx), and have an #else that does it the
      original way.
      
      The unwinder will unfortunately miss the function being traced, as the
      stack frame is not set up yet for it, as it is for x86_64. But fixing that
      is a bit more complex and did not work before anyway.
      
      This has been tested with and without FRAME_POINTERS being set while using
      -mfentry, as well as using an older compiler that uses mcount.
      Analyzed-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Fixes: 644e0e8d ("x86/ftrace: Add -mfentry support to x86_32 with DYNAMIC_FTRACE set")
      Reported-by: Nkernel test robot <fengguang.wu@intel.com>
      Signed-off-by: NSteven Rostedt (VMware) <rostedt@goodmis.org>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Link: https://lists.01.org/pipermail/lkp/2017-April/006165.html
      Link: http://lkml.kernel.org/r/20170420172236.7af7f6e5@gandalf.local.homeSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      dc912c30
  3. 19 4月, 2017 3 次提交
  4. 18 4月, 2017 1 次提交
    • J
      x86/unwind: Ensure stack pointer is aligned · e335bb51
      Josh Poimboeuf 提交于
      With frame pointers disabled, on some older versions of GCC (like
      4.8.3), it's possible for the stack pointer to get aligned at a
      half-word boundary:
      
        00000000000004d0 <fib_table_lookup>:
             4d0:       41 57                   push   %r15
             4d2:       41 56                   push   %r14
             4d4:       41 55                   push   %r13
             4d6:       41 54                   push   %r12
             4d8:       55                      push   %rbp
             4d9:       53                      push   %rbx
             4da:       48 83 ec 24             sub    $0x24,%rsp
      
      In such a case, the unwinder ends up reading the entire stack at the
      wrong alignment.  Then the last read goes past the end of the stack,
      hitting the stack guard page:
      
        BUG: stack guard page was hit at ffffc900217c4000 (stack is ffffc900217c0000..ffffc900217c3fff)
        kernel stack overflow (page fault): 0000 [#1] SMP
        ...
      
      Fix it by ensuring the stack pointer is properly aligned before
      unwinding.
      Reported-by: NJirka Hladky <jhladky@redhat.com>
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Fixes: 7c7900f8 ("x86/unwind: Add new unwind interface and implementations")
      Link: http://lkml.kernel.org/r/cff33847cc9b02fa548625aa23268ac574460d8d.1492436590.git.jpoimboe@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      e335bb51
  5. 14 4月, 2017 4 次提交
  6. 03 4月, 2017 1 次提交
    • P
      debug: Fix __bug_table[] in arch linker scripts · b5effd38
      Peter Zijlstra 提交于
      The kbuild test robot reported this build failure on a number
      of architectures:
      
       >         make.cross ARCH=arm
       >    lib/lib.a(bug.o): In function `find_bug':
       > >> lib/bug.c:135: undefined reference to `__start___bug_table'
       > >> lib/bug.c:135: undefined reference to `__stop___bug_table'
      
      Caused by:
      
        19d43626 ("debug: Add _ONCE() logic to report_bug()")
      
      Which moved the BUG_TABLE from RO_DATA_SECTION() to RW_DATA_SECTION(),
      but a number of architectures don't use RW_DATA_SECTION(), so they
      ended up with no __bug_table[] ...
      
      Ideally all those would use RW_DATA_SECTION() in their linker scripts,
      but that's for another day.
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: kbuild test robot <fengguang.wu@intel.com>
      Cc: kbuild-all@01.org
      Cc: tipbuild@zytor.com
      Link: http://lkml.kernel.org/r/20170330154927.o6qmgfp4bdhrajbm@hirez.programming.kicks-ass.netSigned-off-by: NIngo Molnar <mingo@kernel.org>
      b5effd38
  7. 30 3月, 2017 2 次提交
    • P
      debug: Add _ONCE() logic to report_bug() · 19d43626
      Peter Zijlstra 提交于
      Josh suggested moving the _ONCE logic inside the trap handler, using a
      bit in the bug_entry::flags field, avoiding the need for the extra
      variable.
      
      Sadly this only works for WARN_ON_ONCE(), since the others have
      printk() statements prior to triggering the trap.
      
      Still, this saves a fair amount of text and some data:
      
        text         data       filename
        10682460     4530992    defconfig-build/vmlinux.orig
        10665111     4530096    defconfig-build/vmlinux.patched
      Suggested-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      19d43626
    • A
      x86/debug: Define BUG() again for !CONFIG_BUG · 70579a86
      Arnd Bergmann 提交于
      The latest change to the BUG() macro inadvertently reverted the earlier
      commit:
      
        b06dd879 ("x86: always define BUG() and HAVE_ARCH_BUG, even with !CONFIG_BUG")
      
      ... that sanitized the behavior with CONFIG_BUG=n.
      
      I noticed this as some warnings have appeared again that were previously
      fixed as a side effect of that patch:
      
        kernel/seccomp.c: In function '__seccomp_filter':
        kernel/seccomp.c:670:1: error: no return statement in function returning non-void [-Werror=return-type]
        ...
      
      This combines the two patches and uses the ud2 macro to define BUG()
      in case of CONFIG_BUG=n.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Josh Poimboeuf <jpoimboe@redhat.com>
      Cc: Josh Triplett <josh@joshtriplett.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: 9a93848f ("x86/debug: Implement __WARN() using UD0")
      Link: http://lkml.kernel.org/r/20170329211646.2707365-1-arnd@arndb.deSigned-off-by: NIngo Molnar <mingo@kernel.org>
      70579a86
  8. 27 3月, 2017 1 次提交
    • P
      x86/debug: Implement __WARN() using UD0 · 9a93848f
      Peter Zijlstra 提交于
      By using "UD0" for WARN()s we remove the function call and its possible
      __FILE__ and __LINE__ immediate arguments from the instruction stream.
      
      Total image size will not change much, what we win in the instruction
      stream we'll lose because of the __bug_table entries. Still, saves on
      I$ footprint and the total image size does go down a bit.
      
            text    data       filename
        10702123    4530992    defconfig-build/vmlinux.orig
        10682460    4530992    defconfig-build/vmlinux.patched
      
      (UML didn't seem to use GENERIC_BUG at all, so remove it)
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Reviewed-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Richard Weinberger <richard.weinberger@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      9a93848f
  9. 24 3月, 2017 6 次提交
  10. 23 3月, 2017 1 次提交
  11. 22 3月, 2017 6 次提交
    • H
      mm, swap: Remove WARN_ON_ONCE() in free_swap_slot() · 093b995e
      Huang Ying 提交于
      Before commit 452b94b8 ("mm/swap: don't BUG_ON() due to
      uninitialized swap slot cache"), the following bug is reported,
      
        ------------[ cut here ]------------
        kernel BUG at mm/swap_slots.c:270!
        invalid opcode: 0000 [#1] SMP
        CPU: 5 PID: 1745 Comm: (sd-pam) Not tainted 4.11.0-rc1-00243-g24c534bb #1
        Hardware name: System manufacturer System Product Name/Z170-K, BIOS 1803 05/06/2016
        RIP: 0010:free_swap_slot+0xba/0xd0
        Call Trace:
         swap_free+0x36/0x40
         do_swap_page+0x360/0x6d0
         __handle_mm_fault+0x880/0x1080
         handle_mm_fault+0xd0/0x240
         __do_page_fault+0x232/0x4d0
         do_page_fault+0x20/0x70
         page_fault+0x22/0x30
        ---[ end trace aefc9ede53e0ab21 ]---
      
      This is raised by the BUG_ON(!swap_slot_cache_initialized) in
      free_swap_slot().  This is incorrect, because even if the swap slots
      cache fails to be initialized, the swap should operate properly without
      the swap slots cache.  And the use_swap_slot_cache check later in the
      function will protect the uninitialized swap slots cache case.
      
      In commit 452b94b8, the BUG_ON() is replaced by WARN_ON_ONCE().  In
      the patch, the WARN_ON_ONCE() is removed too.
      Reported-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: NTim Chen <tim.c.chen@linux.intel.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Signed-off-by: N"Huang, Ying" <ying.huang@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      093b995e
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1f020713
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "Nine small fixes: the biggest is probably finally sorting out Kconfig
        issues with lpfc nvme.  There are some performance fixes for megaraid
        and hpsa and a static checker fix"
      
      [ Johannes Thumshirn points out that there still seems to be more lpfc
        vs nvme config issues.  Oh well.   - Linus ]
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: lpfc: Finalize Kconfig options for nvme
        scsi: ufs: don't check unsigned type for a negative value
        scsi: hpsa: do not timeout reset operations
        scsi: hpsa: limit outstanding rescans
        scsi: hpsa: update check for logical volume status
        scsi: megaraid_sas: Driver version upgrade
        scsi: megaraid_sas: raid6 also require cpuSel check same as raid5
        scsi: megaraid_sas: add correct return type check for ldio hint logic for raid1
        scsi: megaraid_sas: enable intx only if msix request fails
      1f020713
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 2c867ac3
      Linus Torvalds 提交于
      Pull HID fixes from Jiri Kosina:
      
       - regression fixes for Wacom devices, from Aaron Armstrong Skomra and
         Ping Cheng
      
       - memory leak in hid-sony driver from Roderick Colenbrander
      
       - new device IDs support from Oscar Campos and Daniel Drake
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: wacom: generic: Wacom mouse is only provided for opaque tablets
        HID: corsair: Add driver Scimitar Pro RGB gaming mouse 1b1c:1b3e support to hid-corsair
        HID: corsair: support for K65-K70 Rapidfire and Scimitar Pro RGB
        HID: wacom: don't manually release resources for the EKR
        HID: wacom: Correct Intuos Pro 2 resolution
        HID: sony: Fix input device leak when connecting a DS4 twice using USB/BT
        HID: chicony: Add support for another ASUS Zen AiO keyboard
      2c867ac3
    • L
      Merge tag 'gpio-v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 47191777
      Linus Torvalds 提交于
      Pull GPIO fixes from Linus Walleij:
       "Here is the first set of GPIO fixes for 4.11. It was delayed a bit
        beacuse I was chicken when linux-next was not rotating last week.
      
        This hits the ST serial driver in drivers/tty/serial and that has an
        ACK from Greg, he suggested to keep the old GPIO fwnode API around to
        smoothen things in the merge Windod and those have now served their
        purpose so we take them out and convert the last driver to the new
        API.
      
        Apart from that it's fixes as usual.
      
        Summary:
      
         - set the parent on the Altera A10SR driver, also fix high level
           IRQs.
      
         - fix error path on the mockup driver.
      
         - compilation noise about unused functions fixed.
      
         - fix missed interrupts on the MCP23S08 expander, this is also tagged
           for stable.
      
         - retire the interrim helpers devm_get_gpiod_from_child() used to
           smoothen merging in the merge window"
      
      * tag 'gpio-v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio:mcp23s08 Fixed missing interrupts
        serial: st-asc: Use new GPIOD API to obtain RTS pin
        gpio: altera: Use handle_level_irq when configured as a level_high
        gpio: xgene: mark PM functions as __maybe_unused
        gpio: mockup: return -EFAULT if copy_from_user() fails
        gpio: altera-a10sr: Set gpio_chip parent property
      47191777
    • L
      Merge tag 'rproc-v4.11-fixes' of git://github.com/andersson/remoteproc · 8a011508
      Linus Torvalds 提交于
      Pull remoteproc fix from Bjorn Andersson:
       "This fixes a Kbuild dependency issue related to the Qualcomm
        remoteproc drivers"
      
      * tag 'rproc-v4.11-fixes' of git://github.com/andersson/remoteproc:
        remoteproc: qcom: fix QCOM_SMD dependencies
      8a011508
    • L
      Merge tag 'for-f2fs-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 689b957b
      Linus Torvalds 提交于
      Pull f2fs fixes from Jaegeuk Kim:
      
       - fix performance regression reported by lkp-rebot
      
       - fix potential data lost after power-cut due to SSR reallocation
      
      * tag 'for-f2fs-4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: combine nat_bits and free_nid_bitmap cache
        f2fs: skip scanning free nid bitmap of full NAT blocks
        f2fs: use __set{__clear}_bit_le
        f2fs: declare static functions
        f2fs: don't overwrite node block by SSR
      689b957b
  12. 21 3月, 2017 6 次提交
  13. 20 3月, 2017 7 次提交
    • C
      f2fs: combine nat_bits and free_nid_bitmap cache · 7041d5d2
      Chao Yu 提交于
      Both nat_bits cache and free_nid_bitmap cache provide same functionality
      as a intermediate cache between free nid cache and disk, but with
      different granularity of indicating free nid range, and different
      persistence policy. nat_bits cache provides better persistence ability,
      and free_nid_bitmap provides better granularity.
      
      In this patch we combine advantage of both caches, so finally policy of
      the intermediate cache would be:
      - init: load free nid status from nat_bits into free_nid_bitmap
      - lookup: scan free_nid_bitmap before load NAT blocks
      - update: update free_nid_bitmap in real-time
      - persistence: udpate and persist nat_bits in checkpoint
      
      This patch also resolves performance regression reported by lkp-robot.
      
      commit:
        4ac91242 ("f2fs: introduce free nid bitmap")
        d00030cf9cd0bb96fdccc41e33d3c91dcbb672ba ("f2fs: use __set{__clear}_bit_le")
        1382c0f3f9d3f936c8bc42ed1591cf7a593ef9f7 ("f2fs: combine nat_bits and free_nid_bitmap cache")
      
      4ac91242 d00030cf9cd0bb96fdccc41e33 1382c0f3f9d3f936c8bc42ed15
      ---------------- -------------------------- --------------------------
               %stddev     %change         %stddev     %change         %stddev
                   \          |                \          |                \
           77863 ±  0%      +2.1%      79485 ±  1%     +50.8%     117404 ±  0%  aim7.jobs-per-min
          231.63 ±  0%      -2.0%     227.01 ±  1%     -33.6%     153.80 ±  0%  aim7.time.elapsed_time
          231.63 ±  0%      -2.0%     227.01 ±  1%     -33.6%     153.80 ±  0%  aim7.time.elapsed_time.max
          896604 ±  0%      -0.8%     889221 ±  3%     -20.2%     715260 ±  1%  aim7.time.involuntary_context_switches
            2394 ±  1%      +4.6%       2503 ±  1%      +3.7%       2481 ±  2%  aim7.time.maximum_resident_set_size
            6240 ±  0%      -1.5%       6145 ±  1%     -14.1%       5360 ±  1%  aim7.time.system_time
         1111357 ±  3%      +1.9%    1132509 ±  2%      -6.2%    1041932 ±  2%  aim7.time.voluntary_context_switches
      ...
      Signed-off-by: NChao Yu <yuchao0@huawei.com>
      Tested-by: NXiaolong Ye <xiaolong.ye@intel.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      7041d5d2
    • C
      f2fs: skip scanning free nid bitmap of full NAT blocks · 586d1492
      Chao Yu 提交于
      This patch adds to account free nids for each NAT blocks, and while
      scanning all free nid bitmap, do check count and skip lookuping in
      full NAT block.
      Signed-off-by: NChao Yu <yuchao0@huawei.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      586d1492
    • J
      f2fs: use __set{__clear}_bit_le · 23380b85
      Jaegeuk Kim 提交于
      This patch uses __set{__clear}_bit_le for highter speed.
      Reviewed-by: NChao Yu <yuchao0@huawei.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      23380b85
    • J
      f2fs: declare static functions · 9f7e4a2c
      Jaegeuk Kim 提交于
      This is to avoid build warning reported by kbuild test robot.
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      9f7e4a2c
    • J
      f2fs: don't overwrite node block by SSR · 720037f9
      Jaegeuk Kim 提交于
      This patch fixes that SSR can overwrite previous warm node block consisting of
      a node chain since the last checkpoint.
      
      Fixes: 5b6c6be2 ("f2fs: use SSR for warm node as well")
      Reviewed-by: NChao Yu <yuchao0@huawei.com>
      Signed-off-by: NJaegeuk Kim <jaegeuk@kernel.org>
      720037f9
    • L
      Linux 4.11-rc3 · 97da3854
      Linus Torvalds 提交于
      97da3854
    • L
      mm/swap: don't BUG_ON() due to uninitialized swap slot cache · 452b94b8
      Linus Torvalds 提交于
      This BUG_ON() triggered for me once at shutdown, and I don't see a
      reason for the check.  The code correctly checks whether the swap slot
      cache is usable or not, so an uninitialized swap slot cache is not
      actually problematic afaik.
      
      I've temporarily just switched the BUG_ON() to a WARN_ON_ONCE(), since
      I'm not sure why that seemingly pointless check was there.  I suspect
      the real fix is to just remove it entirely, but for now we'll warn about
      it but not bring the machine down.
      
      Cc: "Huang, Ying" <ying.huang@intel.com>
      Cc: Tim Chen <tim.c.chen@linux.intel.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      452b94b8