linux/drivers/ide
Borislav Petkov 2c8fc86760 ide-disk: Fix request requeuing
Simon Kirby reported that on his RAID setup with idedisk underneath
the box OOMs after a couple of days of runtime. Running with
CONFIG_DEBUG_KMEMLEAK pointed to idedisk_prep_fn() which unconditionally
allocates an ide_cmd struct. However, ide_requeue_and_plug() can be
called more than once per request, either from the request issue or the
IRQ handler path and do blk_peek_request() ends up in idedisk_prep_fn()
repeatedly, allocating a struct ide_cmd everytime and "forgetting" the
previous pointer.

Make sure the code reuses the old allocated chunk.

Reported-and-tested-by: Simon Kirby <sim@hostway.ca>
Cc: <stable@kernel.org> [ 39.x, 3.0.x ]
Link: http://marc.info/?l=linux-kernel&m=131667641517919
Link: http://lkml.kernel.org/r/20110922072643.GA27232@hostway.ca
Signed-off-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-10-03 14:28:18 -04:00
..
aec62xx.c
ali14xx.c
alim15x3.c
amd74xx.c
at91_ide.c
atiixp.c
au1xxx-ide.c
buddha.c
cmd64x.c
cmd640.c
cs5520.c
cs5530.c
cs5535.c
cs5536.c
cy82c693.c drivers/ide/cy82c693.c: Add missing pci_dev_put 2011-08-04 01:30:34 -07:00
delkin_cb.c
dtc2278.c
falconide.c
gayle.c
hpt366.c
ht6560b.c
icside.c
ide_platform.c ide: Fix irq flags madness 2011-08-04 01:29:51 -07:00
ide-4drives.c
ide-acpi.c
ide-atapi.c block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
ide-cd_ioctl.c ide: unexport DISK_EVENT_MEDIA_CHANGE for ide-gd and ide-cd 2011-04-21 19:43:59 +02:00
ide-cd_verbose.c
ide-cd.c ide-cd: signedness warning fix again 2011-06-11 15:06:48 -07:00
ide-cd.h
ide-cs.c pcmcia: Convert pcmcia_device_id declarations to const 2011-05-06 07:46:22 +02:00
ide-devsets.c
ide-disk_ioctl.c
ide-disk_proc.c
ide-disk.c ide-disk: Fix request requeuing 2011-10-03 14:28:18 -04:00
ide-disk.h
ide-dma-sff.c
ide-dma.c
ide-eh.c
ide-floppy_ioctl.c
ide-floppy_proc.c
ide-floppy.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6 2011-05-22 22:08:32 -07:00
ide-floppy.h
ide-gd.c ide: unexport DISK_EVENT_MEDIA_CHANGE for ide-gd and ide-cd 2011-04-21 19:43:59 +02:00
ide-gd.h
ide-generic.c
ide-h8300.c
ide-io-std.c
ide-io.c ide: always ensure that blk_delay_queue() is called if we have pending IO 2011-04-05 23:52:49 +02:00
ide-ioctls.c
ide-iops.c
ide-legacy.c
ide-lib.c
ide-park.c block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
ide-pci-generic.c
ide-pio-blacklist.c
ide-pm.c
ide-pnp.c
ide-probe.c
ide-proc.c
ide-scan-pci.c ide/ide-scan-pci.c: Use for_each_pci_dev(). 2011-05-16 14:24:46 -07:00
ide-sysfs.c
ide-tape.c
ide-taskfile.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ide-timings.c
ide-xfer-mode.c
ide.c
it821x.c
it8172.c
it8213.c
jmicron.c
Kconfig
macide.c
Makefile ide: change to new flag variable 2011-03-17 14:05:34 +01:00
ns87415.c
opti621.c
palm_bk3710.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
pdc202xx_new.c
pdc202xx_old.c
piix.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pmac.c
q40ide.c
qd65xx.c
qd65xx.h
rapide.c
rz1000.c
sc1200.c
scc_pata.c
serverworks.c
setup-pci.c
sgiioc4.c
siimage.c
sis5513.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sl82c105.c
slc90e66.c
tc86c001.c
triflex.c Fix common misspellings 2011-03-31 11:26:23 -03:00
trm290.c
tx4938ide.c
tx4939ide.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
umc8672.c
via82cxxx.c Fix common misspellings 2011-03-31 11:26:23 -03:00