Skip to content
  1. Aug 06, 2016
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c98f5827
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two fixes and a cleanup-fix, to the syscall entry code and to ptrace"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/syscalls/64: Add compat_sys_keyctl for 32-bit userspace
        x86/ptrace: Stop setting TS_COMPAT in ptrace code
        x86/vdso: Error out if the vDSO isn't a valid DSO
      c98f5827
    • Linus Torvalds's avatar
      Merge tag 'sh-for-4.8' of git://git.libc.org/linux-sh · 1630e843
      Linus Torvalds authored
      Pull arch/sh updates from Rich Felker:
       "These changes improve device tree support (including builtin DTB), add
        support for the J-Core J2 processor, an open source synthesizable
        reimplementation of the SH-2 ISA, resolve a longstanding sigcontext
        ABI mismatch issue, and fix various bugs including nommu-specific
        issues and minor regressions introduced in 4.6.
      
        The J-Core arch support is included here but to be usable it needs
        drivers that are waiting on approval/inclusion from their subsystem
        maintainers"
      
      * tag 'sh-for-4.8' of git://git.libc.org/linux-sh: (23 commits)
        sh: add device tree source for J2 FPGA on Mimas v2 board
        sh: add defconfig for J-Core J2
        sh: use common clock framework with device tree boards
        sh: system call wire up
        sh: Delete unnecessary checks before the function call "mempool_destroy"
        sh: do not perform IPI-based cache flush except on boards that need it
        sh: add SMP support for J2
        sh: SMP support for SH2 entry.S
        sh: add working futex atomic ops on userspace addresses for smp
        sh: add J2 atomics using the cas.l instruction
        sh: add AT_HWCAP flag for J-Core cas.l instruction
        sh: add support for J-Core J2 processor
        sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE
        sh: allow clocksource drivers to register sched_clock backends
        sh: make heartbeat driver explicitly non-modular
        sh: make board-secureedge5410 explicitly non-modular
        sh: make mm/asids-debugfs explicitly non-modular
        sh: make time.c explicitly non-modular
        sh: fix futex/robust_list on nommu models
        sh: disable aliased page logic on NOMMU models
        ...
      1630e843
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 194d6ad3
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
      
       - fix HugeTLB leak due to CoW and PTE_RDONLY mismatch
      
       - avoid accessing unmapped FDT fields when checking validity
      
       - correctly account for vDSO AUX entry in ARCH_DLINFO
      
       - fix kallsyms with absolute expressions in linker script
      
       - kill unnecessary symbol-based relocs in vmlinux
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix copy-on-write referencing in HugeTLB
        arm64: mm: avoid fdt_check_header() before the FDT is fully mapped
        arm64: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
        arm64: relocatable: suppress R_AARCH64_ABS64 relocations in vmlinux
        arm64: vmlinux.lds: make __rela_offset and __dynsym_offset ABSOLUTE
      194d6ad3
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.8-rc1' of... · a157b3aa
      Linus Torvalds authored
      Merge tag 'pwm/for-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This set of changes improve some aspects of the atomic API as well as
        make use of this new API in the regulator framework to allow properly
        dealing with critical regulators controlled by a PWM.
      
        Aside from that there's a bunch of updates and cleanups for existing
        drivers, as well as the addition of new drivers for the Broadcom
        iProc, STMPE and ChromeOS EC controllers"
      
      * tag 'pwm/for-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (44 commits)
        regulator: pwm: Document pwm-dutycycle-unit and pwm-dutycycle-range
        regulator: pwm: Support extra continuous mode cases
        pwm: Add ChromeOS EC PWM driver
        dt-bindings: pwm: Add binding for ChromeOS EC PWM
        mfd: cros_ec: Add EC_PWM function definitions
        mfd: cros_ec: Add cros_ec_cmd_xfer_status() helper
        pwm: atmel: Use of_device_get_match_data()
        pwm: atmel: Fix checkpatch warnings
        pwm: atmel: Fix disabling of PWM channels
        dt-bindings: pwm: Add R-Car H3 device tree bindings
        pwm: rcar: Use ARCH_RENESAS
        pwm: tegra: Add support for Tegra186
        dt-bindings: pwm: tegra: Add compatible string for Tegra186
        pwm: tegra: Avoid overflow when calculating duty cycle
        pwm: tegra: Allow 100 % duty cycle
        pwm: tegra: Add support for reset control
        pwm: tegra: Rename mmio_base to regs
        pwm: tegra: Remove useless padding
        pwm: tegra: Drop NUM_PWM macro
        pwm: lpc32xx: Set PWM_PIN_LEVEL bit to default value
        ...
      a157b3aa
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.8' of git://github.com/jonmason/ntb · 32199ec3
      Linus Torvalds authored
      Pull NTB updates from Jon Mason:
       "NTB bug fixes for the ntb_tool and ntb_perf, and improvements to the
        ntb_perf and ntb_pingpong for increased debugability.
      
        Also, modification to the ntb_transport layer to increase/decrease
        the number of transport entries depending on the ring size"
      
      * tag 'ntb-4.8' of git://github.com/jonmason/ntb:
        NTB: ntb_hw_intel: use local variable pdev
        NTB: ntb_hw_intel: show BAR size in debugfs info
        ntb_test: Add a selftest script for the NTB subsystem
        ntb_perf: clear link_is_up flag when the link goes down.
        ntb_pingpong: Add a debugfs file to get the ping count
        ntb_tool: Add link status and files to debugfs
        ntb_tool: Postpone memory window initialization for the user
        ntb_perf: Wait for link before running test
        ntb_perf: Return results by reading the run file
        ntb_perf: Improve thread handling to increase robustness
        ntb_perf: Schedule based on time not on performance
        ntb_transport: Check the number of spads the hardware supports
        ntb_tool: Add memory window debug support
        ntb_perf: Allow limiting the size of the memory windows
        NTB: allocate number transport entries depending on size of ring size
        ntb_tool: BUG: Ensure the buffer size is large enough to return all spads
        ntb_tool: Fix infinite loop bug when writing spad/peer_spad file
      32199ec3
    • Linus Torvalds's avatar
      Merge tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · a02040d8
      Linus Torvalds authored
      Pull pstore fixes from Kees Cook:
       "Fixes for pstore ramoops driver to catch bad kfree() and to use better
        DT bindings"
      
      * tag 'pstore-v4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ramoops: use persistent_ram_free() instead of kfree() for freeing prz
        ramoops: use DT reserved-memory bindings
      a02040d8
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0603006b
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is seven basic fixes (plus one MAINTAINER update) which came in
        close to the merge window"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        ipr: Fix error return code in ipr_probe_ioa()
        fcoe: add missing destroy_workqueue() on error in fcoe_init()
        lpfc: Fix possible NULL pointer dereference
        fcoe: Use default VLAN for FIP VLAN discovery
        ipr: Wait to do async scan until scsi host is initialized
        MAINTAINERS: Update cxlflash maintainers
        cxlflash: Verify problem state area is mapped before notifying shutdown
        lpfc: fix oops in lpfc_sli4_scmd_to_wqidx_distr() from lpfc_send_taskmgmt()
      0603006b
    • Linus Torvalds's avatar
      Merge tag 'dm-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · d268675c
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
      
       - a stable dm-flakey fix to error read IO during the 'down_interval'
      
       - a DM core suspend fix to establish the SUSPENDED flag before dropping
         the SUSPENDING flag
      
       - a blk-mq request-based DM (dm-mq) dm_stop_queue() fix to properly
         stop the blk-mq hw_queues (and cancel pending requeue work); also
         set/clear QUEUE_FLAG_STOPPED when stopping/starting the dm-mq
         request_queue.
      
       - a DM multipath fix to harden locking of in-core state flags in the
         face of concurrent access while handling path failures under heavy
         IO.
      
       - a few small DM raid fixes to edge cases caught with further testing.
      
      * tag 'dm-4.8-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm raid: fix use of wrong status char during resynchronization
        dm raid: constructor fails on non-zero incompat_features
        dm raid: fix processing of max_recovery_rate constructor flag
        dm: set DMF_SUSPENDED* _before_ clearing DMF_NOFLUSH_SUSPENDING
        dm rq: fix the starting and stopping of blk-mq queues
        dm mpath: add locking to multipath_resume and must_push_back
        dm flakey: error READ bios during the down_interval
      d268675c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · fff648da
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "Here's the second round of block updates for this merge window.
      
        It's a mix of fixes for changes that went in previously in this round,
        and fixes in general.  This pull request contains:
      
         - Fixes for loop from Christoph
      
         - A bdi vs gendisk lifetime fix from Dan, worth two cookies.
      
         - A blk-mq timeout fix, when on frozen queues.  From Gabriel.
      
         - Writeback fix from Jan, ensuring that __writeback_single_inode()
           does the right thing.
      
         - Fix for bio->bi_rw usage in f2fs from me.
      
         - Error path deadlock fix in blk-mq sysfs registration from me.
      
         - Floppy O_ACCMODE fix from Jiri.
      
         - Fix to the new bio op methods from Mike.
      
           One more followup will be coming here, ensuring that we don't
           propagate the block types outside of block.  That, and a rename of
           bio->bi_rw is coming right after -rc1 is cut.
      
         - Various little fixes"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        mm/block: convert rw_page users to bio op use
        loop: make do_req_filebacked more robust
        loop: don't try to use AIO for discards
        blk-mq: fix deadlock in blk_mq_register_disk() error path
        Include: blkdev: Removed duplicate 'struct request;' declaration.
        Fixup direct bi_rw modifiers
        block: fix bdi vs gendisk lifetime mismatch
        blk-mq: Allow timeouts to run while queue is freezing
        nbd: fix race in ioctl
        block: fix use-after-free in seq file
        f2fs: drop bio->bi_rw manual assignment
        block: add missing group association in bio-cloning functions
        blkcg: kill unused field nr_undestroyed_grps
        writeback: Write dirty times for WB_SYNC_ALL writeback
        floppy: fix open(O_ACCMODE) for ioctl-only open
      fff648da
    • Linus Torvalds's avatar
      Merge tag 'pnp-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 62e6e9ba
      Linus Torvalds authored
      Pull PNP fix from Rafael Wysocki:
       "This fixes build errors due to a missing header file inclusion in
        drivers/pnp/pnpbios/core.c (Randy Dunlap)"
      
      * tag 'pnp-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PNP: pnpbios: add header file to fix build errors
      62e6e9ba
    • Linus Torvalds's avatar
      Merge tag 'acpi-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0524b422
      Linus Torvalds authored
      Pull more ACPI updates from Rafael Wysocki:
       "Two more fixes in ACPI drivers, one in the ACPI EC driver
        (stable-candidate) and one in the ACPI button driver.
      
        Specifics:
      
         - An ACPI EC driver fix from the 4.3 cycle may cause the ACPICA's
           method reentrancy limit to be exceeded for a _Qxx method due to a
           large number of concurrent EC operations, so prevent that from
           happening by moving the EC handling into a separate workqueue with
           a limit on the number of concurrently executed work items (Lv
           Zheng)
      
         - Fix the cleanup code in the ACPI button driver that forgets to
           clear two variables on exit which causes an error to occur on the
           next attmpt to load the driver (Benjamin Tissoires)"
      
      * tag 'acpi-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / EC: Work around method reentrancy limit in ACPICA for _Qxx
        ACPI / button: remove pointer to old lid_sysfs on unbind
      0524b422
    • Linus Torvalds's avatar
      Merge tag 'pm-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 11d8ec40
      Linus Torvalds authored
      Pull more power management updates from Rafael Wysocki:
       "A few more fixes and cleanups in the x86-64 low-level hibernation
        code, PM core, cpufreq (Kconfig and intel_pstate), and the operating
        points framework.
      
        Specifics:
      
         - Prevent the low-level assembly hibernate code on x86-64 from
           referring to __PAGE_OFFSET directly as a symbol which doesn't work
           when the kernel identity mapping base is randomized, in which case
           __PAGE_OFFSET is a variable (Rafael Wysocki).
      
         - Avoid selecting CPU_FREQ_STAT by default as the statistics are not
           required for proper cpufreq operation (Borislav Petkov).
      
         - Add Skylake-X and Broadwell-X IDs to the intel_pstate's list of
           processors where out-of-band (OBB) control of P-states is possible
           and if that is in use, intel_pstate should not attempt to manage
           P-states (Srinivas Pandruvada).
      
         - Drop some unnecessary checks from the wakeup IRQ handling code in
           the PM core (Markus Elfring).
      
         - Reduce the number operating performance point (OPP) lookups in one
           of the OPP framework's helper functions (Jisheng Zhang)"
      
      * tag 'pm-extra-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        x86/power/64: Do not refer to __PAGE_OFFSET from assembly code
        cpufreq: Do not default-yes CPU_FREQ_STAT
        cpufreq: intel_pstate: Add more out-of-band IDs
        PM / OPP: optimize dev_pm_opp_set_rate() performance a bit
        PM-wakeup: Delete unnecessary checks before three function calls
      11d8ec40
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 39fada55
      Linus Torvalds authored
      Pull more input updates from Dmitry Torokhov:
       "Two new drivers for touchscreen controllers:
      
         - Silead touchscreen controllers
         - SiS 9200 family touchscreen controllers
      
        and a few driver fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: silead - remove some dead code
        Input: sis-i2c - select CONFIG_CRC_ITU_T
        Input: add driver for SiS 9200 family I2C touchscreen controllers
        Input: ili210x - fix permissions on "calibrate" attribute
        Input: elan_i2c - properly wake up touchpad on ASUS laptops
        Input: add driver for Silead touchscreens
        Input: elantech - fix debug dump of the current packet
        Input: rotary_encoder - support binary encoding of states
        Input: xpad - power off wireless 360 controllers on suspend
        Input: i8042 - break load dependency between atkbd/psmouse and i8042
        Input: synaptics-rmi4 - do not check for NULL when calling of_node_put()
        Input: cros_ec_keyb - cleanup use of dev
      39fada55
    • Linus Torvalds's avatar
      Merge tag 'usb-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · f72035fa
      Linus Torvalds authored
      Pull more USB updates from Greg KH:
       "Here are a few more straggler patches for USB for 4.8-rc1.
      
        Most of these are for the usb-serial driver tree.  All of those have
        been in linux-next for a long time, but missed my previous pull
        request to you.
      
        The remaining change is to fix up a staging tree build error, due to
        some USB gadget driver changes that went in.  I put it in this tree as
        it was for a USB driver and people are reporting the build error on
        your tree.
      
        All of these have been in linux-next for this week, and longer for the
        usb-serial changes"
      
      * tag 'usb-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        staging: emxx_udc: allow modular build
        USB: serial: use variable for status
        USB: serial: option: add support for Telit LE910 PID 0x1206
        USB: serial: cp210x: use kmemdup
        USB: serial: ti_usb_3410_5052: use functions rather than macros
        USB: serial: ti_usb_3410_5052: remove ti_usb_3410_5052.h
        USB: serial: ti_usb_3410_5052: use __packed
        USB: serial: ti_usb_3410_5052: remove useless comments
      f72035fa
    • Hiraku Toyooka's avatar
      ramoops: use persistent_ram_free() instead of kfree() for freeing prz · e976e564
      Hiraku Toyooka authored
      
      
      persistent_ram_zone(=prz) structures are allocated by persistent_ram_new(),
      which includes vmap() or ioremap(). But they are currently freed by
      kfree(). This uses persistent_ram_free() for correct this asymmetry usage.
      
      Signed-off-by: default avatarHiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
      Signed-off-by: default avatarNobuhiro Iwamatsu <nobuhiro.iwamatsu.kw@hitachi.com>
      Cc: Mark Salyzyn <salyzyn@android.com>
      Cc: Seiji Aguchi <seiji.aguchi.tr@hitachi.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      e976e564
    • Kees Cook's avatar
      ramoops: use DT reserved-memory bindings · 529182e2
      Kees Cook authored
      
      
      Instead of a ramoops-specific node, use a child node of /reserved-memory.
      This requires that of_platform_device_create() be explicitly called
      for the node, though, since "/reserved-memory" does not have its own
      "compatible" property.
      
      Suggested-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarRob Herring <robh@kernel.org>
      529182e2
  2. Aug 05, 2016
    • Allen Hubbe's avatar
      NTB: ntb_hw_intel: use local variable pdev · 95f1464f
      Allen Hubbe authored
      
      
      Clean up duplicated expression by replacing it with the equivalent local
      variable pdev.
      
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      95f1464f
    • Allen Hubbe's avatar
      NTB: ntb_hw_intel: show BAR size in debugfs info · 40895273
      Allen Hubbe authored
      
      
      It will be useful to know the hardware configured BAR size to diagnose
      issues with NTB memory windows.
      
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      40895273
    • Logan Gunthorpe's avatar
      ntb_test: Add a selftest script for the NTB subsystem · a9c59ef7
      Logan Gunthorpe authored
      
      
      This script automates testing doorbells, scratchpads and memory windows
      for an NTB device. It can be run locally, with the NTB looped
      back to the same host or use SSH to remotely control the second host.
      
      In the single host case, the script just needs to be passed two
      arguments: a PCI ID for each side of the link. In the two host case
      the -r option must be used to specify the remote hostname (which must
      be SSH accessible and should probably have ssh-keys exchanged).
      
      A sample run looks like this:
      
      $ sudo ./ntb_test.sh 0000:03:00.1 0000:83:00.1 -p 29
      Starting ntb_tool tests...
      Running link tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      Running link tests on: 0000:83:00.1 / 0000:03:00.1
        Passed
      Running db tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      Running db tests on: 0000:83:00.1 / 0000:03:00.1
        Passed
      Running spad tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      Running spad tests on: 0000:83:00.1 / 0000:03:00.1
        Passed
      Running mw0 tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      Running mw0 tests on: 0000:83:00.1 / 0000:03:00.1
        Passed
      Running mw1 tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      Running mw1 tests on: 0000:83:00.1 / 0000:03:00.1
        Passed
      
      Starting ntb_pingpong tests...
      Running ping pong tests on: 0000:03:00.1 / 0000:83:00.1
        Passed
      
      Starting ntb_perf tests...
      Running local perf test without DMA
        0: copied 536870912 bytes in 164453 usecs, 3264 MBytes/s
        Passed
      Running remote perf test without DMA
        0: copied 536870912 bytes in 164453 usecs, 3264 MBytes/s
        Passed
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      a9c59ef7
    • Logan Gunthorpe's avatar
      ntb_perf: clear link_is_up flag when the link goes down. · 35539b54
      Logan Gunthorpe authored
      
      
      When the link goes down, the link_is_up flag did not return to
      false. This could have caused some subtle corner case bugs
      when the link goes up and down quickly.
      
      Once that was fixed, there was found to be a race if the link was
      brought down then immediately up. The link_cleanup work would
      occasionally be scheduled after the next link up event. This would
      cancel the link_work that was supposed to occur and leave ntb_perf
      in an unusable state.
      
      To fix this we get rid of the link_cleanup work and put the actions
      directly in the link_down event.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      35539b54
    • Logan Gunthorpe's avatar
      ntb_pingpong: Add a debugfs file to get the ping count · 20572ee1
      Logan Gunthorpe authored
      
      
      This commit adds a debugfs 'count' file to ntb_pingpong. This is so
      testing with ntb_pingpong can be automated beyond just checking the
      logs for pong messages.
      
      The count file returns a number which increments every pong. The
      counter can be cleared by writing a zero.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      20572ee1
    • Logan Gunthorpe's avatar
      ntb_tool: Add link status and files to debugfs · bfcaa396
      Logan Gunthorpe authored
      
      
      In order to more successfully script with ntb_tool it's useful to
      have a link file to check the link status so that the script
      doesn't use the other files until the link is up.
      
      This commit adds a 'link' file to the debugfs directory which reads
      boolean (Y or N) depending on the link status. Writing to the file
      change the link state using ntb_link_enable or ntb_link_disable.
      
      A 'link_event' file is also provided so an application can block until
      the link changes to the desired state. If the user writes a 1, it will
      block until the link is up. If the user writes a 0, it will block until
      the link is down.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      bfcaa396
    • Logan Gunthorpe's avatar
      ntb_tool: Postpone memory window initialization for the user · 717146a2
      Logan Gunthorpe authored
      
      
      In order to make the interface closer to the raw NTB API, this commit
      changes memory windows so they are not initialized on link up.
      Instead, the 'peer_trans*' debugfs files are introduced. When read,
      they return information provided by ntb_mw_get_range. When written,
      they create a buffer and initialize the memory window. The
      value written is taken as the requested size of the buffer (which
      is then rounded for alignment). Writing a value of zero frees the buffer
      and tears down the memory window translation. The 'peer_mw*' file is
      only created once the memory window translation is setup by the user.
      
      Additionally, it was noticed that the read and write functions for the
      'peer_mw*' files should have checked for a NULL pointer.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      717146a2
    • Logan Gunthorpe's avatar
      ntb_perf: Wait for link before running test · 26dc638a
      Logan Gunthorpe authored
      
      
      Instead of returning immediately with an error when the link is
      down, wait for the link to come up (or the user sends a SIGINT).
      
      This is to make scripting ntb_perf easier.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      26dc638a
    • Logan Gunthorpe's avatar
      ntb_perf: Return results by reading the run file · 58fd0f3b
      Logan Gunthorpe authored
      
      
      Instead of having to watch logs, allow the results to be retrieved
      by reading back the run file. This file will return "running" when
      the test is running and nothing if no tests have been run yet.
      It returns 1 line per thread, and will display an error message if the
      corresponding thread returns an error.
      
      With the above change, the pr_info calls that returned the results are
      then changed to pr_debug calls.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      58fd0f3b
    • Logan Gunthorpe's avatar
      ntb_perf: Improve thread handling to increase robustness · da573eaa
      Logan Gunthorpe authored
      
      
      This commit accomplishes a few things:
      
      1) Properly prevent multiple sets of threads from running at once using
      a mutex. Lots of race issues existed with the thread_cleanup.
      
      2) The mutex allows us to ensure that threads are finished before
      tearing down the device or module.
      
      3) Don't use kthread_stop when the threads can exit by themselves, as
      this is counter-indicated by the kthread_create documentation. Threads
      now wait for kthread_stop to occur.
      
      4) Writing to the run file now blocks until the threads are complete.
      The test can then be safely interrupted by a SIGINT.
      
      Also, while I was at it:
      
      5) debugfs_run_write shouldn't return 0 in the early check cases as this
      could cause debugfs_run_write to loop undesirably.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      da573eaa
    • Logan Gunthorpe's avatar
      ntb_perf: Schedule based on time not on performance · fd2ecd88
      Logan Gunthorpe authored
      
      
      When debugging performance problems, if some issue causes the ntb
      hardware to be significantly slower than expected, ntb_perf will
      hang requiring a reboot because it only schedules once every 4GB.
      
      Instead, schedule based on jiffies so it will not hang the CPU if
      the transfer is slow.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      fd2ecd88
    • Logan Gunthorpe's avatar
      ntb_transport: Check the number of spads the hardware supports · 19645a07
      Logan Gunthorpe authored
      
      
      I'm working on hardware that currently has a limited number of
      scratchpad registers and ntb_ndev fails with no clue as to why. I
      feel it is better to fail early and provide a reasonable error message
      then to fail later on.
      
      The same is done to ntb_perf, but it doesn't currently require enough
      spads to actually fail. I've also removed the unused SPAD_MSG and
      SPAD_ACK enums so that MAX_SPAD accurately reflects the number of
      spads used.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      19645a07
    • Logan Gunthorpe's avatar
      ntb_tool: Add memory window debug support · 8b71d285
      Logan Gunthorpe authored
      
      
      We allocate some memory window buffers when the link comes up, then we
      provide debugfs files to read/write each side of the link.
      
      This is useful for debugging the mapping when writing new drivers.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      8b71d285
    • Logan Gunthorpe's avatar
      ntb_perf: Allow limiting the size of the memory windows · 4aae9777
      Logan Gunthorpe authored
      
      
      On my system, dma_alloc_coherent won't produce memory anywhere
      near the size of the BAR. So I needed a way to limit this.
      
      It's pretty much copied straight from ntb_transport.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      4aae9777
    • Dave Jiang's avatar
      NTB: allocate number transport entries depending on size of ring size · a754a8fc
      Dave Jiang authored
      
      
      Currently we only allocate a fixed default number of descriptors for the tx
      and rx side. We should dynamically resize it to the number of descriptors
      resides in the transport rings. We should know the number of transmit
      descriptors at initializaiton. We will allocate the default number of
      descriptors for receive side and allocate additional ones when we know the
      actual max entries for receive.
      
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Acked-by: default avatarAllen Hubbe <allen.hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      a754a8fc
    • Logan Gunthorpe's avatar
      ntb_tool: BUG: Ensure the buffer size is large enough to return all spads · 625f0802
      Logan Gunthorpe authored
      
      
      On hardware with 32 scratchpad registers the spad field in ntb tool
      could chop off the end. The maximum buffer size is increased from
      256 to 15 times the number or scratchpads.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      625f0802
    • Logan Gunthorpe's avatar
      ntb_tool: Fix infinite loop bug when writing spad/peer_spad file · c792eba1
      Logan Gunthorpe authored
      
      
      If you tried to write two spads in one line, as per the example:
      
      root@peer# echo '0 0x01010101 1 0x7f7f7f7f' > $DBG_DIR/peer_spad
      
      then the CPU would freeze in an infinite loop.
      
      This wasn't immediately obvious but 'pos' was not incrementing the
      buffer, so after reading the second pair of values, 'pos' would once
      again be 3 and it would re-read the second pair of values ad infinitum.
      
      Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Acked-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      c792eba1
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-ec' and 'acpi-button' · 4dc14b34
      Rafael J. Wysocki authored
      * acpi-ec:
        ACPI / EC: Work around method reentrancy limit in ACPICA for _Qxx
      
      * acpi-button:
        ACPI / button: remove pointer to old lid_sysfs on unbind
      4dc14b34
    • Linus Torvalds's avatar
      Merge tag 'rtc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 6c84239d
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "RTC for 4.8
      
        Cleanups:
         - huge cleanup of rtc-generic and char/genrtc this allowed to cleanup
           rtc-cmos, rtc-sh, rtc-m68k, rtc-powerpc and rtc-parisc
         - move mn10300 to rtc-cmos
      
        Subsystem:
         - fix wakealarms after hibernate
         - multiples fixes for rctest
         - simplify implementations of .read_alarm
      
        New drivers:
         - Maxim MAX6916
      
        Drivers:
         - ds1307: fix weekday
         - m41t80: add wakeup support
         - pcf85063: add support for PCF85063A variant
         - rv8803: extend i2c fix and other fixes
         - s35390a: fix alarm reading, this fixes instant reboot after
           shutdown for QNAP TS-41x
         - s3c: clock fixes"
      
      * tag 'rtc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (65 commits)
        rtc: rv8803: Clear V1F when setting the time
        rtc: rv8803: Stop the clock while setting the time
        rtc: rv8803: Always apply the I²C workaround
        rtc: rv8803: Fix read day of week
        rtc: rv8803: Remove the check for valid time
        rtc: rv8803: Kconfig: Indicate rx8900 support
        rtc: asm9260: remove .owner field for driver
        rtc: at91sam9: Fix missing spin_lock_init()
        rtc: m41t80: add suspend handlers for alarm IRQ
        rtc: m41t80: make it a real error message
        rtc: pcf85063: Add support for the PCF85063A device
        rtc: pcf85063: fix year range
        rtc: hym8563: in .read_alarm set .tm_sec to 0 to signal minute accuracy
        rtc: explicitly set tm_sec = 0 for drivers with minute accurancy
        rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq()
        rtc: s3c: Remove unnecessary call to disable already disabled clock
        rtc: abx80x: use devm_add_action_or_reset()
        rtc: m41t80: use devm_add_action_or_reset()
        rtc: fix a typo and reduce three empty lines to one
        rtc: s35390a: improve two comments in .set_alarm
        ...
      6c84239d
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-sleep', 'pm-cpufreq', 'pm-core' and 'pm-opp' · e2b3b80d
      Rafael J. Wysocki authored
      * pm-sleep:
        x86/power/64: Do not refer to __PAGE_OFFSET from assembly code
      
      * pm-cpufreq:
        cpufreq: Do not default-yes CPU_FREQ_STAT
        cpufreq: intel_pstate: Add more out-of-band IDs
      
      * pm-core:
        PM-wakeup: Delete unnecessary checks before three function calls
      
      * pm-opp:
        PM / OPP: optimize dev_pm_opp_set_rate() performance a bit
      e2b3b80d
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · d4c06c70
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Nothing existing here: as usual a few HD-audio fixes (device fixups, a
        new AMD PCI ID, and a fix for krealloc() usage), in addition to a fix
        in Kconfig for legacy arm drivers"
      
      * tag 'sound-fix-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix headset mic detection problem for two dell machines
        ALSA: hda: Fix krealloc() with __GFP_ZERO usage
        ALSA: hda: add AMD Bonaire AZ PCI ID with proper driver caps
        ALSA: arm: Fix empty menuconfig SND_ARM
        ALSA: hda - On-board speaker fixup on ACER Veriton
        ALSA: hda/realtek - Can't adjust speaker's volume on a Dell AIO
      d4c06c70
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 2cfd716d
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
       "These were delayed for various reasons, so I let them sit in next a
        bit longer, rather than including them in my first pull request.
      
        Fixes:
         - Fix early access to cpu_spec relocation from Benjamin Herrenschmidt
         - Fix incorrect event codes in power9-event-list from Madhavan Srinivasan
         - Move register_process_table() out of ppc_md from Michael Ellerman
      
        Use jump_label use for [cpu|mmu]_has_feature():
         - Add mmu_early_init_devtree() from Michael Ellerman
         - Move disable_radix handling into mmu_early_init_devtree() from Michael Ellerman
         - Do hash device tree scanning earlier from Michael Ellerman
         - Do radix device tree scanning earlier from Michael Ellerman
         - Do feature patching before MMU init from Michael Ellerman
         - Check features don't change after patching from Michael Ellerman
         - Make MMU_FTR_RADIX a MMU family feature from Aneesh Kumar K.V
         - Convert mmu_has_feature() to returning bool from Michael Ellerman
         - Convert cpu_has_feature() to returning bool from Michael Ellerman
         - Define radix_enabled() in one place & use static inline from Michael Ellerman
         - Add early_[cpu|mmu]_has_feature() from Michael Ellerman
         - Convert early cpu/mmu feature check to use the new helpers from Aneesh Kumar K.V
         - jump_label: Make it possible for arches to invoke jump_label_init() earlier from Kevin Hao
         - Call jump_label_init() in apply_feature_fixups() from Aneesh Kumar K.V
         - Remove mfvtb() from Kevin Hao
         - Move cpu_has_feature() to a separate file from Kevin Hao
         - Add kconfig option to use jump labels for cpu/mmu_has_feature() from Michael Ellerman
         - Add option to use jump label for cpu_has_feature() from Kevin Hao
         - Add option to use jump label for mmu_has_feature() from Kevin Hao
         - Catch usage of cpu/mmu_has_feature() before jump label init from Aneesh Kumar K.V
         - Annotate jump label assembly from Michael Ellerman
      
        TLB flush enhancements from Aneesh Kumar K.V:
         - radix: Implement tlb mmu gather flush efficiently
         - Add helper for finding SLBE LLP encoding
         - Use hugetlb flush functions
         - Drop multiple definition of mm_is_core_local
         - radix: Add tlb flush of THP ptes
         - radix: Rename function and drop unused arg
         - radix/hugetlb: Add helper for finding page size
         - hugetlb: Add flush_hugetlb_tlb_range
         - remove flush_tlb_page_nohash
      
        Add new ptrace regsets from Anshuman Khandual and Simon Guo:
         - elf: Add powerpc specific core note sections
         - Add the function flush_tmregs_to_thread
         - Enable in transaction NT_PRFPREG ptrace requests
         - Enable in transaction NT_PPC_VMX ptrace requests
         - Enable in transaction NT_PPC_VSX ptrace requests
         - Adapt gpr32_get, gpr32_set functions for transaction
         - Enable support for NT_PPC_CGPR
         - Enable support for NT_PPC_CFPR
         - Enable support for NT_PPC_CVMX
         - Enable support for NT_PPC_CVSX
         - Enable support for TM SPR state
         - Enable NT_PPC_TM_CTAR, NT_PPC_TM_CPPR, NT_PPC_TM_CDSCR
         - Enable support for NT_PPPC_TAR, NT_PPC_PPR, NT_PPC_DSCR
         - Enable support for EBB registers
         - Enable support for Performance Monitor registers"
      
      * tag 'powerpc-4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (48 commits)
        powerpc/mm: Move register_process_table() out of ppc_md
        powerpc/perf: Fix incorrect event codes in power9-event-list
        powerpc/32: Fix early access to cpu_spec relocation
        powerpc/ptrace: Enable support for Performance Monitor registers
        powerpc/ptrace: Enable support for EBB registers
        powerpc/ptrace: Enable support for NT_PPPC_TAR, NT_PPC_PPR, NT_PPC_DSCR
        powerpc/ptrace: Enable NT_PPC_TM_CTAR, NT_PPC_TM_CPPR, NT_PPC_TM_CDSCR
        powerpc/ptrace: Enable support for TM SPR state
        powerpc/ptrace: Enable support for NT_PPC_CVSX
        powerpc/ptrace: Enable support for NT_PPC_CVMX
        powerpc/ptrace: Enable support for NT_PPC_CFPR
        powerpc/ptrace: Enable support for NT_PPC_CGPR
        powerpc/ptrace: Adapt gpr32_get, gpr32_set functions for transaction
        powerpc/ptrace: Enable in transaction NT_PPC_VSX ptrace requests
        powerpc/ptrace: Enable in transaction NT_PPC_VMX ptrace requests
        powerpc/ptrace: Enable in transaction NT_PRFPREG ptrace requests
        powerpc/process: Add the function flush_tmregs_to_thread
        elf: Add powerpc specific core note sections
        powerpc/mm: remove flush_tlb_page_nohash
        powerpc/mm/hugetlb: Add flush_hugetlb_tlb_range
        ...
      2cfd716d
    • Linus Torvalds's avatar
      Merge tag 'metag-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 755b20f4
      Linus Torvalds authored
      Pull metag architecture updates from James Hogan:
       "Just a few minor fixes:
      
         - Fix another incorrect inline asm register constraint, which has
           been lying quietly for 5 and a half years before finally causing
           build breakage during this merge window.
      
         - Removal of duplicated KERN_INFO from Joe Perches
      
         - Typo fixes from Andrea Gelmini"
      
      * tag 'metag-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
        metag: Fix __cmpxchg_u32 asm constraint for CMP
        metag: Remove duplicate KERN_<LEVEL> prefix
        metag: Fix typos
      755b20f4
    • Rich Felker's avatar
      e61c10e4