linux/drivers/misc
Gigi Joseph 868eba8e13 drivers: misc: ti-st: fix null pointer exception in st_kim_ref()
st_kim_ref() does not take care of the fact that platform_get_drvdata() might return NULL. On AM437x EVM, this causes the platform to stop booting as soon as the module is inserted.

This patch fixes the issue by checking for NULL return value. Oops log follows.

I have not tested BT functionality after this patch. But at least the platform boots now.

[   12.675697] Unable to handle kernel NULL pointer dereference at virtual address 0000005c
[   12.684310] pgd = c0004000
[   12.687157] [0000005c] *pgd=00000000
[   12.690927] Internal error: Oops: 17 [#1] SMP ARM
[   12.695873] Modules linked in: btwilink bluetooth ti_vpfe dwc3(+) ov2659 videobuf2_core v4l2_common videodev ti_am335x_adc 6lowpan_iphc matrix_keypad panel_dpi kfifo_buf pixcir_i2c_ts media industrialio videobuf2_dma_contig c_can_platform videobuf2_memops dwc3_omap c_can can_dev
[   12.721969] CPU: 0 PID: 1235 Comm: kworker/u3:0 Not tainted 3.14.25-02445-g9036ac6daed6 #128
[   12.730937] Workqueue: hci0 hci_power_on [bluetooth]
[   12.736165] task: ebd93b40 ti: ecd7c000 task.ti: ecd7c000
[   12.741856] PC is at st_kim_ref+0x30/0x40
[   12.746071] LR is at st_kim_ref+0x30/0x40
[   12.750289] pc : [<c03caf58>]    lr : [<c03caf58>]    psr: a0000013
[   12.750289] sp : ecd7de08  ip : ecd7de08  fp : ecd7de1c
[   12.762365] r10: bf1e710c  r9 : bf1e70ec  r8 : bf1e7964
[   12.767858] r7 : ebd2fd50  r6 : bf1e7964  r5 : 00000000  r4 : ecd7de24
[   12.774723] r3 : c0957208  r2 : 00000000  r1 : c0957208  r0 : 00000000
[   12.781589] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[   12.789274] Control: 10c5387d  Table: abde4059  DAC: 00000015
[   12.795315] Process kworker/u3:0 (pid: 1235, stack limit = 0xecd7c248)

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Gigi Joseph <gigi.joseph@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-01-12 05:04:11 -08:00
..
altera-stapl altera-stapl: replace strnicmp with strncasecmp 2014-10-14 02:18:25 +02:00
c2port
carma Char/Misc driver patches for 3.19-rc1 2014-12-14 16:43:47 -08:00
cb710 mmc: cb710: drop free_irq for devm_request_irq allocated irq 2013-09-26 13:55:30 -07:00
cxl cxl: Unmap MMIO regions when detaching a context 2014-12-12 13:06:48 +11:00
echo staging: echo: move to drivers/misc/ 2014-02-28 14:08:42 -08:00
eeprom Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
genwqe Char/Misc driver patches for 3.19-rc1 2014-12-14 16:43:47 -08:00
ibmasm misc: ibmasm: remove unnecessary pci_set_drvdata() 2013-09-26 09:13:54 -07:00
lis3lv02d misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-05 02:56:02 +01:00
mei mei: use uuid, me_addr tuple addressing also for flow control credits 2015-01-12 05:04:10 -08:00
mic vhost/virtio: virtio 1.0 related fixes 2014-12-18 20:50:30 -08:00
sgi-gru Merge branch 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next 2014-06-03 15:48:23 -07:00
sgi-xp net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
ti-st drivers: misc: ti-st: fix null pointer exception in st_kim_ref() 2015-01-12 05:04:11 -08:00
vmw_vmci vmci: propagate msghdr all way down to __qp_memcpy_from_queue() 2014-12-09 16:28:23 -05:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
ad525x_dpot.h
apds990x.c misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-05 02:56:02 +01:00
apds9802als.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
arm-charlcd.c misc: drop owner assignment from platform_drivers 2014-10-20 16:20:54 +02:00
atmel_tclib.c ARM: at91/tclib: mask interruptions at shutdown and probe 2014-09-08 10:54:03 +02:00
atmel-ssc.c Char/Misc driver patches for 3.19-rc1 2014-12-14 16:43:47 -08:00
bh1770glc.c misc / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM 2014-12-05 02:56:02 +01:00
bh1780gli.c misc: bh1780: Introduce the use of devm_kzalloc 2014-07-27 11:10:42 -07:00
bmp085-i2c.c misc: bmp085: Clean up and enable use of interrupt for completion. 2013-12-04 20:23:51 -08:00
bmp085-spi.c misc: bmp085: Clean up and enable use of interrupt for completion. 2013-12-04 20:23:51 -08:00
bmp085.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
bmp085.h misc: bmp085: Clean up and enable use of interrupt for completion. 2013-12-04 20:23:51 -08:00
cs5535-mfgpt.c misc: drop owner assignment from platform_drivers 2014-10-20 16:20:54 +02:00
ds1682.c misc: (ds1682) replace obsolete simple_strtoull() with kstrtoull() 2014-05-03 19:26:24 -04:00
dummy-irq.c Add MODULE_DESCRIPTION to dummy-irq.c and lkdtm.c in drivers/misc 2014-07-09 14:19:34 -07:00
enclosure.c enclosure: handle non-unique element descriptors 2014-11-12 11:15:55 +01:00
fsa9480.c treewide: fix comments and printk msgs 2014-01-07 15:06:07 +01:00
hmc6352.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
hpilo.c
hpilo.h
ics932s401.c
ioc4.c misc: ioc4: Use ktime_get_ns() 2014-07-23 15:01:43 -07:00
isl29003.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
isl29020.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
Kconfig ARM: at91/Kconfig: remove unused config options 2014-11-19 11:39:23 +01:00
kgdbts.c
lattice-ecp3-config.c misc: lattice-ecp3-config: Add missing MODULE_FIRMWARE() 2014-09-23 23:04:17 -07:00
lkdtm.c Add MODULE_DESCRIPTION to dummy-irq.c and lkdtm.c in drivers/misc 2014-07-09 14:19:34 -07:00
Makefile cxl: Add base builtin support 2014-10-08 20:15:56 +11:00
pch_phub.c pch_phub: Build context save/restore only for PM 2014-11-07 10:28:36 -08:00
phantom.c misc: phantom: remove deprecated IRQF_DISABLED 2013-10-16 12:36:10 -07:00
pti.c misc: pti: remove unnecessary pci_set_drvdata() 2013-09-26 09:13:54 -07:00
spear13xx_pcie_gadget.c pcie-gadget-spear: use devm_ functions 2014-09-23 23:04:17 -07:00
sram.c misc: sram: implement reserved sram areas 2014-02-28 15:31:11 -08:00
ti_dac7512.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
tifm_7xx1.c tifm: fix error return code in tifm_7xx1_probe() 2013-10-30 10:19:30 -07:00
tifm_core.c tifm: convert bus code to use dev_groups 2013-10-16 18:40:58 -07:00
tsl2550.c drivers/misc: delete non-required instances of include <linux/init.h> 2014-02-07 15:10:19 -08:00
vexpress-syscfg.c ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
vmw_balloon.c MAINTAINERS: add entry for VMware Balloon driver 2014-06-20 11:47:33 -07:00