1. 09 7月, 2016 1 次提交
  2. 18 11月, 2015 1 次提交
    • A
      [media] gspca: ov534/topro: prevent a division by 0 · dcc7fdbe
      Antonio Ospite 提交于
      v4l2-compliance sends a zeroed struct v4l2_streamparm in
      v4l2-test-formats.cpp::testParmType(), and this results in a division by
      0 in some gspca subdrivers:
      
        divide error: 0000 [#1] SMP
        Modules linked in: gspca_ov534 gspca_main ...
        CPU: 0 PID: 17201 Comm: v4l2-compliance Not tainted 4.3.0-rc2-ao2 #1
        Hardware name: System manufacturer System Product Name/M2N-E SLI, BIOS
          ASUS M2N-E SLI ACPI BIOS Revision 1301 09/16/2010
        task: ffff8800818306c0 ti: ffff880095c4c000 task.ti: ffff880095c4c000
        RIP: 0010:[<ffffffffa079bd62>]  [<ffffffffa079bd62>] sd_set_streamparm+0x12/0x60 [gspca_ov534]
        RSP: 0018:ffff880095c4fce8  EFLAGS: 00010296
        RAX: 0000000000000000 RBX: ffff8800c9522000 RCX: ffffffffa077a140
        RDX: 0000000000000000 RSI: ffff880095e0c100 RDI: ffff8800c9522000
        RBP: ffff880095e0c100 R08: ffffffffa077a100 R09: 00000000000000cc
        R10: ffff880067ec7740 R11: 0000000000000016 R12: ffffffffa07bb400
        R13: 0000000000000000 R14: ffff880081b6a800 R15: 0000000000000000
        FS:  00007fda0de78740(0000) GS:ffff88012fc00000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 00000000014630f8 CR3: 00000000cf349000 CR4: 00000000000006f0
        Stack:
         ffffffffa07a6431 ffff8800c9522000 ffffffffa077656e 00000000c0cc5616
         ffff8800c9522000 ffffffffa07a5e20 ffff880095e0c100 0000000000000000
         ffff880067ec7740 ffffffffa077a140 ffff880067ec7740 0000000000000016
        Call Trace:
         [<ffffffffa07a6431>] ? v4l_s_parm+0x21/0x50 [videodev]
         [<ffffffffa077656e>] ? vidioc_s_parm+0x4e/0x60 [gspca_main]
         [<ffffffffa07a5e20>] ? __video_do_ioctl+0x280/0x2f0 [videodev]
         [<ffffffffa07a5ba0>] ? video_ioctl2+0x20/0x20 [videodev]
         [<ffffffffa07a59b9>] ? video_usercopy+0x319/0x4e0 [videodev]
         [<ffffffff81182dc1>] ? page_add_new_anon_rmap+0x71/0xa0
         [<ffffffff811afb92>] ? mem_cgroup_commit_charge+0x52/0x90
         [<ffffffff81179b18>] ? handle_mm_fault+0xc18/0x1680
         [<ffffffffa07a15cc>] ? v4l2_ioctl+0xac/0xd0 [videodev]
         [<ffffffff811c846f>] ? do_vfs_ioctl+0x28f/0x480
         [<ffffffff811c86d4>] ? SyS_ioctl+0x74/0x80
         [<ffffffff8154a8b6>] ? entry_SYSCALL_64_fastpath+0x16/0x75
        Code: c7 93 d9 79 a0 5b 5d e9 f1 f3 9a e0 0f 1f 00 66 2e 0f 1f 84 00
          00 00 00 00 66 66 66 66 90 53 31 d2 48 89 fb 48 83 ec 08 8b 46 10 <f7>
          76 0c 80 bf ac 0c 00 00 00 88 87 4e 0e 00 00 74 09 80 bf 4f
        RIP  [<ffffffffa079bd62>] sd_set_streamparm+0x12/0x60 [gspca_ov534]
         RSP <ffff880095c4fce8>
        ---[ end trace 279710c2c6c72080 ]---
      
      Following what the doc says about a zeroed timeperframe (see
      http://www.linuxtv.org/downloads/v4l-dvb-apis/vidioc-g-parm.html):
      
        ...
        To reset manually applications can just set this field to zero.
      
      fix the issue by resetting the frame rate to a default value in case of
      an unusable timeperframe.
      
      The fix is done in the subdrivers instead of gspca.c because only the
      subdrivers have notion of a default frame rate to reset the camera to.
      Signed-off-by: NAntonio Ospite <ao2@ao2.it>
      Cc: stable@vger.kernel.org
      Reviewed-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@osg.samsung.com>
      dcc7fdbe
  3. 03 3月, 2015 1 次提交
  4. 30 1月, 2015 1 次提交
  5. 26 9月, 2013 1 次提交
  6. 21 8月, 2013 1 次提交
    • A
      [media] gspca-ov534: don't call sd_start() from sd_init() · d48de1c7
      Antonio Ospite 提交于
      sd_start() operates on device controls but after the conversion to the
      v4l2 control framework in commits 62bba5dd and 1bd7d6ad controls are
      initialized in sd_init_controls() which is called _after_ sd_init():
      The change fixes a NULL pointer dereference for Hercules Blog Webcam;
      the problem is observable since 3.6:
        gspca_main: v2.14.0 registered
        gspca_main: ov534-2.14.0 probing 06f8:3002
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
        IP: [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
        PGD 0
        Oops: 0000 [#1] SMP
        Modules linked in: gspca_ov534(+) gspca_main videodev rfcomm bnep ppdev bluetooth binfmt_misc snd_hda_codec_hdmi snd_hda_codec_realtek stir4200 irda crc_ccitt usblp snd_hda_intel snd_hda_codec snd_hwdep snd_pcm hid_generic snd_page_alloc snd_seq_midi snd_seq_midi_event usbhid snd_rawmidi snd_seq snd_seq_device snd_timer hid i915 snd psmouse drm_kms_helper serio_raw mei_me drm mei soundcore video i2c_algo_bit lpc_ich mac_hid coretemp lp parport firewire_ohci firewire_core crc_itu_t ahci libahci alx mdio r8169 mii [last unloaded: parport_pc]
        CPU: 3 PID: 4352 Comm: modprobe Not tainted 3.11.0-031100rc2-generic #201307211535
        Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./Z77-DS3H, BIOS F9 09/19/2012
        task: ffff8801c20f9770 ti: ffff8801ceaa0000 task.ti: ffff8801ceaa0000
        RIP: 0010:[<ffffffffa03c1b01>]  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
        RSP: 0018:ffff8801ceaa1af8  EFLAGS: 00010292
        RAX: 0000000000000001 RBX: 0000000000000000 RCX: 000000000001988b
        RDX: 000000000001988a RSI: ffffffffa032745a RDI: 0000000000000000
        RBP: ffff8801ceaa1b28 R08: 0000000000017380 R09: ffffea0008419d80
        R10: ffffffff81538f5a R11: 0000000000000002 R12: ffffffffa03273dc
        R13: ffffffffa03273dc R14: 0000000000000000 R15: ffffffffa03270a0
        FS:  00007f72d564a740(0000) GS:ffff88021f380000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000000050 CR3: 00000001bd1f0000 CR4: 00000000001407e0
        Stack:
         ffff8801ceaa1b28 ffffffffa0325cff ffff8801000001f4 ffff8801ceb44000
         ffffffffa03273dc ffff8801ceb44000 ffff8801ceaa1b58 ffffffffa032688e
         ffff8801ceb44000 ffffffffa03274f0 ffffffffa03274f0 ffff8801ceb44380
        Call Trace:
         [<ffffffffa0325cff>] ? sccb_w_array+0x3f/0x80 [gspca_ov534]
         [<ffffffffa032688e>] sd_start+0xce/0x2b0 [gspca_ov534]
         [<ffffffffa0326bf9>] sd_init+0x189/0x1e8 [gspca_ov534]
         [<ffffffffa02a0c95>] gspca_dev_probe2+0x285/0x410 [gspca_main]
         [<ffffffffa02a0e58>] gspca_dev_probe+0x38/0x60 [gspca_main]
         [<ffffffffa0325081>] sd_probe+0x21/0x30 [gspca_ov534]
         [<ffffffff8153c960>] usb_probe_interface+0x1c0/0x2f0
         [<ffffffff8148758c>] really_probe+0x6c/0x330
         [<ffffffff814879d7>] driver_probe_device+0x47/0xa0
         [<ffffffff81487adb>] __driver_attach+0xab/0xb0
         [<ffffffff81487a30>] ? driver_probe_device+0xa0/0xa0
         [<ffffffff814857be>] bus_for_each_dev+0x5e/0x90
         [<ffffffff8148714e>] driver_attach+0x1e/0x20
         [<ffffffff81486bdc>] bus_add_driver+0x10c/0x290
         [<ffffffff8148805d>] driver_register+0x7d/0x160
         [<ffffffff8153b590>] usb_register_driver+0xa0/0x160
         [<ffffffffa0067000>] ? 0xffffffffa0066fff
         [<ffffffffa006701e>] sd_driver_init+0x1e/0x1000 [gspca_ov534]
         [<ffffffff8100212a>] do_one_initcall+0xfa/0x1b0
         [<ffffffff810578c3>] ? set_memory_nx+0x43/0x50
         [<ffffffff81712e8d>] do_init_module+0x80/0x1d1
         [<ffffffff810d2079>] load_module+0x4c9/0x5f0
         [<ffffffff810cf7b0>] ? add_kallsyms+0x210/0x210
         [<ffffffff810d2254>] SyS_init_module+0xb4/0x100
         [<ffffffff817333ef>] tracesys+0xe1/0xe6
        Code: a0 09 00 00 48 c7 c7 30 c3 3c a0 e8 7a 38 ca e0 eb cf 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb 48 83 ec 28 <8b> 47 50 83 e8 05 83 f8 02 77 09 80 b8 20 8c 3c a0 00 74 1d 48
        RIP  [<ffffffffa03c1b01>] v4l2_ctrl_g_ctrl+0x11/0x60 [videodev]
         RSP <ffff8801ceaa1af8>
        CR2: 0000000000000050
        ---[ end trace 6786f15abfd2ac90 ]---
      Original bug report from:
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1173723/Signed-off-by: NAntonio Ospite <ospite@studenti.unina.it>
      Tested-by: NYaroslav Zakharuk <slavikz@gmail.com>
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      d48de1c7
  7. 06 3月, 2013 1 次提交
  8. 16 8月, 2012 1 次提交
  9. 31 7月, 2012 2 次提交
  10. 12 6月, 2012 2 次提交
  11. 14 5月, 2012 2 次提交
  12. 19 11月, 2011 1 次提交
    • G
      USB: convert drivers/media/* to use module_usb_driver() · ecb3b2b3
      Greg Kroah-Hartman 提交于
      This converts the drivers in drivers/media/* to use the
      module_usb_driver() macro which makes the code smaller and a bit
      simpler.
      
      Added bonus is that it removes some unneeded kernel log messages about
      drivers loading and/or unloading.
      
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Luca Risolia <luca.risolia@studio.unibo.it>
      Cc: Jean-Francois Moine <moinejf@free.fr>
      Cc: Frank Zago <frank@zago.net>
      Cc: Olivier Lorin <o.lorin@laposte.net>
      Cc: Erik Andren <erik.andren@gmail.com>
      Cc: Hans de Goede <hdegoede@redhat.com>
      Cc: Brian Johnson <brijohn@gmail.com>
      Cc: Leandro Costantino <lcostantino@gmail.com>
      Cc: Antoine Jacquet <royale@zerezo.com>
      Cc: Jarod Wilson <jarod@redhat.com>
      Cc: Florian Mickler <florian@mickler.org>
      Cc: Antti Palosaari <crope@iki.fi>
      Cc: Michael Krufky <mkrufky@kernellabs.com>
      Cc: "David Härdeman" <david@hardeman.nu>
      Cc: Florent Audebert <florent.audebert@anevia.com>
      Cc: Sam Doshi <sam@metal-fish.co.uk>
      Cc: Manu Abraham <manu@linuxtv.org>
      Cc: Olivier Grenie <olivier.grenie@dibcom.fr>
      Cc: Patrick Boettcher <patrick.boettcher@dibcom.fr>
      Cc: "Igor M. Liplianin" <liplianin@me.by>
      Cc: Derek Kelly <user.vdr@gmail.com>
      Cc: Malcolm Priestley <tvboxspy@gmail.com>
      Cc: Steven Toth <stoth@kernellabs.com>
      Cc: "André Weidemann" <Andre.Weidemann@web.de>
      Cc: Martin Wilks <m.wilks@technisat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Jose Alberto Reguero <jareguero@telefonica.net>
      Cc: David Henningsson <david.henningsson@canonical.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Cc: Joe Perches <joe@perches.com>
      Cc: Jesper Juhl <jj@chaosbits.net>
      Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: Hans Verkuil <hans.verkuil@cisco.com>
      Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>
      Cc: Anssi Hannula <anssi.hannula@iki.fi>
      Cc: Rafi Rubin <rafi@seas.upenn.edu>
      Cc: Dan Carpenter <error27@gmail.com>
      Cc: Paul Bender <pebender@gmail.com>
      Cc: Devin Heitmueller <dheitmueller@kernellabs.com>
      Cc: "Márcio A Alves" <froooozen@gmail.com>
      Cc: Julia Lawall <julia@diku.dk>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Chris Rankin <rankincj@yahoo.com>
      Cc: Lee Jones <lee.jones@canonical.com>
      Cc: Andy Walls <awalls@md.metrocast.net>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Dean Anderson <linux-dev@sensoray.com>
      Cc: Pete Eberlein <pete@sensoray.com>
      Cc: Arvydas Sidorenko <asido4@gmail.com>
      Cc: Andrea Anacleto <andreaanacleto@libero.it>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ecb3b2b3
  13. 04 9月, 2011 1 次提交
  14. 22 3月, 2011 3 次提交
  15. 19 1月, 2011 3 次提交
  16. 29 12月, 2010 1 次提交
  17. 21 10月, 2010 2 次提交
  18. 03 8月, 2010 2 次提交
  19. 18 5月, 2010 12 次提交
  20. 27 2月, 2010 1 次提交