ide: fix ->io_32bit race in ide_taskfile_ioctl()
authorTejun Heo <htejun@gmail.com>
Sat, 26 Jan 2008 19:13:10 +0000 (20:13 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Jan 2008 19:13:10 +0000 (20:13 +0100)
commit35cf2b94d0ecb7034cfa05dd725721538bbb83fc
tree6c3681f06b078626aeeb8de1e28bbdd458f95c70
parent63c4467805c9b23231d8bc9b61305b2013f9fea2
ide: fix ->io_32bit race in ide_taskfile_ioctl()

In ide_taskfile_ioctl(), there was a race condition involving
drive->io_32bit.  It was cleared and restored during ioctl
requests but there was no synchronization with other requests.
So, other requests could execute with the altered ->io_32bit
setting or updated drive->io_32bit could be overwritten by
ide_taskfile_ioctl().

This patch adds IDE_TFLAG_IO_16BIT flag to indicate to
ide_pio_datablock() that 16-bit I/O is needed regardless of
drive->io_32bit settting.

Bart:
- ported it over recent IDE changes

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-taskfile.c
include/linux/ide.h