linux-uconsole/drivers/misc
Alexander Usyskin 24a5091004 mei: don't unset read cb ptr on reset
commit 5cb906c703 upstream.

Don't set read callback to NULL during reset as
this leads to memory leak of both cb and its buffer.
The memory is correctly freed during mei_release.

The memory leak is detectable by kmemleak if
application has open read call while system is going through
suspend/resume.

unreferenced object 0xecead780 (size 64):
  comm "AsyncTask #1", pid 1018, jiffies 4294949621 (age 152.440s)
  hex dump (first 32 bytes):
    00 01 10 00 00 02 20 00 00 bf 30 f1 00 00 00 00  ...... ...0.....
    00 00 00 00 00 00 00 00 36 01 00 00 00 70 da e2  ........6....p..
  backtrace:
    [<c1a60aec>] kmemleak_alloc+0x3c/0xa0
    [<c131ed56>] kmem_cache_alloc_trace+0xc6/0x190
    [<c16243c9>] mei_io_cb_init+0x29/0x50
    [<c1625722>] mei_cl_read_start+0x102/0x360
    [<c16268f3>] mei_read+0x103/0x4e0
    [<c1324b09>] vfs_read+0x89/0x160
    [<c1324d5f>] SyS_read+0x4f/0x80
    [<c1a7b318>] syscall_call+0x7/0xb
    [<ffffffff>] 0xffffffff
unreferenced object 0xe2da7000 (size 512):
  comm "AsyncTask #1", pid 1018, jiffies 4294949621 (age 152.440s)
  hex dump (first 32 bytes):
    00 6c da e2 7c 00 00 00 00 00 00 00 c0 eb 0c 59  .l..|..........Y
    1b 00 00 00 01 00 00 00 02 10 00 00 01 00 00 00  ................
  backtrace:
    [<c1a60aec>] kmemleak_alloc+0x3c/0xa0
    [<c131f127>] __kmalloc+0xe7/0x1d0
    [<c162447e>] mei_io_cb_alloc_resp_buf+0x2e/0x60
    [<c162574c>] mei_cl_read_start+0x12c/0x360
    [<c16268f3>] mei_read+0x103/0x4e0
    [<c1324b09>] vfs_read+0x89/0x160
    [<c1324d5f>] SyS_read+0x4f/0x80
    [<c1a7b318>] syscall_call+0x7/0xb
    [<ffffffff>] 0xffffffff

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-22 12:41:28 -08:00
..
altera-stapl
c2port misc/c2port: convert to idr_alloc() 2013-02-27 19:10:17 -08:00
carma dmaengine: remove dma_async_memcpy_pending() macro 2013-01-07 22:05:09 -08:00
cb710 drivers/misc/cb710: add missing GENERIC_HARDIRQS dependency 2013-02-08 12:23:53 -08:00
eeprom misc: eeprom_93xx46: use spi_get_drvdata() and spi_set_drvdata() 2013-04-05 15:38:31 -07:00
ibmasm fs: Limit sys_mount to only request filesystem modules. 2013-03-03 19:36:31 -08:00
lis3lv02d lis3lv02d: don't wank with fasync() on ->release() 2013-04-29 15:41:46 -04:00
mei mei: don't unset read cb ptr on reset 2014-02-22 12:41:28 -08:00
sgi-gru drivers/misc/sgi-gru/grufile.c: fix info leak in gru_get_config_info() 2013-06-12 16:29:46 -07:00
sgi-xp SGI-XP: handle non-fatal traps 2012-12-20 17:40:20 -08:00
ti-st Char/Misc driver patches for 3.9-rc1 2013-02-21 13:57:13 -08:00
vmw_vmci Hoist memcpy_fromiovec/memcpy_toiovec into lib/ 2013-05-20 10:24:22 +09:30
ad525x_dpot-i2c.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
ad525x_dpot-spi.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
ad525x_dpot.c misc: remove use of __devinit 2012-11-21 12:51:53 -08:00
ad525x_dpot.h
apds990x.c misc: apds990x: add CONFIG_PM_SLEEP to suspend/resume functions 2013-03-29 08:50:52 -07:00
apds9802als.c misc: apds9802als: Fix suspend/resume 2013-04-11 12:39:02 -07:00
arm-charlcd.c misc: arm-charlcd: use module_platform_driver_probe() 2013-03-15 11:10:49 -07:00
atmel-ssc.c drivers/misc: don't check resource with devm_ioremap_resource 2013-05-18 11:55:54 +02:00
atmel_pwm.c misc: atmel_pwm: add deferred-probing support 2013-11-20 12:27:47 -08:00
atmel_tclib.c ARM: at91/tc/clocksource: Add 32 bit variant to Timer Counter 2012-03-01 13:38:49 +01:00
bh1770glc.c misc: bh1770glc: add CONFIG_PM_SLEEP to suspend/resume functions 2013-03-29 08:50:51 -07:00
bh1780gli.c misc: bh1780gli: add CONFIG_PM_SLEEP to suspend/resume functions 2013-03-29 08:50:51 -07:00
bmp085-i2c.c misc: remove use of __devinit 2012-11-21 12:51:53 -08:00
bmp085-spi.c misc: remove use of __devinit 2012-11-21 12:51:53 -08:00
bmp085.c misc: remove use of __devinit 2012-11-21 12:51:53 -08:00
bmp085.h misc: add support for bmp18x chips to the bmp085 driver 2012-04-18 14:57:14 -07:00
cs5535-mfgpt.c cs5535-mfgpt: Fix quotation marks 2013-04-03 11:23:13 -07:00
ds1682.c
dummy-irq.c dummy-irq: require the user to specify an IRQ number 2013-05-16 18:08:57 -07:00
enclosure.c SCSI: enclosure: fix WARN_ON in dual path device removing 2013-12-11 22:36:27 -08:00
ep93xx_pwm.c misc: ep93xx_pwm: use module_platform_driver_probe() 2013-03-15 11:10:49 -07:00
fsa9480.c misc: fsa8480: Use dev_pm_ops 2013-04-11 12:39:02 -07:00
hmc6352.c
hpilo.c drivers/misc/hpilo: Correct panic when an AUX iLO is detected 2013-09-07 22:09:59 -07:00
hpilo.h misc: hpilo: increase number of max supported channels 2012-06-14 17:22:12 -07:00
ics932s401.c
ioc4.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
isl29003.c misc: isl29003: Use dev_pm_ops 2013-04-11 12:39:02 -07:00
isl29020.c
Kconfig Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-04-30 08:41:21 -07:00
kgdbts.c kgdb/kgdbts: support ppc64 2013-03-02 08:52:17 -06:00
lattice-ecp3-config.c misc: lattice-ecp3-config: use spi_get_drvdata() 2013-04-05 15:38:31 -07:00
lkdtm.c drivers/misc/lkdtm.c: fix missing allocation failure check 2012-07-30 17:25:22 -07:00
Makefile misc: generic on-chip SRAM allocation driver 2013-04-29 18:28:13 -07:00
pch_phub.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
phantom.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
pti.c TTY/Serial merge for 3.8-rc1 2012-12-11 14:08:47 -08:00
spear13xx_pcie_gadget.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
sram.c misc: generic on-chip SRAM allocation driver 2013-04-29 18:28:13 -07:00
ti_dac7512.c misc: remove use of __devexit 2012-11-21 12:53:32 -08:00
tifm_7xx1.c tifm: use module_pci_driver 2012-09-05 14:10:29 -07:00
tifm_core.c misc/tifm_core: convert to idr_alloc() 2013-02-27 19:10:17 -08:00
tsl2550.c misc: tsl2550: Use dev_pm_ops 2013-04-11 12:39:02 -07:00
vmw_balloon.c vmw_balloon: fix for a -Wuninitialized warning 2012-02-02 16:28:13 -08:00