1. 05 Jan, 2018 12 commits
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: replace cpm by cp0, cps by cp1 · 91f1be92
      Thomas Petazzoni authored
      In preparation for the introduction of more than 2 CPs in upcoming
      SoCs, it makes sense to move away from the "CP master" (cpm) and "CP
      slave" (cps) naming, and use instead cp0/cp1.
      
      This commit is the result of:
      
       sed 's%cpm%cp0g%' arch/arm64/boot/dts/marvell/*
       sed 's%cps%cp1g%' arch/arm64/boot/dts/marvell/*
      
      So it is a purely mechaninal change.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Suggested-by: default avatarHanna Hawa <hannah@marvell.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      91f1be92
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: de-duplicate CP110 description · 72a3713f
      Thomas Petazzoni authored
      One concept of Marvell Armada 7K/8K SoCs is that they are made of HW
      blocks composed of a variety of IPs (network, PCIe, SATA, XOR, SPI,
      I2C, etc.), and those HW blocks can be duplicated several times within
      a given SoC. The Armada 7K SoC has a single CP110 (so no duplication),
      while the Armada 8K SoC has two CP110. In the future, SoCs with more
      than 2 CP110s will be introduced.
      
      In current kernel versions, the master CP110 is described in
      armada-cp110-master.dtsi and the slave CP110 is described in
      armada-cp110-slave.dtsi. Those files are basically exactly the same,
      since they describe the same hardware. They only have a few
      differences:
      
       - Base address of the registers is different for the "config-space"
      
       - Base address of the PCIe registers, MEM, CONF and IO areas were
         different
      
       - Labels (and phandles pointing to them) of the nodes were different
         ("cpm" prefix in the master CP, "cps" prefix in the slave CP)
      
      This duplication issue has been discussed at the DT workshop [1] in
      Prague last October, and we presented on this topic [2]. The solution
      of using the C pre-processor to avoid this duplication has been
      validated by the people present in this DT workshop, and this patch
      simply implements what has been presented.
      
      We handle differences between the master CP and slave CP description
      using the C pre-processor, by defining a set of macros with different
      values armada-cp110.dtsi is included to instantiate one of the master
      or slave CP110.
      
      There are a few aspects that deserve additional explanations:
      
       - PCIe needs to be handled separately because it is not part of the
         config-space {...} node, since it has registers outside of the
         range covered by config-space {...}.
      
       - We need to defined CP110_BASE, CP110_PCIEx_BASE without 0x, because
         they are used for the unit address part of some DT nodes. But since
         they are also used for the "reg" property of the same nodes, we
         have an ADDRESSIFY() macro that prepends 0x to those values.
      
      We compared the resulting .dtb for armada-8040-db.dtb before and after
      this patch is applied, and the result is exactly the same, except for
      a few differences:
      
       - the SDHCI controller that was only described in the master CP110 is
         now also described in the slave CP110. Even though the SDHCI
         controller from the slave CP110 is indeed not usable (as it isn't
         wired to the outside world) it is technically part of the silicon,
         and therefore it is reasonable to also describe it to be part of
         the slave CP110. In addition, if we wanted to get this correct for
         the SDHCI controller, we should also do it for the NAND controller,
         for which the situation is even more complicated: in a single CP110
         configuration (Armada 7K), the usable NAND controller is in the
         master CP110, while in a dual CP110 configuration (Armada 8K), the
         usable NAND controller is in the slave CP110. Since that would add
         a lot of additional complexity for no good reason, and since the IP
         blocks are in fact really present in both CPs, we simply describe
         them in both CPs at the DT level.
      
       - the cp110-master and cp110-slave nodes are now named cpm and
         cps. We could have kept cp110-master and cp110-slave, but that
         would have required adding another CP110_xyz define, which didn't
         seem very useful.
      
      Note that this commit also gets rid of the armada-cp110-master.dtsi
      and armada-cp110-slave.dtsi files, as future SoCs will have more than
      2 CPs. Instead, we instantiate the CPs directly from the SoC-specific
      .dtsi files, i.e armada-70x0.dtsi and armada-80x0.dtsi.
      
      [1] https://elinux.org/Device_tree_kernel_summit_2017_etherpad
      [2] https://elinux.org/images/1/14/DTWorkshop2017-duplicate-data.pdf
      
      [gregory.clement@free-electrons.com: add back the "ARM64: dts: marvell:
      Fix clock resources for various node" commit]
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      72a3713f
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: use aliases for SPI busses on Armada 7K/8K · e2a393c6
      Thomas Petazzoni authored
      We are currently using the cell-index DT property to assign SPI bus
      numbers. This property is specific to the spi-orion driver, and
      requires each SPI controller to have a unique ID defined in the Device
      Tree.
      
      As we are about to merge armada-cp110-master.dtsi and
      armada-cp110-slave.dtsi into a single file, those cell-index
      properties that differ between the master CP110 and the slave CP110
      are a difference that would have to be handled.
      
      In order to avoid this, we switch to using the "aliases" DT node to
      assign a unique number to each SPI controller. This is more generic,
      and directly handled by the SPI core.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      e2a393c6
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: use mvebu-icu.h where possible · af9ad5bc
      Thomas Petazzoni authored
      Back when the ICU Device Tree binding was introduced, we could not use
      mvebu-icu.h from the Device Tree files, because the DT files and
      mvebu-icu.h were following different merge routes towards Linus
      tree. Now that both have been merged, we can switch the Marvell Armada
      CP110 Device Tree files to use the mvebu-icu.h header instead of
      duplicating the ICU_GRP_NSR definition.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      af9ad5bc
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: fix compatible string list for Armada CP110 slave NAND · 4003e96a
      Thomas Petazzoni authored
      The Armada CP110 slave NAND controller Device Tree description lists
      the compatible string in the wrong order: marvell,armada-8k-nand
      should come first. This commit alignes the slave CP110 description
      with the master CP110 description from that respect.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      4003e96a
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: fix typos in comment describing the NAND controller · ab8637ed
      Thomas Petazzoni authored
      Fix the same typo duplicated in both master and slave version of
      armada-cp110-*.dtsi file: s/limiation/limitation/.
      
      [gregory.clement@free-electrons.com: add the commit log]
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      ab8637ed
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: use lower case for unit address and reg property · 123c27c8
      Thomas Petazzoni authored
      This fixes the following DTC warning:
      
        <stdout>: Warning (simple_bus_reg): Node /ap806/config-space@f0000000/thermal@6f808C simple-bus unit address format error, expected "6f808c"
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      123c27c8
    • Thomas Petazzoni's avatar
      arm64: dts: marvell: fix watchdog unit address in Armada AP806 · d3ce06b4
      Thomas Petazzoni authored
      This fixes the following DTC warning:
      
        Warning (simple_bus_reg): Node /ap806/config-space@f0000000/watchdog@600000 simple-bus unit address format error, expected "610000"
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      d3ce06b4
    • Antoine Tenart's avatar
      arm64: dts: marvell: armada-37xx: add a crypto node · e2707a28
      Antoine Tenart authored
      This patch adds a crypto node describing the EIP97 engine found in
      Armada 37xx SoCs. The cryptographic engine is enabled by default.
      Signed-off-by: default avatarAntoine Tenart <antoine.tenart@free-electrons.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      e2707a28
    • Gregory CLEMENT's avatar
      Merge branch 'mvebu/fixes' into HEAD · 42a4a26b
      Gregory CLEMENT authored
      42a4a26b
    • Gregory CLEMENT's avatar
      ARM64: dts: marvell: armada-cp110: Fix clock resources for various node · e3af9f7c
      Gregory CLEMENT authored
      On the CP modules we found on Armada 7K/8K, many IP block actually also
      need a "functional" clock (from the bus). This patch add them which allows
      to fix some issues hanging the kernel:
      
      If Ethernet and sdhci driver are built as modules and sdhci was loaded
      first then the kernel hang.
      
      Fixes: bb16ea17 ("mmc: sdhci-xenon: Fix clock resource by adding an
      optional bus clock")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRiku Voipio <riku.voipio@linaro.org>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      e3af9f7c
    • Thomas Petazzoni's avatar
      ARM: dts: kirkwood: fix pin-muxing of MPP7 on OpenBlocks A7 · 56aeb07c
      Thomas Petazzoni authored
      MPP7 is currently muxed as "gpio", but this function doesn't exist for
      MPP7, only "gpo" is available. This causes the following error:
      
      kirkwood-pinctrl f1010000.pin-controller: unsupported function gpio on pin mpp7
      pinctrl core: failed to register map default (6): invalid type given
      kirkwood-pinctrl f1010000.pin-controller: error claiming hogs: -22
      kirkwood-pinctrl f1010000.pin-controller: could not claim hogs: -22
      kirkwood-pinctrl f1010000.pin-controller: unable to register pinctrl driver
      kirkwood-pinctrl: probe of f1010000.pin-controller failed with error -22
      
      So the pinctrl driver is not probed, all device drivers (including the
      UART driver) do a -EPROBE_DEFER, and therefore the system doesn't
      really boot (well, it boots, but with no UART, and no devices that
      require pin-muxing).
      
      Back when the Device Tree file for this board was introduced, the
      definition was already wrong. The pinctrl driver also always described
      as "gpo" this function for MPP7. However, between Linux 4.10 and 4.11,
      a hog pin failing to be muxed was turned from a simple warning to a
      hard error that caused the entire pinctrl driver probe to bail
      out. This is probably the result of commit 61187142 ("pinctrl:
      core: Fix pinctrl_register_and_init() with pinctrl_enable()").
      
      This commit fixes the Device Tree to use the proper "gpo" function for
      MPP7, which fixes the boot of OpenBlocks A7, which was broken since
      Linux 4.11.
      
      Fixes: f24b56cb ("ARM: kirkwood: add support for OpenBlocks A7 platform")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      56aeb07c
  2. 18 Dec, 2017 3 commits
  3. 27 Nov, 2017 1 commit
  4. 26 Nov, 2017 8 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm · bbecb1cf
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
      
       - LPAE fixes for kernel-readonly regions
      
       - Fix for get_user_pages_fast on LPAE systems
      
       - avoid tying decompressor to a particular platform if DEBUG_LL is
         enabled
      
       - BUG if we attempt to return to userspace but the to-be-restored PSR
         value keeps us in privileged mode (defeating an issue that ftracetest
         found)
      
      * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: BUG if jumping to usermode address in kernel mode
        ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE
        ARM: 8721/1: mm: dump: check hardware RO bit for LPAE
        ARM: make decompressor debug output user selectable
        ARM: fix get_user_pages_fast
      bbecb1cf
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dec0029a
      Linus Torvalds authored
      Pull irq fixes from Thomas Glexiner:
      
       - unbreak the irq trigger type check for legacy platforms
      
       - a handful fixes for ARM GIC v3/4 interrupt controllers
      
       - a few trivial fixes all over the place
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/matrix: Make - vs ?: Precedence explicit
        irqchip/imgpdc: Use resource_size function on resource object
        irqchip/qcom: Fix u32 comparison with value less than zero
        irqchip/exiu: Fix return value check in exiu_init()
        irqchip/gic-v3-its: Remove artificial dependency on PCI
        irqchip/gic-v4: Add forward definition of struct irq_domain_ops
        irqchip/gic-v3: pr_err() strings should end with newlines
        irqchip/s3c24xx: pr_err() strings should end with newlines
        irqchip/gic-v3: Fix ppi-partitions lookup
        irqchip/gic-v4: Clear IRQ_DISABLE_UNLAZY again if mapping fails
        genirq: Track whether the trigger type has been set
      dec0029a
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 02fc87b1
      Linus Torvalds authored
      Pull misc x86 fixes from Ingo Molnar:
       - topology enumeration fixes
       - KASAN fix
       - two entry fixes (not yet the big series related to KASLR)
       - remove obsolete code
       - instruction decoder fix
       - better /dev/mem sanity checks, hopefully working better this time
       - pkeys fixes
       - two ACPI fixes
       - 5-level paging related fixes
       - UMIP fixes that should make application visible faults more debuggable
       - boot fix for weird virtualization environment
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        x86/decoder: Add new TEST instruction pattern
        x86/PCI: Remove unused HyperTransport interrupt support
        x86/umip: Fix insn_get_code_seg_params()'s return value
        x86/boot/KASLR: Remove unused variable
        x86/entry/64: Add missing irqflags tracing to native_load_gs_index()
        x86/mm/kasan: Don't use vmemmap_populate() to initialize shadow
        x86/entry/64: Fix entry_SYSCALL_64_after_hwframe() IRQ tracing
        x86/pkeys/selftests: Fix protection keys write() warning
        x86/pkeys/selftests: Rename 'si_pkey' to 'siginfo_pkey'
        x86/mpx/selftests: Fix up weird arrays
        x86/pkeys: Update documentation about availability
        x86/umip: Print a warning into the syslog if UMIP-protected instructions are used
        x86/smpboot: Fix __max_logical_packages estimate
        x86/topology: Avoid wasting 128k for package id array
        perf/x86/intel/uncore: Cache logical pkg id in uncore driver
        x86/acpi: Reduce code duplication in mp_override_legacy_irq()
        x86/acpi: Handle SCI interrupts above legacy space gracefully
        x86/boot: Fix boot failure when SMP MP-table is based at 0
        x86/mm: Limit mmap() of /dev/mem to valid physical addresses
        x86/selftests: Add test for mapping placement for 5-level paging
        ...
      02fc87b1
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6830c8db
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Misc fixes: a documentation fix, a Sparse warning fix and a debugging
        fix"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/debug: Fix task state recording/printout
        sched/deadline: Don't use dubious signed bitfields
        sched/deadline: Fix the description of runtime accounting in the documentation
      6830c8db
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 580e3d55
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc fixes: two PMU driver fixes and a memory leak fix"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/core: Fix memory leak triggered by perf --namespace
        perf/x86/intel/uncore: Add event constraint for BDX PCU
        perf/x86/intel: Hide TSX events when RTM is not supported
      580e3d55
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cd4b5d5d
      Linus Torvalds authored
      Pull static key fix from Ingo Molnar:
       "Fix a boot warning related to bad init ordering of the static keys
        self-test"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        jump_label: Invoke jump_label_test() via early_initcall()
      cd4b5d5d
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fcbc38b1
      Linus Torvalds authored
      Pull objtool fixes from Ingo Molnar:
       "A handful of objtool fixes, most of them related to making the UAPI
        header-syncing warnings easier to read and easier to act upon"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/headers: Sync objtool UAPI header
        objtool: Fix cross-build
        objtool: Move kernel headers/code sync check to a script
        objtool: Move synced files to their original relative locations
        objtool: Make unreachable annotation inline asms explicitly volatile
        objtool: Add a comment for the unreachable annotation macros
      fcbc38b1
    • Russell King's avatar
      ARM: BUG if jumping to usermode address in kernel mode · 8bafae20
      Russell King authored
      Detect if we are returning to usermode via the normal kernel exit paths
      but the saved PSR value indicates that we are in kernel mode.  This
      could occur due to corrupted stack state, which has been observed with
      "ftracetest".
      
      This ensures that we catch the problem case before we get to user code.
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      8bafae20
  5. 25 Nov, 2017 7 commits
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 844056fd
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
      
       - The final conversion of timer wheel timers to timer_setup().
      
         A few manual conversions and a large coccinelle assisted sweep and
         the removal of the old initialization mechanisms and the related
         code.
      
       - Remove the now unused VSYSCALL update code
      
       - Fix permissions of /proc/timer_list. I still need to get rid of that
         file completely
      
       - Rename a misnomed clocksource function and remove a stale declaration
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        m68k/macboing: Fix missed timer callback assignment
        treewide: Remove TIMER_FUNC_TYPE and TIMER_DATA_TYPE casts
        timer: Remove redundant __setup_timer*() macros
        timer: Pass function down to initialization routines
        timer: Remove unused data arguments from macros
        timer: Switch callback prototype to take struct timer_list * argument
        timer: Pass timer_list pointer to callbacks unconditionally
        Coccinelle: Remove setup_timer.cocci
        timer: Remove setup_*timer() interface
        timer: Remove init_timer() interface
        treewide: setup_timer() -> timer_setup() (2 field)
        treewide: setup_timer() -> timer_setup()
        treewide: init_timer() -> setup_timer()
        treewide: Switch DEFINE_TIMER callbacks to struct timer_list *
        s390: cmm: Convert timers to use timer_setup()
        lightnvm: Convert timers to use timer_setup()
        drivers/net: cris: Convert timers to use timer_setup()
        drm/vc4: Convert timers to use timer_setup()
        block/laptop_mode: Convert timers to use timer_setup()
        net/atm/mpc: Avoid open-coded assignment of timer callback function
        ...
      844056fd
    • Linus Torvalds's avatar
      Merge tag 'arc-4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · ca122fe3
      Linus Torvalds authored
      Pull ARC updates from Vineet Gupta:
      
       - more changes for HS48 cores: supporting MMUv5, detecting new
         micro-arch gizmos
      
       - axs10x platform wiring up reset driver merged in this cycle
      
       - ARC perf driver optimizations
      
      * tag 'arc-4.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: perf: avoid vmalloc backed mmap
        ARCv2: perf: optimize given that num counters <= 32
        ARCv2: perf: tweak overflow interrupt
        ARC: [plat-axs10x] DTS: Add reset controller node to manage ethernet reset
        ARCv2: boot log: updates for HS48: dual-issue, ECC, Loop Buffer
        ARCv2: Accomodate HS48 MMUv5 by relaxing MMU ver checking
        ARC: [plat-axs10x] auto-select AXS101 or AXS103 given the  ISA config
      ca122fe3
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 5e2fda47
      Linus Torvalds authored
      Pull more Kbuild updates from Masahiro Yamada:
      
       - use 'pwd' instead of '/bin/pwd' for portability
      
       - clean up Makefiles
      
       - fix ld-option for clang
      
       - fix malloc'ed data size in Kconfig
      
       - fix parallel building along with coccicheck
      
       - fix a minor issue of package building
      
       - prompt to use "rpm-pkg" instead of "rpm"
      
       - clean up *.i and *.lst patterns by "make clean"
      
      * tag 'kbuild-v4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: drop $(extra-y) from real-objs-y
        kbuild: clean up *.i and *.lst patterns by make clean
        kbuild: rpm: prompt to use "rpm-pkg" if "rpm" target is used
        kbuild: pkg: use --transform option to prefix paths in tar
        coccinelle: fix parallel build with CHECK=scripts/coccicheck
        kconfig/symbol.c: use correct pointer type argument for sizeof
        kbuild: Set KBUILD_CFLAGS before incl. arch Makefile
        kbuild: remove all dummy assignments to obj-
        kbuild: create built-in.o automatically if parent directory wants it
        kbuild: /bin/pwd -> pwd
      5e2fda47
    • Linus Torvalds's avatar
      Merge tag 'afs-fixes-20171124' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · f61ec2c9
      Linus Torvalds authored
      Pull AFS fixes from David Howells:
      
       - Make AFS file locking work again.
      
       - Don't write to a page that's being written out, but wait for it to
         complete.
      
       - Do d_drop() and d_add() in the right places.
      
       - Put keys on error paths.
      
       - Remove some redundant code.
      
      * tag 'afs-fixes-20171124' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: remove redundant assignment of dvnode to itself
        afs: cell: Remove unnecessary code in afs_lookup_cell
        afs: Fix signal handling in some file ops
        afs: Fix some dentry handling in dir ops and missing key_puts
        afs: Make afs_write_begin() avoid writing to a page that's being stored
        afs: Fix file locking
      f61ec2c9
    • Linus Torvalds's avatar
      Merge tag 'kvm-4.15-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 7753ea09
      Linus Torvalds authored
      Pull KVM updates from Radim Krčmář:
       "Trimmed second batch of KVM changes for Linux 4.15:
      
         - GICv4 Support for KVM/ARM
      
         - re-introduce support for CPUs without virtual NMI (cc stable) and
           allow testing of KVM without virtual NMI on available CPUs
      
         - fix long-standing performance issues with assigned devices on AMD
           (cc stable)"
      
      * tag 'kvm-4.15-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (30 commits)
        kvm: vmx: Allow disabling virtual NMI support
        kvm: vmx: Reinstate support for CPUs without virtual NMI
        KVM: SVM: obey guest PAT
        KVM: arm/arm64: Don't queue VLPIs on INV/INVALL
        KVM: arm/arm64: Fix GICv4 ITS initialization issues
        KVM: arm/arm64: GICv4: Theory of operations
        KVM: arm/arm64: GICv4: Enable VLPI support
        KVM: arm/arm64: GICv4: Prevent userspace from changing doorbell affinity
        KVM: arm/arm64: GICv4: Prevent a VM using GICv4 from being saved
        KVM: arm/arm64: GICv4: Enable virtual cpuif if VLPIs can be delivered
        KVM: arm/arm64: GICv4: Hook vPE scheduling into vgic flush/sync
        KVM: arm/arm64: GICv4: Use the doorbell interrupt as an unblocking source
        KVM: arm/arm64: GICv4: Add doorbell interrupt handling
        KVM: arm/arm64: GICv4: Use pending_last as a scheduling hint
        KVM: arm/arm64: GICv4: Handle INVALL applied to a vPE
        KVM: arm/arm64: GICv4: Propagate property updates to VLPIs
        KVM: arm/arm64: GICv4: Handle MOVALL applied to a vPE
        KVM: arm/arm64: GICv4: Handle CLEAR applied to a VLPI
        KVM: arm/arm64: GICv4: Propagate affinity changes to the physical ITS
        KVM: arm/arm64: GICv4: Unmap VLPI when freeing an LPI
        ...
      7753ea09
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 83ada031
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "A small batch of fixes, about 50% tagged for stable and the rest for
        recently merged code.
      
        There's one more fix for the >128T handling on hash. Once a process
        had requested a single mmap above 128T we would then always search
        above 128T. The correct behaviour is to consider the hint address in
        isolation for each mmap request.
      
        Then a couple of fixes for the IMC PMU, a missing EXPORT_SYMBOL in
        VAS, a fix for STRICT_KERNEL_RWX on 32-bit, and a fix to correctly
        identify P9 DD2.1 but in code that is currently not used by default.
      
        Thanks to: Aneesh Kumar K.V, Christophe Leroy, Madhavan Srinivasan,
        Sukadev Bhattiprolu"
      
      * tag 'powerpc-4.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Fix Power9 DD2.1 logic in DT CPU features
        powerpc/perf: Fix IMC_MAX_PMU macro
        powerpc/perf: Fix pmu_count to count only nest imc pmus
        powerpc: Fix boot on BOOK3S_32 with CONFIG_STRICT_KERNEL_RWX
        powerpc/perf/imc: Use cpu_to_node() not topology_physical_package_id()
        powerpc/vas: Export chip_to_vas_id()
        powerpc/64s/slice: Use addr limit when computing slice mask
      83ada031
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · eda5d471
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
      
       "This series is predominantly bug-fixes, with a few small improvements
        that have been outstanding over the last release cycle.
      
        As usual, the associated bug-fixes have CC' tags for stable.
      
        Also, things have been particularly quiet wrt new developments the
        last months, with most folks continuing to focus on stability atop 4.x
        stable kernels for their respective production configurations.
      
        Also at this point, the stable trees have been synced up with
        mainline. This will continue to be a priority, as production users
        tend to run exclusively atop stable kernels, a few releases behind
        mainline.
      
        The highlights include:
      
         - Fix PR PREEMPT_AND_ABORT null pointer dereference regression in
           v4.11+ (tangwenji)
      
         - Fix OOPs during removing TCMU device (Xiubo Li + Zhang Zhuoyu)
      
         - Add netlink command reply supported option for each device (Kenjiro
           Nakayama)
      
         - cxgbit: Abort the TCP connection in case of data out timeout (Varun
           Prakash)
      
         - Fix PR/ALUA file path truncation (David Disseldorp)
      
         - Fix double se_cmd completion during ->cmd_time_out (Mike Christie)
      
         - Fix QUEUE_FULL + SCSI task attribute handling in 4.1+ (Bryant Ly +
           nab)
      
         - Fix quiese during transport_write_pending_qf endless loop (nab)
      
         - Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK in 3.14+
           (Don White + nab)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (35 commits)
        tcmu: Add a missing unlock on an error path
        tcmu: Fix some memory corruption
        iscsi-target: Fix non-immediate TMR reference leak
        iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
        target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK
        target: Fix quiese during transport_write_pending_qf endless loop
        target: Fix caw_sem leak in transport_generic_request_failure
        target: Fix QUEUE_FULL + SCSI task attribute handling
        iSCSI-target: Use common error handling code in iscsi_decode_text_input()
        target/iscsi: Detect conn_cmd_list corruption early
        target/iscsi: Fix a race condition in iscsit_add_reject_from_cmd()
        target/iscsi: Modify iscsit_do_crypto_hash_buf() prototype
        target/iscsi: Fix endianness in an error message
        target/iscsi: Use min() in iscsit_dump_data_payload() instead of open-coding it
        target/iscsi: Define OFFLOAD_BUF_SIZE once
        target: Inline transport_put_cmd()
        target: Suppress gcc 7 fallthrough warnings
        target: Move a declaration of a global variable into a header file
        tcmu: fix double se_cmd completion
        target: return SAM_STAT_TASK_SET_FULL for TCM_OUT_OF_RESOURCES
        ...
      eda5d471
  6. 24 Nov, 2017 9 commits
    • Kees Cook's avatar
      m68k/macboing: Fix missed timer callback assignment · 54b8a230
      Kees Cook authored
      This fixes a missed function prototype callback from the timer conversions.
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lkml.kernel.org/r/20171123221902.GA75727@beast
      54b8a230
    • Colin Ian King's avatar
      afs: remove redundant assignment of dvnode to itself · 43dd388b
      Colin Ian King authored
      The assignment of dvnode to itself is redundant and can be removed.
      Cleans up warning detected by cppcheck:
      
      fs/afs/dir.c:975: (warning) Redundant assignment of 'dvnode' to itself.
      
      Fixes: d2ddc776 ("afs: Overhaul volume and server record caching and fileserver rotation")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      43dd388b
    • Gustavo A. R. Silva's avatar
      afs: cell: Remove unnecessary code in afs_lookup_cell · 68327951
      Gustavo A. R. Silva authored
      Due to recent changes this piece of code is no longer needed.
      
      Addresses-Coverity-ID: 1462033
      Link: https://lkml.kernel.org/r/4923.1510957307@warthog.procyon.org.ukSigned-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      68327951
    • David Howells's avatar
      afs: Fix signal handling in some file ops · 4433b691
      David Howells authored
      afs_mkdir(), afs_create(), afs_link() and afs_symlink() all need to drop
      the target dentry if a signal causes the operation to be killed immediately
      before we try to contact the server.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      4433b691
    • David Howells's avatar
      afs: Fix some dentry handling in dir ops and missing key_puts · bc1527dc
      David Howells authored
      Fix some of dentry handling in AFS directory ops:
      
       (1) Do d_drop() on the new_dentry before assigning a new inode to it in
           afs_vnode_new_inode().  It's fine to do this before calling afs_iget()
           because the operation has taken place on the server.
      
       (2) Replace d_instantiate()/d_rehash() with d_add().
      
       (3) Don't d_drop() the new_dentry in afs_rename() on error.
      
      Also fix afs_link() and afs_rename() to call key_put() on all error paths
      where the key is taken.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      bc1527dc
    • David Howells's avatar
      afs: Make afs_write_begin() avoid writing to a page that's being stored · 5a039c32
      David Howells authored
      Make afs_write_begin() wait for a page that's marked PG_writeback because:
      
       (1) We need to avoid interference with the data being stored so that the
           data on the server ends up in a defined state.
      
       (2) page->private is used to track the window of dirty data within a page,
           but it's also used by the storage code to track what's being written,
           being cleared by the completion notification.  Ownership can't be
           relinquished by the storage code until completion because it a store
           fails, the data must be remarked dirty.
      
      Tracing shows something like the following (edited):
      
       x86_64-linux-gn-15940 [1] afs_page_dirty: vn=ffff8800bef33800 9c75 begin 0-125
          kworker/u8:3-114   [2] afs_page_dirty: vn=ffff8800bef33800 9c75 store+ 0-125
       x86_64-linux-gn-15940 [1] afs_page_dirty: vn=ffff8800bef33800 9c75 begin 0-2052
          kworker/u8:3-114   [2] afs_page_dirty: vn=ffff8800bef33800 9c75 clear 0-2052
          kworker/u8:3-114   [2] afs_page_dirty: vn=ffff8800bef33800 9c75 store 0-0
          kworker/u8:3-114   [2] afs_page_dirty: vn=ffff8800bef33800 9c75 WARN 0-0
      
      The clear (completion) corresponding to the store+ (store continuation from
      a previous page) happens between the second begin (afs_write_begin) and the
      store corresponding to that.  This results in the second store not seeing
      any data to write back, leading to the following warning:
      
      WARNING: CPU: 2 PID: 114 at ../fs/afs/write.c:403 afs_write_back_from_locked_page+0x19d/0x76c [kafs]
      Modules linked in: kafs(E)
      CPU: 2 PID: 114 Comm: kworker/u8:3 Tainted: G            E   4.14.0-fscache+ #242
      Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014
      Workqueue: writeback wb_workfn (flush-afs-2)
      task: ffff8800cad72600 task.stack: ffff8800cad44000
      RIP: 0010:afs_write_back_from_locked_page+0x19d/0x76c [kafs]
      RSP: 0018:ffff8800cad47aa0 EFLAGS: 00010246
      RAX: 0000000000000001 RBX: ffff8800bef33a20 RCX: 0000000000000000
      RDX: 000000000000000f RSI: ffffffff81c5d0e0 RDI: ffff8800cad72e78
      RBP: ffff8800d31ea1e8 R08: ffff8800c1358000 R09: ffff8800ca00e400
      R10: ffff8800cad47a38 R11: ffff8800c5d9e400 R12: 0000000000000000
      R13: ffffea0002d9df00 R14: ffffffffa0023c1c R15: 0000000000007fdf
      FS:  0000000000000000(0000) GS:ffff8800ca700000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f85ac6c4000 CR3: 0000000001c10001 CR4: 00000000001606e0
      Call Trace:
       ? clear_page_dirty_for_io+0x23a/0x267
       afs_writepages_region+0x1be/0x286 [kafs]
       afs_writepages+0x60/0x127 [kafs]
       do_writepages+0x36/0x70
       __writeback_single_inode+0x12f/0x635
       writeback_sb_inodes+0x2cc/0x452
       __writeback_inodes_wb+0x68/0x9f
       wb_writeback+0x208/0x470
       ? wb_workfn+0x22b/0x565
       wb_workfn+0x22b/0x565
       ? worker_thread+0x230/0x2ac
       process_one_work+0x2cc/0x517
       ? worker_thread+0x230/0x2ac
       worker_thread+0x1d4/0x2ac
       ? rescuer_thread+0x29b/0x29b
       kthread+0x15d/0x165
       ? kthread_create_on_node+0x3f/0x3f
       ? call_usermodehelper_exec_async+0x118/0x11f
       ret_from_fork+0x24/0x30
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      5a039c32
    • Thomas Gleixner's avatar
      sched/debug: Fix task state recording/printout · 3f5fe9fe
      Thomas Gleixner authored
      The recent conversion of the task state recording to use task_state_index()
      broke the sched_switch tracepoint task state output.
      
      task_state_index() returns surprisingly an index (0-7) which is then
      printed with __print_flags() applying bitmasks. Not really working and
      resulting in weird states like 'prev_state=t' instead of 'prev_state=I'.
      
      Use TASK_REPORT_MAX instead of TASK_STATE_MAX to report preemption. Build a
      bitmask from the return value of task_state_index() and store it in
      entry->prev_state, which makes __print_flags() work as expected.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: stable@vger.kernel.org
      Fixes: efb40f58 ("sched/tracing: Fix trace_sched_switch task-state printing")
      Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1711221304180.1751@nanosSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      3f5fe9fe
    • Masami Hiramatsu's avatar
      x86/decoder: Add new TEST instruction pattern · 12a78d43
      Masami Hiramatsu authored
      The kbuild test robot reported this build warning:
      
        Warning: arch/x86/tools/test_get_len found difference at <jump_table>:ffffffff8103dd2c
      
        Warning: ffffffff8103dd82: f6 09 d8 testb $0xd8,(%rcx)
        Warning: objdump says 3 bytes, but insn_get_length() says 2
        Warning: decoded and checked 1569014 instructions with 1 warnings
      
      This sequence seems to be a new instruction not in the opcode map in the Intel SDM.
      
      The instruction sequence is "F6 09 d8", means Group3(F6), MOD(00)REG(001)RM(001), and 0xd8.
      Intel SDM vol2 A.4 Table A-6 said the table index in the group is "Encoding of Bits 5,4,3 of
      the ModR/M Byte (bits 2,1,0 in parenthesis)"
      
      In that table, opcodes listed by the index REG bits as:
      
        000         001       010 011  100        101        110         111
       TEST Ib/Iz,(undefined),NOT,NEG,MUL AL/rAX,IMUL AL/rAX,DIV AL/rAX,IDIV AL/rAX
      
      So, it seems TEST Ib is assigned to 001.
      
      Add the new pattern.
      Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <stable@vger.kernel.org>
      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>
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      12a78d43
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1d3b78bb
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix PCI IDs of 9000 series iwlwifi devices, from Luca Coelho.
      
       2) bpf offload bug fixes from Jakub Kicinski.
      
       3) Fix bpf verifier to NOP out code which is dead at run time because
          due to branch pruning the verifier will not explore such
          instructions. From Alexei Starovoitov.
      
       4) Fix crash when deleting secondary chains in packet scheduler
          classifier. From Roman Kapl.
      
       5) Fix buffer management bugs in smc, from Ursula Braun.
      
       6) Fix regression in anycast route handling, from David Ahern.
      
       7) Fix link settings regression in r8169, from Tobias Jakobi.
      
       8) Add back enough UFO support so that live migration still works, from
          Willem de Bruijn.
      
       9) Linearize enough packet data for the full extent to which the ipvlan
          code will inspect the packet headers, from Gao Feng.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (46 commits)
        ipvlan: Fix insufficient skb linear check for ipv6 icmp
        ipvlan: Fix insufficient skb linear check for arp
        geneve: only configure or fill UDP_ZERO_CSUM6_RX/TX info when CONFIG_IPV6
        net: dsa: bcm_sf2: Clear IDDQ_GLOBAL_PWR bit for PHY
        net: accept UFO datagrams from tuntap and packet
        net: realtek: r8169: implement set_link_ksettings()
        net: ipv6: Fixup device for anycast routes during copy
        net/smc: Fix preinitialization of buf_desc in __smc_buf_create()
        net/smc: use sk_rcvbuf as start for rmb creation
        ipv6: Do not consider linkdown nexthops during multipath
        net: sched: fix crash when deleting secondary chains
        net: phy: cortina: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE
        bpf: fix branch pruning logic
        bpf: change bpf_perf_event_output arg5 type to ARG_CONST_SIZE_OR_ZERO
        bpf: change bpf_probe_read_str arg2 type to ARG_CONST_SIZE_OR_ZERO
        bpf: remove explicit handling of 0 for arg2 in bpf_probe_read
        bpf: introduce ARG_PTR_TO_MEM_OR_NULL
        i40evf: Use smp_rmb rather than read_barrier_depends
        fm10k: Use smp_rmb rather than read_barrier_depends
        igb: Use smp_rmb rather than read_barrier_depends
        ...
      1d3b78bb