1. 18 7月, 2014 1 次提交
  2. 17 7月, 2014 1 次提交
  3. 05 7月, 2014 1 次提交
  4. 11 3月, 2014 1 次提交
  5. 06 3月, 2014 3 次提交
  6. 28 1月, 2014 1 次提交
  7. 07 1月, 2014 1 次提交
  8. 11 12月, 2013 1 次提交
  9. 24 8月, 2013 1 次提交
    • R
      [media] v4l2-dev: Fix race condition on __video_register_device · 1056e438
      Ricardo Ribalda 提交于
      When 2 devices are registered at the same time, in Part 2 both will get
      the same minor number, making Part6 crash, because it cannot create a
      create a device with a duplicated minor:
      [    7.157648] ------------[ cut here ]------------
      [    7.157666] WARNING: at fs/sysfs/dir.c:530 sysfs_add_one+0xbd/0xe0()
      [    7.157669] sysfs: cannot create duplicate filename '/dev/char/81:1'
      [    7.157672] Modules linked in: qtec_xform(+) qt5023_video(+) videobuf2_vmalloc videobuf2_dma_sg videobuf2_memops videobuf2_core gpio_xilinx(+) qtec_white qtec_cmosis(+) qtec_pcie qt5023
      [    7.157694] CPU: 0 PID: 120 Comm: systemd-udevd Not tainted 3.10.0-qtec-standard #8
      [    7.157698] Hardware name: QTechnology QT5022/QT5022, BIOS PM_2.1.0.309 X64 05/23/2013
      [    7.157702]  0000000000000009 ffff8801788358e8 ffffffff8176c487 ffff880178835928
      [    7.157707]  ffffffff8106f6f0 ffff880175759770 00000000ffffffef ffff880175759930
      [    7.157712]  ffff8801788359e8 ffff880178bff000 ffff880175759930 ffff880178835988
      [    7.157718] Call Trace:
      [    7.157728]  [<ffffffff8176c487>] dump_stack+0x19/0x1b
      [    7.157735]  [<ffffffff8106f6f0>] warn_slowpath_common+0x70/0xa0
      [    7.157740]  [<ffffffff8106f7d6>] warn_slowpath_fmt+0x46/0x50
      [    7.157746]  [<ffffffff81324b35>] ? strlcat+0x65/0x90
      [    7.157750]  [<ffffffff811d516d>] sysfs_add_one+0xbd/0xe0
      [    7.157755]  [<ffffffff811d5c6b>] sysfs_do_create_link_sd+0xdb/0x200
      [    7.157760]  [<ffffffff811d5db1>] sysfs_create_link+0x21/0x40
      [    7.157765]  [<ffffffff813e277b>] device_add+0x21b/0x6d0
      [    7.157772]  [<ffffffff813f2985>] ? pm_runtime_init+0xe5/0xf0
      [    7.157776]  [<ffffffff813e2c4e>] device_register+0x1e/0x30
      [    7.157782]  [<ffffffff8153e8c3>] __video_register_device+0x313/0x610
      [    7.157791]  [<ffffffffa00957c5>] qtec_xform_probe+0x465/0x7a4 [qtec_xform]
      [    7.157797]  [<ffffffff813e7b13>] platform_drv_probe+0x43/0x80
      [    7.157802]  [<ffffffff813e531a>] ? driver_sysfs_add+0x7a/0xb0
      [    7.157807]  [<ffffffff813e584b>] driver_probe_device+0x8b/0x3a0
      [    7.157812]  [<ffffffff813e5c0b>] __driver_attach+0xab/0xb0
      [    7.157816]  [<ffffffff813e5b60>] ? driver_probe_device+0x3a0/0x3a0
      [    7.157820]  [<ffffffff813e37fd>] bus_for_each_dev+0x5d/0xa0
      [    7.157825]  [<ffffffff813e529e>] driver_attach+0x1e/0x20
      [    7.157829]  [<ffffffff813e4d3e>] bus_add_driver+0x10e/0x280
      [    7.157833]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157837]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157842]  [<ffffffff813e6317>] driver_register+0x77/0x170
      [    7.157848]  [<ffffffff81151bcc>] ? __vunmap+0x9c/0x110
      [    7.157852]  [<ffffffffa0099000>] ? 0xffffffffa0098fff
      [    7.157857]  [<ffffffff813e7236>] platform_driver_register+0x46/0x50
      [    7.157863]  [<ffffffffa0099010>] qtec_xform_plat_driver_init+0x10/0x12 [qtec_xform]
      [    7.157869]  [<ffffffff810002ea>] do_one_initcall+0xea/0x1a0
      [    7.157875]  [<ffffffff810cf1f1>] load_module+0x1a91/0x2630
      [    7.157880]  [<ffffffff8133bee0>] ? ddebug_proc_show+0xe0/0xe0
      [    7.157887]  [<ffffffff817760f2>] ? page_fault+0x22/0x30
      [    7.157892]  [<ffffffff810cfe7a>] SyS_init_module+0xea/0x140
      [    7.157898]  [<ffffffff8177e5b9>] tracesys+0xd0/0xd5
      [    7.157902] ---[ end trace 660cc3a65a4bf01b ]---
      [    7.157939] __video_register_device: device_register failed
      Signed-off-by: NRicardo Ribalda Delgado <ricardo.ribalda@gmail.com>
      Acked-by: NSakari Ailus <sakari.ailus@iki.fi>
      Acked-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      1056e438
  10. 20 8月, 2013 1 次提交
  11. 21 6月, 2013 2 次提交
  12. 17 6月, 2013 1 次提交
    • H
      [media] v4l2: remove deprecated current_norm support completely · ca371575
      Hans Verkuil 提交于
      The use of current_norm to keep track of the current standard has been
      deprecated for quite some time. Now that all drivers that were using it
      have been converted to use g_std we can drop it from the core.
      It was a bad idea to introduce this at the time: since it is a per-device
      node field it didn't work for drivers that create multiple nodes, all sharing
      the same tuner (e.g. video and vbi nodes, or a raw video node and a compressed
      video node). In addition it was very surprising behavior that g_std was
      implemented in the core. Often drivers implemented both g_std and current_norm,
      because they didn't understand how it should be used.
      Since the benefits were very limited (if they were there at all), it is better
      to just drop it and require that drivers just implement g_std.
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ca371575
  13. 15 4月, 2013 2 次提交
  14. 25 3月, 2013 2 次提交
  15. 23 2月, 2013 1 次提交
  16. 06 2月, 2013 1 次提交
  17. 26 11月, 2012 1 次提交
  18. 27 9月, 2012 2 次提交
  19. 26 9月, 2012 2 次提交
  20. 14 8月, 2012 1 次提交
  21. 10 8月, 2012 1 次提交
  22. 31 7月, 2012 4 次提交
  23. 19 7月, 2012 1 次提交
  24. 07 7月, 2012 3 次提交
  25. 12 6月, 2012 2 次提交
  26. 15 5月, 2012 1 次提交
  27. 14 5月, 2012 1 次提交
    • H
      [media] v4l2-dev: add flag to have the core lock all file operations · 5126f259
      Hans Verkuil 提交于
      This used to be the default if the lock pointer was set, but now that lock is by
      default only used for ioctl serialization. Those drivers that already used
      core locking have this flag set explicitly, except for some drivers where
      it was obvious that there was no need to serialize any file operations other
      than ioctl.
      
      The drivers that didn't need this flag were:
      
      drivers/media/radio/dsbr100.c
      drivers/media/radio/radio-isa.c
      drivers/media/radio/radio-keene.c
      drivers/media/radio/radio-miropcm20.c
      drivers/media/radio/radio-mr800.c
      drivers/media/radio/radio-tea5764.c
      drivers/media/radio/radio-timb.c
      drivers/media/video/vivi.c
      sound/i2c/other/tea575x-tuner.c
      
      The other drivers that use core locking and where it was not immediately
      obvious that this flag wasn't needed were changed so that the flag is set
      together with a comment that that driver needs work to avoid having to
      set that flag. This will often involve taking the core lock in the fops
      themselves.
      
      Eventually this flag should go and it should not be used in new drivers.
      
      There are a few reasons why we want to avoid core locking of non-ioctl
      fops: in the case of mmap this can lead to a deadlock in rare situations
      since when mmap is called the mmap_sem is held and it is possible for
      other parts of the code to take that lock as well (copy_from_user()/copy_to_user()
      perform a down_read(&mm->mmap_sem) when a page fault occurs).
      
      It is very unlikely that that happens since the core lock serializes all
      fops, but the kernel warns about it if lock validation is turned on.
      
      For poll it is also undesirable to take the core lock as that can introduce
      increased latency. The same is true for read/write.
      
      While it was possible to make flags or something to turn on/off taking the
      core lock for each file operation, in practice it is much simpler to just
      not take it at all except for ioctl and leave it to the driver to take the
      lock. There are only a handful fops compared to the zillion ioctls we have.
      
      I also wanted to make it obvious which drivers still take the lock for all
      fops, so that's why I chose to have drivers set it explicitly.
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Acked-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      5126f259