03 Jan, 2020

4 commits


30 Dec, 2019

4 commits

  • Linus Torvalds
     
  • Pull RISC-V fixes from Paul Walmsley:
    "One important fix for RISC-V:

    - Redirect any incoming syscall with an ID less than -1 to
    sys_ni_syscall, rather than allowing them to fall through into the
    syscall handler.

    and two minor build fixes:

    - Export __asm_copy_{from,to}_user() from where they are defined.
    This fixes a build error triggered by some randconfigs.

    - Export flush_icache_all(). I'd resisted this before, since
    historically we didn't want modules to be able to flush the I$
    directly; but apparently everyone else is doing it now"

    * tag 'riscv/for-v5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    riscv: export flush_icache_all to modules
    riscv: reject invalid syscalls below -1
    riscv: fix compile failure with EXPORT_SYMBOL() & !MMU

    Linus Torvalds
     
  • Pull /proc/locks formatting fix from Jeff Layton:
    "This is a trivial fix for a _very_ long standing bug in /proc/locks
    formatting. Ordinarily, I'd wait for the merge window for something
    like this, but it is making it difficult to validate some overlayfs
    fixes.

    I've also gone ahead and marked this for stable"

    * tag 'locks-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
    locks: print unsigned ino in /proc/locks

    Linus Torvalds
     
  • Pull cifs fixes from Steve French:
    "One performance fix for large directory searches, and one minor style
    cleanup noticed by Clang"

    * tag '5.5-rc3-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: Optimize readdir on reparse points
    cifs: Adjust indentation in smb2_open_file

    Linus Torvalds
     

29 Dec, 2019

1 commit


28 Dec, 2019

11 commits

  • This is needed by LKDTM (crash dump test module), it calls
    flush_icache_range(), which on RISC-V turns into flush_icache_all(). On
    other architectures, the actual implementation is exported, so follow
    that precedence and export it here too.

    Fixes build of CONFIG_LKDTM that fails with:
    ERROR: "flush_icache_all" [drivers/misc/lkdtm/lkdtm.ko] undefined!

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Walmsley

    Olof Johansson
     
  • Running "stress-ng --enosys 4 -t 20 -v" showed a large number of kernel oops
    with "Unable to handle kernel paging request at virtual address" message. This
    happens when enosys stressor starts testing random non-valid syscalls.

    I forgot to redirect any syscall below -1 to sys_ni_syscall.

    With the patch kernel oops messages are gone while running stress-ng enosys
    stressor.

    Signed-off-by: David Abdurachmanov
    Fixes: 5340627e3fe0 ("riscv: add support for SECCOMP and SECCOMP_FILTER")
    Signed-off-by: Paul Walmsley

    David Abdurachmanov
     
  • When support for !MMU was added, the declaration of
    __asm_copy_to_user() & __asm_copy_from_user() were #ifdefed
    out hence their EXPORT_SYMBOL() give an error message like:
    .../riscv_ksyms.c:13:15: error: '__asm_copy_to_user' undeclared here
    .../riscv_ksyms.c:14:15: error: '__asm_copy_from_user' undeclared here

    Since these symbols are not defined with !MMU it's wrong to export them.
    Same for __clear_user() (even though this one is also declared in
    include/asm-generic/uaccess.h and thus doesn't give an error message).

    Fix this by doing the EXPORT_SYMBOL() directly where these symbols
    are defined: inside lib/uaccess.S itself.

    Fixes: 6bd33e1ece52 ("riscv: fix compile failure with EXPORT_SYMBOL() & !MMU")
    Reported-by: kbuild test robot
    Cc: Christoph Hellwig
    Cc: Palmer Dabbelt
    Cc: Paul Walmsley
    Signed-off-by: Luc Van Oostenryck
    Signed-off-by: Paul Walmsley

    Luc Van Oostenryck
     
  • Pull SCSI fixes from James Bottomley:
    "Four fixes and one spelling update, all in drivers: two in lpfc and
    the rest in mp3sas, cxgbi and target"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: target/iblock: Fix protection error with blocks greater than 512B
    scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
    scsi: lpfc: fix spelling mistakes of asynchronous
    scsi: lpfc: fix build failure with DEBUGFS disabled
    scsi: mpt3sas: Fix double free in attach error handling

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Post-xmas food coma recovery fixes. Only three fixes for i915 since I
    expect most people are holidaying.

    i915:
    - power management rc6 fix
    - framebuffer tracking fix
    - display power management ratelimit fix"

    * tag 'drm-fixes-2019-12-28' of git://anongit.freedesktop.org/drm/drm:
    drm/i915: Hold reference to intel_frontbuffer as we track activity
    drm/i915/gt: Ratelimit display power w/a
    drm/i915/pmu: Ensure monotonic rc6

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull Kselftest fixes from Shuah Khan:

    - rseq build failures fixes related to glibc 2.30 compatibility from
    Mathieu Desnoyers

    - Kunit fixes and cleanups from SeongJae Park

    - Fixes to filesystems/epoll, firmware, and livepatch build failures
    and skip handling.

    * tag 'linux-kselftest-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    rseq/selftests: Clarify rseq_prepare_unload() helper requirements
    rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
    rseq/selftests: Turn off timeout setting
    kunit/kunit_tool_test: Test '--build_dir' option run
    kunit: Rename 'kunitconfig' to '.kunitconfig'
    kunit: Place 'test.log' under the 'build_dir'
    kunit: Create default config in '--build_dir'
    kunit: Remove duplicated defconfig creation
    docs/kunit/start: Use in-tree 'kunit_defconfig'
    selftests: livepatch: Fix it to do root uid check and skip
    selftests: firmware: Fix it to do root uid check and skip
    selftests: filesystems/epoll: fix build error

    Linus Torvalds
     
  • Pull power management fixes from Rafael Wysocki:
    "Fix compile test of the Tegra devfreq driver (Arnd Bergmann) and
    remove redundant Kconfig dependencies from multiple devfreq drivers
    (Leonard Crestez)"

    * tag 'pm-5.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PM / devfreq: tegra: Add COMMON_CLK dependency
    PM / devfreq: Drop explicit selection of PM_OPP

    Linus Torvalds
     
  • Pull io_uring fixes from Jens Axboe:

    - Removal of now unused busy wqe list (Hillf)

    - Add cond_resched() to io-wq work processing (Hillf)

    - And then the series that I hinted at from last week, which removes
    the sqe from the io_kiocb and keeps all sqe handling on the prep
    side. This guarantees that an opcode can't do the wrong thing and
    read the sqe more than once. This is unchanged from last week, no
    issues have been observed with this in testing. Hence I really think
    we should fold this into 5.5.

    * tag 'io_uring-5.5-20191226' of git://git.kernel.dk/linux-block:
    io-wq: add cond_resched() to worker thread
    io-wq: remove unused busy list from io_sqe
    io_uring: pass in 'sqe' to the prep handlers
    io_uring: standardize the prep methods
    io_uring: read 'count' for IORING_OP_TIMEOUT in prep handler
    io_uring: move all prep state for IORING_OP_{SEND,RECV}_MGS to prep handler
    io_uring: move all prep state for IORING_OP_CONNECT to prep handler
    io_uring: add and use struct io_rw for read/writes
    io_uring: use u64_to_user_ptr() consistently

    Linus Torvalds
     
  • Pull libata fixes from Jens Axboe:
    "Two things in here:

    - First half of a series that fixes ahci_brcm, also marked for
    stable. The other part of the series is going into 5.6 (Florian)

    - sata_nv regression fix that is also marked for stable (Sascha)"

    * tag 'libata-5.5-20191226' of git://git.kernel.dk/linux-block:
    ata: ahci_brcm: Add missing clock management during recovery
    ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
    ata: ahci_brcm: Fix AHCI resources management
    ata: libahci_platform: Export again ahci_platform_able_phys()
    libata: Fix retrieving of active qcs

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "Only thing here are the changes from Arnd from last week, which now
    have the appropriate header include to ensure they actually compile if
    COMPAT is enabled"

    * tag 'block-5.5-20191226' of git://git.kernel.dk/linux-block:
    compat_ioctl: block: handle Persistent Reservations
    compat_ioctl: block: handle add zone open, close and finish ioctl
    compat_ioctl: block: handle BLKGETZONESZ/BLKGETNRZONES
    compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
    pktcdvd: fix regression on 64-bit architectures

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "A set of fixes for the v5.5 series:

    - Fix the build for the Xtensa driver.

    - Make sure to set up the parent device for mpc8xxx.

    - Clarify the look-up error message.

    - Fix the usage of the line direction in the mockup device.

    - Fix a type warning on the Aspeed driver.

    - Remove the pointless __exit annotation on the xgs-iproc which is
    causing a compilation problem.

    - Fix up emultation of open drain outputs .get_direction()

    - Fix the IRQ callbacks on the PCA953xx to use bitops and work
    properly.

    - Fix the Kconfig on the Tegra driver"

    * tag 'gpio-v5.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: tegra186: Allow building on Tegra194-only configurations
    gpio: pca953x: Switch to bitops in IRQ callbacks
    gpiolib: fix up emulated open drain outputs
    MAINTAINERS: Append missed file to the database
    gpio: xgs-iproc: remove __exit annotation for iproc_gpio_remove
    gpio: aspeed: avoid return type warning
    gpio: mockup: Fix usage of new GPIO_LINE_DIRECTION
    gpio: Fix error message on out-of-range GPIO in lookup table
    gpio: mpc8xxx: Add platform device to gpiochip->parent
    gpio: xtensa: fix driver build

    Linus Torvalds
     

27 Dec, 2019

1 commit


26 Dec, 2019

5 commits

  • The downstream implementation of ahci_brcm.c did contain clock
    management recovery, but until recently, did that outside of the
    libahci_platform helpers and this was unintentionally stripped out while
    forward porting the patch upstream.

    Add the missing clock management during recovery and sleep for 10
    milliseconds per the design team recommendations to ensure the SATA PHY
    controller and AFE have been fully quiesced.

    Fixes: eb73390ae241 ("ata: ahci_brcm: Recover from failures to identify devices")
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede
    Signed-off-by: Florian Fainelli
    Signed-off-by: Jens Axboe

    Florian Fainelli
     
  • Set AHCI_HFLAG_DELAY_ENGINE for the BCM7425 AHCI controller thus making
    it conforming to the 'strict' AHCI implementation which this controller
    is based on.

    This solves long link establishment with specific hard drives (e.g.:
    Seagate ST1000VM002-9ZL1 SC12) that would otherwise have to complete the
    error recovery handling before finally establishing a succesful SATA
    link at the desired speed.

    We re-order the hpriv->flags assignment to also remove the NONCQ quirk
    since we can set the flag directly.

    Fixes: 9586114cf1e9 ("ata: ahci_brcmstb: add support MIPS-based platforms")
    Fixes: 423be77daabe ("ata: ahci_brcmstb: add quirk for broken ncq")
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede
    Signed-off-by: Florian Fainelli
    Signed-off-by: Jens Axboe

    Florian Fainelli
     
  • The AHCI resources management within ahci_brcm.c is a little
    convoluted, largely because it historically had a dedicated clock that
    was managed within this file in the downstream tree. Once brough
    upstream though, the clock was left to be managed by libahci_platform.c
    which is entirely appropriate.

    This patch series ensures that the AHCI resources are fetched and
    enabled before any register access is done, thus avoiding bus errors on
    platforms which clock gate the controller by default.

    As a result we need to re-arrange the suspend() and resume() functions
    in order to avoid accessing registers after the clocks have been turned
    off respectively before the clocks have been turned on. Finally, we can
    refactor brcm_ahci_get_portmask() in order to fetch the number of ports
    from hpriv->mmio which is now accessible without jumping through hoops
    like we used to do.

    The commit pointed in the Fixes tag is both old and new enough not to
    require major headaches for backporting of this patch.

    Fixes: eba68f829794 ("ata: ahci_brcmstb: rename to support across Broadcom SoC's")
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede
    Signed-off-by: Florian Fainelli
    Signed-off-by: Jens Axboe

    Florian Fainelli
     
  • This reverts commit 6bb86fefa086faba7b60bb452300b76a47cde1a5
    ("libahci_platform: Staticize ahci_platform_able_phys()") we are
    going to need ahci_platform_{enable,disable}_phys() in a subsequent
    commit for ahci_brcm.c in order to properly control the PHY
    initialization order.

    Also make sure the function prototypes are declared in
    include/linux/ahci_platform.h as a result.

    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede
    Signed-off-by: Florian Fainelli
    Signed-off-by: Jens Axboe

    Florian Fainelli
     
  • ata_qc_complete_multiple() is called with a mask of the still active
    tags.

    mv_sata doesn't have this information directly and instead calculates
    the still active tags from the started tags (ap->qc_active) and the
    finished tags as (ap->qc_active ^ done_mask)

    Since 28361c40368 the hw_tag and tag are no longer the same and the
    equation is no longer valid. In ata_exec_internal_sg() ap->qc_active is
    initialized as 1ULL << ATA_TAG_INTERNAL, but in hardware tag 0 is
    started and this will be in done_mask on completion. ap->qc_active ^
    done_mask becomes 0x100000000 ^ 0x1 = 0x100000001 and thus tag 0 used as
    the internal tag will never be reported as completed.

    This is fixed by introducing ata_qc_get_active() which returns the
    active hardware tags and calling it where appropriate.

    This is tested on mv_sata, but sata_fsl and sata_nv suffer from the same
    problem. There is another case in sata_nv that most likely needs fixing
    as well, but this looks a little different, so I wasn't confident enough
    to change that.

    Fixes: 28361c403683 ("libata: add extra internal command")
    Cc: stable@vger.kernel.org
    Tested-by: Pali Rohár
    Signed-off-by: Sascha Hauer

    Add missing export of ata_qc_get_active(), as per Pali.

    Signed-off-by: Jens Axboe

    Sascha Hauer
     

25 Dec, 2019

2 commits


24 Dec, 2019

12 commits

  • The rseq.h UAPI now documents that the rseq_cs field must be cleared
    before reclaiming memory that contains the targeted struct rseq_cs, but
    also that the rseq_cs field must be cleared before reclaiming memory of
    the code pointed to by the rseq_cs start_ip and post_commit_offset
    fields.

    While we can expect that use of dlclose(3) will typically unmap
    both struct rseq_cs and its associated code at once, nothing would
    theoretically prevent a JIT from reclaiming the code without
    reclaiming the struct rseq_cs, which would erroneously allow the
    kernel to consider new code which is not a rseq critical section
    as a rseq critical section following a code reclaim.

    Suggested-by: Florian Weimer
    Signed-off-by: Mathieu Desnoyers
    Cc: Shuah Khan
    Cc: Florian Weimer
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra (Intel)
    Cc: "Paul E. McKenney"
    Cc: Boqun Feng
    Cc: "H . Peter Anvin"
    Cc: Paul Turner
    Cc: Dmitry Vyukov
    Signed-off-by: Shuah Khan

    Mathieu Desnoyers
     
  • glibc 2.30 introduces gettid() in public headers, which clashes with
    the internal static definition within rseq selftests.

    Rename gettid() to rseq_gettid() to eliminate this symbol name clash.

    Reported-by: Tommi T. Rantala
    Signed-off-by: Mathieu Desnoyers
    Cc: Shuah Khan
    Cc: Tommi T. Rantala
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra (Intel)
    Cc: "Paul E. McKenney"
    Cc: Boqun Feng
    Cc: "H . Peter Anvin"
    Cc: Paul Turner
    Cc: Dmitry Vyukov
    Cc: # v4.18+
    Signed-off-by: Shuah Khan

    Mathieu Desnoyers
     
  • As the rseq selftests can run for a long period of time, disable the
    timeout that the general selftests have.

    Signed-off-by: Mathieu Desnoyers
    Cc: Shuah Khan
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra (Intel)
    Cc: "Paul E. McKenney"
    Cc: Boqun Feng
    Cc: "H . Peter Anvin"
    Cc: Paul Turner
    Cc: Dmitry Vyukov
    Signed-off-by: Shuah Khan

    Mathieu Desnoyers
     
  • This commit adds kunit tool test for the '--build_dir' option.

    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • This commit renames 'kunitconfig' to '.kunitconfig' so that it can be
    automatically ignored by git and do not disturb people who want to type
    'kernel/' by pressing only the 'k' and then 'tab' key.

    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • 'kunit' writes the 'test.log' under the kernel source directory even
    though a 'build_dir' option is given. As users who use the option might
    expect the outputs to be placed under the specified directory, this
    commit modifies the logic to write the log file under the 'build_dir'.

    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • If both '--build_dir' and '--defconfig' are given, the handling of
    '--defconfig' ignores '--build_dir' option. This commit modifies the
    behavior to respect '--build_dir' option.

    Reported-by: Brendan Higgins
    Suggested-by: Brendan Higgins
    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • '--defconfig' option is handled by the 'main() of the 'kunit.py' but
    again handled in following 'run_tests()'. This commit removes this
    duplicated handling of the option in the 'run_tests()'.

    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • The kunit doc suggests users to get the default `kunitconfig` from an
    external git tree. However, the file is already located under the
    `arch/um/configs/` of the kernel tree. Because the local file is easier
    to access and maintain, this commit updates the doc to use it.

    Signed-off-by: SeongJae Park
    Reviewed-by: Brendan Higgins
    Tested-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    SeongJae Park
     
  • livepatch test configures the system and debug environment to run
    tests. Some of these actions fail without root access and test
    dumps several permission denied messages before it exits.

    Fix test-state.sh to call setup_config instead of set_dynamic_debug
    as suggested by Petr Mladek

    Fix it to check root uid and exit with skip code instead.

    Signed-off-by: Shuah Khan
    Acked-by: Joe Lawrence
    Reviewed-by: Petr Mladek
    Signed-off-by: Shuah Khan

    Shuah Khan
     
  • firmware attempts to load test modules that require root access
    and fail. Fix it to check for root uid and exit with skip code
    instead.

    Before this fix:

    selftests: firmware: fw_run_tests.sh
    modprobe: ERROR: could not insert 'test_firmware': Operation not permitted
    You must have the following enabled in your kernel:
    CONFIG_TEST_FIRMWARE=y
    CONFIG_FW_LOADER=y
    CONFIG_FW_LOADER_USER_HELPER=y
    CONFIG_IKCONFIG=y
    CONFIG_IKCONFIG_PROC=y
    not ok 1 selftests: firmware: fw_run_tests.sh # SKIP

    With this fix:

    selftests: firmware: fw_run_tests.sh
    skip all tests: must be run as root
    not ok 1 selftests: firmware: fw_run_tests.sh # SKIP

    Signed-off-by: Shuah Khan
    Reviwed-by: Greg Kroah-Hartman
    Signed-off-by: Shuah Khan

    Shuah Khan
     
  • epoll build fails to find pthread lib. Fix Makefile to use LDLIBS
    instead of LDFLAGS. LDLIBS is the right flag to use here with -l
    option when invoking ld.

    gcc -I../../../../../usr/include/ -lpthread epoll_wakeup_test.c -o .../tools/testing/selftests/filesystems/epoll/epoll_wakeup_test
    /usr/bin/ld: /tmp/ccaZvJUl.o: in function `kill_timeout':
    epoll_wakeup_test.c:(.text+0x4dd): undefined reference to `pthread_kill'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x4f2): undefined reference to `pthread_kill'
    /usr/bin/ld: /tmp/ccaZvJUl.o: in function `epoll9':
    epoll_wakeup_test.c:(.text+0x6382): undefined reference to `pthread_create'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x64d2): undefined reference to `pthread_create'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x6626): undefined reference to `pthread_join'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x684c): undefined reference to `pthread_tryjoin_np'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x6864): undefined reference to `pthread_kill'
    /usr/bin/ld: epoll_wakeup_test.c:(.text+0x6878): undefined reference to `pthread_join'

    Signed-off-by: Shuah Khan

    Shuah Khan