linux/drivers/i2c/busses
Jarkko Nikula 984277a041 i2c: designware: Fix oops from i2c_dw_irq_handler_slave
When i2c-designware is initialized in slave mode the
i2c-designware-slave.c: i2c_dw_irq_handler_slave() can hit a NULL
pointer dereference when I2C slave backend is not registered but code is
accessing the struct dw_i2c_dev.slave without testing is it NULL.

We might get spurious interrupts from other devices or from IRQ core
during unloading the driver when CONFIG_DEBUG_SHIRQ is set. Existing
check for enable and IRQ status is not enough since device can be power
gated and those bits may read 1.

Fix this by handling the interrupt only when also struct dw_i2c_dev.slave
is set.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2017-08-14 21:11:19 +02:00
..
i2c-acorn.c i2c: acorn: is tristate and should use module.h 2014-01-24 18:21:11 +01:00
i2c-ali15x3.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-ali1535.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-amd756.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-amd8111.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-aspeed.c i2c: aspeed: added slave support for Aspeed I2C driver 2017-06-23 20:39:38 +02:00
i2c-at91.c i2c: at91: Fix compilation warning. 2017-06-19 16:30:04 +02:00
i2c-au1550.c i2c: au1550: Convert to devm_kzalloc and devm_ioremap_resource 2015-10-23 23:31:11 +02:00
i2c-axxia.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-bcm-iproc.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-bcm-kona.c Merge branch 'i2c/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-10-07 14:12:21 -07:00
i2c-bcm2835.c i2c: bcm2835: Avoid possible NULL ptr dereference 2017-02-20 19:19:54 +01:00
i2c-bfin-twi.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-brcmstb.c i2c: brcmstb: Fix START and STOP conditions 2017-03-08 18:00:49 +01:00
i2c-cadence.c i2c: cadance: fix ctrl/addr reg write order 2017-06-23 20:56:21 +02:00
i2c-cbus-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-cpm.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-cros-ec-tunnel.c i2c: i2c-cros-ec-tunnel: Reduce logging noise 2017-01-28 22:16:38 +01:00
i2c-davinci.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-designware-baytrail.c i2c: designware-baytrail: fix potential null pointer dereference on dev 2017-04-19 21:00:13 +02:00
i2c-designware-common.c i2c: designware: add SLAVE mode functions 2017-06-27 23:36:28 +02:00
i2c-designware-core.h i2c: designware: Let slave adapter support be optional 2017-07-04 16:12:45 +02:00
i2c-designware-master.c i2c: designware: Make HW init functions static 2017-07-04 16:11:02 +02:00
i2c-designware-pcidrv.c i2c: designware: MASTER mode as separated driver 2017-06-19 18:24:59 +02:00
i2c-designware-platdrv.c i2c: designware: Fix system suspend 2017-08-14 21:02:42 +02:00
i2c-designware-slave.c i2c: designware: Fix oops from i2c_dw_irq_handler_slave 2017-08-14 21:11:19 +02:00
i2c-digicolor.c i2c: digicolor: use clk_disable_unprepare instead of clk_unprepare 2016-11-18 01:48:01 +01:00
i2c-diolan-u2c.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-dln2.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-efm32.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-eg20t.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-elektor.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-emev2.c i2c: emev2: Handle return value of clk_prepare_enable 2017-06-19 22:18:55 +02:00
i2c-exynos5.c i2c: exynos5: use core helper to get driver data 2017-04-21 14:02:41 +02:00
i2c-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-highlander.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-hix5hd2.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-hydra.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-i801.c i2c: i801: Add support for Intel Cannon Lake 2017-06-19 16:17:41 +02:00
i2c-ibm_iic.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
i2c-ibm_iic.h
i2c-img-scb.c i2c: img-scb: use setup_timer 2017-04-16 21:51:30 +02:00
i2c-imx-lpi2c.c Merge branch 'i2c/for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-02-25 14:21:18 -08:00
i2c-imx.c i2c: imx: Use correct function to write to register 2017-06-22 10:52:02 +02:00
i2c-iop3xx.c i2c: iop3xx: use new 8 bit address helper function 2016-04-11 18:54:59 +02:00
i2c-iop3xx.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-isch.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-ismt.c i2c: ismt: fix wrong device address when unmap the data buffer 2017-06-15 16:07:03 +02:00
i2c-jz4780.c i2c: jz4780: Fix module autoload 2016-10-25 11:48:58 +02:00
i2c-kempld.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-lpc2k.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-meson.c i2c: meson: improve and simplify interrupt handler 2017-03-30 17:31:29 +02:00
i2c-mlxcpld.c i2c: mlxcpld: add master driver for mellanox systems 2016-11-24 16:21:42 +01:00
i2c-mpc.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
i2c-mt65xx.c i2c: m65xx: drop superfluous quirk structure 2017-03-08 18:03:41 +01:00
i2c-mv64xxx.c i2c: mv64xxx: don't override deferred probing when getting irq 2017-05-16 23:19:00 +02:00
i2c-mxs.c i2c: mxs: change error printing to debug for mxs_i2c_pio_wait_xfer_end 2017-06-02 22:57:14 +02:00
i2c-nforce2-s4985.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nforce2.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-nomadik.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-ocores.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-octeon-core.c i2c: octeon: thunderx: Limit register access retries 2016-12-17 19:27:44 +01:00
i2c-octeon-core.h i2c: thunderx: Replace pci_enable_msix() 2017-02-23 13:03:56 +01:00
i2c-octeon-platdrv.c i2c: octeon: Sort include files alphabetically 2016-08-26 00:41:58 +02:00
i2c-omap.c i2c: omap: constify dev_pm_ops structures 2017-01-25 22:17:24 +01:00
i2c-opal.c powerpc/opal: Add inline function to get rc from an ASYNC_COMP opal_msg 2016-06-29 17:33:18 +10:00
i2c-parport-light.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-parport.c i2c: parport: start using pr_fmt 2015-08-10 08:37:28 +02:00
i2c-parport.h i2c: parport: Add VCT-jig adapter 2015-08-10 08:37:34 +02:00
i2c-pasemi.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-isa.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-pca-platform.c i2c: pca-platform: propagate error from i2c_pca_add_numbered_bus 2017-07-04 16:03:42 +02:00
i2c-piix4.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-pmcmsp.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-pnx.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-powermac.c i2c: powermac: use new 8 bit address helper function 2016-04-11 18:54:59 +02:00
i2c-puv3.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-pxa-pci.c i2c: i2c-pxa-pci; make explicitly non-modular 2016-11-18 01:44:38 +01:00
i2c-pxa.c i2c: pxa: Add support for the I2C units found in Armada 3700 2016-12-01 23:34:33 +01:00
i2c-qup.c i2c: qup: support SMBus block read 2016-11-29 22:43:38 +01:00
i2c-rcar.c Merge branch 'i2c/for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2017-07-12 10:04:56 -07:00
i2c-riic.c i2c: riic: fix restart condition 2017-03-08 17:54:59 +01:00
i2c-rk3x.c i2c: rk3x: Give the tuning value 0 during rk3x_i2c_v0_calc_timings 2016-10-25 11:11:46 +02:00
i2c-robotfuzz-osif.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-s3c2410.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-scmi.c i2c: i2c-scmi: add a MS HID 2017-04-16 21:48:06 +02:00
i2c-sh_mobile.c i2c: sh_mobile: drop needless check for of_node 2017-06-02 22:52:51 +02:00
i2c-sh7760.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sibyte.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-simtec.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-sirf.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sis96x.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis630.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis5595.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-st.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-stm32f4.c i2c: stm32f4: add driver 2017-01-25 22:16:59 +01:00
i2c-stu300.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sun6i-p2wi.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-taos-evm.c i2c: taos-evm: replace simple_strtoul by kstrtou8 2015-11-30 18:37:22 +01:00
i2c-tegra-bpmp.c i2c: tegra: fix spelling mistake: "contoller" -> "controller" 2017-04-21 14:04:57 +02:00
i2c-tegra.c i2c: tegra: Fix assignment of boolean variables 2016-09-08 22:36:18 +02:00
i2c-thunderx-pcidrv.c i2c: thunderx: Enable HWMON class probing 2017-04-21 18:05:22 +02:00
i2c-tiny-usb.c i2c: i2c-tiny-usb: fix buffer not being DMA capable 2017-05-22 10:33:42 +02:00
i2c-uniphier-f.c i2c: uniphier-f: rename jump label to follow coding style guideline 2016-11-18 02:16:08 +01:00
i2c-uniphier.c i2c: uniphier: rename jump label to follow coding style guideline 2016-11-18 02:13:11 +01:00
i2c-versatile.c i2c: versatile: Convert to use resource managed devm_* APIs 2016-07-14 21:21:56 +09:00
i2c-via.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viapro.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-viperboard.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-wmt.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-xgene-slimpro.c i2c: xgene-slimpro: include linux/io.h for memremap 2017-06-18 14:59:45 +02:00
i2c-xiic.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-xlp9xx.c i2c: xlp9xx: Enable HWMON class probing for xlp9xx 2017-06-19 16:22:54 +02:00
i2c-xlr.c i2c: busses: constify i2c_algorithm structures 2017-02-09 17:06:52 +01:00
i2c-zx2967.c i2c: zx2967: always use the same device when printing errors 2017-06-27 23:21:00 +02:00
Kconfig i2c: allow i2c-versatile for ARM MPS platforms 2017-07-31 17:05:16 +02:00
Makefile i2c: designware: add SLAVE mode functions 2017-06-27 23:36:28 +02:00
scx200_acb.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00