1. 17 6月, 2016 1 次提交
    • D
      arm64: kgdb: Match pstate size with gdbserver protocol · 0d15ef67
      Daniel Thompson 提交于
      Current versions of gdb do not interoperate cleanly with kgdb on arm64
      systems because gdb and kgdb do not use the same register description.
      This patch modifies kgdb to work with recent releases of gdb (>= 7.8.1).
      
      Compatibility with gdb (after the patch is applied) is as follows:
      
        gdb-7.6 and earlier  Ok
        gdb-7.7 series       Works if user provides custom target description
        gdb-7.8(.0)          Works if user provides custom target description
        gdb-7.8.1 and later  Ok
      
      When commit 44679a4f ("arm64: KGDB: Add step debugging support") was
      introduced it was paired with a gdb patch that made an incompatible
      change to the gdbserver protocol. This patch was eventually merged into
      the gdb sources:
      https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=a4d9ba85ec5597a6a556afe26b712e878374b9dd
      
      The change to the protocol was mostly made to simplify big-endian support
      inside the kernel gdb stub. Unfortunately the gdb project released
      gdb-7.7.x and gdb-7.8.0 before the protocol incompatibility was identified
      and reversed:
      https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=bdc144174bcb11e808b4e73089b850cf9620a7ee
      
      This leaves us in a position where kgdb still uses the no-longer-used
      protocol; gdb-7.8.1, which restored the original behaviour, was
      released on 2014-10-29.
      
      I don't believe it is possible to detect/correct the protocol
      incompatiblity which means the kernel must take a view about which
      version of the gdb remote protocol is "correct". This patch takes the
      view that the original/current version of the protocol is correct
      and that version found in gdb-7.7.x and gdb-7.8.0 is anomalous.
      Signed-off-by: NDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      0d15ef67
  2. 15 6月, 2016 4 次提交
    • W
      arm64: spinlock: Ensure forward-progress in spin_unlock_wait · c56bdcac
      Will Deacon 提交于
      Rather than wait until we observe the lock being free (which might never
      happen), we can also return from spin_unlock_wait if we observe that the
      lock is now held by somebody else, which implies that it was unlocked
      but we just missed seeing it in that state.
      
      Furthermore, in such a scenario there is no longer a need to write back
      the value that we loaded, since we know that there has been a lock
      hand-off, which is sufficient to publish any stores prior to the
      unlock_wait because the ARm architecture ensures that a Store-Release
      instruction is multi-copy atomic when observed by a Load-Acquire
      instruction.
      
      The litmus test is something like:
      
      AArch64
      {
      0:X1=x; 0:X3=y;
      1:X1=y;
      2:X1=y; 2:X3=x;
      }
       P0          | P1           | P2           ;
       MOV W0,#1   | MOV W0,#1    | LDAR W0,[X1] ;
       STR W0,[X1] | STLR W0,[X1] | LDR W2,[X3]  ;
       DMB SY      |              |              ;
       LDR W2,[X3] |              |              ;
      exists
      (0:X2=0 /\ 2:X0=1 /\ 2:X2=0)
      
      where P0 is doing spin_unlock_wait, P1 is doing spin_unlock and P2 is
      doing spin_lock.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      c56bdcac
    • W
      arm64: spinlock: fix spin_unlock_wait for LSE atomics · 3a5facd0
      Will Deacon 提交于
      Commit d86b8da0 ("arm64: spinlock: serialise spin_unlock_wait against
      concurrent lockers") fixed spin_unlock_wait for LL/SC-based atomics under
      the premise that the LSE atomics (in particular, the LDADDA instruction)
      are indivisible.
      
      Unfortunately, these instructions are only indivisible when used with the
      -AL (full ordering) suffix and, consequently, the same issue can
      theoretically be observed with LSE atomics, where a later (in program
      order) load can be speculated before the write portion of the atomic
      operation.
      
      This patch fixes the issue by performing a CAS of the lock once we've
      established that it's unlocked, in much the same way as the LL/SC code.
      
      Fixes: d86b8da0 ("arm64: spinlock: serialise spin_unlock_wait against concurrent lockers")
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      3a5facd0
    • W
      arm64: spinlock: order spin_{is_locked,unlock_wait} against local locks · 38b850a7
      Will Deacon 提交于
      spin_is_locked has grown two very different use-cases:
      
      (1) [The sane case] API functions may require a certain lock to be held
          by the caller and can therefore use spin_is_locked as part of an
          assert statement in order to verify that the lock is indeed held.
          For example, usage of assert_spin_locked.
      
      (2) [The insane case] There are two locks, where a CPU takes one of the
          locks and then checks whether or not the other one is held before
          accessing some shared state. For example, the "optimized locking" in
          ipc/sem.c.
      
      In the latter case, the sequence looks like:
      
        spin_lock(&sem->lock);
        if (!spin_is_locked(&sma->sem_perm.lock))
          /* Access shared state */
      
      and requires that the spin_is_locked check is ordered after taking the
      sem->lock. Unfortunately, since our spinlocks are implemented using a
      LDAXR/STXR sequence, the read of &sma->sem_perm.lock can be speculated
      before the STXR and consequently return a stale value.
      
      Whilst this hasn't been seen to cause issues in practice, PowerPC fixed
      the same issue in 51d7d520 ("powerpc: Add smp_mb() to
      arch_spin_is_locked()") and, although we did something similar for
      spin_unlock_wait in d86b8da0 ("arm64: spinlock: serialise
      spin_unlock_wait against concurrent lockers") that doesn't actually take
      care of ordering against local acquisition of a different lock.
      
      This patch adds an smp_mb() to the start of our arch_spin_is_locked and
      arch_spin_unlock_wait routines to ensure that the lock value is always
      loaded after any other locks have been taken by the current CPU.
      Reported-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      38b850a7
    • M
      arm: pmu: Fix non-devicetree probing · f7a6c149
      Mark Salter 提交于
      There is a problem in the non-devicetree PMU probing where some
      probe functions may get the number of supported events through
      smp_call_function_any() using the arm_pmu supported_cpus mask.
      But at the time the probe function is called, the supported_cpus
      mask is empty so the call fails. This patch makes sure the mask
      is set before calling the init function rather than after.
      Signed-off-by: NMark Salter <msalter@redhat.com>
      Signed-off-by: NJeremy Linton <jeremy.linton@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      f7a6c149
  3. 14 6月, 2016 2 次提交
    • M
      arm64: mm: mark fault_info table const · bbb1681e
      Mark Rutland 提交于
      Unlike the debug_fault_info table, we never intentionally alter the
      fault_info table at runtime, and all derived pointers are treated as
      const currently.
      
      Make the table const so that it can be placed in .rodata and protected
      from unintentional writes, as we do for the syscall tables.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      bbb1681e
    • M
      arm64: fix dump_instr when PAN and UAO are in use · c5cea06b
      Mark Rutland 提交于
      If the kernel is set to show unhandled signals, and a user task does not
      handle a SIGILL as a result of an instruction abort, we will attempt to
      log the offending instruction with dump_instr before killing the task.
      
      We use dump_instr to log the encoding of the offending userspace
      instruction. However, dump_instr is also used to dump instructions from
      kernel space, and internally always switches to KERNEL_DS before dumping
      the instruction with get_user. When both PAN and UAO are in use, reading
      a user instruction via get_user while in KERNEL_DS will result in a
      permission fault, which leads to an Oops.
      
      As we have regs corresponding to the context of the original instruction
      abort, we can inspect this and only flip to KERNEL_DS if the original
      abort was taken from the kernel, avoiding this issue. At the same time,
      remove the redundant (and incorrect) comments regarding the order
      dump_mem and dump_instr are called in.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: <stable@vger.kernel.org> #4.6+
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Reported-by: NVladimir Murzin <vladimir.murzin@arm.com>
      Tested-by: NVladimir Murzin <vladimir.murzin@arm.com>
      Fixes: 57f4959b ("arm64: kernel: Add support for User Access Override")
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      c5cea06b
  4. 12 6月, 2016 8 次提交
    • L
      Linux 4.7-rc3 · 5edb5649
      Linus Torvalds 提交于
      5edb5649
    • L
      Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 57120fac
      Linus Torvalds 提交于
      Pull thermal management fixes from Zhang Rui:
      
       - fix an ordering issue in cpu cooling that cooling device is
         registered before it's ready (freq_table being populated).
         (Lukasz Luba)
      
       - fix a missing comment update (Caesar Wang)
      
      * 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: add the note for set_trip_temp
        thermal: cpu_cooling: fix improper order during initialization
      57120fac
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 8714f8f5
      Linus Torvalds 提交于
      Pull block layer fixes from Jens Axboe:
       "A small collection of fixes for the current series.  This contains:
      
         - Two fixes for xen-blkfront, from Bob Liu.
      
         - A bug fix for NVMe, releasing only the specific resources we
           requested.
      
         - Fix for a debugfs flags entry for nbd, from Josef.
      
         - Plug fix from Omar, fixing up a case of code being switched between
           two functions.
      
         - A missing bio_put() for the new discard callers of
           submit_bio_wait(), fixing a regression causing a leak of the bio.
           From Shaun.
      
         - Improve dirty limit calculation precision in the writeback code,
           fixing a case where setting a limit lower than 1% of memory would
           end up being zero.  From Tejun"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        NVMe: Only release requested regions
        xen-blkfront: fix resume issues after a migration
        xen-blkfront: don't call talk_to_blkback when already connected to blkback
        nbd: pass the nbd pointer for flags debugfs
        block: missing bio_put following submit_bio_wait
        blk-mq: really fix plug list flushing for nomerge queues
        writeback: use higher precision calculation in domain_dirty_limits()
      8714f8f5
    • L
      Merge tag 'gpio-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 3a7c114d
      Linus Torvalds 提交于
      Pull GPIO fixes from Linus Walleij:
       "A new bunch of GPIO fixes for v4.7.
      
        This time I am very grateful that Ricardo Ribalda Delgado went in and
        fixed my stupid refcounting mistakes in the removal path for GPIO
        chips.  I had a feeling something was wrong here and so it was.  It
        exploded on OMAP and it fixes their problem.  Now it should be (more)
        solid.
      
        The rest i compilation, Kconfig and driver fixes.  Some tagged for
        stable.
      
        Summary:
      
         - Fix a NULL pointer dereference when we are searching the GPIO
           device list but one of the devices have been removed (struct
           gpio_chip pointer is NULL).
      
         - Fix unaligned reference counters: we were ending on +3 after all
           said and done.  It should be 0.  Remove an extraneous get_device(),
           and call cdev_del() followed by device_del() in gpiochip_remove()
           instead and the count goes to zero and calls the release() function
           properly.
      
         - Fix a compile warning due to a missing #include in the OF/device
           tree portions.
      
         - Select ANON_INODES for GPIOLIB, we're using that for our character
           device.  Some randconfig tests disclosed the problem.
      
         - Make sure the Zynq driver clock runs also without CONFIG_PM enabled
      
         - Fix an off-by-one error in the 104-DIO-48E driver
      
         - Fix warnings in bcm_kona_gpio_reset()"
      
      * tag 'gpio-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio: bcm-kona: fix bcm_kona_gpio_reset() warnings
        gpio: select ANON_INODES
        gpio: include <linux/io-mapping.h> in gpiolib-of
        gpiolib: Fix unaligned used of reference counters
        gpiolib: Fix NULL pointer deference
        gpio: zynq: initialize clock even without CONFIG_PM
        gpio: 104-dio-48e: Fix control port offset computation off-by-one error
      3a7c114d
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 45b00c94
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "Two current fixes:
      
         - one affects Qemu CD ROM emulation, which stopped working after the
           updates in SCSI to require VPD pages from all conformant devices.
      
           Fix temporarily by blacklisting Qemu (we can relax later when they
           come into compliance).
      
         - The other is a fix to the optimal transfer size.  We set up a
           minefield for ourselves by being confused about whether the limits
           are in bytes or sectors (SCSI optimal is in blocks and the queue
           parameter is in bytes).
      
           This tries to fix the problem (wrong setting for queue limits
           max_sectors) and make the problem more obvious by introducing a
           wrapper function"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        sd: Fix rw_max for devices that report an optimal xfer size
        scsi: Add QEMU CD-ROM to VPD Inquiry Blacklist
      45b00c94
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 5d1f7023
      Linus Torvalds 提交于
      Pull i2c fixes from Wolfram Sang:
      
       - a bigger fix for i801 to finally be able to be loaded on some
         machines again
      
       - smaller driver fixes
      
       - documentation update because of a renamed file
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: mux: reg: Provide of_match_table
        i2c: mux: refer to i2c-mux.txt
        i2c: octeon: Avoid printk after too long SMBUS message
        i2c: octeon: Missing AAK flag in case of I2C_M_RECV_LEN
        i2c: i801: Allow ACPI SystemIO OpRegion to conflict with PCI BAR
      5d1f7023
    • L
      Merge tag 'devicetree-fixes-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 90735c99
      Linus Torvalds 提交于
      Pull DeviceTree fixes from Rob Herring:
      
       - fix unflatten_dt_nodes when dad parameter is set.
      
       - add vendor prefixes for TechNexion and UniWest
      
       - documentation fix for Marvell BT
      
       - OF IRQ kerneldoc fixes
      
       - restrict CMA alignment adjustments to non dma-coherent
      
       - a couple of warning fixes in reserved-memory code
      
       - DT maintainers updates
      
      * tag 'devicetree-fixes-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        drivers: of: add definition of early_init_dt_alloc_reserved_memory_arch
        drivers/of: Fix depth for sub-tree blob in unflatten_dt_nodes()
        drivers: of: Fix of_pci.h header guard
        dt-bindings: Add vendor prefix for TechNexion
        of: add vendor prefix for UniWest
        dt: bindings: fix documentation for MARVELL's bt-sd8xxx wireless device
        of: add missing const for of_parse_phandle_with_args() in !CONFIG_OF
        of: silence warnings due to max() usage
        drivers: of: of_reserved_mem: fixup the CMA alignment not to affect dma-coherent
        of: irq: fix of_irq_get[_byname]() kernel-doc
        MAINTAINERS: DeviceTree maintainer updates
      90735c99
    • L
      Merge tag '20160610_uvc_compat_for_linus' of... · f1c32afd
      Linus Torvalds 提交于
      Merge tag '20160610_uvc_compat_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/luto/linux
      
      Pull uvc compat XU ioctl fixes from Andy Lutomirski:
       "uvc's compat XU ioctls go through tons of potentially buggy
        indirection.  The first patch removes the indirection.  The second one
        cleans up the code.
      
        Compile-tested only.  I have the hardware, but I have absolutely no
        idea what XU does, how to use it, what software to recompile as
        32-bit, or what to test in that software"
      
      * tag '20160610_uvc_compat_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/luto/linux:
        uvc_v4l2: Simplify compat ioctl implementation
        uvc: Forward compat ioctls to their handlers directly
      f1c32afd
  5. 11 6月, 2016 16 次提交
  6. 10 6月, 2016 9 次提交
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 698ea54d
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) nfnetlink timestamp taken from wrong skb, fix from Florian Westphal.
      
       2) Revert some msleep conversions in rtlwifi as these spots are in
          atomic context, from Larry Finger.
      
       3) Validate that NFTA_SET_TABLE attribute is actually specified when we
          call nf_tables_getset().  From Phil Turnbull.
      
       4) Don't do mdio_reset in stmmac driver with spinlock held as that can
          sleep, from Vincent Palatin.
      
       5) sk_filter() does things other than run a BPF filter, so we should
          not elide it's call just because sk->sk_filter is NULL.  Fix from
          Eric Dumazet.
      
       6) Fix missing backlog updates in several packet schedulers, from Cong
          Wang.
      
       7) bnx2x driver should allow VLAN add/remove while the interface is
          down, from Michal Schmidt.
      
       8) Several RDS/TCP race fixes from Sowmini Varadhan.
      
       9) fq_codel scheduler doesn't return correct queue length in dumps,
          from Eric Dumazet.
      
      10) Fix TCP stats for tail loss probe and early retransmit in ipv6, from
          Yuchung Cheng.
      
      11) Properly initialize udp_tunnel_socket_cfg in l2tp_tunnel_create(),
          from Guillaume Nault.
      
      12) qfq scheduler leaks SKBs if a kzalloc fails, fix from Florian
          Westphal.
      
      13) sock_fprog passed into PACKET_FANOUT_DATA needs compat handling,
          from Willem de Bruijn.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (85 commits)
        vmxnet3: segCnt can be 1 for LRO packets
        packet: compat support for sock_fprog
        stmmac: fix parameter to dwmac4_set_umac_addr()
        net/mlx5e: Fix blue flame quota logic
        net/mlx5e: Use ndo_stop explicitly at shutdown flow
        net/mlx5: E-Switch, always set mc_promisc for allmulti vports
        net/mlx5: E-Switch, Modify node guid on vf set MAC
        net/mlx5: E-Switch, Fix vport enable flow
        net/mlx5: E-Switch, Use the correct error check on returned pointers
        net/mlx5: E-Switch, Use the correct free() function
        net/mlx5: Fix E-Switch flow steering capabilities check
        net/mlx5: Fix flow steering NIC capabilities check
        net/mlx5: Fix root flow table update
        net/mlx5: Fix MLX5_CMD_OP_MAX to be defined correctly
        net/mlx5: Fix masking of reserved bits in XRCD number
        net/mlx5: Fix the size of modify QP mailbox
        mlxsw: spectrum: Don't sleep during ndo_get_phys_port_name()
        mlxsw: spectrum: Make split flow match firmware requirements
        wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel
        cfg80211: remove get/set antenna and tx power warnings
        ...
      698ea54d
    • L
      Merge tag 'sound-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 729d3784
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "We have only few, mainly HD-audio device-specific fixes.  Realtek
        codec driver got a slightly more LOC, but they are all for the new
        codec chip, and won't affect others at all"
      
      * tag 'sound-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Add PCI ID for Kabylake
        ALSA: hda/realtek: Add T560 docking unit fixup
        ALSA: hda - Fix headset mic detection problem for Dell machine
        ALSA: uapi: Add three missing header files to Kbuild file
        ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703
        ALSA: hda/realtek - ALC256 speaker noise issue
      729d3784
    • L
      Merge tag 'drm-fixes-for-v4.7-rc3' of git://people.freedesktop.org/~airlied/linux · 00da9008
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "This weeks instalment of fixes:
      
        amdgpu:
           Lots of memory leak and firmware leak fixes
      
        nouveau:
           Collection of display fixes, KASAN fixes
      
        vc4:
           vblank/pageflipping fixes
      
        fsl-dcu:
           Regmap cache fix
      
        omap:
           Unused variable warning fix.
      
        Nothing too surprising so far"
      
      * tag 'drm-fixes-for-v4.7-rc3' of git://people.freedesktop.org/~airlied/linux: (46 commits)
        drm/amdgpu: fix warning with powerplay disabled.
        drm/amd/powerplay: delete useless code as pptable changed in vbios.
        drm/amd/powerplay: fix bug visit array out of bounds
        drm/amdgpu: fix smu ucode memleak (v2)
        drm/amdgpu: add release firmware for cgs
        drm/amdgpu: fix tonga smu_fini mem leak
        drm/amdgpu: fix fiji smu fini mem leak
        drm/amdgpu: fix cik sdma ucode memleak
        drm/amdgpu: fix sdma24 ucode mem leak
        drm/amdgpu: fix sdma3 ucode mem leak
        drm/amdgpu: fix uvd fini mem leak
        drm/amdgpu: fix gfx 7 ucode mem leak
        drm/amdgpu: fix gfx8 ucode mem leak
        drm/amdgpu: fix missing free wb for cond_exec
        drm/amdgpu: fix memleak in pptable_init
        drm/amdgpu: fix mem leak in atombios
        drm/amdgpu: fix mem leak in pplib/hwmgr
        drm/amdgpu: fix mem leak in smumgr
        drm/amdgpu: add pipeline sync while vmid switch in same ctx
        drm/amdgpu: vBIOS post only call when mem_size zero
        ...
      00da9008
    • L
      Merge tag 'acpi-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f758bbd4
      Linus Torvalds 提交于
      Pull ACPI fix from Rafael Wysocki:
       "A recently introduced boot regression related to the ACPI EC
        initialization is addressed by restoring the previous behavior (Lv
        Zheng)"
      
      * tag 'acpi-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / EC: Fix a boot EC regresion by restoring boot EC support for the DSDT EC
      f758bbd4
    • L
      Merge tag 'pm-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 524a3f2c
      Linus Torvalds 提交于
      Pull power management fixes from Rafael Wysocki:
       "Stable-candidate fixes for the intel_pstate driver and the cpuidle
        core.
      
        Specifics:
      
         - Fix two intel_pstate initialization issues, one of which was
           introduced during the 4.4 cycle (Srinivas Pandruvada)
      
         - Fix kernel build with CONFIG_UBSAN set and CONFIG_CPU_IDLE unset
           (Catalin Marinas)"
      
      * tag 'pm-4.7-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: intel_pstate: Fix ->set_policy() interface for no_turbo
        cpufreq: intel_pstate: Fix code ordering in intel_pstate_set_policy()
        cpuidle: Do not access cpuidle_devices when !CONFIG_CPU_IDLE
      524a3f2c
    • L
      Merge branch 'akpm' (patches from Andrew) · 9557c3cf
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton:
       "7 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm/fadvise.c: do not discard partial pages with POSIX_FADV_DONTNEED
        mm: introduce dedicated WQ_MEM_RECLAIM workqueue to do lru_add_drain_all
        kernel/relay.c: fix potential memory leak
        mm: thp: broken page count after commit aa88b68c
        revert "mm: memcontrol: fix possible css ref leak on oom"
        kasan: change memory hot-add error messages to info messages
        mm/hugetlb: fix huge page reserve accounting for private mappings
      9557c3cf
    • R
      x86/ioapic: Fix incorrect pointers in ioapic_setup_resources() · 9d98bcec
      Rui Wang 提交于
      On a 4-socket Brickland system, hot-removing one ioapic is fine.
      Hot-removing the 2nd one causes panic in mp_unregister_ioapic()
      while calling release_resource().
      
      It is because the iomem_res pointer has already been released
      when removing the first ioapic.
      
      To explain the use of &res[num] here: res is assigned to ioapic_resources,
      and later in ioapic_insert_resources() we do:
      
      	struct resource *r = ioapic_resources;
      
              for_each_ioapic(i) {
                      insert_resource(&iomem_resource, r);
                      r++;
              }
      
      Here 'r' is treated as an arry of 'struct resource', and the r++ ensures
      that each element of the array is inserted separately. Thus we should call
      release_resouce() on each element at &res[num].
      
      Fix it by assigning the correct pointers to ioapics[i].iomem_res in
      ioapic_setup_resources().
      Signed-off-by: NRui Wang <rui.y.wang@intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: tony.luck@intel.com
      Cc: linux-pci@vger.kernel.org
      Cc: rjw@rjwysocki.net
      Cc: linux-acpi@vger.kernel.org
      Cc: bhelgaas@google.com
      Link: http://lkml.kernel.org/r/1465369193-4816-3-git-send-email-rui.y.wang@intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      9d98bcec
    • A
      x86/entry/traps: Don't force in_interrupt() to return true in IST handlers · aaee8c3c
      Andy Lutomirski 提交于
      Forcing in_interrupt() to return true if we're not in a bona fide
      interrupt confuses the softirq code.  This fixes warnings like:
      
        NOHZ: local_softirq_pending 282
      
      ... which can happen when running things like selftests/x86.
      
      This will change perf's static percpu buffer usage in IST context.
      I think this is okay, and it's changing the behavior to match
      historical (pre-4.0) behavior.
      Signed-off-by: NAndy Lutomirski <luto@kernel.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Fixes: 95927475 ("x86, traps: Track entry into and exit from IST context")
      Link: http://lkml.kernel.org/r/cdc215f94d118d691d73df35275022331156fb45.1464130360.git.luto@kernel.orgSigned-off-by: NIngo Molnar <mingo@kernel.org>
      aaee8c3c
    • S
      vmxnet3: segCnt can be 1 for LRO packets · 50219538
      Shrikrishna Khare 提交于
      The device emulation may send segCnt of 1 for LRO packets.
      Signed-off-by: NShrikrishna Khare <skhare@vmware.com>
      Signed-off-by: NJin Heo <heoj@vmware.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      50219538