linux/drivers/media/usb/dvb-usb
Mauro Carvalho Chehab 7a0786c19d gp8psk: Fix DVB frontend attach
The DVB binding schema at the DVB core assumes that the frontend is a
separate driver.  Faling to do that causes OOPS when the module is
removed, as it tries to do a symbol_put_addr on an internal symbol,
causing craches like:

    WARNING: CPU: 1 PID: 28102 at kernel/module.c:1108 module_put+0x57/0x70
    Modules linked in: dvb_usb_gp8psk(-) dvb_usb dvb_core nvidia_drm(PO) nvidia_modeset(PO) snd_hda_codec_hdmi snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_pcm snd_timer snd soundcore nvidia(PO) [last unloaded: rc_core]
    CPU: 1 PID: 28102 Comm: rmmod Tainted: P        WC O 4.8.4-build.1 #1
    Hardware name: MSI MS-7309/MS-7309, BIOS V1.12 02/23/2009
    Call Trace:
       dump_stack+0x44/0x64
       __warn+0xfa/0x120
       module_put+0x57/0x70
       module_put+0x57/0x70
       warn_slowpath_null+0x23/0x30
       module_put+0x57/0x70
       gp8psk_fe_set_frontend+0x460/0x460 [dvb_usb_gp8psk]
       symbol_put_addr+0x27/0x50
       dvb_usb_adapter_frontend_exit+0x3a/0x70 [dvb_usb]

From Derek's tests:
    "Attach bug is fixed, tuning works, module unloads without
     crashing. Everything seems ok!"

Reported-by: Derek <user.vdr@gmail.com>
Tested-by: Derek <user.vdr@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-11-13 10:02:22 -08:00
..
Kconfig [media] dvb-usb: avoid link error with dib3000m{b,c| 2016-09-22 12:38:27 -03:00
Makefile gp8psk: Fix DVB frontend attach 2016-11-13 10:02:22 -08:00
a800.c [media] media: change email address 2016-01-25 12:01:08 -02:00
af9005-fe.c [media] dvb_frontend: pass the props cache to get_frontend() as arg 2016-02-04 16:27:30 -02:00
af9005-remote.c
af9005-script.h
af9005.c dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
af9005.h
az6027.c [media] az6027: Add support for Elgato EyeTV Sat v3 2016-05-06 15:53:23 -03:00
az6027.h
cinergyT2-core.c dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
cinergyT2-fe.c [media] cinergyT2-fe: don't do DMA on stack 2016-10-14 12:36:52 -03:00
cinergyT2.h
cxusb.c dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
cxusb.h dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
dib07x0.h
dib0700.h [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
dib0700_core.c dib0700: fix nec repeat handling 2016-11-11 08:45:08 -08:00
dib0700_devices.c [media] dib0700: be sure that dib0700_ctrl_rd() users can do DMA 2016-10-14 12:37:47 -03:00
dibusb-common.c media fixes for v4.9-rc4 2016-11-05 11:15:09 -07:00
dibusb-mb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dibusb-mc-common.c [media] dvb-usb: split out common parts of dibusb 2016-09-22 12:37:43 -03:00
dibusb-mc.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dibusb.h [media] dibusb: don't do DMA on stack 2016-10-14 12:38:34 -03:00
digitv.c [media] digitv: handle error code on RC query 2016-10-14 12:52:27 -03:00
digitv.h [media] digitv: don't do DMA on stack 2016-10-14 12:40:47 -03:00
dtt200u-fe.c [media] dtt200u-fe: handle errors on USB control messages 2016-10-14 12:41:58 -03:00
dtt200u.c dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
dtt200u.h [media] media: change email address 2016-01-25 12:01:08 -02:00
dtv5100.c [media] dtv5100: don't do DMA on stack 2016-10-14 12:44:03 -03:00
dtv5100.h
dvb-usb-common.h [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-dvb.c [media] dvb-usb: silence an uninitialized variable warning 2016-07-13 13:13:22 -03:00
dvb-usb-firmware.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-i2c.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-init.c dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
dvb-usb-remote.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb-urb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
dvb-usb.h dvb-usb: move data_mutex to struct dvb_usb_device 2016-11-13 10:02:22 -08:00
dw2102.c [media] dw2102: return error if su3000_power_ctrl() fails 2016-10-14 12:52:26 -03:00
dw2102.h
friio-fe.c [media] friio-fe: remove get_frontend() callback 2016-02-04 16:27:28 -02:00
friio.c
friio.h
gp8psk.c gp8psk: Fix DVB frontend attach 2016-11-13 10:02:22 -08:00
gp8psk.h gp8psk: Fix DVB frontend attach 2016-11-13 10:02:22 -08:00
m920x.c [media] media: remove emacs editor variables 2014-12-22 17:52:20 -02:00
m920x.h
nova-t-usb2.c [media] nova-t-usb2: handle error code on RC query 2016-10-14 12:52:25 -03:00
opera1.c [media] dvb: Get rid of typedev usage for enums 2015-06-09 17:47:35 -03:00
pctv452e.c [media] pctv452e: fix semicolon.cocci warnings 2016-10-14 12:52:30 -03:00
technisat-usb2.c [media] technisat-usb2: use DMA buffers for I2C transfers 2016-10-14 12:47:35 -03:00
ttusb2.c [media] media: change email address 2016-01-25 12:01:08 -02:00
ttusb2.h
umt-010.c [media] media: change email address 2016-01-25 12:01:08 -02:00
usb-urb.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x-fe.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp702x.h
vp7045-fe.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp7045.c [media] media: change email address 2016-01-25 12:01:08 -02:00
vp7045.h [media] media: change email address 2016-01-25 12:01:08 -02:00