1. 30 11月, 2017 1 次提交
  2. 07 11月, 2017 2 次提交
  3. 01 11月, 2017 15 次提交
  4. 05 9月, 2017 1 次提交
    • R
      media: Revert "[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay" · 12f92866
      Rob Herring 提交于
      This reverts commit d2180e0c.
      
      The commit was flawed in that if the device_node pointers are different,
      then in fact a different device is present and the device node could be
      different in ways other than full_name.
      
      As Frank Rowand explained:
      
      "When an overlay (1) is removed, all uses and references to the nodes and
      properties in that overlay are no longer valid.  Any driver that uses any
      information from the overlay _must_ stop using any data from the overlay.
      Any driver that is bound to a new node in the overlay _must_ unbind.  Any
      driver that became bound to a pre-existing node that was modified by the
      overlay (became bound after the overlay was applied) _must_ adjust itself
      to account for any changes to that node when the overlay is removed.  One
      way to do this is to unbind when notified that the overlay is about to
      be removed, then to re-bind after the overlay is completely removed.
      
      If an overlay (2) is subsequently applied, a node with the same
      full_name as from overlay (1) may exist.  There is no guarantee
      that overlay (1) and overlay (2) are the same overlay, even if
      that node has the same full_name in both cases."
      
      Also, there's not sufficient overlay support in mainline to actually
      remove and re-apply an overlay to hit this condition as overlays can
      only be applied from in kernel APIs.
      
      Fixes: d2180e0c ("[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlay")
      
      Cc: Javier Martinez Canillas <javier@osg.samsung.com>
      Cc: Sylwester Nawrocki <s.nawrocki@samsung.com>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Acked-by: NJavi Merino <javi.merino@kernel.org>
      Signed-off-by: NSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
      12f92866
  5. 20 6月, 2017 2 次提交
  6. 06 6月, 2017 2 次提交
  7. 04 2月, 2017 1 次提交
    • T
      [media] v4l2-async: failing functions shouldn't have side effects · 47b037a0
      Tuukka Toivonen 提交于
      v4l2-async had several functions doing some operations and then
      not undoing the operations in a failure situation. For example,
      v4l2_async_test_notify() moved a subdev into notifier's done list
      even if registering the subdev (v4l2_device_register_subdev) failed.
      If the subdev was allocated and v4l2_async_register_subdev() called
      from the driver's probe() function, as usually, the probe()
      function freed the allocated subdev and returned a failure.
      Nevertheless, the subdev was still left into the notifier's done
      list, causing an access to already freed memory when the notifier
      was later unregistered.
      
      A hand-edited call trace leaving freed subdevs into the notifier:
      
      v4l2_async_register_notifier(notifier, asd)
      cameradrv_probe
       sd = devm_kzalloc()
       v4l2_async_register_subdev(sd)
        v4l2_async_test_notify(notifier, sd, asd)
         list_move(sd, &notifier->done)
         v4l2_device_register_subdev(notifier->v4l2_dev, sd)
          cameradrv_registered(sd) -> fails
      ->v4l2_async_register_subdev returns failure
      ->cameradrv_probe returns failure
      ->devres frees the allocated sd
      ->sd was freed but it still remains in the notifier's list.
      
      This patch fixes this and several other cases where a failing
      function could leave nodes into a linked list while the caller
      might free the node due to a failure.
      Signed-off-by: NTuukka Toivonen <tuukka.toivonen@intel.com>
      Acked-by: NSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@s-opensource.com>
      47b037a0
  8. 03 2月, 2017 1 次提交
  9. 31 1月, 2017 1 次提交
  10. 25 8月, 2016 1 次提交
  11. 19 2月, 2016 1 次提交
  12. 10 2月, 2016 1 次提交
  13. 16 6月, 2015 1 次提交
  14. 08 11月, 2013 1 次提交
  15. 18 8月, 2013 2 次提交
  16. 31 7月, 2013 5 次提交
  17. 29 6月, 2013 1 次提交
  18. 22 6月, 2013 1 次提交