1. 01 Feb, 2016 29 commits
    • Markus Elfring's avatar
      [media] bttv: Returning only value constants in two functions · 490ba9c2
      Markus Elfring authored
      Return constant integer values without storing them in the local
      variable "err" or "rc".
      Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      490ba9c2
    • Niklas Söderlund's avatar
    • Ezequiel Garcia's avatar
      [media] stk1160: Remove redundant vb2_buf payload set · faccb05c
      Ezequiel Garcia authored
      Calling vb2_set_plane_payload is enough, there's no need to
      set the planes[] bytesused field. Remove it.
      Signed-off-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      faccb05c
    • Geliang Tang's avatar
      [media] bttv-driver, usbvision-video: use to_video_device() · 03c6bdfc
      Geliang Tang authored
      Use to_video_device() instead of open-coding it.
      Signed-off-by: default avatarGeliang Tang <geliangtang@163.com>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      03c6bdfc
    • Nikola Forró's avatar
      [media] usbtv: discard redundant video fields · 80fa4f07
      Nikola Forró authored
      There are many dropped fields with some sources, leading to many
      redundant fields without counterparts. When this redundant field
      is odd, a new frame is pushed containing this odd field interleaved
      with whatever was left in the buffer, causing video artifacts.
      
      Do not push a new frame after processing every odd field, but do it
      only after those which come after an even field.
      Signed-off-by: default avatarNikola Forró <nikola.forro@gmail.com>
      Acked-by: default avatarLubomir Rintel <lkundrak@v3.sk>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      80fa4f07
    • Hans Verkuil's avatar
      [media] saa7134: add DMABUF support · 9f183020
      Hans Verkuil authored
      Since saa7134 is now using vb2, there is no reason why we can't support
      dmabuf for this driver.
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      9f183020
    • Julia Lawall's avatar
      [media] go7007: constify go7007_hpi_ops structures · ff880348
      Julia Lawall authored
      The go7007_hpi_ops structures are never modified, so declare them as const.
      
      Done with the help of Coccinelle.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      ff880348
    • Mats Randgaard's avatar
      [media] tc358743: Print timings only when debug level is set · 2874bf3e
      Mats Randgaard authored
      Prevent unnecessary kernel log spamming.
      Signed-off-by: default avatarMats Randgaard <matrandg@cisco.com>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      2874bf3e
    • Wu, Xia's avatar
      [media] media: videobuf2-core: Fix one __qbuf_dmabuf() error path · 9637b032
      Wu, Xia authored
      Add dma_buf_put() to decrease refcount of the dmabuf in error path if DMABUF size is smaller than the requirement.
      Signed-off-by: default avatarwu xia <xia.wu@intel.com>
      Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      9637b032
    • Julia Lawall's avatar
      [media] drivers/media/usb/as102: constify as102_priv_ops_t structure · f691ba98
      Julia Lawall authored
      The as102_priv_ops_t structure is never modified, so declare it as
      const.
      
      Done with the help of Coccinelle.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      f691ba98
    • Julia Lawall's avatar
      [media] constify stv6110x_devctl structure · 242c5033
      Julia Lawall authored
      The stv6110x_devctl structure is never modified, so declare it as
      const.
      
      Done with the help of Coccinelle.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      242c5033
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: add media controller support · 37ecc7b1
      Mauro Carvalho Chehab authored
      Add the needed bits to make em28xx to create a media
      controller graph.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      37ecc7b1
    • Mauro Carvalho Chehab's avatar
      [media] mt9v011: add media controller support · ac88fce9
      Mauro Carvalho Chehab authored
      Create a source pad and set the media controller type to the sensor.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      ac88fce9
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: avoid divide by zero error · 0962a763
      Mauro Carvalho Chehab authored
      [ 1841.243670] divide error: 0000 [#1] SMP KASAN
      [ 1841.243994] Modules linked in: em28xx_rc rc_core tda18271 drxk em28xx_dvb dvb_core em28xx_alsa mt9v011 em28xx_v4l videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core em28xx tveeprom v4l2_common videodev media cpufreq_powersave cpufreq_conservative cpufreq_userspace cpufreq_stats parport_pc ppdev lp parport snd_hda_codec_hdmi intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm iTCO_wdt iTCO_vendor_support irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel sha256_ssse3 sha256_generic hmac drbg i915 snd_hda_codec_realtek snd_hda_codec_generic aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd btusb i2c_algo_bit snd_hda_intel btrtl drm_kms_helper btbcm evdev snd_hda_codec btintel psmouse bluetooth pcspkr snd_hwdep sg drm serio_raw
      [ 1841.244845]  snd_hda_core snd_pcm mei_me rfkill snd_timer mei snd lpc_ich soundcore shpchp i2c_i801 mfd_core battery dw_dmac i2c_designware_platform i2c_designware_core dw_dmac_core video acpi_pad button tpm_tis tpm ext4 crc16 mbcache jbd2 dm_mod hid_generic usbhid sd_mod ahci libahci libata ehci_pci e1000e xhci_pci ptp scsi_mod ehci_hcd xhci_hcd pps_core fan thermal sdhci_acpi sdhci mmc_core i2c_hid hid [last unloaded: tveeprom]
      [ 1841.245342] CPU: 2 PID: 38 Comm: kworker/2:1 Tainted: G        W       4.5.0-rc1+ #43
      [ 1841.245413] Hardware name:                  /NUC5i7RYB, BIOS RYBDWi35.86A.0350.2015.0812.1722 08/12/2015
      [ 1841.245503] Workqueue: events request_module_async [em28xx]
      [ 1841.245557] task: ffff88009df10000 ti: ffff88009df18000 task.ti: ffff88009df18000
      [ 1841.245626] RIP: 0010:[<ffffffffa135a0ad>]  [<ffffffffa135a0ad>] size_to_scale+0xed/0x2c0 [em28xx_v4l]
      [ 1841.245714] RSP: 0018:ffff88009df1faa8  EFLAGS: 00010246
      [ 1841.245756] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff8803bb933b38
      [ 1841.245815] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8803bb933b00
      [ 1841.245879] RBP: ffff88009df1fad8 R08: ffff8803bb933b3c R09: 1ffff10077726760
      [ 1841.245944] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
      [ 1841.246006] R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8803b391a130
      [ 1841.246071] FS:  0000000000000000(0000) GS:ffff8803c6900000(0000) knlGS:0000000000000000
      [ 1841.246141] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 1841.246194] CR2: 0000000001d97008 CR3: 00000003bdd85000 CR4: 00000000003406e0
      [ 1841.246256] Stack:
      [ 1841.246278]  0000000000000246 ffff8803bb9321f0 ffff8803bb932270 ffffffffa136f7a0
      [ 1841.246359]  0000000000000000 ffff8803bb932130 ffff88009df1fb20 ffffffffa13646a0
      [ 1841.246439]  ffffffffa127f206 ffff8803bb932130 ffff8803bb932130 ffff8803b391a130
      [ 1841.246517] Call Trace:
      [ 1841.246548]  [<ffffffffa13646a0>] em28xx_set_video_format+0x140/0x1e0 [em28xx_v4l]
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      0962a763
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: make sure that the device has video · 22580f7c
      Mauro Carvalho Chehab authored
      There are some devices, like Terratec Cinergy HTC, where
      while the device supports analog TV, the driver is not
      capable yet of handling it, because the analog TV driver
      was not written.
      
      So, don't bind the em28xx-v4l drivers on such devices.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      22580f7c
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: fix tuner detection for Pixelview Prolink PlayTV USB 2.0 · 41a5e7ea
      Mauro Carvalho Chehab authored
      The tuner is at address 0x60. This address is not probed by
      default by tuner anymore, so we need to explicitly add it.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      41a5e7ea
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: unregister devices in case of failure · 56a7f515
      Mauro Carvalho Chehab authored
      If something bad happens during device registration, unregister
      the already registered devices.
      
      Without that, it will have lots of KASAN errors when udev
      would try to open the devices.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      56a7f515
    • Mauro Carvalho Chehab's avatar
      [media] saa7115: initialize demod type and add the needed pads · af7d374a
      Mauro Carvalho Chehab authored
      The saa7115 driver is used on several em28xx-based devices.
      Now that we're about to add MC support to em28xx, we need to
      be sure that the saa711x demod will be properly mapped at MC.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      af7d374a
    • Mauro Carvalho Chehab's avatar
      [media] tvp5150: identify it as a MEDIA_ENT_F_ATV_DECODER · f92c70ad
      Mauro Carvalho Chehab authored
      The tvp5150 is an analog TV decoder. Identify as such at
      the media graph, or otherwise devices using it would fail.
      
      That avoids the following warning:
      	[ 1546.669139] usb 2-3.3: Entity type for entity tvp5150 5-005c was not initialized!
      Reviewed-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      f92c70ad
    • Mauro Carvalho Chehab's avatar
      [media] msp3400: initialize MC data · fb493282
      Mauro Carvalho Chehab authored
      Add pads and set the device type when used with the media
      controller.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      fb493282
    • Mauro Carvalho Chehab's avatar
      [media] tvp5150: create the expected number of pads · 55606310
      Mauro Carvalho Chehab authored
      The tvp5150 doesn't have just one pad. It has 3 ones:
      	- IF input
      	- Video output
      	- VBI output
      
      Fix it and use the macros for the pad indexes.
      Reviewed-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      55606310
    • Mauro Carvalho Chehab's avatar
      [media] v4l2-mc: add analog TV demodulator pad index macros · e4001e95
      Mauro Carvalho Chehab authored
      We also need to standardize the PAD index macros for demods,
      as they all should look the same in a media graph.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      e4001e95
    • Mauro Carvalho Chehab's avatar
      [media] v4l2-mc.h Add pads for audio and video IF-PLL decoders · 953a457e
      Mauro Carvalho Chehab authored
      The audio and video IF-PLL decoders have one sink and one source
      PAD. Add macro names for those pads and describe what kind of
      signals are represented at such pads.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      953a457e
    • Mauro Carvalho Chehab's avatar
      [media] media.h: add support for IF-PLL video/sound decoder · 06131932
      Mauro Carvalho Chehab authored
      Very old hardware may have an analog stage tuner. Those hardware
      consists of a PLL that converts a RF signal into IF signals.
      
      Depending on the hardware, those video IF signal can be
      decoded directly by the bridge chipset. Most Conexant
      chips (bt8x8, cx2388x, etc) have internally the decoders
      for that. Yet, even on such hardware, the tuner may have
      internally its own TV multi-standard decoder like tda9887.
      
      The same happens with the audio IF signal, where some bridges
      are capable of receiving it, while others require an external
      IF-PLL sound decoder, like msp3400.
      
      Those external IF-PLL audio and video decoders have their own
      I2C address, and use different drivers to handle them. So, they're
      mapped as different subdevices on Linux.
      
      Thankfully, all modern hardware comes with an IC chip that
      has both the RF and the IF stages on it, being capable of
      decoding audio and video IF signals internally.
      
      Yet, as we need to support drivers that can work with either
      analog or silicon tuners, we need to add two entity types
      for those old hardware.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      06131932
    • Mauro Carvalho Chehab's avatar
      [media] v4l2-mc.h: Split audio from baseband output · 5c9077ea
      Mauro Carvalho Chehab authored
      Analog TV tuners have a separate output pad for the audio
      IF or audio sampled data. This pad is connected to a different
      chipset.
      
      Add an extra pad for it and improve the documentation.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      5c9077ea
    • Mauro Carvalho Chehab's avatar
      [media] v4l2-mc.h: move tuner PAD definitions to this new header · 6aad127d
      Mauro Carvalho Chehab authored
      The customer PC hardware can be shipped with lots of different
      configurations, as vendors use to replace some of the chips on
      their hardware along the time. All drivers that support such
      devices are prepared to handle the hardware differences, using
      their own auto-probing logic.
      
      They do it in a way that number of inputs and outputs for a given
      hardware type doesn't change.
      
      Now that we're adding media controller capabilities to those drivers,
      we need to standardize the number of inputs and outputs for each
      hardware type, as we want to have a generic function at the V4L2
      core that would create the links for the entities that are expected
      on such hardware.
      
      Such standard is already there for tuners, but tuner.h is not the
      best place to store such data, as we'll need to add definitions also
      for analog TV demodulators.
      
      Also, we'll need a place to put a set of MC handling functions. So,
      let's create a v4l2-mc.h to store such kind of definitions.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      6aad127d
    • Mauro Carvalho Chehab's avatar
      [media] tuner.h: rename TUNER_PAD_IF_OUTPUT to TUNER_PAD_OUTPUT · 163c9bca
      Mauro Carvalho Chehab authored
      The output of a tuner is not only IF frequencies. They may also
      output audio on some of its pins, and may even be a zero-IF tuner,
      with outputs a baseband. So, rename the PAD name to make it
      clearer and add a proper documentation about that at tuner.h.
      
      No functional changes.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      163c9bca
    • Mauro Carvalho Chehab's avatar
      [media] xc2028: avoid use after free · 8dfbcc43
      Mauro Carvalho Chehab authored
      If struct xc2028_config is passed without a firmware name,
      the following trouble may happen:
      
      [11009.907205] xc2028 5-0061: type set to XCeive xc2028/xc3028 tuner
      [11009.907491] ==================================================================
      [11009.907750] BUG: KASAN: use-after-free in strcmp+0x96/0xb0 at addr ffff8803bd78ab40
      [11009.907992] Read of size 1 by task modprobe/28992
      [11009.907994] =============================================================================
      [11009.907997] BUG kmalloc-16 (Tainted: G        W      ): kasan: bad access detected
      [11009.907999] -----------------------------------------------------------------------------
      
      [11009.908008] INFO: Allocated in xhci_urb_enqueue+0x214/0x14c0 [xhci_hcd] age=0 cpu=3 pid=28992
      [11009.908012] 	___slab_alloc+0x581/0x5b0
      [11009.908014] 	__slab_alloc+0x51/0x90
      [11009.908017] 	__kmalloc+0x27b/0x350
      [11009.908022] 	xhci_urb_enqueue+0x214/0x14c0 [xhci_hcd]
      [11009.908026] 	usb_hcd_submit_urb+0x1e8/0x1c60
      [11009.908029] 	usb_submit_urb+0xb0e/0x1200
      [11009.908032] 	usb_serial_generic_write_start+0xb6/0x4c0
      [11009.908035] 	usb_serial_generic_write+0x92/0xc0
      [11009.908039] 	usb_console_write+0x38a/0x560
      [11009.908045] 	call_console_drivers.constprop.14+0x1ee/0x2c0
      [11009.908051] 	console_unlock+0x40d/0x900
      [11009.908056] 	vprintk_emit+0x4b4/0x830
      [11009.908061] 	vprintk_default+0x1f/0x30
      [11009.908064] 	printk+0x99/0xb5
      [11009.908067] 	kasan_report_error+0x10a/0x550
      [11009.908070] 	__asan_report_load1_noabort+0x43/0x50
      [11009.908074] INFO: Freed in xc2028_set_config+0x90/0x630 [tuner_xc2028] age=1 cpu=3 pid=28992
      [11009.908077] 	__slab_free+0x2ec/0x460
      [11009.908080] 	kfree+0x266/0x280
      [11009.908083] 	xc2028_set_config+0x90/0x630 [tuner_xc2028]
      [11009.908086] 	xc2028_attach+0x310/0x8a0 [tuner_xc2028]
      [11009.908090] 	em28xx_attach_xc3028.constprop.7+0x1f9/0x30d [em28xx_dvb]
      [11009.908094] 	em28xx_dvb_init.part.3+0x8e4/0x5cf4 [em28xx_dvb]
      [11009.908098] 	em28xx_dvb_init+0x81/0x8a [em28xx_dvb]
      [11009.908101] 	em28xx_register_extension+0xd9/0x190 [em28xx]
      [11009.908105] 	em28xx_dvb_register+0x10/0x1000 [em28xx_dvb]
      [11009.908108] 	do_one_initcall+0x141/0x300
      [11009.908111] 	do_init_module+0x1d0/0x5ad
      [11009.908114] 	load_module+0x6666/0x9ba0
      [11009.908117] 	SyS_finit_module+0x108/0x130
      [11009.908120] 	entry_SYSCALL_64_fastpath+0x16/0x76
      [11009.908123] INFO: Slab 0xffffea000ef5e280 objects=25 used=25 fp=0x          (null) flags=0x2ffff8000004080
      [11009.908126] INFO: Object 0xffff8803bd78ab40 @offset=2880 fp=0x0000000000000001
      
      [11009.908130] Bytes b4 ffff8803bd78ab30: 01 00 00 00 2a 07 00 00 9d 28 00 00 01 00 00 00  ....*....(......
      [11009.908133] Object ffff8803bd78ab40: 01 00 00 00 00 00 00 00 b0 1d c3 6a 00 88 ff ff  ...........j....
      [11009.908137] CPU: 3 PID: 28992 Comm: modprobe Tainted: G    B   W       4.5.0-rc1+ #43
      [11009.908140] Hardware name:                  /NUC5i7RYB, BIOS RYBDWi35.86A.0350.2015.0812.1722 08/12/2015
      [11009.908142]  ffff8803bd78a000 ffff8802c273f1b8 ffffffff81932007 ffff8803c6407a80
      [11009.908148]  ffff8802c273f1e8 ffffffff81556759 ffff8803c6407a80 ffffea000ef5e280
      [11009.908153]  ffff8803bd78ab40 dffffc0000000000 ffff8802c273f210 ffffffff8155ccb4
      [11009.908158] Call Trace:
      [11009.908162]  [<ffffffff81932007>] dump_stack+0x4b/0x64
      [11009.908165]  [<ffffffff81556759>] print_trailer+0xf9/0x150
      [11009.908168]  [<ffffffff8155ccb4>] object_err+0x34/0x40
      [11009.908171]  [<ffffffff8155f260>] kasan_report_error+0x230/0x550
      [11009.908175]  [<ffffffff81237d71>] ? trace_hardirqs_off_caller+0x21/0x290
      [11009.908179]  [<ffffffff8155e926>] ? kasan_unpoison_shadow+0x36/0x50
      [11009.908182]  [<ffffffff8155f5c3>] __asan_report_load1_noabort+0x43/0x50
      [11009.908185]  [<ffffffff8155ea00>] ? __asan_register_globals+0x50/0xa0
      [11009.908189]  [<ffffffff8194cea6>] ? strcmp+0x96/0xb0
      [11009.908192]  [<ffffffff8194cea6>] strcmp+0x96/0xb0
      [11009.908196]  [<ffffffffa13ba4ac>] xc2028_set_config+0x15c/0x630 [tuner_xc2028]
      [11009.908200]  [<ffffffffa13bac90>] xc2028_attach+0x310/0x8a0 [tuner_xc2028]
      [11009.908203]  [<ffffffff8155ea78>] ? memset+0x28/0x30
      [11009.908206]  [<ffffffffa13ba980>] ? xc2028_set_config+0x630/0x630 [tuner_xc2028]
      [11009.908211]  [<ffffffffa157a59a>] em28xx_attach_xc3028.constprop.7+0x1f9/0x30d [em28xx_dvb]
      [11009.908215]  [<ffffffffa157aa2a>] ? em28xx_dvb_init.part.3+0x37c/0x5cf4 [em28xx_dvb]
      [11009.908219]  [<ffffffffa157a3a1>] ? hauppauge_hvr930c_init+0x487/0x487 [em28xx_dvb]
      [11009.908222]  [<ffffffffa01795ac>] ? lgdt330x_attach+0x1cc/0x370 [lgdt330x]
      [11009.908226]  [<ffffffffa01793e0>] ? i2c_read_demod_bytes.isra.2+0x210/0x210 [lgdt330x]
      [11009.908230]  [<ffffffff812e87d0>] ? ref_module.part.15+0x10/0x10
      [11009.908233]  [<ffffffff812e56e0>] ? module_assert_mutex_or_preempt+0x80/0x80
      [11009.908238]  [<ffffffffa157af92>] em28xx_dvb_init.part.3+0x8e4/0x5cf4 [em28xx_dvb]
      [11009.908242]  [<ffffffffa157a6ae>] ? em28xx_attach_xc3028.constprop.7+0x30d/0x30d [em28xx_dvb]
      [11009.908245]  [<ffffffff8195222d>] ? string+0x14d/0x1f0
      [11009.908249]  [<ffffffff8195381f>] ? symbol_string+0xff/0x1a0
      [11009.908253]  [<ffffffff81953720>] ? uuid_string+0x6f0/0x6f0
      [11009.908257]  [<ffffffff811a775e>] ? __kernel_text_address+0x7e/0xa0
      [11009.908260]  [<ffffffff8104b02f>] ? print_context_stack+0x7f/0xf0
      [11009.908264]  [<ffffffff812e9846>] ? __module_address+0xb6/0x360
      [11009.908268]  [<ffffffff8137fdc9>] ? is_ftrace_trampoline+0x99/0xe0
      [11009.908271]  [<ffffffff811a775e>] ? __kernel_text_address+0x7e/0xa0
      [11009.908275]  [<ffffffff81240a70>] ? debug_check_no_locks_freed+0x290/0x290
      [11009.908278]  [<ffffffff8104a24b>] ? dump_trace+0x11b/0x300
      [11009.908282]  [<ffffffffa13e8143>] ? em28xx_register_extension+0x23/0x190 [em28xx]
      [11009.908285]  [<ffffffff81237d71>] ? trace_hardirqs_off_caller+0x21/0x290
      [11009.908289]  [<ffffffff8123ff56>] ? trace_hardirqs_on_caller+0x16/0x590
      [11009.908292]  [<ffffffff812404dd>] ? trace_hardirqs_on+0xd/0x10
      [11009.908296]  [<ffffffffa13e8143>] ? em28xx_register_extension+0x23/0x190 [em28xx]
      [11009.908299]  [<ffffffff822dcbb0>] ? mutex_trylock+0x400/0x400
      [11009.908302]  [<ffffffff810021a1>] ? do_one_initcall+0x131/0x300
      [11009.908306]  [<ffffffff81296dc7>] ? call_rcu_sched+0x17/0x20
      [11009.908309]  [<ffffffff8159e708>] ? put_object+0x48/0x70
      [11009.908314]  [<ffffffffa1579f11>] em28xx_dvb_init+0x81/0x8a [em28xx_dvb]
      [11009.908317]  [<ffffffffa13e81f9>] em28xx_register_extension+0xd9/0x190 [em28xx]
      [11009.908320]  [<ffffffffa0150000>] ? 0xffffffffa0150000
      [11009.908324]  [<ffffffffa0150010>] em28xx_dvb_register+0x10/0x1000 [em28xx_dvb]
      [11009.908327]  [<ffffffff810021b1>] do_one_initcall+0x141/0x300
      [11009.908330]  [<ffffffff81002070>] ? try_to_run_init_process+0x40/0x40
      [11009.908333]  [<ffffffff8123ff56>] ? trace_hardirqs_on_caller+0x16/0x590
      [11009.908337]  [<ffffffff8155e926>] ? kasan_unpoison_shadow+0x36/0x50
      [11009.908340]  [<ffffffff8155e926>] ? kasan_unpoison_shadow+0x36/0x50
      [11009.908343]  [<ffffffff8155e926>] ? kasan_unpoison_shadow+0x36/0x50
      [11009.908346]  [<ffffffff8155ea37>] ? __asan_register_globals+0x87/0xa0
      [11009.908350]  [<ffffffff8144da7b>] do_init_module+0x1d0/0x5ad
      [11009.908353]  [<ffffffff812f2626>] load_module+0x6666/0x9ba0
      [11009.908356]  [<ffffffff812e9c90>] ? symbol_put_addr+0x50/0x50
      [11009.908361]  [<ffffffffa1580037>] ? em28xx_dvb_init.part.3+0x5989/0x5cf4 [em28xx_dvb]
      [11009.908366]  [<ffffffff812ebfc0>] ? module_frob_arch_sections+0x20/0x20
      [11009.908369]  [<ffffffff815bc940>] ? open_exec+0x50/0x50
      [11009.908374]  [<ffffffff811671bb>] ? ns_capable+0x5b/0xd0
      [11009.908377]  [<ffffffff812f5e58>] SyS_finit_module+0x108/0x130
      [11009.908379]  [<ffffffff812f5d50>] ? SyS_init_module+0x1f0/0x1f0
      [11009.908383]  [<ffffffff81004044>] ? lockdep_sys_exit_thunk+0x12/0x14
      [11009.908394]  [<ffffffff822e6936>] entry_SYSCALL_64_fastpath+0x16/0x76
      [11009.908396] Memory state around the buggy address:
      [11009.908398]  ffff8803bd78aa00: 00 00 fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [11009.908401]  ffff8803bd78aa80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [11009.908403] >ffff8803bd78ab00: fc fc fc fc fc fc fc fc 00 00 fc fc fc fc fc fc
      [11009.908405]                                            ^
      [11009.908407]  ffff8803bd78ab80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [11009.908409]  ffff8803bd78ac00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [11009.908411] ==================================================================
      
      In order to avoid it, let's set the cached value of the firmware
      name to NULL after freeing it. While here, return an error if
      the memory allocation fails.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      8dfbcc43
    • Mauro Carvalho Chehab's avatar
      [media] em28xx: remove unused input types · d83a96a5
      Mauro Carvalho Chehab authored
      The em28xx driver have lots of different input types but
      only 4 of such types are actually used. The others are bogus.
      
      Remove them, in order to cleanup the driver.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      d83a96a5
  2. 29 Jan, 2016 2 commits
  3. 26 Jan, 2016 2 commits
  4. 25 Jan, 2016 7 commits