android_kernel_xiaomi_sm8350/drivers
Neil Brown 286f3e13a1 [SCSI] fix possible deadlock in scsi_lib.c
If a filesystem, while writing out data, decides that it is good
to issue a cache flush on a SCSI drive (or other 'sd' device), it will
call blkdev_issue_flush which calls ->issue_flush_fn which is
scsi_issue_flush_fn.
This calls sd_issue_flush which calls sd_sync_cache, which calls
scsi_execute_request.
This will (as sshdr != NULL) call
    kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL)

If memory is tight, the presence of GFP_KERNEL may cause write
requests to be sent to some filesystem to free up memory, however if
that filesystem is waiting for the issue_flush_fn to complete, you
could get a deadlock.

I wonder if it might be more appropriate to use GFP_NOIO as in the
following patch.

I wonder if it might be even more appropriate to cope better with a
kmalloc failure, especially as in this use, sd_sync_cache only will
use the sense information to print out a more informative error
message.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-09-09 10:29:22 -05:00
..
acorn
acpi
atm [ATM]: Fix dereference of uninitialized pointer in zatm 2005-09-02 12:18:03 -07:00
base [SCSI] Re-do "final klist fixes" 2005-09-07 18:44:33 -07:00
block Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 2005-09-07 17:31:27 -07:00
bluetooth
cdrom Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 2005-09-07 17:31:27 -07:00
char Merge branch 'drm-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6 2005-09-07 17:29:07 -07:00
cpufreq
crypto
dio
eisa
fc4
firmware [PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support 2005-09-07 16:57:27 -07:00
hwmon [PATCH] hwmon: (3/3) pc87360 driver update 2005-09-05 09:26:55 -07:00
i2c [PATCH] drivers: convert kcalloc to kzalloc 2005-09-07 16:57:46 -07:00
ide Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6 2005-09-07 17:31:27 -07:00
ieee1394 [PATCH] provide MODALIAS= enviroment variable to autoload ieee1394 modules via udev 2005-09-07 16:57:41 -07:00
infiniband [PATCH] drivers: convert kcalloc to kzalloc 2005-09-07 16:57:46 -07:00
input [PATCH] Input: Add a new switch event type 2005-09-07 16:57:54 -07:00
isdn [PATCH] -Wundef fixes (hisax) 2005-09-07 17:17:33 -07:00
macintosh [PATCH] swsusp: switch pm_message_t to struct 2005-09-05 00:06:16 -07:00
mca
md [PATCH] kill bio->bi_set 2005-09-07 16:57:20 -07:00
media [PATCH] DVB: lgdt330x check callback fix 2005-09-07 16:58:02 -07:00
message Merge by hand (conflicts in sd.c) 2005-09-06 17:52:54 -05:00
mfd
misc [SERIAL] Update ibmasm driver for death of register_serial&co 2005-09-07 21:37:00 +01:00
mmc [PATCH] mmc: conditional scr sysfs entry 2005-09-07 16:57:52 -07:00
mtd [PATCH] detect soft lockups 2005-09-07 16:57:17 -07:00
net Merge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2005-09-07 17:28:25 -07:00
nubus
oprofile
parisc
parport [PATCH] parport: add NetMOS 9805 support 2005-09-07 16:57:28 -07:00
pci [PATCH] x86/x86_64: deferred handling of writes to /proc/irqxx/smp_affinity 2005-09-07 16:57:15 -07:00
pcmcia [PATCH] yenta: make ToPIC95 bridges work with 16bit cards 2005-09-07 16:57:21 -07:00
pnp [PATCH] PNP: make pnp_dbg conditional directly on CONFIG_PNP_DEBUG 2005-09-07 16:57:25 -07:00
s390 [PATCH] s390: claw driver fixes 2005-09-06 22:15:20 -04:00
sbus
scsi [SCSI] fix possible deadlock in scsi_lib.c 2005-09-09 10:29:22 -05:00
serial Merge master.kernel.org:/home/rmk/linux-2.6-serial 2005-09-07 17:02:24 -07:00
sh
sn
tc
telephony
usb [PATCH] USB: convert kcalloc to kzalloc 2005-09-07 16:57:46 -07:00
video [PATCH] w100fb: Rewrite for platform independence 2005-09-07 16:57:53 -07:00
w1
zorro
Kconfig
Makefile