1. 04 10月, 2014 1 次提交
  2. 20 9月, 2014 1 次提交
  3. 14 9月, 2014 1 次提交
  4. 09 9月, 2014 3 次提交
    • M
      android: fix reference leak in sync_fence_create · 3ea411c5
      Maarten Lankhorst 提交于
      According to the documentation sync_fence_create takes ownership of the point,
      not a reference on the point.
      
      This fixes a memory leak introduced in 3.17's android fence rework.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Cc: Colin Cross <ccross@google.com>
      Cc: Dan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3ea411c5
    • R
      imx-drm: imx-ldb: fix NULL pointer in imx_ldb_unbind() · d9fdb9fb
      Russell King 提交于
      When trying to unbind imx-drm, the following oops was observed from
      the imx-ldb driver:
      
      Unable to handle kernel NULL pointer dereference at virtual address 0000001c
      pgd = de954000
      [0000001c] *pgd=2e92c831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] SMP ARM
      Modules linked in: bnep rfcomm bluetooth nfsd exportfs hid_cypress brcmfmac brcmutil snd_soc_fsl_ssi snd_soc_fsl_spdif imx_pcm_fiq imx_pcm_dma imx_ldb(C) imx_thermal imx_sdma imx2_wdt snd_soc_sgtl5000 snd_soc_imx_sgtl5000 snd_soc_imx_spdif snd_soc_imx_audmux
      CPU: 1 PID: 1228 Comm: bash Tainted: G         C    3.16.0-rc2+ #1229
      task: ea378d80 ti: de948000 task.ti: de948000
      PC is at imx_ldb_unbind+0x1c/0x58 [imx_ldb]
      LR is at component_unbind+0x38/0x70
      pc : [<bf025068>]    lr : [<c0353108>]    psr: 200f0013
      sp : de949da8  ip : de949dc0  fp : de949dbc
      r10: e9a44b0c  r9 : 00000000  r8 : de949f78
      r7 : 00000012  r6 : e9b3f400  r5 : e9b133b8  r4 : e9b13010
      r3 : 00000000  r2 : e9b3f400  r1 : ea9a0210  r0 : e9b13020
      Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c53c7d  Table: 2e95404a  DAC: 00000015
      Process bash (pid: 1228, stack limit = 0xde948240)
      Stack: (0xde949da8 to 0xde94a000)
      ...
      Backtrace:
      [<bf02504c>] (imx_ldb_unbind [imx_ldb]) from [<c0353108>] (component_unbind+0x38/0x70)
      [<c03530d0>] (component_unbind) from [<c03531d4>] (component_unbind_all+0x94/0xc8)
      [<c0353140>] (component_unbind_all) from [<c04bc224>] (imx_drm_driver_unload+0x34/0x4c)
      [<c04bc1f0>] (imx_drm_driver_unload) from [<c03394a4>] (drm_dev_unregister+0x2c/0xa0)
      [<c0339478>] (drm_dev_unregister) from [<c0339f8c>] (drm_put_dev+0x30/0x6c)
      [<c0339f5c>] (drm_put_dev) from [<c04bc1cc>] (imx_drm_unbind+0x14/0x18)
      [<c04bc1b8>] (imx_drm_unbind) from [<c03530b4>] (component_master_del+0xbc/0xd8)
      ...
      Code: e5904058 e2840010 e2845fea e59430a0 (e593301c)
      ---[ end trace 4f211c6dbbcd4963 ]---
      
      This is caused by only having one channel out of the pair configured in
      DT; the second channel remains uninitialised, but upon unbind, the
      driver attempts to clean up both, thereby dereferencing a NULL pointer.
      Avoid this by checking that the second channel is initialised.
      
      Fixes: 1b3f7675 ("imx-drm: initialise drm components directly")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d9fdb9fb
    • R
      imx-drm: ipuv3-plane: fix ipu_plane_dpms() · 3a44a205
      Russell King 提交于
      When unbinding imx-drm, the following oops was observed:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000004
      pgd = e995c000
      [00000004] *pgd=4fea5831
      Internal error: Oops: 817 [#1] SMP ARM
      Modules linked in: bnep rfcomm bluetooth nfsd exportfs hid_cypress brcmfmac brcmutil snd_soc_fsl_ssi snd_soc_fsl_spdif imx_pcm_fiq imx_pcm_dma snd_soc_sgtl5000 imx_sdma imx2_wdt imx_ldb(C) imx_thermal snd_soc_imx_sgtl5000 snd_soc_imx_spdif snd_soc_imx_audmux
      CPU: 1 PID: 779 Comm: bash Tainted: G         C    3.16.0-rc2+ #1230
      task: ea9eb180 ti: ea378000 task.ti: ea378000
      PC is at ipu_dp_put+0x10/0x18
      LR is at ipu_plane_dpms+0x60/0x8c
      pc : [<c0350d20>]    lr : [<c04bd9e8>]    psr: 200f0013
      sp : ea379d80  ip : ea379d90  fp : ea379d8c
      r10: 00100100  r9 : 00000000  r8 : 00200200
      r7 : e9ba0264  r6 : e9ba01f8  r5 : 00000000  r4 : ea34b800
      r3 : 00000000  r2 : 00000000  r1 : 0000009b  r0 : 00000000
      Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c53c7d  Table: 3995c04a  DAC: 00000015
      Process bash (pid: 779, stack limit = 0xea378240)
      Stack: (0xea379d80 to 0xea37a000)
      ...
      Backtrace:
      [<c0350d10>] (ipu_dp_put) from [<c04bd9e8>] (ipu_plane_dpms+0x60/0x8c)
      [<c04bd988>] (ipu_plane_dpms) from [<c04bda40>] (ipu_disable_plane+0x2c/0x60)
      [<c04bda14>] (ipu_disable_plane) from [<c04bda9c>] (ipu_plane_destroy+0x28/0x60)
      [<c04bda74>] (ipu_plane_destroy) from [<c033ff84>] (drm_mode_config_cleanup+0x1b8/0x250)
      [<c033fdcc>] (drm_mode_config_cleanup) from [<c04bc234>] (imx_drm_driver_unload+0x44/0x4c)
      [<c04bc1f0>] (imx_drm_driver_unload) from [<c03394a4>] (drm_dev_unregister+0x2c/0xa0)
      [<c0339478>] (drm_dev_unregister) from [<c0339f8c>] (drm_put_dev+0x30/0x6c)
      [<c0339f5c>] (drm_put_dev) from [<c04bc1cc>] (imx_drm_unbind+0x14/0x18)
      [<c04bc1b8>] (imx_drm_unbind) from [<c03530b4>] (component_master_del+0xbc/0xd8)
      ...
      Code: e1a0c00d e92dd800 e24cb004 e3a03000 (e5c03004)
      
      This is caused by a missing check in ipu_plane_dpms for a NULL pointer.
      
      Fixes: b8d181e4 ("staging: drm/imx: add drm plane support")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3a44a205
  5. 26 8月, 2014 7 次提交
  6. 17 8月, 2014 4 次提交
  7. 09 8月, 2014 1 次提交
  8. 08 8月, 2014 1 次提交
    • D
      Revert "drm: drop redundant drm_file->is_master" · 7963e9db
      Dave Airlie 提交于
      This reverts commit 48ba8137.
      
      Thanks to Chris:
      "drm_file->is_master is not synomous with having drm_file->master ==
      drm_file->minor->master. This is because drm_file->master is the same
      for all drm_files of the same generation and so when there is a master,
      every drm_file believes itself to be the master. Confusion ensues and
      things go pear shaped when one file is closed and there is no master
      anymore."
      
      Conflicts:
      	drivers/gpu/drm/drm_drv.c
      	drivers/gpu/drm/drm_stub.c
      7963e9db
  9. 07 8月, 2014 2 次提交
    • K
      list: fix order of arguments for hlist_add_after(_rcu) · 1d023284
      Ken Helias 提交于
      All other add functions for lists have the new item as first argument
      and the position where it is added as second argument.  This was changed
      for no good reason in this function and makes using it unnecessary
      confusing.
      
      The name was changed to hlist_add_behind() to cause unconverted code to
      generate a compile error instead of using the wrong parameter order.
      
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NKen Helias <kenhelias@firemail.de>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>	[intel driver bits]
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1d023284
    • W
      mm/vmalloc.c: clean up map_vm_area third argument · f6f8ed47
      WANG Chao 提交于
      Currently map_vm_area() takes (struct page *** pages) as third argument,
      and after mapping, it moves (*pages) to point to (*pages +
      nr_mappped_pages).
      
      It looks like this kind of increment is useless to its caller these
      days.  The callers don't care about the increments and actually they're
      trying to avoid this by passing another copy to map_vm_area().
      
      The caller can always guarantee all the pages can be mapped into vm_area
      as specified in first argument and the caller only cares about whether
      map_vm_area() fails or not.
      
      This patch cleans up the pointer movement in map_vm_area() and updates
      its callers accordingly.
      Signed-off-by: NWANG Chao <chaowang@redhat.com>
      Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f6f8ed47
  10. 05 8月, 2014 1 次提交
    • D
      drm: drop redundant drm_file->is_master · 48ba8137
      David Herrmann 提交于
      The drm_file->is_master field is redundant as it's equivalent to:
          drm_file->master && drm_file->master == drm_file->minor->master
      
      1) "=>"
        Whenever we set drm_file->is_master, we also set:
            drm_file->minor->master = drm_file->master;
      
        Whenever we clear drm_file->is_master, we also call:
            drm_master_put(&drm_file->minor->master);
        which implicitly clears it to NULL.
      
      2) "<="
        minor->master cannot be set if it is non-NULL. Therefore, it stays as
        is unless a file drops it.
      
        If minor->master is NULL, it is only set by places that also adjust
        drm_file->is_master.
      
      Therefore, we can safely drop is_master and replace it by an inline helper
      that matches:
          drm_file->master && drm_file->master == drm_file->minor->master
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
      48ba8137
  11. 02 8月, 2014 18 次提交