Skip to content
  1. Jul 25, 2015
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 874bf9ee
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - kernel crash fixes for multitouch and wacom drivers, by Brent Adam
         and Dan Carpenter
      
       - cp2112 data packet race condition corruption fix, by Antonio Borneo
      
       - a few new device IDs for wacom and microsoft drivers
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: cp2112: fix to force single data-report reply
        HID: wacom: Enable pad device for older Bamboo Touch tablets
        HID: multitouch: Fix fields from pen report ID being interpreted for multitouch
        HID: microsoft: Add quirk for MS Surface Type/Touch cover
        HID: wacom: NULL dereferences on error in probe()
      874bf9ee
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 077b2053
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Aome amdgpu, one i915, one ttm and one hlcdc, nothing too scary.
      
        All seems fine for about this time"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/ttm: recognize ARM64 arch in ioprot handler
        drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels
        drm/amdgpu/cz: implement voltage validation properly
        drm/amdgpu: add VCE harvesting instance query
        drm/amdgpu: implement VCE 3.0 harvesting support (v4)
        drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC
        drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC
        drm: Stop resetting connector state to unknown
        drm/i915: Use two 32bit reads for select 64bit REG_READ ioctls
        drm: atmel-hlcdc: fix vblank initial state
      077b2053
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · b4975000
      Linus Torvalds authored
      Pull arch/tile bugfix from Chris Metcalf:
       "This fixes a bug in freeing the initramfs memory"
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tile: use free_bootmem_late() for initrd
      b4975000
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · c624406f
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Everything related to the new quirks and memory type features:
      
         - small improvements to the quirks API
      
         - extending one of the quirks from just AMD to Intel as well, because
           4.2 can show the same problem with problematic firmware on Intel
           too"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: rename quirk constants to KVM_X86_QUIRK_*
        KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED
        KVM: x86: introduce kvm_check_has_quirk
        KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type
        KVM: MTRR: fix memory type handling if MTRR is completely disabled
      c624406f
  2. Jul 24, 2015
    • Dave Airlie's avatar
      Merge tag 'drm-atmel-hlcdc/fixes-for-4.2' of... · 02bbc4dc
      Dave Airlie authored
      Merge tag 'drm-atmel-hlcdc/fixes-for-4.2' of https://github.com/bbrezillon/linux-at91 into drm-fixes
      
      single hlcdc fix.
      
      * tag 'drm-atmel-hlcdc/fixes-for-4.2' of https://github.com/bbrezillon/linux-at91:
        drm: atmel-hlcdc: fix vblank initial state
      02bbc4dc
    • Dave Airlie's avatar
      Merge tag 'topic/drm-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-fixes · b37b425f
      Dave Airlie authored
      Regression fix for systemd getting confused about unknown connector state
      after resume. Just stop setting the state to unknown, turned out to be a
      silly idea anyway. What drivers imo really should do (and i915 still does
      that) is forcing a full reprobe on resume to make sure connector changes
      while suspended are caught. Most drivers seem to get this wrong. Otoh it
      took us years to get fixes merged where some probe races resulted in
      eating uevents, I guess userspace expectations for reliable hpd are just
      really low :(
      
      * tag 'topic/drm-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel:
        drm: Stop resetting connector state to unknown
      b37b425f
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel into drm-fixes · 4db9a82f
      Dave Airlie authored
      arb_timer kernel side fix from Chris.
      
      * tag 'drm-intel-fixes-2015-07-23' of git://anongit.freedesktop.org/drm-intel:
        drm/i915: Use two 32bit reads for select 64bit REG_READ ioctls
      4db9a82f
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 762043aa
      Dave Airlie authored
      Some amdgpu fixes.
      
      * 'drm-fixes-4.2' of git://people.freedesktop.org/~agd5f/linux:
        drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels
        drm/amdgpu/cz: implement voltage validation properly
        drm/amdgpu: add VCE harvesting instance query
        drm/amdgpu: implement VCE 3.0 harvesting support (v4)
        drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC
        drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC
      762043aa
    • Alexandre Courbot's avatar
      drm/ttm: recognize ARM64 arch in ioprot handler · f135b978
      Alexandre Courbot authored
      
      
      Return proper pgprot for ARM64. This is required for objects like
      Nouveau fences to be mapped with expected coherency.
      
      Signed-off-by: default avatarAlexandre Courbot <acourbot@nvidia.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      f135b978
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 45b4b782
      Linus Torvalds authored
      Pull namespace fixes from Eric Biederman:
       "While reading through the code of detach_mounts I realized the code
        was slightly off.  Testing it revealed two buggy corner cases that can
        send the code of detach_mounts into an infinite loop.
      
        Fixing the code to do the right thing removes the possibility of these
        user triggered infinite loops in the code"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        mnt: In detach_mounts detach the appropriate unmounted mount
        mnt: Clarify and correct the disconnect logic in umount_tree
      45b4b782
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · d1a343a0
      Linus Torvalds authored
      Pull virtio/vhost fixes from Michael Tsirkin:
       "Bugfixes and documentation fixes.
      
        Igor's patch that allows users to tweak memory table size is
        borderline, but it does fix known crashes, so I merged it"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vhost: add max_mem_regions module parameter
        vhost: extend memory regions allocation to vmalloc
        9p/trans_virtio: reset virtio device on remove
        virtio/s390: rename drivers/s390/kvm -> drivers/s390/virtio
        MAINTAINERS: separate section for s390 virtio drivers
        virtio: define virtio_pci_cfg_cap in header.
        virtio: Fix typecast of pointer in vring_init()
        virtio scsi: fix unused variable warning
        vhost: use binary search instead of linear in find_region()
        virtio_net: document VIRTIO_NET_CTRL_GUEST_OFFLOADS
      d1a343a0
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · b681268c
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
       "The fixes include:
      
         - a couple of fixes for the new ARM-SMMUv3 driver to fix issues found
           on the first real implementation of that hardware.
      
         - a patch for the Intel VT-d driver to fix a domain-id leak"
      
      * tag 'iommu-fixes-v4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/vt-d: Fix VM domain ID leak
        iommu/arm-smmu: Skip the execution of CMD_PREFETCH_CONFIG
        iommu/arm-smmu: Enlarge STRTAB_L1_SZ_SHIFT to support larger sidsize
        iommu/arm-smmu: Fix the values of ARM64_TCR_{I,O}RGN0_SHIFT
        iommu/arm-smmu: Fix LOG2SIZE setting for 2-level stream tables
        iommu/arm-smmu: Fix the index calculation of strtab
      b681268c
    • Alex Deucher's avatar
      drm/amdgpu/cz/dpm: properly report UVD and VCE clock levels · acc6a1a6
      Alex Deucher authored
      
      
      VCE, UVD DPM work similarly to SCLK DPM.  Report the current
      clock levels for UVD and VCE via debugfs.
      
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      acc6a1a6
    • Alex Deucher's avatar
      drm/amdgpu/cz: implement voltage validation properly · f2d52cd4
      Alex Deucher authored
      
      
      CZ uses a different set of registers compared to previous asics
      and supports separate NB and GFX planes.
      
      Reviewed-by: default avatarJammy Zhou <Jammy.Zhou@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f2d52cd4
    • Chris Metcalf's avatar
      tile: use free_bootmem_late() for initrd · 3f81d244
      Chris Metcalf authored
      
      
      We were previously using free_bootmem() and just getting lucky
      that nothing too bad happened.
      
      Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
      Cc: stable@vger.kernel.org
      3f81d244
    • Eric W. Biederman's avatar
      mnt: In detach_mounts detach the appropriate unmounted mount · fe78fcc8
      Eric W. Biederman authored
      The handling of in detach_mounts of unmounted but connected mounts is
      buggy and can lead to an infinite loop.
      
      Correct the handling of unmounted mounts in detach_mount.  When the
      mountpoint of an unmounted but connected mount is connected to a
      dentry, and that dentry is deleted we need to disconnect that mount
      from the parent mount and the deleted dentry.
      
      Nothing changes for the unmounted and connected children.  They can be
      safely ignored.
      
      Cc: stable@vger.kernel.org
      Fixes: ce07d891
      
       mnt: Honor MNT_LOCKED when detaching mounts
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      fe78fcc8
  3. Jul 23, 2015
    • Leo Liu's avatar
    • Alex Deucher's avatar
      drm/amdgpu: implement VCE 3.0 harvesting support (v4) · 6a585777
      Alex Deucher authored
      
      
      For boards with bad VCE blocks, only configure the working
      block.
      
      v2: use the harvest info for pipe setup
      v3: fix mask check as noted by Leo
      v4: add dGPU support
      
      Reviewed-by: Christian König <christian.koenig@amd.com> (v2)
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      6a585777
    • Michel Dänzer's avatar
      drm/amdgpu/dce10: Re-set VBLANK interrupt state when enabling a CRTC · 5e6775ab
      Michel Dänzer authored
      
      
      This doesn't seem strictly necessary with Tonga right now, but that might
      change with future power management enhancements.
      
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
      5e6775ab
    • Michel Dänzer's avatar
      drm/amdgpu/dce11: Re-set VBLANK interrupt state when enabling a CRTC · d84b272a
      Michel Dänzer authored
      
      
      Something (ATOM BIOS?) seems to be clobbering the LB_INTERRUPT_MASK
      register while the CRTC is off, which caused e.g. glxgears or
      gnome-shell to hang after a modeset.
      
      Reviewed-and-Tested-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Tested-by: default avatarSonny Jiang <sonny.jiang@amd.com>
      Signed-off-by: default avatarMichel Dänzer <michel.daenzer@amd.com>
      d84b272a
    • Alex Williamson's avatar
      iommu/vt-d: Fix VM domain ID leak · 46ebb7af
      Alex Williamson authored
      This continues the attempt to fix commit fb170fb4 ("iommu/vt-d:
      Introduce helper functions to make code symmetric for readability").
      The previous attempt in commit 71684406 ("iommu/vt-d: Detach
      domain *only* from attached iommus") overlooked the fact that
      dmar_domain.iommu_bmp gets cleared for VM domains when devices are
      detached:
      
      intel_iommu_detach_device
        domain_remove_one_dev_info
          domain_detach_iommu
      
      The domain is detached from the iommu, but the iommu is still attached
      to the domain, for whatever reason.  Thus when we get to domain_exit(),
      we can't rely on iommu_bmp for VM domains to find the active iommus,
      we must check them all.  Without that, the corresponding bit in
      intel_iommu.domain_ids doesn't get cleared and repeated VM domain
      creation and destruction will run out of domain IDs.  Meanwhile we
      still can't call iommu_detach_domain() on arbitrary non-VM domains or
      we risk clearing in-use domain IDs, as 71684406 attempted to
      address.
      
      It's tempting to modify iommu_detach_domain() to test the domain
      iommu_bmp, but the call ordering from domain_remove_one_dev_info()
      prevents it being able to work as fb170fb4 seems to have intended.
      Caching of unused VM domains on the iommu object seems to be the root
      of the problem, but this code is far too fragile for that kind of
      rework to be proposed for stable, so we simply revert this chunk to
      its state prior to fb170fb4.
      
      Fixes: fb170fb4 ("iommu/vt-d: Introduce helper functions to make
                            code symmetric for readability")
      Fixes: 71684406
      
       ("iommu/vt-d: Detach domain *only* from attached
                            iommus")
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Cc: Jiang Liu <jiang.liu@linux.intel.com>
      Cc: stable@vger.kernel.org # v3.17+
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      46ebb7af
    • Paolo Bonzini's avatar
      KVM: x86: rename quirk constants to KVM_X86_QUIRK_* · 0da029ed
      Paolo Bonzini authored
      
      
      Make them clearly architecture-dependent; the capability is valid for
      all architectures, but the argument is not.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      0da029ed
    • Xiao Guangrong's avatar
      KVM: vmx: obey KVM_QUIRK_CD_NW_CLEARED · fb279950
      Xiao Guangrong authored
      
      
      OVMF depends on WB to boot fast, because it only clears caches after
      it has set up MTRRs---which is too late.
      
      Let's do writeback if CR0.CD is set to make it happy, similar to what
      SVM is already doing.
      
      Signed-off-by: default avatarXiao Guangrong <guangrong.xiao@intel.com>
      Tested-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      fb279950
    • Paolo Bonzini's avatar
      KVM: x86: introduce kvm_check_has_quirk · 41dbc6bc
      Paolo Bonzini authored
      
      
      The logic of the disabled_quirks field usually results in a double
      negation.  Wrap it in a simple function that checks the bit and
      negates it.
      
      Based on a patch from Xiao Guangrong.
      
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      41dbc6bc
    • Xiao Guangrong's avatar
      KVM: MTRR: simplify kvm_mtrr_get_guest_memory_type · 3e5d2fdc
      Xiao Guangrong authored
      
      
      kvm_mtrr_get_guest_memory_type never returns -1 which is implied
      in the current code since if @type = -1 (means no MTRR contains the
      range), iter.partial_map must be true
      
      Simplify the code to indicate this fact
      
      Signed-off-by: default avatarXiao Guangrong <guangrong.xiao@intel.com>
      Tested-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      3e5d2fdc
    • Xiao Guangrong's avatar
      KVM: MTRR: fix memory type handling if MTRR is completely disabled · 10dc331f
      Xiao Guangrong authored
      
      
      Currently code uses default memory type if MTRR is fully disabled,
      fix it by using UC instead.
      
      Signed-off-by: default avatarXiao Guangrong <guangrong.xiao@intel.com>
      Tested-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      10dc331f
    • Eric W. Biederman's avatar
      mnt: Clarify and correct the disconnect logic in umount_tree · f2d0a123
      Eric W. Biederman authored
      rmdir mntpoint will result in an infinite loop when there is
      a mount locked on the mountpoint in another mount namespace.
      
      This is because the logic to test to see if a mount should
      be disconnected in umount_tree is buggy.
      
      Move the logic to decide if a mount should remain connected to
      it's mountpoint into it's own function disconnect_mount so that
      clarity of expression instead of terseness of expression becomes
      a virtue.
      
      When the conditions where it is invalid to leave a mount connected
      are first ruled out, the logic for deciding if a mount should
      be disconnected becomes much clearer and simpler.
      
      Fixes: e0c9c0af mnt: Update detach_mounts to leave mounts connected
      Fixes: ce07d891
      
       mnt: Honor MNT_LOCKED when detaching mounts
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      f2d0a123
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · c5dfd654
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Don't use shared bluetooth antenna in iwlwifi driver for management
          frames, from Emmanuel Grumbach.
      
       2) Fix device ID check in ath9k driver, from Felix Fietkau.
      
       3) Off by one in xen-netback BUG checks, from Dan Carpenter.
      
       4) Fix IFLA_VF_PORT netlink attribute validation, from Daniel Borkmann.
      
       5) Fix races in setting peeked bit flag in SKBs during datagram
          receive.  If it's shared we have to clone it otherwise the value can
          easily be corrupted.  Fix from Herbert Xu.
      
       6) Revert fec clock handling change, causes regressions.  From Fabio
          Estevam.
      
       7) Fix use after free in fq_codel and sfq packet schedulers, from WANG
          Cong.
      
       8) ipvlan bug fixes (memory leaks, missing rcu_dereference_bh, etc.)
          from WANG Cong and Konstantin Khlebnikov.
      
       9) Memory leak in act_bpf packet action, from Alexei Starovoitov.
      
      10) ARM bpf JIT bug fixes from Nicolas Schichan.
      
      11) Fix backwards compat of ANY_LAYOUT in virtio_net driver, from
          Michael S Tsirkin.
      
      12) Destruction of bond with different ARP header types not handled
          correctly, fix from Nikolay Aleksandrov.
      
      13) Revert GRO receive support in ipv6 SIT tunnel driver, causes
          regressions because the GRO packets created cannot be processed
          properly on the GSO side if we forward the frame.  From Herbert Xu.
      
      14) TCCR update race and other fixes to ravb driver from Sergei
          Shtylyov.
      
      15) Fix SKB leaks in caif_queue_rcv_skb(), from Eric Dumazet.
      
      16) Fix panics on packet scheduler filter replace, from Daniel Borkmann.
      
      17) Make sure AF_PACKET sees properly IP headers in defragmented frames
          (via PACKET_FANOUT_FLAG_DEFRAG option), from Edward Hyunkoo Jee.
      
      18) AF_NETLINK cannot hold mutex in RCU callback, fix from Florian
          Westphal.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (84 commits)
        ravb: fix ring memory allocation
        net: phy: dp83867: Fix warning check for setting the internal delay
        openvswitch: allocate nr_node_ids flow_stats instead of num_possible_nodes
        netlink: don't hold mutex in rcu callback when releasing mmapd ring
        ARM: net: fix vlan access instructions in ARM JIT.
        ARM: net: handle negative offsets in BPF JIT.
        ARM: net: fix condition for load_order > 0 when translating load instructions.
        tcp: suppress a division by zero warning
        drivers: net: cpsw: remove tx event processing in rx napi poll
        inet: frags: fix defragmented packet's IP header for af_packet
        net: mvneta: fix refilling for Rx DMA buffers
        stmmac: fix setting of driver data in stmmac_dvr_probe
        sched: cls_flow: fix panic on filter replace
        sched: cls_flower: fix panic on filter replace
        sched: cls_bpf: fix panic on filter replace
        net/mdio: fix mdio_bus_match for c45 PHY
        net: ratelimit warnings about dst entry refcount underflow or overflow
        caif: fix leaks and race in caif_queue_rcv_skb()
        qmi_wwan: add the second QMI/network interface for Sierra Wireless MC7305/MC7355
        ravb: fix race updating TCCR
        ...
      c5dfd654
  4. Jul 22, 2015
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5a5ca73a
      Linus Torvalds authored
      Pull ARM64 fixes from Catalin Marinas:
      
       - arm64 build fix following the move of the thread_struct to the end of
         task_struct and the asm offsets becoming too large for the AArch64
         ISA
      
       - preparatory patch for moving irq_data struct members (applied now to
         reduce dependency for the next merging window)
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        ARM64/irq: Use access helper irq_data_get_affinity_mask()
        arm64: switch_to: calculate cpu context pointer using separate register
      5a5ca73a
    • Daniel Vetter's avatar
      drm: Stop resetting connector state to unknown · 5677d67a
      Daniel Vetter authored
      It's causing piles of issues since we've stopped forcing full detect
      cycles in the sysfs interfaces with
      
      commit c484f02d
      
      
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Fri Mar 6 12:36:42 2015 +0000
      
          drm: Lighten sysfs connector 'status'
      
      The original justification for this was that the hpd handlers could
      use the unknown state as a hint to force a full detection. But current
      i915 code isn't doing that any more, and no one else really uses reset
      on resume. So instead just keep the old state around.
      
      References: http://article.gmane.org/gmane.comp.freedesktop.xorg.drivers.intel/62584
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=100641
      Cc: Rui Matos <tiagomatos@gmail.com>
      Cc: Julien Wajsberg <felash@gmail.com>
      Cc: kuddel.mail@gmx.de
      Cc: Lennart Poettering <mzxreary@0pointer.de>
      Cc: stable@vger.kernel.org
      Acked-by: default avatarRob Clark <robdclark@gmail.com>
      Tested-by: default avatarRui Tiago Cação Matos <tiagomatos@gmail.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      5677d67a
    • Jiang Liu's avatar
      ARM64/irq: Use access helper irq_data_get_affinity_mask() · 3bc38fc1
      Jiang Liu authored
      
      
      This is a preparatory patch for moving irq_data struct members.
      
      Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
      Reviewed-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
      Cc: linux-arm-kernel@lists.infradead.org
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      3bc38fc1
    • Will Deacon's avatar
      arm64: switch_to: calculate cpu context pointer using separate register · c0d3fce5
      Will Deacon authored
      Commit 0c8c0f03 ("x86/fpu, sched: Dynamically allocate 'struct fpu'")
      moved the thread_struct to the bottom of task_struct. As a result, the
      offset is now too large to be used in an immediate add on arm64 with
      some kernel configs:
      
      arch/arm64/kernel/entry.S: Assembler messages:
      arch/arm64/kernel/entry.S:588: Error: immediate out of range
      arch/arm64/kernel/entry.S:597: Error: immediate out of range
      
      This patch calculates the offset using an additional register instead of
      an immediate offset.
      
      Fixes: 0c8c0f03
      
       ("x86/fpu, sched: Dynamically allocate 'struct fpu'")
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      c0d3fce5
    • Sergei Shtylyov's avatar
      ravb: fix ring memory allocation · d8b48911
      Sergei Shtylyov authored
      
      
      The driver is written as if it can adapt to a low memory situation  allocating
      less RX  skbs and TX aligned buffers than the respective RX/TX ring sizes.  In
      reality  though  the driver  would malfunction in this case. Stop being overly
      smart and just fail in such situation -- this is achieved by moving the memory
      allocation from ravb_ring_format() to ravb_ring_init().
      
      We leave dma_map_single() calls in place but make their failure non-fatal
      by marking the corresponding RX descriptors  with zero data size which should
      prevent DMA to an invalid addresses.
      
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d8b48911
    • Dan Murphy's avatar
      net: phy: dp83867: Fix warning check for setting the internal delay · a46fa260
      Dan Murphy authored
      
      
      Fix warning: logical ‘or’ of collectively exhaustive tests is always true
      
      Change the internal delay check from an 'or' condition to an 'and'
      condition.
      
      Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: default avatarDan Murphy <dmurphy@ti.com>
      Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a46fa260
    • Chris J Arges's avatar
      openvswitch: allocate nr_node_ids flow_stats instead of num_possible_nodes · bac541e4
      Chris J Arges authored
      Some architectures like POWER can have a NUMA node_possible_map that
      contains sparse entries. This causes memory corruption with openvswitch
      since it allocates flow_cache with a multiple of num_possible_nodes() and
      assumes the node variable returned by for_each_node will index into
      flow->stats[node].
      
      Use nr_node_ids to allocate a maximal sparse array instead of
      num_possible_nodes().
      
      The crash was noticed after 3af229f2 was applied as it changed the
      node_possible_map to match node_online_map on boot.
      Fixes: 3af229f2
      
      
      
      Signed-off-by: default avatarChris J Arges <chris.j.arges@canonical.com>
      Acked-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Acked-by: default avatarNishanth Aravamudan <nacc@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bac541e4
    • Florian Westphal's avatar
      netlink: don't hold mutex in rcu callback when releasing mmapd ring · 0470eb99
      Florian Westphal authored
      
      
      Kirill A. Shutemov says:
      
      This simple test-case trigers few locking asserts in kernel:
      
      int main(int argc, char **argv)
      {
              unsigned int block_size = 16 * 4096;
              struct nl_mmap_req req = {
                      .nm_block_size          = block_size,
                      .nm_block_nr            = 64,
                      .nm_frame_size          = 16384,
                      .nm_frame_nr            = 64 * block_size / 16384,
              };
              unsigned int ring_size;
      	int fd;
      
      	fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
              if (setsockopt(fd, SOL_NETLINK, NETLINK_RX_RING, &req, sizeof(req)) < 0)
                      exit(1);
              if (setsockopt(fd, SOL_NETLINK, NETLINK_TX_RING, &req, sizeof(req)) < 0)
                      exit(1);
      
      	ring_size = req.nm_block_nr * req.nm_block_size;
      	mmap(NULL, 2 * ring_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
      	return 0;
      }
      
      +++ exited with 0 +++
      BUG: sleeping function called from invalid context at /home/kas/git/public/linux-mm/kernel/locking/mutex.c:616
      in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: init
      3 locks held by init/1:
       #0:  (reboot_mutex){+.+...}, at: [<ffffffff81080959>] SyS_reboot+0xa9/0x220
       #1:  ((reboot_notifier_list).rwsem){.+.+..}, at: [<ffffffff8107f379>] __blocking_notifier_call_chain+0x39/0x70
       #2:  (rcu_callback){......}, at: [<ffffffff810d32e0>] rcu_do_batch.isra.49+0x160/0x10c0
      Preemption disabled at:[<ffffffff8145365f>] __delay+0xf/0x20
      
      CPU: 1 PID: 1 Comm: init Not tainted 4.1.0-00009-gbddf4c4818e0 #253
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Debian-1.8.2-1 04/01/2014
       ffff88017b3d8000 ffff88027bc03c38 ffffffff81929ceb 0000000000000102
       0000000000000000 ffff88027bc03c68 ffffffff81085a9d 0000000000000002
       ffffffff81ca2a20 0000000000000268 0000000000000000 ffff88027bc03c98
      Call Trace:
       <IRQ>  [<ffffffff81929ceb>] dump_stack+0x4f/0x7b
       [<ffffffff81085a9d>] ___might_sleep+0x16d/0x270
       [<ffffffff81085bed>] __might_sleep+0x4d/0x90
       [<ffffffff8192e96f>] mutex_lock_nested+0x2f/0x430
       [<ffffffff81932fed>] ? _raw_spin_unlock_irqrestore+0x5d/0x80
       [<ffffffff81464143>] ? __this_cpu_preempt_check+0x13/0x20
       [<ffffffff8182fc3d>] netlink_set_ring+0x1ed/0x350
       [<ffffffff8182e000>] ? netlink_undo_bind+0x70/0x70
       [<ffffffff8182fe20>] netlink_sock_destruct+0x80/0x150
       [<ffffffff817e484d>] __sk_free+0x1d/0x160
       [<ffffffff817e49a9>] sk_free+0x19/0x20
      [..]
      
      Cong Wang says:
      
      We can't hold mutex lock in a rcu callback, [..]
      
      Thomas Graf says:
      
      The socket should be dead at this point. It might be simpler to
      add a netlink_release_ring() function which doesn't require
      locking at all.
      
      Reported-by: default avatar"Kirill A. Shutemov" <kirill@shutemov.name>
      Diagnosed-by: default avatarCong Wang <cwang@twopensource.com>
      Suggested-by: default avatarThomas Graf <tgraf@suug.ch>
      Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0470eb99
    • David S. Miller's avatar
      Merge branch 'arm-bpf-fixes' · 7c8cbaca
      David S. Miller authored
      
      
      Nicolas Schichan says:
      
      ====================
      BPF JIT fixes for ARM
      
      These patches are fixing bugs in the ARM JIT and should probably find
      their way to a stable kernel. All 60 test_bpf tests in Linux 4.1 release
      are now passing OK (was 54 out of 60 before).
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c8cbaca
    • Nicolas Schichan's avatar
      ARM: net: fix vlan access instructions in ARM JIT. · c18fe54b
      Nicolas Schichan authored
      
      
      This makes BPF_ANC | SKF_AD_VLAN_TAG and BPF_ANC | SKF_AD_VLAN_TAG_PRESENT
      have the same behaviour as the in kernel VM and makes the test_bpf LD_VLAN_TAG
      and LD_VLAN_TAG_PRESENT tests pass.
      
      Signed-off-by: default avatarNicolas Schichan <nschichan@freebox.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c18fe54b
    • Nicolas Schichan's avatar
      ARM: net: handle negative offsets in BPF JIT. · 6d715e30
      Nicolas Schichan authored
      
      
      Previously, the JIT would reject negative offsets known during code
      generation and mishandle negative offsets provided at runtime.
      
      Fix that by calling bpf_internal_load_pointer_neg_helper()
      appropriately in the jit_get_skb_{b,h,w} slow path helpers and by forcing
      the execution flow to the slow path helpers when the offset is
      negative.
      
      Signed-off-by: default avatarNicolas Schichan <nschichan@freebox.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d715e30
    • Nicolas Schichan's avatar
      ARM: net: fix condition for load_order > 0 when translating load instructions. · 7aed35cb
      Nicolas Schichan authored
      
      
      To check whether the load should take the fast path or not, the code
      would check that (r_skb_hlen - load_order) is greater than the offset
      of the access using an "Unsigned higher or same" condition. For
      halfword accesses and an skb length of 1 at offset 0, that test is
      valid, as we end up comparing 0xffffffff(-1) and 0, so the fast path
      is taken and the filter allows the load to wrongly succeed. A similar
      issue exists for word loads at offset 0 and an skb length of less than
      4.
      
      Fix that by using the condition "Signed greater than or equal"
      condition for the fast path code for load orders greater than 0.
      
      Signed-off-by: default avatarNicolas Schichan <nschichan@freebox.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7aed35cb