1. 27 Feb, 2020 2 commits
    • Sahitya Tummala's avatar
      f2fs: fix the panic in do_checkpoint() · bf22c3cc
      Sahitya Tummala authored
      There could be a scenario where f2fs_sync_meta_pages() will not
      ensure that all F2FS_DIRTY_META pages are submitted for IO. Thus,
      resulting in the below panic in do_checkpoint() -
      
      f2fs_bug_on(sbi, get_pages(sbi, F2FS_DIRTY_META) &&
      				!f2fs_cp_error(sbi));
      
      This can happen in a low-memory condition, where shrinker could
      also be doing the writepage operation (stack shown below)
      at the same time when checkpoint is running on another core.
      
      schedule
      down_write
      f2fs_submit_page_write -> by this time, this page in page cache is tagged
      			as PAGECACHE_TAG_WRITEBACK and PAGECACHE_TAG_DIRTY
      			is cleared, due to which f2fs_sync_meta_pages()
      			cannot sync this page in do_checkpoint() path.
      f2fs_do_write_meta_page
      __f2fs_write_meta_page
      f2fs_write_meta_page
      shrink_page_list
      shrink_inactive_list
      shrink_node_memcg
      shrink_node
      kswapd
      Signed-off-by: default avatarSahitya Tummala <stummala@codeaurora.org>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      bf22c3cc
    • Chao Yu's avatar
      f2fs: fix to wait all node page writeback · dc5a9412
      Chao Yu authored
      There is a race condition that we may miss to wait for all node pages
      writeback, fix it.
      
      - fsync()				- shrink
       - f2fs_do_sync_file
      					 - __write_node_page
      					  - set_page_writeback(page#0)
      					  : remove DIRTY/TOWRITE flag
        - f2fs_fsync_node_pages
        : won't find page #0 as TOWRITE flag was removeD
        - f2fs_wait_on_node_pages_writeback
        : wont' wait page #0 writeback as it was not in fsync_node_list list.
      					   - f2fs_add_fsync_node_entry
      
      Fixes: 50fa53ec ("f2fs: fix to avoid broken of dnode block list")
      Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      dc5a9412
  2. 13 Feb, 2020 3 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b19e8c68
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Summary below, but it's all reasonably straightforward. There are some
        more fixes on the horizon, but nothing disastrous yet.
      
        Summary:
      
         - Fix build when KASLR is enabled but CONFIG_ARCH_RANDOM is not set
      
         - Fix context-switching of SSBS state on systems that implement it
      
         - Fix spinlock compiler warning introduced during the merge window
      
         - Fix incorrect header inclusion (linux/clk-provider.h)
      
         - Use SYSCTL_{ZERO,ONE} instead of rolling our own static variables
      
         - Don't scream if optional SMMUv3 PMU irq is missing
      
         - Remove some unused function prototypes"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: time: Replace <linux/clk-provider.h> by <linux/of_clk.h>
        arm64: Fix CONFIG_ARCH_RANDOM=n build
        perf/smmuv3: Use platform_get_irq_optional() for wired interrupt
        arm64/spinlock: fix a -Wunused-function warning
        arm64: ssbs: Fix context-switch when SSBS is present on all CPUs
        arm64: use shared sysctl constants
        arm64: Drop do_el0_ia_bp_hardening() & do_sp_pc_abort() declarations
      b19e8c68
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 1d40890a
      Linus Torvalds authored
      Pull GPIO fixes from Linus Walleij:
      
       - Revert two patches to gpio_do_set_config() and implement the proper
         solution that works, also drop an unecessary call in set_config()
      
       - Fix up the lockdep class for hierarchical IRQ domains.
      
       - Remove some bridge code for line directions.
      
       - Fix a register access bug in the Xilinx driver.
      
      * tag 'gpio-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: sifive: fix static checker warning
        spmi: pmic-arb: Set lockdep class for hierarchical irq domains
        gpio: xilinx: Fix bug where the wrong GPIO register is written to
        gpiolib: remove unnecessary argument from set_config call
        gpio: bd71828: Remove unneeded defines for GPIO_LINE_DIRECTION_IN/OUT
        MAINTAINERS: Sort entries in database for GPIO
        gpiolib: fix gpio_do_set_config()
        Revert "gpiolib: remove set but not used variable 'config'"
        Revert "gpiolib: Remove duplicated function gpio_do_set_config()"
      1d40890a
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 64ae1342
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This fixes a Kconfig anomaly when lib/crypto is enabled without Crypto
        API"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: Kconfig - allow tests to be disabled when manager is disabled
      64ae1342
  3. 12 Feb, 2020 5 commits
  4. 11 Feb, 2020 6 commits
  5. 10 Feb, 2020 24 commits