1. 08 Jul, 2014 13 commits
    • Guido Martínez's avatar
      drm/tilcdc: remove submodule destroy calls · 7cdcce9f
      Guido Martínez authored
      The TI tilcdc driver is designed with a notion of submodules. Currently,
      at unload time, these submodules are iterated and destroyed.
      
      Now that the tilcdc remove order is fixed, this can be handled perfectly
      by the kernel using the device infrastructure, since each submodule
      is a kernel driver itself, and they are only destroy()'ed at unload
      time. Therefore we move the destroy() functionality to each submodule's
      remove().
      
      Also, remove some checks in the unloading process since the new code
      guarantees the resources are allocated and need a release.
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      7cdcce9f
    • Guido Martínez's avatar
      drm/tilcdc: fix double kfree · c9a3ad25
      Guido Martínez authored
      display_timings_release calls kfree on the display_timings object passed
      to it. Calling kfree after it is wrong. SLUB debug showed the following
      warning:
      
          =============================================================================
          BUG kmalloc-64 (Tainted: G        W    ): Object already free
          -----------------------------------------------------------------------------
      
          Disabling lock debugging due to kernel taint
          INFO: Allocated in of_get_display_timings+0x2c/0x214 age=601 cpu=0
          pid=884
           __slab_alloc.constprop.79+0x2e0/0x33c
           kmem_cache_alloc+0xac/0xdc
           of_get_display_timings+0x2c/0x214
           panel_probe+0x7c/0x314 [tilcdc]
           platform_drv_probe+0x18/0x48
           [..snip..]
          INFO: Freed in panel_destroy+0x18/0x3c [tilcdc] age=0 cpu=0 pid=907
           __slab_free+0x34/0x330
           panel_destroy+0x18/0x3c [tilcdc]
           tilcdc_unload+0xd0/0x118 [tilcdc]
           drm_dev_unregister+0x24/0x98
           [..snip..]
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      c9a3ad25
    • Guido Martínez's avatar
      drm/tilcdc: fix release order on exit · eb565a2b
      Guido Martínez authored
      Unregister resources in the correct order on tilcdc_drm_fini, which is
      the reverse order they were registered during tilcdc_drm_init.
      
      This also means unregistering the driver before releasing its resources.
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      eb565a2b
    • Guido Martínez's avatar
      drm/tilcdc: panel: fix leak when unloading the module · 3a490122
      Guido Martínez authored
      The driver did not unregister the allocated framebuffer, which caused
      memory leaks (and memory manager WARNs) when unloading. Also, the
      framebuffer device under /dev still existed after unloading.
      
      Add a call to drm_fbdev_cma_fini when unloading the module to prevent
      both issues.
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      3a490122
    • Guido Martínez's avatar
      drm/tilcdc: tfp410: fix dangling sysfs connector node · 16dcbdef
      Guido Martínez authored
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver, otherwise
      we will get a warning about a duplicate filename in sysfs.
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      16dcbdef
    • Guido Martínez's avatar
      drm/tilcdc: slave: fix dangling sysfs connector node · daa15b4c
      Guido Martínez authored
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver as a
      module. Without this, we would get a warning at re-load time like so:
      
         tda998x 0-0070: found TDA19988
         ------------[ cut here ]------------
         WARNING: CPU: 0 PID: 825 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
         sysfs: cannot create duplicate filename '/class/drm/card0-HDMI-A-1'
         Modules linked in: [..]
         CPU: 0 PID: 825 Comm: modprobe Not tainted 3.15.0-rc4-00027-g9dcdef4 #82
         [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
         [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
         [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
         [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
         [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
         [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
         [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
         [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
         [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
         [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1b40>] (slave_modeset_init+0x120/0x1bc [tilcdc])
         [<bf0b1b40>] (slave_modeset_init [tilcdc]) from [<bf0b2be8>] (tilcdc_load+0x214/0x4c0 [tilcdc])
         [<bf0b2be8>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
            [..snip..]
         ---[ end trace 4df8d614936ebdee ]---
         [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      daa15b4c
    • Guido Martínez's avatar
      drm/tilcdc: panel: fix dangling sysfs connector node · e396900e
      Guido Martínez authored
      Add a drm_sysfs_connector_remove call when we destroy the panel to make
      sure the connector node in sysfs gets deleted.
      
      This is required for proper unload and re-load of this driver as a
      module. Without this, we would get a warning at re-load time like so:
      
         ------------[ cut here ]------------
         WARNING: CPU: 0 PID: 824 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x54/0x74()
         sysfs: cannot create duplicate filename '/class/drm/card0-LVDS-1'
         Modules linked in: [...]
         CPU: 0 PID: 824 Comm: modprobe Not tainted 3.15.0-rc4-00027-g6484f96-dirty #81
         [<c0013bb8>] (unwind_backtrace) from [<c0011824>] (show_stack+0x10/0x14)
         [<c0011824>] (show_stack) from [<c0034e8c>] (warn_slowpath_common+0x68/0x88)
         [<c0034e8c>] (warn_slowpath_common) from [<c0034edc>] (warn_slowpath_fmt+0x30/0x40)
         [<c0034edc>] (warn_slowpath_fmt) from [<c01243f4>] (sysfs_warn_dup+0x54/0x74)
         [<c01243f4>] (sysfs_warn_dup) from [<c0124708>] (sysfs_do_create_link_sd.isra.2+0xb0/0xb8)
         [<c0124708>] (sysfs_do_create_link_sd.isra.2) from [<c02ae37c>] (device_add+0x338/0x520)
         [<c02ae37c>] (device_add) from [<c02ae6e8>] (device_create_groups_vargs+0xa0/0xc4)
         [<c02ae6e8>] (device_create_groups_vargs) from [<c02ae758>] (device_create+0x24/0x2c)
         [<c02ae758>] (device_create) from [<c029b4ec>] (drm_sysfs_connector_add+0x64/0x204)
         [<c029b4ec>] (drm_sysfs_connector_add) from [<bf0b1fec>] (panel_modeset_init+0xb8/0x134 [tilcdc])
         [<bf0b1fec>] (panel_modeset_init [tilcdc]) from [<bf0b2bf0>] (tilcdc_load+0x214/0x4c0 [tilcdc])
         [<bf0b2bf0>] (tilcdc_load [tilcdc]) from [<c029955c>] (drm_dev_register+0xa4/0x104)
            [ .. snip .. ]
         ---[ end trace b2d09cd9578b0497 ]---
         [drm:drm_sysfs_connector_add] *ERROR* failed to register connector device: -17
      Signed-off-by: default avatarGuido Martínez <guido@vanguardiasur.com.ar>
      Tested-by: default avatarDarren Etheridge <detheridge@ti.com>
      Cc: <stable@vger.kernel.org> #v3.9+
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e396900e
    • Fabien DESSENNE's avatar
      drm/crtc-helper: use drm_framebuffer flags · d980b183
      Fabien DESSENNE authored
      The "flags" parameter of the DRM_IOCTL_MODE_ADDFB2 ioctl must be
      propagated and used by the driver.
      The only possible value of flags is DRM_MODE_FB_INTERLACED.
      Signed-off-by: default avatarFabien Dessenne <fabien.dessenne@st.com>
      Reviewed-by: default avatarBenjamin GAIGNARD <benjamin.gaignard@st.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      d980b183
    • Christian König's avatar
      drm/ttm: fix handling of TTM_PL_FLAG_TOPDOWN v2 · e3f20279
      Christian König authored
      bo->mem.placement is not initialized when ttm_bo_man_get_node is called,
      so the flag had no effect at all.
      
      v2: change nouveau and vmwgfx as well
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e3f20279
    • Alex Williamson's avatar
      vgaarb: We can own non-decoded resources · 4e4e7dc5
      Alex Williamson authored
      The VGA arbiter does not allow devices to "own" resources that it
      doesn't "decode".  However, it does allow devices to "lock" resources
      that it doesn't decode.  This gets us into trouble because locking
      the resource goes through the same bridge routing updates regardless
      of whether we decode the resource.  This means that when a non-decoded
      resource is released, the bridge is left with VGA routing enabled and
      locking a different device won't clear it.
      
      This happens in the following scenario:
      
      VGA device 01:00.0 (VGA1) is owned by the radeon driver, which
      registers a set_vga_decode function which releases legacy VGA decodes.
      
      VGA device 02:00.0 (VGA2) is any VGA device.
      
      VGA1 user locks VGA resources triggering first_use callback of
      set_vga_decoded, clearing "decode" and "owns" of legacy resources
      on VGA1.
      
      VGA1 user unlocks VGA resources.
      
      VGA2 user locks VGA resources, which skips VGA1 as conflicting as it
      does not "own" legacy resources, although VGA routing is still enabled
      for the VGA1 bridge.  VGA routing is enabled on VGA2 bridge.
      
      VGA2 may or may not receive VGA transactions depending on the bus
      priority of VGA1 vs VGA2 bridge.
      
      To resolve this, we need to allow devices to "own" resources that they
      do not "decode".  This way we can track bus ownership of VGA.  When a
      device decodes VGA, it only means that we must update the command bits
      in cases where the conflicting device is on the same bus.
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      4e4e7dc5
    • Dave Airlie's avatar
      Merge branch 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux into drm-next · f71c5d9d
      Dave Airlie authored
      * 'drm-next' of git://people.freedesktop.org/~dvdhrm/linux:
        drm/omap: remove null test before kfree
        drm/bochs: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN
        drm/ttm: recognize ARM arch in ioprot handler
        drm: enable render-nodes by default
        drm/ttm: remove declaration of ttm_tt_cache_flush
        drm/gem: remove misleading gfp parameter to get_pages()
        drm/omap: use __GFP_DMA32 for shmem-backed gem
        drm/i915: use shmem helpers if possible
      
      Conflicts:
      	drivers/gpu/drm/drm_stub.c
      f71c5d9d
    • Dave Airlie's avatar
      Merge tag 'topic/core-stuff-2014-06-30' of git://anongit.freedesktop.org/drm-intel into drm-next · afa95e74
      Dave Airlie authored
      misc core patches picked up by Daniel and Jani.
      
      * tag 'topic/core-stuff-2014-06-30' of git://anongit.freedesktop.org/drm-intel:
        drm/fb-helper: Remove unnecessary list empty check in drm_fb_helper_debug_enter()
        drm/fb-helper: Redundant info->fix.type_aux setting in drm_fb_helper_fill_fix()
        drm/debugfs: add an "edid_override" file per connector
        drm/debugfs: add a "force" file per connector
        drm: add register and unregister functions for connectors
        drm: fix uninitialized acquire_ctx fields (v2)
        drm: Driver-specific ioctls range from 0x40 to 0x9f
        drm: Don't export internal module variables
      afa95e74
    • Dave Airlie's avatar
      Merge tag 'vmwgfx-next-2014-07-04' of git://people.freedesktop.org/~thomash/linux into drm-next · 4b7ba869
      Dave Airlie authored
      Pull request of 2014-07-04
      
      * tag 'vmwgfx-next-2014-07-04' of git://people.freedesktop.org/~thomash/linux:
        drm/vmwgfx: Fix compat shader namespace
      4b7ba869
  2. 07 Jul, 2014 7 commits
  3. 06 Jul, 2014 4 commits
    • Linus Torvalds's avatar
      Linux 3.16-rc4 · cd3de83f
      Linus Torvalds authored
      cd3de83f
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux · 100193f5
      Linus Torvalds authored
      Pull devicetree bugfix from Grant Likely:
       "Important bug fix for parsing 64-bit addresses on 32-bit platforms.
        Without this patch the kernel will try to use memory ranges that
        cannot be reached"
      
      * tag 'dt-for-linus' of git://git.secretlab.ca/git/linux:
        of: Check for phys_addr_t overflows in early_init_dt_add_memory_arch
      100193f5
    • Linus Torvalds's avatar
      Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8addf0c7
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
        The fixes are mostly correct value initialisations, avoiding NULL
        derefs and some uninitialised pointer avoidance.
      
        All the patches have been incubated in -next for a few days.  The
        final patch (use the scsi data buffer length to extract transfer size)
        has been rebased to add a cc to stable, but only the commit message
        has changed"
      
      * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        [SCSI] use the scsi data buffer length to extract transfer size
        virtio-scsi: fix various bad behavior on aborted requests
        virtio-scsi: avoid cancelling uninitialized work items
        ibmvscsi: Add memory barriers for send / receive
        ibmvscsi: Abort init sequence during error recovery
        qla2xxx: Fix sparse warning in qla_target.c.
        bnx2fc: Improve stats update mechanism
        bnx2fc: do not scan uninitialized lists in case of error.
        fc: ensure scan_work isn't active when freeing fc_rport
        pm8001: Fix potential null pointer dereference and memory leak.
        MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
        be2iscsi: remove potential junk pointer free
        be2iscsi: add an missing goto in error path
        scsi_error: set DID_TIME_OUT correctly
        scsi_error: fix invalid setting of host byte
      8addf0c7
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 110e4308
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "i915, tda998x and vmwgfx fixes,
      
        The main one is i915 fix for missing VGA connectors, along with some
        fixes for the tda998x from Russell fixing some modesetting problems.
      
        (still on holidays, but got a spare moment to find these)"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/vmwgfx: Fix incorrect write to read-only register v2:
        drm/i915: Drop early VLV WA to fix Voltage not getting dropped to Vmin
        drm/i915: only apply crt_present check on VLV
        drm/i915: Wait for vblank after enabling the primary plane on BDW
        drm/i2c: tda998x: add some basic mode validation
        drm/i2c: tda998x: faster polling for edid
        drm/i2c: tda998x: move drm_i2c_encoder_destroy call
      110e4308
  4. 05 Jul, 2014 12 commits
  5. 04 Jul, 2014 4 commits
    • Linus Torvalds's avatar
      Merge tag 'md/3.16-fixes' of git://neil.brown.name/md · 77c4cf17
      Linus Torvalds authored
      Pull md bugfixes from Neil Brown:
       "Two minor bugfixes for md in 3.16"
      
      * tag 'md/3.16-fixes' of git://neil.brown.name/md:
        md: flush writes before starting a recovery.
        md: make sure GET_ARRAY_INFO ioctl reports correct "clean" status
      77c4cf17
    • Linus Torvalds's avatar
      Merge tag 'sound-3.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 88b5a850
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "This contains a few fixes for HD-audio: yet another Dell headset pin
        quirk, a fixup for Thinkpad T540P, and an improved fix for
        Haswell/Broadwell HDMI clock setup"
      
      * tag 'sound-3.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - restore BCLK M/N value as per CDCLK for HSW/BDW display HDA controller
        drm/i915: provide interface for audio driver to query cdclk
        ALSA: hda - Add a fixup for Thinkpad T540p
        ALSA: hda - Add another headset pin quirk for some Dell machines
      88b5a850
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · b82207b8
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "We've queued up a few fixes in my for-linus branch"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix crash when starting transaction
        Btrfs: fix btrfs_print_leaf for skinny metadata
        Btrfs: fix race of using total_bytes_pinned
        btrfs: use E2BIG instead of EIO if compression does not help
        btrfs: remove stale comment from btrfs_flush_all_pending_stuffs
        Btrfs: fix use-after-free when cloning a trailing file hole
        btrfs: fix null pointer dereference in btrfs_show_devname when name is null
        btrfs: fix null pointer dereference in clone_fs_devices when name is null
        btrfs: fix nossd and ssd_spread mount option regression
        Btrfs: fix race between balance recovery and root deletion
        Btrfs: atomically set inode->i_flags in btrfs_update_iflags
        btrfs: only unlock block in verify_parent_transid if we locked it
        Btrfs: assert send doesn't attempt to start transactions
        btrfs compression: reuse recently used workspace
        Btrfs: fix crash when mounting raid5 btrfs with missing disks
        btrfs: create sprout should rename fsid on the sysfs as well
        btrfs: dev replace should replace the sysfs entry
        btrfs: dev add should add its sysfs entry
        btrfs: dev delete should remove sysfs entry
        btrfs: rename add_device_membership to btrfs_kobj_add_device
      b82207b8
    • Marc Zyngier's avatar
      arm64: fix el2_setup check of CurrentEL · 974c8e45
      Marc Zyngier authored
      The CurrentEL system register reports the Current Exception Level
      of the CPU. It doesn't say anything about the stack handling, and
      yet we compare it to PSR_MODE_EL2t and PSR_MODE_EL2h.
      
      It works by chance because PSR_MODE_EL2t happens to match the right
      bits, but that's otherwise a very bad idea. Just check for the EL
      value instead.
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      [catalin.marinas@arm.com: fixed arch/arm64/kernel/efi-entry.S]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      974c8e45